-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathalterViewStatementHelper.js
More file actions
30 lines (25 loc) · 1007 Bytes
/
alterViewStatementHelper.js
File metadata and controls
30 lines (25 loc) · 1007 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const { getSchemaOfAlterCollection } = require('../../../utils/general');
const { AlterScriptDto } = require('../../types/AlterScriptDto');
const { createView, dropView } = require('./createDropViewHelper');
/**
* @param {Object} view
* @param {Object} ddlProvider
* @param {Function} mapProperties
* @returns {AlterScriptDto | undefined}
*/
const getModifySelectStatementScriptDtos = (view, ddlProvider, mapProperties) => {
const viewSchema = getSchemaOfAlterCollection(view);
const selectStatement = viewSchema?.compMod?.selectStatement || {};
if ((!selectStatement.new && !selectStatement.old) || selectStatement.new === selectStatement.old) {
return [undefined];
}
const dropScript = dropView({ viewSchema, ddlProvider });
const createScript = createView({ ddlProvider, mapProperties, view });
return [
AlterScriptDto.getInstance([dropScript], true, true),
AlterScriptDto.getInstance([createScript], true, false),
];
};
module.exports = {
getModifySelectStatementScriptDtos,
};