[ https://issues.apache.org/jira/browse/BEAM-9331?focusedWorklogId=391466&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-391466 ]
ASF GitHub Bot logged work on BEAM-9331: ---------------------------------------- Author: ASF GitHub Bot Created on: 24/Feb/20 01:49 Start Date: 24/Feb/20 01:49 Worklog Time Spent: 10m Work Description: reuvenlax commented on pull request #10883: [BEAM-9331] Add better Row builders URL: https://github.com/apache/beam/pull/10883#discussion_r383062953 ########## File path: sdks/java/core/src/test/java/org/apache/beam/sdk/values/RowTest.java ########## @@ -477,6 +477,172 @@ public void testCreateMapWithRowValue() { assertEquals(data, row.getMap("map")); } + @Test Review comment: The fact that getValues returns the underlying objects I think is in line with many other things. e.g. ImmutableList in Java still returns the underlying objects, so you can mutate them. The onus is on the user not to do that. In particular, the elements of a PCollection are not allowed to be mutated in a ParDo (and the main point of the Row object is to be used in ParDos). The DirectRunner has a mutability checker that will fail your test if you mutate the input elements. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking ------------------- Worklog Id: (was: 391466) Time Spent: 3h 10m (was: 3h) > The Row object needs better builders > ------------------------------------ > > Key: BEAM-9331 > URL: https://issues.apache.org/jira/browse/BEAM-9331 > Project: Beam > Issue Type: Sub-task > Components: sdk-java-core > Reporter: Reuven Lax > Priority: Major > Time Spent: 3h 10m > Remaining Estimate: 0h > > Users should be able to build a Row object by specifying field names. Desired > syntax: > > Row.withSchema(schema) > .withFieldName("field1", "value) > .withFieldName("field2.field3", value) > .build() > > Users should also have a builder that allows taking an existing row and > changing specific fields. -- This message was sent by Atlassian Jira (v8.3.4#803005)