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

  1. Simplify the reference to project.dataset.INFORMATION_SCHEMA.view
  2. Check for stray identifier segments in the query
  3. 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.