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
rowidcolumn. - The
rowidcolumn 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
rowidcolumn are unique across all endpoints, - Properly handling filtering operations based on the
rowidcolumn.
Implications of tables without rowid columns.
DuckDB is not able to perform row-wise
UPDATEorDELETEoperations on tables that do not have arowidpseudocolumn.The DuckDB UI does not work well with tables that don’t have a
rowidcolumn as it is hard to scroll through result sets.