• T
    Reimplement parsing and storage of default expressions and constraint · eabc714a
    Tom Lane 提交于
    expressions in CREATE TABLE.  There is no longer an emasculated expression
    syntax for these things; it's full a_expr for constraints, and b_expr
    for defaults (unfortunately the fact that NOT NULL is a part of the
    column constraint syntax causes a shift/reduce conflict if you try a_expr.
    Oh well --- at least parenthesized boolean expressions work now).  Also,
    stored expression for a column default is not pre-coerced to the column
    type; we rely on transformInsertStatement to do that when the default is
    actually used.  This means "f1 datetime default 'now'" behaves the way
    people usually expect it to.
    BTW, all the support code is now there to implement ALTER TABLE ADD
    CONSTRAINT and ALTER TABLE ADD COLUMN with a default value.  I didn't
    actually teach ALTER TABLE to call it, but it wouldn't be much work.
    eabc714a
outfuncs.c 32.8 KB