{"action":"closed","number":366,"pull_request":{"url":"https://api.github.com/repos/ADOdb/ADOdb/pulls/366","id":136260216,"node_id":"MDExOlB1bGxSZXF1ZXN0MTM2MjYwMjE2","html_url":"https://github.com/ADOdb/ADOdb/pull/366","diff_url":"https://github.com/ADOdb/ADOdb/pull/366.diff","patch_url":"https://github.com/ADOdb/ADOdb/pull/366.patch","issue_url":"https://api.github.com/repos/ADOdb/ADOdb/issues/366","number":366,"state":"closed","locked":false,"title":"Bugfix in the oci8po Driver","user":{"login":"MxBox","id":6715331,"node_id":"MDQ6VXNlcjY3MTUzMzE=","avatar_url":"https://avatars1.githubusercontent.com/u/6715331?v=4","gravatar_id":"","url":"https://api.github.com/users/MxBox","html_url":"https://github.com/MxBox","followers_url":"https://api.github.com/users/MxBox/followers","following_url":"https://api.github.com/users/MxBox/following{/other_user}","gists_url":"https://api.github.com/users/MxBox/gists{/gist_id}","starred_url":"https://api.github.com/users/MxBox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MxBox/subscriptions","organizations_url":"https://api.github.com/users/MxBox/orgs","repos_url":"https://api.github.com/users/MxBox/repos","events_url":"https://api.github.com/users/MxBox/events{/privacy}","received_events_url":"https://api.github.com/users/MxBox/received_events","type":"User","site_admin":false},"body":"The Regular Expression you use in the \"_query\" function, located\r\nin the adodb-oci8po driver, doesn't serve its purpose.\r\n\r\nThe comment right before the code line tells that you\r\n\"_[n]eed to identify if the **?** is inside a quoted string, and if so not use it as a bind variable_\"\r\nbut the current expression does the following:\r\n\r\nExample String:\r\n**SELECT something FROM my_table WHERE name = 'randomValue' AND id = ? AND lastname IN('smith','miller')**;\r\n\r\nIf you dare to use an example string where you have any ' after a ? you get the following return string:\r\n**'randomValue' AND id = ? AND lastname IN('** although\r\nthe right quoted strings are **randomValue**, **\"smith**, **miller**.\r\nSo we have way to many characters in the return string and the first **'** after the initial **'** is ignored, what leads to **?** not being used as a bind variable, although it was intended to be used as one.\r\n\r\n\r\nI suggest to change the Regular Expression to filter every quoted string (weather it has an ? or not)\r\nand then mask the ? within the quoted strings, so they don't get binded\r\n(this last part is already implemented, but the given \"quoted\" strings are wrong in some cases as shown in my example).\r\n\r\nMy solution leads to more string matches beeing processed and searched,\r\nand therefore it is (depending on the amount of quoted strings you provide in your query)\r\nmore performance heavy, so I wouldn't mind if anybody suggests a better way to solve the problem.","created_at":"2017-08-17T13:42:44Z","updated_at":"2018-07-27T02:35:51Z","closed_at":"2018-07-27T02:35:51Z","merged_at":null,"merge_commit_sha":"e955cfb4642abced18f7b05634a3dcfdd118814d","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/ADOdb/ADOdb/pulls/366/commits","review_comments_url":"https://api.github.com/repos/ADOdb/ADOdb/pulls/366/comments","review_comment_url":"https://api.github.com/repos/ADOdb/ADOdb/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ADOdb/ADOdb/issues/366/comments","statuses_url":"https://api.github.com/repos/ADOdb/ADOdb/statuses/58b41a144d1bb738a93113a608d74d1722e3da10","head":{"label":"MxBox:v5.20.9_fix_oci8po","ref":"v5.20.9_fix_oci8po","sha":"58b41a144d1bb738a93113a608d74d1722e3da10","user":{"login":"MxBox","id":6715331,"node_id":"MDQ6VXNlcjY3MTUzMzE=","avatar_url":"https://avatars1.githubusercontent.com/u/6715331?v=4","gravatar_id":"","url":"https://api.github.com/users/MxBox","html_url":"https://github.com/MxBox","followers_url":"https://api.github.com/users/MxBox/followers","following_url":"https://api.github.com/users/MxBox/following{/other_user}","gists_url":"https://api.github.com/users/MxBox/gists{/gist_id}","starred_url":"https://api.github.com/users/MxBox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MxBox/subscriptions","organizations_url":"https://api.github.com/users/MxBox/orgs","repos_url":"https://api.github.com/users/MxBox/repos","events_url":"https://api.github.com/users/MxBox/events{/privacy}","received_events_url":"https://api.github.com/users/MxBox/received_events","type":"User","site_admin":false},"repo":{"id":100598916,"node_id":"MDEwOlJlcG9zaXRvcnkxMDA1OTg5MTY=","name":"ADOdb","full_name":"MxBox/ADOdb","owner":{"login":"MxBox","id":6715331,"node_id":"MDQ6VXNlcjY3MTUzMzE=","avatar_url":"https://avatars1.githubusercontent.com/u/6715331?v=4","gravatar_id":"","url":"https://api.github.com/users/MxBox","html_url":"https://github.com/MxBox","followers_url":"https://api.github.com/users/MxBox/followers","following_url":"https://api.github.com/users/MxBox/following{/other_user}","gists_url":"https://api.github.com/users/MxBox/gists{/gist_id}","starred_url":"https://api.github.com/users/MxBox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MxBox/subscriptions","organizations_url":"https://api.github.com/users/MxBox/orgs","repos_url":"https://api.github.com/users/MxBox/repos","events_url":"https://api.github.com/users/MxBox/events{/privacy}","received_events_url":"https://api.github.com/users/MxBox/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/MxBox/ADOdb","description":"ADOdb is a PHP database class library that provides powerful abstractions for performing queries and managing databases. ADOdb also hides the differences between DB engines so you can easily switch them without changing your code.","fork":true,"url":"https://api.github.com/repos/MxBox/ADOdb","forks_url":"https://api.github.com/repos/MxBox/ADOdb/forks","keys_url":"https://api.github.com/repos/MxBox/ADOdb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MxBox/ADOdb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MxBox/ADOdb/teams","hooks_url":"https://api.github.com/repos/MxBox/ADOdb/hooks","issue_events_url":"https://api.github.com/repos/MxBox/ADOdb/issues/events{/number}","events_url":"https://api.github.com/repos/MxBox/ADOdb/events","assignees_url":"https://api.github.com/repos/MxBox/ADOdb/assignees{/user}","branches_url":"https://api.github.com/repos/MxBox/ADOdb/branches{/branch}","tags_url":"https://api.github.com/repos/MxBox/ADOdb/tags","blobs_url":"https://api.github.com/repos/MxBox/ADOdb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MxBox/ADOdb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MxBox/ADOdb/git/refs{/sha}","trees_url":"https://api.github.com/repos/MxBox/ADOdb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MxBox/ADOdb/statuses/{sha}","languages_url":"https://api.github.com/repos/MxBox/ADOdb/languages","stargazers_url":"https://api.github.com/repos/MxBox/ADOdb/stargazers","contributors_url":"https://api.github.com/repos/MxBox/ADOdb/contributors","subscribers_url":"https://api.github.com/repos/MxBox/ADOdb/subscribers","subscription_url":"https://api.github.com/repos/MxBox/ADOdb/subscription","commits_url":"https://api.github.com/repos/MxBox/ADOdb/commits{/sha}","git_commits_url":"https://api.github.com/repos/MxBox/ADOdb/git/commits{/sha}","comments_url":"https://api.github.com/repos/MxBox/ADOdb/comments{/number}","issue_comment_url":"https://api.github.com/repos/MxBox/ADOdb/issues/comments{/number}","contents_url":"https://api.github.com/repos/MxBox/ADOdb/contents/{+path}","compare_url":"https://api.github.com/repos/MxBox/ADOdb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MxBox/ADOdb/merges","archive_url":"https://api.github.com/repos/MxBox/ADOdb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MxBox/ADOdb/downloads","issues_url":"https://api.github.com/repos/MxBox/ADOdb/issues{/number}","pulls_url":"https://api.github.com/repos/MxBox/ADOdb/pulls{/number}","milestones_url":"https://api.github.com/repos/MxBox/ADOdb/milestones{/number}","notifications_url":"https://api.github.com/repos/MxBox/ADOdb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MxBox/ADOdb/labels{/name}","releases_url":"https://api.github.com/repos/MxBox/ADOdb/releases{/id}","deployments_url":"https://api.github.com/repos/MxBox/ADOdb/deployments","created_at":"2017-08-17T12:01:57Z","updated_at":"2017-08-17T12:01:59Z","pushed_at":"2017-08-17T13:32:12Z","git_url":"git://github.com/MxBox/ADOdb.git","ssh_url":"git@github.com:MxBox/ADOdb.git","clone_url":"https://github.com/MxBox/ADOdb.git","svn_url":"https://github.com/MxBox/ADOdb","homepage":"http://adodb.org/","size":5750,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ADOdb:master","ref":"master","sha":"7d43989dc95fd00fcf3ba73e08fdaf56ffa4f3e5","user":{"login":"ADOdb","id":5193285,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUxOTMyODU=","avatar_url":"https://avatars3.githubusercontent.com/u/5193285?v=4","gravatar_id":"","url":"https://api.github.com/users/ADOdb","html_url":"https://github.com/ADOdb","followers_url":"https://api.github.com/users/ADOdb/followers","following_url":"https://api.github.com/users/ADOdb/following{/other_user}","gists_url":"https://api.github.com/users/ADOdb/gists{/gist_id}","starred_url":"https://api.github.com/users/ADOdb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ADOdb/subscriptions","organizations_url":"https://api.github.com/users/ADOdb/orgs","repos_url":"https://api.github.com/users/ADOdb/repos","events_url":"https://api.github.com/users/ADOdb/events{/privacy}","received_events_url":"https://api.github.com/users/ADOdb/received_events","type":"Organization","site_admin":false},"repo":{"id":11987721,"node_id":"MDEwOlJlcG9zaXRvcnkxMTk4NzcyMQ==","name":"ADOdb","full_name":"ADOdb/ADOdb","owner":{"login":"ADOdb","id":5193285,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUxOTMyODU=","avatar_url":"https://avatars3.githubusercontent.com/u/5193285?v=4","gravatar_id":"","url":"https://api.github.com/users/ADOdb","html_url":"https://github.com/ADOdb","followers_url":"https://api.github.com/users/ADOdb/followers","following_url":"https://api.github.com/users/ADOdb/following{/other_user}","gists_url":"https://api.github.com/users/ADOdb/gists{/gist_id}","starred_url":"https://api.github.com/users/ADOdb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ADOdb/subscriptions","organizations_url":"https://api.github.com/users/ADOdb/orgs","repos_url":"https://api.github.com/users/ADOdb/repos","events_url":"https://api.github.com/users/ADOdb/events{/privacy}","received_events_url":"https://api.github.com/users/ADOdb/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ADOdb/ADOdb","description":"ADOdb is a PHP database class library that provides powerful abstractions for performing queries and managing databases. ADOdb also hides the differences between DB engines so you can easily switch them without changing your code.","fork":false,"url":"https://api.github.com/repos/ADOdb/ADOdb","forks_url":"https://api.github.com/repos/ADOdb/ADOdb/forks","keys_url":"https://api.github.com/repos/ADOdb/ADOdb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ADOdb/ADOdb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ADOdb/ADOdb/teams","hooks_url":"https://api.github.com/repos/ADOdb/ADOdb/hooks","issue_events_url":"https://api.github.com/repos/ADOdb/ADOdb/issues/events{/number}","events_url":"https://api.github.com/repos/ADOdb/ADOdb/events","assignees_url":"https://api.github.com/repos/ADOdb/ADOdb/assignees{/user}","branches_url":"https://api.github.com/repos/ADOdb/ADOdb/branches{/branch}","tags_url":"https://api.github.com/repos/ADOdb/ADOdb/tags","blobs_url":"https://api.github.com/repos/ADOdb/ADOdb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ADOdb/ADOdb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ADOdb/ADOdb/git/refs{/sha}","trees_url":"https://api.github.com/repos/ADOdb/ADOdb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ADOdb/ADOdb/statuses/{sha}","languages_url":"https://api.github.com/repos/ADOdb/ADOdb/languages","stargazers_url":"https://api.github.com/repos/ADOdb/ADOdb/stargazers","contributors_url":"https://api.github.com/repos/ADOdb/ADOdb/contributors","subscribers_url":"https://api.github.com/repos/ADOdb/ADOdb/subscribers","subscription_url":"https://api.github.com/repos/ADOdb/ADOdb/subscription","commits_url":"https://api.github.com/repos/ADOdb/ADOdb/commits{/sha}","git_commits_url":"https://api.github.com/repos/ADOdb/ADOdb/git/commits{/sha}","comments_url":"https://api.github.com/repos/ADOdb/ADOdb/comments{/number}","issue_comment_url":"https://api.github.com/repos/ADOdb/ADOdb/issues/comments{/number}","contents_url":"https://api.github.com/repos/ADOdb/ADOdb/contents/{+path}","compare_url":"https://api.github.com/repos/ADOdb/ADOdb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ADOdb/ADOdb/merges","archive_url":"https://api.github.com/repos/ADOdb/ADOdb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ADOdb/ADOdb/downloads","issues_url":"https://api.github.com/repos/ADOdb/ADOdb/issues{/number}","pulls_url":"https://api.github.com/repos/ADOdb/ADOdb/pulls{/number}","milestones_url":"https://api.github.com/repos/ADOdb/ADOdb/milestones{/number}","notifications_url":"https://api.github.com/repos/ADOdb/ADOdb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ADOdb/ADOdb/labels{/name}","releases_url":"https://api.github.com/repos/ADOdb/ADOdb/releases{/id}","deployments_url":"https://api.github.com/repos/ADOdb/ADOdb/deployments","created_at":"2013-08-08T22:06:36Z","updated_at":"2018-07-27T01:55:35Z","pushed_at":"2018-07-27T01:55:30Z","git_url":"git://github.com/ADOdb/ADOdb.git","ssh_url":"git@github.com:ADOdb/ADOdb.git","clone_url":"https://github.com/ADOdb/ADOdb.git","svn_url":"https://github.com/ADOdb/ADOdb","homepage":"http://adodb.org/","size":6019,"stargazers_count":257,"watchers_count":257,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":174,"mirror_url":null,"archived":false,"open_issues_count":50,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":174,"open_issues":50,"watchers":257,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ADOdb/ADOdb/pulls/366"},"html":{"href":"https://github.com/ADOdb/ADOdb/pull/366"},"issue":{"href":"https://api.github.com/repos/ADOdb/ADOdb/issues/366"},"comments":{"href":"https://api.github.com/repos/ADOdb/ADOdb/issues/366/comments"},"review_comments":{"href":"https://api.github.com/repos/ADOdb/ADOdb/pulls/366/comments"},"review_comment":{"href":"https://api.github.com/repos/ADOdb/ADOdb/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ADOdb/ADOdb/pulls/366/commits"},"statuses":{"href":"https://api.github.com/repos/ADOdb/ADOdb/statuses/58b41a144d1bb738a93113a608d74d1722e3da10"}},"author_association":"NONE","merged":false,"mergeable":false,"rebaseable":false,"mergeable_state":"dirty","merged_by":null,"comments":2,"review_comments":0,"maintainer_can_modify":false,"commits":1,"additions":1,"deletions":1,"changed_files":1}}
{"actor":{"display_login":"mnewnham"}}