lance_core/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright The Lance Authors
3
4use arrow_schema::{DataType, Field as ArrowField};
5use std::sync::LazyLock;
6
7pub mod cache;
8pub mod container;
9pub mod datatypes;
10pub mod error;
11pub mod traits;
12pub mod utils;
13
14pub use error::{ArrowResult, Error, Result};
15
16/// Column name for the meta row ID.
17pub const ROW_ID: &str = "_rowid";
18/// Column name for the meta row address.
19pub const ROW_ADDR: &str = "_rowaddr";
20/// Column name for the meta row offset.
21pub const ROW_OFFSET: &str = "_rowoffset";
22
23/// Row ID field. This is nullable because its validity bitmap is sometimes used
24/// as a selection vector.
25pub static ROW_ID_FIELD: LazyLock<ArrowField> =
26    LazyLock::new(|| ArrowField::new(ROW_ID, DataType::UInt64, true));
27/// Row address field. This is nullable because its validity bitmap is sometimes used
28/// as a selection vector.
29pub static ROW_ADDR_FIELD: LazyLock<ArrowField> =
30    LazyLock::new(|| ArrowField::new(ROW_ADDR, DataType::UInt64, true));
31/// Row offset field. This is nullable merely for compatibility with the other
32/// fields.
33pub static ROW_OFFSET_FIELD: LazyLock<ArrowField> =
34    LazyLock::new(|| ArrowField::new(ROW_OFFSET, DataType::UInt64, true));