> ## Documentation Index
> Fetch the complete documentation index at: https://docs.maia.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Table From Values

export const ComponentMetadata = ({warehouses, unsupportedWarehouses = [], componentType, connectionInputs, connectionOutputs}) => {
  const allWarehouses = [...warehouses.map(w => ({
    name: w,
    supported: true
  })), ...unsupportedWarehouses.map(w => ({
    name: w,
    supported: false
  }))];
  return <div style={{
    background: 'var(--colors-background-light, #f9fafb)',
    border: '1px solid var(--colors-border-default, #e5e7eb)',
    borderRadius: '12px',
    padding: '20px 28px',
    marginBottom: '28px',
    boxShadow: '0 1px 4px rgba(0,0,0,0.10)'
  }}>
      <table style={{
    width: '100%',
    borderCollapse: 'collapse'
  }}>
        <tbody>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle',
    width: '180px'
  }}>Project Availability</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>
              <div style={{
    display: 'flex',
    flexWrap: 'wrap',
    gap: '8px'
  }}>
                {allWarehouses.map((w, i) => <span key={i} style={{
    background: w.supported ? '#dcfce7' : '#fee2e2',
    color: w.supported ? '#15803d' : '#b91c1c',
    border: `1px solid ${w.supported ? '#bbf7d0' : '#fca5a5'}`,
    borderRadius: '9999px',
    padding: '3px 12px',
    fontSize: '0.85rem',
    fontWeight: '500',
    whiteSpace: 'nowrap'
  }}>
                    {w.name} {w.supported ? '✅' : '❌'}
                  </span>)}
              </div>
            </td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Component Type</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>{componentType}</td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Connection Inputs</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>{connectionInputs}</td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Connection Outputs</td>
            <td style={{
    verticalAlign: 'middle'
  }}>{connectionOutputs}</td>
          </tr>
        </tbody>
      </table>
    </div>;
};

export const designer = "Designer";

<ComponentMetadata warehouses={["Snowflake", "Databricks", "Amazon Redshift", "Google BigQuery"]} componentType="Test" connectionInputs="One" connectionOutputs="Unlimited" />

The **Create Table From Values** test component lets you define a fixed set of data values and output them as a new table, using columns you specify and populating them with that data. This is useful for testing scenarios when you need a small, static dataset within a test pipeline.

<Note>
  This component is only available in [Tests](/docs/components/test-pipelines).
</Note>

***

## Properties

<Tabs>
  <Tab title="Snowflake">
    <ResponseField name="Name" type="string" required>
      A human-readable name for the component.
    </ResponseField>

    {/* <!-- param-start:[database] | warehouses: [snowflake] --> */}

    <ResponseField name="Database" type="drop-down" required>
      The Snowflake database that the newly created table will belong to. The special value `[Environment Default]` uses the database defined in the environment. Read [Database, Schema, and Share DDL](https://docs.snowflake.com/en/sql-reference/ddl-database) to learn more.
    </ResponseField>

    {/* <!-- param-start:[schema] | warehouses: [snowflake] --> */}

    <ResponseField name="Schema" type="drop-down" required>
      The Snowflake schema that the newly created table will belong to. The special value `[Environment Default]` uses the schema defined in the environment. Read [Database, Schema, and Share DDL](https://docs.snowflake.com/en/sql-reference/ddl-database) to learn more.
    </ResponseField>

    {/* <!-- param-start:[tableName] | warehouses: [snowflake] --> */}

    <ResponseField name="Table name" type="string" required>
      The name of the table to create or replace. This field is case-sensitive by default, since {designer} uses quoted identifiers.
    </ResponseField>

    {/* <!-- param-start:[columns] | warehouses: [snowflake] --> */}

    <ResponseField name="Columns" type="dual listbox" required>
      Enter the following details for each table column:

      * **Name:** The name of the column.
      * **Type:** The data type of the column. Select from the available Snowflake data types:
        * [VARCHAR](https://docs.snowflake.com/en/sql-reference/functions/as_char-varchar): This type is suitable for numbers and letters. A varchar or Variable Character Field is a set of character data of indeterminate length.
        * [NUMBER](https://docs.snowflake.com/en/sql-reference/data-types-numeric): This type is suitable for numeric types, with or without decimals.
        * [FLOAT](https://docs.snowflake.com/en/sql-reference/data-types-numeric#data-types-for-floating-point-numbers): This type is suitable for approximate numeric values with fractional components.
        * [BOOLEAN](https://docs.snowflake.com/en/sql-reference/operators-logical): This type is suitable for data that is either "true" or "false".
        * [DATE](https://docs.snowflake.com/en/sql-reference/data-types-datetime#date): This type is suitable for dates without times.
        * [TIMESTAMP](https://docs.snowflake.com/en/sql-reference/data-types-datetime#timestamp): This type is suitable for column data values entered as a comma-separated list in the format `YYYY-MM-DD HH:MI:SS`.
        * [TIMESTAMP\_NTZ](https://docs.snowflake.com/en/sql-reference/data-types-datetime#label-datatypes-timestamp-variations): This type is suitable for column data values entered as a comma-separated list in the format `YYYY-MM-DD HH:MI:SS`.
        * [TIMESTAMP\_LTZ](https://docs.snowflake.com/en/sql-reference/data-types-datetime#label-datatypes-timestamp-variations): This type is suitable for column data values entered as a comma-separated list in the format `YYYY-MM-DD HH:MI:SS`.
        * [TIMESTAMP\_TZ](https://docs.snowflake.com/en/sql-reference/data-types-datetime#label-datatypes-timestamp-variations): This type is suitable for column data values entered as a comma-separated list in the format `YYYY-MM-DD HH:MI:SS +TZ`.
        * [TIME](https://docs.snowflake.com/en/sql-reference/data-types-datetime#label-datatypes-time): This type is suitable for column data values entered as a comma-separated list in the format `HH:MI:SS`.
        * [VARIANT](https://docs.snowflake.com/en/sql-reference/data-types-semistructured#variant): This type is suitable for column data values entered as a comma-separated list in JSON format.
      * **Size:** The size of the column, if applicable to the chosen data type.
      * **Scale:** The scale of the column, if applicable to the chosen data type.

      Click the **Text mode** toggle at the bottom of the dialog to open a multi-line editor that lets you add items in a single block. For more information, read [Text mode](/docs/guides/components-overview#text-mode).

      To use grid variables, toggle **Use Grid Variable** on at the bottom of the dialog. For more information, read [Grid variables](/docs/guides/grid-variables).
    </ResponseField>

    {/* <!-- param-start:[values] | warehouses: [snowflake] --> */}

    <ResponseField name="Values" type="column editor" required>
      A dynamic table of values with one column for each column created above.

      Click the **Text mode** toggle at the bottom of the dialog to open a multi-line editor that lets you add items in a single block. For more information, read [Text mode](/docs/guides/components-overview#text-mode).

      To use grid variables, toggle **Use Grid Variable** on at the bottom of the dialog. For more information, read [Grid variables](/docs/guides/grid-variables).
    </ResponseField>

    {/* <!-- param-start:[loadStrategy] | warehouses: [snowflake] --> */}

    <ResponseField name="Load strategy" type="drop-down" required>
      Select how to load data into the target table.

      Select one of the following options:

      * **Create:** This is the default option. It creates a new table, and will cause an error if a table with the same name already exists. Existing data will not be affected.

      * **Create If Not Exists:** This option creates a new table when a table of the same name does not already exist. This option will not destroy existing data. If the schema of the existing table does not match the schema defined in this component, no attempt is made to fix or correct the schema, which could lead to errors later on in the pipeline if:
        * Users did not expect a table to already exist.
        * Users expected the table schema to match what's defined in this component, but it doesn't.

      * **Replace:** If a table with the name you specify in the `Table name` property already exists, the existing table is replaced by a new table when the pipeline finishes. Selecting this option guarantees that after the component succeeds, the table matches the schema defined in this component. However, any data from the existing table (to be replaced) will be lost.

      This component uses the **CREATE OR REPLACE** clause. When using the **REPLACE** clause, it also applies the **COPY GRANTS** clause. When you clone or create a new object (such as a table, view, schema, or database) from an existing one, the new object doesn't automatically inherit the original's grants (privileges). However, with the **COPY GRANTS** clause, you can seamlessly transfer object-level privileges from the source object to the new one. This helps maintain consistent access control and simplifies permission management when cloning or recreating objects. For more information, read [Snowflake COPY GRANTS](https://docs.snowflake.com/en/sql-reference/sql/create-table#label-create-table-copy-grants).
    </ResponseField>
  </Tab>

  <Tab title="Databricks">
    <ResponseField name="Name" type="string" required>
      A human-readable name for the component.
    </ResponseField>

    {/* <!-- param-start:[catalog] | warehouses: [databricks] --> */}

    <ResponseField name="Catalog" type="drop-down" required>
      Select a [Databricks Unity Catalog](https://docs.databricks.com/en/data-governance/unity-catalog/index.html) that the newly created table will belong to. The special value `[Environment Default]` uses the catalog defined in the environment. Selecting a catalog will determine which schemas are available in the next parameter.
    </ResponseField>

    {/* <!-- param-start:[schema] | warehouses: [databricks] --> */}

    <ResponseField name="Schema (database)" type="drop-down" required>
      The Databricks schema that the newly created table will belong to. The special value `[Environment Default]` uses the schema defined in the environment. Read [Create and manage schemas](https://docs.databricks.com/en/data-governance/unity-catalog/create-schemas.html) to learn more.
    </ResponseField>

    {/* <!-- param-start:[tableName] | warehouses: [databricks] --> */}

    <ResponseField name="Table name" type="string" required>
      The name of the table to create or replace. This field is case-sensitive by default, since {designer} uses quoted identifiers.
    </ResponseField>

    {/* <!-- param-start:[columns] | warehouses: [databricks] --> */}

    <ResponseField name="Columns" type="dual listbox" required>
      Enter the following details for each table column:

      * **Name:** The name of the column.
      * **Type:** The data type of the column. For more information, read [Data types](https://docs.databricks.com/en/sql/language-manual/sql-ref-datatypes.html).
        * [INTEGER](https://docs.databricks.com/en/sql/language-manual/data-types/int-type.html): This type is a whole number (not a fractional number) that can be positive, negative, or zero.
        * [NUMBER](https://docs.databricks.com/en/sql/language-manual/sql-ref-datatypes.html): This type is suitable for numeric types, with or without decimals.
        * [FLOAT](https://docs.databricks.com/en/sql/language-manual/data-types/float-type.html): Values are approximate numeric values with fractional components.
        * [TEXT](https://docs.databricks.com/en/sql/language-manual/data-types/string-type.html): Alphanumeric and character strings.
        * [TIMESTAMP](https://docs.databricks.com/en/sql/language-manual/data-types/timestamp-type.html): Represents values comprising the fields year, month, day, hour, minute, and second, with the session local time zone. The timestamp value represents an absolute point in time.
        * [DATE](https://docs.databricks.com/en/sql/language-manual/data-types/date-type.html): Represents values comprising the fields year, month, and day, without a time zone.
        * [BOOLEAN](https://docs.databricks.com/en/sql/language-manual/data-types/boolean-type.html): Represents data that is either "true" or "false".
        * [BINARY](https://docs.databricks.com/en/sql/language-manual/data-types/binary-type.html): Represents byte sequence values.
      * **Size:** The size of the column, if applicable to the chosen data type.
      * **Scale:** The scale of the column, if applicable to the chosen data type.

      Click the **Text mode** toggle at the bottom of the dialog to open a multi-line editor that lets you add items in a single block. For more information, read [Text mode](/docs/guides/components-overview#text-mode).

      To use grid variables, toggle **Use Grid Variable** on at the bottom of the dialog. For more information, read [Grid variables](/docs/guides/grid-variables).
    </ResponseField>

    {/* <!-- param-start:[values] | warehouses: [databricks] --> */}

    <ResponseField name="Values" type="column editor" required>
      A dynamic table of values with one column for each column created above.

      Click the **Text mode** toggle at the bottom of the dialog to open a multi-line editor that lets you add items in a single block. For more information, read [Text mode](/docs/guides/components-overview#text-mode).

      To use grid variables, toggle **Use Grid Variable** on at the bottom of the dialog. For more information, read [Grid variables](/docs/guides/grid-variables).
    </ResponseField>

    {/* <!-- param-start:[loadStrategy] | warehouses: [databricks] --> */}

    <ResponseField name="Load strategy" type="drop-down" required>
      Select how to load data into the target table.

      Select one of the following options:

      * **Create:** This is the default option. It creates a new table, and will cause an error if a table with the same name already exists. Existing data will not be affected.
      * **Create If Not Exists:** This option creates a new table when a table of the same name does not already exist. This option will not destroy existing data. If the schema of the existing table does not match the schema defined in this component, no attempt is made to fix or correct the schema, which could lead to errors later on in the pipeline if:
        * Users did not expect a table to already exist.
        * Users expected the table schema to match what's defined in this component, but it doesn't.
      * **Replace:** If a table with the name you specify in the `Table name` property already exists, the existing table is replaced by a new table when the pipeline finishes. Selecting this option guarantees that after the component succeeds, the table matches the schema defined in this component. However, any data from the existing table (to be replaced) will be lost.
    </ResponseField>
  </Tab>

  <Tab title="Amazon Redshift">
    <ResponseField name="Name" type="string" required>
      A human-readable name for the component.
    </ResponseField>

    {/* <!-- param-start:[schema] | warehouses: [redshift] --> */}

    <ResponseField name="Schema" type="drop-down" required>
      The Amazon Redshift schema that the newly created table will belong to. The special value `[Environment Default]` uses the schema defined in the environment. For more information on using multiple schemas, read [Schemas](https://docs.aws.amazon.com/redshift/latest/dg/r_Schemas_and_tables.html).
    </ResponseField>

    {/* <!-- param-start:[tableName] | warehouses: [redshift] --> */}

    <ResponseField name="Table name" type="string" required>
      The name of the table to create or replace. This field is case-sensitive by default, since {designer} uses quoted identifiers.
    </ResponseField>

    {/* <!-- param-start:[columns] | warehouses: [redshift] --> */}

    <ResponseField name="Columns" type="dual listbox" required>
      Enter the following details for each table column:

      * **Name:** The name of the column.
      * **Type:** The data type of the column. For more information, read [Data types](https://docs.aws.amazon.com/redshift/latest/dg/c_Supported_data_types.html).
        * [TEXT](https://docs.aws.amazon.com/redshift/latest/dg/r_Character_types.html#r_Character_types-text-and-bpchar-types): A string can hold any kind of data, subject to a maximum size.
        * [INTEGER](https://docs.aws.amazon.com/redshift/latest/dg/r_Numeric_types201.html#r_Numeric_types201-integer-types): An integer data type is suitable for whole numbers (no decimals).
        * [NUMERIC](https://docs.aws.amazon.com/redshift/latest/dg/r_Numeric_types201.html#r_Numeric_types201-decimal-or-numeric-type): The numeric data type accepts numbers, with or without decimals.
        * [REAL](https://docs.aws.amazon.com/redshift/latest/dg/r_Numeric_types201.html): This type is suitable for data of a single precision floating-point number.
        * [DOUBLE PRECISION](https://docs.aws.amazon.com/redshift/latest/dg/r_Numeric_types201.html): This type is suitable for data of a double precision floating-point number.
        * [BOOLEAN](https://docs.aws.amazon.com/redshift/latest/dg/r_Boolean_type.html): Data with a Boolean data type can be either "true" or "false".
        * [DATE](https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-date): This type is suitable for dates without times.
        * [DATETIME](https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html): This type is suitable for dates, times, or timestamps (both date and time).
        * [SUPER](https://docs.aws.amazon.com/redshift/latest/dg/r_SUPER_type.html): Use the SUPER data type to store semi-structured data or documents as values.
        * [GEOMETRY](https://docs.aws.amazon.com/redshift/latest/dg/geospatial-overview.html): Use the GEOMETRY data type to store two-dimensional geospatial features in a projected coordinate system, such as points, lines, and polygons.
        * [GEOGRAPHY](https://docs.aws.amazon.com/redshift/latest/dg/geospatial-overview.html): Use the GEOGRAPHY data type to store geospatial features referenced against a geodetic (spheroidal) coordinate system, such as latitude and longitude values.
      * **Size:** The size of the column, if applicable to the chosen data type.
      * **Scale:** The scale of the column, if applicable to the chosen data type.

      Click the **Text mode** toggle at the bottom of the dialog to open a multi-line editor that lets you add items in a single block. For more information, read [Text mode](/docs/guides/components-overview#text-mode).

      To use grid variables, toggle **Use Grid Variable** on at the bottom of the dialog. For more information, read [Grid variables](/docs/guides/grid-variables).
    </ResponseField>

    {/* <!-- param-start:[values] | warehouses: [redshift] --> */}

    <ResponseField name="Values" type="column editor" required>
      A dynamic table of values with one column for each column created above.

      Click the **Text mode** toggle at the bottom of the dialog to open a multi-line editor that lets you add items in a single block. For more information, read [Text mode](/docs/guides/components-overview#text-mode).

      To use grid variables, toggle **Use Grid Variable** on at the bottom of the dialog. For more information, read [Grid variables](/docs/guides/grid-variables).
    </ResponseField>

    {/* <!-- param-start:[loadStrategy] | warehouses: [redshift] --> */}

    <ResponseField name="Load strategy" type="drop-down" required>
      Select how to load data into the target table.

      Select one of the following options:

      * **Create:** This is the default option. It creates a new table, and will cause an error if a table with the same name already exists. Existing data will not be affected.
      * **Create If Not Exists:** This option creates a new table when a table of the same name does not already exist. This option will not destroy existing data. If the schema of the existing table does not match the schema defined in this component, no attempt is made to fix or correct the schema, which could lead to errors later on in the pipeline if:
        * Users did not expect a table to already exist.
        * Users expected the table schema to match what's defined in this component, but it doesn't.
      * **Replace:** If a table with the name you specify in the `Table name` property already exists, the existing table is replaced by a new table when the pipeline finishes. Selecting this option guarantees that after the component succeeds, the table matches the schema defined in this component. However, any data from the existing table (to be replaced) will be lost.
    </ResponseField>
  </Tab>

  <Tab title="Google BigQuery">
    <ResponseField name="Name" type="string" required>
      A human-readable name for the component.
    </ResponseField>

    {/* <!-- param-start:[gcpProjectId] | warehouses: [bigquery] --> */}

    <ResponseField name="GCP project ID" type="drop-down" required>
      The Google Cloud project that owns the BigQuery dataset that the newly created table will belong to. The special value `[Environment Default]` uses the Google Cloud project defined in the environment. For more information, read [Creating projects](https://docs.cloud.google.com/resource-manager/docs/creating-managing-projects).
    </ResponseField>

    {/* <!-- param-start:[dataset] | warehouses: [bigquery] --> */}

    <ResponseField name="Dataset" type="drop-down" required>
      The Google BigQuery dataset that the newly created table will belong to. The special value `[Environment Default]` uses the dataset defined in the environment.
    </ResponseField>

    {/* <!-- param-start:[tableName] | warehouses: [bigquery] --> */}

    <ResponseField name="Table name" type="string" required>
      The name of the table to create or replace. This field is case-sensitive by default, since {designer} uses quoted identifiers.
    </ResponseField>

    {/* <!-- param-start:[columns] | warehouses: [bigquery] --> */}

    <ResponseField name="Columns" type="dual listbox" required>
      Enter the following details for each table column:

      * **Name:** The name of the column.
      * **Type:** The data type of the column. For more information, read [Data types](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-types).
        * [STRING](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-types#string_type): Variable-length character (Unicode) data.
        * [INT64](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-types#integer_types): A whole number without a fractional component.
        * [FLOAT64](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-types#floating_point_types): An approximate numeric value with fractional components.
        * [NUMERIC](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-types#decimal_types): An exact numeric value with a fixed precision and scale.
        * [BIGNUMERIC](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-types#decimal_types): An exact numeric value with higher precision and scale than `NUMERIC`, suitable for very large or highly precise decimal values.
        * [BOOL](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-types#boolean_type): Data that is either "true" or "false".
        * [BYTES](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-types#bytes_type): Variable-length binary data.
        * [DATE](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-types#date_type): A calendar date, independent of time zone.
        * [DATETIME](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-types#datetime_type): A year, month, day, hour, minute, second, and subsecond value, without a time zone.
        * [TIME](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-types#time_type): A time of day, independent of a specific date and time zone.
        * [TIMESTAMP](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-types#timestamp_type): An absolute point in time, independent of any time zone or convention.
        * [INTERVAL](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-types#interval_type): A duration of time, independent of any specific point in time or time zone.
      * **Size:** The size of the column, if applicable to the chosen data type.
      * **Scale:** The scale of the column, if applicable to the chosen data type.

      Click the **Text mode** toggle at the bottom of the dialog to open a multi-line editor that lets you add items in a single block. For more information, read [Text mode](/docs/guides/components-overview#text-mode).

      To use grid variables, toggle **Use Grid Variable** on at the bottom of the dialog. For more information, read [Grid variables](/docs/guides/grid-variables).
    </ResponseField>

    {/* <!-- param-start:[values] | warehouses: [bigquery] --> */}

    <ResponseField name="Values" type="column editor" required>
      A dynamic table of values with one column for each column created above.

      Click the **Text mode** toggle at the bottom of the dialog to open a multi-line editor that lets you add items in a single block. For more information, read [Text mode](/docs/guides/components-overview#text-mode).

      To use grid variables, toggle **Use Grid Variable** on at the bottom of the dialog. For more information, read [Grid variables](/docs/guides/grid-variables).
    </ResponseField>

    {/* <!-- param-start:[loadStrategy] | warehouses: [bigquery] --> */}

    <ResponseField name="Load strategy" type="drop-down" required>
      Select how to load data into the target table.

      Select one of the following options:

      * **Create:** This is the default option. It creates a new table, and will cause an error if a table with the same name already exists. Existing data will not be affected.
      * **Create If Not Exists:** This option creates a new table when a table of the same name does not already exist. This option will not destroy existing data. If the schema of the existing table does not match the schema defined in this component, no attempt is made to fix or correct the schema, which could lead to errors later on in the pipeline if:
        * Users did not expect a table to already exist.
        * Users expected the table schema to match what's defined in this component, but it doesn't.
      * **Replace:** If a table with the name you specify in the `Table name` property already exists, the existing table is replaced by a new table when the pipeline finishes. Selecting this option guarantees that after the component succeeds, the table matches the schema defined in this component. However, any data from the existing table (to be replaced) will be lost.
    </ResponseField>
  </Tab>
</Tabs>
