Return-Path: X-Original-To: apmail-phoenix-commits-archive@minotaur.apache.org Delivered-To: apmail-phoenix-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C787F1912E for ; Thu, 14 Apr 2016 10:43:31 +0000 (UTC) Received: (qmail 84409 invoked by uid 500); 14 Apr 2016 10:43:31 -0000 Delivered-To: apmail-phoenix-commits-archive@phoenix.apache.org Received: (qmail 84302 invoked by uid 500); 14 Apr 2016 10:43:31 -0000 Mailing-List: contact commits-help@phoenix.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@phoenix.apache.org Delivered-To: mailing list commits@phoenix.apache.org Received: (qmail 84285 invoked by uid 99); 14 Apr 2016 10:43:31 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 14 Apr 2016 10:43:31 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 4394FDFBED; Thu, 14 Apr 2016 10:43:31 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: ankit@apache.org To: commits@phoenix.apache.org Date: Thu, 14 Apr 2016 10:43:34 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [4/8] phoenix git commit: PHOENIX-1311 HBase namespaces surfaced in phoenix http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/PSchemaProtos.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/PSchemaProtos.java b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/PSchemaProtos.java new file mode 100644 index 0000000..d7dc720 --- /dev/null +++ b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/PSchemaProtos.java @@ -0,0 +1,666 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: PSchema.proto + +package org.apache.phoenix.coprocessor.generated; + +public final class PSchemaProtos { + private PSchemaProtos() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + } + public interface PSchemaOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // required string schemaName = 1; + /** + * required string schemaName = 1; + */ + boolean hasSchemaName(); + /** + * required string schemaName = 1; + */ + java.lang.String getSchemaName(); + /** + * required string schemaName = 1; + */ + com.google.protobuf.ByteString + getSchemaNameBytes(); + + // required int64 timeStamp = 2; + /** + * required int64 timeStamp = 2; + */ + boolean hasTimeStamp(); + /** + * required int64 timeStamp = 2; + */ + long getTimeStamp(); + } + /** + * Protobuf type {@code PSchema} + */ + public static final class PSchema extends + com.google.protobuf.GeneratedMessage + implements PSchemaOrBuilder { + // Use PSchema.newBuilder() to construct. + private PSchema(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private PSchema(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final PSchema defaultInstance; + public static PSchema getDefaultInstance() { + return defaultInstance; + } + + public PSchema getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private PSchema( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 10: { + bitField0_ |= 0x00000001; + schemaName_ = input.readBytes(); + break; + } + case 16: { + bitField0_ |= 0x00000002; + timeStamp_ = input.readInt64(); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.apache.phoenix.coprocessor.generated.PSchemaProtos.internal_static_PSchema_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.apache.phoenix.coprocessor.generated.PSchemaProtos.internal_static_PSchema_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema.class, org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema.Builder.class); + } + + public static com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + public PSchema parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new PSchema(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // required string schemaName = 1; + public static final int SCHEMANAME_FIELD_NUMBER = 1; + private java.lang.Object schemaName_; + /** + * required string schemaName = 1; + */ + public boolean hasSchemaName() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required string schemaName = 1; + */ + public java.lang.String getSchemaName() { + java.lang.Object ref = schemaName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + schemaName_ = s; + } + return s; + } + } + /** + * required string schemaName = 1; + */ + public com.google.protobuf.ByteString + getSchemaNameBytes() { + java.lang.Object ref = schemaName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + schemaName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + // required int64 timeStamp = 2; + public static final int TIMESTAMP_FIELD_NUMBER = 2; + private long timeStamp_; + /** + * required int64 timeStamp = 2; + */ + public boolean hasTimeStamp() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required int64 timeStamp = 2; + */ + public long getTimeStamp() { + return timeStamp_; + } + + private void initFields() { + schemaName_ = ""; + timeStamp_ = 0L; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasSchemaName()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasTimeStamp()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeBytes(1, getSchemaNameBytes()); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeInt64(2, timeStamp_); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(1, getSchemaNameBytes()); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(2, timeStamp_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema)) { + return super.equals(obj); + } + org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema other = (org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema) obj; + + boolean result = true; + result = result && (hasSchemaName() == other.hasSchemaName()); + if (hasSchemaName()) { + result = result && getSchemaName() + .equals(other.getSchemaName()); + } + result = result && (hasTimeStamp() == other.hasTimeStamp()); + if (hasTimeStamp()) { + result = result && (getTimeStamp() + == other.getTimeStamp()); + } + result = result && + getUnknownFields().equals(other.getUnknownFields()); + return result; + } + + private int memoizedHashCode = 0; + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptorForType().hashCode(); + if (hasSchemaName()) { + hash = (37 * hash) + SCHEMANAME_FIELD_NUMBER; + hash = (53 * hash) + getSchemaName().hashCode(); + } + if (hasTimeStamp()) { + hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + hashLong(getTimeStamp()); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code PSchema} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder + implements org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchemaOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.apache.phoenix.coprocessor.generated.PSchemaProtos.internal_static_PSchema_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.apache.phoenix.coprocessor.generated.PSchemaProtos.internal_static_PSchema_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema.class, org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema.Builder.class); + } + + // Construct using org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + schemaName_ = ""; + bitField0_ = (bitField0_ & ~0x00000001); + timeStamp_ = 0L; + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.apache.phoenix.coprocessor.generated.PSchemaProtos.internal_static_PSchema_descriptor; + } + + public org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema getDefaultInstanceForType() { + return org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema.getDefaultInstance(); + } + + public org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema build() { + org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema buildPartial() { + org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema result = new org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.schemaName_ = schemaName_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.timeStamp_ = timeStamp_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema) { + return mergeFrom((org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema other) { + if (other == org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema.getDefaultInstance()) return this; + if (other.hasSchemaName()) { + bitField0_ |= 0x00000001; + schemaName_ = other.schemaName_; + onChanged(); + } + if (other.hasTimeStamp()) { + setTimeStamp(other.getTimeStamp()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasSchemaName()) { + + return false; + } + if (!hasTimeStamp()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.apache.phoenix.coprocessor.generated.PSchemaProtos.PSchema) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // required string schemaName = 1; + private java.lang.Object schemaName_ = ""; + /** + * required string schemaName = 1; + */ + public boolean hasSchemaName() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required string schemaName = 1; + */ + public java.lang.String getSchemaName() { + java.lang.Object ref = schemaName_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((com.google.protobuf.ByteString) ref) + .toStringUtf8(); + schemaName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * required string schemaName = 1; + */ + public com.google.protobuf.ByteString + getSchemaNameBytes() { + java.lang.Object ref = schemaName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + schemaName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * required string schemaName = 1; + */ + public Builder setSchemaName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + schemaName_ = value; + onChanged(); + return this; + } + /** + * required string schemaName = 1; + */ + public Builder clearSchemaName() { + bitField0_ = (bitField0_ & ~0x00000001); + schemaName_ = getDefaultInstance().getSchemaName(); + onChanged(); + return this; + } + /** + * required string schemaName = 1; + */ + public Builder setSchemaNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + schemaName_ = value; + onChanged(); + return this; + } + + // required int64 timeStamp = 2; + private long timeStamp_ ; + /** + * required int64 timeStamp = 2; + */ + public boolean hasTimeStamp() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required int64 timeStamp = 2; + */ + public long getTimeStamp() { + return timeStamp_; + } + /** + * required int64 timeStamp = 2; + */ + public Builder setTimeStamp(long value) { + bitField0_ |= 0x00000002; + timeStamp_ = value; + onChanged(); + return this; + } + /** + * required int64 timeStamp = 2; + */ + public Builder clearTimeStamp() { + bitField0_ = (bitField0_ & ~0x00000002); + timeStamp_ = 0L; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:PSchema) + } + + static { + defaultInstance = new PSchema(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:PSchema) + } + + private static com.google.protobuf.Descriptors.Descriptor + internal_static_PSchema_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_PSchema_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\rPSchema.proto\"0\n\007PSchema\022\022\n\nschemaName" + + "\030\001 \002(\t\022\021\n\ttimeStamp\030\002 \002(\003BA\n(org.apache." + + "phoenix.coprocessor.generatedB\rPSchemaPr" + + "otosH\001\210\001\001\240\001\001" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + internal_static_PSchema_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_PSchema_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_PSchema_descriptor, + new java.lang.String[] { "SchemaName", "TimeStamp", }); + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }, assigner); + } + + // @@protoc_insertion_point(outer_class_scope) +} http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/PTableProtos.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/PTableProtos.java b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/PTableProtos.java index 9fdfe51..126c0dd 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/PTableProtos.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/PTableProtos.java @@ -3338,6 +3338,16 @@ public final class PTableProtos { * optional int64 indexDisableTimestamp = 29; */ long getIndexDisableTimestamp(); + + // optional bool isNamespaceMapped = 30; + /** + * optional bool isNamespaceMapped = 30; + */ + boolean hasIsNamespaceMapped(); + /** + * optional bool isNamespaceMapped = 30; + */ + boolean getIsNamespaceMapped(); } /** * Protobuf type {@code PTable} @@ -3553,6 +3563,11 @@ public final class PTableProtos { indexDisableTimestamp_ = input.readInt64(); break; } + case 240: { + bitField0_ |= 0x02000000; + isNamespaceMapped_ = input.readBool(); + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -4163,6 +4178,22 @@ public final class PTableProtos { return indexDisableTimestamp_; } + // optional bool isNamespaceMapped = 30; + public static final int ISNAMESPACEMAPPED_FIELD_NUMBER = 30; + private boolean isNamespaceMapped_; + /** + * optional bool isNamespaceMapped = 30; + */ + public boolean hasIsNamespaceMapped() { + return ((bitField0_ & 0x02000000) == 0x02000000); + } + /** + * optional bool isNamespaceMapped = 30; + */ + public boolean getIsNamespaceMapped() { + return isNamespaceMapped_; + } + private void initFields() { schemaNameBytes_ = com.google.protobuf.ByteString.EMPTY; tableNameBytes_ = com.google.protobuf.ByteString.EMPTY; @@ -4193,6 +4224,7 @@ public final class PTableProtos { transactional_ = false; updateCacheFrequency_ = 0L; indexDisableTimestamp_ = 0L; + isNamespaceMapped_ = false; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -4347,6 +4379,9 @@ public final class PTableProtos { if (((bitField0_ & 0x01000000) == 0x01000000)) { output.writeInt64(29, indexDisableTimestamp_); } + if (((bitField0_ & 0x02000000) == 0x02000000)) { + output.writeBool(30, isNamespaceMapped_); + } getUnknownFields().writeTo(output); } @@ -4477,6 +4512,10 @@ public final class PTableProtos { size += com.google.protobuf.CodedOutputStream .computeInt64Size(29, indexDisableTimestamp_); } + if (((bitField0_ & 0x02000000) == 0x02000000)) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(30, isNamespaceMapped_); + } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -4633,6 +4672,11 @@ public final class PTableProtos { result = result && (getIndexDisableTimestamp() == other.getIndexDisableTimestamp()); } + result = result && (hasIsNamespaceMapped() == other.hasIsNamespaceMapped()); + if (hasIsNamespaceMapped()) { + result = result && (getIsNamespaceMapped() + == other.getIsNamespaceMapped()); + } result = result && getUnknownFields().equals(other.getUnknownFields()); return result; @@ -4762,6 +4806,10 @@ public final class PTableProtos { hash = (37 * hash) + INDEXDISABLETIMESTAMP_FIELD_NUMBER; hash = (53 * hash) + hashLong(getIndexDisableTimestamp()); } + if (hasIsNamespaceMapped()) { + hash = (37 * hash) + ISNAMESPACEMAPPED_FIELD_NUMBER; + hash = (53 * hash) + hashBoolean(getIsNamespaceMapped()); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -4944,6 +4992,8 @@ public final class PTableProtos { bitField0_ = (bitField0_ & ~0x08000000); indexDisableTimestamp_ = 0L; bitField0_ = (bitField0_ & ~0x10000000); + isNamespaceMapped_ = false; + bitField0_ = (bitField0_ & ~0x20000000); return this; } @@ -5104,6 +5154,10 @@ public final class PTableProtos { to_bitField0_ |= 0x01000000; } result.indexDisableTimestamp_ = indexDisableTimestamp_; + if (((from_bitField0_ & 0x20000000) == 0x20000000)) { + to_bitField0_ |= 0x02000000; + } + result.isNamespaceMapped_ = isNamespaceMapped_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -5285,6 +5339,9 @@ public final class PTableProtos { if (other.hasIndexDisableTimestamp()) { setIndexDisableTimestamp(other.getIndexDisableTimestamp()); } + if (other.hasIsNamespaceMapped()) { + setIsNamespaceMapped(other.getIsNamespaceMapped()); + } this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -7054,6 +7111,39 @@ public final class PTableProtos { return this; } + // optional bool isNamespaceMapped = 30; + private boolean isNamespaceMapped_ ; + /** + * optional bool isNamespaceMapped = 30; + */ + public boolean hasIsNamespaceMapped() { + return ((bitField0_ & 0x20000000) == 0x20000000); + } + /** + * optional bool isNamespaceMapped = 30; + */ + public boolean getIsNamespaceMapped() { + return isNamespaceMapped_; + } + /** + * optional bool isNamespaceMapped = 30; + */ + public Builder setIsNamespaceMapped(boolean value) { + bitField0_ |= 0x20000000; + isNamespaceMapped_ = value; + onChanged(); + return this; + } + /** + * optional bool isNamespaceMapped = 30; + */ + public Builder clearIsNamespaceMapped() { + bitField0_ = (bitField0_ & ~0x20000000); + isNamespaceMapped_ = false; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:PTable) } @@ -7101,7 +7191,7 @@ public final class PTableProtos { "\016\n\006values\030\002 \003(\014\022\033\n\023guidePostsByteCount\030\003", " \001(\003\022\025\n\rkeyBytesCount\030\004 \001(\003\022\027\n\017guidePost" + "sCount\030\005 \001(\005\022!\n\013pGuidePosts\030\006 \001(\0132\014.PGui" + - "dePosts\"\303\005\n\006PTable\022\027\n\017schemaNameBytes\030\001 " + + "dePosts\"\336\005\n\006PTable\022\027\n\017schemaNameBytes\030\001 " + "\002(\014\022\026\n\016tableNameBytes\030\002 \002(\014\022\036\n\ttableType" + "\030\003 \002(\0162\013.PTableType\022\022\n\nindexState\030\004 \001(\t\022" + "\026\n\016sequenceNumber\030\005 \002(\003\022\021\n\ttimeStamp\030\006 \002" + @@ -7118,11 +7208,11 @@ public final class PTableProtos { "storeNulls\030\030 \001(\010\022\027\n\017baseColumnCount\030\031 \001(" + "\005\022\036\n\026rowKeyOrderOptimizable\030\032 \001(\010\022\025\n\rtra" + "nsactional\030\033 \001(\010\022\034\n\024updateCacheFrequency" + - "\030\034 \001(\003\022\035\n\025indexDisableTimestamp\030\035 \001(\003*A\n", - "\nPTableType\022\n\n\006SYSTEM\020\000\022\010\n\004USER\020\001\022\010\n\004VIE" + - "W\020\002\022\t\n\005INDEX\020\003\022\010\n\004JOIN\020\004B@\n(org.apache.p" + - "hoenix.coprocessor.generatedB\014PTableProt" + - "osH\001\210\001\001\240\001\001" + "\030\034 \001(\003\022\035\n\025indexDisableTimestamp\030\035 \001(\003\022\031\n", + "\021isNamespaceMapped\030\036 \001(\010*A\n\nPTableType\022\n" + + "\n\006SYSTEM\020\000\022\010\n\004USER\020\001\022\010\n\004VIEW\020\002\022\t\n\005INDEX\020" + + "\003\022\010\n\004JOIN\020\004B@\n(org.apache.phoenix.coproc" + + "essor.generatedB\014PTableProtosH\001\210\001\001\240\001\001" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -7146,7 +7236,7 @@ public final class PTableProtos { internal_static_PTable_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_PTable_descriptor, - new java.lang.String[] { "SchemaNameBytes", "TableNameBytes", "TableType", "IndexState", "SequenceNumber", "TimeStamp", "PkNameBytes", "BucketNum", "Columns", "Indexes", "IsImmutableRows", "GuidePosts", "DataTableNameBytes", "DefaultFamilyName", "DisableWAL", "MultiTenant", "ViewType", "ViewStatement", "PhysicalNames", "TenantId", "ViewIndexId", "IndexType", "StatsTimeStamp", "StoreNulls", "BaseColumnCount", "RowKeyOrderOptimizable", "Transactional", "UpdateCacheFrequency", "IndexDisableTimestamp", }); + new java.lang.String[] { "SchemaNameBytes", "TableNameBytes", "TableType", "IndexState", "SequenceNumber", "TimeStamp", "PkNameBytes", "BucketNum", "Columns", "Indexes", "IsImmutableRows", "GuidePosts", "DataTableNameBytes", "DefaultFamilyName", "DisableWAL", "MultiTenant", "ViewType", "ViewStatement", "PhysicalNames", "TenantId", "ViewIndexId", "IndexType", "StatsTimeStamp", "StoreNulls", "BaseColumnCount", "RowKeyOrderOptimizable", "Transactional", "UpdateCacheFrequency", "IndexDisableTimestamp", "IsNamespaceMapped", }); return null; } }; http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/exception/SQLExceptionCode.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/exception/SQLExceptionCode.java b/phoenix-core/src/main/java/org/apache/phoenix/exception/SQLExceptionCode.java index 65cb6db..9ac05a4 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/exception/SQLExceptionCode.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/exception/SQLExceptionCode.java @@ -33,6 +33,8 @@ import org.apache.phoenix.schema.ConcurrentTableMutationException; import org.apache.phoenix.schema.FunctionAlreadyExistsException; import org.apache.phoenix.schema.FunctionNotFoundException; import org.apache.phoenix.schema.ReadOnlyTableException; +import org.apache.phoenix.schema.SchemaAlreadyExistsException; +import org.apache.phoenix.schema.SchemaNotFoundException; import org.apache.phoenix.schema.SequenceAlreadyExistsException; import org.apache.phoenix.schema.SequenceNotFoundException; import org.apache.phoenix.schema.StaleRegionBoundaryCacheException; @@ -374,8 +376,23 @@ public enum SQLExceptionCode { }), UNALLOWED_USER_DEFINED_FUNCTIONS(6003, "42F03", "User defined functions are configured to not be allowed. To allow configure " - + QueryServices.ALLOW_USER_DEFINED_FUNCTIONS_ATTRIB + " to true."), - ; + + QueryServices.ALLOW_USER_DEFINED_FUNCTIONS_ATTRIB + " to true."), + + SCHEMA_ALREADY_EXISTS(721, "42M04", "Schema with given name already exists", new Factory() { + @Override + public SQLException newException(SQLExceptionInfo info) { + return new SchemaAlreadyExistsException(info.getSchemaName()); + } + }), SCHEMA_NOT_FOUND(722, "43M05", "Schema does not exists", new Factory() { + @Override + public SQLException newException(SQLExceptionInfo info) { + return new SchemaNotFoundException(info.getSchemaName()); + } + }), CANNOT_MUTATE_SCHEMA(723, "43M06", "Cannot mutate schema as schema has existing tables"), SCHEMA_NOT_ALLOWED( + 724, "43M07", + "Schema name not allowed!!"), CREATE_SCHEMA_NOT_ALLOWED(725, "43M08", "Cannot create schema because config " + + QueryServices.IS_NAMESPACE_MAPPING_ENABLED + " for enabling name space mapping isn't enabled."); + private final int errorCode; private final String sqlState; http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/master/IndexMasterObserver.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/master/IndexMasterObserver.java b/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/master/IndexMasterObserver.java index 1da5aff..a014da2 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/master/IndexMasterObserver.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/master/IndexMasterObserver.java @@ -87,11 +87,9 @@ public class IndexMasterObserver extends BaseMasterObserver { AssignmentManager am = ctx.getEnvironment().getMasterServices().getAssignmentManager(); RegionStates regionStates = am.getRegionStates(); String tableName = region.getTable().getNameAsString(); - String correspondingTable = - region.getTable().getNameAsString() - .startsWith(MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX) ? MetaDataUtil - .getUserTableName(tableName) : MetaDataUtil - .getLocalIndexTableName(tableName); + String correspondingTable = MetaDataUtil.isLocalIndex(region.getTable().getNameAsString()) + ? MetaDataUtil.getUserTableName(tableName) + : Bytes.toString(MetaDataUtil.getLocalIndexPhysicalName(tableName.getBytes())); List regions = regionStates.getRegionsOfTable(TableName.valueOf(correspondingTable)); for (HRegionInfo hri : regions) { http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/ParallelWriterIndexCommitter.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/ParallelWriterIndexCommitter.java b/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/ParallelWriterIndexCommitter.java index f72dec0..e52c216 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/ParallelWriterIndexCommitter.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/ParallelWriterIndexCommitter.java @@ -149,7 +149,7 @@ public class ParallelWriterIndexCommitter implements IndexCommitter { // index is pretty hacky. If we're going to keep this, we should revisit that // as well. try { - if (tableReference.getTableName().startsWith(MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX)) { + if (MetaDataUtil.isLocalIndex(tableReference.getTableName())) { HRegion indexRegion = IndexUtil.getIndexRegion(env); if (indexRegion != null) { throwFailureIfDone(); http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/recovery/TrackingParallelWriterIndexCommitter.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/recovery/TrackingParallelWriterIndexCommitter.java b/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/recovery/TrackingParallelWriterIndexCommitter.java index 9171b53..131b930 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/recovery/TrackingParallelWriterIndexCommitter.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/recovery/TrackingParallelWriterIndexCommitter.java @@ -153,7 +153,7 @@ public class TrackingParallelWriterIndexCommitter implements IndexCommitter { // Also, checking the prefix of the table name to determine if this is a local // index is pretty hacky. If we're going to keep this, we should revisit that // as well. - if (tableReference.getTableName().startsWith(MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX)) { + if (MetaDataUtil.isLocalIndex(tableReference.getTableName())) { HRegion indexRegion = IndexUtil.getIndexRegion(env); if (indexRegion != null) { throwFailureIfDone(); http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java b/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java index c7ed49b..ea245cc 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java @@ -33,7 +33,6 @@ import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.DoNotRetryIOException; import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.Stoppable; -import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.HTableInterface; import org.apache.hadoop.hbase.client.Mutation; import org.apache.hadoop.hbase.client.Put; @@ -139,7 +138,7 @@ public class PhoenixIndexFailurePolicy extends DelegateIndexFailurePolicy { } // its a local index table, so we need to convert it to the index table names we should disable - if (ref.getTableName().startsWith(MetaDataUtil.LOCAL_INDEX_TABLE_PREFIX)) { + if (MetaDataUtil.isLocalIndex(ref.getTableName())) { for (String tableName : getLocalIndexNames(ref, mutations)) { indexTableNames.put(tableName, minTimeStamp); } @@ -154,9 +153,8 @@ public class PhoenixIndexFailurePolicy extends DelegateIndexFailurePolicy { long minTimeStamp = tableTimeElement.getValue(); // Disable the index by using the updateIndexState method of MetaDataProtocol end point coprocessor. byte[] indexTableKey = SchemaUtil.getTableKeyFromFullName(indexTableName); - HTableInterface - systemTable = - env.getTable(TableName.valueOf(PhoenixDatabaseMetaData.SYSTEM_CATALOG_NAME_BYTES)); + HTableInterface systemTable = env.getTable(SchemaUtil + .getPhysicalTableName(PhoenixDatabaseMetaData.SYSTEM_CATALOG_NAME_BYTES, env.getConfiguration())); // Mimic the Put that gets generated by the client on an update of the index state Put put = new Put(indexTableKey); if (blockWriteRebuildIndex) http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/iterate/ChunkedResultIterator.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/iterate/ChunkedResultIterator.java b/phoenix-core/src/main/java/org/apache/phoenix/iterate/ChunkedResultIterator.java index a17258a..a78565d 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/iterate/ChunkedResultIterator.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/iterate/ChunkedResultIterator.java @@ -74,7 +74,7 @@ public class ChunkedResultIterator implements PeekingResultIterator { @Override public PeekingResultIterator newIterator(StatementContext context, ResultIterator scanner, Scan scan, String tableName) throws SQLException { - if (logger.isDebugEnabled()) logger.debug(LogUtil.addCustomAnnotations("ChunkedResultIteratorFactory.newIterator over " + tableRef.getTable().getName().getString() + " with " + scan, ScanUtil.getCustomAnnotations(scan))); + if (logger.isDebugEnabled()) logger.debug(LogUtil.addCustomAnnotations("ChunkedResultIteratorFactory.newIterator over " + tableRef.getTable().getPhysicalName().getString() + " with " + scan, ScanUtil.getCustomAnnotations(scan))); return new ChunkedResultIterator(delegateFactory, mutationState, context, tableRef, scan, mutationState.getConnection().getQueryServices().getProps().getLong( QueryServices.SCAN_RESULT_CHUNK_SIZE, @@ -93,7 +93,7 @@ public class ChunkedResultIterator implements PeekingResultIterator { // Instantiate single chunk iterator and the delegate iterator in constructor // to get parallel scans kicked off in separate threads. If we delay this, // we'll get serialized behavior (see PHOENIX- - if (logger.isDebugEnabled()) logger.debug(LogUtil.addCustomAnnotations("Get first chunked result iterator over " + tableRef.getTable().getName().getString() + " with " + scan, ScanUtil.getCustomAnnotations(scan))); + if (logger.isDebugEnabled()) logger.debug(LogUtil.addCustomAnnotations("Get first chunked result iterator over " + tableRef.getTable().getPhysicalName().getString() + " with " + scan, ScanUtil.getCustomAnnotations(scan))); ResultIterator singleChunkResultIterator = new SingleChunkResultIterator(scanner, chunkSize); String tableName = tableRef.getTable().getPhysicalName().getString(); resultIterator = delegateIteratorFactory.newIterator(context, singleChunkResultIterator, scan, tableName); @@ -124,7 +124,7 @@ public class ChunkedResultIterator implements PeekingResultIterator { resultIterator.close(); scan = ScanUtil.newScan(scan); scan.setStartRow(ByteUtil.copyKeyBytesIfNecessary(lastKey)); - if (logger.isDebugEnabled()) logger.debug(LogUtil.addCustomAnnotations("Get next chunked result iterator over " + tableRef.getTable().getName().getString() + " with " + scan, ScanUtil.getCustomAnnotations(scan))); + if (logger.isDebugEnabled()) logger.debug(LogUtil.addCustomAnnotations("Get next chunked result iterator over " + tableRef.getTable().getPhysicalName().getString() + " with " + scan, ScanUtil.getCustomAnnotations(scan))); String tableName = tableRef.getTable().getPhysicalName().getString(); long renewLeaseThreshold = context.getConnection().getQueryServices().getRenewLeaseThresholdMilliSeconds(); ResultIterator singleChunkResultIterator = new SingleChunkResultIterator( http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/iterate/ParallelIterators.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/iterate/ParallelIterators.java b/phoenix-core/src/main/java/org/apache/phoenix/iterate/ParallelIterators.java index 1351735..ca0eba0 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/iterate/ParallelIterators.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/iterate/ParallelIterators.java @@ -130,7 +130,7 @@ public class ParallelIterators extends BaseResultIterators { public TaskExecutionMetricsHolder getTaskExecutionMetric() { return taskMetrics; } - }, "Parallel scanner for table: " + tableRef.getTable().getName().getString())); + }, "Parallel scanner for table: " + tableRef.getTable().getPhysicalName().getString())); // Add our future in the right place so that we can concatenate the // results of the inner futures versus merge sorting across all of them. nestedFutures.get(scanLocation.getOuterListIndex()).set(scanLocation.getInnerListIndex(), new Pair>(scan,future)); http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/iterate/SerialIterators.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/iterate/SerialIterators.java b/phoenix-core/src/main/java/org/apache/phoenix/iterate/SerialIterators.java index f3b9e7d..17c2279 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/iterate/SerialIterators.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/iterate/SerialIterators.java @@ -115,7 +115,7 @@ public class SerialIterators extends BaseResultIterators { public TaskExecutionMetricsHolder getTaskExecutionMetric() { return taskMetrics; } - }, "Serial scanner for table: " + tableRef.getTable().getName().getString())); + }, "Serial scanner for table: " + tableRef.getTable().getPhysicalName().getString())); // Add our singleton Future which will execute serially nestedFutures.add(Collections.singletonList(new Pair>(overallScan,future))); } http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixConnection.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixConnection.java b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixConnection.java index 457a5df..5c8786d 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixConnection.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixConnection.java @@ -72,6 +72,7 @@ import org.apache.phoenix.iterate.TableResultIterator; import org.apache.phoenix.iterate.TableResultIteratorFactory; import org.apache.phoenix.jdbc.PhoenixStatement.PhoenixStatementParser; import org.apache.phoenix.parse.PFunction; +import org.apache.phoenix.parse.PSchema; import org.apache.phoenix.query.ConnectionQueryServices; import org.apache.phoenix.query.ConnectionQueryServices.Feature; import org.apache.phoenix.query.DelegateConnectionQueryServices; @@ -87,6 +88,7 @@ import org.apache.phoenix.schema.PTable; import org.apache.phoenix.schema.PTableKey; import org.apache.phoenix.schema.PTableRef; import org.apache.phoenix.schema.PTableType; +import org.apache.phoenix.schema.SchemaNotFoundException; import org.apache.phoenix.schema.TableNotFoundException; import org.apache.phoenix.schema.types.PArrayDataType; import org.apache.phoenix.schema.types.PDataType; @@ -109,8 +111,6 @@ import org.apache.phoenix.util.SQLCloseables; import org.cloudera.htrace.Sampler; import org.cloudera.htrace.TraceScope; -import co.cask.tephra.TransactionContext; - import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Objects; import com.google.common.base.Strings; @@ -118,6 +118,8 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap.Builder; import com.google.common.collect.Lists; +import co.cask.tephra.TransactionContext; + /** * @@ -134,6 +136,7 @@ import com.google.common.collect.Lists; */ public class PhoenixConnection implements Connection, MetaDataMutated, SQLCloseable { private final String url; + private String schema; private final ConnectionQueryServices services; private final Properties info; private final Map, Format> formatters = new HashMap<>(); @@ -240,6 +243,10 @@ public class PhoenixConnection implements Connection, MetaDataMutated, SQLClosea this.services.getProps().getBoolean( QueryServices.AUTO_COMMIT_ATTRIB, QueryServicesOptions.DEFAULT_AUTO_COMMIT)); + // currently we are not resolving schema set through property, so if schema doesn't exists ,connection will not fail + // but queries may fail + this.schema = JDBCUtil.getSchema(url, this.info, + this.services.getProps().get(QueryServices.SCHEMA_ATTRIB, QueryServicesOptions.DEFAULT_SCHEMA)); this.tenantId = tenantId; this.mutateBatchSize = JDBCUtil.getMutateBatchSize(url, this.info, this.services.getProps()); datePattern = this.services.getProps().get(QueryServices.DATE_FORMAT_ATTRIB, DateUtil.DEFAULT_DATE_FORMAT); @@ -843,14 +850,17 @@ public class PhoenixConnection implements Connection, MetaDataMutated, SQLClosea @Override public void setSchema(String schema) throws SQLException { - // TODO Auto-generated method stub - + this.schema = schema; + } @Override public String getSchema() throws SQLException { - // TODO Auto-generated method stub - return null; + return this.schema; + } + + public PSchema getSchema(PTableKey key) throws SchemaNotFoundException { + return metaData.getSchema(key); } @Override @@ -900,11 +910,25 @@ public class PhoenixConnection implements Connection, MetaDataMutated, SQLClosea } @Override - public PMetaData addColumn(PName tenantId, String tableName, List columns, long tableTimeStamp, long tableSeqNum, boolean isImmutableRows, boolean isWalDisabled, boolean isMultitenant, boolean storeNulls, boolean isTransactional, long updateCacheFrequency, long resolvedTime) - throws SQLException { - metaData = metaData.addColumn(tenantId, tableName, columns, tableTimeStamp, tableSeqNum, isImmutableRows, isWalDisabled, isMultitenant, storeNulls, isTransactional, updateCacheFrequency, resolvedTime); - //Cascade through to connectionQueryServices too - getQueryServices().addColumn(tenantId, tableName, columns, tableTimeStamp, tableSeqNum, isImmutableRows, isWalDisabled, isMultitenant, storeNulls, isTransactional, updateCacheFrequency, resolvedTime); + public PMetaData addSchema(PSchema schema) throws SQLException { + metaData = metaData.addSchema(schema); + // Cascade through to connectionQueryServices too + getQueryServices().addSchema(schema); + return metaData; + } + + @Override + public PMetaData addColumn(PName tenantId, String tableName, List columns, long tableTimeStamp, + long tableSeqNum, boolean isImmutableRows, boolean isWalDisabled, boolean isMultitenant, boolean storeNulls, + boolean isTransactional, long updateCacheFrequency, boolean isNamespaceMapped, long resolvedTime) + throws SQLException { + metaData = metaData.addColumn(tenantId, tableName, columns, tableTimeStamp, tableSeqNum, isImmutableRows, + isWalDisabled, isMultitenant, storeNulls, isTransactional, updateCacheFrequency, isNamespaceMapped, + resolvedTime); + // Cascade through to connectionQueryServices too + getQueryServices().addColumn(tenantId, tableName, columns, tableTimeStamp, tableSeqNum, isImmutableRows, + isWalDisabled, isMultitenant, storeNulls, isTransactional, updateCacheFrequency, isNamespaceMapped, + resolvedTime); return metaData; } @@ -1028,4 +1052,13 @@ public class PhoenixConnection implements Connection, MetaDataMutated, SQLClosea checkNotNull(factory); this.tableResultIteratorFactory = factory; } + + @Override + public PMetaData removeSchema(PSchema schema, long schemaTimeStamp) { + metaData = metaData.removeSchema(schema, schemaTimeStamp); + // Cascade through to connectionQueryServices too + getQueryServices().removeSchema(schema, schemaTimeStamp); + return metaData; + + } } http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java index f875a77..d98ebe3 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java @@ -52,6 +52,7 @@ import org.apache.phoenix.iterate.DelegateResultIterator; import org.apache.phoenix.iterate.MaterializedResultIterator; import org.apache.phoenix.iterate.ResultIterator; import org.apache.phoenix.query.QueryConstants; +import org.apache.phoenix.schema.MetaDataClient; import org.apache.phoenix.schema.PDatum; import org.apache.phoenix.schema.PName; import org.apache.phoenix.schema.PTable.LinkType; @@ -100,6 +101,8 @@ public class PhoenixDatabaseMetaData implements DatabaseMetaData { public static final byte[] SYSTEM_CATALOG_NAME_BYTES = Bytes.toBytes(SYSTEM_CATALOG_NAME); public static final String SYSTEM_STATS_TABLE = "STATS"; public static final String SYSTEM_STATS_NAME = SchemaUtil.getTableName(SYSTEM_CATALOG_SCHEMA, SYSTEM_STATS_TABLE); + public static final String IS_NAMESPACE_MAPPED = "IS_NAMESPACE_MAPPED"; + public static final byte[] IS_NAMESPACE_MAPPED_BYTES = Bytes.toBytes(IS_NAMESPACE_MAPPED); public static final byte[] SYSTEM_STATS_NAME_BYTES = Bytes.toBytes(SYSTEM_STATS_NAME); public static final byte[] SYSTEM_STATS_TABLE_BYTES = Bytes.toBytes(SYSTEM_STATS_TABLE); public static final String SYSTEM_CATALOG_ALIAS = "\"SYSTEM.TABLE\""; @@ -915,10 +918,10 @@ public class PhoenixDatabaseMetaData implements DatabaseMetaData { TENANT_ID + " " + TABLE_CATALOG + " from " + SYSTEM_CATALOG + " " + SYSTEM_CATALOG_ALIAS + " where " + COLUMN_NAME + " is null"); - this.addTenantIdFilter(buf, catalog); if (schemaPattern != null) { buf.append(" and " + TABLE_SCHEM + " like '" + StringUtil.escapeStringConstant(schemaPattern) + "'"); } + buf.append(" and " + TABLE_NAME + " = '" + MetaDataClient.EMPTY_TABLE + "'"); Statement stmt = connection.createStatement(); return stmt.executeQuery(buf.toString()); } @@ -1040,7 +1043,8 @@ public class PhoenixDatabaseMetaData implements DatabaseMetaData { SQLIndexTypeFunction.NAME + "(" + INDEX_TYPE + ") AS " + INDEX_TYPE + " from " + SYSTEM_CATALOG + " " + SYSTEM_CATALOG_ALIAS + " where " + COLUMN_NAME + " is null" + - " and " + COLUMN_FAMILY + " is null"); + " and " + COLUMN_FAMILY + " is null" + + " and " + TABLE_NAME + " != '" + MetaDataClient.EMPTY_TABLE + "'"); addTenantIdFilter(buf, catalog); if (schemaPattern != null) { buf.append(" and " + TABLE_SCHEM + (schemaPattern.length() == 0 ? " is null" : " like '" + StringUtil.escapeStringConstant(schemaPattern) + "'" )); http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java index c365d19..74f3e32 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java @@ -50,6 +50,7 @@ import org.apache.phoenix.compile.ColumnProjector; import org.apache.phoenix.compile.ColumnResolver; import org.apache.phoenix.compile.CreateFunctionCompiler; import org.apache.phoenix.compile.CreateIndexCompiler; +import org.apache.phoenix.compile.CreateSchemaCompiler; import org.apache.phoenix.compile.CreateSequenceCompiler; import org.apache.phoenix.compile.CreateTableCompiler; import org.apache.phoenix.compile.DeleteCompiler; @@ -90,6 +91,7 @@ import org.apache.phoenix.parse.ColumnDef; import org.apache.phoenix.parse.ColumnName; import org.apache.phoenix.parse.CreateFunctionStatement; import org.apache.phoenix.parse.CreateIndexStatement; +import org.apache.phoenix.parse.CreateSchemaStatement; import org.apache.phoenix.parse.CreateSequenceStatement; import org.apache.phoenix.parse.CreateTableStatement; import org.apache.phoenix.parse.DeleteJarStatement; @@ -97,6 +99,7 @@ import org.apache.phoenix.parse.DeleteStatement; import org.apache.phoenix.parse.DropColumnStatement; import org.apache.phoenix.parse.DropFunctionStatement; import org.apache.phoenix.parse.DropIndexStatement; +import org.apache.phoenix.parse.DropSchemaStatement; import org.apache.phoenix.parse.DropSequenceStatement; import org.apache.phoenix.parse.DropTableStatement; import org.apache.phoenix.parse.ExplainStatement; @@ -122,6 +125,7 @@ import org.apache.phoenix.parse.TraceStatement; import org.apache.phoenix.parse.UDFParseNode; import org.apache.phoenix.parse.UpdateStatisticsStatement; import org.apache.phoenix.parse.UpsertStatement; +import org.apache.phoenix.parse.UseSchemaStatement; import org.apache.phoenix.query.HBaseFactoryProvider; import org.apache.phoenix.query.KeyRange; import org.apache.phoenix.query.QueryConstants; @@ -617,6 +621,19 @@ public class PhoenixStatement implements Statement, SQLCloseable { } } + private static class ExecutableCreateSchemaStatement extends CreateSchemaStatement implements CompilableStatement { + ExecutableCreateSchemaStatement(String schemaName, boolean ifNotExists) { + super(schemaName, ifNotExists); + } + + @SuppressWarnings("unchecked") + @Override + public MutationPlan compilePlan(PhoenixStatement stmt, Sequence.ValueOp seqAction) throws SQLException { + CreateSchemaCompiler compiler = new CreateSchemaCompiler(stmt); + return compiler.compile(this); + } + } + private static class ExecutableCreateFunctionStatement extends CreateFunctionStatement implements CompilableStatement { public ExecutableCreateFunctionStatement(PFunction functionInfo, boolean temporary, boolean isReplace) { @@ -866,6 +883,58 @@ public class PhoenixStatement implements Statement, SQLCloseable { } } + private static class ExecutableDropSchemaStatement extends DropSchemaStatement implements CompilableStatement { + + ExecutableDropSchemaStatement(String schemaName, boolean ifExists, boolean cascade) { + super(schemaName, ifExists, cascade); + } + + @SuppressWarnings("unchecked") + @Override + public MutationPlan compilePlan(final PhoenixStatement stmt, Sequence.ValueOp seqAction) throws SQLException { + final StatementContext context = new StatementContext(stmt); + return new BaseMutationPlan(context, this.getOperation()) { + + @Override + public ExplainPlan getExplainPlan() throws SQLException { + return new ExplainPlan(Collections.singletonList("DROP SCHEMA")); + } + + @Override + public MutationState execute() throws SQLException { + MetaDataClient client = new MetaDataClient(getContext().getConnection()); + return client.dropSchema(ExecutableDropSchemaStatement.this); + } + }; + } + } + + private static class ExecutableUseSchemaStatement extends UseSchemaStatement implements CompilableStatement { + + ExecutableUseSchemaStatement(String schemaName) { + super(schemaName); + } + + @SuppressWarnings("unchecked") + @Override + public MutationPlan compilePlan(final PhoenixStatement stmt, Sequence.ValueOp seqAction) throws SQLException { + final StatementContext context = new StatementContext(stmt); + return new BaseMutationPlan(context, this.getOperation()) { + + @Override + public ExplainPlan getExplainPlan() throws SQLException { + return new ExplainPlan(Collections.singletonList("USE SCHEMA")); + } + + @Override + public MutationState execute() throws SQLException { + MetaDataClient client = new MetaDataClient(getContext().getConnection()); + return client.useSchema(ExecutableUseSchemaStatement.this); + } + }; + } + } + private static class ExecutableDropIndexStatement extends DropIndexStatement implements CompilableStatement { public ExecutableDropIndexStatement(NamedNode indexName, TableName tableName, boolean ifExists) { @@ -877,7 +946,7 @@ public class PhoenixStatement implements Statement, SQLCloseable { public MutationPlan compilePlan(final PhoenixStatement stmt, Sequence.ValueOp seqAction) throws SQLException { final StatementContext context = new StatementContext(stmt); return new BaseMutationPlan(context, this.getOperation()) { - + @Override public ExplainPlan getExplainPlan() throws SQLException { return new ExplainPlan(Collections.singletonList("DROP INDEX")); @@ -1033,7 +1102,12 @@ public class PhoenixStatement implements Statement, SQLCloseable { List splits, PTableType tableType, boolean ifNotExists, TableName baseTableName, ParseNode tableTypeIdNode, int bindCount) { return new ExecutableCreateTableStatement(tableName, props, columns, pkConstraint, splits, tableType, ifNotExists, baseTableName, tableTypeIdNode, bindCount); } - + + @Override + public CreateSchemaStatement createSchema(String schemaName, boolean ifNotExists) { + return new ExecutableCreateSchemaStatement(schemaName, ifNotExists); + } + @Override public CreateSequenceStatement createSequence(TableName tableName, ParseNode startsWith, ParseNode incrementBy, ParseNode cacheSize, ParseNode minValue, ParseNode maxValue, @@ -1090,6 +1164,16 @@ public class PhoenixStatement implements Statement, SQLCloseable { } @Override + public DropSchemaStatement dropSchema(String schemaName, boolean ifExists, boolean cascade) { + return new ExecutableDropSchemaStatement(schemaName, ifExists, cascade); + } + + @Override + public UseSchemaStatement useSchema(String schemaName) { + return new ExecutableUseSchemaStatement(schemaName); + } + + @Override public DropFunctionStatement dropFunction(String functionName, boolean ifExists) { return new ExecutableDropFunctionStatement(functionName, ifExists); } http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java index ff73530..0525de9 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java @@ -43,6 +43,7 @@ import org.apache.hadoop.hbase.KeyValue; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.io.ImmutableBytesWritable; import org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles; +import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.input.TextInputFormat; @@ -231,7 +232,8 @@ public abstract class AbstractBulkLoadTool extends Configured implements Tool { } List tablesToBeLoaded = new ArrayList(); - tablesToBeLoaded.add(new TargetTableRef(qualifiedTableName)); + PTable table = PhoenixRuntime.getTable(conn, qualifiedTableName); + tablesToBeLoaded.add(new TargetTableRef(qualifiedTableName, table.getPhysicalName().getString())); // using conn after it's been closed... o.O tablesToBeLoaded.addAll(getIndexTables(conn, schemaName, qualifiedTableName)); @@ -310,7 +312,7 @@ public abstract class AbstractBulkLoadTool extends Configured implements Tool { tableNames.add(table.getPhysicalName()); LoadIncrementalHFiles loader = new LoadIncrementalHFiles(conf); String tableName = table.getPhysicalName(); - Path tableOutputPath = new Path(outputPath,tableName); + Path tableOutputPath = CsvBulkImportUtil.getOutputPath(outputPath, tableName); HTable htable = new HTable(conf,tableName); LOG.info("Loading HFiles for {} from {}", tableName , tableOutputPath); loader.doBulkLoad(tableOutputPath, htable); @@ -394,12 +396,11 @@ public abstract class AbstractBulkLoadTool extends Configured implements Tool { List indexTables = new ArrayList(); for(PTable indexTable : table.getIndexes()){ if (indexTable.getIndexType() == PTable.IndexType.LOCAL) { - indexTables.add(new TargetTableRef(getQualifiedTableName(schemaName, indexTable - .getTableName().getString()), MetaDataUtil - .getLocalIndexTableName(qualifiedTableName))); + indexTables.add(new TargetTableRef(indexTable.getName().getString(), + Bytes.toString(MetaDataUtil.getLocalIndexPhysicalName(table.getPhysicalName().getBytes())))); } else { - indexTables.add(new TargetTableRef(getQualifiedTableName(schemaName, - indexTable.getTableName().getString()))); + indexTables.add( + new TargetTableRef(indexTable.getName().getString(), indexTable.getPhysicalName().getString())); } } return indexTables; http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvBulkImportUtil.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvBulkImportUtil.java b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvBulkImportUtil.java index bdc67f9..9289dbf 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvBulkImportUtil.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvBulkImportUtil.java @@ -18,8 +18,10 @@ package org.apache.phoenix.mapreduce; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.util.Base64; import org.apache.phoenix.mapreduce.util.PhoenixConfigurationUtil; +import org.apache.phoenix.query.QueryConstants; import com.google.common.annotations.VisibleForTesting; @@ -72,4 +74,9 @@ public class CsvBulkImportUtil { } return new String(Base64.decode(strValue)).charAt(0); } + + public static Path getOutputPath(Path outputdir, String tableName) { + return new Path(outputdir, + tableName.replace(QueryConstants.NAMESPACE_SEPARATOR, QueryConstants.NAME_SEPARATOR)); + } } http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java index cd81192..f48a690 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java @@ -159,7 +159,7 @@ public class MultiHfileOutputFormat extends FileOutputFormat includeColumns, List splits, ListMultimap> props, boolean ifNotExists, IndexType indexType,boolean async, int bindCount, Map udfParseNodes) { return new CreateIndexStatement(indexName, dataTable, ikConstraint, includeColumns, splits, props, ifNotExists, indexType, async, bindCount, udfParseNodes); } @@ -832,4 +836,12 @@ public class ParseNodeFactory { public OffsetNode offset(LiteralParseNode l) { return new OffsetNode(l); } + + public DropSchemaStatement dropSchema(String schemaName, boolean ifExists, boolean cascade) { + return new DropSchemaStatement(schemaName, ifExists, cascade); + } + + public UseSchemaStatement useSchema(String schemaName) { + return new UseSchemaStatement(schemaName); + } } http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/parse/UseSchemaStatement.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/parse/UseSchemaStatement.java b/phoenix-core/src/main/java/org/apache/phoenix/parse/UseSchemaStatement.java new file mode 100644 index 0000000..3c5d0f0 --- /dev/null +++ b/phoenix-core/src/main/java/org/apache/phoenix/parse/UseSchemaStatement.java @@ -0,0 +1,19 @@ +package org.apache.phoenix.parse; + +public class UseSchemaStatement extends MutableStatement { + private final String schemaName; + + public UseSchemaStatement(String schemaName) { + this.schemaName = schemaName; + } + + @Override + public int getBindCount() { + return 0; + } + + public String getSchemaName() { + return schemaName; + } + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/phoenix/blob/7e432be7/phoenix-core/src/main/java/org/apache/phoenix/protobuf/ProtobufUtil.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/protobuf/ProtobufUtil.java b/phoenix-core/src/main/java/org/apache/phoenix/protobuf/ProtobufUtil.java index 5df0492..0a69ae4 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/protobuf/ProtobufUtil.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/protobuf/ProtobufUtil.java @@ -32,14 +32,14 @@ import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutationProto; import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutationProto.MutationType; import org.apache.hadoop.hbase.util.ByteStringer; import org.apache.hadoop.util.StringUtils; - -import com.google.protobuf.ByteString; -import com.google.protobuf.RpcController; import org.apache.phoenix.coprocessor.generated.MetaDataProtos; -import org.apache.phoenix.coprocessor.generated.ServerCachingProtos; import org.apache.phoenix.coprocessor.generated.PTableProtos; +import org.apache.phoenix.coprocessor.generated.ServerCachingProtos; import org.apache.phoenix.schema.PTableType; +import com.google.protobuf.ByteString; +import com.google.protobuf.RpcController; + public class ProtobufUtil { /** @@ -71,6 +71,10 @@ public class ProtobufUtil { return getMutations(request.getTableMetadataMutationsList()); } + public static List getMutations(MetaDataProtos.DropSchemaRequest request) throws IOException { + return getMutations(request.getSchemaMetadataMutationsList()); + } + public static List getMutations(MetaDataProtos.DropFunctionRequest request) throws IOException { return getMutations(request.getTableMetadataMutationsList()); @@ -101,6 +105,10 @@ public class ProtobufUtil { return getMutations(request.getTableMetadataMutationsList()); } + public static List getMutations(MetaDataProtos.CreateSchemaRequest request) throws IOException { + return getMutations(request.getTableMetadataMutationsList()); + } + /** * Each ByteString entry is a byte array serialized from MutationProto instance * @param mutations