OpenSearch/x-pack/plugin/sql/src
Marios Trivyzas 575cafb8da
SQL: Fix serialization of JDBC prep statement date/time params (#56492) (#56579)
The Date/Time related query params of a JDBC prepared statement
serialized using java.util.Date. The rules for serializing
`java.util.Date` objects though reside in
`XContentElasticsearchExtension` which is not available in the
jdbc jar as this class is in `server` module. Therefore, a
custom extension of the `XContentBuilderExtension` iface has been
added to the jdbc module/jar.

Moreover the sql's `qa` project had as dependency the `sql-action`
module which depends on `server` so the `XContentBuilderExtension`
was available for the integ tests hiding the real problem.

Previously, when a user was setting a `java.sql.Time` to the prepStmt,
the DataType used was `DATETIME` instead of `TIME` and therefore
prevented from filtering with a `TIME` casted field:
```
SELECT * FROM test WHERE date::TIME = ?
```

Fixes: #56084
(cherry picked from commit f8d8e971bd2c85fa4aea44b5b3ba0cdcc950a4ed)
2020-05-12 13:25:02 +02:00
..
internalClusterTest/java/org/elasticsearch/xpack/sql/action Migrate remaining ESIntegTestCases to internalClusterTest (#56479) (#56563) 2020-05-11 21:06:04 -07:00
main SQL: Fix serialization of JDBC prep statement date/time params (#56492) (#56579) 2020-05-12 13:25:02 +02:00
test/java/org/elasticsearch/xpack/sql Migrate remaining ESIntegTestCases to internalClusterTest (#56479) (#56563) 2020-05-11 21:06:04 -07:00