Github user akashrn5 commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2401#discussion_r198443925
--- Diff:
integration/spark-common/src/main/scala/org/apache/carbondata/spark/util/CarbonScalaUtil.scala
---
@@ -615,4 +618,114 @@ object CarbonScalaUtil {
sparkSession,
schema)._1.asInstanceOf[Object]
}
+
+ /**
+ * this method validates the local dictionary columns configurations
+ *
+ * @param tableProperties
+ * @param localDictColumns
+ */
+ def validateLocalDictionaryColumns(tableProperties: mutable.Map[String,
String],
+ localDictColumns: Seq[String]): Unit = {
+ var dictIncludeColumns: Seq[String] = Seq[String]()
+
+ // check if the duplicate columns are specified in table schema
+ if (localDictColumns.distinct.lengthCompare(localDictColumns.size) !=
0) {
+ val duplicateColumns = (dictIncludeColumns ++ localDictColumns)
+ .diff((dictIncludeColumns ++ localDictColumns).distinct).distinct
+ val errMsg =
+ "LOCAL_DICTIONARY_INCLUDE/LOCAL_DICTIONARY_EXCLUDE contains
Duplicate Columns: " +
+ duplicateColumns.mkString(",") +
+ ". Please check create table statement."
+ throw new MalformedCarbonCommandException(errMsg)
+ }
+
+ // check if the same column is present in both dictionary include and
local dictionary columns
+ // configuration
+ if
(tableProperties.get(CarbonCommonConstants.DICTIONARY_INCLUDE).isDefined) {
+ dictIncludeColumns =
+
tableProperties(CarbonCommonConstants.DICTIONARY_INCLUDE).split(",").map(_.trim)
+ localDictColumns.foreach { distCol =>
+ if (dictIncludeColumns.exists(x =>
x.equalsIgnoreCase(distCol.trim))) {
+ val duplicateColumns = (dictIncludeColumns ++ localDictColumns)
+ .diff((dictIncludeColumns ++
localDictColumns).distinct).distinct
--- End diff --
basically, the variable name should be changed to common column, i will
change that, functionally it is getting the common column
---