fix: mutable query detection #1511
Merged
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.
Fixes a bug that incorrectly raised an exception when executing select statements when allow_write is false.
Summary
Changes
• Enhanced SQL mutation detection: Added new mutable_sql_detector.py utility with comprehensive keyword detection for SQL operations that modify data
• Improved write access control: Replaced simple string matching with robust pattern matching to detect mutating SQL operations (INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, etc.)
• Better error handling: More specific error messages when mutating operations are attempted without write access
• Code reorganization: Moved query execution logic earlier in the flow for better validation sequencing
User experience
User will no longer experience a fatal bug when executing
select
statements withallow_write
set tofalse
.Checklist
If your change doesn't seem to apply, please leave them unchecked.
Is this a breaking change? N
RFC issue number:
Checklist:
Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the project license.