Foreign Table Type Mapping
This guide provides essential data type mappings between external data sources and Tacnode for foreign table operations.
ORC and Parquet Type Mapping
| External Type | Tacnode Type | Notes | 
|---|---|---|
| BOOLEAN | BOOLEAN | Direct mapping | 
| TINYINT | SMALLINT | Promoted for compatibility | 
| SMALLINT | SMALLINT | Direct mapping | 
| INT | INTEGER | Direct mapping | 
| BIGINT | BIGINT | Direct mapping | 
| FLOAT | REAL | Direct mapping | 
| DOUBLE | DOUBLE PRECISION | Direct mapping | 
| DECIMAL(p,s) | DECIMAL(p,s) | Precision preserved | 
| STRING | TEXT | Variable length text | 
| VARCHAR(n) | VARCHAR(n) | Length preserved | 
| CHAR(n) | CHAR(n) | Fixed length preserved | 
| BINARY | BYTEA | Binary data mapping | 
| TIMESTAMP | TIMESTAMP | Direct mapping | 
| DATE | DATE | Direct mapping | 
| ARRAY<type> | type[] | Array element type mapped | 
| MAP | Not Available | Complex type not supported | 
| STRUCT | Not Available | Complex type not supported | 
Delta Lake Type Mapping
| External Type | Tacnode Type | Notes | 
|---|---|---|
| boolean | BOOLEAN | Direct mapping | 
| short | SMALLINT | Direct mapping | 
| integer | INTEGER | Direct mapping | 
| long | BIGINT | Direct mapping | 
| float | REAL | Direct mapping | 
| double | DOUBLE PRECISION | Direct mapping | 
| decimal(p,s) | DECIMAL(p,s) | Precision preserved | 
| string | TEXT | Variable length text | 
| varchar(n) | VARCHAR(n) | Length preserved | 
| char(n) | CHAR(n) | Fixed length preserved | 
| binary | BYTEA | Binary data mapping | 
| date | DATE | Direct mapping | 
| timestamp | TIMESTAMP | Direct mapping | 
| array<type> | type[] | Array element type mapped | 
| map | Not Available | Complex type not supported | 
| struct | Not Available | Complex type not supported | 
Apache Iceberg Type Mapping
| External Type | Tacnode Type | Notes | 
|---|---|---|
| boolean | BOOLEAN | Direct mapping | 
| int | INTEGER | 32-bit signed integer | 
| long | BIGINT | 64-bit signed integer | 
| float | REAL | 32-bit IEEE 754 floating point | 
| double | DOUBLE PRECISION | 64-bit IEEE 754 floating point | 
| decimal(p,s) | DECIMAL(p,s) | Precision preserved | 
| date | DATE | Direct mapping | 
| time | TIME | Microsecond precision | 
| timestamp | TIMESTAMP | Microsecond precision | 
| timestamptz | TIMESTAMPTZ | Timestamp with timezone | 
| string | TEXT | Variable length text | 
| uuid | UUID | Direct mapping | 
| fixed(L) | BYTEA | Fixed-length binary | 
| binary | BYTEA | Variable-length binary | 
| list<type> | type[] | Array element type mapped | 
| map<K,V> | Not Available | Complex type not supported | 
| struct | Not Available | Complex type not supported | 
Important Notes
Complex Types: MAP and STRUCT types are not supported in foreign tables. Tables containing these types may require preprocessing or schema flattening.
Array Types: Only simple arrays are supported. Array element types are recursively mapped according to the rules above.
Precision Preservation: DECIMAL types maintain their precision and scale parameters when supported by the underlying storage format.
Workarounds: For complex types, consider:
- Flattening nested structures during data preparation
- Using alternative serialization formats
- Preprocessing data to extract only supported column types