This is an automated email from the ASF dual-hosted git repository.
tyrantlucifer pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git
The following commit(s) were added to refs/heads/dev by this push:
new 06671474ca [Hotfix][Connector-V2][ClickhouseFile] Fix ClickhouseFile
write file failed when field value is null (#4937)
06671474ca is described below
commit 06671474ca2dd93bdfd32f013f2f07efc950f7d1
Author: Fan Donglai <[email protected]>
AuthorDate: Tue Jun 20 10:23:04 2023 +0800
[Hotfix][Connector-V2][ClickhouseFile] Fix ClickhouseFile write file failed
when field value is null (#4937)
* Update ClickhouseFileSinkWriter.java
Bug fix: When ClikchouseFileSinkerWriter writes to a temporary file, it
does not check whether the field value is empty, so an exception will be thrown.
Modified to write an empty string when a null value is encountered
* Update ClickhouseFileSinkWriter.java
repair code style
* Update ClickhouseFileSinkWriter.java
code style
---
.../clickhouse/sink/file/ClickhouseFileSinkWriter.java | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git
a/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/sink/file/ClickhouseFileSinkWriter.java
b/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/sink/file/ClickhouseFileSinkWriter.java
index 9328137fde..4499ed1836 100644
---
a/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/sink/file/ClickhouseFileSinkWriter.java
+++
b/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/sink/file/ClickhouseFileSinkWriter.java
@@ -213,12 +213,18 @@ public class ClickhouseFileSinkWriter
String data =
this.readerOption.getFields().stream()
.map(
- field ->
- row.getField(
-
this.readerOption
-
.getSeaTunnelRowType()
-
.indexOf(field))
- .toString())
+ field -> {
+ Object fieldValueObj =
+ row.getField(
+ this.readerOption
+
.getSeaTunnelRowType()
+
.indexOf(field));
+ if (fieldValueObj == null) {
+ return "";
+ } else {
+ return
fieldValueObj.toString();
+ }
+ })
.collect(Collectors.joining(readerOption.getFileFieldsDelimiter()))
+ "\n";
MappedByteBuffer buffer =