Schema metadata format
Step 1 asks your warehouse what tables and columns exist. It reads the catalog — information_schema or its equivalent — and never the tables themselves. No row of your data is selected, and nothing connects to your database.
The eight columns
| Column | What it is | Needed |
|---|---|---|
table_schema | Schema or dataset the table lives in. | Required |
table_name | Table or view name. | Required |
column_name | Column name. | Required |
data_type | Declared type — BIGINT, TIMESTAMPTZ, NUMERIC(16,4). | Required |
is_nullable | YES or NO. Used to spot optional join keys. | Optional |
ordinal_position | Column order within the table. | Optional |
table_type | BASE TABLE or VIEW. | Optional |
column_default | Default expression, when the catalog exposes one. | Optional |
The first four are enough to produce a readiness answer. The optional four improve relationship detection, so more columns map automatically.
What NemulAI accepts back
Paste the query result
Comma, tab or pipe separated. Copy straight out of your warehouse console — the header row is detected, and the separator is inferred from the content rather than the file name.
Upload a CSV
The same eight columns. Exported directly from the console is fine.
Paste CREATE TABLE statements
DDL is parsed directly, so a schema dump works without running anything.
Upload .sql, .yml, .json or .txt
dbt manifests, schema YAML and JSON catalogs are recognised by content, not extension.
Generate the query for your warehouse in step 1, or read how each boundary is enforced.