{"action":"created","issue":{"url":"https://api.github.com/repos/apache/spark/issues/6959","labels_url":"https://api.github.com/repos/apache/spark/issues/6959/labels{/name}","comments_url":"https://api.github.com/repos/apache/spark/issues/6959/comments","events_url":"https://api.github.com/repos/apache/spark/issues/6959/events","html_url":"https://github.com/apache/spark/pull/6959","id":90469213,"number":6959,"title":"[SPARK-8579] [SQL] support arbitrary object in UnsafeRow","user":{"login":"davies","id":40902,"avatar_url":"https://avatars.githubusercontent.com/u/40902?v=3","gravatar_id":"","url":"https://api.github.com/users/davies","html_url":"https://github.com/davies","followers_url":"https://api.github.com/users/davies/followers","following_url":"https://api.github.com/users/davies/following{/other_user}","gists_url":"https://api.github.com/users/davies/gists{/gist_id}","starred_url":"https://api.github.com/users/davies/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davies/subscriptions","organizations_url":"https://api.github.com/users/davies/orgs","repos_url":"https://api.github.com/users/davies/repos","events_url":"https://api.github.com/users/davies/events{/privacy}","received_events_url":"https://api.github.com/users/davies/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":45,"created_at":"2015-06-23T19:19:40Z","updated_at":"2015-06-28T15:12:11Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apache/spark/pulls/6959","html_url":"https://github.com/apache/spark/pull/6959","diff_url":"https://github.com/apache/spark/pull/6959.diff","patch_url":"https://github.com/apache/spark/pull/6959.patch"},"body":"This PR brings arbitrary object support in UnsafeRow (both in grouping key and aggregation buffer).\r\n\r\nTwo object pools will be created to hold those non-primitive objects, and put the index of them into UnsafeRow. In order to compare the grouping key as bytes, the objects in key will be stored in a unique object pool, to make sure same objects will have same index (used as hashCode).\r\n\r\nFor StringType and BinaryType, we still put them as var-length in UnsafeRow when initializing for better performance. But for update, they will be an object inside object pools (there will be some garbages left in the buffer).\r\n\r\nBTW: Will create a JIRA once issue.apache.org is available.\r\n\r\ncc @JoshRosen @rxin "},"comment":{"url":"https://api.github.com/repos/apache/spark/issues/comments/116289386","html_url":"https://github.com/apache/spark/pull/6959#issuecomment-116289386","issue_url":"https://api.github.com/repos/apache/spark/issues/6959","id":116289386,"user":{"login":"AmplabJenkins","id":4031291,"avatar_url":"https://avatars.githubusercontent.com/u/4031291?v=3","gravatar_id":"","url":"https://api.github.com/users/AmplabJenkins","html_url":"https://github.com/AmplabJenkins","followers_url":"https://api.github.com/users/AmplabJenkins/followers","following_url":"https://api.github.com/users/AmplabJenkins/following{/other_user}","gists_url":"https://api.github.com/users/AmplabJenkins/gists{/gist_id}","starred_url":"https://api.github.com/users/AmplabJenkins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AmplabJenkins/subscriptions","organizations_url":"https://api.github.com/users/AmplabJenkins/orgs","repos_url":"https://api.github.com/users/AmplabJenkins/repos","events_url":"https://api.github.com/users/AmplabJenkins/events{/privacy}","received_events_url":"https://api.github.com/users/AmplabJenkins/received_events","type":"User","site_admin":false},"created_at":"2015-06-28T15:12:11Z","updated_at":"2015-06-28T15:12:11Z","body":" Merged build triggered."}}