{"action":"created","issue":{"url":"https://api.github.com/repos/cmu-db/peloton/issues/107","repository_url":"https://api.github.com/repos/cmu-db/peloton","labels_url":"https://api.github.com/repos/cmu-db/peloton/issues/107/labels{/name}","comments_url":"https://api.github.com/repos/cmu-db/peloton/issues/107/comments","events_url":"https://api.github.com/repos/cmu-db/peloton/issues/107/events","html_url":"https://github.com/cmu-db/peloton/pull/107","id":145544305,"number":107,"title":"Add copy functions to expressions.","user":{"login":"amaliujia","id":1938382,"avatar_url":"https://avatars.githubusercontent.com/u/1938382?v=3","gravatar_id":"","url":"https://api.github.com/users/amaliujia","html_url":"https://github.com/amaliujia","followers_url":"https://api.github.com/users/amaliujia/followers","following_url":"https://api.github.com/users/amaliujia/following{/other_user}","gists_url":"https://api.github.com/users/amaliujia/gists{/gist_id}","starred_url":"https://api.github.com/users/amaliujia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amaliujia/subscriptions","organizations_url":"https://api.github.com/users/amaliujia/orgs","repos_url":"https://api.github.com/users/amaliujia/repos","events_url":"https://api.github.com/users/amaliujia/events{/privacy}","received_events_url":"https://api.github.com/users/amaliujia/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-04-03T21:51:05Z","updated_at":"2016-04-04T03:23:21Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/cmu-db/peloton/pulls/107","html_url":"https://github.com/cmu-db/peloton/pull/107","diff_url":"https://github.com/cmu-db/peloton/pull/107.diff","patch_url":"https://github.com/cmu-db/peloton/pull/107.patch"},"body":"In order to support intra-query parallelism, peloton plan tree has to be copied. During copy, the difficult but necessary part is to copy expression classes. \r\n\r\nIn this commit, AbstractExpression is added a Copy interface, like following:\r\n\r\n`  virtual AbstractExpression *Copy() const = 0;`\r\n\r\nEach child class of AbstractExpression  implements this interface, and do recursively copy in a clean manner.\r\n\r\nIn expression_test, the old tests are extended, to test if copied expressions are correct."},"comment":{"url":"https://api.github.com/repos/cmu-db/peloton/issues/comments/205117413","html_url":"https://github.com/cmu-db/peloton/pull/107#issuecomment-205117413","issue_url":"https://api.github.com/repos/cmu-db/peloton/issues/107","id":205117413,"user":{"login":"jarulraj","id":5521975,"avatar_url":"https://avatars.githubusercontent.com/u/5521975?v=3","gravatar_id":"","url":"https://api.github.com/users/jarulraj","html_url":"https://github.com/jarulraj","followers_url":"https://api.github.com/users/jarulraj/followers","following_url":"https://api.github.com/users/jarulraj/following{/other_user}","gists_url":"https://api.github.com/users/jarulraj/gists{/gist_id}","starred_url":"https://api.github.com/users/jarulraj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jarulraj/subscriptions","organizations_url":"https://api.github.com/users/jarulraj/orgs","repos_url":"https://api.github.com/users/jarulraj/repos","events_url":"https://api.github.com/users/jarulraj/events{/privacy}","received_events_url":"https://api.github.com/users/jarulraj/received_events","type":"User","site_admin":false},"created_at":"2016-04-04T03:23:21Z","updated_at":"2016-04-04T03:23:21Z","body":"Nice job."}}