[
https://issues.apache.org/jira/browse/BEAM-13400?focusedWorklogId=700992&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-700992
]
ASF GitHub Bot logged work on BEAM-13400:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 24/Dec/21 14:44
Start Date: 24/Dec/21 14:44
Worklog Time Spent: 10m
Work Description: vitaly-ivanov commented on pull request #16284:
URL: https://github.com/apache/beam/pull/16284#issuecomment-1000863741
@mosche thank you for your reasonable comments.
> For instance, will every columnTypeName "uuid" always be represented as
java.util.UUID across all DBs
Until we have a specific JDBC type for UUID (ticket
https://bugs.openjdk.java.net/browse/JDK-6798972), the behavior of JDBC drivers
is not defined. But at least for Postgres and Vertica, the behavior looks the
same.
> Regardless of above, it may still be beneficial to add dedicated support
for UUIDs (and a very limited set of other special types). However, a safer
alternative to getColumnTypeName might be getColumnClassName if the driver
supports it.
Good point, I will rewrite to getColumnClassName.
> Similar to above, but fall back to always representing OTHER types as
strings using getObject(i).toString(). While more convenient and probably fine
in most cases there might be issues. If i recall correctly this is how the Nifi
Hive processor works.
I like this option as looks like it is more suitable for most types and
easier to use in comparison with bytes[]. In this case, we will have the
support of JSON types automatically.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 700992)
Time Spent: 1h 10m (was: 1h)
> JDBC IO does not support UUID and JSONB PostgreSQL types and OTHER JDBC
> types in general
> -----------------------------------------------------------------------------------------
>
> Key: BEAM-13400
> URL: https://issues.apache.org/jira/browse/BEAM-13400
> Project: Beam
> Issue Type: Improvement
> Components: io-java-jdbc
> Affects Versions: 2.34.0
> Reporter: Vitaly Ivanov
> Priority: P2
> Time Spent: 1h 10m
> Remaining Estimate: 0h
>
> The following exception occurs when trying to read rows from table which
> contains fields with type JSONB and UUID. They have JDBCType OTHER.
> {noformat}
> java.lang.UnsupportedOperationException: Converting OTHER to Beam schema type
> is not supported
> at
> org.apache.beam.sdk.io.jdbc.SchemaUtil.jdbcTypeToBeamFieldConverter(SchemaUtil.java:161)
> at
> org.apache.beam.sdk.io.jdbc.SchemaUtil.toBeamSchema(SchemaUtil.java:172)
> at
> org.apache.beam.sdk.io.jdbc.JdbcIO$ReadRows.inferBeamSchema(JdbcIO.java:655)
> at org.apache.beam.sdk.io.jdbc.JdbcIO$ReadRows.expand(JdbcIO.java:632)
> at org.apache.beam.sdk.io.jdbc.JdbcIO$ReadRows.expand(JdbcIO.java:551)
> at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:548)
> at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:499)
> at org.apache.beam.sdk.values.PBegin.apply(PBegin.java:56){noformat}
> I suppose the issue is quite important because the UUID type is widespread in
> PostgeSQL.
>
> Actual for Oracle BLOB as well.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)