Skip to content

SQL Dialects per Connector

A Computed Table's SQL query is passed to the parent JDBC datastore's connection verbatim. Qualytics does not translate or rewrite the query; whichever dialect the warehouse expects is the dialect you must write. This page collects the connector-specific quirks worth knowing before you write a Computed Table's SQL.

Fully-Qualified Names

The following connectors reject unqualified table references and require every table to be qualified with its schema:

  • Microsoft SQL Server: reference tables as SCHEMA.TABLE.
  • Oracle: reference tables as SCHEMA.TABLE.
  • Amazon Redshift: reference tables as SCHEMA.TABLE.

The table picker in the Add and Edit modals prefixes the schema for these connectors automatically, so a table name pasted from the picker already includes the schema. Hand-typed references, or references to tables in a non-default schema, still require the explicit SCHEMA.TABLE form.

For every other JDBC connector, an unqualified name is usually enough as long as the datastore connection's default schema resolves it. Use Validate in the modal to confirm before saving.

Supported Connectors

Computed Tables run on every JDBC connector Qualytics exposes. The FQN Required? column flags the three connectors covered in Fully-Qualified Names above where the SQL body must use SCHEMA.TABLE for every reference.

No. Logo Connector FQN Required?
1. Redshift Amazon Redshift
2. Athena Athena
3. BigQuery BigQuery
4. Databricks Databricks
5. DB2 DB2
6. Dremio Dremio
7. Fabric Fabric Analytics
8. Hive Hive
9. MariaDB MariaDB
10. SQL Server Microsoft SQL Server
11. MySQL MySQL
12. Oracle Oracle
13. PostgreSQL PostgreSQL
14. Presto Presto
15. SAP HANA SAP HANA
16. Snowflake Snowflake
17. Synapse Synapse
18. Teradata Teradata
19. Timescale Timescale DB
20. Trino Trino

Non-JDBC datastores (Amazon S3, Google Cloud Storage, Azure Data Lake Storage) use Computed Files instead.

Dialect Notes

Each dialect has its own preferred syntax for common patterns. A short cheat sheet of things to remember:

  • Snowflake: supports QUALIFY for window-function filtering; IFF() is a common alternative to CASE WHEN; identifiers are case-sensitive when wrapped in double quotes.
  • BigQuery: table references are project.dataset.table; use STRUCT and UNNEST for nested data; prefer SAFE_CAST over CAST for error-safe conversions.
  • SQL Server: TOP instead of LIMIT; + is the string-concatenation operator; identifiers can be quoted with [brackets] or double quotes.
  • Oracle: no built-in boolean type in SELECT output; NVL and NVL2 are Oracle-flavored COALESCE; use ROWNUM for row-number filtering or a window function for a more portable pattern.
  • PostgreSQL and Redshift: identifiers are case-insensitive unless wrapped in double quotes; LIMIT and OFFSET for pagination; Redshift diverges from PostgreSQL for some window-function edge cases.
  • Databricks: supports standard SQL over Delta and Parquet tables; watch out for the semantics of IS NULL on nested STRUCT columns.
  • Athena, Presto, and Trino: mostly ANSI SQL; use TRY_CAST and TRY for error-safe conversions; array and map types are first-class.

For dialect-specific reference material, consult the warehouse's own documentation.