GDQ Data Type Support

Detailed Connector Support Summary

This document explains the supported and unsupported data types for different connectors within the Governed Data Query (GDQ) framework. It provides a reference to ensure compatibility and proper data handling across various data sources. The document is a work in progress, with connectors and data type research updated as new inputs become available.

Connectors List

GDQ Operators by Connector

MySQL

Supported Operators and Data Types

  1. EQUALS

    1. GDQ Supported Data Types: CHAR, VARCHAR, TEXT, TINYTEXT, MEDIUMTEXT, LONGTEXT

    2. GDQ not supported Data Types:

      1. Numeric Type: TinyInt, SmallInt, MediumInt, Int, BigInt, Decimal, Double, Float (Since numeric literals are always quoted as strings, comparisons may fail or rely on MySQL’s implicit conversion—which can be unreliable.)

      2. Date/Time Types: YEAR, DATE, DATETIME, TIMESTAMP, TIME (These types require specific literal formats and handling that the current implementation does not provide.)

      3. Boolean Types: BOOLEAN (or TINYINT(1) when used as a boolean) (No specialized logic is in place to handle true/false conditions.)

      4. Binary/Complex Types: BLOB, TINYBLOB, MEDIUMBLOB, LONGBLOB

    3. Not Supported by connector for the operator: JSON, BINARY, VARBINARY

    4. Sample Query: SELECT * FROM `ovaledge`.`Customers` WHERE `ID` = 1 AND `orders` = 2;

    5. Comments: Floating-point comparisons may be unreliable due to precision limitations.

  2. LIKE

    1. GDQ Supported Data Types: CHAR, VARCHAR, TEXT, TINYTEXT, MEDIUMTEXT, LONGTEXT

    2. Not Supported by connector for the operator: JSON, BINARY, VARBINARY, Numeric types, DATE, TIME

    3. Sample Query: SELECT * FROM `ovaledge`.`Customers` WHERE `name` LIKE 'J%' AND `Country` LIKE '%a' AND `Address` LIKE '%Street%';

  3. I_LIKE

    1. GDQ Supported Data Types: CHAR, VARCHAR, TEXT

    2. Not Supported by connector for the operator:: JSON, BINARY, VARBINARY, Numeric types, DATE, TIME

    3. Sample Query: SELECT * FROM `ovaledge`.`Customers` WHERE `name` LIKE 'J%' COLLATE utf8mb4_general_ci;

MySQL does not have a built-in ILIKE operator, but case-insensitive matching can be done using COLLATE utf8mb4_general_ci.

  1. IS_NOT_EMPTY / IS_EMPTY

    1. GDQ Supported Data Types: CHAR, VARCHAR, TEXT

    2. Not Supported by connector for the operator: JSON, BINARY, VARBINARY, Numeric types, DATE, TIME

    3. Sample Query: SELECT * FROM `ovaledge`.`Customers` WHERE COALESCE(LENGTH(TRIM(`Name`)), 0) <> 0;

  2. IS_NULL / IS_NOT_NULL

    1. GDQ Supported Data Types: CHAR, VARCHAR, TEXT

    2. Not Supported by connector for the operator: JSON, BINARY, VARBINARY, Numeric types, DATE, TIME

    3. Sample Query: SELECT * FROM `ovaledge`.`Customers` WHERE `name` IS NULL;

Oracle

Supported Operators and Data Types

  1. EQUALS

    1. GDQ Supported Data Types: CHAR, NCHAR, VARCHAR2, NVARCHAR2

    2. GDQ not supported Data Types:

      1. Numeric Types: NUMBER, INTEGER, DECIMAL, FLOAT, BINARY_FLOAT, BINARY_DOUBLE (Applying LOWER() on a numeric column or comparing a numeric literal wrapped in quotes will result in errors or unintended behavior.)

      2. Date/Time Types DATE, TIMESTAMP, TIME,DATE, INTERVAL (These require specific literal formats and conversion logic that this implementation does not provide.)

      3. Boolean Types: (Oracle does not have a native Boolean type in SQL; however, if numeric or text-based booleans are used, they are not handled by this string-based logic.)

      4. Binary/Other Complex Types:

        1. BLOB, RAW. (These types need specialized handling that isn’t included in the current query builder.)

        2. Not Supported by connector for the operator: Blob, Clob

    3. Sample Query SELECT * FROM "ORACLE"."customers" WHERE "ID" = 1 AND "ORDERS" = 2;

    4. Comments: Floating-point comparisons may be unreliable due to precision limits.

  2. LIKE

    1. GDQ Supported Data Types: CHAR, NCHAR, VARCHAR2, NVARCHAR2

    2. Not Supported by connector for the operator: NUMBER, FLOAT, INTERVAL, DATE, TIMESTAMP, BLOB, CLOB

    3. Sample Query: SELECT * FROM "ORACLE"."customers" WHERE "NAME" LIKE 'john%';

  3. I_LIKE

    1. GDQ Supported Data Types: CHAR, NCHAR, VARCHAR2, NVARCHAR2 (Using LOWER, UPPER, INITCAP)

    2. Not Supported by connector for the operator: NUMBER, FLOAT, INTERVAL, DATE, TIMESTAMP, BLOB, CLOB

    3. Sample Query: SELECT * FROM "ORACLE"."customers" WHERE LOWER("NAME") LIKE 'sample%';

Oracle does not support ILIKE; case-insensitive matching can be done using LOWER(), UPPER(), or INITCAP().

  1. IS_NOT_EMPTY / IS_EMPTY

    1. GDQ Supported Data Types: CHAR, NCHAR, VARCHAR2, NVARCHAR2

    2. Not Supported by connector for the operator: NUMBER, FLOAT, INTERVAL, DATE, TIMESTAMP, BLOB, CLOB

    3. Sample Query: SELECT * FROM "ORACLE"."customers" WHERE COALESCE(LENGTH(TRIM("NAME")), 0) <> 0;

  2. IS_NULL / IS_NOT_NULL

    1. GDQ Supported Data Types: CHAR, NCHAR, VARCHAR2, NVARCHAR2

    2. Not Supported by connector for the operator: NUMBER, FLOAT, INTERVAL, DATE, TIMESTAMP, BLOB, CLOB

    3. Sample Query: SELECT * FROM "ORACLE"."customers" WHERE "NAME" IS NULL

Teradata

Supported Operators and Data Types

  1. EQUALS

    1. GDQ Supported Data Types: VARCHAR, CHAR

    2. GDQ not supported Data Types:

      1. Numeric Types: INTEGER, SMALLINT, BIGINT, BYTEINT, DECIMAL, FLOAT, etc. (Because the code always treats condition values as strings, numeric comparisons may fail or cause conversion issues.)

      2. Date and Time Types: DATE, TIME, TIMESTAMP, etc. (These types require specific formatting and parsing, which the current implementation does not provide.)

      3. Boolean Types: BOOLEAN (There’s no logic to handle true/false conditions; these are not supported in the current approach.)

      4. Binary/Complex Types: BLOB, VARBYTE, and other non-text types (Such types usually need specialized handling that isn’t present in this string-focused query builder.) Not Supported by connector for the operator:: Blob, Clob, Json

    3. Sample Query: SELECT * FROM "ovaledgedb"."customer" WHERE "ID" = 127;

  2. LIKE

    1. GDQ Supported Data Types: VARCHAR, CHAR

    2. Not Supported by connector for the operator: Numeric types, DATE, TIME, VARBYTE, BYTE, Blob, Clob, Json

    3. Sample Query: SELECT * FROM "ovaledgedb"."customer" WHERE "name" LIKE 'A%';

  3. I_LIKE

    1. GDQ Supported Data Types: VARCHAR, CHAR (Using NOT CASESPECIFIC)

    2. Not Supported by connector for the operator: NUMERIC, DATE, TIME, TIMESTAMP, VARBYTE, BYTE, BLOB, CLOB, JSON

  4. IS_NOT_EMPTY / IS_EMPTY

    1. GDQ Supported Data Types: VARCHAR, CHAR

    2. Not Supported by connector for the operator: NUMERIC, DATE, TIME, TIMESTAMP, VARBYTE, BYTE, BLOB, CLOB, JSON

  5. IS_NULL / IS_NOT_NULL

    1. GDQ Supported Data Types: VARCHAR, CHAR

    2. Not Supported by connector for the operator: NUMERIC, DATE, TIME, TIMESTAMP, VARBYTE, BYTE, BLOB, CLOB, JSON

Redshift

Supported Operators and Data Types

  1. EQUALS

    1. GDQ Supported Data Types: VARCHAR, CHAR

    2. GDQ not supported Data Types:

      1. Numeric Types: INTEGER, BIGINT, DECIMAL, FLOAT, NT2, INT4, INT8, NUMERIC, FLOAT4, FLOAT8 (Enclosing numeric literals in quotes can lead to conversion issues unless Redshift performs an implicit cast, which isn’t guaranteed.)

      2. Date/Time Types: DATE, TIMESTAMP, TIME. (These require precise literal formatting and conversion logic that the current builder does not implement.)

      3. Boolean Types: BOOLEAN (There is no specific handling for true/false values, so conditions on boolean columns may not work as intended.)

      4. Binary or Complex Types: BINARY, VARBYTE, and any other non-string types (These need special functions or conversions that are not part of this implementation.) Not Supported by connector for the operator: BLOB, CLOB, JSON

    3. Sample Query: SELECT * FROM "ovaledgedb"."salesinfo"."sales_data" WHERE "id" = 1;

    4. Comments: In Redshift, the FLOAT and DOUBLE data types are used to represent approximate numeric values. The FLOAT type is a single-precision floating-point number stored in 4 bytes, while the DOUBLE type is a double-precision floating-point number stored in 8 bytes. Due to their approximate nature and limited precision, these types can lead to rounding errors when the number of digits exceeds their precision limits. Consequently, using the equality operator (=) for comparisons may not yield accurate results, as seemingly identical values might differ slightly in their binary representation.

  2. LIKE

    1. GDQ Supported Data Types: VARCHAR, CHAR

    2. Not Supported by connector for the operator: Numeric types, BOOLEAN, DATE, TIMESTAMP

    3. Sample Query: SELECT * FROM "ovaledgedb"."salesinfo"."sales_data" WHERE "varchar_col" LIKE 'Sample%';

  3. ILIKE

    1. GDQ Supported Data Types: VARCHAR, CHAR

    2. Not Supported by connector for the operator: NUMERIC, FLOAT types, BOOLEAN, TIMESTAMP, DATE

    3. Sample Query: SELECT * FROM "ovaledgedb"."salesinfo"."sales_data" WHERE "varchar_col" ILIKE 'Sample%';

  4. IS_NOT_EMPTY / IS_EMPTY

    1. GDQ Supported Data Types: VARCHAR, CHAR

    2. Not Supported by connector for the operator: NUMERIC, FLOAT types, BOOLEAN, TIMESTAMP, DATE

  5. ILIKE

    1. GDQ Supported Data Types: VARCHAR, CHAR, NUMERIC, FLOAT types, BOOLEAN, TIMESTAMP, DATE

    2. Not Supported by connector for the operator:

  6. IS_NULL / IS_NOT_NULL

    1. GDQ Supported Data Types: VARCHAR, CHAR

    2. Not Supported by connector for the operator: NUMERIC, FLOAT types, BOOLEAN, TIMESTAMP, DATE

SalesForce

Supported Operators and Data Types

  1. EQUALS

    1. GDQ Supported Data Types: ID, Reference, String, Picklist, Textarea, URL, Phone

    2. GDQ not supported Data Types: Boolean, Double, Int, Datetime, Date, currency

    3. Data Types with No Test Data Available: Address, Percent, Multi-picklist, email (The above mentioned data types may or maynot work as we don’t have the test data for testing)

  2. LIKE

    1. GDQ Supported Data Types: String, Picklist, Textarea, URL, Phone

    2. GDQ not supported Data Types: Boolean, Double, Int, Datetime, Date, currency, ID

    3. Data Types with No Test Data Available: Address, Percent, Multi-picklist, email (The above mentioned data types may or maynot work as we don’t have the test data for testing)

  3. IS EMPTY

    1. GDQ Supported Data Types: ID, Reference, String, Picklist, Textarea, URL, Phone

    2. GDQ not supported Data Types: Boolean, Double, Int, Datetime, Date, currency

    3. Data Types with No Test Data Available: Address, Percent, Multi-picklist, email (The above mentioned data types may or maynot work as we don’t have the test data for testing)

  4. IS NOT EMPTY

    1. GDQ Supported Data Types: ID, Reference, String, Picklist, Textarea, URL, Phone

    2. GDQ not supported Data Types: Boolean, Double, Int, Datetime, Date, currency

    3. Data Types with No Test Data Available: Address, Percent, Multi-picklist, email (The above mentioned data types may or maynot work as we don’t have the test data for testing)

  5. IS NULL

    1. GDQ Supported Data Types: ID, Reference, String, Picklist, Textarea, URL, Phone

    2. GDQ not supported Data Types: Boolean, Double, Int, Datetime, Date, currency

    3. Data Types with No Test Data Available: Address, Percent, Multi-picklist, email (The above mentioned data types may or maynot work as we don’t have the test data for testing)

  6. IS NOT NULL Currenlty not supporting for any data type


Copyright © 2025, OvalEdge LLC, Peachtree Corners, GA USA

Last updated

Was this helpful?