Github user ankitsinghal commented on the issue:

    https://github.com/apache/phoenix/pull/295
  
    bq. As of now, when the server gets connected to for the first time i.e. no 
SYSTEM tables exist, we call
    ensureSystemTablesMigratedToSystemNamespace, but this just creates the 
HBase SYSTEM namespace and returns without migrating tables since they haven't 
been created yet. However, later on when we do create other SYSTEM tables, we 
aren't migrating them to the SYSTEM namespace right away.
    
    As per the current implementation, if there is namespace mapping enabled 
and no SYSTEM table exists then CREATE TABLE should automatically create SYSTEM 
tables in SYSTEM namespace. There should not be a need of migrating them. It 
used to work like this, is it not the case now?
    
    bq. Now, as per the current design, whenever a second client with 
NS-mapping enabled connects to the server, we will migrate these SYSTEM tables 
to the SYSTEM namespace when ensureSystemTablesMigratedToSystemNamespace is 
called within init (with my PR, this will be called inside ensureTableCreated 
when the table is SYSTEM.CATALOG and NS-mapping is enabled, instead of in 
init). My question is, shouldn't we map SYSTEM tables to the SYSTEM namespace 
immediately after creating them?
    First connection will be useless, if as per the new design, SYSTEM tables 
are not getting created in the correct namespace.



---

Reply via email to