{"action":"created","comment":{"url":"https://api.github.com/repos/pgjdbc/pgjdbc/pulls/comments/242880128","pull_request_review_id":186498269,"id":242880128,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0Mjg4MDEyOA==","diff_hunk":"@@ -64,19 +66,86 @@ ResultSet execSQLQuery(String s, int resultSetType, int resultSetConcurrency)\n   ReplicationProtocol getReplicationProtocol();\n \n   /**\n-   * <p>Construct and return an appropriate object for the given type and value. This only considers\n-   * the types registered via {@link org.postgresql.PGConnection#addDataType(String, Class)} and\n-   * {@link org.postgresql.PGConnection#addDataType(String, String)}.</p>\n+   * {@inheritDoc}\n+   *\n+   * <p>\n+   * Performs a defensive copy, per specification that returned map should be","path":"pgjdbc/src/main/java/org/postgresql/core/BaseConnection.java","position":19,"original_position":19,"commit_id":"f7baffe80d01ae08d0ddaf9746819225eea4bb7e","original_commit_id":"f7baffe80d01ae08d0ddaf9746819225eea4bb7e","user":{"login":"davecramer","id":406518,"node_id":"MDQ6VXNlcjQwNjUxOA==","avatar_url":"https://avatars1.githubusercontent.com/u/406518?v=4","gravatar_id":"","url":"https://api.github.com/users/davecramer","html_url":"https://github.com/davecramer","followers_url":"https://api.github.com/users/davecramer/followers","following_url":"https://api.github.com/users/davecramer/following{/other_user}","gists_url":"https://api.github.com/users/davecramer/gists{/gist_id}","starred_url":"https://api.github.com/users/davecramer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davecramer/subscriptions","organizations_url":"https://api.github.com/users/davecramer/orgs","repos_url":"https://api.github.com/users/davecramer/repos","events_url":"https://api.github.com/users/davecramer/events{/privacy}","received_events_url":"https://api.github.com/users/davecramer/received_events","type":"User","site_admin":false},"body":"I cannot see where the map needs to be modifiable in the spec ?","created_at":"2018-12-19T11:19:59Z","updated_at":"2018-12-19T11:19:59Z","html_url":"https://github.com/pgjdbc/pgjdbc/pull/1378#discussion_r242880128","pull_request_url":"https://api.github.com/repos/pgjdbc/pgjdbc/pulls/1378","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/pgjdbc/pgjdbc/pulls/comments/242880128"},"html":{"href":"https://github.com/pgjdbc/pgjdbc/pull/1378#discussion_r242880128"},"pull_request":{"href":"https://api.github.com/repos/pgjdbc/pgjdbc/pulls/1378"}}},"pull_request":{"url":"https://api.github.com/repos/pgjdbc/pgjdbc/pulls/1378","id":239652501,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM5NjUyNTAx","html_url":"https://github.com/pgjdbc/pgjdbc/pull/1378","diff_url":"https://github.com/pgjdbc/pgjdbc/pull/1378.diff","patch_url":"https://github.com/pgjdbc/pgjdbc/pull/1378.patch","issue_url":"https://api.github.com/repos/pgjdbc/pgjdbc/issues/1378","number":1378,"state":"open","locked":false,"title":"Implement single-attribute type map support for SQLData in `readObject`.","user":{"login":"aoindustries","id":20825951,"node_id":"MDQ6VXNlcjIwODI1OTUx","avatar_url":"https://avatars1.githubusercontent.com/u/20825951?v=4","gravatar_id":"","url":"https://api.github.com/users/aoindustries","html_url":"https://github.com/aoindustries","followers_url":"https://api.github.com/users/aoindustries/followers","following_url":"https://api.github.com/users/aoindustries/following{/other_user}","gists_url":"https://api.github.com/users/aoindustries/gists{/gist_id}","starred_url":"https://api.github.com/users/aoindustries/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aoindustries/subscriptions","organizations_url":"https://api.github.com/users/aoindustries/orgs","repos_url":"https://api.github.com/users/aoindustries/repos","events_url":"https://api.github.com/users/aoindustries/events{/privacy}","received_events_url":"https://api.github.com/users/aoindustries/received_events","type":"User","site_admin":false},"body":"This is related to issue #641. (https://github.com/pgjdbc/pgjdbc/issues/641)\r\n\r\nThis is complementary to our simpler pull request #1377 (https://github.com/pgjdbc/pgjdbc/pull/1377) that handles the `writeObject`.\r\n\r\nThis includes type inference for DOMAIN and ENUM types that come back from the server as the base type.  Type inference is used in `readObject(String,Class<?>)` and `readObject(int,Class<?>)`, where the type requested is matched to the type map of the connector.\r\n\r\nThe inference looks for a direct match first, then search for any inheritance matches.  Thus both providing a means to avoid ambiguity (direct match) and support of the separation of interface from implementation (inheritance match).\r\n\r\nWhen more than one type has been registered for the requested type, an SQLException is thrown due to ambiguity.  Please note, however, that inheritance inference will not conflict with direct inference in this base.  Ambiguity is within the categories of direct or inherited.\r\n\r\nAlthough there is some API changes, they are generally compatible changes.  Please consider prioritizing this as it will greatly assist us in using SQLData for our scalar / non-compound types (DOMAIN and ENUM).\r\n\r\nThank you.\r\n\r\n### All Submissions:\r\n\r\n* [x] Have you followed the guidelines in our [Contributing](https://github.com/pgjdbc/pgjdbc/blob/master/CONTRIBUTING.md) document?\r\n* [x] Have you checked to ensure there aren't other open [Pull Requests](../../pulls) for the same update/change?\r\n\r\n<!-- You can erase any parts of this template not applicable to your Pull Request. -->\r\n\r\n### New Feature Submissions:\r\n\r\n1. [ ] Does your submission pass tests?\r\n2. [x] Does mvn checkstyle:check pass ?\r\n\r\n### Changes to Existing Features:\r\n\r\n* [ ] Does this break existing behaviour? If so please explain.\r\n* [x] Have you added an explanation of what your changes do and why you'd like us to include them?\r\n* [ ] Have you written new tests for your core changes, as applicable?\r\n* [ ] Have you successfully run tests with your changes locally?\r\n","created_at":"2018-12-18T22:26:32Z","updated_at":"2018-12-19T11:19:59Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4756e54143e2937194e2a4b2f28b32d8332dab3b","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/pgjdbc/pgjdbc/pulls/1378/commits","review_comments_url":"https://api.github.com/repos/pgjdbc/pgjdbc/pulls/1378/comments","review_comment_url":"https://api.github.com/repos/pgjdbc/pgjdbc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/pgjdbc/pgjdbc/issues/1378/comments","statuses_url":"https://api.github.com/repos/pgjdbc/pgjdbc/statuses/f7baffe80d01ae08d0ddaf9746819225eea4bb7e","head":{"label":"aoindustries:issue-641-SQLData-support","ref":"issue-641-SQLData-support","sha":"f7baffe80d01ae08d0ddaf9746819225eea4bb7e","user":{"login":"aoindustries","id":20825951,"node_id":"MDQ6VXNlcjIwODI1OTUx","avatar_url":"https://avatars1.githubusercontent.com/u/20825951?v=4","gravatar_id":"","url":"https://api.github.com/users/aoindustries","html_url":"https://github.com/aoindustries","followers_url":"https://api.github.com/users/aoindustries/followers","following_url":"https://api.github.com/users/aoindustries/following{/other_user}","gists_url":"https://api.github.com/users/aoindustries/gists{/gist_id}","starred_url":"https://api.github.com/users/aoindustries/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aoindustries/subscriptions","organizations_url":"https://api.github.com/users/aoindustries/orgs","repos_url":"https://api.github.com/users/aoindustries/repos","events_url":"https://api.github.com/users/aoindustries/events{/privacy}","received_events_url":"https://api.github.com/users/aoindustries/received_events","type":"User","site_admin":false},"repo":{"id":162289531,"node_id":"MDEwOlJlcG9zaXRvcnkxNjIyODk1MzE=","name":"pgjdbc","full_name":"aoindustries/pgjdbc","private":false,"owner":{"login":"aoindustries","id":20825951,"node_id":"MDQ6VXNlcjIwODI1OTUx","avatar_url":"https://avatars1.githubusercontent.com/u/20825951?v=4","gravatar_id":"","url":"https://api.github.com/users/aoindustries","html_url":"https://github.com/aoindustries","followers_url":"https://api.github.com/users/aoindustries/followers","following_url":"https://api.github.com/users/aoindustries/following{/other_user}","gists_url":"https://api.github.com/users/aoindustries/gists{/gist_id}","starred_url":"https://api.github.com/users/aoindustries/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aoindustries/subscriptions","organizations_url":"https://api.github.com/users/aoindustries/orgs","repos_url":"https://api.github.com/users/aoindustries/repos","events_url":"https://api.github.com/users/aoindustries/events{/privacy}","received_events_url":"https://api.github.com/users/aoindustries/received_events","type":"User","site_admin":false},"html_url":"https://github.com/aoindustries/pgjdbc","description":"Postgresql JDBC Driver","fork":true,"url":"https://api.github.com/repos/aoindustries/pgjdbc","forks_url":"https://api.github.com/repos/aoindustries/pgjdbc/forks","keys_url":"https://api.github.com/repos/aoindustries/pgjdbc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aoindustries/pgjdbc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aoindustries/pgjdbc/teams","hooks_url":"https://api.github.com/repos/aoindustries/pgjdbc/hooks","issue_events_url":"https://api.github.com/repos/aoindustries/pgjdbc/issues/events{/number}","events_url":"https://api.github.com/repos/aoindustries/pgjdbc/events","assignees_url":"https://api.github.com/repos/aoindustries/pgjdbc/assignees{/user}","branches_url":"https://api.github.com/repos/aoindustries/pgjdbc/branches{/branch}","tags_url":"https://api.github.com/repos/aoindustries/pgjdbc/tags","blobs_url":"https://api.github.com/repos/aoindustries/pgjdbc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aoindustries/pgjdbc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aoindustries/pgjdbc/git/refs{/sha}","trees_url":"https://api.github.com/repos/aoindustries/pgjdbc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aoindustries/pgjdbc/statuses/{sha}","languages_url":"https://api.github.com/repos/aoindustries/pgjdbc/languages","stargazers_url":"https://api.github.com/repos/aoindustries/pgjdbc/stargazers","contributors_url":"https://api.github.com/repos/aoindustries/pgjdbc/contributors","subscribers_url":"https://api.github.com/repos/aoindustries/pgjdbc/subscribers","subscription_url":"https://api.github.com/repos/aoindustries/pgjdbc/subscription","commits_url":"https://api.github.com/repos/aoindustries/pgjdbc/commits{/sha}","git_commits_url":"https://api.github.com/repos/aoindustries/pgjdbc/git/commits{/sha}","comments_url":"https://api.github.com/repos/aoindustries/pgjdbc/comments{/number}","issue_comment_url":"https://api.github.com/repos/aoindustries/pgjdbc/issues/comments{/number}","contents_url":"https://api.github.com/repos/aoindustries/pgjdbc/contents/{+path}","compare_url":"https://api.github.com/repos/aoindustries/pgjdbc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aoindustries/pgjdbc/merges","archive_url":"https://api.github.com/repos/aoindustries/pgjdbc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aoindustries/pgjdbc/downloads","issues_url":"https://api.github.com/repos/aoindustries/pgjdbc/issues{/number}","pulls_url":"https://api.github.com/repos/aoindustries/pgjdbc/pulls{/number}","milestones_url":"https://api.github.com/repos/aoindustries/pgjdbc/milestones{/number}","notifications_url":"https://api.github.com/repos/aoindustries/pgjdbc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aoindustries/pgjdbc/labels{/name}","releases_url":"https://api.github.com/repos/aoindustries/pgjdbc/releases{/id}","deployments_url":"https://api.github.com/repos/aoindustries/pgjdbc/deployments","created_at":"2018-12-18T13:05:23Z","updated_at":"2018-12-18T23:31:32Z","pushed_at":"2018-12-19T02:13:10Z","git_url":"git://github.com/aoindustries/pgjdbc.git","ssh_url":"git@github.com:aoindustries/pgjdbc.git","clone_url":"https://github.com/aoindustries/pgjdbc.git","svn_url":"https://github.com/aoindustries/pgjdbc","homepage":"http://jdbc.postgresql.org","size":15728,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"bsd-2-clause","name":"BSD 2-Clause \"Simplified\" License","spdx_id":"BSD-2-Clause","url":"https://api.github.com/licenses/bsd-2-clause","node_id":"MDc6TGljZW5zZTQ="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"pgjdbc:master","ref":"master","sha":"10945e34a4df2e51566c72fd64e0407c3f358477","user":{"login":"pgjdbc","id":1371956,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNzE5NTY=","avatar_url":"https://avatars3.githubusercontent.com/u/1371956?v=4","gravatar_id":"","url":"https://api.github.com/users/pgjdbc","html_url":"https://github.com/pgjdbc","followers_url":"https://api.github.com/users/pgjdbc/followers","following_url":"https://api.github.com/users/pgjdbc/following{/other_user}","gists_url":"https://api.github.com/users/pgjdbc/gists{/gist_id}","starred_url":"https://api.github.com/users/pgjdbc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pgjdbc/subscriptions","organizations_url":"https://api.github.com/users/pgjdbc/orgs","repos_url":"https://api.github.com/users/pgjdbc/repos","events_url":"https://api.github.com/users/pgjdbc/events{/privacy}","received_events_url":"https://api.github.com/users/pgjdbc/received_events","type":"Organization","site_admin":false},"repo":{"id":3370128,"node_id":"MDEwOlJlcG9zaXRvcnkzMzcwMTI4","name":"pgjdbc","full_name":"pgjdbc/pgjdbc","private":false,"owner":{"login":"pgjdbc","id":1371956,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNzE5NTY=","avatar_url":"https://avatars3.githubusercontent.com/u/1371956?v=4","gravatar_id":"","url":"https://api.github.com/users/pgjdbc","html_url":"https://github.com/pgjdbc","followers_url":"https://api.github.com/users/pgjdbc/followers","following_url":"https://api.github.com/users/pgjdbc/following{/other_user}","gists_url":"https://api.github.com/users/pgjdbc/gists{/gist_id}","starred_url":"https://api.github.com/users/pgjdbc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pgjdbc/subscriptions","organizations_url":"https://api.github.com/users/pgjdbc/orgs","repos_url":"https://api.github.com/users/pgjdbc/repos","events_url":"https://api.github.com/users/pgjdbc/events{/privacy}","received_events_url":"https://api.github.com/users/pgjdbc/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/pgjdbc/pgjdbc","description":"Postgresql JDBC Driver","fork":false,"url":"https://api.github.com/repos/pgjdbc/pgjdbc","forks_url":"https://api.github.com/repos/pgjdbc/pgjdbc/forks","keys_url":"https://api.github.com/repos/pgjdbc/pgjdbc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pgjdbc/pgjdbc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pgjdbc/pgjdbc/teams","hooks_url":"https://api.github.com/repos/pgjdbc/pgjdbc/hooks","issue_events_url":"https://api.github.com/repos/pgjdbc/pgjdbc/issues/events{/number}","events_url":"https://api.github.com/repos/pgjdbc/pgjdbc/events","assignees_url":"https://api.github.com/repos/pgjdbc/pgjdbc/assignees{/user}","branches_url":"https://api.github.com/repos/pgjdbc/pgjdbc/branches{/branch}","tags_url":"https://api.github.com/repos/pgjdbc/pgjdbc/tags","blobs_url":"https://api.github.com/repos/pgjdbc/pgjdbc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pgjdbc/pgjdbc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pgjdbc/pgjdbc/git/refs{/sha}","trees_url":"https://api.github.com/repos/pgjdbc/pgjdbc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pgjdbc/pgjdbc/statuses/{sha}","languages_url":"https://api.github.com/repos/pgjdbc/pgjdbc/languages","stargazers_url":"https://api.github.com/repos/pgjdbc/pgjdbc/stargazers","contributors_url":"https://api.github.com/repos/pgjdbc/pgjdbc/contributors","subscribers_url":"https://api.github.com/repos/pgjdbc/pgjdbc/subscribers","subscription_url":"https://api.github.com/repos/pgjdbc/pgjdbc/subscription","commits_url":"https://api.github.com/repos/pgjdbc/pgjdbc/commits{/sha}","git_commits_url":"https://api.github.com/repos/pgjdbc/pgjdbc/git/commits{/sha}","comments_url":"https://api.github.com/repos/pgjdbc/pgjdbc/comments{/number}","issue_comment_url":"https://api.github.com/repos/pgjdbc/pgjdbc/issues/comments{/number}","contents_url":"https://api.github.com/repos/pgjdbc/pgjdbc/contents/{+path}","compare_url":"https://api.github.com/repos/pgjdbc/pgjdbc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pgjdbc/pgjdbc/merges","archive_url":"https://api.github.com/repos/pgjdbc/pgjdbc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pgjdbc/pgjdbc/downloads","issues_url":"https://api.github.com/repos/pgjdbc/pgjdbc/issues{/number}","pulls_url":"https://api.github.com/repos/pgjdbc/pgjdbc/pulls{/number}","milestones_url":"https://api.github.com/repos/pgjdbc/pgjdbc/milestones{/number}","notifications_url":"https://api.github.com/repos/pgjdbc/pgjdbc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pgjdbc/pgjdbc/labels{/name}","releases_url":"https://api.github.com/repos/pgjdbc/pgjdbc/releases{/id}","deployments_url":"https://api.github.com/repos/pgjdbc/pgjdbc/deployments","created_at":"2012-02-06T19:30:35Z","updated_at":"2018-12-16T13:34:48Z","pushed_at":"2018-12-19T02:13:12Z","git_url":"git://github.com/pgjdbc/pgjdbc.git","ssh_url":"git@github.com:pgjdbc/pgjdbc.git","clone_url":"https://github.com/pgjdbc/pgjdbc.git","svn_url":"https://github.com/pgjdbc/pgjdbc","homepage":"http://jdbc.postgresql.org","size":15571,"stargazers_count":601,"watchers_count":601,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":408,"mirror_url":null,"archived":false,"open_issues_count":281,"license":{"key":"bsd-2-clause","name":"BSD 2-Clause \"Simplified\" License","spdx_id":"BSD-2-Clause","url":"https://api.github.com/licenses/bsd-2-clause","node_id":"MDc6TGljZW5zZTQ="},"forks":408,"open_issues":281,"watchers":601,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/pgjdbc/pgjdbc/pulls/1378"},"html":{"href":"https://github.com/pgjdbc/pgjdbc/pull/1378"},"issue":{"href":"https://api.github.com/repos/pgjdbc/pgjdbc/issues/1378"},"comments":{"href":"https://api.github.com/repos/pgjdbc/pgjdbc/issues/1378/comments"},"review_comments":{"href":"https://api.github.com/repos/pgjdbc/pgjdbc/pulls/1378/comments"},"review_comment":{"href":"https://api.github.com/repos/pgjdbc/pgjdbc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/pgjdbc/pgjdbc/pulls/1378/commits"},"statuses":{"href":"https://api.github.com/repos/pgjdbc/pgjdbc/statuses/f7baffe80d01ae08d0ddaf9746819225eea4bb7e"}},"author_association":"NONE"}}
{"actor":{"display_login":"davecramer"}}