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(-)
----------------------------------------------------------------------