Alexander Belyak created IGNITE-19284: -----------------------------------------
Summary: SQL Prepared statement interval parsing: Failed to parse query: Encountered "" Key: IGNITE-19284 URL: https://issues.apache.org/jira/browse/IGNITE-19284 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 3.0 Reporter: Alexander Belyak Attachments: interval.zip Query with parameter for interval fails while it executing through PreparedStatement: 1) Start ignite3 single node cluster 2) Execute: {noformat} import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class TimeoutExceptionReproducer { private static final String DB_URL = "jdbc:ignite:thin://127.0.0.1:10800"; public static void main(String[] args) throws SQLException { try (Connection connection = DriverManager.getConnection(DB_URL)) { parce(connection); } } public static void parce(Connection connection) throws SQLException { try (Statement stmt = connection.createStatement()) { stmt.executeUpdate("create table testTable (id int primary key, val date not null)"); } System.out.println("Table created"); try (Statement stmt = connection.createStatement()) { try (ResultSet rs = stmt.executeQuery("select id, val from testTable where val <= DATE '1990-01-01' - interval 1 day")) { while (rs.next()) { // No op } } } System.out.println("Statement done"); try (PreparedStatement ps = connection.prepareStatement( "select id, val from testTable where val <= DATE '1990-01-01' - interval ? day")) { ps.setInt(1, 1); // Or //ps.setString(1, "1"); try (ResultSet rs = ps.executeQuery()) { while(rs.next()) { // NoOp } } } System.out.println("Prepared statement done"); } }{noformat} Return error: {noformat} Table created Apr 13, 2023 11:49:53 AM org.apache.ignite.internal.logger.IgniteLogger logInternal INFO: Partition assignment change notification received [remoteAddress=127.0.0.1/<unresolved>:10800] Exception in thread "main" java.sql.SQLException: Exception while executing query [query=select id, val from testTable where val <= DATE '1990-01-01' - interval ? day]. Error message:IGN-SQL-3 TraceId:14caecea-db6f-4948-8a21-ae5f5efae06b Failed to parse query: Encountered "" at line 1, column 62. Statement done Was expecting one of: at org.apache.ignite.internal.jdbc.proto.IgniteQueryErrorCode.createJdbcSqlException(IgniteQueryErrorCode.java:57) at org.apache.ignite.internal.jdbc.JdbcStatement.execute0(JdbcStatement.java:148) at org.apache.ignite.internal.jdbc.JdbcPreparedStatement.executeWithArguments(JdbcPreparedStatement.java:657) at org.apache.ignite.internal.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:85) at TimeoutExceptionReproducer.parce(TimeoutExceptionReproducer.java:36) at TimeoutExceptionReproducer.main(TimeoutExceptionReproducer.java:13)Process finished with exit code 1{noformat} There is nothing in the server logs, even on -- This message was sent by Atlassian Jira (v8.20.10#820010)