[ 
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)

Reply via email to