{"action":"created","issue":{"url":"https://api.github.com/repos/oracle/node-oracledb/issues/146","labels_url":"https://api.github.com/repos/oracle/node-oracledb/issues/146/labels{/name}","comments_url":"https://api.github.com/repos/oracle/node-oracledb/issues/146/comments","events_url":"https://api.github.com/repos/oracle/node-oracledb/issues/146/events","html_url":"https://github.com/oracle/node-oracledb/issues/146","id":96489537,"number":146,"title":"What if non-ResultSet SELECT execute() returned an error when maxRows was too small? ","user":{"login":"cjbj","id":200778,"avatar_url":"https://avatars.githubusercontent.com/u/200778?v=3","gravatar_id":"","url":"https://api.github.com/users/cjbj","html_url":"https://github.com/cjbj","followers_url":"https://api.github.com/users/cjbj/followers","following_url":"https://api.github.com/users/cjbj/following{/other_user}","gists_url":"https://api.github.com/users/cjbj/gists{/gist_id}","starred_url":"https://api.github.com/users/cjbj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cjbj/subscriptions","organizations_url":"https://api.github.com/users/cjbj/orgs","repos_url":"https://api.github.com/users/cjbj/repos","events_url":"https://api.github.com/users/cjbj/events{/privacy}","received_events_url":"https://api.github.com/users/cjbj/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-07-22T06:59:15Z","updated_at":"2015-07-22T11:31:31Z","closed_at":null,"body":"Will you be impacted if there is a change in SELECT execute() behavior\r\nfor non-Result Sets when the number of query rows is larger than maxRows\r\nhttps://github.com/oracle/node-oracledb/blob/master/doc/api.md#propdbmaxrows ?\r\n\r\n@dmcghan had an example of a 98 row table where a (non-Result Set) query\r\nwith maxRows of 100 currently returns all rows.  If the table size\r\ngrows to 102, the application will return 100 rows and continue\r\nhappily.  The application won't know there are 'missing' rows.\r\n\r\nNow that node-oracledb has Result Sets it is easier to use them for queries\r\nwhere the number of rows isn't known in advance, so you don't need to\r\nuse huge, speculative maxRows values.  And now we have pre-fetching,\r\nthen detecting an incomplete fetch can be done efficiently.\r\n\r\nThe options are\r\n  1. don't change the behavior.  Only return maxRows rows.\r\n  2. return maxRows rows but also have a callback parameter attribute to indicate not all data was fetched\r\n  3. optionally return an NJS error when not all data was fetched\r\n  4. always return an NJS error when not all data was fetched\r\n  \r\nThis discussion is only about non-Result Set queries.\r\n\r\nLet us know what you think.  Is the change beneficial?  What code do\r\nyou have that depends on the current behavior? How complex do you\r\nwant the driver to be?  Is the current behavior a feature or a risk?\r\n\r\n(Tagging a few random contributors so they see this: @Bigous @bchr02 @rinie @hvrauhal @bjouhier @sagiegurari @tmanolat @nelreina @hexkode @hellboy81 @SorinTO @pmarino90 @jaw187) Don't feel bad if your handle isn't tagged here, I just ran out of patience digging through names."},"comment":{"url":"https://api.github.com/repos/oracle/node-oracledb/issues/comments/123680886","html_url":"https://github.com/oracle/node-oracledb/issues/146#issuecomment-123680886","issue_url":"https://api.github.com/repos/oracle/node-oracledb/issues/146","id":123680886,"user":{"login":"Bigous","id":6886560,"avatar_url":"https://avatars.githubusercontent.com/u/6886560?v=3","gravatar_id":"","url":"https://api.github.com/users/Bigous","html_url":"https://github.com/Bigous","followers_url":"https://api.github.com/users/Bigous/followers","following_url":"https://api.github.com/users/Bigous/following{/other_user}","gists_url":"https://api.github.com/users/Bigous/gists{/gist_id}","starred_url":"https://api.github.com/users/Bigous/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Bigous/subscriptions","organizations_url":"https://api.github.com/users/Bigous/orgs","repos_url":"https://api.github.com/users/Bigous/repos","events_url":"https://api.github.com/users/Bigous/events{/privacy}","received_events_url":"https://api.github.com/users/Bigous/received_events","type":"User","site_admin":false},"created_at":"2015-07-22T11:31:31Z","updated_at":"2015-07-22T11:31:31Z","body":"I like the option 2 for convenience, but I strongly suggest everyon to use ResultSets."}}