{"action":"created","comment":{"url":"https://api.github.com/repos/druid-io/druid/pulls/comments/167308300","pull_request_review_id":95516915,"id":167308300,"diff_hunk":"@@ -97,19 +99,28 @@\n       return String.class;\n     }\n \n+    /**\n+     * numBytes will be -1 for null values.\n+     */\n     @Override\n+    @Nullable\n     public String fromByteBuffer(final ByteBuffer buffer, final int numBytes)\n     {\n-      return StringUtils.fromUtf8(buffer, numBytes);\n+      // When SQL Compatibility is ON\n+      //   1. numBytes will be -1 for null value, return value will be null\n+      //   2. numBytes will be 0 for empty string, return value will be empty string\n+      // For Legacy null handling when nulls and empty string are considered same -\n+      //     numBytes will be 0 for both empty string and null and return value will be null for both.","path":"processing/src/main/java/io/druid/segment/data/GenericIndexed.java","position":null,"original_position":60,"commit_id":"8fc716ec44233482b9619ffa19ed36accf1bfc0a","original_commit_id":"c719c491e2b0e0567b3f39f067c16fc1680a38e4","user":{"login":"nishantmonu51","id":5023786,"avatar_url":"https://avatars3.githubusercontent.com/u/5023786?v=4","gravatar_id":"","url":"https://api.github.com/users/nishantmonu51","html_url":"https://github.com/nishantmonu51","followers_url":"https://api.github.com/users/nishantmonu51/followers","following_url":"https://api.github.com/users/nishantmonu51/following{/other_user}","gists_url":"https://api.github.com/users/nishantmonu51/gists{/gist_id}","starred_url":"https://api.github.com/users/nishantmonu51/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nishantmonu51/subscriptions","organizations_url":"https://api.github.com/users/nishantmonu51/orgs","repos_url":"https://api.github.com/users/nishantmonu51/repos","events_url":"https://api.github.com/users/nishantmonu51/events{/privacy}","received_events_url":"https://api.github.com/users/nishantmonu51/received_events","type":"User","site_admin":false},"body":"done.","created_at":"2018-02-09T18:28:30Z","updated_at":"2018-02-09T18:28:30Z","html_url":"https://github.com/druid-io/druid/pull/5278#discussion_r167308300","pull_request_url":"https://api.github.com/repos/druid-io/druid/pulls/5278","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/druid-io/druid/pulls/comments/167308300"},"html":{"href":"https://github.com/druid-io/druid/pull/5278#discussion_r167308300"},"pull_request":{"href":"https://api.github.com/repos/druid-io/druid/pulls/5278"}},"in_reply_to_id":166703047},"pull_request":{"url":"https://api.github.com/repos/druid-io/druid/pulls/5278","id":164385965,"html_url":"https://github.com/druid-io/druid/pull/5278","diff_url":"https://github.com/druid-io/druid/pull/5278.diff","patch_url":"https://github.com/druid-io/druid/pull/5278.patch","issue_url":"https://api.github.com/repos/druid-io/druid/issues/5278","number":5278,"state":"open","locked":false,"title":"SQL compatible Null Handling Part - Expressions and Storage Changes","user":{"login":"nishantmonu51","id":5023786,"avatar_url":"https://avatars3.githubusercontent.com/u/5023786?v=4","gravatar_id":"","url":"https://api.github.com/users/nishantmonu51","html_url":"https://github.com/nishantmonu51","followers_url":"https://api.github.com/users/nishantmonu51/followers","following_url":"https://api.github.com/users/nishantmonu51/following{/other_user}","gists_url":"https://api.github.com/users/nishantmonu51/gists{/gist_id}","starred_url":"https://api.github.com/users/nishantmonu51/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nishantmonu51/subscriptions","organizations_url":"https://api.github.com/users/nishantmonu51/orgs","repos_url":"https://api.github.com/users/nishantmonu51/repos","events_url":"https://api.github.com/users/nishantmonu51/events{/privacy}","received_events_url":"https://api.github.com/users/nishantmonu51/received_events","type":"User","site_admin":false},"body":"Part 1 of Null Handling Changes -  https://github.com/druid-io/druid/pull/4754 which contains changes in Expressions and Storage Layer.\r\n\r\nThis PR contains changes to improve handling of null values in druid by treating nulls as missing values which don’t actually exist. This will make it more compatible to SQL standard and help with integration with other existing BI systems which support ODBC/JDBC. (Detailed description in proposal - https://github.com/druid-io/druid/issues/4349)\r\n\r\nChanges include - \r\n\r\n## New Configuration \r\n\r\n* New configuration - **_\"druid.generic.useDefaultValueForNull\"_** in class NullValueHandlingConfig default to true for preserving old behavior.\r\n* NullHandling - this a helper class with static methods for handling optional nullToEmpty / emptyToNull conversions for switching between old/new behavior. Without this static helper, we would need to inject NullValueHandlingConfig almost everywhere throughout the querying and indexing layer. \r\n\r\n## Storage Layer - \r\n\r\n* GenericIndexed - Added ability to distinguish between null/empty bytes. the value buffer for GenericIndexed contains element size followed by  the bytes, for null values size is written as -1 and for empty bytes size is 0. \r\n* String Columns - the dictionary is stores as a genericIndexed, which now can contain null value. An inverted index is created with the id assigned to null value. Null and empty strings will get different id's in dictionary encoding.\r\n* Numeric Columns - The column is serialized as primitive objects of long/float/double type, a nullRowsBitmap is also stored which is used to distinguish rows having 0 and null values.  \r\n* Complex columns - Complex columns use genericIndexed internally for storage, so supported nulls in genericIndexed make this work. the ObjectStrategy can choose to return null objects when deserializing data. \r\n\r\n## Indexing Layer - \r\n\r\n* Row - instead of returning primitive types return Float/Long/Double objects so that indexer can distinguish between null and 0 values.\r\n* StringIndexer,DoubleIndexer,LongIndexer,FloatIndexer changed to distinguish between null and empty values. \r\n* ColumnValueSelector - added new method isNull() to check whether a value is null or not while aggregating. this is mainly done in order to avoid boxing/unboxing from primitive values while doing segment scans. \r\n\r\n## Expressions Null Handling\r\n* For general calculations like sum, full expression is be considered as null if any of the components is null. \r\n* StringLiteral now supports null and and expressions containing non-quoted null is parsed as StringLiteral with null \r\n* Specifying a default value for null is supported by the use of NVL or IF clause to assign default values at query time.\r\n\r\n## Backwards Compatibility \r\n* **_\"druid.generic.useDefaultValueForNull\"_** is added as a new config. The default value is set to true for backwards compatibility. \r\n*  code places in query/ingestion where we converted emptyToNull or nullToEmpty now use NullHandlingHelper which only does the conversion if backwards compatibility is enabled. \r\n* Storage layer changes are backwards compatible for GenericIndexed/String columns. \r\n* For Numeric columns new V2 serde implementations are introduced which also supports serde of nullRowsBitmaps. Previous implementations are kept unchanged to read any existing segments. \r\n* Note:- New serde are only used when Null Handling is enabled to enable rollback to a previous version when needed. \r\n","created_at":"2018-01-22T18:46:50Z","updated_at":"2018-02-09T18:28:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4f0d9b1b8c9f1f0cdfd465178b90c676705306e4","assignee":{"login":"jon-wei","id":8729063,"avatar_url":"https://avatars3.githubusercontent.com/u/8729063?v=4","gravatar_id":"","url":"https://api.github.com/users/jon-wei","html_url":"https://github.com/jon-wei","followers_url":"https://api.github.com/users/jon-wei/followers","following_url":"https://api.github.com/users/jon-wei/following{/other_user}","gists_url":"https://api.github.com/users/jon-wei/gists{/gist_id}","starred_url":"https://api.github.com/users/jon-wei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jon-wei/subscriptions","organizations_url":"https://api.github.com/users/jon-wei/orgs","repos_url":"https://api.github.com/users/jon-wei/repos","events_url":"https://api.github.com/users/jon-wei/events{/privacy}","received_events_url":"https://api.github.com/users/jon-wei/received_events","type":"User","site_admin":false},"assignees":[{"login":"jon-wei","id":8729063,"avatar_url":"https://avatars3.githubusercontent.com/u/8729063?v=4","gravatar_id":"","url":"https://api.github.com/users/jon-wei","html_url":"https://github.com/jon-wei","followers_url":"https://api.github.com/users/jon-wei/followers","following_url":"https://api.github.com/users/jon-wei/following{/other_user}","gists_url":"https://api.github.com/users/jon-wei/gists{/gist_id}","starred_url":"https://api.github.com/users/jon-wei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jon-wei/subscriptions","organizations_url":"https://api.github.com/users/jon-wei/orgs","repos_url":"https://api.github.com/users/jon-wei/repos","events_url":"https://api.github.com/users/jon-wei/events{/privacy}","received_events_url":"https://api.github.com/users/jon-wei/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"gianm","id":1214075,"avatar_url":"https://avatars3.githubusercontent.com/u/1214075?v=4","gravatar_id":"","url":"https://api.github.com/users/gianm","html_url":"https://github.com/gianm","followers_url":"https://api.github.com/users/gianm/followers","following_url":"https://api.github.com/users/gianm/following{/other_user}","gists_url":"https://api.github.com/users/gianm/gists{/gist_id}","starred_url":"https://api.github.com/users/gianm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gianm/subscriptions","organizations_url":"https://api.github.com/users/gianm/orgs","repos_url":"https://api.github.com/users/gianm/repos","events_url":"https://api.github.com/users/gianm/events{/privacy}","received_events_url":"https://api.github.com/users/gianm/received_events","type":"User","site_admin":false},{"login":"b-slim","id":7376396,"avatar_url":"https://avatars0.githubusercontent.com/u/7376396?v=4","gravatar_id":"","url":"https://api.github.com/users/b-slim","html_url":"https://github.com/b-slim","followers_url":"https://api.github.com/users/b-slim/followers","following_url":"https://api.github.com/users/b-slim/following{/other_user}","gists_url":"https://api.github.com/users/b-slim/gists{/gist_id}","starred_url":"https://api.github.com/users/b-slim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/b-slim/subscriptions","organizations_url":"https://api.github.com/users/b-slim/orgs","repos_url":"https://api.github.com/users/b-slim/repos","events_url":"https://api.github.com/users/b-slim/events{/privacy}","received_events_url":"https://api.github.com/users/b-slim/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":219582906,"url":"https://api.github.com/repos/druid-io/druid/labels/Area%20-%20Indexing","name":"Area - Indexing","color":"fef2c0","default":false},{"id":219585748,"url":"https://api.github.com/repos/druid-io/druid/labels/Area%20-%20Querying","name":"Area - Querying","color":"fef2c0","default":false},{"id":648734860,"url":"https://api.github.com/repos/druid-io/druid/labels/Area%20-%20Segment%20Format%20and%20Ser/De","name":"Area - Segment Format and Ser/De","color":"fef2c0","default":false},{"id":592291319,"url":"https://api.github.com/repos/druid-io/druid/labels/Design%20Review","name":"Design Review","color":"f9d0c4","default":false},{"id":664694515,"url":"https://api.github.com/repos/druid-io/druid/labels/Development%20Blocker","name":"Development Blocker","color":"b60205","default":false}],"milestone":{"url":"https://api.github.com/repos/druid-io/druid/milestones/25","html_url":"https://github.com/druid-io/druid/milestone/25","labels_url":"https://api.github.com/repos/druid-io/druid/milestones/25/labels","id":3023864,"number":25,"title":"0.13.0","description":"","creator":{"login":"leventov","id":609240,"avatar_url":"https://avatars0.githubusercontent.com/u/609240?v=4","gravatar_id":"","url":"https://api.github.com/users/leventov","html_url":"https://github.com/leventov","followers_url":"https://api.github.com/users/leventov/followers","following_url":"https://api.github.com/users/leventov/following{/other_user}","gists_url":"https://api.github.com/users/leventov/gists{/gist_id}","starred_url":"https://api.github.com/users/leventov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leventov/subscriptions","organizations_url":"https://api.github.com/users/leventov/orgs","repos_url":"https://api.github.com/users/leventov/repos","events_url":"https://api.github.com/users/leventov/events{/privacy}","received_events_url":"https://api.github.com/users/leventov/received_events","type":"User","site_admin":false},"open_issues":18,"closed_issues":15,"state":"open","created_at":"2018-01-09T18:30:01Z","updated_at":"2018-02-09T16:03:42Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/druid-io/druid/pulls/5278/commits","review_comments_url":"https://api.github.com/repos/druid-io/druid/pulls/5278/comments","review_comment_url":"https://api.github.com/repos/druid-io/druid/pulls/comments{/number}","comments_url":"https://api.github.com/repos/druid-io/druid/issues/5278/comments","statuses_url":"https://api.github.com/repos/druid-io/druid/statuses/8fc716ec44233482b9619ffa19ed36accf1bfc0a","head":{"label":"nishantmonu51:null-handling-1","ref":"null-handling-1","sha":"8fc716ec44233482b9619ffa19ed36accf1bfc0a","user":{"login":"nishantmonu51","id":5023786,"avatar_url":"https://avatars3.githubusercontent.com/u/5023786?v=4","gravatar_id":"","url":"https://api.github.com/users/nishantmonu51","html_url":"https://github.com/nishantmonu51","followers_url":"https://api.github.com/users/nishantmonu51/followers","following_url":"https://api.github.com/users/nishantmonu51/following{/other_user}","gists_url":"https://api.github.com/users/nishantmonu51/gists{/gist_id}","starred_url":"https://api.github.com/users/nishantmonu51/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nishantmonu51/subscriptions","organizations_url":"https://api.github.com/users/nishantmonu51/orgs","repos_url":"https://api.github.com/users/nishantmonu51/repos","events_url":"https://api.github.com/users/nishantmonu51/events{/privacy}","received_events_url":"https://api.github.com/users/nishantmonu51/received_events","type":"User","site_admin":false},"repo":{"id":30287395,"name":"druid","full_name":"nishantmonu51/druid","owner":{"login":"nishantmonu51","id":5023786,"avatar_url":"https://avatars3.githubusercontent.com/u/5023786?v=4","gravatar_id":"","url":"https://api.github.com/users/nishantmonu51","html_url":"https://github.com/nishantmonu51","followers_url":"https://api.github.com/users/nishantmonu51/followers","following_url":"https://api.github.com/users/nishantmonu51/following{/other_user}","gists_url":"https://api.github.com/users/nishantmonu51/gists{/gist_id}","starred_url":"https://api.github.com/users/nishantmonu51/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nishantmonu51/subscriptions","organizations_url":"https://api.github.com/users/nishantmonu51/orgs","repos_url":"https://api.github.com/users/nishantmonu51/repos","events_url":"https://api.github.com/users/nishantmonu51/events{/privacy}","received_events_url":"https://api.github.com/users/nishantmonu51/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/nishantmonu51/druid","description":"Real²time Exploratory Analytics on Large Datasets","fork":true,"url":"https://api.github.com/repos/nishantmonu51/druid","forks_url":"https://api.github.com/repos/nishantmonu51/druid/forks","keys_url":"https://api.github.com/repos/nishantmonu51/druid/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nishantmonu51/druid/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nishantmonu51/druid/teams","hooks_url":"https://api.github.com/repos/nishantmonu51/druid/hooks","issue_events_url":"https://api.github.com/repos/nishantmonu51/druid/issues/events{/number}","events_url":"https://api.github.com/repos/nishantmonu51/druid/events","assignees_url":"https://api.github.com/repos/nishantmonu51/druid/assignees{/user}","branches_url":"https://api.github.com/repos/nishantmonu51/druid/branches{/branch}","tags_url":"https://api.github.com/repos/nishantmonu51/druid/tags","blobs_url":"https://api.github.com/repos/nishantmonu51/druid/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nishantmonu51/druid/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nishantmonu51/druid/git/refs{/sha}","trees_url":"https://api.github.com/repos/nishantmonu51/druid/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nishantmonu51/druid/statuses/{sha}","languages_url":"https://api.github.com/repos/nishantmonu51/druid/languages","stargazers_url":"https://api.github.com/repos/nishantmonu51/druid/stargazers","contributors_url":"https://api.github.com/repos/nishantmonu51/druid/contributors","subscribers_url":"https://api.github.com/repos/nishantmonu51/druid/subscribers","subscription_url":"https://api.github.com/repos/nishantmonu51/druid/subscription","commits_url":"https://api.github.com/repos/nishantmonu51/druid/commits{/sha}","git_commits_url":"https://api.github.com/repos/nishantmonu51/druid/git/commits{/sha}","comments_url":"https://api.github.com/repos/nishantmonu51/druid/comments{/number}","issue_comment_url":"https://api.github.com/repos/nishantmonu51/druid/issues/comments{/number}","contents_url":"https://api.github.com/repos/nishantmonu51/druid/contents/{+path}","compare_url":"https://api.github.com/repos/nishantmonu51/druid/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nishantmonu51/druid/merges","archive_url":"https://api.github.com/repos/nishantmonu51/druid/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nishantmonu51/druid/downloads","issues_url":"https://api.github.com/repos/nishantmonu51/druid/issues{/number}","pulls_url":"https://api.github.com/repos/nishantmonu51/druid/pulls{/number}","milestones_url":"https://api.github.com/repos/nishantmonu51/druid/milestones{/number}","notifications_url":"https://api.github.com/repos/nishantmonu51/druid/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nishantmonu51/druid/labels{/name}","releases_url":"https://api.github.com/repos/nishantmonu51/druid/releases{/id}","deployments_url":"https://api.github.com/repos/nishantmonu51/druid/deployments","created_at":"2015-02-04T07:42:09Z","updated_at":"2016-05-30T13:28:55Z","pushed_at":"2018-02-09T18:20:10Z","git_url":"git://github.com/nishantmonu51/druid.git","ssh_url":"git@github.com:nishantmonu51/druid.git","clone_url":"https://github.com/nishantmonu51/druid.git","svn_url":"https://github.com/nishantmonu51/druid","homepage":"http://druid.io","size":132384,"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,"open_issues_count":3,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":0,"open_issues":3,"watchers":0,"default_branch":"master"}},"base":{"label":"druid-io:master","ref":"master","sha":"0105cdbc19828009d21de57a30ba55794a518d30","user":{"login":"druid-io","id":4203474,"avatar_url":"https://avatars0.githubusercontent.com/u/4203474?v=4","gravatar_id":"","url":"https://api.github.com/users/druid-io","html_url":"https://github.com/druid-io","followers_url":"https://api.github.com/users/druid-io/followers","following_url":"https://api.github.com/users/druid-io/following{/other_user}","gists_url":"https://api.github.com/users/druid-io/gists{/gist_id}","starred_url":"https://api.github.com/users/druid-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/druid-io/subscriptions","organizations_url":"https://api.github.com/users/druid-io/orgs","repos_url":"https://api.github.com/users/druid-io/repos","events_url":"https://api.github.com/users/druid-io/events{/privacy}","received_events_url":"https://api.github.com/users/druid-io/received_events","type":"Organization","site_admin":false},"repo":{"id":6358188,"name":"druid","full_name":"druid-io/druid","owner":{"login":"druid-io","id":4203474,"avatar_url":"https://avatars0.githubusercontent.com/u/4203474?v=4","gravatar_id":"","url":"https://api.github.com/users/druid-io","html_url":"https://github.com/druid-io","followers_url":"https://api.github.com/users/druid-io/followers","following_url":"https://api.github.com/users/druid-io/following{/other_user}","gists_url":"https://api.github.com/users/druid-io/gists{/gist_id}","starred_url":"https://api.github.com/users/druid-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/druid-io/subscriptions","organizations_url":"https://api.github.com/users/druid-io/orgs","repos_url":"https://api.github.com/users/druid-io/repos","events_url":"https://api.github.com/users/druid-io/events{/privacy}","received_events_url":"https://api.github.com/users/druid-io/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/druid-io/druid","description":"Column oriented distributed data store ideal for powering interactive applications","fork":false,"url":"https://api.github.com/repos/druid-io/druid","forks_url":"https://api.github.com/repos/druid-io/druid/forks","keys_url":"https://api.github.com/repos/druid-io/druid/keys{/key_id}","collaborators_url":"https://api.github.com/repos/druid-io/druid/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/druid-io/druid/teams","hooks_url":"https://api.github.com/repos/druid-io/druid/hooks","issue_events_url":"https://api.github.com/repos/druid-io/druid/issues/events{/number}","events_url":"https://api.github.com/repos/druid-io/druid/events","assignees_url":"https://api.github.com/repos/druid-io/druid/assignees{/user}","branches_url":"https://api.github.com/repos/druid-io/druid/branches{/branch}","tags_url":"https://api.github.com/repos/druid-io/druid/tags","blobs_url":"https://api.github.com/repos/druid-io/druid/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/druid-io/druid/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/druid-io/druid/git/refs{/sha}","trees_url":"https://api.github.com/repos/druid-io/druid/git/trees{/sha}","statuses_url":"https://api.github.com/repos/druid-io/druid/statuses/{sha}","languages_url":"https://api.github.com/repos/druid-io/druid/languages","stargazers_url":"https://api.github.com/repos/druid-io/druid/stargazers","contributors_url":"https://api.github.com/repos/druid-io/druid/contributors","subscribers_url":"https://api.github.com/repos/druid-io/druid/subscribers","subscription_url":"https://api.github.com/repos/druid-io/druid/subscription","commits_url":"https://api.github.com/repos/druid-io/druid/commits{/sha}","git_commits_url":"https://api.github.com/repos/druid-io/druid/git/commits{/sha}","comments_url":"https://api.github.com/repos/druid-io/druid/comments{/number}","issue_comment_url":"https://api.github.com/repos/druid-io/druid/issues/comments{/number}","contents_url":"https://api.github.com/repos/druid-io/druid/contents/{+path}","compare_url":"https://api.github.com/repos/druid-io/druid/compare/{base}...{head}","merges_url":"https://api.github.com/repos/druid-io/druid/merges","archive_url":"https://api.github.com/repos/druid-io/druid/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/druid-io/druid/downloads","issues_url":"https://api.github.com/repos/druid-io/druid/issues{/number}","pulls_url":"https://api.github.com/repos/druid-io/druid/pulls{/number}","milestones_url":"https://api.github.com/repos/druid-io/druid/milestones{/number}","notifications_url":"https://api.github.com/repos/druid-io/druid/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/druid-io/druid/labels{/name}","releases_url":"https://api.github.com/repos/druid-io/druid/releases{/id}","deployments_url":"https://api.github.com/repos/druid-io/druid/deployments","created_at":"2012-10-23T19:08:07Z","updated_at":"2018-02-09T09:29:45Z","pushed_at":"2018-02-09T18:20:13Z","git_url":"git://github.com/druid-io/druid.git","ssh_url":"git@github.com:druid-io/druid.git","clone_url":"https://github.com/druid-io/druid.git","svn_url":"https://github.com/druid-io/druid","homepage":"http://druid.io","size":133982,"stargazers_count":6080,"watchers_count":6080,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1501,"mirror_url":null,"archived":false,"open_issues_count":910,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":1501,"open_issues":910,"watchers":6080,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/druid-io/druid/pulls/5278"},"html":{"href":"https://github.com/druid-io/druid/pull/5278"},"issue":{"href":"https://api.github.com/repos/druid-io/druid/issues/5278"},"comments":{"href":"https://api.github.com/repos/druid-io/druid/issues/5278/comments"},"review_comments":{"href":"https://api.github.com/repos/druid-io/druid/pulls/5278/comments"},"review_comment":{"href":"https://api.github.com/repos/druid-io/druid/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/druid-io/druid/pulls/5278/commits"},"statuses":{"href":"https://api.github.com/repos/druid-io/druid/statuses/8fc716ec44233482b9619ffa19ed36accf1bfc0a"}},"author_association":"OWNER"}}
{"actor":{"display_login":"nishantmonu51"}}