Github user Sssan520 commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2656#discussion_r212604056
--- Diff:
integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/externalformat/CsvBasedCarbonTableSuite.scala
---
@@ -241,4 +243,170 @@ class CsvBasedCarbonTableSuite extends QueryTest
CarbonProperties.getInstance().addProperty(CarbonCommonConstants.ENABLE_VECTOR_READER,
CarbonCommonConstants.ENABLE_VECTOR_READER_DEFAULT)
}
+
+ test("block update data on external format table") {
+ sql(
+ s"""
+ | CREATE TABLE $csvCarbonTable(empname String, empno smallint,
designation string,
+ | deptname String, projectcode int, projectjoindate
String,projectenddate String,
+ | doj String, workgroupcategory int, workgroupcategoryname
String,deptno int,
+ | attendance String, utilization String,salary String)
+ | STORED BY 'carbondata'
+ | TBLPROPERTIES(
+ | 'format'='csv',
+ | 'csv.header'='eMPno, empname,designation, doj,
workgroupcategory,
+ | workgroupcategoryname, deptno, deptname, projectcode,
projectjoindate, projectenddate,
+ | attendance, utilization, SALARY'
+ | )
+ """.stripMargin
+ )
+ // block update data on external table.
+ var exception = intercept[MalformedCarbonCommandException] {
+ sql(s"update $csvCarbonTable set (empname) = ('b') where designation
= 'a' ").collect
+ }
+ assert(exception.getMessage.contains("Unsupported operation on
external table"))
+ }
+
+ test("block delete data on external format table") {
+ sql(
+ s"""
+ | CREATE TABLE $csvCarbonTable(empname String, empno smallint,
designation string,
+ | deptname String, projectcode int, projectjoindate
String,projectenddate String,
+ | doj String, workgroupcategory int, workgroupcategoryname
String,deptno int,
+ | attendance String, utilization String,salary String)
+ | STORED BY 'carbondata'
+ | TBLPROPERTIES(
+ | 'format'='csv',
+ | 'csv.header'='eMPno, empname,designation, doj,
workgroupcategory,
+ | workgroupcategoryname, deptno, deptname, projectcode,
projectjoindate, projectenddate,
+ | attendance, utilization, SALARY'
+ | )
+ """.stripMargin
+ )
+ val exception = intercept[MalformedCarbonCommandException] {
+ sql(s"delete from $csvCarbonTable where designation = 'a' ")
+ }
+ assert(exception.getMessage.contains("Unsupported operation on
external table"))
+ }
+
+ test("block add columns on external format table") {
+ sql(
+ s"""
+ | CREATE TABLE $csvCarbonTable(empname String, empno smallint,
designation string,
+ | deptname String, projectcode int, projectjoindate
String,projectenddate String,
+ | doj String, workgroupcategory int, workgroupcategoryname
String,deptno int,
+ | attendance String, utilization String,salary String)
+ | STORED BY 'carbondata'
+ | TBLPROPERTIES(
+ | 'format'='csv',
+ | 'csv.header'='eMPno, empname,designation, doj,
workgroupcategory,
+ | workgroupcategoryname, deptno, deptname, projectcode,
projectjoindate, projectenddate,
+ | attendance, utilization, SALARY'
+ | )
+ """.stripMargin
+ )
+ val exception = intercept[MalformedCarbonCommandException] {
+ sql(s"alter table $csvCarbonTable add columns(addcolumn int)")
+ }
+ assert(exception.getMessage.contains("Unsupported operation on
external table"))
+ }
+
+ test("block drop columns on external format table") {
+ sql(
+ s"""
+ | CREATE TABLE $csvCarbonTable(empname String, empno smallint,
designation string,
+ | deptname String, projectcode int, projectjoindate
String,projectenddate String,
+ | doj String, workgroupcategory int, workgroupcategoryname
String,deptno int,
+ | attendance String, utilization String,salary String)
+ | STORED BY 'carbondata'
+ | TBLPROPERTIES(
+ | 'format'='csv',
+ | 'csv.header'='eMPno, empname,designation, doj,
workgroupcategory,
+ | workgroupcategoryname, deptno, deptname, projectcode,
projectjoindate, projectenddate,
+ | attendance, utilization, SALARY'
+ | )
+ """.stripMargin
+ )
+ val exception = intercept[MalformedCarbonCommandException] {
+ sql(s"alter table $csvCarbonTable drop columns(empname,empno)")
+ }
+ assert(exception.getMessage.contains("Unsupported operation on
external table"))
+ }
+
+ test("block change datatype on external format table") {
+ sql(
+ s"""
+ | CREATE TABLE $csvCarbonTable(empname String, empno smallint,
designation string,
+ | deptname String, projectcode int, projectjoindate
String,projectenddate String,
+ | doj String, workgroupcategory int, workgroupcategoryname
String,deptno int,
+ | attendance String, utilization String,salary String)
+ | STORED BY 'carbondata'
+ | TBLPROPERTIES(
+ | 'format'='csv',
+ | 'csv.header'='eMPno, empname,designation, doj,
workgroupcategory,
+ | workgroupcategoryname, deptno, deptname, projectcode,
projectjoindate, projectenddate,
+ | attendance, utilization, SALARY'
+ | )
+ """.stripMargin
+ )
+ val exception = intercept[MalformedCarbonCommandException] {
+ sql(s"alter table $csvCarbonTable change empno empno bigint")
+ }
+ assert(exception.getMessage.contains("Unsupported operation on
external table"))
+ }
+
+ test("block create external format table if columns not in
format.header") {
+ val exception = intercept[ProcessMetaDataException] {
+ sql(
+ s"""
+ | CREATE TABLE $csvCarbonTable(empname String, empno smallint,
designation string,
+ | deptname String, projectcode int, projectjoindate
String,projectenddate String,
+ | doj String, workgroupcategory int, workgroupcategoryname
String,deptno int,
+ | attendance String, utilization String,salary String)
+ | STORED BY 'carbondata'
+ | TBLPROPERTIES(
+ | 'format'='csv',
+ | 'csv.header'='empname, designation, doj,
+ | workgroupcategory, workgroupcategoryname, deptno,
+ | deptname, projectcode, projectjoindate, projectenddate,
+ | attendance, utilization, SALARY',
+ | 'csv.delimiter'='|'
+ | )
+ """.stripMargin
+ )
+ }
+ assert(exception.getMessage.contains("column 'empno' not in
tblproperty 'csv.header'"))
+ }
+
+ test("test desc formatted for external format table") {
+ sql(
--- End diff --
fixed
---