Skip to content

Commit 69245d7

Browse files
committed
Build deno [autogenerated commit]
1 parent 33385c1 commit 69245d7

4 files changed

Lines changed: 38 additions & 6 deletions

File tree

.deno/ast-mapper.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,15 @@ export class AstDefaultMapper implements IAstMapper {
606606
case 'primary key':
607607
case 'unique':
608608
case 'add generated':
609+
if (c.type === 'add generated' && c.expression) {
610+
const expression = this.expr(c.expression);
611+
if (!expression) {
612+
return null;
613+
}
614+
return assignChanged(c, {
615+
expression,
616+
});
617+
}
609618
return c;
610619
case 'default': {
611620
const def = this.expr(c.default);

.deno/syntax/ast.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,8 @@ export interface AlterColumnSetDefault extends PGNode {
387387
export interface AlterColumnAddGenerated extends PGNode {
388388
type: 'add generated',
389389
always?: 'always' | 'by default';
390+
expression?: Expr;
391+
stored?: true;
390392
constraintName?: Name;
391393
sequence?: {
392394
name?: QName;
@@ -680,7 +682,7 @@ export interface ForStatement extends PGNode {
680682
}
681683

682684
export interface SkipClause extends PGNode {
683-
type: 'nowait' | 'skip locked'
685+
type: 'nowait' | 'skip locked'
684686
}
685687

686688
export interface LimitStatement extends PGNode {

.deno/syntax/main.ne.ts

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,7 @@ const grammar: Grammar = {
555555
{"name": "kw_replace", "symbols": [(lexerAny.has("word") ? {type: "word"} : word)], "postprocess": notReservedKw('replace')},
556556
{"name": "kw_recursive", "symbols": [(lexerAny.has("word") ? {type: "word"} : word)], "postprocess": notReservedKw('recursive')},
557557
{"name": "kw_view", "symbols": [(lexerAny.has("word") ? {type: "word"} : word)], "postprocess": notReservedKw('view')},
558+
{"name": "kw_stored", "symbols": [(lexerAny.has("word") ? {type: "word"} : word)], "postprocess": notReservedKw('stored')},
558559
{"name": "kw_cascaded", "symbols": [(lexerAny.has("word") ? {type: "word"} : word)], "postprocess": notReservedKw('cascaded')},
559560
{"name": "kw_unlogged", "symbols": [(lexerAny.has("word") ? {type: "word"} : word)], "postprocess": notReservedKw('unlogged')},
560561
{"name": "kw_global", "symbols": [(lexerAny.has("word") ? {type: "word"} : word)], "postprocess": notReservedKw('global')},
@@ -2338,14 +2339,24 @@ const grammar: Grammar = {
23382339
{"name": "altercol_generated$ebnf$1$subexpression$1", "symbols": ["kw_by", (lexerAny.has("kw_default") ? {type: "kw_default"} : kw_default)]},
23392340
{"name": "altercol_generated$ebnf$1", "symbols": ["altercol_generated$ebnf$1$subexpression$1"], "postprocess": id},
23402341
{"name": "altercol_generated$ebnf$1", "symbols": [], "postprocess": () => null},
2341-
{"name": "altercol_generated$subexpression$1", "symbols": [(lexerAny.has("kw_as") ? {type: "kw_as"} : kw_as), "kw_identity"]},
2342-
{"name": "altercol_generated$ebnf$2$subexpression$1", "symbols": ["lparen", "altercol_generated_seq", "rparen"], "postprocess": get(1)},
2342+
{"name": "altercol_generated$ebnf$2$subexpression$1", "symbols": [(lexerAny.has("kw_as") ? {type: "kw_as"} : kw_as), "kw_identity"]},
23432343
{"name": "altercol_generated$ebnf$2", "symbols": ["altercol_generated$ebnf$2$subexpression$1"], "postprocess": id},
23442344
{"name": "altercol_generated$ebnf$2", "symbols": [], "postprocess": () => null},
2345-
{"name": "altercol_generated", "symbols": ["kw_generated", "altercol_generated$ebnf$1", "altercol_generated$subexpression$1", "altercol_generated$ebnf$2"], "postprocess": x => track(x, {
2345+
{"name": "altercol_generated$ebnf$3$subexpression$1", "symbols": [(lexerAny.has("kw_as") ? {type: "kw_as"} : kw_as), "lparen", "expr", "rparen"], "postprocess": get(2)},
2346+
{"name": "altercol_generated$ebnf$3", "symbols": ["altercol_generated$ebnf$3$subexpression$1"], "postprocess": id},
2347+
{"name": "altercol_generated$ebnf$3", "symbols": [], "postprocess": () => null},
2348+
{"name": "altercol_generated$ebnf$4$subexpression$1", "symbols": ["lparen", "altercol_generated_seq", "rparen"], "postprocess": get(1)},
2349+
{"name": "altercol_generated$ebnf$4", "symbols": ["altercol_generated$ebnf$4$subexpression$1"], "postprocess": id},
2350+
{"name": "altercol_generated$ebnf$4", "symbols": [], "postprocess": () => null},
2351+
{"name": "altercol_generated$ebnf$5$subexpression$1", "symbols": ["kw_stored"]},
2352+
{"name": "altercol_generated$ebnf$5", "symbols": ["altercol_generated$ebnf$5$subexpression$1"], "postprocess": id},
2353+
{"name": "altercol_generated$ebnf$5", "symbols": [], "postprocess": () => null},
2354+
{"name": "altercol_generated", "symbols": ["kw_generated", "altercol_generated$ebnf$1", "altercol_generated$ebnf$2", "altercol_generated$ebnf$3", "altercol_generated$ebnf$4", "altercol_generated$ebnf$5"], "postprocess": x => track(x, {
23462355
type: 'add generated',
23472356
...x[1] && { always: toStr(x[1], ' ') },
2348-
...x[3] && { sequence: unwrap(x[3]) },
2357+
...x[3] && { expression: unwrap(x[3]) },
2358+
...x[4] && { sequence: unwrap(x[4]) },
2359+
...x[5] && { stored: true },
23492360
}) },
23502361
{"name": "altercol_generated_seq$ebnf$1$subexpression$1", "symbols": ["kw_sequence", "kw_name", "qualified_name"]},
23512362
{"name": "altercol_generated_seq$ebnf$1", "symbols": ["altercol_generated_seq$ebnf$1$subexpression$1"], "postprocess": id},

.deno/to-sql.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,14 @@ function visitGenerated(m: IAstVisitor, alter: AlterColumnAddGenerated) {
159159
if (alter.always) {
160160
ret.push(alter.always.toUpperCase(), ' ');
161161
}
162-
ret.push('AS IDENTITY ');
162+
ret.push('AS ');
163+
if (alter.expression) {
164+
ret.push('(');
165+
m.expr(alter.expression);
166+
ret.push(') ');
167+
} else {
168+
ret.push('IDENTITY ');
169+
}
163170
if (alter.sequence) {
164171
ret.push('(');
165172
if (alter.sequence.name) {
@@ -170,6 +177,9 @@ function visitGenerated(m: IAstVisitor, alter: AlterColumnAddGenerated) {
170177
visitSeqOpts(m, alter.sequence);
171178
ret.push(') ');
172179
}
180+
if (alter.stored) {
181+
ret.push('STORED ');
182+
}
173183
}
174184
function visitSeqOpts(m: IAstVisitor, cs: AlterSequenceSetOptions | CreateSequenceOptions) {
175185
if (cs.as) {

0 commit comments

Comments
 (0)