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