This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin5_beta in repository https://gitbox.apache.org/repos/asf/kylin.git
commit d7950dfd7b9f3d80c0b8e15f669871ea363e57ba Author: Qian Xia <lauraxiaq...@gmail.com> AuthorDate: Thu Jul 20 17:08:06 2023 +0800 KYLIN-5661 fix del cc from fact table issue --- .../studio/StudioModel/ModelEdit/model.js | 22 +++++++++++++++------- .../ModelList/ConfirmSegment/ConfirmSegment.vue | 11 +++++------ .../StudioModel/ModelList/ConfirmSegment/store.js | 6 ++---- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/kystudio/src/components/studio/StudioModel/ModelEdit/model.js b/kystudio/src/components/studio/StudioModel/ModelEdit/model.js index 42837e30a4..7d111e1f34 100644 --- a/kystudio/src/components/studio/StudioModel/ModelEdit/model.js +++ b/kystudio/src/components/studio/StudioModel/ModelEdit/model.js @@ -943,11 +943,13 @@ class NModel extends Schama { _updateCCToNewFactTable () { let factTable = this.getFactTable() if (factTable) { - this._mount.computed_columns.forEach((x) => { - x.table_guid = factTable.guid - x.tableIdentity = factTable.name - x.tableAlias = factTable.tableAlias + this._mount.computed_columns.forEach((cc) => { + cc.table_guid = factTable.guid + cc.tableIdentity = factTable.name + cc.tableAlias = factTable.tableAlias + factTable.all_columns.push({...cc, name: cc.columnName, column: cc.columnName, is_computed_column: true}) }) + factTable.filterColumns() } } // 移除和某个表相关的partition信息 @@ -960,9 +962,11 @@ class NModel extends Schama { } _delCCInTableAllColumns (t, column) { const index = t.all_columns.findIndex(it => it.column === column) - t.all_columns.splice(index, 1) - t.columnCurrentPage = 1 - t.filterColumns() + if (index !== -1) { + t.all_columns.splice(index, 1) + t.columnCurrentPage = 1 + t.filterColumns() + } // this.$set(this._mount.tables, t.guid, t) } changeTableType (t) { @@ -978,6 +982,10 @@ class NModel extends Schama { // this._arrangeLinks() } else if (t.name === this.fact_table) { this.fact_table = '' // fact 改为 lookup 需要将它设置为空 + // 删除 all_columns 里相关 cc + this._mount.computed_columns.forEach((c) => { + this._delCCInTableAllColumns(t, c.columnName) + }) } // 删除对应的partition this._delTableRelatedPartitionInfo(t) diff --git a/kystudio/src/components/studio/StudioModel/ModelList/ConfirmSegment/ConfirmSegment.vue b/kystudio/src/components/studio/StudioModel/ModelList/ConfirmSegment/ConfirmSegment.vue index 7578ae92f5..730945925a 100644 --- a/kystudio/src/components/studio/StudioModel/ModelList/ConfirmSegment/ConfirmSegment.vue +++ b/kystudio/src/components/studio/StudioModel/ModelList/ConfirmSegment/ConfirmSegment.vue @@ -114,7 +114,6 @@ vuex.registerModule(['modals', 'ConfirmSegment'], store) indexes: state => state.indexes, isRemoveIndex: state => state.isRemoveIndex, submitText: state => state.submitText, - isHybridBatch: state => state.isHybridBatch, model: state => state.model, callback: state => state.callback }) @@ -166,7 +165,7 @@ export default class ConfirmSegmentModal extends Vue { try { const { sortBy, reverse } = this.filter const projectName = this.currentSelectedProject - const modelName = this.isHybridBatch ? this.model.batch_id : this.model.uuid + const modelName = this.model.uuid // const startTime = startDate && transToUTCMs(startDate) // const endTime = endDate && transToUTCMs(endDate) const data = { projectName, modelName, sortBy, reverse, ...this.pagination } @@ -273,7 +272,7 @@ export default class ConfirmSegmentModal extends Vue { // 有值说明是刷新segment list if (this.refrashWarningSegment) { const segmentIds = this.selectedSegmentIds - const modelId = this.isHybridBatch ? this.model.batch_id : this.model.uuid + const modelId = this.model.uuid const projectName = this.currentSelectedProject const isSubmit = await this.refreshSegments({ projectName, modelId, segmentIds }) if (isSubmit) { @@ -283,7 +282,7 @@ export default class ConfirmSegmentModal extends Vue { } else { if (this.indexes.length > 0 && !this.isRemoveIndex) { const res = await this.complementBatchIndex({ - modelId: this.isHybridBatch ? this.model.batch_id : this.model.uuid, + modelId: this.model.uuid, data: { project: this.currentSelectedProject, segment_ids: this.selectedSegmentIds, @@ -299,7 +298,7 @@ export default class ConfirmSegmentModal extends Vue { } } else if (this.indexes.length > 0 && this.isRemoveIndex) { await this.deleteBatchIndex({ - modelId: this.isHybridBatch ? this.model.batch_id : this.model.uuid, + modelId: this.model.uuid, data: { project: this.currentSelectedProject, segment_ids: this.selectedSegmentIds, @@ -309,7 +308,7 @@ export default class ConfirmSegmentModal extends Vue { this.$message({ type: 'success', message: this.$t('kylinLang.common.delSuccess') }) } else { const res = await this.complementAllIndex({ - modelId: this.isHybridBatch ? this.model.batch_id : this.model.uuid, + modelId: this.model.uuid, data: { project: this.currentSelectedProject, segment_ids: this.selectedSegmentIds, diff --git a/kystudio/src/components/studio/StudioModel/ModelList/ConfirmSegment/store.js b/kystudio/src/components/studio/StudioModel/ModelList/ConfirmSegment/store.js index 3e547e24b5..93a8ca02a2 100644 --- a/kystudio/src/components/studio/StudioModel/ModelList/ConfirmSegment/store.js +++ b/kystudio/src/components/studio/StudioModel/ModelList/ConfirmSegment/store.js @@ -15,7 +15,6 @@ const initialState = JSON.stringify({ isRemoveIndex: false, submitText: '', model: null, - isHybridBatch: false, // 标识是否是融合数据模型下的批数据模型 callback: null }) export default { @@ -38,7 +37,6 @@ export default { state.indexes = payload.indexes state.isRemoveIndex = payload.isRemoveIndex state.submitText = payload.submitText - state.isHybridBatch = payload.isHybridBatch || false state.model = payload.model }, [types.RESET_MODAL_FORM]: state => { @@ -46,9 +44,9 @@ export default { } }, actions: { - [types.CALL_MODAL] ({ commit }, { title, subTitle, refrashWarningSegment, indexes, isRemoveIndex, submitText, isHybridBatch = false, model }) { + [types.CALL_MODAL] ({ commit }, { title, subTitle, refrashWarningSegment, indexes, isRemoveIndex, submitText, model }) { return new Promise(resolve => { - commit(types.SET_MODAL_FORM, { callback: resolve, title: title, subTitle: subTitle, refrashWarningSegment: refrashWarningSegment, indexes: indexes, isRemoveIndex: isRemoveIndex, submitText: submitText, isHybridBatch: isHybridBatch, model: model }) + commit(types.SET_MODAL_FORM, { callback: resolve, title: title, subTitle: subTitle, refrashWarningSegment: refrashWarningSegment, indexes: indexes, isRemoveIndex: isRemoveIndex, submitText: submitText, model: model }) commit(types.SHOW_MODAL) }) }