sqlode/query_analyzer/context
Types
pub type AnalysisError {
TableNotFound(query_name: String, table_name: String)
ColumnNotFound(
query_name: String,
table_name: String,
column_name: String,
)
ParameterTypeNotInferred(query_name: String, param_index: Int)
ParameterTypeConflict(
query_name: String,
param_index: Int,
type_a: model.ScalarType,
type_b: model.ScalarType,
)
UnrecognizedCastType(
query_name: String,
param_index: Int,
cast_type: String,
)
CompoundColumnCountMismatch(
query_name: String,
first_count: Int,
branch_count: Int,
)
UnsupportedExpression(query_name: String, expression: String)
AmbiguousColumnName(
query_name: String,
column_name: String,
matching_tables: List(String),
)
}
Constructors
-
TableNotFound(query_name: String, table_name: String) -
ColumnNotFound( query_name: String, table_name: String, column_name: String, ) -
ParameterTypeNotInferred(query_name: String, param_index: Int) -
ParameterTypeConflict( query_name: String, param_index: Int, type_a: model.ScalarType, type_b: model.ScalarType, ) -
UnrecognizedCastType( query_name: String, param_index: Int, cast_type: String, ) -
CompoundColumnCountMismatch( query_name: String, first_count: Int, branch_count: Int, ) -
UnsupportedExpression(query_name: String, expression: String) -
AmbiguousColumnName( query_name: String, column_name: String, matching_tables: List(String), )
pub type AnalyzerContext {
AnalyzerContext(naming: naming.NamingContext)
}
Constructors
-
AnalyzerContext(naming: naming.NamingContext)
Values
pub fn analysis_error_to_string(error: AnalysisError) -> String
pub fn find_column(
catalog: model.Catalog,
table_name: String,
column_name: String,
) -> option.Option(model.Column)
pub fn find_column_in_tables(
catalog: model.Catalog,
table_names: List(String),
column_name: String,
) -> Result(option.Option(#(String, model.Column)), List(String))
Search for a column across multiple tables, returning the column and the table name where it was found.
Returns Error(matching_table_names) when the column exists in more than
one of the given tables (ambiguous reference).
pub fn new(naming_ctx: naming.NamingContext) -> AnalyzerContext