In fact, there seems to be a second issue related to bind variables and 
recursive CTE. Consider the following alternative program:
>
>
        Connection con = getConnection();
        System.out.println("Wrong result:");
        PreparedStatement stmt = con.prepareStatement(
            "WITH recursive t(f) AS ( "+
            "    SELECT ?             "+
            "    UNION ALL            "+
            "    SELECT t.f + 1       "+
            "    FROM t               "+
            "    WHERE t.f < 10        "+
            ")                        "+
            "SELECT t.f               "+
            "FROM t                   "
        );
        stmt.setInt(1, 1);
        ResultSet rs = stmt.executeQuery();

        while (rs.next())
            System.out.println(rs.getString(1));

        System.out.println("Correct result:");
        rs = con.createStatement().executeQuery(
            "WITH recursive t(f) AS ( "+
            "    SELECT 1             "+
            "    UNION ALL            "+
            "    SELECT t.f + 1       "+
            "    FROM t               "+
            "    WHERE t.f < 10       "+
            ")                        "+
            "SELECT t.f               "+
            "FROM t                   "
        );

        while (rs.next())
            System.out.println(rs.getString(1));

The output is now:

Wrong result:
*null*
Correct result:
1
2
3
4
5
6
7
8
9

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.

Reply via email to