pgsql-ast-parser icon indicating copy to clipboard operation
pgsql-ast-parser copied to clipboard

Table statements with `GENERATED ALWAYS AS ( generation_expr ) STORED` column constraint fail to parse

Open valeneiko opened this issue 3 years ago • 0 comments

Parsing:

ALTER TABLE foo
ADD bar BOOLEAN NOT NULL GENERATED ALWAYS AS (
  foo_bar = TRUE
) STORED;

or

CREATE TABLE foo (
  bar text NULL,
  is_bar BOOLEAN GENERATED ALWAYS AS (
    bar IS NOT NULL
  ) STORED
);

Fails with:

Error: Syntax error at line 2 col 46:

  ADD bar BOOLEAN NOT NULL GENERATED ALWAYS AS (
                                               ^
Unexpected lparen token: "(". Instead, I was expecting to see one of the following:

    - A "word" token


    at Parser.feed (/src/node_modules/nearley/lib/nearley.js:343:27)
    at _parse (/src/node_modules/pgsql-ast-parser/src/parser.ts:110:16)
    at doParse (/src/node_modules/pgsql-ast-parser/src/parser.ts:57:27)
    at Object.parse (/src/node_modules/pgsql-ast-parser/src/parser.ts:60:11)

valeneiko avatar Jun 29 '22 11:06 valeneiko