You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@phoenix.apache.org by "Hadoop QA (Jira)" <ji...@apache.org> on 2020/09/19 02:29:00 UTC

[jira] [Commented] (PHOENIX-5261) Implement ALTER TABLE ADD COLUMN CASCADE

    [ https://issues.apache.org/jira/browse/PHOENIX-5261?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17198622#comment-17198622 ] 

Hadoop QA commented on PHOENIX-5261:
------------------------------------

{color:red}-1 overall{color}.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/13011767/PHOENIX-5261-4.x-v1.patch
  against 4.x branch at commit .
  ATTACHMENT ID: 13011767

    {color:green}+1 @author{color}.  The patch does not contain any @author tags.

    {color:green}+1 tests included{color}.  The patch appears to include 7 new or modified tests.

    {color:green}+1 javac{color}.  The applied patch does not increase the total number of javac compiler warnings.

    {color:red}-1 release audit{color}.  The applied patch generated 1 release audit warnings (more than the master's current 0 warnings).

    {color:red}-1 lineLengths{color}.  The patch introduces the following lines longer than 100:
    +        String query = "ALTER " +(isViewIndex? "VIEW " : "TABLE ") + phoenixObjectName + " ADD new_column_3 VARCHAR(64) CASCADE INDEX ALL";
+        ColumnInfo [] columnArray =  {new ColumnInfo("new_column_3", PVarchar.INSTANCE.getSqlType(), 64)};
+        ColumnInfo [] columnIndexArray =  {new ColumnInfo("0:new_column_3", PVarchar.INSTANCE.getSqlType(), 64)};
+            assertDBODefinition(conn, fullIndexNameOne, PTableType.INDEX, 5, columnIndexArray, false);
+            assertDBODefinition(conn, fullIndexNameTwo, PTableType.INDEX, 5, columnIndexArray, false);
+            assertDBODefinition(conn, fullIndexNameOne, PTableType.INDEX, 4, columnIndexArray, false);
+            assertDBODefinition(conn, fullIndexNameTwo, PTableType.INDEX, 4, columnIndexArray, false);
+        ColumnInfo [] columnIndexArray =  {new ColumnInfo("0:new_column_1", PDecimal.INSTANCE.getSqlType())};
+                + phoenixObjectName + " ADD new_column_1 FLOAT CASCADE INDEX " + indexNames.split(",")[0];
+            assertDBODefinition(conn, fullIndexNameOne, PTableType.INDEX, 5, columnIndexArray, false);

     {color:red}-1 core tests{color}.  The patch failed these unit tests:
     ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.join.SortMergeJoinGlobalIndexIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.RowValueConstructorOffsetIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.GroupByIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.ConcurrentMutationsExtendedIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.tx.ParameterizedTransactionIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.index.LocalMutableNonTxIndexIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.index.IndexMetadataIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.SkipScanQueryIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.index.IndexCoprocIT

Test results: https://ci-hadoop.apache.org/job/PreCommit-PHOENIX-Build/105//testReport/
Code Coverage results: https://ci-hadoop.apache.org/job/PreCommit-PHOENIX-Build/105//artifact/phoenix-core/target/site/jacoco/index.html
Release audit warnings: https://ci-hadoop.apache.org/job/PreCommit-PHOENIX-Build/105//artifact/patchprocess/patchReleaseAuditWarnings.txt
Console output: https://ci-hadoop.apache.org/job/PreCommit-PHOENIX-Build/105//console

This message is automatically generated.

> Implement ALTER TABLE ADD COLUMN CASCADE
> ----------------------------------------
>
>                 Key: PHOENIX-5261
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5261
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: Geoffrey Jacoby
>            Assignee: Swaroopa Kadam
>            Priority: Major
>         Attachments: PHOENIX-5261-4.x-v1.patch
>
>          Time Spent: 10h
>  Remaining Estimate: 0h
>
> Phoenix currently gives no way to alter the columns in an index. This is because adding a column to an index would require a full rebuild to cycle through the parent table and add the values to the index. 
> There is a special case, however, when adding a column to an index would be very useful and easy, and that is when adding a new nullable field to the index's parent table. In this case it is safe to just go ahead and add the column to the index, because at DDL time the field is known to be NULL on each row. 
> I propose adding an optional parameter CASCADE to ALTER TABLE ADD COLUMN, which when used will do the following:
> 1. The new column will be automatically added to any child views.
> 2. The new column will be automatically added as an INCLUDED column in any secondary index belonging to the parent table. 
> Outstanding questions:
> 1. Does splittable system catalog already take care of Item 1?
> 2. What about tenant-owned views?
> 3. Should there be a way to exclude adding the column to a child index to allow for uncovered usage?  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)