From 4ada63291f9b6e1fae8bd85214be75481b56cf5a Mon Sep 17 00:00:00 2001 From: yevhenii-moroziuk Date: Fri, 13 Dec 2024 21:26:40 +0200 Subject: [PATCH 1/3] HCK-9128: Handle indexes without indxKey --- forward_engineering/ddlProvider/ddlHelpers/indexHelper.js | 4 ++++ properties_pane/entity_level/entityLevelConfig.json | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/forward_engineering/ddlProvider/ddlHelpers/indexHelper.js b/forward_engineering/ddlProvider/ddlHelpers/indexHelper.js index 4d10ac74..5378d1bc 100644 --- a/forward_engineering/ddlProvider/ddlHelpers/indexHelper.js +++ b/forward_engineering/ddlProvider/ddlHelpers/indexHelper.js @@ -94,6 +94,10 @@ const getValue = value => { }; const createIndex = (tableName, index, dbData, isParentActivated = true) => { + if (!index.columns.length) { + return ''; + } + const isUnique = index.unique && index.index_method === 'btree'; const name = wrapInQuotes(index.indxName); const unique = isUnique ? ' UNIQUE' : ''; diff --git a/properties_pane/entity_level/entityLevelConfig.json b/properties_pane/entity_level/entityLevelConfig.json index 0992a193..b1c79302 100644 --- a/properties_pane/entity_level/entityLevelConfig.json +++ b/properties_pane/entity_level/entityLevelConfig.json @@ -1024,6 +1024,10 @@ making sure that you maintain a proper JSON format. "dependency": { "key": "index_method", "value": "btree" + }, + "validation": { + "required": true, + "minLength": 1 } }, { @@ -1068,6 +1072,10 @@ making sure that you maintain a proper JSON format. "value": "brin" } ] + }, + "validation": { + "required": true, + "minLength": 1 } }, { From 954ac0c395ff76f53887b5203e3e00a734bbb962 Mon Sep 17 00:00:00 2001 From: yevhenii-moroziuk Date: Sun, 15 Dec 2024 15:46:07 +0200 Subject: [PATCH 2/3] HCK-9128: Handle indexes without indxKey --- .../ddlProvider/ddlHelpers/indexHelper.js | 4 +++- .../entity_level/entityLevelConfig.json | 19 ++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/forward_engineering/ddlProvider/ddlHelpers/indexHelper.js b/forward_engineering/ddlProvider/ddlHelpers/indexHelper.js index 5378d1bc..2a585dfd 100644 --- a/forward_engineering/ddlProvider/ddlHelpers/indexHelper.js +++ b/forward_engineering/ddlProvider/ddlHelpers/indexHelper.js @@ -94,7 +94,9 @@ const getValue = value => { }; const createIndex = (tableName, index, dbData, isParentActivated = true) => { - if (!index.columns.length) { + const isNameEmpty = !index.indxName && index.ifNotExist; + + if (!index.columns.length || isNameEmpty) { return ''; } diff --git a/properties_pane/entity_level/entityLevelConfig.json b/properties_pane/entity_level/entityLevelConfig.json index b1c79302..1dc3518e 100644 --- a/properties_pane/entity_level/entityLevelConfig.json +++ b/properties_pane/entity_level/entityLevelConfig.json @@ -883,7 +883,24 @@ making sure that you maintain a proper JSON format. "propertyName": "Name", "propertyKeyword": "indxName", "propertyTooltip": "Optional, if not specified an automatic name will be assigned. Index name are needed to drop indexes and appear in error messages when a constraint is violated.", - "propertyType": "text" + "propertyType": "text", + "dependency": { + "key": "ifNotExist", + "value": false + } + }, + { + "propertyName": "Name", + "propertyKeyword": "indxName", + "propertyTooltip": "", + "propertyType": "text", + "validation": { + "required": true + }, + "dependency": { + "key": "ifNotExist", + "value": true + } }, { "propertyName": "Activated", From ecd1ea68c613d2ca4fbcb4419f614b34a990ed1b Mon Sep 17 00:00:00 2001 From: yevhenii-moroziuk Date: Mon, 16 Dec 2024 12:21:48 +0200 Subject: [PATCH 3/3] HCK-9128: fix config --- properties_pane/entity_level/entityLevelConfig.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/properties_pane/entity_level/entityLevelConfig.json b/properties_pane/entity_level/entityLevelConfig.json index 1dc3518e..2b9abae1 100644 --- a/properties_pane/entity_level/entityLevelConfig.json +++ b/properties_pane/entity_level/entityLevelConfig.json @@ -885,8 +885,13 @@ making sure that you maintain a proper JSON format. "propertyTooltip": "Optional, if not specified an automatic name will be assigned. Index name are needed to drop indexes and appear in error messages when a constraint is violated.", "propertyType": "text", "dependency": { - "key": "ifNotExist", - "value": false + "type": "not", + "values": [ + { + "key": "ifNotExist", + "value": true + } + ] } }, {