You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ri...@apache.org on 2021/07/29 15:43:00 UTC
[phoenix] 02/02: PHOENIX-6454: Add feature to SchemaTool to get the
DDL in specification (Addendum) (#1233)
This is an automated email from the ASF dual-hosted git repository.
richardantal pushed a commit to branch 5.1
in repository https://gitbox.apache.org/repos/asf/phoenix.git
commit a094666b7866a3fd3b7e82604cae0cc9de58cbf3
Author: Swaroopa Kadam <sw...@gmail.com>
AuthorDate: Fri Jun 11 10:15:58 2021 -0700
PHOENIX-6454: Add feature to SchemaTool to get the DDL in specification (Addendum) (#1233)
---
.../apache/phoenix/parse/PrimaryKeyConstraint.java | 8 ++--
.../phoenix/schema/SchemaToolSynthesisIT.java | 48 ++++++++++++++++------
.../it/resources/synthesis/alter_add_property.sql | 3 +-
.../resources/synthesis/alter_change_property.sql | 3 +-
.../src/it/resources/synthesis/alter_table_add.sql | 5 ++-
.../it/resources/synthesis/alter_table_add_pk.sql | 18 ++++++++
.../it/resources/synthesis/alter_table_drop.sql | 3 +-
.../resources/synthesis/alter_table_multiple.sql | 3 +-
.../{alter_table_add.sql => drop_create_table.sql} | 15 ++++++-
.../resources/synthesis/mismatched_entity_name.sql | 3 +-
.../org/apache/phoenix/schema/SchemaSQLUtil.java | 4 ++
.../phoenix/schema/SchemaSynthesisProcessor.java | 10 ++---
12 files changed, 93 insertions(+), 30 deletions(-)
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/parse/PrimaryKeyConstraint.java b/phoenix-core/src/main/java/org/apache/phoenix/parse/PrimaryKeyConstraint.java
index e6a65a5..802a87f 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/parse/PrimaryKeyConstraint.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/parse/PrimaryKeyConstraint.java
@@ -95,13 +95,13 @@ public class PrimaryKeyConstraint extends NamedNode {
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
- for(Map.Entry<ColumnName, Pair<ColumnName, SortOrder>> entry : columnNameToSortOrder.entrySet()) {
+ for (Pair<ColumnName, SortOrder> entry : columns) {
if(sb.length()!=0) {
sb.append(", ");
}
- sb.append(entry.getKey());
- if(entry.getValue().getSecond() != SortOrder.getDefault()) {
- sb.append(" "+entry.getValue().getSecond());
+ sb.append(entry.getFirst());
+ if(entry.getSecond() != SortOrder.getDefault()) {
+ sb.append(" "+entry.getSecond());
}
}
return sb.toString();
diff --git a/phoenix-tools/src/it/java/org/apache/phoenix/schema/SchemaToolSynthesisIT.java b/phoenix-tools/src/it/java/org/apache/phoenix/schema/SchemaToolSynthesisIT.java
index 8ac0774..48b4c00 100644
--- a/phoenix-tools/src/it/java/org/apache/phoenix/schema/SchemaToolSynthesisIT.java
+++ b/phoenix-tools/src/it/java/org/apache/phoenix/schema/SchemaToolSynthesisIT.java
@@ -39,11 +39,11 @@ public class SchemaToolSynthesisIT {
// Adding new column RELATED_COMMAND
public void testCreateTableStatement_addColumn() throws Exception {
String expected = "CREATE TABLE IF NOT EXISTS TEST.SAMPLE_TABLE\n"
- + "(ORG_ID CHAR(15) NOT NULL,\n" + "SOME_ANOTHER_ID BIGINT NOT NULL,\n"
+ + "(ORG_ID CHAR(15) NOT NULL,\n" + "SOME_ANOTHER_ID BIGINT NOT NULL,\n" + "SECOND_ID BIGINT NOT NULL,\n"
+ "TYPE VARCHAR,\n" + "STATUS VARCHAR,\n" + "START_TIMESTAMP BIGINT,\n"
+ "END_TIMESTAMP BIGINT,\n" + "PARAMS VARCHAR,\n" + "RESULT VARCHAR,\n"
- + "RELATED_COMMAND BIGINT\n"
- + "CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID))\n"
+ + "RELATED_COMMAND BIGINT DEFAULT 100\n"
+ + "CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID, SECOND_ID))\n"
+ "VERSIONS=1,MULTI_TENANT=false,REPLICATION_SCOPE=1,TTL=31536000";
String baseDDL = filePath+"/alter_table_add.sql";
runAndVerify(expected, baseDDL);
@@ -53,10 +53,10 @@ public class SchemaToolSynthesisIT {
// Dropping TYPE column
public void testCreateTableStatement_dropColumn() throws Exception {
String expected = "CREATE TABLE IF NOT EXISTS TEST.SAMPLE_TABLE\n"
- + "(ORG_ID CHAR(15) NOT NULL,\n" + "SOME_ANOTHER_ID BIGINT NOT NULL,\n"
+ + "(ORG_ID CHAR(15) NOT NULL,\n" + "SOME_ANOTHER_ID BIGINT NOT NULL,\n" + "SECOND_ID BIGINT NOT NULL,\n"
+ "STATUS VARCHAR,\n" + "START_TIMESTAMP BIGINT,\n" + "END_TIMESTAMP BIGINT,\n"
+ "PARAMS VARCHAR,\n" + "RESULT VARCHAR\n"
- + "CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID))\n"
+ + "CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID, SECOND_ID))\n"
+ "VERSIONS=1,MULTI_TENANT=false,REPLICATION_SCOPE=1,TTL=31536000";
String baseDDL = filePath+"/alter_table_drop.sql";
runAndVerify(expected, baseDDL);
@@ -66,10 +66,10 @@ public class SchemaToolSynthesisIT {
// Changing REPLICATION SCOPE from 1 to 0
public void testCreateTableStatement_changeProperty() throws Exception {
String expected = "CREATE TABLE IF NOT EXISTS TEST.SAMPLE_TABLE\n"
- + "(ORG_ID CHAR(15) NOT NULL,\n" + "SOME_ANOTHER_ID BIGINT NOT NULL,\n"
+ + "(ORG_ID CHAR(15) NOT NULL,\n" + "SOME_ANOTHER_ID BIGINT NOT NULL,\n" + "SECOND_ID BIGINT NOT NULL,\n"
+ "TYPE VARCHAR,\n" + "STATUS VARCHAR,\n" + "START_TIMESTAMP BIGINT,\n"
+ "END_TIMESTAMP BIGINT,\n" + "PARAMS VARCHAR,\n" + "RESULT VARCHAR\n"
- + "CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID))\n"
+ + "CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID, SECOND_ID))\n"
+ "MULTI_TENANT=false,REPLICATION_SCOPE=0,TTL=31536000,VERSIONS=1";
String baseDDL = filePath+"/alter_change_property.sql";
runAndVerify(expected, baseDDL);
@@ -79,10 +79,10 @@ public class SchemaToolSynthesisIT {
// Adding DISABLE_MIGRATION property
public void testCreateTableStatement_addProperty() throws Exception {
String expected = "CREATE TABLE IF NOT EXISTS TEST.SAMPLE_TABLE\n"
- + "(ORG_ID CHAR(15) NOT NULL,\n" + "SOME_ANOTHER_ID BIGINT NOT NULL,\n"
+ + "(ORG_ID CHAR(15) NOT NULL,\n" + "SOME_ANOTHER_ID BIGINT NOT NULL,\n" + "SECOND_ID BIGINT NOT NULL,\n"
+ "TYPE VARCHAR,\n" + "STATUS VARCHAR,\n" + "START_TIMESTAMP BIGINT,\n"
+ "END_TIMESTAMP BIGINT,\n" + "PARAMS VARCHAR,\n" + "RESULT VARCHAR\n"
- + "CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID))\n"
+ + "CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID, SECOND_ID))\n"
+ "DISABLE_MIGRATION=true,MULTI_TENANT=false,REPLICATION_SCOPE=1,TTL=31536000,VERSIONS=1";
String baseDDL = filePath+"/alter_add_property.sql";
runAndVerify(expected, baseDDL);
@@ -96,7 +96,7 @@ public class SchemaToolSynthesisIT {
+ "SOME_ID CHAR(15) NOT NULL,\n" + "DOUBLE1 DECIMAL(12,3),\n"
+ "IS_BOOLEAN BOOLEAN,\n" + "RELATE CHAR(15),\n" + "TEXT1 VARCHAR,\n"
+ "TEXT_READ_ONLY VARCHAR,\n" + "NEW_COLUMN VARCHAR(20)\n"
- + "CONSTRAINT PKVIEW PRIMARY KEY (DATE_TIME1 DESC, SOME_ID, INT1))\n"
+ + "CONSTRAINT PKVIEW PRIMARY KEY (DATE_TIME1 DESC, INT1, SOME_ID))\n"
+ "AS SELECT * FROM TEST.SAMPLE_TABLE_VIEW WHERE FILTER_PREFIX = 'abc'";
String baseDDL = filePath+"/alter_view_add.sql";
runAndVerify(expected, baseDDL);
@@ -118,7 +118,7 @@ public class SchemaToolSynthesisIT {
+ "(DATE_TIME1 DATE NOT NULL,\n" + "INT1 BIGINT NOT NULL,\n"
+ "SOME_ID CHAR(15) NOT NULL,\n" + "IS_BOOLEAN BOOLEAN,\n" + "RELATE CHAR(15),\n"
+ "TEXT1 VARCHAR,\n" + "TEXT_READ_ONLY VARCHAR\n"
- + "CONSTRAINT PKVIEW PRIMARY KEY (DATE_TIME1 DESC, SOME_ID, INT1))\n"
+ + "CONSTRAINT PKVIEW PRIMARY KEY (DATE_TIME1 DESC, INT1, SOME_ID))\n"
+ "AS SELECT * FROM TEST.SAMPLE_TABLE_VIEW WHERE FILTER_PREFIX = 'abc'";
String baseDDL = filePath+"/alter_view_drop.sql";
runAndVerify(expected, baseDDL);
@@ -154,6 +154,28 @@ public class SchemaToolSynthesisIT {
@Test
// drop table
+ public void testCreateTableStatement_dropRecreateTable() throws Exception {
+ String expected = "CREATE TABLE IF NOT EXISTS TEST.SAMPLE_TABLE (\n"
+ + " ORG_ID CHAR(15) NOT NULL,\n" + " SOME_ANOTHER_ID BIGINT NOT NULL,\n"
+ + " TYPE VARCHAR,\n" + " STATUS VARCHAR,\n" + " START_TIMESTAMP BIGINT,\n"
+ + " END_TIMESTAMP BIGINT,\n" + " PARAMS VARCHAR, RESULT VARCHAR\n"
+ + " CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID)\n"
+ + ") VERSIONS=1,MULTI_TENANT=FALSE,REPLICATION_SCOPE=1,TTL=31536000";
+ String baseDDL = filePath+"/drop_create_table.sql";
+ runAndVerify(expected, baseDDL);
+ }
+
+ @Test
+ // drop table
+ public void testCreateTableStatement_add_pk() throws Exception {
+ String expected = "CREATE TABLE IF NOT EXISTS TEST.TABLE_1\n" + "(STATE CHAR(1) NOT NULL,\n"
+ + "SOME_ID VARCHAR\n" + "CONSTRAINT PK PRIMARY KEY (STATE, SOME_ID))";
+ String baseDDL = filePath+"/alter_table_add_pk.sql";
+ runAndVerify(expected, baseDDL);
+ }
+
+ @Test
+ // drop table
public void testCreateIndexStatement_dropIndex() throws Exception {
String expected = "";
String baseDDL = filePath+"/drop_index.sql";
@@ -170,11 +192,11 @@ public class SchemaToolSynthesisIT {
// Alter DDL file can have multiple alter statements
public void testMultipleAlterDDL() throws Exception {
String expected = "CREATE TABLE IF NOT EXISTS TEST.SAMPLE_TABLE\n"
- + "(ORG_ID CHAR(15) NOT NULL,\n" + "SOME_ANOTHER_ID BIGINT NOT NULL,\n"
+ + "(ORG_ID CHAR(15) NOT NULL,\n" + "SOME_ANOTHER_ID BIGINT NOT NULL,\n" + "SECOND_ID BIGINT NOT NULL,\n"
+ "TYPE VARCHAR,\n" + "STATUS VARCHAR,\n" + "START_TIMESTAMP BIGINT,\n"
+ "END_TIMESTAMP BIGINT,\n" + "PARAMS VARCHAR,\n" + "RESULT VARCHAR,\n"
+ "SOME_NEW_COLUMN BIGINT\n"
- + "CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID))\n"
+ + "CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID, SECOND_ID))\n"
+ "MULTI_TENANT=false,REPLICATION_SCOPE=1,TTL=2000,VERSIONS=1";
String baseDDL = filePath+"/alter_table_multiple.sql";
runAndVerify(expected, baseDDL);
diff --git a/phoenix-tools/src/it/resources/synthesis/alter_add_property.sql b/phoenix-tools/src/it/resources/synthesis/alter_add_property.sql
index bb436f7..1860c3e 100644
--- a/phoenix-tools/src/it/resources/synthesis/alter_add_property.sql
+++ b/phoenix-tools/src/it/resources/synthesis/alter_add_property.sql
@@ -18,12 +18,13 @@
CREATE TABLE IF NOT EXISTS TEST.SAMPLE_TABLE (
ORG_ID CHAR(15) NOT NULL,
SOME_ANOTHER_ID BIGINT NOT NULL,
+ SECOND_ID BIGINT NOT NULL,
TYPE VARCHAR,
STATUS VARCHAR,
START_TIMESTAMP BIGINT,
END_TIMESTAMP BIGINT,
PARAMS VARCHAR, RESULT VARCHAR
- CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID)
+ CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID, SECOND_ID)
) VERSIONS=1,MULTI_TENANT=FALSE,REPLICATION_SCOPE=1,TTL=31536000;
ALTER TABLE TEST.SAMPLE_TABLE SET DISABLE_MIGRATION=true;
\ No newline at end of file
diff --git a/phoenix-tools/src/it/resources/synthesis/alter_change_property.sql b/phoenix-tools/src/it/resources/synthesis/alter_change_property.sql
index 79d42a2..7e01a46 100644
--- a/phoenix-tools/src/it/resources/synthesis/alter_change_property.sql
+++ b/phoenix-tools/src/it/resources/synthesis/alter_change_property.sql
@@ -18,12 +18,13 @@
CREATE TABLE IF NOT EXISTS TEST.SAMPLE_TABLE (
ORG_ID CHAR(15) NOT NULL,
SOME_ANOTHER_ID BIGINT NOT NULL,
+ SECOND_ID BIGINT NOT NULL,
TYPE VARCHAR,
STATUS VARCHAR,
START_TIMESTAMP BIGINT,
END_TIMESTAMP BIGINT,
PARAMS VARCHAR, RESULT VARCHAR
- CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID)
+ CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID, SECOND_ID)
) VERSIONS=1,MULTI_TENANT=FALSE,REPLICATION_SCOPE=1,TTL=31536000;
ALTER TABLE TEST.SAMPLE_TABLE SET REPLICATION_SCOPE=0;
\ No newline at end of file
diff --git a/phoenix-tools/src/it/resources/synthesis/alter_table_add.sql b/phoenix-tools/src/it/resources/synthesis/alter_table_add.sql
index a22170f..53ef07d 100644
--- a/phoenix-tools/src/it/resources/synthesis/alter_table_add.sql
+++ b/phoenix-tools/src/it/resources/synthesis/alter_table_add.sql
@@ -18,12 +18,13 @@
CREATE TABLE IF NOT EXISTS TEST.SAMPLE_TABLE (
ORG_ID CHAR(15) NOT NULL,
SOME_ANOTHER_ID BIGINT NOT NULL,
+ SECOND_ID BIGINT NOT NULL,
TYPE VARCHAR,
STATUS VARCHAR,
START_TIMESTAMP BIGINT,
END_TIMESTAMP BIGINT,
PARAMS VARCHAR, RESULT VARCHAR
- CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID)
+ CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID, SECOND_ID)
) VERSIONS=1,MULTI_TENANT=FALSE,REPLICATION_SCOPE=1,TTL=31536000;
-ALTER TABLE TEST.SAMPLE_TABLE ADD IF NOT EXISTS RELATED_COMMAND BIGINT NULL;
\ No newline at end of file
+ALTER TABLE TEST.SAMPLE_TABLE ADD IF NOT EXISTS RELATED_COMMAND BIGINT DEFAULT 100;
\ No newline at end of file
diff --git a/phoenix-tools/src/it/resources/synthesis/alter_table_add_pk.sql b/phoenix-tools/src/it/resources/synthesis/alter_table_add_pk.sql
index 6835cf0..5d9a58b 100644
--- a/phoenix-tools/src/it/resources/synthesis/alter_table_add_pk.sql
+++ b/phoenix-tools/src/it/resources/synthesis/alter_table_add_pk.sql
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
CREATE TABLE IF NOT EXISTS TEST.TABLE_1 (
STATE CHAR(1) NOT NULL,
CONSTRAINT PK PRIMARY KEY
@@ -5,4 +22,5 @@ CREATE TABLE IF NOT EXISTS TEST.TABLE_1 (
STATE
)
);
+
ALTER TABLE TEST.TABLE_1 ADD IF NOT EXISTS SOME_ID VARCHAR NULL PRIMARY KEY;
\ No newline at end of file
diff --git a/phoenix-tools/src/it/resources/synthesis/alter_table_drop.sql b/phoenix-tools/src/it/resources/synthesis/alter_table_drop.sql
index 587adb8..a03a9ef 100644
--- a/phoenix-tools/src/it/resources/synthesis/alter_table_drop.sql
+++ b/phoenix-tools/src/it/resources/synthesis/alter_table_drop.sql
@@ -18,12 +18,13 @@
CREATE TABLE IF NOT EXISTS TEST.SAMPLE_TABLE (
ORG_ID CHAR(15) NOT NULL,
SOME_ANOTHER_ID BIGINT NOT NULL,
+ SECOND_ID BIGINT NOT NULL,
TYPE VARCHAR,
STATUS VARCHAR,
START_TIMESTAMP BIGINT,
END_TIMESTAMP BIGINT,
PARAMS VARCHAR, RESULT VARCHAR
- CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID)
+ CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID, SECOND_ID)
) VERSIONS=1,MULTI_TENANT=FALSE,REPLICATION_SCOPE=1,TTL=31536000;
ALTER TABLE TEST.SAMPLE_TABLE DROP COLUMN TYPE;
\ No newline at end of file
diff --git a/phoenix-tools/src/it/resources/synthesis/alter_table_multiple.sql b/phoenix-tools/src/it/resources/synthesis/alter_table_multiple.sql
index 4734722..313b261 100644
--- a/phoenix-tools/src/it/resources/synthesis/alter_table_multiple.sql
+++ b/phoenix-tools/src/it/resources/synthesis/alter_table_multiple.sql
@@ -18,12 +18,13 @@
CREATE TABLE IF NOT EXISTS TEST.SAMPLE_TABLE (
ORG_ID CHAR(15) NOT NULL,
SOME_ANOTHER_ID BIGINT NOT NULL,
+ SECOND_ID BIGINT NOT NULL,
TYPE VARCHAR,
STATUS VARCHAR,
START_TIMESTAMP BIGINT,
END_TIMESTAMP BIGINT,
PARAMS VARCHAR, RESULT VARCHAR
- CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID)
+ CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID, SECOND_ID)
) VERSIONS=1,MULTI_TENANT=FALSE,REPLICATION_SCOPE=1,TTL=31536000;
ALTER TABLE TEST.SAMPLE_TABLE SET TTL=2000;
diff --git a/phoenix-tools/src/it/resources/synthesis/alter_table_add.sql b/phoenix-tools/src/it/resources/synthesis/drop_create_table.sql
similarity index 74%
copy from phoenix-tools/src/it/resources/synthesis/alter_table_add.sql
copy to phoenix-tools/src/it/resources/synthesis/drop_create_table.sql
index a22170f..0acc00a 100644
--- a/phoenix-tools/src/it/resources/synthesis/alter_table_add.sql
+++ b/phoenix-tools/src/it/resources/synthesis/drop_create_table.sql
@@ -26,4 +26,17 @@ CREATE TABLE IF NOT EXISTS TEST.SAMPLE_TABLE (
CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID)
) VERSIONS=1,MULTI_TENANT=FALSE,REPLICATION_SCOPE=1,TTL=31536000;
-ALTER TABLE TEST.SAMPLE_TABLE ADD IF NOT EXISTS RELATED_COMMAND BIGINT NULL;
\ No newline at end of file
+ALTER TABLE TEST.SAMPLE_TABLE ADD IF NOT EXISTS RELATED_COMMAND BIGINT NULL;
+
+DROP TABLE TEST.SAMPLE_TABLE CASCADE;
+
+CREATE TABLE IF NOT EXISTS TEST.SAMPLE_TABLE (
+ ORG_ID CHAR(15) NOT NULL,
+ SOME_ANOTHER_ID BIGINT NOT NULL,
+ TYPE VARCHAR,
+ STATUS VARCHAR,
+ START_TIMESTAMP BIGINT,
+ END_TIMESTAMP BIGINT,
+ PARAMS VARCHAR, RESULT VARCHAR
+ CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID)
+) VERSIONS=1,MULTI_TENANT=FALSE,REPLICATION_SCOPE=1,TTL=31536000;
\ No newline at end of file
diff --git a/phoenix-tools/src/it/resources/synthesis/mismatched_entity_name.sql b/phoenix-tools/src/it/resources/synthesis/mismatched_entity_name.sql
index fc97d42..2921151 100644
--- a/phoenix-tools/src/it/resources/synthesis/mismatched_entity_name.sql
+++ b/phoenix-tools/src/it/resources/synthesis/mismatched_entity_name.sql
@@ -18,12 +18,13 @@
CREATE TABLE IF NOT EXISTS TEST.SAMPLE_TABLE (
ORG_ID CHAR(15) NOT NULL,
SOME_ANOTHER_ID BIGINT NOT NULL,
+ SECOND_ID BIGINT NOT NULL,
TYPE VARCHAR,
STATUS VARCHAR,
START_TIMESTAMP BIGINT,
END_TIMESTAMP BIGINT,
PARAMS VARCHAR, RESULT VARCHAR
- CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID)
+ CONSTRAINT PK PRIMARY KEY (ORG_ID, SOME_ANOTHER_ID, SECOND_ID)
) VERSIONS=1,MULTI_TENANT=FALSE,REPLICATION_SCOPE=1,TTL=31536000;
ALTER VIEW TEST.SAMPLE_VIEW ADD NEW_COLUMN VARCHAR(20);
\ No newline at end of file
diff --git a/phoenix-tools/src/main/java/org/apache/phoenix/schema/SchemaSQLUtil.java b/phoenix-tools/src/main/java/org/apache/phoenix/schema/SchemaSQLUtil.java
index c565b51..222b190 100644
--- a/phoenix-tools/src/main/java/org/apache/phoenix/schema/SchemaSQLUtil.java
+++ b/phoenix-tools/src/main/java/org/apache/phoenix/schema/SchemaSQLUtil.java
@@ -137,6 +137,10 @@ public class SchemaSQLUtil {
buf.append(' ');
buf.append("NOT NULL");
}
+ if(cDef.getExpression()!=null) {
+ buf.append(" DEFAULT ");
+ buf.append(cDef.getExpression());
+ }
return buf.toString();
}
diff --git a/phoenix-tools/src/main/java/org/apache/phoenix/schema/SchemaSynthesisProcessor.java b/phoenix-tools/src/main/java/org/apache/phoenix/schema/SchemaSynthesisProcessor.java
index 7c8e849..d65f65f 100644
--- a/phoenix-tools/src/main/java/org/apache/phoenix/schema/SchemaSynthesisProcessor.java
+++ b/phoenix-tools/src/main/java/org/apache/phoenix/schema/SchemaSynthesisProcessor.java
@@ -25,12 +25,14 @@ import org.apache.hadoop.hbase.util.Pair;
import org.apache.phoenix.parse.AddColumnStatement;
import org.apache.phoenix.parse.BindableStatement;
import org.apache.phoenix.parse.ColumnDef;
+import org.apache.phoenix.parse.ColumnDefInPkConstraint;
import org.apache.phoenix.parse.ColumnName;
import org.apache.phoenix.parse.CreateIndexStatement;
import org.apache.phoenix.parse.CreateTableStatement;
import org.apache.phoenix.parse.DropColumnStatement;
import org.apache.phoenix.parse.DropIndexStatement;
import org.apache.phoenix.parse.DropTableStatement;
+import org.apache.phoenix.parse.PrimaryKeyConstraint;
import org.apache.phoenix.parse.SQLParser;
import java.io.BufferedReader;
@@ -161,18 +163,16 @@ public class SchemaSynthesisProcessor implements SchemaProcessor {
for(Pair<ColumnName, SortOrder> entry : oldPKConstraint.getColumnNames()) {
ColumnDefInPkConstraint cd = new
ColumnDefInPkConstraint(entry.getFirst(), entry.getSecond(), oldPKConstraint.isColumnRowTimestamp(entry
- .getFirst()));
+ .getFirst()));
pkList.add(cd);
}
for(ColumnDef cd : addStmt.getColumnDefs()) {
if(cd.isPK()) {
- ColumnDefInPkConstraint cdpk = new
- ColumnDefInPkConstraint(cd.getColumnDefName(), cd.getSortOrder(), cd.isRowTimestamp());
+ ColumnDefInPkConstraint cdpk = new ColumnDefInPkConstraint(cd.getColumnDefName(), cd.getSortOrder(), cd.isRowTimestamp());
pkList.add(cdpk);
}
}
- PrimaryKeyConstraint pkConstraint = new
- PrimaryKeyConstraint(oldPKConstraint.getName(), pkList);
+ PrimaryKeyConstraint pkConstraint = new PrimaryKeyConstraint(oldPKConstraint.getName(), pkList);
newCreateStmt = new CreateTableStatement(createStmt, pkConstraint, newColDef);
}
return newCreateStmt;