diff --git a/forward_engineering/configs/templates.js b/forward_engineering/configs/templates.js index 18c21f71..3055dc88 100644 --- a/forward_engineering/configs/templates.js +++ b/forward_engineering/configs/templates.js @@ -6,7 +6,7 @@ module.exports = { dropSchema: 'DROP SCHEMA IF EXISTS ${name};\n', createTable: - 'CREATE${orReplace}${temporary}${transient} TABLE${tableIfNotExists}\n' + + 'CREATE${orReplace}${temporary}${transient}${hybrid} TABLE${tableIfNotExists}\n' + '\t${name} (\n' + '\t\t${column_definitions}' + '${out_of_line_constraints}\n' + diff --git a/forward_engineering/ddlProvider.js b/forward_engineering/ddlProvider.js index 006878d3..02110b2c 100644 --- a/forward_engineering/ddlProvider.js +++ b/forward_engineering/ddlProvider.js @@ -314,6 +314,7 @@ module.exports = (baseProvider, options, app) => { createTable(tableData, isActivated) { const schemaName = get(tableData, 'schemaData.schemaName'); + const hybrid = preSpace(tableData.hybrid && 'HYBRID'); const temporary = preSpace(tableData.temporary && 'TEMPORARY'); const transient = preSpace(tableData.transient && !tableData.temporary && 'TRANSIENT'); const orReplace = preSpace(tableData.orReplace && 'OR REPLACE'); @@ -469,6 +470,7 @@ module.exports = (baseProvider, options, app) => { return assignTemplates(templates.createTable, { name: tableData.fullName, + hybrid, temporary, transient, tableIfNotExists, @@ -840,6 +842,7 @@ module.exports = (baseProvider, options, app) => { ...tableData, fullName, name: tableName, + hybrid: firstTab.hybrid, temporary: firstTab.temporary, transient: firstTab.transient, external: firstTab.external, diff --git a/properties_pane/entity_level/entityLevelConfig.json b/properties_pane/entity_level/entityLevelConfig.json index 25218be9..cbc15f97 100644 --- a/properties_pane/entity_level/entityLevelConfig.json +++ b/properties_pane/entity_level/entityLevelConfig.json @@ -114,7 +114,6 @@ making sure that you maintain a proper JSON format. } */ - [ { "lowerTab": "Details", @@ -162,10 +161,16 @@ making sure that you maintain a proper JSON format. "propertyType": "checkbox", "dependency": { "type": "not", - "values": { - "key": "external", - "value": true - } + "values": [ + { + "key": "external", + "value": true + }, + { + "key": "hybrid", + "value": true + } + ] } }, { @@ -201,6 +206,36 @@ making sure that you maintain a proper JSON format. { "key": "transient", "value": true + }, + { + "key": "hybrid", + "value": true + } + ] + } + }, + { + "propertyName": "Hybrid", + "propertyKeyword": "hybrid", + "propertyType": "checkbox", + "dependency": { + "type": "not", + "values": [ + { + "key": "external", + "value": true + }, + { + "key": "transient", + "value": true + }, + { + "key": "dynamic", + "value": true + }, + { + "key": "iceberg", + "value": true } ] } @@ -584,6 +619,10 @@ making sure that you maintain a proper JSON format. { "key": "external", "value": true + }, + { + "key": "hybrid", + "value": true } ] } @@ -602,6 +641,10 @@ making sure that you maintain a proper JSON format. { "key": "external", "value": true + }, + { + "key": "hybrid", + "value": true } ] } @@ -644,6 +687,10 @@ making sure that you maintain a proper JSON format. { "key": "transient", "value": true + }, + { + "key": "hybrid", + "value": true } ] } @@ -790,7 +837,11 @@ making sure that you maintain a proper JSON format. "ESCAPE_UNENCLOSED_FIELD": "\\", "TRIM_SPACE": false, "FIELD_OPTIONALLY_ENCLOSED_BY": "NONE", - "NULL_IF": [{ "NULL_IF_item": "\\N" }], + "NULL_IF": [ + { + "NULL_IF_item": "\\N" + } + ], "ERROR_ON_COLUMN_COUNT_MISMATCH": true, "VALIDATE_UTF8": true, "EMPTY_FIELD_AS_NULL": true, @@ -1029,7 +1080,11 @@ making sure that you maintain a proper JSON format. ] }, "defaultValue": { - "NULL_IF": [{ "NULL_IF_item": "\\N" }] + "NULL_IF": [ + { + "NULL_IF_item": "\\N" + } + ] }, "structure": [ {