Airport Tables with RowId
Pseudocolumns
In DuckDB, the rowid
pseudocolumn serves as a unique row identifier that is derived from the physical storage of the row.
For native DuckDB tables, this identifier is typically represented as a unique BIGINT
value.
Tables that are supplied via the Airport extension can optionally include a rowid
pseudocolumn.
To enable an Airport table to have a rowid
column, the Arrow schema that defines the table must include a single field where the field’s metadata includes a key named is_rowid
with a non-empty string value.
Key Constraints and Data Types
- Each table can have at most one
rowid
column. - The
rowid
column does not have to be of typeBIGINT
; it can be of any Arrow data type.
Responsibilities of the Arrow Flight Server
The Arrow Flight server is responsible for:
- Ensuring that the values in the
rowid
column are unique across all endpoints, - Properly handling filtering operations based on the
rowid
column.
Implications of tables without rowid
columns.
DuckDB is not able to perform row-wise
UPDATE
orDELETE
operations on tables that do not have arowid
pseudocolumn.The DuckDB UI does not work well with tables that don’t have a
rowid
column as it is hard to scroll through result sets.