diff --git a/common/build.xml b/common/build.xml index 731f26e..3a21700 100755 --- a/common/build.xml +++ b/common/build.xml @@ -25,6 +25,8 @@ to call at top-level: ant deploy-contrib compile-core-test + + @@ -36,7 +38,7 @@ to call at top-level: ant deploy-contrib compile-core-test $src_dir/gen/org/apache/hive/common/package-info.java + > $src_dir/gen/org/apache/hive/common/util/package-info.java /* * Generated by saveVersion.sh */ diff --git a/jdbc/src/java/org/apache/hive/jdbc/HiveDatabaseMetaData.java b/jdbc/src/java/org/apache/hive/jdbc/HiveDatabaseMetaData.java index 3d1a969..52192c4 100644 --- a/jdbc/src/java/org/apache/hive/jdbc/HiveDatabaseMetaData.java +++ b/jdbc/src/java/org/apache/hive/jdbc/HiveDatabaseMetaData.java @@ -28,12 +28,16 @@ import java.util.jar.Attributes; import org.apache.hadoop.hive.metastore.TableType; +import org.apache.hive.service.cli.GetInfoType; +import org.apache.hive.service.cli.thrift.TCLIService; import org.apache.hive.service.cli.thrift.TGetCatalogsReq; import org.apache.hive.service.cli.thrift.TGetCatalogsResp; import org.apache.hive.service.cli.thrift.TGetColumnsReq; import org.apache.hive.service.cli.thrift.TGetColumnsResp; import org.apache.hive.service.cli.thrift.TGetFunctionsReq; import org.apache.hive.service.cli.thrift.TGetFunctionsResp; +import org.apache.hive.service.cli.thrift.TGetInfoReq; +import org.apache.hive.service.cli.thrift.TGetInfoResp; import org.apache.hive.service.cli.thrift.TGetSchemasReq; import org.apache.hive.service.cli.thrift.TGetSchemasResp; import org.apache.hive.service.cli.thrift.TGetTableTypesReq; @@ -42,7 +46,6 @@ import org.apache.hive.service.cli.thrift.TGetTablesResp; import org.apache.hive.service.cli.thrift.TGetTypeInfoReq; import org.apache.hive.service.cli.thrift.TGetTypeInfoResp; -import org.apache.hive.service.cli.thrift.TCLIService; import org.apache.hive.service.cli.thrift.TSessionHandle; import org.apache.thrift.TException; @@ -249,8 +252,17 @@ public String getDatabaseProductName() throws SQLException { } public String getDatabaseProductVersion() throws SQLException { - // TODO: Fetch this from the server side - return "0.10.0"; + + TGetInfoReq req = new TGetInfoReq(sessHandle, GetInfoType.CLI_DBMS_VER.toTGetInfoType()); + TGetInfoResp resp; + try { + resp = client.GetInfo(req); + } catch (TException e) { + throw new SQLException(e.getMessage(), "08S01", e); + } + Utils.verifySuccess(resp.getStatus()); + + return resp.getInfoValue().getStringValue(); } public int getDefaultTransactionIsolation() throws SQLException { diff --git a/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java b/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java index 938dd9a..1a0394e 100644 --- a/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java +++ b/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java @@ -35,11 +35,13 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; +import java.util.regex.Pattern; import junit.framework.TestCase; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hive.conf.HiveConf; +import org.apache.hive.common.util.HiveVersionInfo; /** * TestJdbcDriver2 @@ -833,7 +835,10 @@ public void testDatabaseMetaData() throws SQLException { DatabaseMetaData meta = con.getMetaData(); assertEquals("Hive", meta.getDatabaseProductName()); - assertEquals("0.10.0", meta.getDatabaseProductVersion()); + assertEquals(HiveVersionInfo.getVersion(), meta.getDatabaseProductVersion()); + assertTrue("verifying hive version pattern. got " + meta.getDatabaseProductVersion(), + Pattern.matches("\\d+\\.\\d+\\.\\d+.*", meta.getDatabaseProductVersion()) ); + assertEquals(DatabaseMetaData.sqlStateSQL99, meta.getSQLStateType()); assertFalse(meta.supportsCatalogsInTableDefinitions()); assertFalse(meta.supportsSchemasInTableDefinitions()); diff --git a/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java b/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java index 18594cb..e689f65 100644 --- a/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java +++ b/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java @@ -27,6 +27,7 @@ import org.apache.hadoop.hive.metastore.IMetaStoreClient; import org.apache.hadoop.hive.metastore.api.MetaException; import org.apache.hadoop.hive.ql.session.SessionState; +import org.apache.hive.common.util.HiveVersionInfo; import org.apache.hive.service.cli.FetchOrientation; import org.apache.hive.service.cli.GetInfoType; import org.apache.hive.service.cli.GetInfoValue; @@ -141,7 +142,7 @@ public GetInfoValue getInfo(GetInfoType getInfoType) case CLI_DBMS_NAME: return new GetInfoValue("Apache Hive"); case CLI_DBMS_VER: - return new GetInfoValue("0.10.0"); + return new GetInfoValue(HiveVersionInfo.getVersion()); case CLI_MAX_COLUMN_NAME_LEN: return new GetInfoValue(128); case CLI_MAX_SCHEMA_NAME_LEN: