New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
isc_dsql_execute2 does not return errors when called with a non-NULL output SQLDA [CORE2552] #2962
Comments
Commented by: @hvlad Seems dsql\execute_request should throw exception instead of direct manipulation with tdbb_status_vector. |
Modified by: @asfernandesassignee: Adriano dos Santos Fernandes [ asfernandes ] |
Commented by: @asfernandes Yes, I think this too. |
Commented by: @asfernandes Changing the description to not create a very similar ticket. |
Modified by: @asfernandesdescription: If this (and maybe others) function is called with a non-NULL output SQLDA, with a select statement that returns more than one row, an isc_sing_select_err should be returned. Now, jrd/successful_completion is aborting in the debug build and clearing the error in the release build. => If this (and maybe others) function is called with a non-NULL output SQLDA, with a select statement that returns more than one row or throw errors, exceptions are not returned in the status vector. Now, jrd/successful_completion is aborting in the debug build and clearing the error in the release build. And in DSQL, the exception is rethrowed after swiching to the clean status vector. summary: isc_dsql_execute2 does not return isc_sing_select_err errors => isc_dsql_execute2 does not return errors when called with a non-NULL output SQLDA |
Modified by: @asfernandesstatus: Open [ 1 ] => Resolved [ 5 ] resolution: Fixed [ 1 ] Fix Version: 2.5 Beta 2 [ 10300 ] |
Modified by: @pcisarstatus: Resolved [ 5 ] => Closed [ 6 ] |
Commented by: @aafemt It looks like fix for the issue is a bit incorrect. Now when the query returns no records, isc_dsql_execute2 returns 335544569 instead of 335544338 or 335544374. |
Commented by: @dyemanov It seems that ERRD_post() in the both modified places should be replaced with status_exception::raise(), so that the generic DSQL error code wouldn't be added before the rest of the status vector. It will be compatible with the legacy behavior. |
Modified by: @pavel-zotovQA Status: No test |
Submitted by: @asfernandes
Jira_subtask_outward CORE2996
If this (and maybe others) function is called with a non-NULL output SQLDA, with a select statement that returns more than one row or throw errors, exceptions are not returned in the status vector.
Now, jrd/successful_completion is aborting in the debug build and clearing the error in the release build.
And in DSQL, the exception is rethrowed after swiching to the clean status vector.
Commits: 6bd4674 3cef554 284aa72 08bc7ea
The text was updated successfully, but these errors were encountered: