1#![cfg_attr(coverage, feature(coverage_attribute))]
4
5extern crate self as lance_core;
7
8use arrow_schema::{DataType, Field as ArrowField};
9use std::sync::LazyLock;
10
11pub mod cache;
12pub mod container;
13pub mod datatypes;
14pub mod deepsize;
15pub mod error;
16pub mod levenshtein;
17pub mod traits;
18pub mod utils;
19
20pub use error::{ArrowResult, Error, Result, box_error};
21
22pub const WILDCARD: &str = "*";
24pub const ROW_ID: &str = "_rowid";
26pub const ROW_ADDR: &str = "_rowaddr";
28pub const ROW_OFFSET: &str = "_rowoffset";
30pub const ROW_LAST_UPDATED_AT_VERSION: &str = "_row_last_updated_at_version";
32pub const ROW_CREATED_AT_VERSION: &str = "_row_created_at_version";
34
35pub static ROW_ID_FIELD: LazyLock<ArrowField> =
38 LazyLock::new(|| ArrowField::new(ROW_ID, DataType::UInt64, true));
39pub static ROW_ADDR_FIELD: LazyLock<ArrowField> =
42 LazyLock::new(|| ArrowField::new(ROW_ADDR, DataType::UInt64, true));
43pub static ROW_OFFSET_FIELD: LazyLock<ArrowField> =
46 LazyLock::new(|| ArrowField::new(ROW_OFFSET, DataType::UInt64, true));
47pub static ROW_LAST_UPDATED_AT_VERSION_FIELD: LazyLock<ArrowField> =
49 LazyLock::new(|| ArrowField::new(ROW_LAST_UPDATED_AT_VERSION, DataType::UInt64, true));
50pub static ROW_CREATED_AT_VERSION_FIELD: LazyLock<ArrowField> =
52 LazyLock::new(|| ArrowField::new(ROW_CREATED_AT_VERSION, DataType::UInt64, true));
53
54pub fn is_system_column(column_name: &str) -> bool {
64 matches!(
65 column_name,
66 ROW_ID | ROW_ADDR | ROW_OFFSET | ROW_LAST_UPDATED_AT_VERSION | ROW_CREATED_AT_VERSION
67 )
68}