[
https://issues.apache.org/jira/browse/PHOENIX-2902?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15351232#comment-15351232
]
James Taylor commented on PHOENIX-2902:
---------------------------------------
bq. Is setting properties in hbase-site.xml or passing during connection can be
handled differently.
Yes, properties that come from hbase-site.xml are static - they're read once
when the clients connects to the cluster (in ConnectionQueryService). We
simulate this in the @BeforeClass method of our integration tests. For example,
from StatsCollectorIT:
{code}
@BeforeClass
public static void doSetup() throws Exception {
Map<String,String> props = Maps.newHashMapWithExpectedSize(10);
// Must update config before starting server
props.put(QueryServices.STATS_GUIDEPOST_WIDTH_BYTES_ATTRIB,
Long.toString(20));
props.put(QueryServices.EXPLAIN_CHUNK_COUNT_ATTRIB,
Boolean.TRUE.toString());
props.put(QueryServices.EXPLAIN_ROW_COUNT_ATTRIB,
Boolean.TRUE.toString());
props.put(QueryServices.QUEUE_SIZE_ATTRIB, Integer.toString(1024));
props.put(QueryServices.TRANSACTIONS_ENABLED, Boolean.toString(true));
setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator()));
}
{code}
Connection properties are properties that are passed through at connection
time. Connections come and go as they are opened and closed. There properties
override the ones from hbase-site.xml.
However, some properties, like the IS_NAMESPACE_MAPPING_ENABLED and
IS_SYSTEM_TABLE_MAPPED_TO_NAMESPACE do not make sense to toggle back and forth
as connections are opened and closed. Instead, they should be set once in
hbase-site.xml and not really changed after that. For example, I don't think
you can convert your tables to be namespace aware and then set these config
properties back to saying that namespaces aren't enabled.
As far as hardcoding the call to set the namespaces as always being enabled
when deletePriorTables is called, that doesn't make sense. Won't some tests
expect namespaces to not be enabled too? For tests that are relying on them to
be enabled, you'd want to set them in the @BeforeClass method as mentioned
above - in that case this property would be set when deletePriorTables is
called as well.
[~samarthjain] should be able to help you with this stuff as well.
> Adjust PhoenixDatabaseMetadata#getSchemas query if namespaces are enabled
> -------------------------------------------------------------------------
>
> Key: PHOENIX-2902
> URL: https://issues.apache.org/jira/browse/PHOENIX-2902
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.8.0
> Reporter: James Taylor
> Assignee: Ankit Singhal
> Fix For: 4.8.0
>
> Attachments: PHOENIX-2902.patch
>
>
> The call to PhoenixDatabaseMetaData.getSchemas() currently queries the
> SYSTEM.CATALOG table to find distinct schema names. If namespaces are
> enabled, we should likely adjust the query accordingly.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)