[
https://issues.apache.org/jira/browse/PHOENIX-1311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15210792#comment-15210792
]
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_r57372367
--- Diff:
phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java ---
@@ -3301,4 +3356,86 @@ private PTable getParentOfView(PTable view) throws
SQLException {
String parentName =
SchemaUtil.normalizeFullTableName(select.getFrom().toString().trim());
return connection.getTable(new PTableKey(view.getTenantId(),
parentName));
}
+
+ public MutationState createSchema(CreateSchemaStatement create) throws
SQLException {
+ boolean wasAutoCommit = connection.getAutoCommit();
+ connection.rollback();
+ try {
+ boolean isIfNotExists = create.isIfNotExists();
+ PSchema schema = new PSchema(create.getSchemaName());
+ connection.setAutoCommit(false);
+ List<Mutation> schemaMutations;
+
+ try (PreparedStatement schemaUpsert =
connection.prepareStatement(CREATE_SCHEMA)) {
+ schemaUpsert.setString(1, schema.getSchemaName());
+ schemaUpsert.setString(2, MetaDataClient.EMPTY_TABLE);
+ schemaUpsert.execute();
+ schemaMutations =
connection.getMutationState().toMutations(null).next().getSecond();
+ connection.rollback();
+ }
+ MetaDataMutationResult result =
connection.getQueryServices().createSchema(schemaMutations,
+ schema.getSchemaName());
+ MutationCode code = result.getMutationCode();
+ switch (code) {
+ case SCHEMA_ALREADY_EXISTS:
+ if (result.getTable() != null) { // Can happen for
transactional table that already exists as HBase
--- End diff --
result.getSchema() ? Also, please remove the comment.
> 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)