You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ja...@apache.org on 2017/04/18 13:31:45 UTC

[1/2] incubator-carbondata git commit: Problem: In carbon delete statement, JOIN is not supported to delete using 2 or more tables. Analysis: Carbon delete query parsing is failing, when JOIN existing in delete query. For example ‘DELETE FROM Table1 t1

Repository: incubator-carbondata
Updated Branches:
  refs/heads/master dbf76485f -> b1347e913


Problem: In carbon delete statement, JOIN is not  supported to delete using 2 or more tables.
Analysis: Carbon delete query parsing is failing, when JOIN existing in delete query. For example \u2018DELETE FROM Table1 t1 INNER JOIN Table2 t2 ON t1.ID = t2.ID;\u2019
Solution: Change the parser logic of delete statement to support all valid delete statements [including joins]


Project: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/commit/96978dfb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/tree/96978dfb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/diff/96978dfb

Branch: refs/heads/master
Commit: 96978dfb8d05e4c993e922cc4f3c0c8d5443084c
Parents: dbf7648
Author: Vinod K C <vk...@hortonworks.com>
Authored: Sat Apr 1 22:29:15 2017 +0530
Committer: jackylk <ja...@huawei.com>
Committed: Tue Apr 18 21:02:47 2017 +0800

----------------------------------------------------------------------
 .../scala/org/apache/spark/sql/CarbonSqlParser.scala    | 12 +++---------
 .../spark/testsuite/iud/DeleteCarbonTableTestCase.scala | 12 ++++++++++++
 2 files changed, 15 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/96978dfb/integration/spark/src/main/scala/org/apache/spark/sql/CarbonSqlParser.scala
----------------------------------------------------------------------
diff --git a/integration/spark/src/main/scala/org/apache/spark/sql/CarbonSqlParser.scala b/integration/spark/src/main/scala/org/apache/spark/sql/CarbonSqlParser.scala
index 7d5ce4f..85d54d0 100644
--- a/integration/spark/src/main/scala/org/apache/spark/sql/CarbonSqlParser.scala
+++ b/integration/spark/src/main/scala/org/apache/spark/sql/CarbonSqlParser.scala
@@ -419,17 +419,11 @@ class CarbonSqlParser() extends CarbonDDLSqlParser {
     }
 
   protected lazy val deleteRecords: Parser[LogicalPlan] =
-    (DELETE ~> FROM ~> table) ~ (WHERE ~> restInput).? <~ opt(";") ^^ {
-      case table ~ condition =>
+    (DELETE ~> FROM ~> table) ~ restInput.? <~ opt(";") ^^ {
+      case table ~ rest =>
         val tableName = getTableName(table.tableIdentifier)
         val alias = table.alias.getOrElse("")
-        val stmt = condition match {
-          case Some(cond) =>
-            "select tupleId from " + tableName + " " + alias + " where " + cond
-          case _ =>
-            "select tupleId from " + tableName + " " + alias
-        }
-        DeleteRecords(stmt, table)
+        DeleteRecords("select tupleId from " + tableName + " " + alias + rest.getOrElse(""), table)
     }
 
   protected lazy val updateTable: Parser[LogicalPlan] =

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/96978dfb/integration/spark/src/test/scala/org/apache/carbondata/spark/testsuite/iud/DeleteCarbonTableTestCase.scala
----------------------------------------------------------------------
diff --git a/integration/spark/src/test/scala/org/apache/carbondata/spark/testsuite/iud/DeleteCarbonTableTestCase.scala b/integration/spark/src/test/scala/org/apache/carbondata/spark/testsuite/iud/DeleteCarbonTableTestCase.scala
index 0b3ffbb..40590cb 100644
--- a/integration/spark/src/test/scala/org/apache/carbondata/spark/testsuite/iud/DeleteCarbonTableTestCase.scala
+++ b/integration/spark/src/test/scala/org/apache/carbondata/spark/testsuite/iud/DeleteCarbonTableTestCase.scala
@@ -81,6 +81,18 @@ class DeleteCarbonTableTestCase extends QueryTest with BeforeAndAfterAll {
       Seq()
     )
   }
+
+  test("delete data from  carbon table[ JOIN with another table ]") {
+    sql("""drop table if exists iud_db.dest""")
+    sql("""create table iud_db.dest (c1 string,c2 int,c3 string,c5 string) STORED BY 'org.apache.carbondata.format'""").show()
+    sql(s"""LOAD DATA LOCAL INPATH '$resourcesPath/IUD/dest.csv' INTO table iud_db.dest""")
+    sql(""" DELETE FROM dest t1 INNER JOIN source2 t2 ON t1.c1 = t2.c11""").show(truncate = false)
+    checkAnswer(
+      sql("""select c1 from iud_db.dest"""),
+      Seq(Row("c"), Row("d"), Row("e"))
+    )
+  }
+
 //  test("delete data from  carbon table[where IN (sub query) ]") {
 //    sql("""drop table if exists iud_db.dest""")
 //    sql("""create table iud_db.dest (c1 string,c2 int,c3 string,c5 string) STORED BY 'org.apache.carbondata.format'""").show()


[2/2] incubator-carbondata git commit: [CARBONDATA-642] Delete Subquery is not working while creating and loading 2 tables This closes #720

Posted by ja...@apache.org.
[CARBONDATA-642] Delete Subquery is not working while creating and loading 2 tables  This closes #720


Project: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/commit/b1347e91
Tree: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/tree/b1347e91
Diff: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/diff/b1347e91

Branch: refs/heads/master
Commit: b1347e913c50b54fa346bd7ad0f5b90edf0c5457
Parents: dbf7648 96978df
Author: jackylk <ja...@huawei.com>
Authored: Tue Apr 18 21:31:29 2017 +0800
Committer: jackylk <ja...@huawei.com>
Committed: Tue Apr 18 21:31:29 2017 +0800

----------------------------------------------------------------------
 .../scala/org/apache/spark/sql/CarbonSqlParser.scala    | 12 +++---------
 .../spark/testsuite/iud/DeleteCarbonTableTestCase.scala | 12 ++++++++++++
 2 files changed, 15 insertions(+), 9 deletions(-)
----------------------------------------------------------------------