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

ASF GitHub Bot commented on PHOENIX-1673:
-----------------------------------------

Github user JamesRTaylor commented on a diff in the pull request:

    https://github.com/apache/phoenix/pull/104#discussion_r36442491
  
    --- Diff: phoenix-core/src/main/java/org/apache/phoenix/util/ScanUtil.java 
---
    @@ -657,6 +660,22 @@ public static PName 
padTenantIdIfNecessary(RowKeySchema schema, boolean isSalted
             return tenantId;
         }
     
    +    public static byte[] getTenantIdBytes(RowKeySchema schema, boolean 
isSalted, PName tenantId)
    +            throws SQLException {
    +        int pkPos = isSalted ? 1 : 0;
    +        Field field = schema.getField(pkPos);
    +        PDataType dataType = field.getDataType();
    +        byte[] convertedValue;
    +        try {
    +            Object value = dataType.toObject(tenantId.getString());
    +            convertedValue = dataType.toBytes(value);
    --- End diff --
    
    You can use the following code to pad the convertedValue (this will be a 
noop for types that aren't padded):
    
        ImmutableBytesWritable ptr = new ImmutableBytesWritable(convertedValue);
        dataType.pad(ptr, field.getMaxLength(), field.getSortOrder());
        convertedValue = ByteUtil.copyKeyBytesIfNecessary(ptr);


> Allow tenant ID to be of any integral data type
> -----------------------------------------------
>
>                 Key: PHOENIX-1673
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1673
>             Project: Phoenix
>          Issue Type: Improvement
>    Affects Versions: 4.3.0
>            Reporter: Mark Tse
>              Labels: Newbie, multi-tenant
>             Fix For: 4.4.1
>
>
> When creating multi-tenant tables and views, the column that identifies the 
> tenant (first primary key column) must be of type 'VARCHAR' or 'CHAR'.
> It should be possible to relax this restriction to use any integral data 
> type. The tenant ID from the connection property can be converted based on 
> the data type of the first primary key column.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to