{"action":"created","comment":{"url":"https://api.github.com/repos/CUBRID/cubrid/pulls/comments/138873641","pull_request_review_id":62715690,"id":138873641,"diff_hunk":"@@ -28,6 +28,8 @@\n #include \"query_executor.h\"\n #include \"stream_to_xasl.h\"\n \n+typedef struct lf_tran_entry LF_TRAN_ENTRY;","path":"src/query/filter_pred_cache.c","position":4,"original_position":4,"commit_id":"d7060c63ed8e13d42e56fbb8db5dc4a8a8e731fb","original_commit_id":"d7060c63ed8e13d42e56fbb8db5dc4a8a8e731fb","user":{"login":"ribram","id":12672652,"avatar_url":"https://avatars0.githubusercontent.com/u/12672652?v=4","gravatar_id":"","url":"https://api.github.com/users/ribram","html_url":"https://github.com/ribram","followers_url":"https://api.github.com/users/ribram/followers","following_url":"https://api.github.com/users/ribram/following{/other_user}","gists_url":"https://api.github.com/users/ribram/gists{/gist_id}","starred_url":"https://api.github.com/users/ribram/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ribram/subscriptions","organizations_url":"https://api.github.com/users/ribram/orgs","repos_url":"https://api.github.com/users/ribram/repos","events_url":"https://api.github.com/users/ribram/events{/privacy}","received_events_url":"https://api.github.com/users/ribram/received_events","type":"User","site_admin":false},"body":"remove me","created_at":"2017-09-14T12:07:38Z","updated_at":"2017-09-14T12:12:13Z","html_url":"https://github.com/CUBRID/cubrid/pull/806#discussion_r138873641","pull_request_url":"https://api.github.com/repos/CUBRID/cubrid/pulls/806","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/CUBRID/cubrid/pulls/comments/138873641"},"html":{"href":"https://github.com/CUBRID/cubrid/pull/806#discussion_r138873641"},"pull_request":{"href":"https://api.github.com/repos/CUBRID/cubrid/pulls/806"}}},"pull_request":{"url":"https://api.github.com/repos/CUBRID/cubrid/pulls/806","id":133744683,"html_url":"https://github.com/CUBRID/cubrid/pull/806","diff_url":"https://github.com/CUBRID/cubrid/pull/806.diff","patch_url":"https://github.com/CUBRID/cubrid/pull/806.patch","issue_url":"https://api.github.com/repos/CUBRID/cubrid/issues/806","number":806,"state":"open","locked":false,"title":"[CBRD-21522] JSON data type","user":{"login":"paulgheorghecristian","id":17722852,"avatar_url":"https://avatars2.githubusercontent.com/u/17722852?v=4","gravatar_id":"","url":"https://api.github.com/users/paulgheorghecristian","html_url":"https://github.com/paulgheorghecristian","followers_url":"https://api.github.com/users/paulgheorghecristian/followers","following_url":"https://api.github.com/users/paulgheorghecristian/following{/other_user}","gists_url":"https://api.github.com/users/paulgheorghecristian/gists{/gist_id}","starred_url":"https://api.github.com/users/paulgheorghecristian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulgheorghecristian/subscriptions","organizations_url":"https://api.github.com/users/paulgheorghecristian/orgs","repos_url":"https://api.github.com/users/paulgheorghecristian/repos","events_url":"https://api.github.com/users/paulgheorghecristian/events{/privacy}","received_events_url":"https://api.github.com/users/paulgheorghecristian/received_events","type":"User","site_admin":false},"body":"Adding JSON support to CUBRID\r\n\r\nWe chose rapidjson for its efficiency (it's advertised as being the fastest and the benchmarks prove this), its native functions that map well with existing SQL functions in other engines, its high conformance to the JSON protocol (93%) and its MIT license.\r\n\r\nIts primary native functions/features are:\r\n```\r\nJson nesting\r\nSyntax error location detection\r\nJson type detection\r\nJson validation\r\nSearch for a key/value\r\nRemoval of objects by key/value\r\nJson schema validation\r\n```\r\n\r\nThe downside of the rapidjson library is the poor documentation, which slows down the progress a bit.\r\n\r\nRight now (26.07.2017) cubrid has 3 JSON functions (json_contains, json_object and json_array) and we integrated the JSON schema validation to the JSON type.\r\n\r\nJson Schema Validation:\r\n\r\nWe have conveyed that making the JSON type strongly-typed is the best strategy. The feature that helps us achieve this is a JSON schema, which every JSON can contain. Here is an example of a schema:\r\n```\r\n{\r\n    \"type\": \"object\",\r\n    \"properties\": {\r\n        \"id\": {\r\n            \"type\": \"integer\"\r\n        }\r\n    }\r\n}\r\n```\r\nThis JSON called a schema specifies that the input JSON must be a JSON Object that contains and id of the integer type. These verifications are done with the rapidjson library.\r\n\r\nThe next json native functions that need to be added:\r\n\r\n```\r\njson_array(var_1, \\[var_2, ..., var_n\\]); *implemented\r\njson_object(key_1, value_1, \\[key_2, value_2, ..., key_n, value_n\\]); *implemented\r\njson_contains(json, key); *implemented\r\njson_merge(json_1, json_2, \\[json_3, ..., json_n\\]); *implemented\r\njson_length (json); *implemented\r\njson_depth (json); *implemented\r\njson_type (json); *implemented\r\njson_compare (json_1, json_2); *needs consideration\r\njson_extract (json, path);  *implemented\r\njson_insert (json, path_1, val_1, \\[path_2, val_2, ..., path_n, val_n\\]); *implemented\r\njson_remove (json, path_1, \\[path_2,..., path_n\\]); *implemented\r\njson_valid (json); *implemented\r\njson_search (json, one_or_all, search_str); *implemented\r\n```\r\n\r\nThis PR doesn't contain:\r\n-implement function indexes for JSON\r\n\r\nRight now, we do not support creating an index for a json column. This is due to the fact the json type is only partially ordered (json objects and json arrays cannot be ordered with respect to eachother). Further discussions are necessary in order to make a decision regarding this.\r\n","created_at":"2017-08-02T15:51:55Z","updated_at":"2017-09-14T12:12:13Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f5948b87f76cf3c509836a98c011539b49102fc2","assignee":{"login":"paulgheorghecristian","id":17722852,"avatar_url":"https://avatars2.githubusercontent.com/u/17722852?v=4","gravatar_id":"","url":"https://api.github.com/users/paulgheorghecristian","html_url":"https://github.com/paulgheorghecristian","followers_url":"https://api.github.com/users/paulgheorghecristian/followers","following_url":"https://api.github.com/users/paulgheorghecristian/following{/other_user}","gists_url":"https://api.github.com/users/paulgheorghecristian/gists{/gist_id}","starred_url":"https://api.github.com/users/paulgheorghecristian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulgheorghecristian/subscriptions","organizations_url":"https://api.github.com/users/paulgheorghecristian/orgs","repos_url":"https://api.github.com/users/paulgheorghecristian/repos","events_url":"https://api.github.com/users/paulgheorghecristian/events{/privacy}","received_events_url":"https://api.github.com/users/paulgheorghecristian/received_events","type":"User","site_admin":false},"assignees":[{"login":"paulgheorghecristian","id":17722852,"avatar_url":"https://avatars2.githubusercontent.com/u/17722852?v=4","gravatar_id":"","url":"https://api.github.com/users/paulgheorghecristian","html_url":"https://github.com/paulgheorghecristian","followers_url":"https://api.github.com/users/paulgheorghecristian/followers","following_url":"https://api.github.com/users/paulgheorghecristian/following{/other_user}","gists_url":"https://api.github.com/users/paulgheorghecristian/gists{/gist_id}","starred_url":"https://api.github.com/users/paulgheorghecristian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulgheorghecristian/subscriptions","organizations_url":"https://api.github.com/users/paulgheorghecristian/orgs","repos_url":"https://api.github.com/users/paulgheorghecristian/repos","events_url":"https://api.github.com/users/paulgheorghecristian/events{/privacy}","received_events_url":"https://api.github.com/users/paulgheorghecristian/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"milestone":{"url":"https://api.github.com/repos/CUBRID/cubrid/milestones/2","html_url":"https://github.com/CUBRID/cubrid/milestone/2","labels_url":"https://api.github.com/repos/CUBRID/cubrid/milestones/2/labels","id":2618783,"number":2,"title":"cherry","description":null,"creator":{"login":"eseokoh","id":17467172,"avatar_url":"https://avatars1.githubusercontent.com/u/17467172?v=4","gravatar_id":"","url":"https://api.github.com/users/eseokoh","html_url":"https://github.com/eseokoh","followers_url":"https://api.github.com/users/eseokoh/followers","following_url":"https://api.github.com/users/eseokoh/following{/other_user}","gists_url":"https://api.github.com/users/eseokoh/gists{/gist_id}","starred_url":"https://api.github.com/users/eseokoh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eseokoh/subscriptions","organizations_url":"https://api.github.com/users/eseokoh/orgs","repos_url":"https://api.github.com/users/eseokoh/repos","events_url":"https://api.github.com/users/eseokoh/events{/privacy}","received_events_url":"https://api.github.com/users/eseokoh/received_events","type":"User","site_admin":false},"open_issues":3,"closed_issues":23,"state":"open","created_at":"2017-07-03T13:14:16Z","updated_at":"2017-08-14T06:29:47Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/CUBRID/cubrid/pulls/806/commits","review_comments_url":"https://api.github.com/repos/CUBRID/cubrid/pulls/806/comments","review_comment_url":"https://api.github.com/repos/CUBRID/cubrid/pulls/comments{/number}","comments_url":"https://api.github.com/repos/CUBRID/cubrid/issues/806/comments","statuses_url":"https://api.github.com/repos/CUBRID/cubrid/statuses/d7060c63ed8e13d42e56fbb8db5dc4a8a8e731fb","head":{"label":"paulgheorghecristian:AddJsonWithLibrary","ref":"AddJsonWithLibrary","sha":"d7060c63ed8e13d42e56fbb8db5dc4a8a8e731fb","user":{"login":"paulgheorghecristian","id":17722852,"avatar_url":"https://avatars2.githubusercontent.com/u/17722852?v=4","gravatar_id":"","url":"https://api.github.com/users/paulgheorghecristian","html_url":"https://github.com/paulgheorghecristian","followers_url":"https://api.github.com/users/paulgheorghecristian/followers","following_url":"https://api.github.com/users/paulgheorghecristian/following{/other_user}","gists_url":"https://api.github.com/users/paulgheorghecristian/gists{/gist_id}","starred_url":"https://api.github.com/users/paulgheorghecristian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulgheorghecristian/subscriptions","organizations_url":"https://api.github.com/users/paulgheorghecristian/orgs","repos_url":"https://api.github.com/users/paulgheorghecristian/repos","events_url":"https://api.github.com/users/paulgheorghecristian/events{/privacy}","received_events_url":"https://api.github.com/users/paulgheorghecristian/received_events","type":"User","site_admin":false},"repo":{"id":73068600,"name":"cubrid","full_name":"paulgheorghecristian/cubrid","owner":{"login":"paulgheorghecristian","id":17722852,"avatar_url":"https://avatars2.githubusercontent.com/u/17722852?v=4","gravatar_id":"","url":"https://api.github.com/users/paulgheorghecristian","html_url":"https://github.com/paulgheorghecristian","followers_url":"https://api.github.com/users/paulgheorghecristian/followers","following_url":"https://api.github.com/users/paulgheorghecristian/following{/other_user}","gists_url":"https://api.github.com/users/paulgheorghecristian/gists{/gist_id}","starred_url":"https://api.github.com/users/paulgheorghecristian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulgheorghecristian/subscriptions","organizations_url":"https://api.github.com/users/paulgheorghecristian/orgs","repos_url":"https://api.github.com/users/paulgheorghecristian/repos","events_url":"https://api.github.com/users/paulgheorghecristian/events{/privacy}","received_events_url":"https://api.github.com/users/paulgheorghecristian/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/paulgheorghecristian/cubrid","description":"CUBRID is a comprehensive open source relational database management system highly optimized for Web Applications.","fork":true,"url":"https://api.github.com/repos/paulgheorghecristian/cubrid","forks_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/forks","keys_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/keys{/key_id}","collaborators_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/teams","hooks_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/hooks","issue_events_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/issues/events{/number}","events_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/events","assignees_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/assignees{/user}","branches_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/branches{/branch}","tags_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/tags","blobs_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/git/refs{/sha}","trees_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/git/trees{/sha}","statuses_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/statuses/{sha}","languages_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/languages","stargazers_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/stargazers","contributors_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/contributors","subscribers_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/subscribers","subscription_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/subscription","commits_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/commits{/sha}","git_commits_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/git/commits{/sha}","comments_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/comments{/number}","issue_comment_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/issues/comments{/number}","contents_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/contents/{+path}","compare_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/compare/{base}...{head}","merges_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/merges","archive_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/downloads","issues_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/issues{/number}","pulls_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/pulls{/number}","milestones_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/milestones{/number}","notifications_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/labels{/name}","releases_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/releases{/id}","deployments_url":"https://api.github.com/repos/paulgheorghecristian/cubrid/deployments","created_at":"2016-11-07T10:43:48Z","updated_at":"2016-11-07T10:44:06Z","pushed_at":"2017-09-14T10:19:55Z","git_url":"git://github.com/paulgheorghecristian/cubrid.git","ssh_url":"git@github.com:paulgheorghecristian/cubrid.git","clone_url":"https://github.com/paulgheorghecristian/cubrid.git","svn_url":"https://github.com/paulgheorghecristian/cubrid","homepage":"http://www.cubrid.org","size":184556,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"develop"}},"base":{"label":"CUBRID:develop","ref":"develop","sha":"b6a3078947d9054bfaaa160b70ee7c32e1f656ee","user":{"login":"CUBRID","id":358322,"avatar_url":"https://avatars0.githubusercontent.com/u/358322?v=4","gravatar_id":"","url":"https://api.github.com/users/CUBRID","html_url":"https://github.com/CUBRID","followers_url":"https://api.github.com/users/CUBRID/followers","following_url":"https://api.github.com/users/CUBRID/following{/other_user}","gists_url":"https://api.github.com/users/CUBRID/gists{/gist_id}","starred_url":"https://api.github.com/users/CUBRID/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CUBRID/subscriptions","organizations_url":"https://api.github.com/users/CUBRID/orgs","repos_url":"https://api.github.com/users/CUBRID/repos","events_url":"https://api.github.com/users/CUBRID/events{/privacy}","received_events_url":"https://api.github.com/users/CUBRID/received_events","type":"Organization","site_admin":false},"repo":{"id":52080367,"name":"cubrid","full_name":"CUBRID/cubrid","owner":{"login":"CUBRID","id":358322,"avatar_url":"https://avatars0.githubusercontent.com/u/358322?v=4","gravatar_id":"","url":"https://api.github.com/users/CUBRID","html_url":"https://github.com/CUBRID","followers_url":"https://api.github.com/users/CUBRID/followers","following_url":"https://api.github.com/users/CUBRID/following{/other_user}","gists_url":"https://api.github.com/users/CUBRID/gists{/gist_id}","starred_url":"https://api.github.com/users/CUBRID/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CUBRID/subscriptions","organizations_url":"https://api.github.com/users/CUBRID/orgs","repos_url":"https://api.github.com/users/CUBRID/repos","events_url":"https://api.github.com/users/CUBRID/events{/privacy}","received_events_url":"https://api.github.com/users/CUBRID/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CUBRID/cubrid","description":"CUBRID is a comprehensive open source relational database management system highly optimized for Web Applications.","fork":false,"url":"https://api.github.com/repos/CUBRID/cubrid","forks_url":"https://api.github.com/repos/CUBRID/cubrid/forks","keys_url":"https://api.github.com/repos/CUBRID/cubrid/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CUBRID/cubrid/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CUBRID/cubrid/teams","hooks_url":"https://api.github.com/repos/CUBRID/cubrid/hooks","issue_events_url":"https://api.github.com/repos/CUBRID/cubrid/issues/events{/number}","events_url":"https://api.github.com/repos/CUBRID/cubrid/events","assignees_url":"https://api.github.com/repos/CUBRID/cubrid/assignees{/user}","branches_url":"https://api.github.com/repos/CUBRID/cubrid/branches{/branch}","tags_url":"https://api.github.com/repos/CUBRID/cubrid/tags","blobs_url":"https://api.github.com/repos/CUBRID/cubrid/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CUBRID/cubrid/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CUBRID/cubrid/git/refs{/sha}","trees_url":"https://api.github.com/repos/CUBRID/cubrid/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CUBRID/cubrid/statuses/{sha}","languages_url":"https://api.github.com/repos/CUBRID/cubrid/languages","stargazers_url":"https://api.github.com/repos/CUBRID/cubrid/stargazers","contributors_url":"https://api.github.com/repos/CUBRID/cubrid/contributors","subscribers_url":"https://api.github.com/repos/CUBRID/cubrid/subscribers","subscription_url":"https://api.github.com/repos/CUBRID/cubrid/subscription","commits_url":"https://api.github.com/repos/CUBRID/cubrid/commits{/sha}","git_commits_url":"https://api.github.com/repos/CUBRID/cubrid/git/commits{/sha}","comments_url":"https://api.github.com/repos/CUBRID/cubrid/comments{/number}","issue_comment_url":"https://api.github.com/repos/CUBRID/cubrid/issues/comments{/number}","contents_url":"https://api.github.com/repos/CUBRID/cubrid/contents/{+path}","compare_url":"https://api.github.com/repos/CUBRID/cubrid/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CUBRID/cubrid/merges","archive_url":"https://api.github.com/repos/CUBRID/cubrid/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CUBRID/cubrid/downloads","issues_url":"https://api.github.com/repos/CUBRID/cubrid/issues{/number}","pulls_url":"https://api.github.com/repos/CUBRID/cubrid/pulls{/number}","milestones_url":"https://api.github.com/repos/CUBRID/cubrid/milestones{/number}","notifications_url":"https://api.github.com/repos/CUBRID/cubrid/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CUBRID/cubrid/labels{/name}","releases_url":"https://api.github.com/repos/CUBRID/cubrid/releases{/id}","deployments_url":"https://api.github.com/repos/CUBRID/cubrid/deployments","created_at":"2016-02-19T10:25:32Z","updated_at":"2017-09-10T09:40:16Z","pushed_at":"2017-09-14T10:19:57Z","git_url":"git://github.com/CUBRID/cubrid.git","ssh_url":"git@github.com:CUBRID/cubrid.git","clone_url":"https://github.com/CUBRID/cubrid.git","svn_url":"https://github.com/CUBRID/cubrid","homepage":"http://www.cubrid.org","size":177286,"stargazers_count":48,"watchers_count":48,"language":"C","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":35,"mirror_url":null,"open_issues_count":18,"forks":35,"open_issues":18,"watchers":48,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/CUBRID/cubrid/pulls/806"},"html":{"href":"https://github.com/CUBRID/cubrid/pull/806"},"issue":{"href":"https://api.github.com/repos/CUBRID/cubrid/issues/806"},"comments":{"href":"https://api.github.com/repos/CUBRID/cubrid/issues/806/comments"},"review_comments":{"href":"https://api.github.com/repos/CUBRID/cubrid/pulls/806/comments"},"review_comment":{"href":"https://api.github.com/repos/CUBRID/cubrid/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/CUBRID/cubrid/pulls/806/commits"},"statuses":{"href":"https://api.github.com/repos/CUBRID/cubrid/statuses/d7060c63ed8e13d42e56fbb8db5dc4a8a8e731fb"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"ribram"}}