Airport Tables with rowid Pseudocolumns
In DuckDB, the rowid pseudocolumn serves as a unique row identifier derived from the physical storage location.
For native DuckDB tables, this identifier is typically a unique BIGINT value. Airport-managed tables can optionally provide a rowid pseudocolumn with similar functionality.
To enable an Airport table to have a rowid column, the Arrow schema that defines the table must include a single field whose metadata contains 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
Limitations:
No row-wise modifications — DuckDB cannot perform
UPDATEorDELETEoperations on tables without arowidpseudocolumn.Poor UI experience — The DuckDB UI has difficulty scrolling through result sets from tables lacking a
rowidcolumn, as it relies on row identifiers for efficient pagination.