feat: uniform rendering of stack trace from failed DB operations#9677
Merged
paulbalandan merged 3 commits intocodeigniter4:4.7from Aug 18, 2025
Merged
feat: uniform rendering of stack trace from failed DB operations#9677paulbalandan merged 3 commits intocodeigniter4:4.7from
paulbalandan merged 3 commits intocodeigniter4:4.7from
Conversation
Member
Author
|
Gemini told me testing |
ff1bf0e to
7e8492a
Compare
michalsn
approved these changes
Aug 15, 2025
7e8492a to
1eaedc1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Resurrecting #9364
All DB drivers except SQL Server logs (with 'error' level) a full stack trace of any failed DB executions via the thrown exception. For SQL Server, the log only includes the message produced by
sqlsrv_errors(). Moreover, there's inconsistency with regard to Postgre and OCI8 drivers. Sincepg_query()andoci8_execute()only throws because of our error handler, the stack trace also includes the error handler (the[internal function]stack).This PR aims to make consistent the log output of these drivers by using the same trace rendering. This is already achieved by the private
Exceptions::renderBacktrace()method for the thrown exceptions, so this PR extracts it to a new functionrender_backtrace()and uses that to format the trace. Also, trace coming from the error handler are removed.For more discussion, refer to previous PR. Hope this passes now.
Checklist: