From b7e2ec8c2faa7c322581b27daef2985d9fa9ea45 Mon Sep 17 00:00:00 2001 From: akashrn5 Date: Thu, 20 Sep 2018 15:39:01 +0530 Subject: [PATCH] fixed dataload failure with sort columns and query wrong rsult from other session --- .../execution/command/datamap/CarbonDataMapShowCommand.scala | 2 +- .../org/apache/spark/sql/hive/CarbonFileMetastore.scala | 5 ++++- .../processing/loading/partition/impl/RawRowComparator.java | 2 +- .../sort/sortdata/IntermediateSortTempRowComparator.java | 2 +- .../processing/sort/sortdata/NewRowComparator.java | 2 +- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/datamap/CarbonDataMapShowCommand.scala b/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/datamap/CarbonDataMapShowCommand.scala index b583a30dfdf..ae33aa80670 100644 --- a/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/datamap/CarbonDataMapShowCommand.scala +++ b/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/datamap/CarbonDataMapShowCommand.scala @@ -57,8 +57,8 @@ case class CarbonDataMapShowCommand(tableIdentifier: Option[TableIdentifier]) val dataMapSchemaList: util.List[DataMapSchema] = new util.ArrayList[DataMapSchema]() tableIdentifier match { case Some(table) => - Checker.validateTableExists(table.database, table.table, sparkSession) val carbonTable = CarbonEnv.getCarbonTable(table)(sparkSession) + Checker.validateTableExists(table.database, table.table, sparkSession) if (carbonTable.hasDataMapSchema) { dataMapSchemaList.addAll(carbonTable.getTableInfo.getDataMapSchemaList) } diff --git a/integration/spark2/src/main/scala/org/apache/spark/sql/hive/CarbonFileMetastore.scala b/integration/spark2/src/main/scala/org/apache/spark/sql/hive/CarbonFileMetastore.scala index 1840c5dd8a6..982bbeec63d 100644 --- a/integration/spark2/src/main/scala/org/apache/spark/sql/hive/CarbonFileMetastore.scala +++ b/integration/spark2/src/main/scala/org/apache/spark/sql/hive/CarbonFileMetastore.scala @@ -580,7 +580,10 @@ class CarbonFileMetastore extends CarbonMetaStore { tableModifiedTimeStore.get(CarbonCommonConstants.DATABASE_DEFAULT_NAME))) { metadata.carbonTables = metadata.carbonTables.filterNot( table => table.getTableName.equalsIgnoreCase(tableIdentifier.table) && - table.getDatabaseName.equalsIgnoreCase(tableIdentifier.database.getOrElse("default"))) + table.getDatabaseName + .equalsIgnoreCase(tableIdentifier.database + .getOrElse(SparkSession.getActiveSession.get.sessionState.catalog + .getCurrentDatabase))) updateSchemasUpdatedTime(lastModifiedTime) isRefreshed = true } diff --git a/processing/src/main/java/org/apache/carbondata/processing/loading/partition/impl/RawRowComparator.java b/processing/src/main/java/org/apache/carbondata/processing/loading/partition/impl/RawRowComparator.java index 3a325a4091e..3c16b679215 100644 --- a/processing/src/main/java/org/apache/carbondata/processing/loading/partition/impl/RawRowComparator.java +++ b/processing/src/main/java/org/apache/carbondata/processing/loading/partition/impl/RawRowComparator.java @@ -57,7 +57,6 @@ public int compare(CarbonRow o1, CarbonRow o2) { if (difference != 0) { return difference; } - noDicIdx++; } else { byte[] colA = (byte[]) o1.getObject(colIdx); byte[] colB = (byte[]) o2.getObject(colIdx); @@ -66,6 +65,7 @@ public int compare(CarbonRow o1, CarbonRow o2) { return diff; } } + noDicIdx++; } else { int colA = (int) o1.getObject(colIdx); int colB = (int) o2.getObject(colIdx); diff --git a/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/IntermediateSortTempRowComparator.java b/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/IntermediateSortTempRowComparator.java index 54fa99ec827..62d541fce1a 100644 --- a/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/IntermediateSortTempRowComparator.java +++ b/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/IntermediateSortTempRowComparator.java @@ -66,7 +66,6 @@ public int compare(IntermediateSortTempRow rowA, IntermediateSortTempRow rowB) { if (difference != 0) { return difference; } - noDicTypeIdx++; } else { byte[] byteArr1 = (byte[]) rowA.getNoDictSortDims()[nonDictIndex]; byte[] byteArr2 = (byte[]) rowB.getNoDictSortDims()[nonDictIndex]; @@ -77,6 +76,7 @@ public int compare(IntermediateSortTempRow rowA, IntermediateSortTempRow rowB) { } } nonDictIndex++; + noDicTypeIdx++; } else { int dimFieldA = rowA.getDictSortDims()[dictIndex]; int dimFieldB = rowB.getDictSortDims()[dictIndex]; diff --git a/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/NewRowComparator.java b/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/NewRowComparator.java index 4dff6449404..f21376403f2 100644 --- a/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/NewRowComparator.java +++ b/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/NewRowComparator.java @@ -68,7 +68,6 @@ public int compare(Object[] rowA, Object[] rowB) { if (difference != 0) { return difference; } - dataTypeIdx++; } else { byte[] byteArr1 = (byte[]) rowA[index]; byte[] byteArr2 = (byte[]) rowB[index]; @@ -79,6 +78,7 @@ public int compare(Object[] rowA, Object[] rowB) { } } } + dataTypeIdx++; } else { int dimFieldA = (int) rowA[index]; int dimFieldB = (int) rowB[index];