MCPcopy Create free account
hub / github.com/cockroachdb/cockroachdb-parser / ParseTablePattern

Function ParseTablePattern

pkg/sql/parser/parse.go:332–352  ·  view source on GitHub ↗

ParseTablePattern parses a table pattern. The table name must contain one or more name parts, using the full input SQL syntax: each name part containing special characters, or non-lowercase characters, must be enclosed in double quote. The name may not be an invalid table name (the caller is respons

(sql string)

Source from the content-addressed store, hash-verified

330// valid table names are provided as input).
331// The last part may be '*' to denote a wildcard.
332func ParseTablePattern(sql string) (tree.TablePattern, error) {
333 // We wrap the name we want to parse into a dummy statement since our parser
334 // can only parse full statements.
335 stmt, err := ParseOne(fmt.Sprintf("GRANT SELECT ON TABLE %s TO admin", sql))
336 if err != nil {
337 return nil, err
338 }
339 grant, ok := stmt.AST.(*tree.Grant)
340 if !ok {
341 return nil, errors.AssertionFailedf("expected a GRANT statement, but found %T", stmt)
342 }
343 if len(grant.Targets.Tables.TablePatterns) == 0 {
344 return nil, errors.AssertionFailedf("expected at least one pattern")
345 }
346 u := grant.Targets.Tables.TablePatterns[0]
347 un, ok := u.(*tree.UnresolvedName)
348 if !ok {
349 return nil, errors.AssertionFailedf("expected an unresolved name, but found %T", u)
350 }
351 return un.NormalizeTablePattern()
352}
353
354// parseExprsWithInt parses one or more sql expressions.
355func parseExprsWithInt(exprs []string, nakedIntType *types.T) (tree.Exprs, error) {

Callers

nothing calls this directly

Calls 2

ParseOneFunction · 0.85
NormalizeTablePatternMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…