{"action":"created","issue":{"url":"https://api.github.com/repos/cockroachdb/cockroach/issues/22277","repository_url":"https://api.github.com/repos/cockroachdb/cockroach","labels_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/22277/labels{/name}","comments_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/22277/comments","events_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/22277/events","html_url":"https://github.com/cockroachdb/cockroach/pull/22277","id":293329799,"number":22277,"title":"sql: introduce connExecutor, the query execution orchestrator ","user":{"login":"andreimatei","id":377201,"avatar_url":"https://avatars1.githubusercontent.com/u/377201?v=4","gravatar_id":"","url":"https://api.github.com/users/andreimatei","html_url":"https://github.com/andreimatei","followers_url":"https://api.github.com/users/andreimatei/followers","following_url":"https://api.github.com/users/andreimatei/following{/other_user}","gists_url":"https://api.github.com/users/andreimatei/gists{/gist_id}","starred_url":"https://api.github.com/users/andreimatei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andreimatei/subscriptions","organizations_url":"https://api.github.com/users/andreimatei/orgs","repos_url":"https://api.github.com/users/andreimatei/repos","events_url":"https://api.github.com/users/andreimatei/events{/privacy}","received_events_url":"https://api.github.com/users/andreimatei/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"knz","id":642886,"avatar_url":"https://avatars3.githubusercontent.com/u/642886?v=4","gravatar_id":"","url":"https://api.github.com/users/knz","html_url":"https://github.com/knz","followers_url":"https://api.github.com/users/knz/followers","following_url":"https://api.github.com/users/knz/following{/other_user}","gists_url":"https://api.github.com/users/knz/gists{/gist_id}","starred_url":"https://api.github.com/users/knz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/knz/subscriptions","organizations_url":"https://api.github.com/users/knz/orgs","repos_url":"https://api.github.com/users/knz/repos","events_url":"https://api.github.com/users/knz/events{/privacy}","received_events_url":"https://api.github.com/users/knz/received_events","type":"User","site_admin":false},"assignees":[{"login":"knz","id":642886,"avatar_url":"https://avatars3.githubusercontent.com/u/642886?v=4","gravatar_id":"","url":"https://api.github.com/users/knz","html_url":"https://github.com/knz","followers_url":"https://api.github.com/users/knz/followers","following_url":"https://api.github.com/users/knz/following{/other_user}","gists_url":"https://api.github.com/users/knz/gists{/gist_id}","starred_url":"https://api.github.com/users/knz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/knz/subscriptions","organizations_url":"https://api.github.com/users/knz/orgs","repos_url":"https://api.github.com/users/knz/repos","events_url":"https://api.github.com/users/knz/events{/privacy}","received_events_url":"https://api.github.com/users/knz/received_events","type":"User","site_admin":false},{"login":"nvanbenschoten","id":5438456,"avatar_url":"https://avatars3.githubusercontent.com/u/5438456?v=4","gravatar_id":"","url":"https://api.github.com/users/nvanbenschoten","html_url":"https://github.com/nvanbenschoten","followers_url":"https://api.github.com/users/nvanbenschoten/followers","following_url":"https://api.github.com/users/nvanbenschoten/following{/other_user}","gists_url":"https://api.github.com/users/nvanbenschoten/gists{/gist_id}","starred_url":"https://api.github.com/users/nvanbenschoten/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nvanbenschoten/subscriptions","organizations_url":"https://api.github.com/users/nvanbenschoten/orgs","repos_url":"https://api.github.com/users/nvanbenschoten/repos","events_url":"https://api.github.com/users/nvanbenschoten/events{/privacy}","received_events_url":"https://api.github.com/users/nvanbenschoten/received_events","type":"User","site_admin":false}],"milestone":null,"comments":18,"created_at":"2018-01-31T22:08:43Z","updated_at":"2018-02-19T15:53:39Z","closed_at":null,"author_association":"OWNER","pull_request":{"url":"https://api.github.com/repos/cockroachdb/cockroach/pulls/22277","html_url":"https://github.com/cockroachdb/cockroach/pull/22277","diff_url":"https://github.com/cockroachdb/cockroach/pull/22277.diff","patch_url":"https://github.com/cockroachdb/cockroach/pull/22277.patch"},"body":"Release note: None\r\n\r\nThe connExecutor is the top dog that interfaces with a pgwire connection\r\n(through the clientComm and CommandResult interfaces), consumes a stream\r\nof queries and produces a stream of results. It encapsulates the\r\nconnection state machine for which it produces events. It interfaces\r\nwith the two SQL execution engines for actually running queries. Its\r\nmain responsibility is to dispatch statements based on the current state\r\n(in txn, not in txn, in aborted txn, etc) and to handle execution in all\r\nstates but Open (in Open it talks to an execution engine). It also\r\nhandles other commands than executiong queries: preparing, binding, etc\r\nand it maintains the session state associated with prepares statements."},"comment":{"url":"https://api.github.com/repos/cockroachdb/cockroach/issues/comments/366732919","html_url":"https://github.com/cockroachdb/cockroach/pull/22277#issuecomment-366732919","issue_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/22277","id":366732919,"user":{"login":"andreimatei","id":377201,"avatar_url":"https://avatars1.githubusercontent.com/u/377201?v=4","gravatar_id":"","url":"https://api.github.com/users/andreimatei","html_url":"https://github.com/andreimatei","followers_url":"https://api.github.com/users/andreimatei/followers","following_url":"https://api.github.com/users/andreimatei/following{/other_user}","gists_url":"https://api.github.com/users/andreimatei/gists{/gist_id}","starred_url":"https://api.github.com/users/andreimatei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andreimatei/subscriptions","organizations_url":"https://api.github.com/users/andreimatei/orgs","repos_url":"https://api.github.com/users/andreimatei/repos","events_url":"https://api.github.com/users/andreimatei/events{/privacy}","received_events_url":"https://api.github.com/users/andreimatei/received_events","type":"User","site_admin":false},"created_at":"2018-02-19T15:53:39Z","updated_at":"2018-02-19T15:53:39Z","author_association":"OWNER","body":"I thought in SQL we like panics over Fatalf because of that panic handler that anonymizes the query and sends a crash report, no?\nGenerally this PR reduces the number of fatals/panics in this module, because a lot of things return errors and close the connection (which before wasn't an option; most code did not have a way to close the connection). But there are still some; sometimes it was a judgement call.\n\n---\n\nReview status: 50 of 52 files reviewed at latest revision, 18 unresolved discussions, some commit checks pending.\n\n---\n\n\n\n*Comments from [Reviewable](https://reviewable.io:443/reviews/cockroachdb/cockroach/22277#-:-L5ikahvF9hhDnPpViG2:b2k96ru)*\n<!-- Sent from Reviewable.io -->\n"}}
{"actor":{"display_login":"andreimatei"}}