From 116d627be032823a85bf7049c4f53e0ff0cd9f4a Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Fri, 4 Jan 2019 16:04:14 +0530 Subject: [PATCH] fix incorrect array relationship suggestion in case of circular FK, close #1296 --- .../Data/TableRelationships/autoRelations.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/console/src/components/Services/Data/TableRelationships/autoRelations.js b/console/src/components/Services/Data/TableRelationships/autoRelations.js index 529664c4689de..c8481b44afa36 100644 --- a/console/src/components/Services/Data/TableRelationships/autoRelations.js +++ b/console/src/components/Services/Data/TableRelationships/autoRelations.js @@ -106,11 +106,21 @@ const suggestedRelationshipsRaw = (tableName, allSchemas) => { for (let k = 0; k < currentArrRels.length; k++) { // check if this is already an existing relationship + const relDef = currentArrRels[k].rel_def; + let currTable = null; + let currRCol = null; + if (relDef.foreign_key_constraint_on) { + currTable = relDef.foreign_key_constraint_on.table; + currRCol = [relDef.foreign_key_constraint_on.column]; + } else { + currTable = relDef.manual_configuration.remote_table; + currRCol = Object.values( + relDef.manual_configuration.column_mapping + ); + } if ( - currentArrRels[k].rel_def.foreign_key_constraint_on.column === - rcol && - currentArrRels[k].rel_def.foreign_key_constraint_on.table === - constraint.table_name + currRCol.sort().join(',') === rcol.sort().join(',') && + getTableName(currTable) === constraint.table_name ) { // existing relationship isExistingArrayRel = true;