{"action":"created","issue":{"url":"https://api.github.com/repos/citusdata/citus/issues/749","repository_url":"https://api.github.com/repos/citusdata/citus","labels_url":"https://api.github.com/repos/citusdata/citus/issues/749/labels{/name}","comments_url":"https://api.github.com/repos/citusdata/citus/issues/749/comments","events_url":"https://api.github.com/repos/citusdata/citus/issues/749/events","html_url":"https://github.com/citusdata/citus/pull/749","id":172794707,"number":749,"title":"Forbid EXCLUDE constraints on distributed tables ","user":{"login":"robin900","id":325578,"avatar_url":"https://avatars.githubusercontent.com/u/325578?v=3","gravatar_id":"","url":"https://api.github.com/users/robin900","html_url":"https://github.com/robin900","followers_url":"https://api.github.com/users/robin900/followers","following_url":"https://api.github.com/users/robin900/following{/other_user}","gists_url":"https://api.github.com/users/robin900/gists{/gist_id}","starred_url":"https://api.github.com/users/robin900/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robin900/subscriptions","organizations_url":"https://api.github.com/users/robin900/orgs","repos_url":"https://api.github.com/users/robin900/repos","events_url":"https://api.github.com/users/robin900/events{/privacy}","received_events_url":"https://api.github.com/users/robin900/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/citusdata/citus/labels/CLA%20Signed","name":"CLA Signed","color":"54C55D"}],"state":"open","locked":false,"assignee":{"login":"sumedhpathak","id":2596363,"avatar_url":"https://avatars.githubusercontent.com/u/2596363?v=3","gravatar_id":"","url":"https://api.github.com/users/sumedhpathak","html_url":"https://github.com/sumedhpathak","followers_url":"https://api.github.com/users/sumedhpathak/followers","following_url":"https://api.github.com/users/sumedhpathak/following{/other_user}","gists_url":"https://api.github.com/users/sumedhpathak/gists{/gist_id}","starred_url":"https://api.github.com/users/sumedhpathak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sumedhpathak/subscriptions","organizations_url":"https://api.github.com/users/sumedhpathak/orgs","repos_url":"https://api.github.com/users/sumedhpathak/repos","events_url":"https://api.github.com/users/sumedhpathak/events{/privacy}","received_events_url":"https://api.github.com/users/sumedhpathak/received_events","type":"User","site_admin":false},"assignees":[{"login":"sumedhpathak","id":2596363,"avatar_url":"https://avatars.githubusercontent.com/u/2596363?v=3","gravatar_id":"","url":"https://api.github.com/users/sumedhpathak","html_url":"https://github.com/sumedhpathak","followers_url":"https://api.github.com/users/sumedhpathak/followers","following_url":"https://api.github.com/users/sumedhpathak/following{/other_user}","gists_url":"https://api.github.com/users/sumedhpathak/gists{/gist_id}","starred_url":"https://api.github.com/users/sumedhpathak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sumedhpathak/subscriptions","organizations_url":"https://api.github.com/users/sumedhpathak/orgs","repos_url":"https://api.github.com/users/sumedhpathak/repos","events_url":"https://api.github.com/users/sumedhpathak/events{/privacy}","received_events_url":"https://api.github.com/users/sumedhpathak/received_events","type":"User","site_admin":false},{"login":"onderkalaci","id":7829470,"avatar_url":"https://avatars.githubusercontent.com/u/7829470?v=3","gravatar_id":"","url":"https://api.github.com/users/onderkalaci","html_url":"https://github.com/onderkalaci","followers_url":"https://api.github.com/users/onderkalaci/followers","following_url":"https://api.github.com/users/onderkalaci/following{/other_user}","gists_url":"https://api.github.com/users/onderkalaci/gists{/gist_id}","starred_url":"https://api.github.com/users/onderkalaci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/onderkalaci/subscriptions","organizations_url":"https://api.github.com/users/onderkalaci/orgs","repos_url":"https://api.github.com/users/onderkalaci/repos","events_url":"https://api.github.com/users/onderkalaci/events{/privacy}","received_events_url":"https://api.github.com/users/onderkalaci/received_events","type":"User","site_admin":false}],"milestone":null,"comments":8,"created_at":"2016-08-23T20:12:06Z","updated_at":"2016-09-09T16:54:51Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/citusdata/citus/pulls/749","html_url":"https://github.com/citusdata/citus/pull/749","diff_url":"https://github.com/citusdata/citus/pull/749.diff","patch_url":"https://github.com/citusdata/citus/pull/749.patch"},"body":"...just as we forbid UNIQUE or PRIMARY KEY constraints. If an EXCLUDE constraint includes\r\nthe distribution column, we do not examine the exclusion operator\r\nfor the column; we assume it to be sufficient to prevent shard\r\noverlap.\r\n\r\nFixes #748."},"comment":{"url":"https://api.github.com/repos/citusdata/citus/issues/comments/245972560","html_url":"https://github.com/citusdata/citus/pull/749#issuecomment-245972560","issue_url":"https://api.github.com/repos/citusdata/citus/issues/749","id":245972560,"user":{"login":"robin900","id":325578,"avatar_url":"https://avatars.githubusercontent.com/u/325578?v=3","gravatar_id":"","url":"https://api.github.com/users/robin900","html_url":"https://github.com/robin900","followers_url":"https://api.github.com/users/robin900/followers","following_url":"https://api.github.com/users/robin900/following{/other_user}","gists_url":"https://api.github.com/users/robin900/gists{/gist_id}","starred_url":"https://api.github.com/users/robin900/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robin900/subscriptions","organizations_url":"https://api.github.com/users/robin900/orgs","repos_url":"https://api.github.com/users/robin900/repos","events_url":"https://api.github.com/users/robin900/events{/privacy}","received_events_url":"https://api.github.com/users/robin900/received_events","type":"User","site_admin":false},"created_at":"2016-09-09T16:54:51Z","updated_at":"2016-09-09T16:54:51Z","body":"@onderkalaci While evaluating Citus, I did not check whether the exclusion constraints were propagated to the shard tables. After reviewing master/master_node_protocol.c, it seems clear that they were not propagated correctly. pg_get_indexdef_string() doesn't handle exclusion ops and thus the resulting index definition never happens. A one-line change to master_node_protocol.c lets pg_get_constraintdef_string() do the work and all seems well. Amended commit force-pushed to feature branch, and all tests passed.\r\n"}}
{"actor":{"display_login":"robin900"}}