-
Notifications
You must be signed in to change notification settings - Fork 591
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(batch): add batch_expr_strict_mode
to ignore expression error in batch query
#19562
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Hi, there. 📝 Telemetry Reminder:
|
@@ -17,7 +17,7 @@ use risingwave_common::array::ArrayImpl::Bool; | |||
use risingwave_common::array::DataChunk; | |||
use risingwave_common::catalog::Schema; | |||
use risingwave_common::util::chunk_coalesce::DataChunkBuilder; | |||
use risingwave_expr::expr::{build_from_prost, BoxedExpression}; | |||
use risingwave_expr::expr::{build_batch_expr_from_prost, BoxedExpression}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it mean that build_from_prost
will not be directly used anymore?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is still used quite a bit. Only Filter
and Project
have been changed to build_batch_expr_from_prost
. Examples of the rest that still uses build_from_prost
include
HopWindowExecutor
: because the expression is derived from +/- interval, so it must be non-fallableSortAggExecutor
: same as above, but it's even simpler - there are onlyValueRef
sUpdateExecutor
: because I can't image why users need to ignore expressions here, so I just keep it unchanged.
I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
Resolves #17844. See #17844 (comment).
Currently, the error is printed to logs only (with
LogSuppressor
to avoid flooding). It would be better to notice to users via psql'sNOTICE
, but it requires more work to pass these messages from compute nodes to frontend nodes. Left aTODO
in the code now.Checklist
./risedev check
(or alias,./risedev c
)Documentation
Release note
batch_expr_strict_mode
to control whether to let the entire query fail or fillNULL
values for expression evaluation failures.