class CQL::DerivedTable

Overview

A table-shaped view of a statement's select list, so CTEs and subqueries in FROM are addressable by the DSL exactly like schema tables. A table built inline also remembers the statement it renders as (SELECT ...) AS alias.

Defined in:

derived_table.cr

Constructors

Instance Method Summary

Instance methods inherited from class CQL::Table

add_index(columns : Array(Symbol), unique : Bool = false, name : String | Nil = nil) : Index add_index, as_name : String | Nil as_name, bigint(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false) bigint, blob(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false) blob, boolean(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false) boolean, check_constraint(condition : String, name : String | Nil = nil) check_constraint, check_constraints : Array(CheckConstraint) check_constraints, column(name : Symbol, type : T.class, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false) forall T column, columns : Hash(Symbol, BaseColumn) columns, columns_changed! : Nil columns_changed!, columns_revision : Int32 columns_revision, create! create!, create_index_sqls(generator : Expression::Generator = schema.new_generator) : Array(String) create_index_sqls, create_sql create_sql, create_statements : Array(String) create_statements, date(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false) date, double(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false) double, drop! drop!, drop_sql drop_sql, expression expression, float(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false) float, foreign_key(columns local_columns : Array(Symbol), references references_table : Symbol, references_columns : Array(Symbol) | Symbol | Nil = nil, name : String | Nil = nil, on_delete : Symbol = :no_action, on_update : Symbol = :no_action)
foreign_key(column local_column : Symbol, references references_table : Symbol, references_columns : Array(Symbol) | Symbol | Nil = nil, name : String | Nil = nil, on_delete : Symbol = :no_action, on_update : Symbol = :no_action)
foreign_key
, foreign_keys : Array(ForeignKey) foreign_keys, index(columns : Array(Symbol), unique : Bool = false, name : String | Nil = nil) : Index index, indexes : Array(Index) indexes, integer(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false) integer, interval(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false) interval, json(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false) json, lock_version(name : Symbol = :version, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = 1, index : Bool = false) lock_version, primary(name : Symbol, type : T.class = Int32, auto_increment : Bool = true) forall T
primary : BaseColumn
primary
, primary_key : BaseColumn | Nil primary_key, real(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false) real, referenced_columns(references_table : Symbol, references_columns : Array(Symbol) | Symbol | Nil) : Array(Symbol) referenced_columns, schema : Schema schema, table_name : Symbol table_name, table_name=(table_name : Symbol) table_name=, text(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false) text, timestamp(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false) timestamp, timestamps timestamps, truncate! truncate!, truncate_sql truncate_sql, unique_constraint(columns : Array(Symbol), name : String | Nil = nil) unique_constraint, unique_constraints : Array(UniqueConstraint) unique_constraints, varchar(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false) varchar, version_columns version_columns

Constructor methods inherited from class CQL::Table

new(table_name : Symbol, schema : Schema, as_name : String | Nil = nil) new

Macros inherited from class CQL::Table

method_missing(call) method_missing

Constructor Detail

def self.new(schema : Schema, name : Symbol, statement : Expression::Statement, inline : Bool = false) #

[View source]

Instance Method Detail

def primary : BaseColumn #

Derived tables have no primary key; the first column leads the select list.


[View source]
def subquery : Expression::Statement | Nil #

[View source]