{"action":"created","comment":{"url":"https://api.github.com/repos/hyrise/hyrise/pulls/comments/154659471","pull_request_review_id":80853409,"id":154659471,"diff_hunk":"@@ -539,40 +467,27 @@ int Console::visualize(const std::string& input) {\n       LQPVisualizer visualizer;\n       visualizer.visualize(lqp_roots, graph_filename, img_filename);\n     } catch (const std::exception& exception) {\n-      out(\"Exception while creating query plan:\\n  \" + std::string(exception.what()) + \"\\n\");\n+      out(std::string(exception.what()) + \"\\n\");\n       return ReturnCode::Error;\n     }\n   } else {\n     // Compile the parse result\n+    SQLQueryPlan plan;\n     try {\n-      plan = SQLPlanner::plan(parse_result);\n+      plan = _sql_pipeline->get_query_plan();\n     } catch (const std::exception& exception) {\n-      out(\"Exception thrown while compiling query plan:\\n  \" + std::string(exception.what()) + \"\\n\");\n+      out(std::string(exception.what()) + \"\\n\");\n       return ReturnCode::Error;\n     }\n \n     if (mode != \"noexec\") {\n-      const auto auto_commit = (_explicitly_created_transaction_context == nullptr);\n-      auto transaction_context =\n-          auto_commit ? TransactionManager::get().new_transaction_context() : _explicitly_created_transaction_context;\n-\n-      plan.set_transaction_context(transaction_context);\n-\n-      if (_execute_plan(plan) == ReturnCode::Error) {\n-        transaction_context->rollback();\n+      try {\n+        _sql_pipeline->get_result_table();\n+      } catch (const std::exception& exception) {\n+        out(\"An operator failed and the transaction has been rolled back:\\n\" + std::string(exception.what()) + \"\\n\");","path":"src/bin/console/console.cpp","position":200,"original_position":200,"commit_id":"0f0665172d3444c57bad44269c4151e45b74454e","original_commit_id":"0f0665172d3444c57bad44269c4151e45b74454e","user":{"login":"mrzzzrm","id":2679018,"avatar_url":"https://avatars3.githubusercontent.com/u/2679018?v=4","gravatar_id":"","url":"https://api.github.com/users/mrzzzrm","html_url":"https://github.com/mrzzzrm","followers_url":"https://api.github.com/users/mrzzzrm/followers","following_url":"https://api.github.com/users/mrzzzrm/following{/other_user}","gists_url":"https://api.github.com/users/mrzzzrm/gists{/gist_id}","starred_url":"https://api.github.com/users/mrzzzrm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrzzzrm/subscriptions","organizations_url":"https://api.github.com/users/mrzzzrm/orgs","repos_url":"https://api.github.com/users/mrzzzrm/repos","events_url":"https://api.github.com/users/mrzzzrm/events{/privacy}","received_events_url":"https://api.github.com/users/mrzzzrm/received_events","type":"User","site_admin":false},"body":"this could be any error, right? Parsing, Assert, Whatnot... And rollback only happens when a MVCC action fails, right? So this error message night be misleading","created_at":"2017-12-04T14:18:50Z","updated_at":"2017-12-04T14:38:23Z","html_url":"https://github.com/hyrise/hyrise/pull/552#discussion_r154659471","pull_request_url":"https://api.github.com/repos/hyrise/hyrise/pulls/552","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/hyrise/hyrise/pulls/comments/154659471"},"html":{"href":"https://github.com/hyrise/hyrise/pull/552#discussion_r154659471"},"pull_request":{"href":"https://api.github.com/repos/hyrise/hyrise/pulls/552"}}},"pull_request":{"url":"https://api.github.com/repos/hyrise/hyrise/pulls/552","id":155071123,"html_url":"https://github.com/hyrise/hyrise/pull/552","diff_url":"https://github.com/hyrise/hyrise/pull/552.diff","patch_url":"https://github.com/hyrise/hyrise/pull/552.patch","issue_url":"https://api.github.com/repos/hyrise/hyrise/issues/552","number":552,"state":"open","locked":false,"title":"Harmonized SQL interface","user":{"login":"lawben","id":7422656,"avatar_url":"https://avatars0.githubusercontent.com/u/7422656?v=4","gravatar_id":"","url":"https://api.github.com/users/lawben","html_url":"https://github.com/lawben","followers_url":"https://api.github.com/users/lawben/followers","following_url":"https://api.github.com/users/lawben/following{/other_user}","gists_url":"https://api.github.com/users/lawben/gists{/gist_id}","starred_url":"https://api.github.com/users/lawben/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lawben/subscriptions","organizations_url":"https://api.github.com/users/lawben/orgs","repos_url":"https://api.github.com/users/lawben/repos","events_url":"https://api.github.com/users/lawben/events{/privacy}","received_events_url":"https://api.github.com/users/lawben/received_events","type":"User","site_admin":false},"body":"This PR addresss #367. This is a first draft, as I assume there could be some discussion on the design. For now, all it does is unify all that happened in the `Console`. The test runners are not changed yet. \r\n\r\nThe main idea of the `SQLPipeline` is that we create a single object with an SQL string. In this object we can then go through all the steps, i.e. parsing, creating LQP, creating QueryPlan, creating tasks, and executing. \r\n\r\nThe intermediate results are cached, so a second call to `get_query_plan()` will just return the cached result. All results live as long as the `SQLPipeline`, if it is deleted, so are all references to the results. I don't think it makes sense to return, e.g. `shared_ptr`s to keep the results alive longer than the pipeline.\r\n\r\nThere are some still problems as discussed in #367 - they will be addressed as soon as an initial design is agreed on.","created_at":"2017-11-28T13:29:25Z","updated_at":"2017-12-04T14:38:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2cf4fb252d37d722ad7b259ed664ccb340a1f89c","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/hyrise/hyrise/pulls/552/commits","review_comments_url":"https://api.github.com/repos/hyrise/hyrise/pulls/552/comments","review_comment_url":"https://api.github.com/repos/hyrise/hyrise/pulls/comments{/number}","comments_url":"https://api.github.com/repos/hyrise/hyrise/issues/552/comments","statuses_url":"https://api.github.com/repos/hyrise/hyrise/statuses/0f0665172d3444c57bad44269c4151e45b74454e","head":{"label":"hyrise:lawben/sql_interface","ref":"lawben/sql_interface","sha":"0f0665172d3444c57bad44269c4151e45b74454e","user":{"login":"hyrise","id":3465095,"avatar_url":"https://avatars2.githubusercontent.com/u/3465095?v=4","gravatar_id":"","url":"https://api.github.com/users/hyrise","html_url":"https://github.com/hyrise","followers_url":"https://api.github.com/users/hyrise/followers","following_url":"https://api.github.com/users/hyrise/following{/other_user}","gists_url":"https://api.github.com/users/hyrise/gists{/gist_id}","starred_url":"https://api.github.com/users/hyrise/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hyrise/subscriptions","organizations_url":"https://api.github.com/users/hyrise/orgs","repos_url":"https://api.github.com/users/hyrise/repos","events_url":"https://api.github.com/users/hyrise/events{/privacy}","received_events_url":"https://api.github.com/users/hyrise/received_events","type":"Organization","site_admin":false},"repo":{"id":87414843,"name":"hyrise","full_name":"hyrise/hyrise","owner":{"login":"hyrise","id":3465095,"avatar_url":"https://avatars2.githubusercontent.com/u/3465095?v=4","gravatar_id":"","url":"https://api.github.com/users/hyrise","html_url":"https://github.com/hyrise","followers_url":"https://api.github.com/users/hyrise/followers","following_url":"https://api.github.com/users/hyrise/following{/other_user}","gists_url":"https://api.github.com/users/hyrise/gists{/gist_id}","starred_url":"https://api.github.com/users/hyrise/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hyrise/subscriptions","organizations_url":"https://api.github.com/users/hyrise/orgs","repos_url":"https://api.github.com/users/hyrise/repos","events_url":"https://api.github.com/users/hyrise/events{/privacy}","received_events_url":"https://api.github.com/users/hyrise/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/hyrise/hyrise","description":"A research in-memory database.","fork":false,"url":"https://api.github.com/repos/hyrise/hyrise","forks_url":"https://api.github.com/repos/hyrise/hyrise/forks","keys_url":"https://api.github.com/repos/hyrise/hyrise/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hyrise/hyrise/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hyrise/hyrise/teams","hooks_url":"https://api.github.com/repos/hyrise/hyrise/hooks","issue_events_url":"https://api.github.com/repos/hyrise/hyrise/issues/events{/number}","events_url":"https://api.github.com/repos/hyrise/hyrise/events","assignees_url":"https://api.github.com/repos/hyrise/hyrise/assignees{/user}","branches_url":"https://api.github.com/repos/hyrise/hyrise/branches{/branch}","tags_url":"https://api.github.com/repos/hyrise/hyrise/tags","blobs_url":"https://api.github.com/repos/hyrise/hyrise/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hyrise/hyrise/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hyrise/hyrise/git/refs{/sha}","trees_url":"https://api.github.com/repos/hyrise/hyrise/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hyrise/hyrise/statuses/{sha}","languages_url":"https://api.github.com/repos/hyrise/hyrise/languages","stargazers_url":"https://api.github.com/repos/hyrise/hyrise/stargazers","contributors_url":"https://api.github.com/repos/hyrise/hyrise/contributors","subscribers_url":"https://api.github.com/repos/hyrise/hyrise/subscribers","subscription_url":"https://api.github.com/repos/hyrise/hyrise/subscription","commits_url":"https://api.github.com/repos/hyrise/hyrise/commits{/sha}","git_commits_url":"https://api.github.com/repos/hyrise/hyrise/git/commits{/sha}","comments_url":"https://api.github.com/repos/hyrise/hyrise/comments{/number}","issue_comment_url":"https://api.github.com/repos/hyrise/hyrise/issues/comments{/number}","contents_url":"https://api.github.com/repos/hyrise/hyrise/contents/{+path}","compare_url":"https://api.github.com/repos/hyrise/hyrise/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hyrise/hyrise/merges","archive_url":"https://api.github.com/repos/hyrise/hyrise/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hyrise/hyrise/downloads","issues_url":"https://api.github.com/repos/hyrise/hyrise/issues{/number}","pulls_url":"https://api.github.com/repos/hyrise/hyrise/pulls{/number}","milestones_url":"https://api.github.com/repos/hyrise/hyrise/milestones{/number}","notifications_url":"https://api.github.com/repos/hyrise/hyrise/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hyrise/hyrise/labels{/name}","releases_url":"https://api.github.com/repos/hyrise/hyrise/releases{/id}","deployments_url":"https://api.github.com/repos/hyrise/hyrise/deployments","created_at":"2017-04-06T10:03:31Z","updated_at":"2017-11-29T13:07:08Z","pushed_at":"2017-12-04T14:18:16Z","git_url":"git://github.com/hyrise/hyrise.git","ssh_url":"git@github.com:hyrise/hyrise.git","clone_url":"https://github.com/hyrise/hyrise.git","svn_url":"https://github.com/hyrise/hyrise","homepage":"https://hpi.de/plattner/projects/hyrise.html","size":9837,"stargazers_count":47,"watchers_count":47,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"archived":false,"open_issues_count":28,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":5,"open_issues":28,"watchers":47,"default_branch":"master"}},"base":{"label":"hyrise:master","ref":"master","sha":"1930d72111034bb1859f93729ed288c8dd546e89","user":{"login":"hyrise","id":3465095,"avatar_url":"https://avatars2.githubusercontent.com/u/3465095?v=4","gravatar_id":"","url":"https://api.github.com/users/hyrise","html_url":"https://github.com/hyrise","followers_url":"https://api.github.com/users/hyrise/followers","following_url":"https://api.github.com/users/hyrise/following{/other_user}","gists_url":"https://api.github.com/users/hyrise/gists{/gist_id}","starred_url":"https://api.github.com/users/hyrise/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hyrise/subscriptions","organizations_url":"https://api.github.com/users/hyrise/orgs","repos_url":"https://api.github.com/users/hyrise/repos","events_url":"https://api.github.com/users/hyrise/events{/privacy}","received_events_url":"https://api.github.com/users/hyrise/received_events","type":"Organization","site_admin":false},"repo":{"id":87414843,"name":"hyrise","full_name":"hyrise/hyrise","owner":{"login":"hyrise","id":3465095,"avatar_url":"https://avatars2.githubusercontent.com/u/3465095?v=4","gravatar_id":"","url":"https://api.github.com/users/hyrise","html_url":"https://github.com/hyrise","followers_url":"https://api.github.com/users/hyrise/followers","following_url":"https://api.github.com/users/hyrise/following{/other_user}","gists_url":"https://api.github.com/users/hyrise/gists{/gist_id}","starred_url":"https://api.github.com/users/hyrise/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hyrise/subscriptions","organizations_url":"https://api.github.com/users/hyrise/orgs","repos_url":"https://api.github.com/users/hyrise/repos","events_url":"https://api.github.com/users/hyrise/events{/privacy}","received_events_url":"https://api.github.com/users/hyrise/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/hyrise/hyrise","description":"A research in-memory database.","fork":false,"url":"https://api.github.com/repos/hyrise/hyrise","forks_url":"https://api.github.com/repos/hyrise/hyrise/forks","keys_url":"https://api.github.com/repos/hyrise/hyrise/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hyrise/hyrise/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hyrise/hyrise/teams","hooks_url":"https://api.github.com/repos/hyrise/hyrise/hooks","issue_events_url":"https://api.github.com/repos/hyrise/hyrise/issues/events{/number}","events_url":"https://api.github.com/repos/hyrise/hyrise/events","assignees_url":"https://api.github.com/repos/hyrise/hyrise/assignees{/user}","branches_url":"https://api.github.com/repos/hyrise/hyrise/branches{/branch}","tags_url":"https://api.github.com/repos/hyrise/hyrise/tags","blobs_url":"https://api.github.com/repos/hyrise/hyrise/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hyrise/hyrise/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hyrise/hyrise/git/refs{/sha}","trees_url":"https://api.github.com/repos/hyrise/hyrise/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hyrise/hyrise/statuses/{sha}","languages_url":"https://api.github.com/repos/hyrise/hyrise/languages","stargazers_url":"https://api.github.com/repos/hyrise/hyrise/stargazers","contributors_url":"https://api.github.com/repos/hyrise/hyrise/contributors","subscribers_url":"https://api.github.com/repos/hyrise/hyrise/subscribers","subscription_url":"https://api.github.com/repos/hyrise/hyrise/subscription","commits_url":"https://api.github.com/repos/hyrise/hyrise/commits{/sha}","git_commits_url":"https://api.github.com/repos/hyrise/hyrise/git/commits{/sha}","comments_url":"https://api.github.com/repos/hyrise/hyrise/comments{/number}","issue_comment_url":"https://api.github.com/repos/hyrise/hyrise/issues/comments{/number}","contents_url":"https://api.github.com/repos/hyrise/hyrise/contents/{+path}","compare_url":"https://api.github.com/repos/hyrise/hyrise/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hyrise/hyrise/merges","archive_url":"https://api.github.com/repos/hyrise/hyrise/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hyrise/hyrise/downloads","issues_url":"https://api.github.com/repos/hyrise/hyrise/issues{/number}","pulls_url":"https://api.github.com/repos/hyrise/hyrise/pulls{/number}","milestones_url":"https://api.github.com/repos/hyrise/hyrise/milestones{/number}","notifications_url":"https://api.github.com/repos/hyrise/hyrise/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hyrise/hyrise/labels{/name}","releases_url":"https://api.github.com/repos/hyrise/hyrise/releases{/id}","deployments_url":"https://api.github.com/repos/hyrise/hyrise/deployments","created_at":"2017-04-06T10:03:31Z","updated_at":"2017-11-29T13:07:08Z","pushed_at":"2017-12-04T14:18:16Z","git_url":"git://github.com/hyrise/hyrise.git","ssh_url":"git@github.com:hyrise/hyrise.git","clone_url":"https://github.com/hyrise/hyrise.git","svn_url":"https://github.com/hyrise/hyrise","homepage":"https://hpi.de/plattner/projects/hyrise.html","size":9837,"stargazers_count":47,"watchers_count":47,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"archived":false,"open_issues_count":28,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":5,"open_issues":28,"watchers":47,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/hyrise/hyrise/pulls/552"},"html":{"href":"https://github.com/hyrise/hyrise/pull/552"},"issue":{"href":"https://api.github.com/repos/hyrise/hyrise/issues/552"},"comments":{"href":"https://api.github.com/repos/hyrise/hyrise/issues/552/comments"},"review_comments":{"href":"https://api.github.com/repos/hyrise/hyrise/pulls/552/comments"},"review_comment":{"href":"https://api.github.com/repos/hyrise/hyrise/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/hyrise/hyrise/pulls/552/commits"},"statuses":{"href":"https://api.github.com/repos/hyrise/hyrise/statuses/0f0665172d3444c57bad44269c4151e45b74454e"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"mrzzzrm"}}