MDEV-34391 SET PATH variable and resolution for stored routine invocations #3796
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
Implement the SET PATH statement. The grammar differs from the Jira ticket where the equal sign is required:
SET PATH= 'schema1, schema2, schema3';
Schemas within the session PATH variable will be used to resolve unqualified and qualified routine invocations.
To determine whether or not a particular routine exists within a schema/database lookups has to be performed on the proc table, so performance is impacted. To alleviate this, the PATH is empty by default - routines will be resolved using the current database as it was originally done before this implementation.
Original PR is #3566, this PR has some additional changes that fixes/simplify the parser:
=
for consistency with other variablesRelease Notes
New system variable
path
has been added.How can this PR be tested?
mysql-test/mtr path_basic path_resolution
Basing the PR against the correct MariaDB version
main
branch.PR quality check