{"action":"created","issue":{"url":"https://api.github.com/repos/lpsmith/postgresql-simple/issues/136","labels_url":"https://api.github.com/repos/lpsmith/postgresql-simple/issues/136/labels{/name}","comments_url":"https://api.github.com/repos/lpsmith/postgresql-simple/issues/136/comments","events_url":"https://api.github.com/repos/lpsmith/postgresql-simple/issues/136/events","html_url":"https://github.com/lpsmith/postgresql-simple/pull/136","id":53361100,"number":136,"title":"initial support for using foundationdb","user":{"login":"gregwebs","id":1183,"avatar_url":"https://avatars.githubusercontent.com/u/1183?v=3","gravatar_id":"","url":"https://api.github.com/users/gregwebs","html_url":"https://github.com/gregwebs","followers_url":"https://api.github.com/users/gregwebs/followers","following_url":"https://api.github.com/users/gregwebs/following{/other_user}","gists_url":"https://api.github.com/users/gregwebs/gists{/gist_id}","starred_url":"https://api.github.com/users/gregwebs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gregwebs/subscriptions","organizations_url":"https://api.github.com/users/gregwebs/orgs","repos_url":"https://api.github.com/users/gregwebs/repos","events_url":"https://api.github.com/users/gregwebs/events{/privacy}","received_events_url":"https://api.github.com/users/gregwebs/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-01-05T03:31:26Z","updated_at":"2015-01-05T04:47:13Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/lpsmith/postgresql-simple/pulls/136","html_url":"https://github.com/lpsmith/postgresql-simple/pull/136","diff_url":"https://github.com/lpsmith/postgresql-simple/pull/136.diff","patch_url":"https://github.com/lpsmith/postgresql-simple/pull/136.patch"},"body":"FoundationDB is a modern database with a focus on perfecting distributed transactions and fault tolerance (the hard stuff).\r\nOn top of that, they build layers, including a [SQL Layer](https://foundationdb.com/layers/sql).\r\nThe SQL Layer speaks the PostgresSQL protocol and works with libpq.\r\n\r\nThis patch adds a foundatbiondb flag that sets up CPP.\r\nIt CPP removes some connection initialization code and code to set the isolation level.\r\nIsolation levels are not needed in FoundationDB because every transaction has a [serializeable isolation level](http://blog.foundationdb.com/whiteboard-series-isolation).\r\n\r\nMost of the test cases are PostgresSQL specific and thus are removed with CPP.\r\nThe few that are left show that binary serialization definitely has issues.\r\nThere are probably some other similar issues to fix around data types."},"comment":{"url":"https://api.github.com/repos/lpsmith/postgresql-simple/issues/comments/68668104","html_url":"https://github.com/lpsmith/postgresql-simple/pull/136#issuecomment-68668104","issue_url":"https://api.github.com/repos/lpsmith/postgresql-simple/issues/136","id":68668104,"user":{"login":"lpsmith","id":98839,"avatar_url":"https://avatars.githubusercontent.com/u/98839?v=3","gravatar_id":"","url":"https://api.github.com/users/lpsmith","html_url":"https://github.com/lpsmith","followers_url":"https://api.github.com/users/lpsmith/followers","following_url":"https://api.github.com/users/lpsmith/following{/other_user}","gists_url":"https://api.github.com/users/lpsmith/gists{/gist_id}","starred_url":"https://api.github.com/users/lpsmith/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lpsmith/subscriptions","organizations_url":"https://api.github.com/users/lpsmith/orgs","repos_url":"https://api.github.com/users/lpsmith/repos","events_url":"https://api.github.com/users/lpsmith/events{/privacy}","received_events_url":"https://api.github.com/users/lpsmith/received_events","type":"User","site_admin":false},"created_at":"2015-01-05T04:47:13Z","updated_at":"2015-01-05T04:47:13Z","body":"I don't think CPP is a good approach,  and am pretty dead-set against it.   For starters,  I think you'd want to be able to speak to both Postgres  and FoundationDB backends in one program.     And I don't like the idea of semantics having this sort of dependency on compilation flags.\r\n\r\nBreezing through the patch,  I don't like hard-coding connection information into the test suite,  and I don't like the move away from temporary tables,  as it ensures the test suite doesn't have any lasting effects on the database.   I'm be more than happy to find an alternative, however.\r\n\r\nRegarding transactions,  I'm not sure how to deal with them all.   However,  postgresql does support `rollback`, so we should probably just go with that.\r\n"}}