[jOOQ/jOOQ#9425] Diff createOrReplaceView flag

This commit is contained in:
lukaseder 2019-11-05 20:17:27 +01:00
parent 7b65e9bdb3
commit ef3ba45b95
4 changed files with 140 additions and 1 deletions

View File

@ -202,6 +202,38 @@ package org.jooq;

View File

@ -55,6 +55,8 @@ public final class DDLExportConfiguration {
private final boolean createTableIfNotExists;
private final boolean createIndexIfNotExists;
private final boolean createSequenceIfNotExists;
private final boolean createViewIfNotExists;
private final boolean createOrReplaceView;
private final EnumSet<DDLFlag> flags;
private final boolean respectCatalogOrder;
private final boolean respectSchemaOrder;
@ -75,6 +77,8 @@ public final class DDLExportConfiguration {
false,
false,
false,
false,
false,
false,
false,
@ -92,6 +96,8 @@ public final class DDLExportConfiguration {
boolean createTableIfNotExists,
boolean createIndexIfNotExists,
boolean createSequenceIfNotExists,
boolean createViewIfNotExists,
boolean createOrreplaceView,
boolean respectCatalogOrder,
boolean respectSchemaOrder,
boolean respectTableOrder,
@ -106,6 +112,8 @@ public final class DDLExportConfiguration {
this.createTableIfNotExists = createTableIfNotExists;
this.createIndexIfNotExists = createIndexIfNotExists;
this.createSequenceIfNotExists = createSequenceIfNotExists;
this.createViewIfNotExists = createViewIfNotExists;
this.createOrReplaceView = createOrreplaceView;
this.respectCatalogOrder = respectCatalogOrder;
this.respectSchemaOrder = respectSchemaOrder;
@ -140,6 +148,8 @@ public final class DDLExportConfiguration {
createTableIfNotExists,
createIndexIfNotExists,
createSequenceIfNotExists,
createViewIfNotExists,
createOrReplaceView,
respectCatalogOrder,
respectSchemaOrder,
respectTableOrder,
@ -171,6 +181,8 @@ public final class DDLExportConfiguration {
createTableIfNotExists,
createIndexIfNotExists,
createSequenceIfNotExists,
createViewIfNotExists,
createOrReplaceView,
respectCatalogOrder,
respectSchemaOrder,
respectTableOrder,
@ -202,6 +214,8 @@ public final class DDLExportConfiguration {
newCreateTableIfNotExists,
createIndexIfNotExists,
createSequenceIfNotExists,
createViewIfNotExists,
createOrReplaceView,
respectCatalogOrder,
respectSchemaOrder,
respectTableOrder,
@ -233,6 +247,8 @@ public final class DDLExportConfiguration {
createTableIfNotExists,
newCreateIndexIfNotExists,
createSequenceIfNotExists,
createViewIfNotExists,
createOrReplaceView,
respectCatalogOrder,
respectSchemaOrder,
respectTableOrder,
@ -264,6 +280,74 @@ public final class DDLExportConfiguration {
createTableIfNotExists,
createIndexIfNotExists,
newCreateSequenceIfNotExists,
createViewIfNotExists,
createOrReplaceView,
respectCatalogOrder,
respectSchemaOrder,
respectTableOrder,
respectColumnOrder,
respectConstraintOrder,
respectIndexOrder,
respectSequenceOrder
);
}
/**
* Whether to generate <code>CREATE VIEW IF NOT EXISTS</code> statements.
* <p>
* Not all RDBMS support this flag. Check
* {@link DSLContext#createViewIfNotExists(Table, Field...)} to see if your
* {@link SQLDialect} supports the clause.
*/
public final boolean createViewIfNotExists() {
return createViewIfNotExists;
}
/**
* Whether to generate <code>CREATE VIEW IF NOT EXISTS</code> statements.
*/
public final DDLExportConfiguration createViewIfNotExists(boolean newCreateViewIfNotExists) {
return new DDLExportConfiguration(
flags,
createSchemaIfNotExists,
createTableIfNotExists,
createIndexIfNotExists,
createSequenceIfNotExists,
newCreateViewIfNotExists,
createOrReplaceView,
respectCatalogOrder,
respectSchemaOrder,
respectTableOrder,
respectColumnOrder,
respectConstraintOrder,
respectIndexOrder,
respectSequenceOrder
);
}
/**
* Whether to generate <code>CREATE OR REPLACE VIEW</code> statements.
* <p>
* Not all RDBMS support this flag. Check
* {@link DSLContext#createOrReplaceView(Table, Field...)} to see if your
* {@link SQLDialect} supports the clause.
*/
public final boolean createOrReplaceView() {
return createOrReplaceView;
}
/**
* Whether to generate <code>CREATE OR REPLACE VIEW</code> statements.
*/
public final DDLExportConfiguration createOrReplaceView(boolean newCreateOrReplaceView) {
return new DDLExportConfiguration(
flags,
createSchemaIfNotExists,
createTableIfNotExists,
createIndexIfNotExists,
createSequenceIfNotExists,
createViewIfNotExists,
newCreateOrReplaceView,
respectCatalogOrder,
respectSchemaOrder,
respectTableOrder,
@ -293,6 +377,8 @@ public final class DDLExportConfiguration {
createTableIfNotExists,
createIndexIfNotExists,
createSequenceIfNotExists,
createViewIfNotExists,
createOrReplaceView,
newRespectCatalogOrder,
respectSchemaOrder,
respectTableOrder,
@ -322,6 +408,8 @@ public final class DDLExportConfiguration {
createTableIfNotExists,
createIndexIfNotExists,
createSequenceIfNotExists,
createViewIfNotExists,
createOrReplaceView,
respectCatalogOrder,
newRespectSchemaOrder,
respectTableOrder,
@ -351,6 +439,8 @@ public final class DDLExportConfiguration {
createTableIfNotExists,
createIndexIfNotExists,
createSequenceIfNotExists,
createViewIfNotExists,
createOrReplaceView,
respectCatalogOrder,
respectSchemaOrder,
newRespectTableOrder,
@ -380,6 +470,8 @@ public final class DDLExportConfiguration {
createTableIfNotExists,
createIndexIfNotExists,
createSequenceIfNotExists,
createViewIfNotExists,
createOrReplaceView,
respectCatalogOrder,
respectSchemaOrder,
respectTableOrder,
@ -409,6 +501,8 @@ public final class DDLExportConfiguration {
createTableIfNotExists,
createIndexIfNotExists,
createSequenceIfNotExists,
createViewIfNotExists,
createOrReplaceView,
respectCatalogOrder,
respectSchemaOrder,
respectTableOrder,
@ -438,6 +532,8 @@ public final class DDLExportConfiguration {
createTableIfNotExists,
createIndexIfNotExists,
createSequenceIfNotExists,
createViewIfNotExists,
createOrReplaceView,
respectCatalogOrder,
respectSchemaOrder,
respectTableOrder,
@ -467,6 +563,8 @@ public final class DDLExportConfiguration {
createTableIfNotExists,
createIndexIfNotExists,
createSequenceIfNotExists,
createViewIfNotExists,
createOrReplaceView,
respectCatalogOrder,
respectSchemaOrder,
respectTableOrder,

View File

@ -93,8 +93,10 @@ final class DDL {
OnCommit onCommit = table.getOptions().onCommit();
if (view)
return (configuration.createTableIfNotExists()
return (configuration.createViewIfNotExists()
? ctx.createViewIfNotExists(table, table.fields())
: configuration.createOrReplaceView()
? ctx.createOrReplaceView(table, table.fields())
: ctx.createView(table, table.fields()))
.as(table.getOptions().select());

View File

@ -497,6 +497,13 @@ package org.jooq.impl;