Skip to main content

Hierarchical Completions

BigQuery uses a four-level resource hierarchy: project.dataset.table.column. Querylab.io's hierarchical completions help you navigate this structure with dot notation. Learn about BigQuery resource hierarchy.

How Hierarchical Navigation Works

Type a dot (.) after any identifier to drill down into the next level:

FROM my-project.|

After typing the dot, completions show only datasets in my-project:

  • my-project.analytics
  • my-project.sales
  • my-project.logs

Continue typing to navigate deeper:

FROM my-project.analytics.|

Now shows only tables in the analytics dataset:

  • my-project.analytics.users
  • my-project.analytics.events
  • my-project.analytics.sessions

Four-Level Hierarchy

1. Project Level

FROM my-project.|

Shows all datasets in the project.

2. Dataset Level

FROM my-project.analytics.|

Shows all tables in the dataset.

3. Table Level

SELECT * FROM my-project.analytics.users.|

Shows all columns in the table (after typing FROM table.).

4. Column Level (STRUCT fields)

SELECT address.|
FROM users

Shows fields inside the STRUCT column:

  • address.street
  • address.city
  • address.zip

Fully Qualified Paths

All table references appear as fully qualified paths in completions:

FROM |

Shows:

  • my-project.analytics.users
  • my-project.analytics.events
  • other-project.dataset.table

Fuzzy matching lets you type partial text to filter. Type "users" and it matches "my-project.analytics.users".

Switching Between Dataset Variants

Hierarchical completions make it easy to switch between development, test, and production datasets:

FROM my-project.analytics|

As you type "analytics", completions show all variants:

  • my-project.analytics
  • my-project.analytics_dev
  • my-project.analytics_test
  • my-project.analytics_prod

Just select the variant you need.

Ambiguous Identifiers

When an identifier could be either a project or a dataset, the editor tries both:

FROM analytics.|

If "analytics" exists as both a project name and a dataset name, completions show:

  • Datasets from project "analytics" (if it's a project)
  • Tables from dataset "analytics" (if it's a dataset in the default project)

Backtick Support

BigQuery allows dashes in project IDs without backticks:

FROM my-project-123.|

Works perfectly. Backticks are optional for projects:

FROM `my-project-123`.|

Both forms trigger hierarchical completions.

For identifiers with spaces or special characters, use backticks:

FROM `my project`.`my dataset`.|

Without Dot - Show Full Paths

When you haven't typed a dot yet, completions show fully qualified paths:

FROM |

Shows complete table paths:

  • my-billing-project.analytics.users
  • my-billing-project.sales.orders

For STRUCT columns, shows up to 2 levels of nesting:

SELECT |
FROM users

Shows:

  • address.street (2 levels)
  • address.city
  • user_id (1 level)

Progressive Disclosure

Type dots to drill deeper into nested structures:

SELECT data.|

Shows immediate children only:

  • data.user
  • data.timestamp
SELECT data.user.|

Shows next level:

  • data.user.profile
  • data.user.email
SELECT data.user.profile.|

Shows fields:

  • data.user.profile.name
  • data.user.profile.bio

Visual Indicators

Completions use icons to distinguish resource types:

  • Projects: Module icon
  • Datasets: Folder icon
  • Tables: Table icon
  • Columns: Field icon
  • STRUCT fields: Property icon

Completion Chaining

After accepting a hierarchical completion, the editor automatically shows the next level (even if you have "Chain Completions" disabled in settings).

This is namespace navigation - you explicitly typed the dot, so the editor shows what's inside:

FROM my-project.     [Accept "analytics" completion]
FROM my-project.analytics.| [Completions appear automatically]

You don't need to press Ctrl+Space again - the next level appears immediately.

Performance Note

The editor is optimized for projects with thousands of tables.

See Auto-Completions for general completion behavior.