Datatypes Conversion
When FastBCP exports a table, every native source column type is mapped to a type in the target output format. This section documents the exact mappings FastBCP produces.
These pages are not a specification: each one is the Parquet schema read back from a real export of a test table covering all of the source's native datatypes.
Supported Sources
Sources are grouped by database system. A system can be read through several connection types (--connectiontype), and each one has its own page because the mappings it produces can differ — pgcopy produces exactly the same mappings as pgsql, while the ADBC connectors differ from their standard counterparts on several types.
| Database | Connection Types |
|---|---|
| SQL Server | mssql · adbc_mssql |
| MySQL | mysql |
| Oracle | oraodp |
| PostgreSQL | pgsql · pgcopy · adbc_pgsql |
| SAP HANA | hana |
| Teradata | teradata |
Parquet is the only output format documented here.
How to Read a Page
Each page opens with a summary of the export it documents — source, output format, the FastBCP build used and the test status — followed by the Parquet schema produced from the testdatatypes_nullable table, in which every column accepts NULL.
| Column | Description |
|---|---|
| name | The column name in the source table |
| physical_type | The Parquet physical storage type: BOOLEAN, INT32, INT64, FLOAT, DOUBLE, BYTE_ARRAY or FIXED_LEN_BYTE_ARRAY |
| converted_type | The legacy Parquet annotation on top of it (UTF8, DECIMAL, DATE, TIMESTAMP_MILLIS, …) |
| logical_type | The modern Parquet annotation (StringType(), DecimalType(scale=2, precision=18), IntType(…), …) |
A — means the column carries no annotation of that kind, so the physical type alone describes it.
Declaring the source columns NOT NULL does not change the mapping. The only difference is the Parquet repetition level (REQUIRED instead of OPTIONAL), which these tables do not show.