Using a sub-query when column types are inferred (connection property columnTypes="") causes the following exception:
java.sql.SQLException: Cannot infer column types until first row is fetched
at org.relique.jdbc.csv.CsvReader.inferColumnTypes(CsvReader.java:300)
at org.relique.jdbc.csv.CsvReader.getColumnTypes(CsvReader.java:292)
at org.relique.jdbc.csv.CsvResultSet.getMetaData(CsvResultSet.java:1405)
at org.relique.jdbc.csv.SubQueryExpression.evalList(SubQueryExpression.java:84)
at org.relique.jdbc.csv.InExpression.isTrue(InExpression.java:60)
at org.relique.jdbc.csv.ParsedExpression.isTrue(ParsedExpression.java:52)
at org.relique.jdbc.csv.CsvResultSet.next(CsvResultSet.java:925)
at org.relique.jdbc.csv.CsvDriver.writeToCsv(CsvDriver.java:307)
at org.relique.jdbc.csv.Runner2.main(Runner2.java:70)
SQL statement being executed is:
SELECT A FROM TEST WHERE A IN (SELECT B FROM TEST)
Originally reported in csvjdbc-develop forum topic Sub-queries cannot be used when column types are inferred.