class Cql::Column(T)

Overview

A column in a table This class represents a column in a table It provides methods for setting the column type, default value, and constraints It also provides methods for building expressions

Example Creating a new column

schema.build do
 table :users do
  column :name, String, null: false, default: "John"
  column :age, Int32, null: false
end

Direct Known Subclasses

Defined in:

column.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(name : Symbol, type : T.class, as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Index | Nil = nil) #

[View source]

Instance Method Detail

def default : DB::Any #

[View source]
def expression #

Expressions for this column

  • @return [Expression::ColumnBuilder] the column expression builder

Example

column = Cql::Column.new(:name, String)
column.expression.eq("John")

[View source]
def index=(index : Index | Nil) #

[View source]
def index? : Index | Nil #

[View source]
def length : Int32 | Nil #

[View source]
def length=(length : Int32 | Nil) #

[View source]
def name : Symbol #

[View source]
def name=(name : Symbol) #

[View source]
def null? : Bool #

[View source]
def table : Table | Nil #

[View source]
def table=(table : Table | Nil) #

[View source]
def type : Any #

[View source]
def type=(type : Any) #

[View source]
def unique? : Bool #

[View source]
def validate!(value) #

Validate the value

  • @param value [DB::Any] The value to validate

Example

column = Cql::Column.new(:name, String)
column.validate!("John")

[View source]