final class ColumnDefinition
Public API: explicitly declared with @visibility public.

A column declaration, before a query can change its nullability.

Accept this semantic value in a database-independent consumerdoctest
$consume = static fn (\SqlSemantics\Core\Schema\ColumnDefinition $value): string => $value::class;
    $consume instanceof \Closure // => true

Properties§

public string $name
public Nullability $nullability
public Element $source
public Element|null $defaultExpression = null
public ?ColumnGeneration $generation = null
public ?Element $collation = null
public bool $autoIncrement = false
public list<Element> $attributes = []

Methods§

public function __construct(
    public string $name,
    public TypeDescriptor $type,
    public Nullability $nullability,
    public Element $source,
    public Element|null $defaultExpression = null,
    public ?ColumnGeneration $generation = null,
    public ?Element $collation = null,
    public bool $autoIncrement = false,
    public list<Element> $attributes = [],
)

Parameters

$namestringResolved column name
$typeTypeDescriptorDeclared database type
$nullabilityNullabilityDeclaration-level NULL allowance
$sourceElementTyped column declaration
$defaultExpressionElement|nullTyped default clause, evaluated on insertion
$generation?ColumnGeneration
$collation?Element
$autoIncrementbool
$attributeslist<Element>Complete typed column attributes, in declaration order

Throws

InvalidArgumentException When supplied state violates its invariants
Calls 3
public function withNullability(Nullability $nullability): self

Refines a column's NULL fact while preserving all declaration data.

Parameters

$nullabilityNullability

Returns

self

Throws

InvalidArgumentException When supplied state violates its invariants
Calls 1

Test cases 60§

Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.

Dedicated tests 1
Other tests reaching this symbol 59

Relations§

Instantiated in 1
Constant reads 1
Type declarations 7