From e64d8a6a2f82b756ba1bf19ec83bd76f06531ea3 Mon Sep 17 00:00:00 2001 From: Alik Rakhmonov Date: Fri, 19 Dec 2025 09:28:06 +0100 Subject: [PATCH 1/2] HCK-14053: parse table properties in alter --- .../helpers/alterScriptHelpers/common.js | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/forward_engineering/hiveHelpers/helpers/alterScriptHelpers/common.js b/forward_engineering/hiveHelpers/helpers/alterScriptHelpers/common.js index df2825d..a024005 100644 --- a/forward_engineering/hiveHelpers/helpers/alterScriptHelpers/common.js +++ b/forward_engineering/hiveHelpers/helpers/alterScriptHelpers/common.js @@ -9,25 +9,38 @@ const getDifferentItems = (newItems = [], oldItems = []) => { }; const hydrateTableProperties = ({ new: newItems, old: oldItems }, name, commentState) => { - const hydrateProperties = properties => (properties || '').split(',').map(prop => prop.trim()); const prepareProperties = properties => properties .filter(Boolean) - .map(property => property.replace(/(\S+)=([\s\S]+)/, `'$1'='$2'`)) + .map(property => `'${property.tablePropKey}'='${property.tablePropValue}'`) .join(',\n'); const isCommentChanged = !_.isEqual(commentState?.new, commentState?.old); - const addCommentProp = isCommentChanged && commentState?.new ? `comment=${commentState?.new}` : ''; - const dropCommentProp = isCommentChanged && !commentState?.new ? `comment` : ''; + + const addCommentProp = + isCommentChanged && commentState?.new + ? { + tablePropKey: 'comment', + tablePropValue: commentState?.new, + } + : null; + + const dropCommentProp = + isCommentChanged && !commentState?.new + ? { + tablePropKey: 'comment', + } + : null; const preparePropertiesName = properties => properties .filter(Boolean) - .map(prop => `'${prop.replace(/(=\S+)/, '')}'`) + .map(prop => `'${prop.tablePropKey}'`) .join(', '); - const newHydrateItems = hydrateProperties(newItems); - const oldHydrateItems = hydrateProperties(oldItems); + // Ensure newItems and oldItems are arrays + const newHydrateItems = Array.isArray(newItems) ? newItems : []; + const oldHydrateItems = Array.isArray(oldItems) ? oldItems : []; const { add, drop } = getDifferentItems(newHydrateItems, oldHydrateItems); From bb87693ea883890c285fd1d2d2cd00d1dd8e7148 Mon Sep 17 00:00:00 2001 From: Alik Rakhmonov Date: Fri, 19 Dec 2025 09:30:59 +0100 Subject: [PATCH 2/2] fix --- .../helpers/alterScriptHelpers/common.js | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/forward_engineering/hiveHelpers/helpers/alterScriptHelpers/common.js b/forward_engineering/hiveHelpers/helpers/alterScriptHelpers/common.js index a024005..21ec99b 100644 --- a/forward_engineering/hiveHelpers/helpers/alterScriptHelpers/common.js +++ b/forward_engineering/hiveHelpers/helpers/alterScriptHelpers/common.js @@ -1,5 +1,7 @@ const _ = require('lodash'); +const commentPropKey = 'comment'; + const getDifferentItems = (newItems = [], oldItems = []) => { const intersection = _.intersectionWith(newItems, oldItems, _.isEqual); return { @@ -19,18 +21,10 @@ const hydrateTableProperties = ({ new: newItems, old: oldItems }, name, commentS const addCommentProp = isCommentChanged && commentState?.new - ? { - tablePropKey: 'comment', - tablePropValue: commentState?.new, - } + ? { tablePropKey: commentPropKey, tablePropValue: commentState?.new } : null; - const dropCommentProp = - isCommentChanged && !commentState?.new - ? { - tablePropKey: 'comment', - } - : null; + const dropCommentProp = isCommentChanged && !commentState?.new ? { tablePropKey: commentPropKey } : null; const preparePropertiesName = properties => properties