[
https://issues.apache.org/jira/browse/PHOENIX-831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13930039#comment-13930039
]
ASF GitHub Bot commented on PHOENIX-831:
----------------------------------------
Github user yaise commented on a diff in the pull request:
https://github.com/apache/incubator-phoenix/pull/15#discussion_r10463718
--- Diff:
phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixConnection.java ---
@@ -119,7 +116,36 @@ private static Properties newPropsWithSCN(long scn,
Properties props) {
props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB,
Long.toString(scn));
return props;
}
-
+
+ /**
+ * Strips out tenant specific information from the passed in
properties before creating a connection.
+ *
+ * @return a new Phoenix Connection.
+ * @throws SQLException
+ */
+ public static PhoenixConnection
newTenantLessConnection(ConnectionQueryServices services, String url,
Properties props, PMetaData metaData) throws SQLException {
+ if( props != null &&
props.getProperty(PhoenixRuntime.TENANT_ID_ATTRIB) != null ) {
+ //java.util.properties has a copy constructor but that doesn't
do a deep copy.
+ // Instead it holds the props passed into the copy constructor
as a reference(defaults) which is pretty much immutable.
+ // The tenantId might either be in a given property map or the
property map it wraps.
+ if(props.containsKey(PhoenixRuntime.TENANT_ID_ATTRIB)) {
--- End diff --
I actually don't need another if/else block inside. The else block will
work in both cases. just trying to avoid creating another copy if I don't have
to, since PhoenixConnection's constructor creates a wrapper anyways.
> First Connection to Phoenix blows up if it is tenant specific
> -------------------------------------------------------------
>
> Key: PHOENIX-831
> URL: https://issues.apache.org/jira/browse/PHOENIX-831
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 3.0.0
> Reporter: Somesh Sasalatti
>
> Driver driver = DriverManager.getDriver(url);
> Properties props = new Properties();
> final String tenantId = "00Dxx0000001234";
> props.put(PhoenixRuntime.TENANT_ID_ATTRIB, tenantId);
> Connection connection = driver.connect(url, props);
> BOOM!
> I have pull request coming shortly
--
This message was sent by Atlassian JIRA
(v6.2#6252)