deno.land / x / pg_mem@2.8.1 / execution / schema-amends / drop-table.ts

نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { _ISchema, _Transaction, _ISequence, _IStatementExecutor, _IStatement, asSeq, asIndex, _INamedIndex, _ITable, asTable } from '../../interfaces-private.ts';import { DropStatement } from 'https://deno.land/x/pgsql_ast_parser@12.0.1/mod.ts';import { ExecHelper } from '../exec-utils.ts';import { ignore, notNil } from '../../utils.ts';
export class DropTable extends ExecHelper implements _IStatementExecutor { private tables: _ITable[]; private cascade: boolean;

constructor({ schema }: _IStatement, statement: DropStatement) { super(statement);
this.tables = notNil(statement.names.map(x => asTable(schema.getObject(x, { nullIfNotFound: statement.ifExists, }))));
this.cascade = statement.cascade === 'cascade';
if (!this.tables.length) { ignore(statement); } }
execute(t: _Transaction) { // commit pending data before making changes // (because it does not support further rollbacks) t = t.fullCommit();
// drop table for (const table of this.tables) { table.drop(t, this.cascade); }
// new implicit transaction t = t.fork();
return this.noData(t, 'DROP'); }}
pg_mem

Version Info

Tagged at
a year ago