Source File
symbol_history.go
Belonging Package
golang.org/x/pkgsite/internal/postgres
package postgres
import (
)
func ( *DB) ( context.Context, , string,
) ( *internal.SymbolHistory, error) {
defer derrors.Wrap(&, "GetSymbolHistory(ctx, %q, %q)", , )
defer middleware.ElapsedStat(, "GetSymbolHistory")()
if == stdlib.ModulePath {
return GetSymbolHistoryFromTable(, .db, , )
}
if experiment.IsActive(, internal.ExperimentReadSymbolHistory) {
return GetSymbolHistoryFromTable(, .db, , )
}
return GetSymbolHistoryWithPackageSymbols(, .db, , )
}
func ( context.Context, *database.DB,
, string) ( *internal.SymbolHistory, error) {
defer derrors.WrapStack(&, "GetSymbolHistoryFromTable(ctx, ddb, %q, %q)", , )
:= squirrel.Select(
"s1.name AS symbol_name",
"s2.name AS parent_symbol_name",
"ps.section",
"ps.type",
"ps.synopsis",
"sh.since_version",
"sh.goos",
"sh.goarch",
).From("symbol_history sh").
Join("package_symbols ps ON ps.id = sh.package_symbol_id").
Join("symbol_names s1 ON ps.symbol_name_id = s1.id").
Join("symbol_names s2 ON ps.parent_symbol_name_id = s2.id").
Join("paths p1 ON sh.package_path_id = p1.id").
Join("paths p2 ON sh.module_path_id = p2.id").
Where(squirrel.Eq{"p1.path": }).
Where(squirrel.Eq{"p2.path": })
, , := .PlaceholderFormat(squirrel.Dollar).ToSql()
if != nil {
return nil,
}
, := collectSymbolHistory(func(*internal.SymbolHistory, internal.SymbolMeta, string, internal.BuildContext) error { return nil })
if := .RunQuery(, , , ...); != nil {
return nil,
}
return , nil
}
func ( context.Context, *database.DB,
, string) ( *internal.SymbolHistory, error) {
defer derrors.WrapStack(&, "GetSymbolHistoryWithPackageSymbols(ctx, ddb, %q, %q)", , )
defer middleware.ElapsedStat(, "GetSymbolHistoryWithPackageSymbols")()
, := getPackageSymbols(, , , )
if != nil {
return nil,
}
return symbol.IntroducedHistory()
}
func ( context.Context, *database.DB, int, string,
internal.BuildContext) ( map[string]string, error) {
defer derrors.WrapStack(&, "GetSymbolHistoryForBuildContext(ctx, ddb, %d, %q)", , )
defer middleware.ElapsedStat(, "GetSymbolHistoryForBuildContext")()
if == internal.BuildContextAll {
= internal.BuildContextLinux
}
:= squirrel.Select(
"s1.name AS symbol_name",
"sh.since_version",
).From("symbol_history sh").
Join("package_symbols ps ON ps.id = sh.package_symbol_id").
Join("symbol_names s1 ON ps.symbol_name_id = s1.id").
Join("symbol_names s2 ON ps.parent_symbol_name_id = s2.id").
Join("paths p2 ON sh.module_path_id = p2.id").
Where(squirrel.Eq{"sh.package_path_id": }).
Where(squirrel.Eq{"p2.path": }).
Where(squirrel.Eq{"sh.goos": .GOOS}).
Where(squirrel.Eq{"sh.goarch": .GOARCH})
, , := .PlaceholderFormat(squirrel.Dollar).ToSql()
if != nil {
return nil,
}
![]() |
The pages are generated with Golds v0.3.2-preview. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |