-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Enable no-throw behavior for simple functions
Summary: Throwing exceptions is expensive. When many rows throw exceptions that are being suppressed by TRY, query performance degrades a lot. Vector functions may avoid throwing exceptions by calling EvalCtx::setError, but Simple functions can only throw. This change introduces new 'call' method to be used by Simple function to avoid throwing: ``` Status call(result, arg1, arg2,...); ``` This method can report errors via Status without throwing. This change allows default-null-behavior functions to avoid throwing. More changes are needed to allow all simple functions to avoid throwing. Use the new API to avoid throwing in date_parse Presto function. Reviewed By: pedroerp Differential Revision: D56705407 fbshipit-source-id: 28a12e46be2b2b737f48ac8f1d183cb09f6914bd
- Loading branch information
1 parent
ffc28ac
commit 6b0cb0f
Showing
7 changed files
with
284 additions
and
99 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.