extract_non_nullable_columns

Function extract_non_nullable_columns 

Source
fn extract_non_nullable_columns(
    expr: &Expr,
    non_nullable_cols: &mut Vec<Column>,
    left_schema: &Arc<DFSchema>,
    right_schema: &Arc<DFSchema>,
    top_level: bool,
)
Expand description

Recursively traverses expr, if expr returns false when any inputs are null, treats columns of both sides as non_nullable columns.

For and/or expr, extracts from all sub exprs and merges the columns. For or expr, if one of sub exprs returns true, discards all columns from or expr. For IS NOT NULL/NOT expr, always returns false for NULL input. extracts columns from these exprs. For all other exprs, fall through