-
Notifications
You must be signed in to change notification settings - Fork 72
Description
For this package.jdo definition,
<class name="MColumnDescriptor" identity-type="datastore" table="CDS" detachable="true"> <datastore-identity> <column name="CD_ID"/> </datastore-identity> <field name="cols" persistence-modifier="persistent" table="COLUMNS_V2"> <collection element-type="MFieldSchema" dependent-element="true" /> <join> <primary-key name="COLUMNS_V2_PK"> <column name="CD_ID"/> <column name="COLUMN_NAME"/> </primary-key> <column name="CD_ID"/> </join> <element> <embedded> <field name="name"> <column name="COLUMN_NAME" length="767" jdbc-type="VARCHAR" allows-null="false"/> </field> <field name="type"> <column name="TYPE_NAME" length="32672" jdbc-type="VARCHAR" allows-null="false"/> </field> <field name="comment"> <column name="COMMENT" length="256" jdbc-type="VARCHAR" allows-null="true"/> </field> </embedded> </element> </field> </class>
This is the Oracle schema definition:
-- Table CDS.
CREATE TABLE CDS(
CD_ID NUMBER NOT NULL
)
-- Table COLUMNS_V2 for join relationship
CREATE TABLE COLUMNS_V2(
CD_ID NUMBER NOT NULL,
"COMMENT" VARCHAR2(4000) NULL,
"COLUMN_NAME" VARCHAR2(767) NOT NULL,
TYPE_NAME CLOB NOT NULL,
INTEGER_IDX NUMBER(10) NOT NULL
)
The following error is thrown while reading the COLUMNS_V2 table:
2025-04-15T09:29:39,122 ERROR [021a5175-a2c4-4855-8584-59157bda208c HiveServer2-Handler-Pool: Thread-101] Datastore.Persist: Exception updating embedded element in collection java.sql.SQLException: ORA-22848: cannot use CLOB type as comparison key at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:715) ~[ojdbc17.jar:23.7.0.25.01] at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:615) ~[ojdbc17.jar:23.7.0.25.01] at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1372) ~[ojdbc17.jar:23.7.0.25.01] at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:969) ~[ojdbc17.jar:23.7.0.25.01] at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:237) ~[ojdbc17.jar:23.7.0.25.01] at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:524) ~[ojdbc17.jar:23.7.0.25.01] at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:298) ~[ojdbc17.jar:23.7.0.25.01] at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1508) ~[ojdbc17.jar:23.7.0.25.01] at oracle.jdbc.driver.OracleStatement.executeSQLStatement(OracleStatement.java:2009) ~[ojdbc17.jar:23.7.0.25.01] at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1622) ~[ojdbc17.jar:23.7.0.25.01] at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3973) ~[ojdbc17.jar:23.7.0.25.01] at oracle.jdbc.driver.OraclePreparedStatement.doExecuteLargeUpdate(OraclePreparedStatement.java:4339) ~[ojdbc17.jar:23.7.0.25.01] at oracle.jdbc.driver.OraclePreparedStatement.executeLargeUpdate(OraclePreparedStatement.java:4316) ~[ojdbc17.jar:23.7.0.25.01] at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:4291) ~[ojdbc17.jar:23.7.0.25.01] at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1004) ~[ojdbc17.jar:23.7.0.25.01] at org.apache.hive.com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61) ~[hive-exec-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT] at org.apache.hive.com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java) ~[hive-exec-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT] at org.datanucleus.store.rdbms.SQLController.doExecuteStatementUpdate(SQLController.java:463) ~[datanucleus-rdbms-6.0.8.jar:?] at org.datanucleus.store.rdbms.SQLController.executeStatementUpdate(SQLController.java:396) ~[datanucleus-rdbms-6.0.8.jar:?] at org.datanucleus.store.rdbms.scostore.AbstractCollectionStore.updateEmbeddedElement(AbstractCollectionStore.java:404) ~[datanucleus-rdbms-6.0.8.jar:?] at org.datanucleus.store.types.wrappers.backed.List.updateEmbeddedElement(List.java:320) ~[datanucleus-core-6.0.8.jar:?] at org.datanucleus.state.StateManagerImpl.replaceField(StateManagerImpl.java:4263) ~[datanucleus-core-6.0.8.jar:?] at org.datanucleus.state.StateManagerImpl.replaceField(StateManagerImpl.java:4224) ~[datanucleus-core-6.0.8.jar:?] at org.datanucleus.store.rdbms.mapping.java.EmbeddedMapping.getObject(EmbeddedMapping.java:653) ~[datanucleus-rdbms-6.0.8.jar:?] at org.datanucleus.store.rdbms.scostore.ListStoreIterator.<init>(ListStoreIterator.java:90) ~[datanucleus-rdbms-6.0.8.jar:?] at org.datanucleus.store.rdbms.scostore.JoinListStore.listIterator(JoinListStore.java:776) ~[datanucleus-rdbms-6.0.8.jar:?] at org.datanucleus.store.rdbms.scostore.AbstractListStore.listIterator(AbstractListStore.java:82) ~[datanucleus-rdbms-6.0.8.jar:?] at org.datanucleus.store.rdbms.scostore.AbstractListStore.iterator(AbstractListStore.java:76) ~[datanucleus-rdbms-6.0.8.jar:?] at org.datanucleus.store.types.wrappers.backed.List.loadFromStore(List.java:281) ~[datanucleus-core-6.0.8.jar:?] at org.datanucleus.store.types.wrappers.backed.List.iterator(List.java:500) ~[datanucleus-core-6.0.8.jar:?] at org.apache.hadoop.hive.metastore.ObjectStore.convertToFieldSchemas(ObjectStore.java:2365) ~[hive-exec-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT] at org.apache.hadoop.hive.metastore.ObjectStore.convertToStorageDescriptor(ObjectStore.java:2456) ~[hive-exec-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT] at org.apache.hadoop.hive.metastore.ObjectStore.convertToTable(ObjectStore.java:2286) ~[hive-exec-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT] at org.apache.hadoop.hive.metastore.ObjectStore.getTable(ObjectStore.java:1643) ~[hive-exec-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT] at org.apache.hadoop.hive.metastore.ObjectStore.getTable(ObjectStore.java:1681) ~[hive-exec-4.1.0-SNAPSHOT.jar:4.1.0-SNAPSHOT]
This worked in JDO5.2. I'm wondering what changed/broke in JDO6. Thanks in advance for the pointers.