Table
Class: Table
Section titled “Class: Table”Tables are the fundamental building block for storing data when using sqlanvil. sqlanvil compiles your sqlanvil core code into SQL, executes the SQL code, and creates your defined tables in your configured data warehouse (BigQuery, Postgres, or Supabase).
You can create tables in the following ways. Available config options are defined in TableConfig, and are shared across all the following ways of creating tables.
Using a SQLX file:
-- definitions/name.sqlxconfig { type: "table"}SELECT 1Using action configs files:
actions:- table: filename: name.sql-- definitions/name.sqlSELECT 1Using the Javascript API:
table("name", { type: "table" }).query("SELECT 1 AS TEST")Note: When using the Javascript API, methods in this class can be accessed by the returned value.
This is where query comes from.
Hierarchy
Section titled “Hierarchy”-
ActionBuilder‹Table›
↳ Table
Methods
Section titled “Methods”- assertions
- bigquery
- columns
- database
- dependencies
- description
- disabled
- hermetic
- postOps
- preOps
- query
- schema
- setDependOnDependencyAssertions
- tags
- type
Methods
Section titled “Methods”assertions
Section titled “assertions”▸ assertions(assertions: TableAssertionsConfig): this
deprecated Deprecated in favor of
TableConfig.assertions.
Sets in-line assertions for this table.
Parameters:
| Name | Type |
|---|---|
assertions | TableAssertionsConfig |
Returns: this
bigquery
Section titled “bigquery”▸ bigquery(bigquery: WarehouseOptions): this
deprecated Deprecated in favor of options available directly on
TableConfig. For example:
publish("name", { type: "table", partitionBy: "column" }).
Sets bigquery options for the action.
Parameters:
| Name | Type |
|---|---|
bigquery | WarehouseOptions |
Returns: this
columns
Section titled “columns”▸ columns(columns: ColumnDescriptor[]): this
deprecated Deprecated in favor of
TableConfig.columns.
Sets the column descriptors of columns in this table.
Parameters:
| Name | Type |
|---|---|
columns | ColumnDescriptor[] |
Returns: this
database
Section titled “database”▸ database(database: string): this
deprecated Deprecated in favor of
TableConfig.project.
Sets the database in which to create the output of this action. For BigQuery targets this is the Google Cloud project ID; for Postgres/Supabase targets this is the database name in workflow_settings.yaml.
Parameters:
| Name | Type |
|---|---|
database | string |
Returns: this
dependencies
Section titled “dependencies”▸ dependencies(value: Resolvable | Resolvable[]): this
deprecated Deprecated in favor of
TableConfig.dependencies.
Sets dependencies of the table.
Parameters:
| Name | Type |
|---|---|
value | Resolvable | Resolvable[] |
Returns: this
description
Section titled “description”▸ description(description: string): this
deprecated Deprecated in favor of
TableConfig.description.
Sets the description of this assertion.
Parameters:
| Name | Type |
|---|---|
description | string |
Returns: this
disabled
Section titled “disabled”▸ disabled(disabled: boolean): this
deprecated Deprecated in favor of
TableConfig.disabled.
If called with true, this action is not executed. The action can still be depended upon.
Useful for temporarily turning off broken actions.
Parameters:
| Name | Type | Default |
|---|---|---|
disabled | boolean | true |
Returns: this
hermetic
Section titled “hermetic”▸ hermetic(hermetic: boolean): void
deprecated Deprecated in favor of
TableConfig.hermetic.
If true, this indicates that the action only depends on data from explicitly-declared dependencies. Otherwise if false, it indicates that the action depends on data from a source which has not been declared as a dependency.
Parameters:
| Name | Type |
|---|---|
hermetic | boolean |
Returns: void
postOps
Section titled “postOps”▸ postOps(posts: Contextable‹ITableContext, string | string[]›): this
Sets a post-operation to run after the query is run. This is often used for revoking temporary permissions granted to access source tables.
Example:
publish("example") .preOps(ctx => `GRANT SELECT ON TABLE ${ctx.ref("other_table")} TO sqlanvil_reader`) .query(ctx => `SELECT * FROM ${ctx.ref("other_table")}`) .postOps(ctx => `REVOKE SELECT ON TABLE ${ctx.ref("other_table")} FROM sqlanvil_reader`)Parameters:
| Name | Type |
|---|---|
posts | Contextable‹ITableContext, string | string[]› |
Returns: this
preOps
Section titled “preOps”▸ preOps(pres: Contextable‹ITableContext, string | string[]›): this
Sets a pre-operation to run before the query is run. This is often used for temporarily granting permission to access source tables.
Example:
publish("example") .preOps(ctx => `GRANT SELECT ON TABLE ${ctx.ref("other_table")} TO sqlanvil_reader`) .query(ctx => `SELECT * FROM ${ctx.ref("other_table")}`) .postOps(ctx => `REVOKE SELECT ON TABLE ${ctx.ref("other_table")} FROM sqlanvil_reader`)Parameters:
| Name | Type |
|---|---|
pres | Contextable‹ITableContext, string | string[]› |
Returns: this
▸ query(query: Contextable‹ITableContext, string›): this
Sets the query to generate the table from.
Parameters:
| Name | Type |
|---|---|
query | Contextable‹ITableContext, string› |
Returns: this
schema
Section titled “schema”▸ schema(schema: string): this
deprecated Deprecated in favor of
TableConfig.dataset.
Sets the schema (BigQuery dataset / Postgres schema) in which to create the output of this action.
Parameters:
| Name | Type |
|---|---|
schema | string |
Returns: this
setDependOnDependencyAssertions
Section titled “setDependOnDependencyAssertions”▸ setDependOnDependencyAssertions(dependOnDependencyAssertions: boolean): this
deprecated Deprecated in favor of
TableConfig.dependOnDependencyAssertions.
When called with true, assertions dependent upon any dependency will be add as dedpendency
to this action.
Parameters:
| Name | Type |
|---|---|
dependOnDependencyAssertions | boolean |
Returns: this
▸ tags(value: string | string[]): this
deprecated Deprecated in favor of
TableConfig.tags.
Sets a list of user-defined tags applied to this action.
Parameters:
| Name | Type |
|---|---|
value | string | string[] |
Returns: this
▸ type(type: TableType): this
deprecated
Deprecated in favor of action type can being set in the configs passed to action constructor
functions, for example publish("name", { type: "table" }).
Parameters:
| Name | Type |
|---|---|
type | TableType |
Returns: this