Oracle explain plan support - #3080
Open
jtduffy wants to merge 3 commits into
Open
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #3080 +/- ##
============================================
- Coverage 70.93% 70.86% -0.08%
- Complexity 10687 10711 +24
============================================
Files 871 874 +3
Lines 43010 43160 +150
Branches 6506 6527 +21
============================================
+ Hits 30511 30584 +73
- Misses 9555 9616 +61
- Partials 2944 2960 +16 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
jbedell-newrelic
approved these changes
Aug 31, 2026
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.
Resolves #3031
This adds explain plan support to Oracle 11g+ when utilizing the
jdbc-ojdbc7-12.1.0.2orjdbc-ojdbc8-21.1.0.0instrumentation modules.Oracle's explain plans don't follow the flow that Postgres, etc do. Instead...
EXPLAIN PLAN SET STATEMENT_ID = '<id>' FOR <sql>. The generated plan is written to thePLAN_TABLEtable.SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE')to extract the explain plan rowsAn example of a final Oracle explain plan as added as an attribute to a SQLTracer...
This required some changes to the
DatabaseVendorinterface.isExplainPlanFollowupQueryRequiredmethod that will returntrueif a followup query is required for the explain plan rowsgetFollowupExplainPlanSqlmethod that will return the SQL required to run if a followup query is requiredThe logic in the ExplainPlanExecutor has been updated to support the followup query flow, if required.
Added additional tests for the new followup query methods.