Fabien Carrion created HIVE-24826:
-------------------------------------
Summary: PSQLException when trying to create an external table on
postgresql and not the default schema
Key: HIVE-24826
URL: https://issues.apache.org/jira/browse/HIVE-24826
Project: Hive
Issue Type: Bug
Components: JDBC storage handler
Reporter: Fabien Carrion
I was receiving a psql exception indicating the table doesnt exist while
creating an external table which points on a postgresql table which is not in
the default schema like this:
{color:#172b4d}{{CREATE EXTERNAL TABLE test (test_id int, test_id2 int, name
string) STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
TBLPROPERTIES ("hive.sql.database.type" = "POSTGRES", "hive.sql.jdbc.driver" =
"org.postgresql.Driver", "hive.sql.jdbc.url" =
"jdbc:postgresql://192.168.0.1:5432/test", "hive.sql.dbcp.username" = "test",
"hive.sql.dbcp.password" = "*****", "hive.sql.schema" = "hive_imports",
"hive.sql.table" = "test", "external.table.purge" = "false");}}{color}
{color:#172b4d}The exact Exception is{color}
{color:#172b4d}{{org.postgresql.util.PSQLException: ERROR: relation "test" does
not exist
Position: 15
at
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2284)
~[postgresql-9.4.1208.jre7.jar:9.4.1208.jre7]
at
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2003)
~[postgresql-9.4.1208.jre7.jar:9.4.1208.jre7]
at
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:200)
~[postgresql-9.4.1208.jre7.jar:9.4.1208.jre7]
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:424)
~[postgresql-9.4.1208.jre7.jar:9.4.1208.jre7]
at
org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:161)
~[postgresql-9.4.1208.jre7.jar:9.4.1208.jre7]
at
org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:114)
~[postgresql-9.4.1208.jre7.jar:9.4.1208.jre7]
at
org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:122)
~[commons-dbcp2-2.5.0.jar:2.5.0]
at
org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:122)
~[commons-dbcp2-2.5.0.jar:2.5.0]
at
org.apache.hive.storage.jdbc.dao.GenericJdbcDatabaseAccessor.getColumnNames(GenericJdbcDatabaseAccessor.java:81)
~[hive-jdbc-handler-3.1.0.3.1.4.0-315.jar:4.0.0-SNAPSHOT]
at
org.apache.hive.storage.jdbc.JdbcSerDe.initialize(JdbcSerDe.java:102)
~[hive-jdbc-handler-3.1.0.3.1.4.0-315.jar:4.0.0-SNAPSHOT]
at
org.apache.hadoop.hive.serde2.AbstractSerDe.initialize(AbstractSerDe.java:54)
~[hive-exec-3.1.0.3.1.4.0-315.jar:3.1.0.3.1.4.0-315]
at
org.apache.hadoop.hive.serde2.SerDeUtils.initializeSerDe(SerDeUtils.java:540)
~[hive-exec-3.1.0.3.1.4.0-315.jar:3.1.0.3.1.4.0-315]
at
org.apache.hadoop.hive.metastore.HiveMetaStoreUtils.getDeserializer(HiveMetaStoreUtils.java:90)
~[hive-exec-3.1.0.3.1.4.0-315.jar:3.1.0.3.1.4.0-315]}}{color}
{color:#172b4d}In the patch I just check if there is a schema indicated in the
definition of the table. In the case there is, it used it to make the metadata
discovery queries.{{}}{color}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)