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

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

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

    https://github.com/apache/phoenix/pull/153#discussion_r58468394
  
    --- Diff: 
phoenix-core/src/main/java/org/apache/phoenix/util/UpgradeUtil.java ---
    @@ -1279,4 +1304,129 @@ public static boolean truncateStats(HTableInterface 
metaTable, HTableInterface s
             }
             return false;
         }
    +
    +    public static void mapTableToNamespace(HBaseAdmin admin, 
HTableInterface metatable, String srcTableName,
    +            String destTableName, ReadOnlyProps props, Long ts, String 
phoenixTableName, PTableType pTableType)
    +                    throws SnapshotCreationException, 
IllegalArgumentException, IOException, InterruptedException,
    +                    SQLException {
    +        srcTableName = SchemaUtil.normalizeIdentifier(srcTableName);
    +        if (!SchemaUtil.isNamespaceMappingEnabled(
    +                SchemaUtil.isSystemTable(srcTableName.getBytes()) ? 
PTableType.SYSTEM : null,
    +                props)) { throw new 
IllegalArgumentException(SchemaUtil.isSystemTable(srcTableName.getBytes())
    +                        ? "For system table " + 
QueryServices.IS_SYSTEM_TABLE_MAPPED_TO_NAMESPACE
    +                                + " also needs to be enabled along with " 
+ QueryServices.IS_NAMESPACE_MAPPING_ENABLED
    +                        : QueryServices.IS_NAMESPACE_MAPPING_ENABLED + " 
is not enabled"); }
    +
    +        if (PTableType.TABLE.equals(pTableType) || 
PTableType.INDEX.equals(pTableType)) {
    +            admin.snapshot(srcTableName, srcTableName);
    +            admin.cloneSnapshot(srcTableName.getBytes(), 
destTableName.getBytes());
    +            admin.disableTable(srcTableName);
    +            admin.deleteTable(srcTableName);
    +        }
    +        if (phoenixTableName == null) {
    --- End diff --
    
    This looks a bit hacky/unclear to me. When can phoenixTableName be null 
here? And when is it ok to use the srcTableName. At a minimum some method 
comments would help.


> HBase namespaces surfaced in phoenix
> ------------------------------------
>
>                 Key: PHOENIX-1311
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1311
>             Project: Phoenix
>          Issue Type: New Feature
>            Reporter: nicolas maillard
>            Assignee: Ankit Singhal
>            Priority: Minor
>             Fix For: 4.8.0
>
>         Attachments: PHOENIX-1311.docx, PHOENIX-1311_v1.patch, 
> PHOENIX-1311_v2.patch, PHOENIX-1311_wip.patch, PHOENIX-1311_wip_2.patch
>
>
> Hbase (HBASE-8015) has the concept of namespaces in the form of 
> myNamespace:MyTable it would be great if Phoenix leveraged this feature to 
> give a database like feature on top of the table.
> Maybe to stay close to Hbase it could also be a create DB:Table...
> or DB.Table which is a more standard annotation?



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

Reply via email to