blob: b2331d5f6e6eb312ba6814e594aa3c28fe5eeda2 [file] [log] [blame]
// Copyright 2023 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package internal
import "context"
// PostgresDB provides an interface satisfied by *(internal/postgres.DB) so that
// packages in pkgsite can use the database if it exists without needing a
// dependency on the database driver packages.
type PostgresDB interface {
DataSource
IsPostgresDB()
IsExcluded(ctx context.Context, path string) (_ bool, err error)
GetImportedBy(ctx context.Context, pkgPath, modulePath string, limit int) (paths []string, err error)
GetImportedByCount(ctx context.Context, pkgPath, modulePath string) (_ int, err error)
GetLatestMajorPathForV1Path(ctx context.Context, v1path string) (_ string, _ int, err error)
GetStdlibPathsWithSuffix(ctx context.Context, suffix string) (paths []string, err error)
GetSymbolHistory(ctx context.Context, packagePath, modulePath string) (_ *SymbolHistory, err error)
GetVersionMap(ctx context.Context, modulePath, requestedVersion string) (_ *VersionMap, err error)
GetVersionMaps(ctx context.Context, paths []string, requestedVersion string) (_ []*VersionMap, err error)
GetVersionsForPath(ctx context.Context, path string) (_ []*ModuleInfo, err error)
InsertModule(ctx context.Context, m *Module, lmv *LatestModuleVersions) (isLatest bool, err error)
UpsertVersionMap(ctx context.Context, vm *VersionMap) (err error)
}