googleapis / googleapis/google-cloud-java

[java-bigquery] setPreserveAsciiControlChars flag not working,

オープン
#12,163 コメント 1 件 リアクション 0 件 担当者 1 名 @Neenu1995 が担当を希望しています GitHub で見る
api: bigquery priority: p3
主要言語
Java
スター
2.1k
フォーク
1.2k
平均マージ
1日 23時間
マージ済み PR(30日)
154

説明

Hi Team,

I tried to use CSVOption#setPreserveAsciiControlChars, when using the latest 2.34.0 version.

I have made the fixes for my use case, but request you to add fix in main code.
------------------------------------------

diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java
index fefff340..1696b1fc 100644
--- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java
+++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java
@@ -152,7 +152,8 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load
|| loadConfigurationPb.getEncoding() != null
|| loadConfigurationPb.getFieldDelimiter() != null
|| loadConfigurationPb.getQuote() != null
- || loadConfigurationPb.getSkipLeadingRows() != null) {
+ || loadConfigurationPb.getSkipLeadingRows() != null
+ || loadConfigurationPb.getPreserveAsciiControlCharacters() != null) {
CsvOptions.Builder builder =
CsvOptions.newBuilder()
.setEncoding(loadConfigurationPb.getEncoding())
@@ -167,6 +168,9 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load
if (loadConfigurationPb.getSkipLeadingRows() != null) {
builder.setSkipLeadingRows(loadConfigurationPb.getSkipLeadingRows());
}
+ if (loadConfigurationPb.getPreserveAsciiControlCharacters() != null) {
+ builder.setPreserveAsciiControlCharacters(loadConfigurationPb.getPreserveAsciiControlCharacters());
+ }
this.formatOptions = builder.build();
}
this.maxBadRecords = loadConfigurationPb.getMaxBadRecords();
@@ -653,7 +657,8 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load
.setAllowJaggedRows(csvOptions.allowJaggedRows())
.setAllowQuotedNewlines(csvOptions.allowQuotedNewLines())
.setEncoding(csvOptions.getEncoding())
- .setQuote(csvOptions.getQuote());
+ .setQuote(csvOptions.getQuote())
+ .setPreserveAsciiControlCharacters(csvOptions.getPreserveAsciiControlCharacters());
if (csvOptions.getSkipLeadingRows() != null) {
// todo(mziccard) remove checked cast or comment when googleapis/java-bigquery#1044 is closed
loadConfigurationPb.setSkipLeadingRows(Ints.checkedCast(csvOptions.getSkipLeadingRows()));
diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java
index 114c6dad..f270eadf 100644
--- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java
+++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java
@@ -127,7 +127,8 @@ public final class WriteChannelConfiguration implements LoadConfiguration, Seria
|| loadConfigurationPb.getEncoding() != null
|| loadConfigurationPb.getFieldDelimiter() != null
|| loadConfigurationPb.getQuote() != null
- || loadConfigurationPb.getSkipLeadingRows() != null) {
+ || loadConfigurationPb.getSkipLeadingRows() != null
+ || loadConfigurationPb.getPreserveAsciiControlCharacters() != null) {
CsvOptions.Builder builder =
CsvOptions.newBuilder()
.setEncoding(loadConfigurationPb.getEncoding())
@@ -142,6 +143,9 @@ public final class WriteChannelConfiguration implements LoadConfiguration, Seria
if (loadConfigurationPb.getSkipLeadingRows() != null) {
builder.setSkipLeadingRows(loadConfigurationPb.getSkipLeadingRows());
}
+ if (loadConfigurationPb.getPreserveAsciiControlCharacters() != null) {
+ builder.setPreserveAsciiControlCharacters(loadConfigurationPb.getPreserveAsciiControlCharacters());
+ }
this.formatOptions = builder.build();
}
this.maxBadRecords = loadConfigurationPb.getMaxBadRecords();
~

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。