Когда я использую функцию ignate cast
, когда исходные данные не могут быть преобразованы в целевой тип, то ignite вызовет это исключение:
javax.cache.CacheException: Не удалось выполнить запрос карты удаленно. Не удалось выполнить запрос карты на узле: 3ed8c3f3-31d3-4e18-a41c-83e2b6d4bf4a, класс org.apache.ignite.IgniteCheckedException: Не удалось выполнить запрос SQL. Невозможно проанализировать константу "DATE" "xxxx";
Но мне нужно использовать null
вместо этого, когда он не может быть конвертирован, как база данных Postgresql.
Что мне делать?
Версия Ignite: 2.6, версия JDBC: 2.5
SELECT CAST(city AS DATE) AS `a1` FROM orders GROUP BY CAST(city AS DATE);
Ожидаемое:
a1
Null
Фактически:
java.sql.SQLException: javax.cache.CacheException: Failed to run map query remotely.Failed to execute map query on the node: 3ed8c3f3-31d3-4e18-a41c-83e2b6d4bf4a, class org.apache.ignite.IgniteCheckedException:Failed to execute SQL query. Cannot parse "DATE" constant "xxxx"; SQL statement:
SELECT
CAST(__Z0.city AS DATE) __C0_0
FROM PUBLIC.ORDERS2 __Z0
GROUP BY CAST(__Z0.city AS DATE) LIMIT 3 [22007-195]
at org.apache.ignite.internal.jdbc.thin.JdbcThinConnection.sendRequest(JdbcThinConnection.java:751)
at org.apache.ignite.internal.jdbc.thin.JdbcThinStatement.execute0(JdbcThinStatement.java:210)
at org.apache.ignite.internal.jdbc.thin.JdbcThinPreparedStatement.executeWithArguments(JdbcThinPreparedStatement.java:252)
at org.apache.ignite.internal.jdbc.thin.JdbcThinPreparedStatement.executeQuery(JdbcThinPreparedStatement.java:78)
at com.uniplore.calculation.connectors.IgniteConnector.execute(IgniteConnector.java:58)
at tests.AbstractFunctionTransTest.getResult(AbstractFunctionTransTest.java:65)
at tests.IgniteFunctionTransTest.Date(IgniteFunctionTransTest.java:840)