{"action":"created","issue":{"url":"https://api.github.com/repos/apache/spark/issues/15575","repository_url":"https://api.github.com/repos/apache/spark","labels_url":"https://api.github.com/repos/apache/spark/issues/15575/labels{/name}","comments_url":"https://api.github.com/repos/apache/spark/issues/15575/comments","events_url":"https://api.github.com/repos/apache/spark/issues/15575/events","html_url":"https://github.com/apache/spark/pull/15575","id":184372665,"number":15575,"title":"[SPARK-18038] [SQL] Move output partitioning definition from UnaryNodeExec to its children","user":{"login":"tejasapatil","id":3230057,"avatar_url":"https://avatars.githubusercontent.com/u/3230057?v=3","gravatar_id":"","url":"https://api.github.com/users/tejasapatil","html_url":"https://github.com/tejasapatil","followers_url":"https://api.github.com/users/tejasapatil/followers","following_url":"https://api.github.com/users/tejasapatil/following{/other_user}","gists_url":"https://api.github.com/users/tejasapatil/gists{/gist_id}","starred_url":"https://api.github.com/users/tejasapatil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tejasapatil/subscriptions","organizations_url":"https://api.github.com/users/tejasapatil/orgs","repos_url":"https://api.github.com/users/tejasapatil/repos","events_url":"https://api.github.com/users/tejasapatil/events{/privacy}","received_events_url":"https://api.github.com/users/tejasapatil/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":31,"created_at":"2016-10-21T00:26:14Z","updated_at":"2016-10-23T07:22:46Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apache/spark/pulls/15575","html_url":"https://github.com/apache/spark/pull/15575","diff_url":"https://github.com/apache/spark/pull/15575.diff","patch_url":"https://github.com/apache/spark/pull/15575.patch"},"body":"## What changes were proposed in this pull request?\r\n\r\nJira : https://issues.apache.org/jira/browse/SPARK-18038\r\n\r\nThis was a suggestion by @rxin over one of the dev list discussion : http://apache-spark-developers-list.1001551.n3.nabble.com/Project-not-preserving-child-partitioning-td19417.html\r\n\r\nHis words:\r\n\r\n>> It would be better (safer) to move the output partitioning definition into each of the operator and remove it from UnaryExecNode.\r\n\r\nWith this PR, following is the output partitioning and ordering for all the impls of `UnaryExecNode`.\r\n\r\nUnaryExecNode's impl | outputPartitioning | outputOrdering | comment\r\n------------ | ------------- | ------------ | ------------\r\nAppendColumnsExec | child's | Nil | child's ordering can be used\r\nAppendColumnsWithObjectExec | child's | Nil | child's ordering can be used\r\nBroadcastExchangeExec | BroadcastPartitioning | Nil | -\r\nCoalesceExec | UnknownPartitioning | Nil | -\r\nCollectLimitExec | SinglePartition | Nil | -\r\nDebugExec | child's | Nil | child's ordering can be used\r\nDeserializeToObjectExec | child's | Nil | child's ordering can be used\r\nExpandExec | UnknownPartitioning | Nil | -\r\nFilterExec | child's | child's | -\r\nFlatMapGroupsInRExec | child's | Nil | child's ordering can be used\r\nGenerateExec | child's | Nil | need to dig more\r\nGlobalLimitExec | child's | child's | -\r\nHashAggregateExec | child's | Nil | -\r\nInputAdapter | child's | child's | -\r\nInsertIntoHiveTable | child's | Nil | terminal node, doesn't need partitioning\r\nLocalLimitExec | child's | child's | -\r\nMapElementsExec | child's | child's | -\r\nMapGroupsExec | child's | Nil | child's ordering can be used\r\nMapPartitionsExec | child's | Nil | child's ordering can be used\r\nProjectExec | child's | child's | -\r\nSampleExec | child's | Nil | child's ordering can be used\r\nScriptTransformation | child's | Nil | child's ordering can be used\r\nSerializeFromObjectExec | child's | Nil | child's ordering can be used\r\nShuffleExchange | custom | Nil | -\r\nSortAggregateExec | child's | sort over grouped exprs | -\r\nSortExec | child's | custom | -\r\nStateStoreRestoreExec  | child's | Nil | child's ordering can be used\r\nStateStoreSaveExec | child's | Nil | child's ordering can be used\r\nSubqueryExec | child's | child's | -\r\nTakeOrderedAndProjectExec | SinglePartition | custom | -\r\nWholeStageCodegenExec | child's | child's | -\r\nWindowExec | child's | child's | -\r\n\r\n## How was this patch tested?\r\n\r\nThis does NOT change any existing functionality so relying on existing tests"},"comment":{"url":"https://api.github.com/repos/apache/spark/issues/comments/255573729","html_url":"https://github.com/apache/spark/pull/15575#issuecomment-255573729","issue_url":"https://api.github.com/repos/apache/spark/issues/15575","id":255573729,"user":{"login":"rxin","id":323388,"avatar_url":"https://avatars.githubusercontent.com/u/323388?v=3","gravatar_id":"","url":"https://api.github.com/users/rxin","html_url":"https://github.com/rxin","followers_url":"https://api.github.com/users/rxin/followers","following_url":"https://api.github.com/users/rxin/following{/other_user}","gists_url":"https://api.github.com/users/rxin/gists{/gist_id}","starred_url":"https://api.github.com/users/rxin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rxin/subscriptions","organizations_url":"https://api.github.com/users/rxin/orgs","repos_url":"https://api.github.com/users/rxin/repos","events_url":"https://api.github.com/users/rxin/events{/privacy}","received_events_url":"https://api.github.com/users/rxin/received_events","type":"User","site_admin":false},"created_at":"2016-10-23T07:22:46Z","updated_at":"2016-10-23T07:22:46Z","body":"LGTM too. Unforunately my internet sucks (on a plane) and I can't merge this right now.\r\n"}}
{"actor":{"display_login":"rxin"}}