pgsql-ast-parser
Advanced tools
Comparing version 1.2.3 to 1.3.0
@@ -12,17 +12,17 @@ import * as a from './syntax/ast'; | ||
dataType?: (dataType: a.DataTypeDef) => a.DataTypeDef; | ||
tableRef?: (st: a.TableRefAliased) => a.TableRefAliased | nil; | ||
tableRef?: (st: a.QNameAliased) => a.QNameAliased | nil; | ||
transaction?: (val: a.CommitStatement | a.RollbackStatement | a.StartTransactionStatement) => a.Statement | nil; | ||
createIndex?: (val: a.CreateIndexStatement) => a.Statement | nil; | ||
alterTable?: (st: a.AlterTableStatement) => a.Statement | nil; | ||
dropColumn?: (change: a.TableAlterationDropColumn, table: a.TableRefAliased) => a.TableAlteration | nil; | ||
renameConstraint?: (change: a.TableAlterationRenameConstraint, table: a.TableRefAliased) => a.TableAlteration | nil; | ||
setTableOwner?: (change: a.TableAlterationOwner, table: a.TableRefAliased) => a.TableAlteration | nil; | ||
renameColumn?: (change: a.TableAlterationRenameColumn, table: a.TableRefAliased) => a.TableAlteration | nil; | ||
renameTable?: (change: a.TableAlterationRename, table: a.TableRefAliased) => a.TableAlteration | nil; | ||
alterColumn?: (change: a.TableAlterationAlterColumn, inTable: a.TableRefAliased) => a.TableAlteration | nil; | ||
setColumnType?: (alter: a.AlterColumnSetType, inTable: a.TableRef, inColumn: string) => a.AlterColumn | nil; | ||
alterColumnSimple?: (alter: a.AlterColumnSimple, inTable: a.TableRef, inColumn: string) => a.AlterColumn | nil; | ||
setColumnDefault?: (alter: a.AlterColumnSetDefault, inTable: a.TableRef, inColumn: string) => a.AlterColumn | nil; | ||
addConstraint?: (change: a.TableAlterationAddConstraint, inTable: a.TableRef) => a.TableAlteration | nil; | ||
addColumn?: (change: a.TableAlterationAddColumn, inTable: a.TableRef) => a.TableAlteration | nil; | ||
dropColumn?: (change: a.TableAlterationDropColumn, table: a.QNameAliased) => a.TableAlteration | nil; | ||
renameConstraint?: (change: a.TableAlterationRenameConstraint, table: a.QNameAliased) => a.TableAlteration | nil; | ||
setTableOwner?: (change: a.TableAlterationOwner, table: a.QNameAliased) => a.TableAlteration | nil; | ||
renameColumn?: (change: a.TableAlterationRenameColumn, table: a.QNameAliased) => a.TableAlteration | nil; | ||
renameTable?: (change: a.TableAlterationRename, table: a.QNameAliased) => a.TableAlteration | nil; | ||
alterColumn?: (change: a.TableAlterationAlterColumn, inTable: a.QNameAliased) => a.TableAlteration | nil; | ||
setColumnType?: (alter: a.AlterColumnSetType, inTable: a.QName, inColumn: string) => a.AlterColumn | nil; | ||
alterColumnSimple?: (alter: a.AlterColumnSimple, inTable: a.QName, inColumn: string) => a.AlterColumn | nil; | ||
setColumnDefault?: (alter: a.AlterColumnSetDefault, inTable: a.QName, inColumn: string) => a.AlterColumn | nil; | ||
addConstraint?: (change: a.TableAlterationAddConstraint, inTable: a.QName) => a.TableAlteration | nil; | ||
addColumn?: (change: a.TableAlterationAddColumn, inTable: a.QName) => a.TableAlteration | nil; | ||
createColumn?: (col: a.CreateColumnDef) => a.CreateColumnDef | nil; | ||
@@ -116,3 +116,3 @@ selection?: (val: a.SelectStatement) => a.SelectStatement | nil; | ||
/** Called when an alias of a table is created */ | ||
tableRef(st: a.TableRefAliased): a.TableRefAliased | nil; | ||
tableRef(st: a.QNameAliased): a.QNameAliased | nil; | ||
transaction(val: a.CommitStatement | a.RollbackStatement | a.StartTransactionStatement): a.Statement | nil; | ||
@@ -122,13 +122,13 @@ createExtension(val: a.CreateExtensionStatement): a.Statement | nil; | ||
alterTable(st: a.AlterTableStatement): a.Statement | nil; | ||
dropColumn(change: a.TableAlterationDropColumn, table: a.TableRefAliased): a.TableAlteration | nil; | ||
setTableOwner(change: a.TableAlterationOwner, table: a.TableRefAliased): a.TableAlteration | nil; | ||
renameConstraint(change: a.TableAlterationRenameConstraint, table: a.TableRefAliased): a.TableAlteration | nil; | ||
renameColumn(change: a.TableAlterationRenameColumn, table: a.TableRefAliased): a.TableAlteration | nil; | ||
renameTable(change: a.TableAlterationRename, table: a.TableRefAliased): a.TableAlteration | nil; | ||
alterColumn(change: a.TableAlterationAlterColumn, inTable: a.TableRefAliased): a.TableAlteration | nil; | ||
setColumnType(alter: a.AlterColumnSetType, inTable: a.TableRef, inColumn: string): a.AlterColumn | nil; | ||
alterColumnSimple(alter: a.AlterColumnSimple, inTable: a.TableRef, inColumn: string): a.AlterColumn | nil; | ||
setColumnDefault(alter: a.AlterColumnSetDefault, inTable: a.TableRef, inColumn: string): a.AlterColumn | nil; | ||
addConstraint(change: a.TableAlterationAddConstraint, inTable: a.TableRef): a.TableAlteration | nil; | ||
addColumn(change: a.TableAlterationAddColumn, inTable: a.TableRef): a.TableAlteration | nil; | ||
dropColumn(change: a.TableAlterationDropColumn, table: a.QNameAliased): a.TableAlteration | nil; | ||
setTableOwner(change: a.TableAlterationOwner, table: a.QNameAliased): a.TableAlteration | nil; | ||
renameConstraint(change: a.TableAlterationRenameConstraint, table: a.QNameAliased): a.TableAlteration | nil; | ||
renameColumn(change: a.TableAlterationRenameColumn, table: a.QNameAliased): a.TableAlteration | nil; | ||
renameTable(change: a.TableAlterationRename, table: a.QNameAliased): a.TableAlteration | nil; | ||
alterColumn(change: a.TableAlterationAlterColumn, inTable: a.QNameAliased): a.TableAlteration | nil; | ||
setColumnType(alter: a.AlterColumnSetType, inTable: a.QName, inColumn: string): a.AlterColumn | nil; | ||
alterColumnSimple(alter: a.AlterColumnSimple, inTable: a.QName, inColumn: string): a.AlterColumn | nil; | ||
setColumnDefault(alter: a.AlterColumnSetDefault, inTable: a.QName, inColumn: string): a.AlterColumn | nil; | ||
addConstraint(change: a.TableAlterationAddConstraint, inTable: a.QName): a.TableAlteration | nil; | ||
addColumn(change: a.TableAlterationAddColumn, inTable: a.QName): a.TableAlteration | nil; | ||
createColumn(col: a.CreateColumnDef): a.CreateColumnDef | nil; | ||
@@ -135,0 +135,0 @@ selection(val: a.SelectStatement): a.SelectStatement | nil; |
{ | ||
"name": "pgsql-ast-parser", | ||
"version": "1.2.3", | ||
"version": "1.3.0", | ||
"description": "Yet another simple Postgres SQL parser/modifier", | ||
@@ -14,3 +14,3 @@ "main": "index.js", | ||
"deno:gen": "nearleyc src/syntax/main.ne -o .deno/syntax/main.ne.ts && nearleyc src/literal-syntaxes/array.ne -o .deno/literal-syntaxes/array.ne.ts", | ||
"build:deno": "node ./deno-transpile.js --copy && npm run deno:gen && node ./deno-transpile.js --process", | ||
"build:deno": "rimraf .deno && node ./deno-transpile.js --copy && npm run deno:gen && node ./deno-transpile.js --process", | ||
"test": "mochapack src/**/*.spec.ts", | ||
@@ -17,0 +17,0 @@ "cover": "cross-env NODE_ENV=coverage nyc --reporter=lcov --reporter=text npm run test" |
@@ -65,3 +65,3 @@ 🏃♀️ `pgsql-ast-parser` is a Postgres SQL syntax parser. It produces a typed AST (Abstract Syntax Tree), covering the most common syntaxes of pgsql. | ||
tableRef: t => tables.add(t.table), | ||
tableRef: t => tables.add(t.name), | ||
join: t => { | ||
@@ -117,3 +117,3 @@ joins++; | ||
tableRef: t => { | ||
if (t.table === 'foo') { | ||
if (t.name === 'foo') { | ||
return { | ||
@@ -123,3 +123,3 @@ // Dont do that... see below | ||
...t, | ||
table: 'bar', | ||
name: 'bar', | ||
} | ||
@@ -126,0 +126,0 @@ } |
@@ -150,3 +150,3 @@ import 'mocha'; | ||
tableRef: t => { | ||
if (t.table === 'foo') { | ||
if (t.name === 'foo') { | ||
return { | ||
@@ -156,3 +156,3 @@ // Dont do that... see below | ||
...t, | ||
table: 'bar', | ||
name: 'bar', | ||
} | ||
@@ -174,2 +174,18 @@ } | ||
it('allows super call', () => { | ||
// create a mapper | ||
const mapper = astMapper(map => ({ | ||
tableRef: t => { | ||
const sup = map.super(); | ||
return sup.tableRef(t); | ||
} | ||
})) | ||
// parse + map + reconvert to sql | ||
const modified = mapper.statement(parseFirst('select * from foo')); | ||
assert.exists(modified); | ||
expect(toSql.statement(modified!)).to.equal('SELECT * FROM "foo"'); | ||
}) | ||
it('removes node', () => { | ||
@@ -188,2 +204,41 @@ // create a mapper | ||
it('runs deno test - match', () => { | ||
const mapper = astMapper(map => ({ | ||
tableRef: t => { | ||
if (t.name === 'foo') { | ||
return { | ||
...t, | ||
name: 'bar', | ||
} | ||
} | ||
return map.super().tableRef(t); | ||
} | ||
})) | ||
// parse + map + reconvert to sql | ||
const modified = mapper.statement(parseFirst('select * from foo')); | ||
expect(toSql.statement(modified!)).to.equal(`SELECT * FROM "bar"`); | ||
}) | ||
it('runs deno test - nomatch', () => { | ||
const mapper = astMapper(map => ({ | ||
tableRef: t => { | ||
if (t.name === 'other') { | ||
return { | ||
...t, | ||
name: 'bar', | ||
} | ||
} | ||
return map.super().tableRef(t); | ||
} | ||
})) | ||
// parse + map + reconvert to sql | ||
const modified = mapper.statement(parseFirst('select * from foo')); | ||
expect(toSql.statement(modified!)).to.equal(`SELECT * FROM "foo"`); | ||
}) | ||
}); |
@@ -15,17 +15,17 @@ import * as a from './syntax/ast'; | ||
dataType?: (dataType: a.DataTypeDef) => a.DataTypeDef | ||
tableRef?: (st: a.TableRefAliased) => a.TableRefAliased | nil | ||
tableRef?: (st: a.QNameAliased) => a.QNameAliased | nil | ||
transaction?: (val: a.CommitStatement | a.RollbackStatement | a.StartTransactionStatement) => a.Statement | nil | ||
createIndex?: (val: a.CreateIndexStatement) => a.Statement | nil | ||
alterTable?: (st: a.AlterTableStatement) => a.Statement | nil | ||
dropColumn?: (change: a.TableAlterationDropColumn, table: a.TableRefAliased) => a.TableAlteration | nil | ||
renameConstraint?: (change: a.TableAlterationRenameConstraint, table: a.TableRefAliased) => a.TableAlteration | nil | ||
setTableOwner?: (change: a.TableAlterationOwner, table: a.TableRefAliased) => a.TableAlteration | nil | ||
renameColumn?: (change: a.TableAlterationRenameColumn, table: a.TableRefAliased) => a.TableAlteration | nil | ||
renameTable?: (change: a.TableAlterationRename, table: a.TableRefAliased) => a.TableAlteration | nil | ||
alterColumn?: (change: a.TableAlterationAlterColumn, inTable: a.TableRefAliased) => a.TableAlteration | nil | ||
setColumnType?: (alter: a.AlterColumnSetType, inTable: a.TableRef, inColumn: string) => a.AlterColumn | nil | ||
alterColumnSimple?: (alter: a.AlterColumnSimple, inTable: a.TableRef, inColumn: string) => a.AlterColumn | nil | ||
setColumnDefault?: (alter: a.AlterColumnSetDefault, inTable: a.TableRef, inColumn: string) => a.AlterColumn | nil | ||
addConstraint?: (change: a.TableAlterationAddConstraint, inTable: a.TableRef) => a.TableAlteration | nil | ||
addColumn?: (change: a.TableAlterationAddColumn, inTable: a.TableRef) => a.TableAlteration | nil | ||
dropColumn?: (change: a.TableAlterationDropColumn, table: a.QNameAliased) => a.TableAlteration | nil | ||
renameConstraint?: (change: a.TableAlterationRenameConstraint, table: a.QNameAliased) => a.TableAlteration | nil | ||
setTableOwner?: (change: a.TableAlterationOwner, table: a.QNameAliased) => a.TableAlteration | nil | ||
renameColumn?: (change: a.TableAlterationRenameColumn, table: a.QNameAliased) => a.TableAlteration | nil | ||
renameTable?: (change: a.TableAlterationRename, table: a.QNameAliased) => a.TableAlteration | nil | ||
alterColumn?: (change: a.TableAlterationAlterColumn, inTable: a.QNameAliased) => a.TableAlteration | nil | ||
setColumnType?: (alter: a.AlterColumnSetType, inTable: a.QName, inColumn: string) => a.AlterColumn | nil | ||
alterColumnSimple?: (alter: a.AlterColumnSimple, inTable: a.QName, inColumn: string) => a.AlterColumn | nil | ||
setColumnDefault?: (alter: a.AlterColumnSetDefault, inTable: a.QName, inColumn: string) => a.AlterColumn | nil | ||
addConstraint?: (change: a.TableAlterationAddConstraint, inTable: a.QName) => a.TableAlteration | nil | ||
addColumn?: (change: a.TableAlterationAddColumn, inTable: a.QName) => a.TableAlteration | nil | ||
createColumn?: (col: a.CreateColumnDef) => a.CreateColumnDef | nil | ||
@@ -383,3 +383,3 @@ selection?: (val: a.SelectStatement) => a.SelectStatement | nil | ||
/** Called when an alias of a table is created */ | ||
tableRef(st: a.TableRefAliased): a.TableRefAliased | nil { | ||
tableRef(st: a.QNameAliased): a.QNameAliased | nil { | ||
return st; | ||
@@ -477,15 +477,15 @@ } | ||
dropColumn(change: a.TableAlterationDropColumn, table: a.TableRefAliased): a.TableAlteration | nil { | ||
dropColumn(change: a.TableAlterationDropColumn, table: a.QNameAliased): a.TableAlteration | nil { | ||
return change; | ||
} | ||
setTableOwner(change: a.TableAlterationOwner, table: a.TableRefAliased): a.TableAlteration | nil { | ||
setTableOwner(change: a.TableAlterationOwner, table: a.QNameAliased): a.TableAlteration | nil { | ||
return change; | ||
} | ||
renameConstraint(change: a.TableAlterationRenameConstraint, table: a.TableRefAliased): a.TableAlteration | nil { | ||
renameConstraint(change: a.TableAlterationRenameConstraint, table: a.QNameAliased): a.TableAlteration | nil { | ||
return change; | ||
} | ||
renameColumn(change: a.TableAlterationRenameColumn, table: a.TableRefAliased): a.TableAlteration | nil { | ||
renameColumn(change: a.TableAlterationRenameColumn, table: a.QNameAliased): a.TableAlteration | nil { | ||
return change; | ||
@@ -495,7 +495,7 @@ } | ||
renameTable(change: a.TableAlterationRename, table: a.TableRefAliased): a.TableAlteration | nil { | ||
renameTable(change: a.TableAlterationRename, table: a.QNameAliased): a.TableAlteration | nil { | ||
return change; | ||
} | ||
alterColumn(change: a.TableAlterationAlterColumn, inTable: a.TableRefAliased): a.TableAlteration | nil { | ||
alterColumn(change: a.TableAlterationAlterColumn, inTable: a.QNameAliased): a.TableAlteration | nil { | ||
let alter: a.AlterColumn | nil; | ||
@@ -525,3 +525,3 @@ switch (change.alter.type) { | ||
setColumnType(alter: a.AlterColumnSetType, inTable: a.TableRef, inColumn: string): a.AlterColumn | nil { | ||
setColumnType(alter: a.AlterColumnSetType, inTable: a.QName, inColumn: string): a.AlterColumn | nil { | ||
const dataType = this.dataType(alter.dataType); | ||
@@ -534,7 +534,7 @@ return assignChanged(alter, { | ||
alterColumnSimple(alter: a.AlterColumnSimple, inTable: a.TableRef, inColumn: string): a.AlterColumn | nil { | ||
alterColumnSimple(alter: a.AlterColumnSimple, inTable: a.QName, inColumn: string): a.AlterColumn | nil { | ||
return alter; | ||
} | ||
setColumnDefault(alter: a.AlterColumnSetDefault, inTable: a.TableRef, inColumn: string): a.AlterColumn | nil { | ||
setColumnDefault(alter: a.AlterColumnSetDefault, inTable: a.QName, inColumn: string): a.AlterColumn | nil { | ||
const def = this.expr(alter.default); | ||
@@ -549,7 +549,7 @@ if (!def) { | ||
addConstraint(change: a.TableAlterationAddConstraint, inTable: a.TableRef): a.TableAlteration | nil { | ||
addConstraint(change: a.TableAlterationAddConstraint, inTable: a.QName): a.TableAlteration | nil { | ||
return change; | ||
} | ||
addColumn(change: a.TableAlterationAddColumn, inTable: a.TableRef): a.TableAlteration | nil { | ||
addColumn(change: a.TableAlterationAddColumn, inTable: a.QName): a.TableAlteration | nil { | ||
const column = this.createColumn(change.column); | ||
@@ -878,3 +878,3 @@ if (!column) { | ||
return function (this: SkipModifier, ...args: []) { | ||
return orig.apply(this.parent, args); | ||
return orig.apply(this.parent.wrapped, args); | ||
} | ||
@@ -881,0 +881,0 @@ } |
@@ -11,5 +11,7 @@ import 'mocha'; | ||
let visited = null; | ||
astVisitor(() => ({ | ||
const mapper = astVisitor(() => ({ | ||
ref: r => visited = r.name, | ||
})).expr({ | ||
})) | ||
debugger; | ||
mapper.expr({ | ||
type: 'unary', | ||
@@ -38,2 +40,21 @@ op: 'NOT', | ||
}); | ||
it('allow super call', () => { | ||
let visited = null; | ||
astVisitor(v => ({ | ||
ref: r => { | ||
visited = r.name; | ||
return v.super().ref(r); | ||
}, | ||
})).expr({ | ||
type: 'unary', | ||
op: 'NOT', | ||
operand: { | ||
type: 'ref', | ||
name: 'myRef' | ||
} | ||
}) | ||
expect(visited).to.equal('myRef'); | ||
}); | ||
}) |
@@ -40,3 +40,3 @@ import * as a from './syntax/ast'; | ||
// just ignore & forward call to mapper | ||
return orig.apply(this.mapper!.super(), args); | ||
return orig.apply(this, args); | ||
} | ||
@@ -43,0 +43,0 @@ // return first argument |
@@ -9,3 +9,3 @@ import 'mocha'; | ||
type: 'alter table', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
change: { | ||
@@ -19,3 +19,3 @@ type: 'rename', | ||
type: 'alter table', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
ifExists: true, | ||
@@ -31,3 +31,3 @@ only: true, | ||
type: 'alter table', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
only: true, | ||
@@ -42,3 +42,3 @@ change: { | ||
type: 'alter table', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
change: { | ||
@@ -53,3 +53,3 @@ type: 'rename column', | ||
type: 'alter table', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
change: { | ||
@@ -64,3 +64,3 @@ type: 'rename constraint', | ||
type: 'alter table', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
change: { | ||
@@ -78,3 +78,3 @@ type: 'add column', | ||
type: 'alter table', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
change: { | ||
@@ -93,3 +93,3 @@ type: 'add column', | ||
type: 'alter table', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
change: { | ||
@@ -104,3 +104,3 @@ type: 'drop column', | ||
type: 'alter table', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
change: { | ||
@@ -114,3 +114,3 @@ type: 'drop column', | ||
type: 'alter table', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
change: { | ||
@@ -127,3 +127,3 @@ type: 'alter column', | ||
type: 'alter table', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
change: { | ||
@@ -140,3 +140,3 @@ type: 'alter column', | ||
type: 'alter table', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
change: { | ||
@@ -152,3 +152,3 @@ type: 'alter column', | ||
type: 'alter table', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
change: { | ||
@@ -169,3 +169,3 @@ type: 'alter column', | ||
type: 'alter table', | ||
table: { table: 'tbl' }, | ||
table: { name: 'tbl' }, | ||
change: { | ||
@@ -188,3 +188,3 @@ type: 'add constraint', | ||
type: 'alter table', | ||
table: { table: 'tbl' }, | ||
table: { name: 'tbl' }, | ||
change: { | ||
@@ -211,3 +211,3 @@ type: 'add constraint', | ||
type: 'alter table', | ||
table: { table: 'photo' }, | ||
table: { name: 'photo' }, | ||
change: { | ||
@@ -231,3 +231,3 @@ type: 'add constraint', | ||
type: 'alter table', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
change: { | ||
@@ -246,3 +246,3 @@ type: 'add constraint', | ||
type: 'alter table', | ||
table: { table: 'tbl', schema: 'public'}, | ||
table: { name: 'tbl', schema: 'public'}, | ||
change: { | ||
@@ -249,0 +249,0 @@ type: 'owner', |
@@ -49,3 +49,3 @@ // import { IType } from '../../interfaces'; | ||
type: 'delete'; | ||
from: TableRefAliased; | ||
from: QNameAliased; | ||
returning?: SelectedColumn[] | nil; | ||
@@ -57,3 +57,3 @@ where?: Expr | nil; | ||
type: 'insert'; | ||
into: TableRefAliased; | ||
into: QNameAliased; | ||
returning?: SelectedColumn[] | nil; | ||
@@ -77,3 +77,3 @@ columns?: string[] | nil; | ||
type: 'alter table'; | ||
table: TableRefAliased; | ||
table: QNameAliased; | ||
only?: boolean; | ||
@@ -180,3 +180,3 @@ ifExists?: boolean; | ||
type: 'create index'; | ||
table: TableRef; | ||
table: QName; | ||
using?: string; | ||
@@ -200,4 +200,4 @@ expressions: IndexExpression[]; | ||
expression: Expr; | ||
opclass?: QualifiedName; | ||
collate?: QualifiedName; | ||
opclass?: QName; | ||
collate?: QName; | ||
order?: 'asc' | 'desc'; | ||
@@ -221,7 +221,7 @@ nulls?: 'first' | 'last'; | ||
constraints?: ColumnConstraint[]; | ||
collate?: QualifiedName; | ||
collate?: QName; | ||
} | ||
export interface QualifiedName { | ||
export interface QName { | ||
name: string; | ||
@@ -314,3 +314,3 @@ schema?: string; | ||
type: 'update'; | ||
table: TableRefAliased; | ||
table: QNameAliased; | ||
sets: SetStatement[]; | ||
@@ -333,12 +333,8 @@ where?: Expr | nil; | ||
export interface TableRef { | ||
table: string; | ||
schema?: string; | ||
} | ||
export interface TableRefAliased extends TableRef { | ||
export interface QNameAliased extends QName { | ||
alias?: string; | ||
} | ||
export interface FromTable extends TableRefAliased { | ||
export interface FromTable extends QNameAliased { | ||
type: 'table', | ||
@@ -543,3 +539,3 @@ join?: JoinClause | nil; | ||
export interface CreateSequenceStatement extends QualifiedName, CreateSequenceOptions { | ||
export interface CreateSequenceStatement extends QName, CreateSequenceOptions { | ||
type: 'create sequence'; | ||
@@ -567,3 +563,3 @@ temp?: boolean; | ||
export interface AlterSequenceStatement extends QualifiedName { | ||
export interface AlterSequenceStatement extends QName { | ||
type: 'alter sequence'; | ||
@@ -570,0 +566,0 @@ ifExists?: boolean; |
@@ -10,3 +10,3 @@ import 'mocha'; | ||
indexName: 'blah', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
expressions: [{ | ||
@@ -18,3 +18,3 @@ expression: { type: 'ref', name: 'col' }, | ||
type: 'create index', | ||
table: { table: 'test', }, | ||
table: { name: 'test', }, | ||
expressions: [{ | ||
@@ -31,3 +31,3 @@ expression: { type: 'ref', name: 'col' }, | ||
type: 'create index', | ||
table: { table: 'tbl', schema: 'public' }, | ||
table: { name: 'tbl', schema: 'public' }, | ||
using: 'btree', | ||
@@ -45,3 +45,3 @@ indexName: 'idxname', | ||
type: 'create index', | ||
table: { table: 'tbl', schema: 'public' }, | ||
table: { name: 'tbl', schema: 'public' }, | ||
using: 'btree', | ||
@@ -60,3 +60,3 @@ indexName: 'idxname', | ||
type: 'create index', | ||
table: { table: 'tbl', schema: 'public' }, | ||
table: { name: 'tbl', schema: 'public' }, | ||
using: 'btree', | ||
@@ -78,3 +78,3 @@ indexName: 'idxname', | ||
type: 'create index', | ||
table: { table: 'tbl' }, | ||
table: { name: 'tbl' }, | ||
using: 'gin', | ||
@@ -92,3 +92,3 @@ expressions: [{ | ||
type: 'create index', | ||
table: { table: 'tbl' }, | ||
table: { name: 'tbl' }, | ||
using: 'gin', | ||
@@ -108,3 +108,3 @@ expressions: [{ | ||
type: 'create index', | ||
table: { table: 'test', }, | ||
table: { name: 'test', }, | ||
expressions: [{ | ||
@@ -122,3 +122,3 @@ expression: { | ||
type: 'create index', | ||
table: { table: 'test', }, | ||
table: { name: 'test', }, | ||
expressions: [{ | ||
@@ -136,3 +136,3 @@ expression: { | ||
type: 'create index', | ||
table: { table: 'test', }, | ||
table: { name: 'test', }, | ||
expressions: [{ | ||
@@ -149,3 +149,3 @@ expression: { | ||
type: 'create index', | ||
table: { table: 'test', }, | ||
table: { name: 'test', }, | ||
ifNotExists: true, | ||
@@ -152,0 +152,0 @@ unique: true, |
@@ -9,3 +9,3 @@ import 'mocha'; | ||
type: 'delete', | ||
from: { table: 'test' }, | ||
from: { name: 'test' }, | ||
where: { | ||
@@ -22,3 +22,3 @@ type: 'binary', | ||
type: 'delete', | ||
from: { table: 'test' }, | ||
from: { name: 'test' }, | ||
}); | ||
@@ -28,3 +28,3 @@ | ||
type: 'delete', | ||
from: { table: 'test' }, | ||
from: { name: 'test' }, | ||
returning: [{ | ||
@@ -31,0 +31,0 @@ expr: { type: 'ref', name: '*' } |
@@ -799,3 +799,3 @@ import 'mocha'; | ||
columns: [{ expr: { type: 'ref', name: '*' } }], | ||
from: [{ type: 'table', table: 'tbl' }], | ||
from: [{ type: 'table', name: 'tbl' }], | ||
}] | ||
@@ -813,3 +813,3 @@ } | ||
columns: [{ expr: { type: 'ref', name: '*' } }], | ||
from: [{ type: 'table', table: 'tb' }], | ||
from: [{ type: 'table', name: 'tb' }], | ||
} | ||
@@ -816,0 +816,0 @@ }); |
@@ -9,3 +9,3 @@ import 'mocha'; | ||
type: 'insert', | ||
into: { table: 'test' }, | ||
into: { name: 'test' }, | ||
columns: ['a', 'b'], | ||
@@ -23,3 +23,3 @@ values: [[{ | ||
type: 'insert', | ||
into: { table: 'test' }, | ||
into: { name: 'test' }, | ||
columns: ['a'], | ||
@@ -34,3 +34,3 @@ values: [[{ | ||
type: 'insert', | ||
into: { table: 'test' }, | ||
into: { name: 'test' }, | ||
columns: ['a'], | ||
@@ -48,3 +48,3 @@ values: [[{ | ||
type: 'insert', | ||
into: { table: 'test' }, | ||
into: { name: 'test' }, | ||
columns: ['a'], | ||
@@ -66,3 +66,3 @@ values: [[{ | ||
type: 'insert', | ||
into: { table: 'test' }, | ||
into: { name: 'test' }, | ||
columns: ['a'], | ||
@@ -85,3 +85,3 @@ values: [[{ | ||
type: 'insert', | ||
into: { table: 'test' }, | ||
into: { name: 'test' }, | ||
returning: [{ expr: { type: 'ref', name: 'id' } }], | ||
@@ -96,3 +96,3 @@ values: [[{ | ||
type: 'insert', | ||
into: { table: 'test' }, | ||
into: { name: 'test' }, | ||
returning: [{ expr: { type: 'ref', name: 'id' }, alias: 'x' }], | ||
@@ -106,3 +106,3 @@ values: [[{ | ||
type: 'insert', | ||
into: { table: 'test' }, | ||
into: { name: 'test' }, | ||
returning: [{ expr: { type: 'ref', name: 'id' } }, { expr: { type: 'ref', name: 'val' } }], | ||
@@ -117,3 +117,3 @@ values: [[{ | ||
type: 'insert', | ||
into: { table: 'test', schema: 'db' }, | ||
into: { name: 'test', schema: 'db' }, | ||
columns: ['a', 'b'], | ||
@@ -133,3 +133,3 @@ values: [[{ | ||
type: 'insert', | ||
into: { table: 'test', schema: 'db' }, | ||
into: { name: 'test', schema: 'db' }, | ||
columns: ['a', 'b'], | ||
@@ -140,3 +140,3 @@ select: { | ||
type: 'table', | ||
table: 'test', | ||
name: 'test', | ||
schema: 'x' | ||
@@ -160,3 +160,3 @@ }], | ||
type: 'insert', | ||
into: { table: 'test' }, | ||
into: { name: 'test' }, | ||
select: { | ||
@@ -166,3 +166,3 @@ type: 'select', | ||
type: 'table', | ||
table: 'test' | ||
name: 'test' | ||
}], | ||
@@ -181,3 +181,3 @@ columns: [{ | ||
type: 'insert', | ||
into: { table: 'test' }, | ||
into: { name: 'test' }, | ||
columns: ['a', 'b'], | ||
@@ -184,0 +184,0 @@ values: [[{ |
@@ -43,3 +43,3 @@ import 'mocha'; | ||
type: 'select', | ||
from: [{ type: 'table', table: 'test' }], | ||
from: [{ type: 'table', name: 'test' }], | ||
columns: noAlias([{ type: 'ref', name: '*' }]) | ||
@@ -50,3 +50,3 @@ }); | ||
type: 'select', | ||
from: [{ type: 'table', table: 'current_schema' }], | ||
from: [{ type: 'table', name: 'current_schema' }], | ||
columns: noAlias([{ type: 'ref', name: '*' }]) | ||
@@ -57,3 +57,3 @@ }); | ||
type: 'select', | ||
from: [{ type: 'table', table: 'test' }], | ||
from: [{ type: 'table', name: 'test' }], | ||
columns: [{ | ||
@@ -70,3 +70,3 @@ expr: { type: 'ref', name: 'a' }, | ||
type: 'select', | ||
from: [{ type: 'table', table: 'test', schema: 'db' }], | ||
from: [{ type: 'table', name: 'test', schema: 'db' }], | ||
columns: noAlias([{ type: 'ref', name: '*' }]), | ||
@@ -78,3 +78,3 @@ }); | ||
type: 'select', | ||
from: [{ type: 'table', table: 'test' }], | ||
from: [{ type: 'table', name: 'test' }], | ||
columns: noAlias([{ type: 'ref', name: '*' }]), | ||
@@ -86,3 +86,3 @@ limit: { limit: 5 }, | ||
type: 'select', | ||
from: [{ type: 'table', table: 'test' }], | ||
from: [{ type: 'table', name: 'test' }], | ||
columns: noAlias([{ type: 'ref', name: '*' }]), | ||
@@ -94,3 +94,3 @@ limit: { limit: 0 }, | ||
type: 'select', | ||
from: [{ type: 'table', table: 'test' }], | ||
from: [{ type: 'table', name: 'test' }], | ||
columns: noAlias([{ type: 'ref', name: '*' }]), | ||
@@ -102,3 +102,3 @@ limit: { limit: 5, offset: 3 }, | ||
type: 'select', | ||
from: [{ type: 'table', table: 'test' }], | ||
from: [{ type: 'table', name: 'test' }], | ||
columns: noAlias([{ type: 'ref', name: '*' }]), | ||
@@ -111,3 +111,3 @@ limit: { offset: 3 }, | ||
type: 'select', | ||
from: [{ type: 'table', table: 'test' }], | ||
from: [{ type: 'table', name: 'test' }], | ||
columns: noAlias([{ type: 'ref', name: '*' }]), | ||
@@ -124,3 +124,3 @@ limit: { limit: 3 }, | ||
type: 'select', | ||
from: [{ type: 'table', table: 'test' }], | ||
from: [{ type: 'table', name: 'test' }], | ||
columns: noAlias([{ type: 'ref', name: '*' }]), | ||
@@ -162,3 +162,3 @@ orderBy: [{ | ||
type: 'select', | ||
from: [{ type: 'table', table: 'test', alias: 'a' }], | ||
from: [{ type: 'table', name: 'test', alias: 'a' }], | ||
columns: noAlias([{ type: 'ref', name: '*' }]), | ||
@@ -193,3 +193,3 @@ where: { | ||
type: 'select', | ||
from: [{ type: 'table', table: 'test' }], | ||
from: [{ type: 'table', name: 'test' }], | ||
columns: noAlias([{ type: 'ref', name: 'id' }]), | ||
@@ -204,3 +204,3 @@ }, | ||
columns: noAlias([{ type: 'ref', name: '*' }]), | ||
from: [{ type: 'table', table: 'test' }], | ||
from: [{ type: 'table', name: 'test' }], | ||
groupBy: [{ type: 'ref', name: 'grp' }] | ||
@@ -212,3 +212,3 @@ }) | ||
columns: noAlias([{ type: 'ref', name: '*' }]), | ||
from: [{ type: 'table', table: 'test' }], | ||
from: [{ type: 'table', name: 'test' }], | ||
groupBy: [ | ||
@@ -227,6 +227,6 @@ { type: 'ref', name: 'a' }, | ||
type: 'table', | ||
table: 'ta' | ||
name: 'ta' | ||
}, { | ||
type: 'table', | ||
table: 'tb', | ||
name: 'tb', | ||
join: { | ||
@@ -233,0 +233,0 @@ type: t, |
@@ -9,3 +9,3 @@ import 'mocha'; | ||
type: 'update', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
sets: [{ | ||
@@ -19,3 +19,3 @@ column: 'a', | ||
type: 'update', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
sets: [{ | ||
@@ -35,3 +35,3 @@ column: 'a', | ||
type: 'update', | ||
table: { table: 'test' }, | ||
table: { name: 'test' }, | ||
sets: [{ | ||
@@ -38,0 +38,0 @@ column: 'a', |
import { IAstPartialMapper, AstDefaultMapper } from './ast-mapper'; | ||
import { astVisitor, IAstVisitor, IAstFullVisitor } from './ast-visitor'; | ||
import { NotSupported, nil, ReplaceReturnType } from './utils'; | ||
import { TableConstraint, JoinClause, ColumnConstraint, AlterSequenceStatement, CreateSequenceStatement, AlterSequenceSetOptions, CreateSequenceOptions, QualifiedName, SetGlobalValue } from './syntax/ast'; | ||
import { TableConstraint, JoinClause, ColumnConstraint, AlterSequenceStatement, CreateSequenceStatement, AlterSequenceSetOptions, CreateSequenceOptions, QName, SetGlobalValue } from './syntax/ast'; | ||
import { literal } from './pg-escape'; | ||
@@ -76,3 +76,3 @@ | ||
} | ||
function visitQualifiedName(cs: QualifiedName) { | ||
function visitQualifiedName(cs: QName) { | ||
if (cs.schema) { | ||
@@ -709,3 +709,3 @@ ret.push(name(cs.schema), '.'); | ||
} | ||
ret.push(name(r.table)); | ||
ret.push(name(r.name)); | ||
if (r.alias) { | ||
@@ -712,0 +712,0 @@ ret.push(' AS ', name(r.alias)); |
@@ -27,3 +27,3 @@ import { nil } from '../utils'; | ||
type: 'delete'; | ||
from: TableRefAliased; | ||
from: QNameAliased; | ||
returning?: SelectedColumn[] | nil; | ||
@@ -34,3 +34,3 @@ where?: Expr | nil; | ||
type: 'insert'; | ||
into: TableRefAliased; | ||
into: QNameAliased; | ||
returning?: SelectedColumn[] | nil; | ||
@@ -52,3 +52,3 @@ columns?: string[] | nil; | ||
type: 'alter table'; | ||
table: TableRefAliased; | ||
table: QNameAliased; | ||
only?: boolean; | ||
@@ -127,3 +127,3 @@ ifExists?: boolean; | ||
type: 'create index'; | ||
table: TableRef; | ||
table: QName; | ||
using?: string; | ||
@@ -145,4 +145,4 @@ expressions: IndexExpression[]; | ||
expression: Expr; | ||
opclass?: QualifiedName; | ||
collate?: QualifiedName; | ||
opclass?: QName; | ||
collate?: QName; | ||
order?: 'asc' | 'desc'; | ||
@@ -164,5 +164,5 @@ nulls?: 'first' | 'last'; | ||
constraints?: ColumnConstraint[]; | ||
collate?: QualifiedName; | ||
collate?: QName; | ||
} | ||
export interface QualifiedName { | ||
export interface QName { | ||
name: string; | ||
@@ -228,3 +228,3 @@ schema?: string; | ||
type: 'update'; | ||
table: TableRefAliased; | ||
table: QNameAliased; | ||
sets: SetStatement[]; | ||
@@ -243,10 +243,6 @@ where?: Expr | nil; | ||
export declare type From = FromTable | FromStatement; | ||
export interface TableRef { | ||
table: string; | ||
schema?: string; | ||
} | ||
export interface TableRefAliased extends TableRef { | ||
export interface QNameAliased extends QName { | ||
alias?: string; | ||
} | ||
export interface FromTable extends TableRefAliased { | ||
export interface FromTable extends QNameAliased { | ||
type: 'table'; | ||
@@ -384,3 +380,3 @@ join?: JoinClause | nil; | ||
}; | ||
export interface CreateSequenceStatement extends QualifiedName, CreateSequenceOptions { | ||
export interface CreateSequenceStatement extends QName, CreateSequenceOptions { | ||
type: 'create sequence'; | ||
@@ -404,3 +400,3 @@ temp?: boolean; | ||
} | ||
export interface AlterSequenceStatement extends QualifiedName { | ||
export interface AlterSequenceStatement extends QName { | ||
type: 'alter sequence'; | ||
@@ -407,0 +403,0 @@ ifExists?: boolean; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
8714
796264