Hi,
I am using the just released 2.14 version for JdbcIO with the newly added 
"readRows" functionality. 
I want to read table data with a query without parameters (select * from 
table_name). As per my understanding, this should not require 
"StatementPreperator". However, if I use the newly added "readRows" function, I 
get an exception that seems to force me to use the "StatementPreperator". 
Stacktrace below.  
java.lang.IllegalArgumentException: statementPreparator can not be null        
at 
org.apache.beam.vendor.guava.v20_0.com.google.common.base.Preconditions.checkArgument(Preconditions.java:122)
        at 
org.apache.beam.sdk.io.jdbc.JdbcIO$Read.withStatementPreparator(JdbcIO.java:600)
        at org.apache.beam.sdk.io.jdbc.JdbcIO$ReadRows.expand(JdbcIO.java:499)  
      at org.apache.beam.sdk.io.jdbc.JdbcIO$ReadRows.expand(JdbcIO.java:410)    
    at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:537)        at 
org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:471)        at 
org.apache.beam.sdk.values.PBegin.apply(PBegin.java:44)        at 
com.nokia.csf.dfle.transforms.DfleRdbmsSource.expand(DfleRdbmsSource.java:34)   
     at 
com.nokia.csf.dfle.transforms.DfleRdbmsSource.expand(DfleRdbmsSource.java:10)   
     at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:537)        at 
org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:488)        at 
org.apache.beam.sdk.values.PBegin.apply(PBegin.java:56)        at 
org.apache.beam.sdk.Pipeline.apply(Pipeline.java:182)        at 
com.nokia.csf.dfle.dsl.DFLEBeamMain.dagWireUp(DFLEBeamMain.java:49)        at 
com.nokia.csf.dfle.dsl.DFLEBeamMain.main(DFLEBeamMain.java:120)


The test added in JdbcIOTest.java for this functionality only tests for queries 
with parameters. Is this new function supported only in the above case and not 
for normal "withQuery" (without parameters) ? 

Thanks & regards,Kishor

Reply via email to