pgsql-ast-parser
Advanced tools
Comparing version 2.1.0 to 2.1.1
@@ -57,2 +57,3 @@ import * as a from './syntax/ast'; | ||
setGlobal?(val: a.SetGlobalStatement): a.Statement | nil; | ||
setTimezone?(val: a.SetTimezone): a.Statement | nil; | ||
createSequence?(seq: a.CreateSequenceStatement): a.Statement | nil; | ||
@@ -118,2 +119,3 @@ alterSequence?(seq: a.AlterSequenceStatement): a.Statement | nil; | ||
setGlobal(val: a.SetGlobalStatement): a.Statement | nil; | ||
setTimezone(val: a.SetTimezone): a.Statement | nil; | ||
update(val: a.UpdateStatement): a.Statement | nil; | ||
@@ -120,0 +122,0 @@ insert(val: a.InsertStatement): a.Statement | nil; |
{ | ||
"name": "pgsql-ast-parser", | ||
"version": "2.1.0", | ||
"version": "2.1.1", | ||
"description": "Yet another simple Postgres SQL parser/modifier", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -60,2 +60,3 @@ import * as a from './syntax/ast'; | ||
setGlobal?(val: a.SetGlobalStatement): a.Statement | nil | ||
setTimezone?(val: a.SetTimezone): a.Statement | nil | ||
createSequence?(seq: a.CreateSequenceStatement): a.Statement | nil | ||
@@ -196,2 +197,4 @@ alterSequence?(seq: a.AlterSequenceStatement): a.Statement | nil | ||
return this.setGlobal(val); | ||
case 'set timezone': | ||
return this.setTimezone(val); | ||
case 'create sequence': | ||
@@ -253,3 +256,7 @@ return this.createSequence(val); | ||
setTimezone(val: a.SetTimezone): a.Statement | nil { | ||
return val; | ||
} | ||
update(val: a.UpdateStatement): a.Statement | nil { | ||
@@ -256,0 +263,0 @@ if (!val) { |
@@ -20,2 +20,3 @@ // import { IType } from '../../interfaces'; | ||
| SetGlobalStatement | ||
| SetTimezone | ||
| CreateEnumType | ||
@@ -576,3 +577,17 @@ | TruncateTableStatement | ||
} | ||
export interface SetTimezone { | ||
type: 'set timezone', | ||
to: SetTimezoneValue; | ||
} | ||
export type SetTimezoneValue = { | ||
type: 'value'; | ||
value: number | string; | ||
} | { | ||
type: 'local' | 'default'; | ||
} | { | ||
type: 'interval'; | ||
value: string; | ||
}; | ||
type SetGlobalValueRaw = { | ||
@@ -579,0 +594,0 @@ type: 'value', |
@@ -61,2 +61,41 @@ import 'mocha'; | ||
}) | ||
checkStatement(`SET TIME ZONE INTERVAL '+00:00' HOUR TO MINUTE`, { | ||
type: 'set timezone', | ||
to: { | ||
type: 'interval', | ||
value: '+00:00', | ||
}, | ||
}) | ||
checkStatement(`SET TIME ZONE LOCAL`, { | ||
type: 'set timezone', | ||
to: { | ||
type: 'local', | ||
}, | ||
}); | ||
checkStatement(`SET TIME ZONE DEFAULT`, { | ||
type: 'set timezone', | ||
to: { | ||
type: 'default', | ||
}, | ||
}); | ||
checkStatement(`SET TIME ZONE '+8'`, { | ||
type: 'set timezone', | ||
to: { | ||
type: 'value', | ||
value: '+8', | ||
}, | ||
}); | ||
checkStatement(`SET TIME ZONE -9`, { | ||
type: 'set timezone', | ||
to: { | ||
type: 'value', | ||
value: -9, | ||
}, | ||
}); | ||
}); |
@@ -498,2 +498,22 @@ import { IAstPartialMapper, AstDefaultMapper } from './ast-mapper'; | ||
setTimezone: g => { | ||
ret.push('SET TIME ZONE '); | ||
switch (g.to.type) { | ||
case 'default': | ||
case 'local': | ||
ret.push(g.to.type.toUpperCase(), ' '); | ||
break; | ||
case 'value': | ||
ret.push(typeof g.to.value === 'string' | ||
? literal(g.to.value) | ||
: g.to.value.toString(10)); | ||
break; | ||
case 'interval': | ||
ret.push('INTERVAL ', literal(g.to.value), ' HOUR TO MINUTE'); | ||
break; | ||
default: | ||
throw NotSupported.never(g.to); | ||
} | ||
}, | ||
dataType: d => { | ||
@@ -500,0 +520,0 @@ if (d?.kind === 'array') { |
import { nil } from '../utils'; | ||
export declare const LOCATION: unique symbol; | ||
export declare type Statement = (SelectStatement | CreateTableStatement | CreateSequenceStatement | CreateIndexStatement | CreateExtensionStatement | CommitStatement | InsertStatement | UpdateStatement | DeleteStatement | RollbackStatement | TablespaceStatement | AlterTableStatement | AlterSequenceStatement | SetGlobalStatement | CreateEnumType | TruncateTableStatement | DropTableStatement | DropSequenceStatement | DropIndexStatement | StartTransactionStatement) & { | ||
export declare type Statement = (SelectStatement | CreateTableStatement | CreateSequenceStatement | CreateIndexStatement | CreateExtensionStatement | CommitStatement | InsertStatement | UpdateStatement | DeleteStatement | RollbackStatement | TablespaceStatement | AlterTableStatement | AlterSequenceStatement | SetGlobalStatement | SetTimezone | CreateEnumType | TruncateTableStatement | DropTableStatement | DropSequenceStatement | DropIndexStatement | StartTransactionStatement) & { | ||
[LOCATION]?: StatementLocation; | ||
@@ -403,2 +403,15 @@ }; | ||
} | ||
export interface SetTimezone { | ||
type: 'set timezone'; | ||
to: SetTimezoneValue; | ||
} | ||
export declare type SetTimezoneValue = { | ||
type: 'value'; | ||
value: number | string; | ||
} | { | ||
type: 'local' | 'default'; | ||
} | { | ||
type: 'interval'; | ||
value: string; | ||
}; | ||
declare type SetGlobalValueRaw = { | ||
@@ -405,0 +418,0 @@ type: 'value'; |
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
937505
10207