[
https://issues.apache.org/jira/browse/PHOENIX-6720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17680221#comment-17680221
]
ASF GitHub Bot commented on PHOENIX-6720:
-----------------------------------------
stoty commented on code in PR #1553:
URL: https://github.com/apache/phoenix/pull/1553#discussion_r1085332725
##########
phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java:
##########
@@ -2614,7 +2628,47 @@ else if
(!SchemaUtil.isSystemTable(Bytes.toBytes(SchemaUtil.getTableName(schemaN
}
// Use position as column qualifier if APPEND_ONLY_SCHEMA to
prevent gaps in
// the column encoding (PHOENIX-4737).
- Integer encodedCQ = isPkColumn ? null : isAppendOnlySchema ?
Integer.valueOf(ENCODED_CQ_COUNTER_INITIAL_VALUE + position) :
cqCounter.getNextQualifier(cqCounterFamily);
+ Integer encodedCQ = null;
+ if (!isPkColumn) {
+ if (colDef.getColumnQualifier() != null && encodingScheme
!= NON_ENCODED_QUALIFIERS) {
+ if (cqCounter.getNextQualifier(cqCounterFamily) >
ENCODED_CQ_COUNTER_INITIAL_VALUE &&
+ !inputCqCounters.containsKey(cqCounterFamily))
{
+ throw new
SQLExceptionInfo.Builder(SQLExceptionCode.MISSING_CQ)
Review Comment:
OK
> "create table" can't recreate column encoded tables that had columns dropped
> ----------------------------------------------------------------------------
>
> Key: PHOENIX-6720
> URL: https://issues.apache.org/jira/browse/PHOENIX-6720
> Project: Phoenix
> Issue Type: Bug
> Components: core
> Affects Versions: 5.2.0, 5.1.3
> Reporter: Istvan Toth
> Assignee: Aron Attila Meszaros
> Priority: Blocker
>
> For column encoded tables,create table generate column qualifier order.
> When moving data between instances, and the original table had some columns
> removed, or swapped around, then the column qualifers in the table are not
> guarenteed to start from the expected value and increase by 1 for each
> column, based on the ordering of columns.
> This means that when we load a data table via HBase (i.e from a snaphsot),
> and then execute the DDL created by the show create table, or by other means,
> the column_qualifiers on the new table are going to point to the wrong Hbase
> cell.
> We need to accept and use COLUMN_QUALIFIER properties for columns, and
> include them in in the show create table output for column encoded tables.
> We also need to accept and generate QUALIFIER_COUNTER for the tables.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)