MCPcopy Create free account
hub / github.com/auxten/postgresql-parser / Resolve

Method Resolve

pkg/sql/sem/tree/name_resolution.go:171–198  ·  view source on GitHub ↗

Resolve performs name resolution for a qualified star using a resolver.

(
	ctx context.Context, r ColumnItemResolver,
)

Source from the content-addressed store, hash-verified

169
170// Resolve performs name resolution for a qualified star using a resolver.
171func (a *AllColumnsSelector) Resolve(
172 ctx context.Context, r ColumnItemResolver,
173) (srcName *TableName, srcMeta ColumnSourceMeta, err error) {
174 prefix := a.TableName.ToTableName()
175
176 // Is there a data source with this prefix?
177 var res NumResolutionResults
178 res, srcName, srcMeta, err = r.FindSourceMatchingName(ctx, prefix)
179 if err != nil {
180 return nil, nil, err
181 }
182 if res == NoResults && a.TableName.NumParts == 2 {
183 // No, but name of form db.tbl.*?
184 // Special rule for compatibility with CockroachDB v1.x:
185 // search name db.public.tbl.* instead.
186 prefix.ExplicitCatalog = true
187 prefix.CatalogName = prefix.SchemaName
188 prefix.SchemaName = PublicSchemaName
189 res, srcName, srcMeta, err = r.FindSourceMatchingName(ctx, prefix)
190 if err != nil {
191 return nil, nil, err
192 }
193 }
194 if res == NoResults {
195 return nil, nil, newSourceNotFoundError("no data source matches pattern: %s", a)
196 }
197 return srcName, srcMeta, nil
198}
199
200// Resolve performs name resolution for a column item using a resolver.
201func (c *ColumnItem) Resolve(

Callers

nothing calls this directly

Calls 3

newSourceNotFoundErrorFunction · 0.85
ToTableNameMethod · 0.80

Tested by

no test coverage detected