[jOOQ/jOOQ#8528] Interpret TRUNCATE

This commit is contained in:
Lukas Eder 2019-11-20 15:25:34 +01:00
parent b2af597638
commit 7d26f84235
2 changed files with 24 additions and 0 deletions

View File

@ -141,6 +141,8 @@ final class DDLInterpreter {
accept0((AlterTableImpl) query);
else if (query instanceof DropTableImpl)
accept0((DropTableImpl) query);
else if (query instanceof TruncateImpl)
accept0((TruncateImpl<?>) query);
else if (query instanceof CreateViewImpl)
accept0((CreateViewImpl<?>) query);
@ -591,6 +593,18 @@ final class DDLInterpreter {
drop(schema.tables, existing, query.$cascade());
}
private final void accept0(TruncateImpl<?> query) {
Table<?> table = query.$table();
MutableSchema schema = getSchema(table.getSchema());
MutableTable existing = schema.table(table);
if (existing == null)
throw tableNotExists(table);
else if (!existing.options.type().isTable())
throw objectNotTable(table);
}
private final void accept0(CreateViewImpl<?> query) {
Table<?> table = query.$view();
MutableSchema schema = getSchema(table.getSchema());

View File

@ -82,6 +82,12 @@ final class TruncateImpl<R extends Record> extends AbstractRowCountQuery impleme
this.table = table;
}
final Table<?> $table() { return table; }
// ------------------------------------------------------------------------
// XXX: DSL API
// ------------------------------------------------------------------------
@Override
public final TruncateFinalStep<R> cascade() {
cascade = true;
@ -106,6 +112,10 @@ final class TruncateImpl<R extends Record> extends AbstractRowCountQuery impleme
return this;
}
// ------------------------------------------------------------------------
// XXX: QueryPart API
// ------------------------------------------------------------------------
@Override
public final void accept(Context<?> ctx) {
switch (ctx.family()) {