You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Stamatis Zampetakis (Jira)" <ji...@apache.org> on 2022/10/21 07:21:01 UTC

[jira] [Updated] (HIVE-24982) HMS- Postgres: Create table fail if SERDEPROPERTIES contains the NULL character

     [ https://issues.apache.org/jira/browse/HIVE-24982?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stamatis Zampetakis updated HIVE-24982:
---------------------------------------
    Fix Version/s:     (was: 4.0.0)

I cleared the fixVersion field since this ticket is still open. Please review this ticket and if the fix is already committed to a specific version please set the version accordingly and mark the ticket as RESOLVED.

According to the [JIRA guidelines|https://cwiki.apache.org/confluence/display/Hive/HowToContribute] the fixVersion should be set only when the issue is resolved/closed.

> HMS- Postgres: Create table fail if SERDEPROPERTIES contains the NULL character
> -------------------------------------------------------------------------------
>
>                 Key: HIVE-24982
>                 URL: https://issues.apache.org/jira/browse/HIVE-24982
>             Project: Hive
>          Issue Type: Bug
>          Components: Hive
>            Reporter: Rajkumar Singh
>            Priority: Major
>
> Postgres does not expect the NULL char ('\u0000') during the insert (ref: https://www.postgresql.org/message-id/1171970019.3101.328.camel%40coppola.muc.ecircle.de ) so create table with following SERDEPROPERTIES will fail with exception. 
> {code:java}
> ROW FORMAT SERDE 
>   'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' 
> WITH SERDEPROPERTIES ( 
>   'field.delim'='\u0000', 
>   'serialization.format'='\u0000') 
> {code}
> {code:java}
> org.datanucleus.store.rdbms.exceptions.MappedDatastoreException: INSERT INTO "SERDE_PARAMS" ("PARAM_VALUE","SERDE_ID","PARAM_KEY") VALUES (?,?,?)
>         at org.datanucleus.store.rdbms.scostore.JoinMapStore.internalPut(JoinMapStore.java:1074)
>         at org.datanucleus.store.rdbms.scostore.JoinMapStore.putAll(JoinMapStore.java:224)
>         at org.datanucleus.store.rdbms.mapping.java.MapMapping.postInsert(MapMapping.java:158)
>         at org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:522)
>         at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObjectInTable(RDBMSPersistenceHandler.java:162)
>         at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:138)
>         at org.datanucleus.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3363)
>         at org.datanucleus.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3339)
>         at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2080)
>         at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2172)
>         at org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:603)
>         at org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:357)
>         at org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:191)
>         at org.datanucleus.state.AbstractStateManager.providedObjectField(AbstractStateManager.java:1460)
>         at org.datanucleus.state.StateManagerImpl.providedObjectField(StateManagerImpl.java:120)
>         at org.apache.hadoop.hive.metastore.model.MStorageDescriptor.dnProvideField(MStorageDescriptor.java)
>         at org.apache.hadoop.hive.metastore.model.MStorageDescriptor.dnProvideFields(MStorageDescriptor.java)
>         at org.datanucleus.state.StateManagerImpl.provideFields(StateManagerImpl.java:1170)
>         at org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:292)
>         at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObjectInTable(RDBMSPersistenceHandler.java:162)
>         at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:138)
>         at org.datanucleus.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3363)
>         at org.datanucleus.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3339)
>         at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2080)
>         at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2172)
>         at org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:603)
>         at org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:357)
>         at org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:191)
>         at org.datanucleus.state.AbstractStateManager.providedObjectField(AbstractStateManager.java:1460)
>         at org.datanucleus.state.StateManagerImpl.providedObjectField(StateManagerImpl.java:120)
>         at org.apache.hadoop.hive.metastore.model.MTable.dnProvideField(MTable.java)
>         at org.apache.hadoop.hive.metastore.model.MTable.dnProvideFields(MTable.java)
>         at org.datanucleus.state.StateManagerImpl.provideFields(StateManagerImpl.java:1170)
>         at org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:292)
>         at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObjectInTable(RDBMSPersistenceHandler.java:162)
>         at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:138)
>         at org.datanucleus.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3363)
>         at org.datanucleus.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3339)
>         at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2080)
>         at org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:1923)
>         at org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1778)
>         at org.datanucleus.ExecutionContextThreadedImpl.persistObject(ExecutionContextThreadedImpl.java:217)
>         at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:724)
>         at org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:749)
>         at org.apache.hadoop.hive.metastore.ObjectStore.createTable(ObjectStore.java:1464)
>         at sun.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:498)
>         at org.apache.hadoop.hive.metastore.RawStoreProxy.invoke(RawStoreProxy.java:97)
>         at com.sun.proxy.$Proxy27.createTable(Unknown Source)
>         at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_table_core(HiveMetaStore.java:2289)
>         at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_table_req(HiveMetaStore.java:2495)
> Caused by: org.postgresql.util.PSQLException: ERROR: invalid byte sequence for encoding "UTF8": 0x00
>         at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2532)
>         at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2267)
>         at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:312)
>         at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:448)
>         at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:369)
>         at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:153)
>         at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:119)
>         at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61)
>         at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java)
>         at org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeUpdate(ParamLoggingPreparedStatement.java:393)
>         at org.datanucleus.store.rdbms.SQLController.executeStatementUpdate(SQLController.java:431)
>         at org.datanucleus.store.rdbms.scostore.JoinMapStore.internalPut(JoinMapStore.java:1065)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)