{"action":"created","issue":{"url":"https://api.github.com/repos/apache/beam/issues/9247","repository_url":"https://api.github.com/repos/apache/beam","labels_url":"https://api.github.com/repos/apache/beam/issues/9247/labels{/name}","comments_url":"https://api.github.com/repos/apache/beam/issues/9247/comments","events_url":"https://api.github.com/repos/apache/beam/issues/9247/events","html_url":"https://github.com/apache/beam/pull/9247","id":476865964,"node_id":"MDExOlB1bGxSZXF1ZXN0MzA0MzA3MTgz","number":9247,"title":"[BEAM-7829] Add schema names when converting with AvroUtils.toAvroSchema","user":{"login":"RyanSkraba","id":7744819,"node_id":"MDQ6VXNlcjc3NDQ4MTk=","avatar_url":"https://avatars0.githubusercontent.com/u/7744819?v=4","gravatar_id":"","url":"https://api.github.com/users/RyanSkraba","html_url":"https://github.com/RyanSkraba","followers_url":"https://api.github.com/users/RyanSkraba/followers","following_url":"https://api.github.com/users/RyanSkraba/following{/other_user}","gists_url":"https://api.github.com/users/RyanSkraba/gists{/gist_id}","starred_url":"https://api.github.com/users/RyanSkraba/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RyanSkraba/subscriptions","organizations_url":"https://api.github.com/users/RyanSkraba/orgs","repos_url":"https://api.github.com/users/RyanSkraba/repos","events_url":"https://api.github.com/users/RyanSkraba/events{/privacy}","received_events_url":"https://api.github.com/users/RyanSkraba/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2019-08-05T13:40:30Z","updated_at":"2019-08-28T13:22:10Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/apache/beam/pulls/9247","html_url":"https://github.com/apache/beam/pull/9247","diff_url":"https://github.com/apache/beam/pull/9247.diff","patch_url":"https://github.com/apache/beam/pull/9247.patch"},"body":"There's a subtle problem with unnamed records in Avro and Java -- they can be used to correctly serialize/deserialize binary data as long as nobody counts on serializing/deserializing the actual Avro schema as a JSON string.\r\n\r\nThis *can* work if both reader and writer can infer the schema from another source (like the Beam Schema), but is certain to break when passing the schema or record to a transform that expects the schema to meet the Avro specification.\r\n\r\nMore discussion at: https://issues.apache.org/jira/browse/AVRO-2492\r\n\r\nThis change ensures that no anonymous Avro records will be created as part of translating a Beam schema.\r\n\r\n*N.B.* Credit goes to @iemejia for this implementation, I just cleaned up the tests.\r\n\r\n*N.B.2* I get _some_ minor credit :D  There were some bugs with potential namespace collisions.  The internal implementation here should be very close to what Spark does with auto-generated Avro schemas.\r\n\r\nR: @reuvenlax @kanterov \r\n------------------------\r\n\r\nThank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:\r\n\r\n - [x] [**Choose reviewer(s)**](https://beam.apache.org/contribute/#make-your-change) and mention them in a comment (`R: @username`).\r\n - [X] Format the pull request title like `[BEAM-XXX] Fixes bug in ApproximateQuantiles`, where you replace `BEAM-XXX` with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.\r\n - [ ] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).\r\n\r\nPost-Commit Tests Status (on master branch)\r\n------------------------------------------------------------------------------------------------\r\n\r\nLang | SDK | Apex | Dataflow | Flink | Gearpump | Samza | Spark\r\n--- | --- | --- | --- | --- | --- | --- | ---\r\nGo | [![Build Status](https://builds.apache.org/job/beam_PostCommit_Go/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Go/lastCompletedBuild/) | --- | --- | [![Build Status](https://builds.apache.org/job/beam_PostCommit_Go_VR_Flink/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Go_VR_Flink/lastCompletedBuild/) | --- | --- | [![Build Status](https://builds.apache.org/job/beam_PostCommit_Go_VR_Spark/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Go_VR_Spark/lastCompletedBuild/)\r\nJava | [![Build Status](https://builds.apache.org/job/beam_PostCommit_Java/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Java/lastCompletedBuild/) | [![Build Status](https://builds.apache.org/job/beam_PostCommit_Java_ValidatesRunner_Apex/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Java_ValidatesRunner_Apex/lastCompletedBuild/) | [![Build Status](https://builds.apache.org/job/beam_PostCommit_Java_ValidatesRunner_Dataflow/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Java_ValidatesRunner_Dataflow/lastCompletedBuild/) | [![Build Status](https://builds.apache.org/job/beam_PostCommit_Java_ValidatesRunner_Flink/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Java_ValidatesRunner_Flink/lastCompletedBuild/)<br>[![Build Status](https://builds.apache.org/job/beam_PostCommit_Java_PVR_Flink_Batch/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Java_PVR_Flink_Batch/lastCompletedBuild/)<br>[![Build Status](https://builds.apache.org/job/beam_PostCommit_Java_PVR_Flink_Streaming/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Java_PVR_Flink_Streaming/lastCompletedBuild/) | [![Build Status](https://builds.apache.org/job/beam_PostCommit_Java_ValidatesRunner_Gearpump/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Java_ValidatesRunner_Gearpump/lastCompletedBuild/) | [![Build Status](https://builds.apache.org/job/beam_PostCommit_Java_ValidatesRunner_Samza/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Java_ValidatesRunner_Samza/lastCompletedBuild/) | [![Build Status](https://builds.apache.org/job/beam_PostCommit_Java_ValidatesRunner_Spark/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Java_ValidatesRunner_Spark/lastCompletedBuild/)<br>[![Build Status](https://builds.apache.org/job/beam_PostCommit_Java_PVR_Spark_Batch/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Java_PVR_Spark_Batch/lastCompletedBuild/)\r\nPython | [![Build Status](https://builds.apache.org/job/beam_PostCommit_Python2/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Python2/lastCompletedBuild/)<br>[![Build Status](https://builds.apache.org/job/beam_PostCommit_Python35/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Python35/lastCompletedBuild/)<br>[![Build Status](https://builds.apache.org/job/beam_PostCommit_Python36/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Python36/lastCompletedBuild/)<br>[![Build Status](https://builds.apache.org/job/beam_PostCommit_Python37/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Python37/lastCompletedBuild/) | --- | [![Build Status](https://builds.apache.org/job/beam_PostCommit_Py_VR_Dataflow/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Py_VR_Dataflow/lastCompletedBuild/)<br>[![Build Status](https://builds.apache.org/job/beam_PostCommit_Py_ValCont/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Py_ValCont/lastCompletedBuild/) | [![Build Status](https://builds.apache.org/job/beam_PreCommit_Python_PVR_Flink_Cron/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PreCommit_Python_PVR_Flink_Cron/lastCompletedBuild/) | --- | --- | [![Build Status](https://builds.apache.org/job/beam_PostCommit_Python_VR_Spark/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PostCommit_Python_VR_Spark/lastCompletedBuild/)\r\n\r\nPre-Commit Tests Status (on master branch)\r\n------------------------------------------------------------------------------------------------\r\n\r\n--- |Java | Python | Go | Website\r\n--- | --- | --- | --- | ---\r\nNon-portable | [![Build Status](https://builds.apache.org/job/beam_PreCommit_Java_Cron/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PreCommit_Java_Cron/lastCompletedBuild/) | [![Build Status](https://builds.apache.org/job/beam_PreCommit_Python_Cron/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PreCommit_Python_Cron/lastCompletedBuild/) | [![Build Status](https://builds.apache.org/job/beam_PreCommit_Go_Cron/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PreCommit_Go_Cron/lastCompletedBuild/) | [![Build Status](https://builds.apache.org/job/beam_PreCommit_Website_Cron/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PreCommit_Website_Cron/lastCompletedBuild/) \r\nPortable | --- | [![Build Status](https://builds.apache.org/job/beam_PreCommit_Portable_Python_Cron/lastCompletedBuild/badge/icon)](https://builds.apache.org/job/beam_PreCommit_Portable_Python_Cron/lastCompletedBuild/) | --- | ---\r\n\r\nSee [.test-infra/jenkins/README](https://github.com/apache/beam/blob/master/.test-infra/jenkins/README.md) for trigger phrase, status and link of all Jenkins jobs.\r\n"},"comment":{"url":"https://api.github.com/repos/apache/beam/issues/comments/525742733","html_url":"https://github.com/apache/beam/pull/9247#issuecomment-525742733","issue_url":"https://api.github.com/repos/apache/beam/issues/9247","id":525742733,"node_id":"MDEyOklzc3VlQ29tbWVudDUyNTc0MjczMw==","user":{"login":"kanterov","id":467927,"node_id":"MDQ6VXNlcjQ2NzkyNw==","avatar_url":"https://avatars2.githubusercontent.com/u/467927?v=4","gravatar_id":"","url":"https://api.github.com/users/kanterov","html_url":"https://github.com/kanterov","followers_url":"https://api.github.com/users/kanterov/followers","following_url":"https://api.github.com/users/kanterov/following{/other_user}","gists_url":"https://api.github.com/users/kanterov/gists{/gist_id}","starred_url":"https://api.github.com/users/kanterov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kanterov/subscriptions","organizations_url":"https://api.github.com/users/kanterov/orgs","repos_url":"https://api.github.com/users/kanterov/repos","events_url":"https://api.github.com/users/kanterov/events{/privacy}","received_events_url":"https://api.github.com/users/kanterov/received_events","type":"User","site_admin":false},"created_at":"2019-08-28T13:22:10Z","updated_at":"2019-08-28T13:22:10Z","author_association":"MEMBER","body":"I will wait for master build becoming green, and then we can merge it."}}
{"actor":{"display_login":"kanterov"}}