Alasdair Ellis
10/29/2026, 3:49 PMkapa.ai
10/29/2026, 3:49 PMSTRING type to VARCHAR(65535) unconditionally, regardless of the original column length in the source. [Data type map]
This is also hardcoded in the connector's data type enum: [RedshiftDataType.kt]
VARCHAR("varchar(65535)"),
Additionally, when the connector reads back the schema from Redshift's information_schema, it normalizes all character varying columns back to varchar(65535), ignoring the actual declared length: [RedshiftAirbyteClient.kt]
"character varying" -> "varchar(65535)"
Why this design choice exists The rationale is likely safety and simplicity â Airbyte's type system abstracts away source-specific precision/length details to avoid truncation errors when syncing data. If a source column is declared VARCHAR(500) but a row somehow contains more data, using a smaller destination type could cause failures.
What you can do The knowledge sources do not describe any configuration option to change this behavior. Your practical options are limited to:
1. Post-processing: After sync, ALTER COLUMN the specific columns you care about to a smaller VARCHAR size (if you know the data fits).
2. Create views: Build views on top of the Airbyte-synced tables that CAST columns to smaller types for query performance.
3. Feature request: Open or upvote a GitHub issue on the Airbyte repository requesting source-length-aware VARCHAR sizing for the Redshift destination.
Your concern about query performance is valid â Redshift does allocate memory based on declared column widths in some operations, so VARCHAR(65535) across the board can impact sort/hash performance. Unfortunately, the connector does not currently support mirroring source lengths. đ 0 button đ 0 button âšī¸ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.