Skip to content

Commit f7d0f6b

Browse files
author
DrMyroslav
committed
fix position alter search, reaload seach index
1 parent aacd162 commit f7d0f6b

File tree

4 files changed

+53
-61
lines changed

4 files changed

+53
-61
lines changed

forward_engineering/helpers/updateHelper.js

Lines changed: 37 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -553,55 +553,44 @@ const sortScript = (scriptData) => {
553553

554554
return scripts;
555555
}, { scripts: [], filteredScripts: [] });
556-
}
556+
};
557+
558+
const orderForScripts = [
559+
['keySpaces', 'added'],
560+
['keySpaces', 'modified'],
561+
['view', 'deleted'],
562+
['index', 'deleted'],
563+
['renewal', 'deleted'],
564+
['table', 'deleted'],
565+
['udt', 'deleted'],
566+
['udt', 'added'],
567+
['udt', 'modified'],
568+
['table', 'added'],
569+
['table', 'modified'],
570+
['field', 'deleted'],
571+
['field', 'added'],
572+
['field', 'modified'],
573+
['index', 'added'],
574+
['index', 'modified'],
575+
['renewal', 'added'],
576+
['view', 'added'],
577+
['view', 'modified'],
578+
['udf', 'deleted'],
579+
['udf', 'added'],
580+
['keySpaces', 'deleted'],
581+
];
582+
const sortedScripts = orderForScripts.reduce((script, [key, prop]) => {
583+
const { scripts, filteredScripts } = filter(prop, script.filteredScripts, key);
584+
return {
585+
sorted: [...script.sorted, ...scripts],
586+
filteredScripts
587+
}
588+
}, {
589+
sorted: [],
590+
filteredScripts: scriptData
591+
});
557592

558-
let sortedScripts = [];
559-
560-
const { scripts: createKeyspacesScripts, filteredScripts: scriptsWithoutCreateKeyspace } = filter('added', scriptData, 'keySpaces');
561-
const { scripts: deleteKeyspaceScripts, filteredScripts: scriptsWithoutDropKeyspace } = filter('deleted', scriptsWithoutCreateKeyspace, 'keySpaces');
562-
const { scripts: modifyKeyspacesScripts, filteredScripts: scriptsWithoutModifyKeyspace } = filter('modified', scriptsWithoutDropKeyspace, 'keySpaces');
563-
const { scripts: deleteFunctionScripts, filteredScripts: scriptsWithoutDropFunction } = filter('deleted', scriptsWithoutModifyKeyspace, 'udf');
564-
const { scripts: createFunctionScripts, filteredScripts: scriptsWithoutCreateFunction } = filter('added', scriptsWithoutDropFunction, 'udf');
565-
const { scripts: createTablesScripts, filteredScripts: scriptsWithoutCreateTable } = filter('added', scriptsWithoutCreateFunction, 'table');
566-
const { scripts: deleteTablesScripts, filteredScripts: scriptsWithoutDropTable } = filter('deleted', scriptsWithoutCreateTable, 'table');
567-
const { scripts: modifyTablesScripts, filteredScripts: scriptsWithoutModifyTable } = filter('modified', scriptsWithoutDropTable, 'table');
568-
const { scripts: createIndexesScripts, filteredScripts: scriptsWithoutCreateIndexes } = filter('added', scriptsWithoutModifyTable, 'index');
569-
const { scripts: deleteIndexesScripts, filteredScripts: scriptsWithoutDropIndexes } = filter('deleted', scriptsWithoutCreateIndexes, 'index');
570-
const { scripts: modifyIndexesScripts, filteredScripts: scriptsWithoutModifyIndexes } = filter('modified', scriptsWithoutDropIndexes, 'index');
571-
const { scripts: renewalIndexesScripts, filteredScripts: scriptsWithoutRenewalIndexes } = filter('added', scriptsWithoutModifyIndexes, 'renewal');
572-
const { scripts: createViewsScripts, filteredScripts: scriptsWithoutCreateViews } = filter('added', scriptsWithoutRenewalIndexes, 'viewName');
573-
const { scripts: deleteViewsScripts, filteredScripts: scriptsWithoutDeleteViews } = filter('deleted', scriptsWithoutCreateViews, 'viewName');
574-
const { scripts: modifyViewsScripts, filteredScripts: scriptsWithoutModifyViews } = filter('modified', scriptsWithoutDeleteViews, 'viewName');
575-
const { scripts: createFieldsScripts, filteredScripts: scriptsWithoutCreateField } = filter('added', scriptsWithoutModifyViews, 'field');
576-
const { scripts: deleteFieldsScripts, filteredScripts: scriptsWithoutDeleteField } = filter('deleted', scriptsWithoutCreateField, 'field');
577-
const { scripts: modifyFieldsScripts, filteredScripts: scriptsWithoutModifyField } = filter('modified', scriptsWithoutDeleteField, 'field');
578-
const { scripts: createUdtScripts, filteredScripts: scriptsWithoutCreateUdt } = filter('added', scriptsWithoutModifyField, 'udtName');
579-
const { scripts: deleteUdtScripts, filteredScripts: scriptsWithoutDeleteUdt } = filter('deleted', scriptsWithoutCreateUdt, 'udtName');
580-
const { scripts: modifyUdtScripts, filteredScripts: scriptsWithoutModifyUdt } = filter('modified', scriptsWithoutDeleteUdt, 'udtName');
581-
582-
return sortedScripts.concat(
583-
createKeyspacesScripts,
584-
modifyKeyspacesScripts,
585-
deleteViewsScripts,
586-
deleteTablesScripts,
587-
deleteUdtScripts,
588-
createUdtScripts,
589-
modifyUdtScripts,
590-
createTablesScripts,
591-
modifyTablesScripts,
592-
deleteFieldsScripts,
593-
createFieldsScripts,
594-
modifyFieldsScripts,
595-
deleteIndexesScripts,
596-
createIndexesScripts,
597-
modifyIndexesScripts,
598-
createViewsScripts,
599-
modifyViewsScripts,
600-
renewalIndexesScripts,
601-
deleteFunctionScripts,
602-
createFunctionScripts,
603-
deleteKeyspaceScripts,
604-
scriptsWithoutModifyUdt).map(data => data.script);
593+
return [...sortedScripts.sorted, ...sortedScripts.filteredScripts].map(data => data.script);
605594
}
606595

607596
module.exports = {

forward_engineering/helpers/updateHelpers/indexHelper.js

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -205,22 +205,25 @@ const getSearchColumnsScript = (keyspaceName, tableName, columns) => {
205205
};
206206
};
207207

208-
const dropScripts = (columns.dropData || []).map(getScript.bind(null, alterScript, `DROP field`, { deleted: true }));
209-
const addScripts = (columns.addData || []).map(getScript.bind(null, alterScript, `ADD field`, { modified: true }));
208+
const dropSearchScripts = (columns.dropData || []).map(getScript.bind(null, alterScript, `DROP field`, { deleted: true }));
209+
const addSearchScripts = (columns.addData || []).map(getScript.bind(null, alterScript, `ADD field`, { modified: true }));
210+
if (dropSearchScripts.length) {
211+
dropSearchScripts.push(getRenewalScript(keyspaceName, tableName, 'RELOAD', 'deleted'));
212+
}
210213

211-
return [...dropScripts, ...addScripts];
214+
return { dropSearchScripts, addSearchScripts };
212215
}
213216

214-
const getRenewalScript = (keyspaceName, tableName, startStatement) => {
217+
const getRenewalScript = (keyspaceName, tableName, startStatement, key = 'added') => {
215218
const tableNameStatement = getTableNameStatement(keyspaceName, tableName);
216219
const script = `${startStatement} SEARCH INDEX\n` +
217220
tab(`ON ${tableNameStatement};`);
218221

219222
return {
220-
added: true,
221223
renewal: true,
222-
script,
223-
}
224+
[key]: true,
225+
script
226+
};
224227
}
225228

226229
const getDropSearchIndexScript = (keyspaceName, tableName, isDrop) => {
@@ -355,11 +358,11 @@ const getUpdateSearchIndexScript = data => {
355358
const dataForConfigScript = getDataForSearchIndexConfig(config);
356359

357360
const configScript = getSearchConfigScript(keyspaceName, tableName, dataForConfigScript);
358-
const columnsScript = getSearchColumnsScript(keyspaceName, tableName, dataForColumnsScript);
361+
const { dropSearchScripts, addSearchScripts } = getSearchColumnsScript(keyspaceName, tableName, dataForColumnsScript);
359362

360363
const renewalData = {
361-
RELOAD: configScript.length || columnsScript.length,
362-
REBUILD: columnsScript.length,
364+
RELOAD: configScript.length || addSearchScripts.length,
365+
REBUILD: dropSearchScripts.length || addSearchScripts.length,
363366
};
364367
const renewalScripts = Object.entries(renewalData).reduce((scripts, [key, value]) => {
365368
if (!value) {
@@ -368,7 +371,7 @@ const getUpdateSearchIndexScript = data => {
368371
return [...scripts, getRenewalScript(keyspaceName, tableName, key)];
369372
}, []);
370373

371-
return [...configScript, ...columnsScript, ...renewalScripts];
374+
return [...configScript, ...dropSearchScripts, ...addSearchScripts, ...renewalScripts];
372375
}
373376

374377
const getUpdateIndexScript = data => {

forward_engineering/helpers/updateHelpers/udtHelper.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ const scriptData = {
1515
added: false,
1616
deleted: false,
1717
modified: false,
18-
udtName: 'udt',
18+
udt: 'udt',
1919
};
2020

2121
const getAlterTypePrefix = keySpaceName => `ALTER TYPE "${keySpaceName}"`;

forward_engineering/helpers/updateHelpers/viewHelper.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const scriptData = {
99
added: false,
1010
deleted: false,
1111
modified: false,
12-
viewName: 'view',
12+
view: 'view',
1313
};
1414

1515
const getViewName = (keyspaceName, nameView) => `${keyspaceName ? `"${keyspaceName}".` : ''}"${nameView}"`;

0 commit comments

Comments
 (0)