# Hierarchical completions > BigQuery names things in four levels, project.dataset.table.column. Type a dot after any level and the list shows only the next one, so you can walk down to a table without knowing its name in advance. Source: https://docs.querylab.io/writing-sql/hierarchical-completions/ ## Walking the hierarchy Each dot shows one level: datasets after a project, tables after a dataset, columns after a table. Accepting a project or a dataset inserts the dot and opens the next list on its own. ```sql SELECT * FROM `ace-analytics.warehouse. ``` ### No dot yet Before any dot, `FROM ¦` lists every table you have access to as a full path. Filtering matches any part of it, so `users` finds `ace-analytics.warehouse.users` and `warehouse_dev` finds the dev copy of the dataset. This is the quickest way to switch between `_dev`, `_test`, and production datasets: type the table name, pick the variant. ### STRUCTs The same rule holds inside a row. `data.` shows the STRUCT's immediate fields; `data.user.` shows the next level, and so on down. ```sql SELECT device. FROM `ace-analytics.warehouse.events` ``` ## One name, two meanings `FROM analytics.` could be a project (next: datasets) or a dataset in your default project (next: tables). Querylab.io shows both, tables of the dataset first: `region-us.` is handled the same way and adds `INFORMATION_SCHEMA` for region-scoped views. ## Backticks and dashes Dashes in project IDs don't need backticks: `FROM ace-analytics.` and ``FROM `ace-analytics`.`` both open the dataset list. Inside a backtick pair the whole path completes without adding more quotes. Names with spaces or other special characters need backticks around each part: `` `my project`.`my dataset`. `` Whether accepted names get backticks is the _Identifier Formatting_ setting — always, or only when the name needs them. See [auto-completions](https://docs.querylab.io/writing-sql/auto-completions/#turning-it-off-or-tuning-it). ## BigFunctions [BigFunctions](https://unytics.io/bigfunctions) are community UDFs deployed per region. With _Enable BigFunctions_ on (Settings → Editor → SQL Editor → Completions; off by default) the `bigfunctions` namespace joins the function lists and navigates by dot: `bigfunctions.` lists the regions BigFunctions is deployed to; `bigfunctions.us.` lists the functions with their documentation.