Skip to content

Commit c9f2a7c

Browse files
HCK-14640: add config for index expressions
1 parent 51e221d commit c9f2a7c

1 file changed

Lines changed: 177 additions & 15 deletions

File tree

properties_pane/entity_level/entityLevelConfig.json

Lines changed: 177 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1051,8 +1051,26 @@ making sure that you maintain a proper JSON format.
10511051
}
10521052
},
10531053
"dependency": {
1054-
"key": "index_method",
1055-
"value": "btree"
1054+
"type": "and",
1055+
"values": [
1056+
{
1057+
"key": "index_method",
1058+
"value": "btree"
1059+
},
1060+
{
1061+
"type": "or",
1062+
"values": [
1063+
{
1064+
"key": "indxExpression",
1065+
"isEmpty": true
1066+
},
1067+
{
1068+
"key": "indxExpression",
1069+
"exist": false
1070+
}
1071+
]
1072+
}
1073+
]
10561074
},
10571075
"validation": {
10581076
"required": true,
@@ -1066,6 +1084,16 @@ making sure that you maintain a proper JSON format.
10661084
"template": "orderedList",
10671085
"propertyTooltip": "The name of a column of the table.",
10681086
"attributeList": {
1087+
"sortOrder": {
1088+
"propertyType": "select",
1089+
"options": ["ASC", "DESC"],
1090+
"propertyTooltip": "Specifies sort order"
1091+
},
1092+
"nullsOrder": {
1093+
"propertyType": "select",
1094+
"options": ["", "NULLS FIRST", "NULLS LAST"],
1095+
"propertyTooltip": "Specifies that nulls sort order"
1096+
},
10691097
"collation": {
10701098
"propertyType": "text",
10711099
"placeholder": "Collation",
@@ -1078,27 +1106,86 @@ making sure that you maintain a proper JSON format.
10781106
}
10791107
},
10801108
"dependency": {
1081-
"type": "or",
1109+
"type": "and",
10821110
"values": [
10831111
{
10841112
"key": "index_method",
1085-
"value": "hash"
1086-
},
1087-
{
1088-
"key": "index_method",
1089-
"value": "gist"
1113+
"value": "btree"
10901114
},
10911115
{
1092-
"key": "index_method",
1093-
"value": "spgist"
1094-
},
1116+
"type": "and",
1117+
"values": [
1118+
{
1119+
"key": "indxExpression",
1120+
"isEmpty": false
1121+
},
1122+
{
1123+
"key": "indxExpression",
1124+
"exist": true
1125+
}
1126+
]
1127+
}
1128+
]
1129+
}
1130+
},
1131+
{
1132+
"propertyName": "Columns",
1133+
"propertyKeyword": "columns",
1134+
"propertyType": "fieldList",
1135+
"template": "orderedList",
1136+
"propertyTooltip": "The name of a column of the table.",
1137+
"attributeList": {
1138+
"collation": {
1139+
"propertyType": "text",
1140+
"placeholder": "Collation",
1141+
"propertyTooltip": "The name of the collation to use for the index."
1142+
},
1143+
"opclass": {
1144+
"propertyType": "text",
1145+
"placeholder": "Opclass",
1146+
"propertyTooltip": "The name of an operator class."
1147+
}
1148+
},
1149+
"dependency": {
1150+
"type": "and",
1151+
"values": [
10951152
{
1096-
"key": "index_method",
1097-
"value": "gin"
1153+
"type": "or",
1154+
"values": [
1155+
{
1156+
"key": "index_method",
1157+
"value": "hash"
1158+
},
1159+
{
1160+
"key": "index_method",
1161+
"value": "gist"
1162+
},
1163+
{
1164+
"key": "index_method",
1165+
"value": "spgist"
1166+
},
1167+
{
1168+
"key": "index_method",
1169+
"value": "gin"
1170+
},
1171+
{
1172+
"key": "index_method",
1173+
"value": "brin"
1174+
}
1175+
]
10981176
},
10991177
{
1100-
"key": "index_method",
1101-
"value": "brin"
1178+
"type": "or",
1179+
"values": [
1180+
{
1181+
"key": "indxExpression",
1182+
"isEmpty": true
1183+
},
1184+
{
1185+
"key": "indxExpression",
1186+
"exist": false
1187+
}
1188+
]
11021189
}
11031190
]
11041191
},
@@ -1107,6 +1194,68 @@ making sure that you maintain a proper JSON format.
11071194
"minLength": 1
11081195
}
11091196
},
1197+
{
1198+
"propertyName": "Columns",
1199+
"propertyKeyword": "columns",
1200+
"propertyType": "fieldList",
1201+
"template": "orderedList",
1202+
"propertyTooltip": "The name of a column of the table.",
1203+
"attributeList": {
1204+
"collation": {
1205+
"propertyType": "text",
1206+
"placeholder": "Collation",
1207+
"propertyTooltip": "The name of the collation to use for the index."
1208+
},
1209+
"opclass": {
1210+
"propertyType": "text",
1211+
"placeholder": "Opclass",
1212+
"propertyTooltip": "The name of an operator class."
1213+
}
1214+
},
1215+
"dependency": {
1216+
"type": "and",
1217+
"values": [
1218+
{
1219+
"type": "or",
1220+
"values": [
1221+
{
1222+
"key": "index_method",
1223+
"value": "hash"
1224+
},
1225+
{
1226+
"key": "index_method",
1227+
"value": "gist"
1228+
},
1229+
{
1230+
"key": "index_method",
1231+
"value": "spgist"
1232+
},
1233+
{
1234+
"key": "index_method",
1235+
"value": "gin"
1236+
},
1237+
{
1238+
"key": "index_method",
1239+
"value": "brin"
1240+
}
1241+
]
1242+
},
1243+
{
1244+
"type": "and",
1245+
"values": [
1246+
{
1247+
"key": "indxExpression",
1248+
"isEmpty": false
1249+
},
1250+
{
1251+
"key": "indxExpression",
1252+
"exist": true
1253+
}
1254+
]
1255+
}
1256+
]
1257+
}
1258+
},
11101259
{
11111260
"propertyName": "Columns",
11121261
"propertyKeyword": "columns",
@@ -1127,6 +1276,19 @@ making sure that you maintain a proper JSON format.
11271276
]
11281277
}
11291278
},
1279+
{
1280+
"propertyName": "Expressions",
1281+
"propertyKeyword": "indxExpression",
1282+
"propertyType": "group",
1283+
"propertyTooltip": "Specify more detailed expression for index",
1284+
"structure": [
1285+
{
1286+
"propertyName": "value",
1287+
"propertyKeyword": "value",
1288+
"propertyType": "text"
1289+
}
1290+
]
1291+
},
11301292
{
11311293
"propertyName": "Include non-key columns",
11321294
"propertyKeyword": "include",

0 commit comments

Comments
 (0)