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

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).

Search Document