phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-3944) ReadOnlyTableException occurs when we map Phoenix view to an existing HBase table with Namespace Mapping enabled
Date Mon, 26 Jun 2017 08:37:00 GMT

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

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

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

    https://github.com/apache/phoenix/pull/261#discussion_r123954850
  
    --- Diff: phoenix-core/src/main/java/org/apache/phoenix/util/SchemaUtil.java ---
    @@ -983,14 +983,21 @@ public static boolean hasRowTimestampColumn(PTable table) {
             return SchemaUtil.getTableKey(null, schemaName, MetaDataClient.EMPTY_TABLE);
         }
     
    -    public static PName getPhysicalHBaseTableName(PName pName, boolean isNamespaceMapped,
PTableType type) {
    -        return getPhysicalHBaseTableName(pName.toString(), isNamespaceMapped, type);
    +    public static PName getPhysicalHBaseTableName(PName schemaName, PName tableName,
boolean isNamespaceMapped) {
    --- End diff --
    
    I added "schemaName" as an argument to this method.
    I think we need both schemaName and tableName to handle a table like "AAA.BBB" in default
schema correctly, because if we have only the table name "AAA.BBB", we can't distinguish between
"AAA.BBB" in the default schema and "BBB" in "AAA" schema.
    
    Also we don't need the "type" argument, so I deleted it.



> ReadOnlyTableException occurs when we map Phoenix view to an existing HBase table with
Namespace Mapping enabled
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-3944
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3944
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Toshihiro Suzuki
>
> Firstly, I created a namespace and a table in hbase shell:
> {code}
> hbase> create_namespace "NS"
> hbase> create "NS:TBL", "CF"
> {code}
> After that, I tried to create a phoenix view for this existing hbase table in phoenix-sqlline:
> {code}
> phoenix> CREATE VIEW ns.tbl (pk VARCHAR PRIMARY KEY, cf.col VARCHAR);
> {code}
> However, I encountered the following error and I was not able to create the view:
> {code}
> org.apache.phoenix.schema.ReadOnlyTableException: ERROR 505 (42000): Table is read only.
> 	at org.apache.phoenix.query.ConnectionQueryServicesImpl.ensureTableCreated(ConnectionQueryServicesImpl.java:1072)
> 	at org.apache.phoenix.query.ConnectionQueryServicesImpl.createTable(ConnectionQueryServicesImpl.java:1434)
> 	at org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:2624)
> 	at org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:1040)
> 	at org.apache.phoenix.compile.CreateTableCompiler$2.execute(CreateTableCompiler.java:212)
> 	at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:393)
> 	at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:376)
> 	at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> 	at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:375)
> 	at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:363)
> 	at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1707)
> 	at org.apache.PhoenixTest.main(PhoenixTest.java:55)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message