Skip to main content

Crate rudb_functions

Crate rudb_functions 

Source
Expand description

The scalar, aggregate and window function library.

Rank 7 in the layer rule. See xtask/layers.toml and spec/18-package-layout.md.

Most of what is here is the signature half: given a name and the types of the arguments, which function is that and what does it return. The implementations are separate work and they go behind the same names, so the binder does not change when they arrive.

file is the exception and it reads a file. A table function that scans a Parquet file cannot be resolved from a table of names, because its columns are in the file, so resolving one means opening it. That is the only I/O in this crate and it is the reason rudb-io and rudb-parquet are dependencies of it.

Re-exports§

pub use entrycatalog::DUCKDB;
pub use entrycatalog::canonical;
pub use entrycatalog::column_fields;
pub use entrycatalog::database_fields;
pub use entrycatalog::numeric_facts;
pub use entrycatalog::schema_fields;
pub use entrycatalog::table_fields;
pub use file::csv_fields;
pub use file::csv_given;
pub use file::files;
pub use file::is_file;
pub use file::is_pattern;
pub use file::open_csv;
pub use file::open_parquet;
pub use file::parquet_fields;
pub use functioncatalog::CONSISTENT;
pub use functioncatalog::FUNCTION_CATALOG;
pub use functioncatalog::FUNCTION_SCHEMA;
pub use functioncatalog::FunctionEntry;
pub use functioncatalog::function_entries;
pub use functioncatalog::function_fields;
pub use settingcatalog::GLOBAL;
pub use settingcatalog::SETTINGS;
pub use settingcatalog::SettingEntry;
pub use settingcatalog::setting_fields;
pub use settingcatalog::setting_named;
pub use settingcatalog::unknown_setting;
pub use signature::FunctionKind;
pub use signature::FunctionRow;
pub use signature::Resolved;
pub use signature::function_rows;
pub use signature::kind_of;
pub use signature::part_type;
pub use signature::resolve;
pub use table::Columns;
pub use table::FILE_ROW_NUMBER;
pub use table::ResolvedTable;
pub use table::TableFunction;
pub use table::keyword_categories;
pub use table::keyword_fields;
pub use table::resolve_table;
pub use table::series;
pub use table::series_length;
pub use table::strategy_fields;
pub use typecatalog::Signature;
pub use typecatalog::TYPE_NAMES;
pub use typecatalog::TypeEntry;
pub use typecatalog::representative;
pub use typecatalog::sort_key;
pub use typecatalog::type_category;
pub use typecatalog::type_fields;
pub use typecatalog::type_oid;
pub use typecatalog::type_size;

Modules§

entrycatalog
The columns of the tables that describe what somebody created.
file
The table functions that read a file, which today are read_parquet and read_csv.
functioncatalog
What duckdb_functions() says about each function this engine knows.
settingcatalog
What duckdb_settings() says about each setting this engine has.
signature
What a function call resolves to.
table
What a table function call resolves to.
typecatalog
What duckdb_types() says about each type name this engine knows.

Structs§

Given
What the caller said about how the file is written, where the sniffer would otherwise decide.