phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas D'Silva (JIRA)" <>
Subject [jira] [Commented] (PHOENIX-2058) Check for existence and compatibility of columns being added in view
Date Tue, 07 Jul 2015 00:19:04 GMT


Thomas D'Silva commented on PHOENIX-2058:


I didn't have to check check which columns were being added to the viewColumnDefinitionPut
because later on we explicity update the positions of the view columns

for (PColumn column : view.getColumns()) {
                if (column.getPosition() >= oldBaseColumnCount) {
                    int newPosition = column.getPosition() + numColsAddedToView + 1;

                    byte[] k = ByteUtil.concat(viewKey, QueryConstants.SEPARATOR_BYTE_ARRAY,
                    if (column.getFamilyName() != null) {
                        k = ByteUtil.concat(k, QueryConstants.SEPARATOR_BYTE_ARRAY, column.getFamilyName().getBytes());

                    Put positionUpdatePut = new Put(k, clientTimeStamp);
                    byte[] ptr = new byte[PInteger.INSTANCE.getByteSize()];
                    PInteger.INSTANCE.getCodec().encodeInt(newPosition, ptr, 0);
                            PhoenixDatabaseMetaData.ORDINAL_POSITION_BYTES, clientTimeStamp,

I am working on adding a test that test adding a pk column that already exists in the view
to the base table.

> Check for existence and compatibility of columns being added in view
> --------------------------------------------------------------------
>                 Key: PHOENIX-2058
>                 URL:
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>            Assignee: Thomas D'Silva
>         Attachments: PHOENIX-2058-WIP.patch, PHOENIX-2058.wip.2.patch
> One check I realized we're not doing, but need to do, is ensuring that the column being
added by the base table doesn't already exist in the view. If the column does already exist,
ideally we can allow the addition to the base table if the type matches and the scale is null
or >= existing scale and the maxLength is null or >= existing maxLength. Also, if a
column is a PK column and it already exists in the view, the position in the PK must match.

> The fact that we've materialized a PTable for the view should make the addition of this
check easier.

This message was sent by Atlassian JIRA

View raw message