Skip to main content

proof_of_sql/base/database/
mod.rs

1//! Module with database related functionality. In particular, this module contains the
2//! accessor traits and the `OwnedTable` type along with some utility functions to convert
3//! between Arrow and `OwnedTable`.
4mod accessor;
5pub use accessor::{
6    CommitmentAccessor, DataAccessor, MetadataAccessor, SchemaAccessor, SchemaAccessorImpl,
7};
8
9mod column;
10pub use column::Column;
11
12mod column_type;
13pub use column_type::ColumnType;
14
15mod column_ref;
16pub use column_ref::ColumnRef;
17
18mod column_field;
19pub use column_field::ColumnField;
20
21mod data_accessor_impl;
22pub use data_accessor_impl::{DataAccessorImpl, TableDataAccessor};
23
24#[cfg_attr(not(test), expect(dead_code))]
25pub(crate) mod slice_operation;
26
27mod slice_decimal_operation;
28
29mod column_type_operation;
30pub use column_type_operation::{
31    can_and_or_types, can_not_type, try_add_subtract_column_types,
32    try_add_subtract_column_types_with_scaling, try_cast_types, try_divide_column_types,
33    try_equals_types, try_equals_types_with_scaling, try_inequality_types,
34    try_inequality_types_with_scaling, try_multiply_column_types, try_neg_type,
35    try_scale_cast_types,
36};
37
38mod column_arithmetic_operation;
39pub(super) use column_arithmetic_operation::{AddOp, ArithmeticOp, DivOp, MulOp, SubOp};
40
41mod column_comparison_operation;
42pub(super) use column_comparison_operation::{ComparisonOp, EqualOp, GreaterThanOp, LessThanOp};
43
44mod column_index_operation;
45pub(super) use column_index_operation::apply_column_to_indexes;
46
47mod column_repetition_operation;
48pub(super) use column_repetition_operation::{ColumnRepeatOp, ElementwiseRepeatOp, RepetitionOp};
49
50mod column_operation_error;
51pub use column_operation_error::{ColumnOperationError, ColumnOperationResult};
52
53mod table_operation_error;
54pub use table_operation_error::{TableOperationError, TableOperationResult};
55
56mod columnar_value;
57pub use columnar_value::ColumnarValue;
58
59mod literal_value;
60pub use literal_value::LiteralValue;
61
62mod error;
63pub use error::ParseError;
64
65mod table_ref;
66#[cfg(feature = "arrow")]
67pub use crate::base::arrow::{
68    arrow_array_to_column_conversion::{ArrayRefExt, ArrowArrayToColumnConversionError},
69    owned_and_arrow_conversions::OwnedArrowConversionError,
70    scalar_and_i256_conversions,
71};
72pub use table_ref::TableRef;
73
74#[cfg(feature = "arrow")]
75pub mod arrow_schema_utility;
76
77mod owned_column;
78pub use owned_column::OwnedColumn;
79
80mod owned_column_error;
81pub(crate) use owned_column_error::ColumnCoercionError;
82pub use owned_column_error::{OwnedColumnError, OwnedColumnResult};
83
84/// Module providing element-wise operations on [`OwnedColumn`] types.
85///
86/// This module implements arithmetic, comparison, and logical operations
87/// for columns including NOT, AND, OR, addition, subtraction, multiplication,
88/// division, and equality/inequality comparisons.
89pub(crate) mod owned_column_operation;
90
91mod owned_table;
92pub(crate) use owned_table::TableCoercionError;
93pub use owned_table::{OwnedTable, OwnedTableError};
94#[cfg(test)]
95mod owned_table_test;
96pub mod owned_table_utility;
97
98mod table;
99#[cfg(test)]
100pub(crate) use table::TableError;
101pub use table::{Table, TableOptions};
102#[cfg(test)]
103mod table_test;
104pub mod table_utility;
105
106mod table_evaluation;
107pub use table_evaluation::TableEvaluation;
108
109mod test_accessor;
110pub use test_accessor::TestAccessor;
111
112mod owned_table_test_accessor;
113pub use owned_table_test_accessor::OwnedTableTestAccessor;
114#[cfg(all(test, feature = "blitzar"))]
115mod owned_table_test_accessor_test;
116
117mod table_test_accessor;
118pub use table_test_accessor::TableTestAccessor;
119#[cfg(all(test, feature = "blitzar"))]
120mod table_test_accessor_test;
121
122/// Module providing utilities for filtering columns based on selection vectors.
123///
124/// This module contains functions to filter columns by boolean selection vectors
125/// or by index vectors, returning new columns containing only the selected rows.
126pub(crate) mod filter_util;
127#[cfg(test)]
128mod filter_util_test;
129
130pub(crate) mod group_by_util;
131#[cfg(test)]
132mod group_by_util_test;
133
134pub(crate) mod union_util;
135
136pub(crate) mod order_by_util;
137#[cfg(test)]
138mod order_by_util_test;
139
140#[cfg_attr(not(test), expect(dead_code))]
141pub(crate) mod join_util;