This is an automated email from the ASF dual-hosted git repository.
ibzib pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/master by this push:
new 207a882 [BEAM-10243] Fix and test FieldValueBuilder::withFieldValues.
new d250a1d Merge pull request #12200 from ibzib/BEAM-10243
207a882 is described below
commit 207a882308277b19b06c91e10245d063f4b14d23
Author: Kyle Weaver <[email protected]>
AuthorDate: Wed Jul 8 11:55:17 2020 -0700
[BEAM-10243] Fix and test FieldValueBuilder::withFieldValues.
---
.../core/src/main/java/org/apache/beam/sdk/values/Row.java | 4 ++--
.../src/test/java/org/apache/beam/sdk/values/RowTest.java | 13 +++++++++++++
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/values/Row.java
b/sdks/java/core/src/main/java/org/apache/beam/sdk/values/Row.java
index 097c2a0..e48cba5 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/values/Row.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/values/Row.java
@@ -681,7 +681,7 @@ public abstract class Row implements Serializable {
.forEach(
e ->
fieldOverrides.addOverride(
- FieldAccessDescriptor.withFieldNames(e.getKey()),
+
FieldAccessDescriptor.withFieldNames(e.getKey()).resolve(getSchema()),
new FieldOverride(e.getValue())));
return this;
}
@@ -750,7 +750,7 @@ public abstract class Row implements Serializable {
* syntax.
*/
public FieldValueBuilder withFieldValues(Map<String, Object> values) {
- checkState(values.isEmpty());
+ checkState(this.values.isEmpty());
return new FieldValueBuilder(schema, null).withFieldValues(values);
}
diff --git
a/sdks/java/core/src/test/java/org/apache/beam/sdk/values/RowTest.java
b/sdks/java/core/src/test/java/org/apache/beam/sdk/values/RowTest.java
index 7134e02..043c19d 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/values/RowTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/values/RowTest.java
@@ -762,4 +762,17 @@ public class RowTest {
Row row = Row.withSchema(schema).withFieldValue("char", byteArray).build();
assertTrue(Arrays.equals(byteArray, row.getLogicalTypeValue("char",
byte[].class)));
}
+
+ @Test
+ public void testWithFieldValues() {
+ EnumerationType enumerationType = EnumerationType.create("zero", "one",
"two");
+ Schema schema = Schema.builder().addLogicalTypeField("f1_enum",
enumerationType).build();
+ Row row =
+ Row.withSchema(schema)
+ .withFieldValues(ImmutableMap.of("f1_enum",
enumerationType.valueOf("zero")))
+ .build();
+ assertEquals(enumerationType.valueOf(0), row.getValue(0));
+ assertEquals(
+ enumerationType.valueOf("zero"), row.getLogicalTypeValue(0,
EnumerationType.Value.class));
+ }
}