[Enhancement](udf) Do not check file when inline code exists#63906
Open
linrrzqqq wants to merge 1 commit into
Open
[Enhancement](udf) Do not check file when inline code exists#63906linrrzqqq wants to merge 1 commit into
linrrzqqq wants to merge 1 commit into
Conversation
Contributor
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
Collaborator
Author
|
run buildall |
Collaborator
Author
|
/review |
Contributor
There was a problem hiding this comment.
Review result: no blocking issues found.
Critical checkpoint conclusions:
- Goal and proof: the PR makes inline Python code take precedence over FILE validation/loading, and the added regression case covers inline code with a missing FILE path.
- Scope: the implementation is small and focused in CREATE FUNCTION analysis plus one regression assertion.
- Concurrency: no new shared mutable state or locking behavior is introduced.
- Lifecycle/static initialization: no new lifecycle-managed objects or static initialization dependencies are introduced.
- Configuration: no new configuration item is added.
- Compatibility: no storage format or protocol field is changed; existing function_code and location fields are used. BE already prefers inline code before module location.
- Parallel paths: scalar/UDAF/UDTF Python creation paths all receive the same analyzed functionCode behavior through analyzeCommon and their existing setters.
- Conditional checks: the new skip condition is specific to inline code plus non-RPC file validation and matches the BE load precedence.
- Tests: regression output was added for the inline-over-file case. I did not run the regression suite in this runner.
- Observability: no new observability is needed for this analysis-time behavior.
- Transaction/persistence/data writes: no transaction or data visibility path is affected; function metadata remains persisted through the existing Function fields.
- FE/BE variables: no new FE-to-BE variable is added; existing function_code, hdfs_location, and checksum behavior remains consistent with BE selection logic.
- Performance: avoids unnecessary URL resolution and checksum IO when inline Python code is authoritative.
- User focus: no additional user-provided focus points were present.
Contributor
TPC-H: Total hot run time: 30777 ms |
Contributor
TPC-DS: Total hot run time: 171979 ms |
Contributor
FE UT Coverage ReportIncrement line coverage |
Contributor
FE Regression Coverage ReportIncrement line coverage |
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.
What problem does this PR solve?
Issue Number: close #xxx
Related PR: #xxx
Problem Summary:
Before this change, even when inline code was present, the FE would still attempt to parse and validate the
FILEin theCREATE FUNCTIONstatement. However, during subsequent execution, even ifFILEis valid, it would not be used. Therefore, when inline code is present, we can omit checking theFILEfield when creating the table.before
now
Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)