HIVE-17990 Add Thrift and DB storage for Schema Registry objects (Alan Gates, reviewed by Thejas Nair)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/12041d39 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/12041d39 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/12041d39 Branch: refs/heads/master Commit: 12041d39f052dc8e4858815da15c967cb378fae9 Parents: d717d38 Author: Alan Gates <ga...@hortonworks.com> Authored: Mon Mar 12 16:54:46 2018 -0700 Committer: Alan Gates <ga...@hortonworks.com> Committed: Mon Mar 12 16:54:46 2018 -0700 ---------------------------------------------------------------------- .../listener/DummyRawStoreFailEvent.java | 75 + standalone-metastore/pom.xml | 3 +- .../gen/thrift/gen-cpp/ThriftHiveMetastore.cpp | 35798 ++++++++++------- .../gen/thrift/gen-cpp/ThriftHiveMetastore.h | 2378 +- .../ThriftHiveMetastore_server.skeleton.cpp | 70 + .../gen/thrift/gen-cpp/hive_metastore_types.cpp | 6134 +-- .../gen/thrift/gen-cpp/hive_metastore_types.h | 729 +- .../hive/metastore/api/AlterISchemaRequest.java | 509 + .../metastore/api/FindSchemasByColsResp.java | 449 + .../metastore/api/FindSchemasByColsRqst.java | 605 + .../hive/metastore/api/GetSerdeRequest.java | 395 + .../hadoop/hive/metastore/api/ISchema.java | 1162 + .../hadoop/hive/metastore/api/ISchemaName.java | 499 + .../api/MapSchemaVersionToSerdeRequest.java | 504 + .../hive/metastore/api/SchemaCompatibility.java | 51 + .../hadoop/hive/metastore/api/SchemaType.java | 45 + .../hive/metastore/api/SchemaValidation.java | 45 + .../hive/metastore/api/SchemaVersion.java | 1412 + .../metastore/api/SchemaVersionDescriptor.java | 502 + .../hive/metastore/api/SchemaVersionState.java | 63 + .../hadoop/hive/metastore/api/SerDeInfo.java | 443 +- .../hadoop/hive/metastore/api/SerdeType.java | 45 + .../api/SetSchemaVersionStateRequest.java | 516 + .../hive/metastore/api/ThriftHiveMetastore.java | 17889 +++++++- .../gen-php/metastore/ThriftHiveMetastore.php | 27954 +++++++------ .../src/gen/thrift/gen-php/metastore/Types.php | 1523 + .../hive_metastore/ThriftHiveMetastore-remote | 98 + .../hive_metastore/ThriftHiveMetastore.py | 5189 ++- .../gen/thrift/gen-py/hive_metastore/ttypes.py | 1123 +- .../gen/thrift/gen-rb/hive_metastore_types.rb | 277 +- .../gen/thrift/gen-rb/thrift_hive_metastore.rb | 915 + .../hadoop/hive/metastore/HiveMetaStore.java | 472 +- .../hive/metastore/HiveMetaStoreClient.java | 72 + .../hadoop/hive/metastore/IMetaStoreClient.java | 167 + .../hive/metastore/MetaStoreEventListener.java | 26 + .../metastore/MetaStoreListenerNotifier.java | 42 + .../hadoop/hive/metastore/ObjectStore.java | 426 +- .../apache/hadoop/hive/metastore/RawStore.java | 135 + .../hive/metastore/cache/CachedStore.java | 77 + .../client/builder/DatabaseBuilder.java | 2 +- .../client/builder/ISchemaBuilder.java | 94 + .../client/builder/SchemaVersionBuilder.java | 108 + .../client/builder/SerdeAndColsBuilder.java | 124 + .../builder/StorageDescriptorBuilder.java | 57 +- .../metastore/events/AddSchemaVersionEvent.java | 40 + .../metastore/events/AlterISchemaEvent.java | 45 + .../events/AlterSchemaVersionEvent.java | 46 + .../metastore/events/CreateISchemaEvent.java | 39 + .../hive/metastore/events/DropISchemaEvent.java | 39 + .../events/DropSchemaVersionEvent.java | 40 + .../events/PreAddSchemaVersionEvent.java | 39 + .../metastore/events/PreAlterISchemaEvent.java | 44 + .../events/PreAlterSchemaVersionEvent.java | 45 + .../metastore/events/PreCreateISchemaEvent.java | 39 + .../metastore/events/PreDropISchemaEvent.java | 39 + .../events/PreDropSchemaVersionEvent.java | 39 + .../hive/metastore/events/PreEventContext.java | 10 +- .../metastore/events/PreReadISchemaEvent.java | 39 + .../events/PreReadhSchemaVersionEvent.java | 36 + .../hive/metastore/messaging/EventMessage.java | 8 +- .../metastore/messaging/MessageFactory.java | 7 + .../hadoop/hive/metastore/model/MISchema.java | 107 + .../hive/metastore/model/MSchemaVersion.java | 127 + .../hadoop/hive/metastore/model/MSerDeInfo.java | 48 +- .../hive/metastore/utils/MetaStoreUtils.java | 1 + .../main/resources/datanucleus-log4j.properties | 17 + .../src/main/resources/package.jdo | 77 + .../main/sql/derby/hive-schema-3.0.0.derby.sql | 30 +- .../sql/derby/upgrade-2.3.0-to-3.0.0.derby.sql | 34 + .../main/sql/mssql/hive-schema-3.0.0.mssql.sql | 33 +- .../sql/mssql/upgrade-2.3.0-to-3.0.0.mssql.sql | 33 + .../main/sql/mysql/hive-schema-3.0.0.mysql.sql | 36 + .../sql/mysql/upgrade-2.3.0-to-3.0.0.mysql.sql | 38 + .../sql/oracle/hive-schema-3.0.0.oracle.sql | 33 +- .../oracle/upgrade-2.3.0-to-3.0.0.oracle.sql | 34 + .../sql/postgres/hive-schema-3.0.0.postgres.sql | 33 +- .../upgrade-2.3.0-to-3.0.0.postgres.sql | 34 + .../src/main/thrift/hive_metastore.thrift | 136 +- .../DummyRawStoreControlledCommit.java | 75 + .../DummyRawStoreForJdoConnection.java | 74 + .../TestHiveMetaStoreSchemaMethods.java | 1180 + .../hadoop/hive/metastore/TestObjectStore.java | 32 - .../metastore/TestObjectStoreSchemaMethods.java | 573 + .../hive/metastore/cache/TestCachedStore.java | 2 - 84 files changed, 80370 insertions(+), 32213 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/12041d39/itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/DummyRawStoreFailEvent.java ---------------------------------------------------------------------- diff --git a/itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/DummyRawStoreFailEvent.java b/itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/DummyRawStoreFailEvent.java index 4ecd89c..6144b61 100644 --- a/itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/DummyRawStoreFailEvent.java +++ b/itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/DummyRawStoreFailEvent.java @@ -18,6 +18,8 @@ package org.apache.hive.hcatalog.listener; +import org.apache.hadoop.hive.metastore.api.ISchemaName; +import org.apache.hadoop.hive.metastore.api.SchemaVersionDescriptor; import org.apache.hadoop.hive.metastore.api.WMFullResourcePlan; import java.nio.ByteBuffer; import java.util.ArrayList; @@ -40,6 +42,7 @@ import org.apache.hadoop.hive.metastore.api.FieldSchema; import org.apache.hadoop.hive.metastore.api.FileMetadataExprType; import org.apache.hadoop.hive.metastore.api.Function; import org.apache.hadoop.hive.metastore.api.HiveObjectPrivilege; +import org.apache.hadoop.hive.metastore.api.ISchema; import org.apache.hadoop.hive.metastore.api.InvalidInputException; import org.apache.hadoop.hive.metastore.api.InvalidObjectException; import org.apache.hadoop.hive.metastore.api.InvalidOperationException; @@ -57,6 +60,8 @@ import org.apache.hadoop.hive.metastore.api.PartitionValuesResponse; import org.apache.hadoop.hive.metastore.api.PrincipalPrivilegeSet; import org.apache.hadoop.hive.metastore.api.PrincipalType; import org.apache.hadoop.hive.metastore.api.PrivilegeBag; +import org.apache.hadoop.hive.metastore.api.SchemaVersion; +import org.apache.hadoop.hive.metastore.api.SerDeInfo; import org.apache.hadoop.hive.metastore.api.WMResourcePlan; import org.apache.hadoop.hive.metastore.api.WMNullableResourcePlan; import org.apache.hadoop.hive.metastore.api.WMTrigger; @@ -1070,4 +1075,74 @@ public class DummyRawStoreFailEvent implements RawStore, Configurable { // TODO Auto-generated method stub return null; } + + public void createISchema(ISchema schema) throws AlreadyExistsException, MetaException, + NoSuchObjectException { + objectStore.createISchema(schema); + } + + @Override + public void alterISchema(ISchemaName schemaName, ISchema newSchema) throws NoSuchObjectException, + MetaException { + objectStore.alterISchema(schemaName, newSchema); + } + + @Override + public ISchema getISchema(ISchemaName schemaName) throws MetaException { + return objectStore.getISchema(schemaName); + } + + @Override + public void dropISchema(ISchemaName schemaName) throws NoSuchObjectException, MetaException { + objectStore.dropISchema(schemaName); + } + + @Override + public void addSchemaVersion(SchemaVersion schemaVersion) throws AlreadyExistsException, + InvalidObjectException, NoSuchObjectException, MetaException { + objectStore.addSchemaVersion(schemaVersion); + } + + @Override + public void alterSchemaVersion(SchemaVersionDescriptor version, SchemaVersion newVersion) throws + NoSuchObjectException, MetaException { + objectStore.alterSchemaVersion(version, newVersion); + } + + @Override + public SchemaVersion getSchemaVersion(SchemaVersionDescriptor version) throws MetaException { + return objectStore.getSchemaVersion(version); + } + + @Override + public SchemaVersion getLatestSchemaVersion(ISchemaName schemaName) throws MetaException { + return objectStore.getLatestSchemaVersion(schemaName); + } + + @Override + public List<SchemaVersion> getAllSchemaVersion(ISchemaName schemaName) throws MetaException { + return objectStore.getAllSchemaVersion(schemaName); + } + + @Override + public List<SchemaVersion> getSchemaVersionsByColumns(String colName, String colNamespace, + String type) throws MetaException { + return objectStore.getSchemaVersionsByColumns(colName, colNamespace, type); + } + + @Override + public void dropSchemaVersion(SchemaVersionDescriptor version) throws NoSuchObjectException, + MetaException { + objectStore.dropSchemaVersion(version); + } + + @Override + public SerDeInfo getSerDeInfo(String serDeName) throws NoSuchObjectException, MetaException { + return objectStore.getSerDeInfo(serDeName); + } + + @Override + public void addSerde(SerDeInfo serde) throws AlreadyExistsException, MetaException { + objectStore.addSerde(serde); + } } http://git-wip-us.apache.org/repos/asf/hive/blob/12041d39/standalone-metastore/pom.xml ---------------------------------------------------------------------- diff --git a/standalone-metastore/pom.xml b/standalone-metastore/pom.xml index fa76e63..e5b13be 100644 --- a/standalone-metastore/pom.xml +++ b/standalone-metastore/pom.xml @@ -755,7 +755,8 @@ <version>4.0.5</version> <configuration> <api>JDO</api> - <verbose>true</verbose> + <verbose>false</verbose> + <log4jConfiguration>${basedir}/src/main/resources/datanucleus-log4j.properties</log4jConfiguration> <metadataIncludes>**/*.jdo</metadataIncludes> <fork>false</fork> </configuration>