{"action":"created","comment":{"url":"https://api.github.com/repos/prestodb/presto/pulls/comments/316897190","pull_request_review_id":278445991,"id":316897190,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDMxNjg5NzE5MA==","diff_hunk":"@@ -0,0 +1,371 @@\n+/*\n+ * Licensed under the Apache License, Version 2.0 (the \"License\");\n+ * you may not use this file except in compliance with the License.\n+ * You may obtain a copy of the License at\n+ *\n+ *     http://www.apache.org/licenses/LICENSE-2.0\n+ *\n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+package com.facebook.presto.operator;\n+\n+import com.facebook.presto.spi.block.ColumnarMap;\n+import com.facebook.presto.spi.type.TypeSerde;\n+import com.google.common.annotations.VisibleForTesting;\n+import io.airlift.slice.SliceOutput;\n+import org.openjdk.jol.info.ClassLayout;\n+\n+import java.util.Arrays;\n+import java.util.Optional;\n+\n+import static com.facebook.presto.operator.UncheckedByteArrays.setIntUnchecked;\n+import static com.facebook.presto.spi.MoreByteArrays.setInts;\n+import static io.airlift.slice.SizeOf.SIZE_OF_BYTE;\n+import static io.airlift.slice.SizeOf.SIZE_OF_INT;\n+import static io.airlift.slice.SizeOf.sizeOf;\n+import static java.lang.Math.max;\n+import static java.util.Objects.requireNonNull;\n+import static sun.misc.Unsafe.ARRAY_INT_INDEX_SCALE;\n+\n+public class MapBlockEncodingBuffers\n+        extends BlockEncodingBuffers\n+{\n+    @VisibleForTesting\n+    public static final int POSITION_SIZE = SIZE_OF_INT + SIZE_OF_BYTE;\n+\n+    private static final String NAME = \"MAP\";\n+    private static final int INSTANCE_SIZE = ClassLayout.parseClass(MapBlockEncodingBuffers.class).instanceSize();\n+\n+    private static final int HASH_MULTIPLIER = 2;\n+\n+    // The buffer for the hashtables for all incoming blocks so far\n+    private byte[] hashTablesBuffer;\n+\n+    // The address that the next hashtable entry will be written to.\n+    private int hashTableBufferIndex;\n+\n+    // If any of the incoming blocks do not contain the hashtable, noHashTables is set to true.\n+    private boolean noHashTables;\n+\n+    // The buffer for the offsets for all incoming blocks so far\n+    private byte[] offsetsBuffer;\n+\n+    // The address that the next offset value will be written to.\n+    private int offsetsBufferIndex;\n+\n+    // This array holds the condensed offsets for each position for the incoming block.\n+    private int[] offsets;\n+\n+    // The last offset in the offsets buffer\n+    private int lastOffset;\n+\n+    // This array holds the offsets into its nested raw block for each top level row.\n+    private int[] keyOffsetsOffsets;\n+    private int[] valueOffsetsOffsets;\n+\n+    // The current incoming MapBlock is converted into ColumnarMap\n+    private ColumnarMap columnarMap;\n+\n+    private final BlockEncodingBuffers keyBuffers;\n+    private final BlockEncodingBuffers valueBuffers;\n+\n+    public MapBlockEncodingBuffers(DecodedBlockNode decodedBlockNode, int initialPositionCount)\n+    {\n+        super(initialPositionCount);\n+\n+        keyBuffers = createBlockEncodingBuffers(decodedBlockNode.getChildren().get(0), initialPositionCount);\n+        valueBuffers = createBlockEncodingBuffers(decodedBlockNode.getChildren().get(1), initialPositionCount);\n+    }\n+\n+    @Override\n+    public void resetBuffers()\n+    {\n+        bufferedPositionCount = 0;\n+        offsetsBufferIndex = 0;\n+        lastOffset = 0;\n+        hashTableBufferIndex = 0;\n+        noHashTables = false;\n+        resetNullsBuffer();\n+\n+        keyBuffers.resetBuffers();\n+        valueBuffers.resetBuffers();\n+    }\n+\n+    @Override\n+    protected void setupDecodedBlockAndMapPositions(DecodedBlockNode decodedBlockNode)\n+    {\n+        requireNonNull(decodedBlockNode, \"decodedBlockNode is null\");\n+\n+        decodedBlockNode = mapPositions(decodedBlockNode);\n+        columnarMap = (ColumnarMap) decodedBlockNode.getDecodedBlock();\n+        decodedBlock = columnarMap.getNullCheckBlock();\n+\n+        populateNestedPositions();\n+\n+        keyBuffers.setupDecodedBlockAndMapPositions(decodedBlockNode.getChildren().get(0));\n+        valueBuffers.setupDecodedBlockAndMapPositions(decodedBlockNode.getChildren().get(1));\n+    }\n+\n+    @Override\n+    public void accumulateRowSizes(int[] rowSizes)\n+    {\n+        for (int i = 0; i < positionCount; i++) {\n+            rowSizes[i] += POSITION_SIZE;\n+        }\n+\n+        ensureOffsetsOffsetsCapacity(positionCount);\n+        System.arraycopy(offsets, 0, keyOffsetsOffsets, 0, positionCount + 1);\n+        System.arraycopy(offsets, 0, valueOffsetsOffsets, 0, positionCount + 1);\n+\n+        keyBuffers.accumulateRowSizes(keyOffsetsOffsets, positionCount, rowSizes);\n+        valueBuffers.accumulateRowSizes(valueOffsetsOffsets, positionCount, rowSizes);\n+    }\n+\n+    @Override\n+    protected void accumulateRowSizes(int[] offsetsOffsets, int positionCount, int[] rowSizes)\n+    {\n+        // The nested level positionCount could be 0.\n+        if (this.positionCount == 0) {\n+            return;\n+        }\n+\n+        int lastOffset = offsetsOffsets[0];\n+        for (int i = 0; i < positionCount; i++) {\n+            int offset = offsetsOffsets[i + 1];\n+            rowSizes[i] += POSITION_SIZE * (offset - lastOffset);\n+            lastOffset = offset;\n+            offsetsOffsets[i + 1] = offsets[offset];\n+        }\n+\n+        // offsetsOffsets might be modified by the next level. Save it for the valueBuffers first.\n+        ensureOffsetsOffsetsCapacity(positionCount);\n+        System.arraycopy(offsetsOffsets, 0, valueOffsetsOffsets, 0, positionCount + 1);\n+\n+        keyBuffers.accumulateRowSizes(offsetsOffsets, positionCount, rowSizes);\n+        valueBuffers.accumulateRowSizes(offsetsOffsets, positionCount, rowSizes);\n+    }\n+\n+    @Override\n+    public void setNextBatch(int positionsOffset, int batchSize)\n+    {\n+        this.positionsOffset = positionsOffset;\n+        this.batchSize = batchSize;\n+\n+        if (this.positionCount == 0) {\n+            return;\n+        }\n+\n+        int beginOffset = offsets[positionsOffset];\n+        int endOffset = offsets[positionsOffset + batchSize];\n+\n+        keyBuffers.setNextBatch(beginOffset, endOffset - beginOffset);\n+        valueBuffers.setNextBatch(beginOffset, endOffset - beginOffset);\n+    }\n+\n+    @Override\n+    public void copyValues()\n+    {\n+        if (batchSize == 0) {\n+            return;\n+        }\n+\n+        appendNulls();\n+        appendOffsets();\n+        appendHashTables();\n+\n+        keyBuffers.copyValues();\n+        valueBuffers.copyValues();\n+\n+        bufferedPositionCount += batchSize;\n+    }\n+\n+    public void serializeTo(SliceOutput output)","path":"presto-main/src/main/java/com/facebook/presto/operator/MapBlockEncodingBuffers.java","position":186,"original_position":186,"commit_id":"3990e927d6c49ec9995b97824ca01ba98108aa19","original_commit_id":"6f3fd2d26667ecc2d593d651dde6466fb4bea8d5","user":{"login":"mbasmanova","id":27965151,"node_id":"MDQ6VXNlcjI3OTY1MTUx","avatar_url":"https://avatars3.githubusercontent.com/u/27965151?v=4","gravatar_id":"","url":"https://api.github.com/users/mbasmanova","html_url":"https://github.com/mbasmanova","followers_url":"https://api.github.com/users/mbasmanova/followers","following_url":"https://api.github.com/users/mbasmanova/following{/other_user}","gists_url":"https://api.github.com/users/mbasmanova/gists{/gist_id}","starred_url":"https://api.github.com/users/mbasmanova/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbasmanova/subscriptions","organizations_url":"https://api.github.com/users/mbasmanova/orgs","repos_url":"https://api.github.com/users/mbasmanova/repos","events_url":"https://api.github.com/users/mbasmanova/events{/privacy}","received_events_url":"https://api.github.com/users/mbasmanova/received_events","type":"User","site_admin":false},"body":"add @Override","created_at":"2019-08-22T21:41:50Z","updated_at":"2019-08-22T21:44:24Z","html_url":"https://github.com/prestodb/presto/pull/13183#discussion_r316897190","pull_request_url":"https://api.github.com/repos/prestodb/presto/pulls/13183","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/prestodb/presto/pulls/comments/316897190"},"html":{"href":"https://github.com/prestodb/presto/pull/13183#discussion_r316897190"},"pull_request":{"href":"https://api.github.com/repos/prestodb/presto/pulls/13183"}}},"pull_request":{"url":"https://api.github.com/repos/prestodb/presto/pulls/13183","id":304158889,"node_id":"MDExOlB1bGxSZXF1ZXN0MzA0MTU4ODg5","html_url":"https://github.com/prestodb/presto/pull/13183","diff_url":"https://github.com/prestodb/presto/pull/13183.diff","patch_url":"https://github.com/prestodb/presto/pull/13183.patch","issue_url":"https://api.github.com/repos/prestodb/presto/issues/13183","number":13183,"state":"open","locked":false,"title":"PartitionedOutputOperator optimizations","user":{"login":"yingsu00","id":33299678,"node_id":"MDQ6VXNlcjMzMjk5Njc4","avatar_url":"https://avatars3.githubusercontent.com/u/33299678?v=4","gravatar_id":"","url":"https://api.github.com/users/yingsu00","html_url":"https://github.com/yingsu00","followers_url":"https://api.github.com/users/yingsu00/followers","following_url":"https://api.github.com/users/yingsu00/following{/other_user}","gists_url":"https://api.github.com/users/yingsu00/gists{/gist_id}","starred_url":"https://api.github.com/users/yingsu00/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yingsu00/subscriptions","organizations_url":"https://api.github.com/users/yingsu00/orgs","repos_url":"https://api.github.com/users/yingsu00/repos","events_url":"https://api.github.com/users/yingsu00/events{/privacy}","received_events_url":"https://api.github.com/users/yingsu00/received_events","type":"User","site_admin":false},"body":"Github issue #13015\r\n\r\nThe new OptimizedPartitionedOutputOperator achieves better performance by\r\nskipping block building. It appends data directly to output buffers, then wraps\r\nthese buffers into SerializedPage.\r\n\r\nTODO: \r\nPartitionedOutputOperator reports incorrect output data size #11770\r\n\r\nPrevious WIP PR: https://github.com/prestodb/presto/pull/13032","created_at":"2019-08-05T06:28:52Z","updated_at":"2019-08-22T21:44:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1d56e70533d846c5534c4e19b9a355c5be63e992","assignee":{"login":"mbasmanova","id":27965151,"node_id":"MDQ6VXNlcjI3OTY1MTUx","avatar_url":"https://avatars3.githubusercontent.com/u/27965151?v=4","gravatar_id":"","url":"https://api.github.com/users/mbasmanova","html_url":"https://github.com/mbasmanova","followers_url":"https://api.github.com/users/mbasmanova/followers","following_url":"https://api.github.com/users/mbasmanova/following{/other_user}","gists_url":"https://api.github.com/users/mbasmanova/gists{/gist_id}","starred_url":"https://api.github.com/users/mbasmanova/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbasmanova/subscriptions","organizations_url":"https://api.github.com/users/mbasmanova/orgs","repos_url":"https://api.github.com/users/mbasmanova/repos","events_url":"https://api.github.com/users/mbasmanova/events{/privacy}","received_events_url":"https://api.github.com/users/mbasmanova/received_events","type":"User","site_admin":false},"assignees":[{"login":"mbasmanova","id":27965151,"node_id":"MDQ6VXNlcjI3OTY1MTUx","avatar_url":"https://avatars3.githubusercontent.com/u/27965151?v=4","gravatar_id":"","url":"https://api.github.com/users/mbasmanova","html_url":"https://github.com/mbasmanova","followers_url":"https://api.github.com/users/mbasmanova/followers","following_url":"https://api.github.com/users/mbasmanova/following{/other_user}","gists_url":"https://api.github.com/users/mbasmanova/gists{/gist_id}","starred_url":"https://api.github.com/users/mbasmanova/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbasmanova/subscriptions","organizations_url":"https://api.github.com/users/mbasmanova/orgs","repos_url":"https://api.github.com/users/mbasmanova/repos","events_url":"https://api.github.com/users/mbasmanova/events{/privacy}","received_events_url":"https://api.github.com/users/mbasmanova/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"wenleix","id":799346,"node_id":"MDQ6VXNlcjc5OTM0Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/799346?v=4","gravatar_id":"","url":"https://api.github.com/users/wenleix","html_url":"https://github.com/wenleix","followers_url":"https://api.github.com/users/wenleix/followers","following_url":"https://api.github.com/users/wenleix/following{/other_user}","gists_url":"https://api.github.com/users/wenleix/gists{/gist_id}","starred_url":"https://api.github.com/users/wenleix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wenleix/subscriptions","organizations_url":"https://api.github.com/users/wenleix/orgs","repos_url":"https://api.github.com/users/wenleix/repos","events_url":"https://api.github.com/users/wenleix/events{/privacy}","received_events_url":"https://api.github.com/users/wenleix/received_events","type":"User","site_admin":false},{"login":"tdcmeehan","id":7980573,"node_id":"MDQ6VXNlcjc5ODA1NzM=","avatar_url":"https://avatars1.githubusercontent.com/u/7980573?v=4","gravatar_id":"","url":"https://api.github.com/users/tdcmeehan","html_url":"https://github.com/tdcmeehan","followers_url":"https://api.github.com/users/tdcmeehan/followers","following_url":"https://api.github.com/users/tdcmeehan/following{/other_user}","gists_url":"https://api.github.com/users/tdcmeehan/gists{/gist_id}","starred_url":"https://api.github.com/users/tdcmeehan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tdcmeehan/subscriptions","organizations_url":"https://api.github.com/users/tdcmeehan/orgs","repos_url":"https://api.github.com/users/tdcmeehan/repos","events_url":"https://api.github.com/users/tdcmeehan/events{/privacy}","received_events_url":"https://api.github.com/users/tdcmeehan/received_events","type":"User","site_admin":false},{"login":"oerling","id":43972559,"node_id":"MDQ6VXNlcjQzOTcyNTU5","avatar_url":"https://avatars1.githubusercontent.com/u/43972559?v=4","gravatar_id":"","url":"https://api.github.com/users/oerling","html_url":"https://github.com/oerling","followers_url":"https://api.github.com/users/oerling/followers","following_url":"https://api.github.com/users/oerling/following{/other_user}","gists_url":"https://api.github.com/users/oerling/gists{/gist_id}","starred_url":"https://api.github.com/users/oerling/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oerling/subscriptions","organizations_url":"https://api.github.com/users/oerling/orgs","repos_url":"https://api.github.com/users/oerling/repos","events_url":"https://api.github.com/users/oerling/events{/privacy}","received_events_url":"https://api.github.com/users/oerling/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":196992743,"node_id":"MDU6TGFiZWwxOTY5OTI3NDM=","url":"https://api.github.com/repos/prestodb/presto/labels/CLA%20Signed","name":"CLA Signed","color":"ededed","default":false},{"id":1211555250,"node_id":"MDU6TGFiZWwxMjExNTU1MjUw","url":"https://api.github.com/repos/prestodb/presto/labels/aria","name":"aria","color":"db5c77","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/prestodb/presto/pulls/13183/commits","review_comments_url":"https://api.github.com/repos/prestodb/presto/pulls/13183/comments","review_comment_url":"https://api.github.com/repos/prestodb/presto/pulls/comments{/number}","comments_url":"https://api.github.com/repos/prestodb/presto/issues/13183/comments","statuses_url":"https://api.github.com/repos/prestodb/presto/statuses/3990e927d6c49ec9995b97824ca01ba98108aa19","head":{"label":"yingsu00:repartition","ref":"repartition","sha":"3990e927d6c49ec9995b97824ca01ba98108aa19","user":{"login":"yingsu00","id":33299678,"node_id":"MDQ6VXNlcjMzMjk5Njc4","avatar_url":"https://avatars3.githubusercontent.com/u/33299678?v=4","gravatar_id":"","url":"https://api.github.com/users/yingsu00","html_url":"https://github.com/yingsu00","followers_url":"https://api.github.com/users/yingsu00/followers","following_url":"https://api.github.com/users/yingsu00/following{/other_user}","gists_url":"https://api.github.com/users/yingsu00/gists{/gist_id}","starred_url":"https://api.github.com/users/yingsu00/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yingsu00/subscriptions","organizations_url":"https://api.github.com/users/yingsu00/orgs","repos_url":"https://api.github.com/users/yingsu00/repos","events_url":"https://api.github.com/users/yingsu00/events{/privacy}","received_events_url":"https://api.github.com/users/yingsu00/received_events","type":"User","site_admin":false},"repo":{"id":111038439,"node_id":"MDEwOlJlcG9zaXRvcnkxMTEwMzg0Mzk=","name":"presto","full_name":"yingsu00/presto","private":false,"owner":{"login":"yingsu00","id":33299678,"node_id":"MDQ6VXNlcjMzMjk5Njc4","avatar_url":"https://avatars3.githubusercontent.com/u/33299678?v=4","gravatar_id":"","url":"https://api.github.com/users/yingsu00","html_url":"https://github.com/yingsu00","followers_url":"https://api.github.com/users/yingsu00/followers","following_url":"https://api.github.com/users/yingsu00/following{/other_user}","gists_url":"https://api.github.com/users/yingsu00/gists{/gist_id}","starred_url":"https://api.github.com/users/yingsu00/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yingsu00/subscriptions","organizations_url":"https://api.github.com/users/yingsu00/orgs","repos_url":"https://api.github.com/users/yingsu00/repos","events_url":"https://api.github.com/users/yingsu00/events{/privacy}","received_events_url":"https://api.github.com/users/yingsu00/received_events","type":"User","site_admin":false},"html_url":"https://github.com/yingsu00/presto","description":"Distributed SQL query engine for big data","fork":true,"url":"https://api.github.com/repos/yingsu00/presto","forks_url":"https://api.github.com/repos/yingsu00/presto/forks","keys_url":"https://api.github.com/repos/yingsu00/presto/keys{/key_id}","collaborators_url":"https://api.github.com/repos/yingsu00/presto/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/yingsu00/presto/teams","hooks_url":"https://api.github.com/repos/yingsu00/presto/hooks","issue_events_url":"https://api.github.com/repos/yingsu00/presto/issues/events{/number}","events_url":"https://api.github.com/repos/yingsu00/presto/events","assignees_url":"https://api.github.com/repos/yingsu00/presto/assignees{/user}","branches_url":"https://api.github.com/repos/yingsu00/presto/branches{/branch}","tags_url":"https://api.github.com/repos/yingsu00/presto/tags","blobs_url":"https://api.github.com/repos/yingsu00/presto/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/yingsu00/presto/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/yingsu00/presto/git/refs{/sha}","trees_url":"https://api.github.com/repos/yingsu00/presto/git/trees{/sha}","statuses_url":"https://api.github.com/repos/yingsu00/presto/statuses/{sha}","languages_url":"https://api.github.com/repos/yingsu00/presto/languages","stargazers_url":"https://api.github.com/repos/yingsu00/presto/stargazers","contributors_url":"https://api.github.com/repos/yingsu00/presto/contributors","subscribers_url":"https://api.github.com/repos/yingsu00/presto/subscribers","subscription_url":"https://api.github.com/repos/yingsu00/presto/subscription","commits_url":"https://api.github.com/repos/yingsu00/presto/commits{/sha}","git_commits_url":"https://api.github.com/repos/yingsu00/presto/git/commits{/sha}","comments_url":"https://api.github.com/repos/yingsu00/presto/comments{/number}","issue_comment_url":"https://api.github.com/repos/yingsu00/presto/issues/comments{/number}","contents_url":"https://api.github.com/repos/yingsu00/presto/contents/{+path}","compare_url":"https://api.github.com/repos/yingsu00/presto/compare/{base}...{head}","merges_url":"https://api.github.com/repos/yingsu00/presto/merges","archive_url":"https://api.github.com/repos/yingsu00/presto/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/yingsu00/presto/downloads","issues_url":"https://api.github.com/repos/yingsu00/presto/issues{/number}","pulls_url":"https://api.github.com/repos/yingsu00/presto/pulls{/number}","milestones_url":"https://api.github.com/repos/yingsu00/presto/milestones{/number}","notifications_url":"https://api.github.com/repos/yingsu00/presto/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/yingsu00/presto/labels{/name}","releases_url":"https://api.github.com/repos/yingsu00/presto/releases{/id}","deployments_url":"https://api.github.com/repos/yingsu00/presto/deployments","created_at":"2017-11-17T00:37:10Z","updated_at":"2018-11-08T04:00:26Z","pushed_at":"2019-08-20T17:40:52Z","git_url":"git://github.com/yingsu00/presto.git","ssh_url":"git@github.com:yingsu00/presto.git","clone_url":"https://github.com/yingsu00/presto.git","svn_url":"https://github.com/yingsu00/presto","homepage":"https://prestodb.io","size":116290,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"prestodb:master","ref":"master","sha":"3f04c7f47e4c9ef6a60ea47110cbeaa195ad94a9","user":{"login":"prestodb","id":6882181,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY4ODIxODE=","avatar_url":"https://avatars0.githubusercontent.com/u/6882181?v=4","gravatar_id":"","url":"https://api.github.com/users/prestodb","html_url":"https://github.com/prestodb","followers_url":"https://api.github.com/users/prestodb/followers","following_url":"https://api.github.com/users/prestodb/following{/other_user}","gists_url":"https://api.github.com/users/prestodb/gists{/gist_id}","starred_url":"https://api.github.com/users/prestodb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prestodb/subscriptions","organizations_url":"https://api.github.com/users/prestodb/orgs","repos_url":"https://api.github.com/users/prestodb/repos","events_url":"https://api.github.com/users/prestodb/events{/privacy}","received_events_url":"https://api.github.com/users/prestodb/received_events","type":"Organization","site_admin":false},"repo":{"id":5349565,"node_id":"MDEwOlJlcG9zaXRvcnk1MzQ5NTY1","name":"presto","full_name":"prestodb/presto","private":false,"owner":{"login":"prestodb","id":6882181,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY4ODIxODE=","avatar_url":"https://avatars0.githubusercontent.com/u/6882181?v=4","gravatar_id":"","url":"https://api.github.com/users/prestodb","html_url":"https://github.com/prestodb","followers_url":"https://api.github.com/users/prestodb/followers","following_url":"https://api.github.com/users/prestodb/following{/other_user}","gists_url":"https://api.github.com/users/prestodb/gists{/gist_id}","starred_url":"https://api.github.com/users/prestodb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prestodb/subscriptions","organizations_url":"https://api.github.com/users/prestodb/orgs","repos_url":"https://api.github.com/users/prestodb/repos","events_url":"https://api.github.com/users/prestodb/events{/privacy}","received_events_url":"https://api.github.com/users/prestodb/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/prestodb/presto","description":"The official home of the Presto distributed SQL query engine for big data","fork":false,"url":"https://api.github.com/repos/prestodb/presto","forks_url":"https://api.github.com/repos/prestodb/presto/forks","keys_url":"https://api.github.com/repos/prestodb/presto/keys{/key_id}","collaborators_url":"https://api.github.com/repos/prestodb/presto/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/prestodb/presto/teams","hooks_url":"https://api.github.com/repos/prestodb/presto/hooks","issue_events_url":"https://api.github.com/repos/prestodb/presto/issues/events{/number}","events_url":"https://api.github.com/repos/prestodb/presto/events","assignees_url":"https://api.github.com/repos/prestodb/presto/assignees{/user}","branches_url":"https://api.github.com/repos/prestodb/presto/branches{/branch}","tags_url":"https://api.github.com/repos/prestodb/presto/tags","blobs_url":"https://api.github.com/repos/prestodb/presto/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/prestodb/presto/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/prestodb/presto/git/refs{/sha}","trees_url":"https://api.github.com/repos/prestodb/presto/git/trees{/sha}","statuses_url":"https://api.github.com/repos/prestodb/presto/statuses/{sha}","languages_url":"https://api.github.com/repos/prestodb/presto/languages","stargazers_url":"https://api.github.com/repos/prestodb/presto/stargazers","contributors_url":"https://api.github.com/repos/prestodb/presto/contributors","subscribers_url":"https://api.github.com/repos/prestodb/presto/subscribers","subscription_url":"https://api.github.com/repos/prestodb/presto/subscription","commits_url":"https://api.github.com/repos/prestodb/presto/commits{/sha}","git_commits_url":"https://api.github.com/repos/prestodb/presto/git/commits{/sha}","comments_url":"https://api.github.com/repos/prestodb/presto/comments{/number}","issue_comment_url":"https://api.github.com/repos/prestodb/presto/issues/comments{/number}","contents_url":"https://api.github.com/repos/prestodb/presto/contents/{+path}","compare_url":"https://api.github.com/repos/prestodb/presto/compare/{base}...{head}","merges_url":"https://api.github.com/repos/prestodb/presto/merges","archive_url":"https://api.github.com/repos/prestodb/presto/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/prestodb/presto/downloads","issues_url":"https://api.github.com/repos/prestodb/presto/issues{/number}","pulls_url":"https://api.github.com/repos/prestodb/presto/pulls{/number}","milestones_url":"https://api.github.com/repos/prestodb/presto/milestones{/number}","notifications_url":"https://api.github.com/repos/prestodb/presto/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/prestodb/presto/labels{/name}","releases_url":"https://api.github.com/repos/prestodb/presto/releases{/id}","deployments_url":"https://api.github.com/repos/prestodb/presto/deployments","created_at":"2012-08-09T01:03:37Z","updated_at":"2019-08-22T21:27:18Z","pushed_at":"2019-08-22T21:41:36Z","git_url":"git://github.com/prestodb/presto.git","ssh_url":"git@github.com:prestodb/presto.git","clone_url":"https://github.com/prestodb/presto.git","svn_url":"https://github.com/prestodb/presto","homepage":"http://prestodb.github.io","size":116302,"stargazers_count":9489,"watchers_count":9489,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3234,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":978,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":3234,"open_issues":978,"watchers":9489,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/prestodb/presto/pulls/13183"},"html":{"href":"https://github.com/prestodb/presto/pull/13183"},"issue":{"href":"https://api.github.com/repos/prestodb/presto/issues/13183"},"comments":{"href":"https://api.github.com/repos/prestodb/presto/issues/13183/comments"},"review_comments":{"href":"https://api.github.com/repos/prestodb/presto/pulls/13183/comments"},"review_comment":{"href":"https://api.github.com/repos/prestodb/presto/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/prestodb/presto/pulls/13183/commits"},"statuses":{"href":"https://api.github.com/repos/prestodb/presto/statuses/3990e927d6c49ec9995b97824ca01ba98108aa19"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"mbasmanova"}}