{"action":"opened","number":6670,"pull_request":{"url":"https://api.github.com/repos/neo4j/neo4j/pulls/6670","id":62506351,"html_url":"https://github.com/neo4j/neo4j/pull/6670","diff_url":"https://github.com/neo4j/neo4j/pull/6670.diff","patch_url":"https://github.com/neo4j/neo4j/pull/6670.patch","issue_url":"https://api.github.com/repos/neo4j/neo4j/issues/6670","number":6670,"state":"open","locked":false,"title":"Call procedures from within Cypher queries (systay remix)","user":{"login":"systay","id":402248,"avatar_url":"https://avatars.githubusercontent.com/u/402248?v=3","gravatar_id":"","url":"https://api.github.com/users/systay","html_url":"https://github.com/systay","followers_url":"https://api.github.com/users/systay/followers","following_url":"https://api.github.com/users/systay/following{/other_user}","gists_url":"https://api.github.com/users/systay/gists{/gist_id}","starred_url":"https://api.github.com/users/systay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/systay/subscriptions","organizations_url":"https://api.github.com/users/systay/orgs","repos_url":"https://api.github.com/users/systay/repos","events_url":"https://api.github.com/users/systay/events{/privacy}","received_events_url":"https://api.github.com/users/systay/received_events","type":"User","site_admin":false},"body":"This change allows queries like\r\n\r\n     MATCH (e:Episode)\r\n     CALL my.awesome.proc(\"energize\", e.id) YIELD maxWarp AS factor, tribbles AS pets\r\n     RETURN factor, count(pets)\r\n\r\nThis works now (assuming the build is green) but is not yet complete:\r\n\r\n- The CLG still needs to finalize syntax\r\n- There are some TODOs left and tests missing\r\n\r\nThe architecturally most interesting change is moving the first round of semantic checking over to plan building. This became necessary since type checking now depends on information obtained from the planning context - namely the procedure's signature. Even though today that's static it's quite plausible to assume it will by dynamic in the mid term future hence the move seemed like right thing to do.\r\n\r\nThe commits meander a bit as it took me a while to figure this out and solidify the model used.\r\n\r\nAlso noteworthy, this change preserves the fast code path developed for just calling procedures and only goes through the old run time when Cypher and procedures are mixed. This change does not add procedure calling to birk, this can happen later.\r\n\r\n[This is a rebased version of #6659, with one additional commit on top.]","created_at":"2016-03-11T07:21:15Z","updated_at":"2016-03-11T07:21:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/neo4j/neo4j/pulls/6670/commits","review_comments_url":"https://api.github.com/repos/neo4j/neo4j/pulls/6670/comments","review_comment_url":"https://api.github.com/repos/neo4j/neo4j/pulls/comments{/number}","comments_url":"https://api.github.com/repos/neo4j/neo4j/issues/6670/comments","statuses_url":"https://api.github.com/repos/neo4j/neo4j/statuses/198337d2f96e46ecf9238b84b1bd584ce63975c6","head":{"label":"systay:3.0-call-procs-2","ref":"3.0-call-procs-2","sha":"198337d2f96e46ecf9238b84b1bd584ce63975c6","user":{"login":"systay","id":402248,"avatar_url":"https://avatars.githubusercontent.com/u/402248?v=3","gravatar_id":"","url":"https://api.github.com/users/systay","html_url":"https://github.com/systay","followers_url":"https://api.github.com/users/systay/followers","following_url":"https://api.github.com/users/systay/following{/other_user}","gists_url":"https://api.github.com/users/systay/gists{/gist_id}","starred_url":"https://api.github.com/users/systay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/systay/subscriptions","organizations_url":"https://api.github.com/users/systay/orgs","repos_url":"https://api.github.com/users/systay/repos","events_url":"https://api.github.com/users/systay/events{/privacy}","received_events_url":"https://api.github.com/users/systay/received_events","type":"User","site_admin":false},"repo":{"id":6667347,"name":"neo4j","full_name":"systay/neo4j","owner":{"login":"systay","id":402248,"avatar_url":"https://avatars.githubusercontent.com/u/402248?v=3","gravatar_id":"","url":"https://api.github.com/users/systay","html_url":"https://github.com/systay","followers_url":"https://api.github.com/users/systay/followers","following_url":"https://api.github.com/users/systay/following{/other_user}","gists_url":"https://api.github.com/users/systay/gists{/gist_id}","starred_url":"https://api.github.com/users/systay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/systay/subscriptions","organizations_url":"https://api.github.com/users/systay/orgs","repos_url":"https://api.github.com/users/systay/repos","events_url":"https://api.github.com/users/systay/events{/privacy}","received_events_url":"https://api.github.com/users/systay/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/systay/neo4j","description":"","fork":true,"url":"https://api.github.com/repos/systay/neo4j","forks_url":"https://api.github.com/repos/systay/neo4j/forks","keys_url":"https://api.github.com/repos/systay/neo4j/keys{/key_id}","collaborators_url":"https://api.github.com/repos/systay/neo4j/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/systay/neo4j/teams","hooks_url":"https://api.github.com/repos/systay/neo4j/hooks","issue_events_url":"https://api.github.com/repos/systay/neo4j/issues/events{/number}","events_url":"https://api.github.com/repos/systay/neo4j/events","assignees_url":"https://api.github.com/repos/systay/neo4j/assignees{/user}","branches_url":"https://api.github.com/repos/systay/neo4j/branches{/branch}","tags_url":"https://api.github.com/repos/systay/neo4j/tags","blobs_url":"https://api.github.com/repos/systay/neo4j/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/systay/neo4j/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/systay/neo4j/git/refs{/sha}","trees_url":"https://api.github.com/repos/systay/neo4j/git/trees{/sha}","statuses_url":"https://api.github.com/repos/systay/neo4j/statuses/{sha}","languages_url":"https://api.github.com/repos/systay/neo4j/languages","stargazers_url":"https://api.github.com/repos/systay/neo4j/stargazers","contributors_url":"https://api.github.com/repos/systay/neo4j/contributors","subscribers_url":"https://api.github.com/repos/systay/neo4j/subscribers","subscription_url":"https://api.github.com/repos/systay/neo4j/subscription","commits_url":"https://api.github.com/repos/systay/neo4j/commits{/sha}","git_commits_url":"https://api.github.com/repos/systay/neo4j/git/commits{/sha}","comments_url":"https://api.github.com/repos/systay/neo4j/comments{/number}","issue_comment_url":"https://api.github.com/repos/systay/neo4j/issues/comments{/number}","contents_url":"https://api.github.com/repos/systay/neo4j/contents/{+path}","compare_url":"https://api.github.com/repos/systay/neo4j/compare/{base}...{head}","merges_url":"https://api.github.com/repos/systay/neo4j/merges","archive_url":"https://api.github.com/repos/systay/neo4j/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/systay/neo4j/downloads","issues_url":"https://api.github.com/repos/systay/neo4j/issues{/number}","pulls_url":"https://api.github.com/repos/systay/neo4j/pulls{/number}","milestones_url":"https://api.github.com/repos/systay/neo4j/milestones{/number}","notifications_url":"https://api.github.com/repos/systay/neo4j/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/systay/neo4j/labels{/name}","releases_url":"https://api.github.com/repos/systay/neo4j/releases{/id}","deployments_url":"https://api.github.com/repos/systay/neo4j/deployments","created_at":"2012-11-13T08:05:14Z","updated_at":"2016-01-19T19:00:58Z","pushed_at":"2016-03-11T07:17:08Z","git_url":"git://github.com/systay/neo4j.git","ssh_url":"git@github.com:systay/neo4j.git","clone_url":"https://github.com/systay/neo4j.git","svn_url":"https://github.com/systay/neo4j","homepage":null,"size":291586,"stargazers_count":2,"watchers_count":2,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":0,"forks":2,"open_issues":0,"watchers":2,"default_branch":"loadcsv"}},"base":{"label":"neo4j:3.0","ref":"3.0","sha":"e79adb4aba0150d59abc7ccd0d4208278280c14c","user":{"login":"neo4j","id":201120,"avatar_url":"https://avatars.githubusercontent.com/u/201120?v=3","gravatar_id":"","url":"https://api.github.com/users/neo4j","html_url":"https://github.com/neo4j","followers_url":"https://api.github.com/users/neo4j/followers","following_url":"https://api.github.com/users/neo4j/following{/other_user}","gists_url":"https://api.github.com/users/neo4j/gists{/gist_id}","starred_url":"https://api.github.com/users/neo4j/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/neo4j/subscriptions","organizations_url":"https://api.github.com/users/neo4j/orgs","repos_url":"https://api.github.com/users/neo4j/repos","events_url":"https://api.github.com/users/neo4j/events{/privacy}","received_events_url":"https://api.github.com/users/neo4j/received_events","type":"Organization","site_admin":false},"repo":{"id":6650539,"name":"neo4j","full_name":"neo4j/neo4j","owner":{"login":"neo4j","id":201120,"avatar_url":"https://avatars.githubusercontent.com/u/201120?v=3","gravatar_id":"","url":"https://api.github.com/users/neo4j","html_url":"https://github.com/neo4j","followers_url":"https://api.github.com/users/neo4j/followers","following_url":"https://api.github.com/users/neo4j/following{/other_user}","gists_url":"https://api.github.com/users/neo4j/gists{/gist_id}","starred_url":"https://api.github.com/users/neo4j/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/neo4j/subscriptions","organizations_url":"https://api.github.com/users/neo4j/orgs","repos_url":"https://api.github.com/users/neo4j/repos","events_url":"https://api.github.com/users/neo4j/events{/privacy}","received_events_url":"https://api.github.com/users/neo4j/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/neo4j/neo4j","description":"Graphs for Everyone","fork":false,"url":"https://api.github.com/repos/neo4j/neo4j","forks_url":"https://api.github.com/repos/neo4j/neo4j/forks","keys_url":"https://api.github.com/repos/neo4j/neo4j/keys{/key_id}","collaborators_url":"https://api.github.com/repos/neo4j/neo4j/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/neo4j/neo4j/teams","hooks_url":"https://api.github.com/repos/neo4j/neo4j/hooks","issue_events_url":"https://api.github.com/repos/neo4j/neo4j/issues/events{/number}","events_url":"https://api.github.com/repos/neo4j/neo4j/events","assignees_url":"https://api.github.com/repos/neo4j/neo4j/assignees{/user}","branches_url":"https://api.github.com/repos/neo4j/neo4j/branches{/branch}","tags_url":"https://api.github.com/repos/neo4j/neo4j/tags","blobs_url":"https://api.github.com/repos/neo4j/neo4j/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/neo4j/neo4j/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/neo4j/neo4j/git/refs{/sha}","trees_url":"https://api.github.com/repos/neo4j/neo4j/git/trees{/sha}","statuses_url":"https://api.github.com/repos/neo4j/neo4j/statuses/{sha}","languages_url":"https://api.github.com/repos/neo4j/neo4j/languages","stargazers_url":"https://api.github.com/repos/neo4j/neo4j/stargazers","contributors_url":"https://api.github.com/repos/neo4j/neo4j/contributors","subscribers_url":"https://api.github.com/repos/neo4j/neo4j/subscribers","subscription_url":"https://api.github.com/repos/neo4j/neo4j/subscription","commits_url":"https://api.github.com/repos/neo4j/neo4j/commits{/sha}","git_commits_url":"https://api.github.com/repos/neo4j/neo4j/git/commits{/sha}","comments_url":"https://api.github.com/repos/neo4j/neo4j/comments{/number}","issue_comment_url":"https://api.github.com/repos/neo4j/neo4j/issues/comments{/number}","contents_url":"https://api.github.com/repos/neo4j/neo4j/contents/{+path}","compare_url":"https://api.github.com/repos/neo4j/neo4j/compare/{base}...{head}","merges_url":"https://api.github.com/repos/neo4j/neo4j/merges","archive_url":"https://api.github.com/repos/neo4j/neo4j/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/neo4j/neo4j/downloads","issues_url":"https://api.github.com/repos/neo4j/neo4j/issues{/number}","pulls_url":"https://api.github.com/repos/neo4j/neo4j/pulls{/number}","milestones_url":"https://api.github.com/repos/neo4j/neo4j/milestones{/number}","notifications_url":"https://api.github.com/repos/neo4j/neo4j/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/neo4j/neo4j/labels{/name}","releases_url":"https://api.github.com/repos/neo4j/neo4j/releases{/id}","deployments_url":"https://api.github.com/repos/neo4j/neo4j/deployments","created_at":"2012-11-12T08:46:15Z","updated_at":"2016-03-10T13:15:16Z","pushed_at":"2016-03-11T07:14:12Z","git_url":"git://github.com/neo4j/neo4j.git","ssh_url":"git@github.com:neo4j/neo4j.git","clone_url":"https://github.com/neo4j/neo4j.git","svn_url":"https://github.com/neo4j/neo4j","homepage":"http://neo4j.com","size":340083,"stargazers_count":2406,"watchers_count":2406,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":856,"mirror_url":null,"open_issues_count":387,"forks":856,"open_issues":387,"watchers":2406,"default_branch":"3.0"}},"_links":{"self":{"href":"https://api.github.com/repos/neo4j/neo4j/pulls/6670"},"html":{"href":"https://github.com/neo4j/neo4j/pull/6670"},"issue":{"href":"https://api.github.com/repos/neo4j/neo4j/issues/6670"},"comments":{"href":"https://api.github.com/repos/neo4j/neo4j/issues/6670/comments"},"review_comments":{"href":"https://api.github.com/repos/neo4j/neo4j/pulls/6670/comments"},"review_comment":{"href":"https://api.github.com/repos/neo4j/neo4j/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/neo4j/neo4j/pulls/6670/commits"},"statuses":{"href":"https://api.github.com/repos/neo4j/neo4j/statuses/198337d2f96e46ecf9238b84b1bd584ce63975c6"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":24,"additions":3017,"deletions":884,"changed_files":117}}