Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions forward_engineering/ddlProvider/ddlProvider.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
const _ = require('lodash');
const templates = require('./ddlTemplates');
const { getFullEntityName, replaceSpaceWithUnderscore, wrapInBrackets } = require('../utils/general');
const {
getFullEntityName,
getEntityNameWithTemporaryFlag,
replaceSpaceWithUnderscore,
wrapInBrackets,
} = require('../utils/general');
const { getViewTagsStatement } = require('../helpers/unityTagsHelper');
const { getTablePropertiesClause, checkTablePropertiesDefined } = require('../helpers/tableHelper');
const viewHelper = require('../helpers/viewHelper');
Expand Down Expand Up @@ -31,7 +36,11 @@ module.exports = app => {
const isTemporary = !isMaterialized && schema.viewTemporary;
const isGlobal = isTemporary && schema.viewGlobal;
const orReplace = !ifNotExists && schema.viewOrReplace;
const name = bucketName ? `${bucketName}.${viewName}` : `${viewName}`;
const name = getEntityNameWithTemporaryFlag({
containerName: bucketName,
entityName: viewName,
isTemporary,
});
const tableProperties =
schema.tableProperties && Array.isArray(schema.tableProperties)
? viewHelper.filterRedundantProperties(schema.tableProperties, ['transient_lastDdlTime'])
Expand Down
8 changes: 7 additions & 1 deletion forward_engineering/helpers/tableHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ const {
encodeStringLiteral,
getDifferentItems,
getFullEntityName,
getEntityNameWithTemporaryFlag,
getDBVersionNumber,
generateFullEntityName,
executeUnlessStreaming,
Expand Down Expand Up @@ -480,7 +481,12 @@ const getTableStatement =
const tableName = replaceSpaceWithUnderscore(prepareName(getName(tableData)));
const fullTableName = isCalledFromAlterScript
? generateFullEntityName({ entity: { role: tableData }, dbVersion })
: getFullEntityName(dbName, tableName);
: getEntityNameWithTemporaryFlag({
containerName: dbName,
entityName: tableName,
isTemporary: tableData.temporaryTable,
});

const { columns, deactivatedColumnNames } = getColumns(entityJsonSchema, definitions, dbVersion);
const keyNames = keyHelper.getKeyNames(tableData, entityJsonSchema, definitions);
const tableColumns = getTableColumnsStatement(columns, tableData.using, keyNames.compositePartitionKey);
Expand Down
19 changes: 16 additions & 3 deletions forward_engineering/helpers/viewHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@ const _ = require('lodash');
const { getKeyNames } = require('./keyHelper');
const { getColumns } = require('./columnHelper');
const { getPartitionKeyStatement, getPartitionsKeys, getClusteringKeys } = require('./tableHelper');
const { encodeStringLiteral, commentDeactivatedStatement } = require('../utils/general');
const {
encodeStringLiteral,
commentDeactivatedStatement,
getEntityNameWithTemporaryFlag,
} = require('../utils/general');
const { prepareName } = require('../../shared/general');

const getColumnNames = (collectionRefsDefinitionsMap, columns) => {
Expand All @@ -30,7 +34,12 @@ const getColumnNames = (collectionRefsDefinitionsMap, columns) => {
const collectionName = collection.code || collection.collectionName;
const db = _.first(itemData.bucket) || {};
const dbName = db.code || db.name;
const fullColumnName = `${dbName ? prepareName(dbName) + '.' : ''}${prepareName(collectionName)}.${prepareName(itemData.name)} as ${prepareName(name)}`;
const tablePrefix = getEntityNameWithTemporaryFlag({
containerName: prepareName(dbName),
entityName: prepareName(collectionName),
isTemporary: collection.temporaryTable,
});
const fullColumnName = `${tablePrefix}.${prepareName(itemData.name)} as ${prepareName(name)}`;
return commentDeactivatedStatement(fullColumnName, definition.isActivated);
}),
).filter(_.identity);
Expand All @@ -49,7 +58,11 @@ const getFromStatement = (collectionRefsDefinitionsMap, columns) => {
const bucket = _.first(source?.bucket) || {};
const collectionName = prepareName(collection.collectionName || collection.code);
const bucketName = prepareName(bucket.name || bucket.code || '');
const fullCollectionName = bucketName ? `${bucketName}.${collectionName}` : `${collectionName}`;
const fullCollectionName = getEntityNameWithTemporaryFlag({
containerName: bucketName,
entityName: collectionName,
isTemporary: collection.temporaryTable,
});

return fullCollectionName;
})
Expand Down
7 changes: 7 additions & 0 deletions forward_engineering/utils/general.js
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,12 @@ const getEntityData = (object, properties = [], type = 'new') =>

const getFullEntityName = (dbName, entityName) => (dbName ? `${dbName}.${entityName}` : entityName);

/**
* Builds full entity name, omitting container/schema when isTemporary is true.
*/
const getEntityNameWithTemporaryFlag = ({ containerName, entityName, isTemporary = false }) =>
containerName && !isTemporary ? `${containerName}.${entityName}` : entityName;

/**
* @param bucketName {string}
* @param tableName {string}
Expand Down Expand Up @@ -347,6 +353,7 @@ module.exports = {
wrapInParseJsonCall,
getEntityData,
getFullEntityName,
getEntityNameWithTemporaryFlag,
generateFullEntityName,
getEntityNameFromCollection,
getEntityProperties,
Expand Down