googleapis/mcp-toolbox · error
invalid INFORMATION_SCHEMA query path %q
Error message
invalid INFORMATION_SCHEMA query path %q
What it means
The SQL scanner found INFORMATION_SCHEMA deeper than position 2 in the dotted identifier path — a shape like a.b.c.INFORMATION_SCHEMA.x that does not correspond to any valid BigQuery metadata view reference.
Source
Thrown at internal/tools/bigquery/bigquerycommon/table_name_parser.go:255
// Check for INFORMATION_SCHEMA
infoSchemaIdx := -1
for idx, part := range parts {
if strings.EqualFold(part, "INFORMATION_SCHEMA") {
infoSchemaIdx = idx
break
}
}
if infoSchemaIdx != -1 {
viewName := parts[len(parts)-1]
if !datasetLevelInformationSchemaViews[strings.ToLower(viewName)] {
return 0, fmt.Errorf("querying non-dataset-level INFORMATION_SCHEMA view %q is not allowed when dataset restrictions are in place", viewName)
}
if infoSchemaIdx == 0 {
return 0, fmt.Errorf("querying INFORMATION_SCHEMA views without a dataset prefix is not allowed when dataset restrictions are in place")
}
if infoSchemaIdx > 2 {
return 0, fmt.Errorf("invalid INFORMATION_SCHEMA query path %q", strings.Join(parts, "."))
}
parts = parts[:infoSchemaIdx+1]
}
if len(parts) == 1 {
keyword := strings.ToLower(parts[0])
switch keyword {
case "call":
return 0, fmt.Errorf("CALL is not allowed when dataset restrictions are in place, as the called procedure's contents cannot be safely analyzed")
case "immediate":
if lastToken == "execute" {
return 0, fmt.Errorf("EXECUTE IMMEDIATE is not allowed when dataset restrictions are in place, as its contents cannot be safely analyzed")
}
case "procedure", "function":
if lastToken == "create" || lastToken == "create or replace" {
return 0, fmt.Errorf("unanalyzable statements like '%s %s' are not allowed", strings.ToUpper(lastToken), strings.ToUpper(keyword))
}
case verbCreate, verbAlter, verbDrop, verbSelect, verbInsert, verbUpdate, verbDelete, verbMerge:View on GitHub (pinned to 8cc6e09de2)
Solutions
- Simplify the reference to project.dataset.INFORMATION_SCHEMA.view
- Check for stray identifier segments in the query
- Verify the intended metadata view path
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at internal/tools/bigquery/bigquerycommon/table_name_parser.go:255 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of googleapis/mcp-toolbox@8cc6e09de2 (2026-09-05).
Data as JSON: /api/errors/8027cfba3190b450.
Report an issue: GitHub.