This is an automated email from the ASF dual-hosted git repository.
wuchunfu pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel.git
The following commit(s) were added to refs/heads/dev by this push:
new 28beb53 [fix][Connector] fix datetime/date string can't convert to
timestamp/date (#1521)
28beb53 is described below
commit 28beb53195f4b9745ede72f62a1d4edd93622963
Author: TrickyZerg <[email protected]>
AuthorDate: Sun Mar 20 13:14:15 2022 +0800
[fix][Connector] fix datetime/date string can't convert to timestamp/date
(#1521)
---
.../org/apache/seatunnel/spark/sink/Clickhouse.scala | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git
a/seatunnel-connectors/seatunnel-connectors-spark/seatunnel-connector-spark-clickhouse/src/main/scala/org/apache/seatunnel/spark/sink/Clickhouse.scala
b/seatunnel-connectors/seatunnel-connectors-spark/seatunnel-connector-spark-clickhouse/src/main/scala/org/apache/seatunnel/spark/sink/Clickhouse.scala
index cfac518..58da5b6 100644
---
a/seatunnel-connectors/seatunnel-connectors-spark/seatunnel-connector-spark-clickhouse/src/main/scala/org/apache/seatunnel/spark/sink/Clickhouse.scala
+++
b/seatunnel-connectors/seatunnel-connectors-spark/seatunnel-connector-spark-clickhouse/src/main/scala/org/apache/seatunnel/spark/sink/Clickhouse.scala
@@ -354,9 +354,21 @@ class Clickhouse extends SparkBatchSink {
case "String" =>
statement.setString(index + 1, item.getAs[String](fieldIndex))
case "Date" =>
- statement.setDate(index + 1, item.getAs[Date](fieldIndex))
+ val value = item.get(fieldIndex)
+ value match {
+ case date: Date =>
+ statement.setDate(index + 1, date)
+ case _ =>
+ statement.setDate(index + 1, Date.valueOf(value.toString))
+ }
case "DateTime" | Clickhouse.datetime64Pattern(_) =>
- statement.setTimestamp(index + 1, item.getAs[Timestamp](fieldIndex))
+ val value = item.get(fieldIndex)
+ value match {
+ case timestamp: Timestamp =>
+ statement.setTimestamp(index + 1, timestamp)
+ case _ =>
+ statement.setTimestamp(index + 1,
Timestamp.valueOf(value.toString))
+ }
case "Int8" | "UInt8" | "Int16" | "UInt16" | "Int32" =>
statement.setInt(index + 1, item.getAs[Int](fieldIndex))
case "UInt32" | "UInt64" | "Int64" =>