From db00b57811c99cd0832824b54c7234087d0b887e Mon Sep 17 00:00:00 2001 From: DrewKimball Date: Wed, 21 Sep 2022 17:36:03 -0700 Subject: [PATCH] colexec: use tree.DNull when projection is called on null input Most projections skip rows for which one or more arguments are null, and just output a null for those rows. However, some projections can actually accept null arguments. Previously, we were using the values from the vec even when the `Nulls` bitmap was set for that row, which invalidates the data in the vec for that row. This could cause a non-null value to be unexpectedly concatenated to an array when an argument was null (nothing should be added to the array in this case). This commit modifies the projection operators that operate on datum-backed vectors to explicitly set the argument to `tree.DNull` in the case when the `Nulls` bitmap is set. This ensures that the projection is not performed with the invalid (and arbitrary) value in the datum vec at that index. Fixes #87919 Release note (bug fix): Fixed a bug in `Concat` projection operators for arrays that could cause non-null values to be added to the array when one of the arguments was null. --- .../colexecproj/proj_const_left_ops.eg.go | 1874 ++++----- .../colexecproj/proj_const_ops_tmpl.go | 43 +- .../colexecproj/proj_const_right_ops.eg.go | 3422 +++++++--------- .../colexec/colexecproj/proj_like_ops.eg.go | 64 +- .../colexecproj/proj_non_const_ops.eg.go | 3488 +++++++---------- .../colexecproj/proj_non_const_ops_tmpl.go | 48 +- pkg/sql/logictest/testdata/logic_test/array | 22 + 7 files changed, 3576 insertions(+), 5385 deletions(-) diff --git a/pkg/sql/colexec/colexecproj/proj_const_left_ops.eg.go b/pkg/sql/colexec/colexecproj/proj_const_left_ops.eg.go index 45be75761bfe..5b6bd321154a 100644 --- a/pkg/sql/colexec/colexecproj/proj_const_left_ops.eg.go +++ b/pkg/sql/colexec/colexecproj/proj_const_left_ops.eg.go @@ -71,14 +71,12 @@ func (p projBitandInt16ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -90,7 +88,7 @@ func (p projBitandInt16ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -152,14 +150,12 @@ func (p projBitandInt16ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -171,7 +167,7 @@ func (p projBitandInt16ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -233,14 +229,12 @@ func (p projBitandInt16ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -252,7 +246,7 @@ func (p projBitandInt16ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -314,14 +308,12 @@ func (p projBitandInt32ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -333,7 +325,7 @@ func (p projBitandInt32ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -395,14 +387,12 @@ func (p projBitandInt32ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -414,7 +404,7 @@ func (p projBitandInt32ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -476,14 +466,12 @@ func (p projBitandInt32ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -495,7 +483,7 @@ func (p projBitandInt32ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -557,14 +545,12 @@ func (p projBitandInt64ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -576,7 +562,7 @@ func (p projBitandInt64ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -638,14 +624,12 @@ func (p projBitandInt64ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -657,7 +641,7 @@ func (p projBitandInt64ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -719,14 +703,12 @@ func (p projBitandInt64ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -738,7 +720,7 @@ func (p projBitandInt64ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -802,16 +784,17 @@ func (p projBitandDatumConstDatumOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, p.constArg.(tree.Datum), arg.(tree.Datum)) if err != nil { @@ -828,9 +811,12 @@ func (p projBitandDatumConstDatumOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, p.constArg.(tree.Datum), arg.(tree.Datum)) if err != nil { @@ -844,7 +830,9 @@ func (p projBitandDatumConstDatumOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*colNulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*colNulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -909,14 +897,12 @@ func (p projBitorInt16ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -928,7 +914,7 @@ func (p projBitorInt16ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -990,14 +976,12 @@ func (p projBitorInt16ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1009,7 +993,7 @@ func (p projBitorInt16ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1071,14 +1055,12 @@ func (p projBitorInt16ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1090,7 +1072,7 @@ func (p projBitorInt16ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1152,14 +1134,12 @@ func (p projBitorInt32ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1171,7 +1151,7 @@ func (p projBitorInt32ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1233,14 +1213,12 @@ func (p projBitorInt32ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1252,7 +1230,7 @@ func (p projBitorInt32ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1314,14 +1292,12 @@ func (p projBitorInt32ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1333,7 +1309,7 @@ func (p projBitorInt32ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1395,14 +1371,12 @@ func (p projBitorInt64ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1414,7 +1388,7 @@ func (p projBitorInt64ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1476,14 +1450,12 @@ func (p projBitorInt64ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1495,7 +1467,7 @@ func (p projBitorInt64ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1557,14 +1529,12 @@ func (p projBitorInt64ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1576,7 +1546,7 @@ func (p projBitorInt64ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1640,16 +1610,17 @@ func (p projBitorDatumConstDatumOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, p.constArg.(tree.Datum), arg.(tree.Datum)) if err != nil { @@ -1666,9 +1637,12 @@ func (p projBitorDatumConstDatumOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, p.constArg.(tree.Datum), arg.(tree.Datum)) if err != nil { @@ -1682,7 +1656,9 @@ func (p projBitorDatumConstDatumOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*colNulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*colNulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -1747,14 +1723,12 @@ func (p projBitxorInt16ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1766,7 +1740,7 @@ func (p projBitxorInt16ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1828,14 +1802,12 @@ func (p projBitxorInt16ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1847,7 +1819,7 @@ func (p projBitxorInt16ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1909,14 +1881,12 @@ func (p projBitxorInt16ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1928,7 +1898,7 @@ func (p projBitxorInt16ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1990,14 +1960,12 @@ func (p projBitxorInt32ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2009,7 +1977,7 @@ func (p projBitxorInt32ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2071,14 +2039,12 @@ func (p projBitxorInt32ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2090,7 +2056,7 @@ func (p projBitxorInt32ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2152,14 +2118,12 @@ func (p projBitxorInt32ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2171,7 +2135,7 @@ func (p projBitxorInt32ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2233,14 +2197,12 @@ func (p projBitxorInt64ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2252,7 +2214,7 @@ func (p projBitxorInt64ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2314,14 +2276,12 @@ func (p projBitxorInt64ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2333,7 +2293,7 @@ func (p projBitxorInt64ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2395,14 +2355,12 @@ func (p projBitxorInt64ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2414,7 +2372,7 @@ func (p projBitxorInt64ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2478,16 +2436,17 @@ func (p projBitxorDatumConstDatumOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, p.constArg.(tree.Datum), arg.(tree.Datum)) if err != nil { @@ -2504,9 +2463,12 @@ func (p projBitxorDatumConstDatumOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, p.constArg.(tree.Datum), arg.(tree.Datum)) if err != nil { @@ -2520,7 +2482,9 @@ func (p projBitxorDatumConstDatumOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*colNulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*colNulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -2585,14 +2549,12 @@ func (p projPlusDecimalConstInt16Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2611,7 +2573,7 @@ func (p projPlusDecimalConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2694,14 +2656,12 @@ func (p projPlusDecimalConstInt32Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2720,7 +2680,7 @@ func (p projPlusDecimalConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2803,14 +2763,12 @@ func (p projPlusDecimalConstInt64Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2829,7 +2787,7 @@ func (p projPlusDecimalConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2912,14 +2870,12 @@ func (p projPlusDecimalConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2937,7 +2893,7 @@ func (p projPlusDecimalConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3017,14 +2973,12 @@ func (p projPlusInt16ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3042,7 +2996,7 @@ func (p projPlusInt16ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3122,14 +3076,12 @@ func (p projPlusInt16ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3147,7 +3099,7 @@ func (p projPlusInt16ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3227,14 +3179,12 @@ func (p projPlusInt16ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3252,7 +3202,7 @@ func (p projPlusInt16ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3332,14 +3282,12 @@ func (p projPlusInt16ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3359,7 +3307,7 @@ func (p projPlusInt16ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3447,14 +3395,12 @@ func (p projPlusInt16ConstDatumOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3477,7 +3423,7 @@ func (p projPlusInt16ConstDatumOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3572,14 +3518,12 @@ func (p projPlusInt32ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3597,7 +3541,7 @@ func (p projPlusInt32ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3677,14 +3621,12 @@ func (p projPlusInt32ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3702,7 +3644,7 @@ func (p projPlusInt32ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3782,14 +3724,12 @@ func (p projPlusInt32ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3807,7 +3747,7 @@ func (p projPlusInt32ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3887,14 +3827,12 @@ func (p projPlusInt32ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3914,7 +3852,7 @@ func (p projPlusInt32ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4002,14 +3940,12 @@ func (p projPlusInt32ConstDatumOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -4032,7 +3968,7 @@ func (p projPlusInt32ConstDatumOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4127,14 +4063,12 @@ func (p projPlusInt64ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -4152,7 +4086,7 @@ func (p projPlusInt64ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4232,14 +4166,12 @@ func (p projPlusInt64ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -4257,7 +4189,7 @@ func (p projPlusInt64ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4337,14 +4269,12 @@ func (p projPlusInt64ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -4362,7 +4292,7 @@ func (p projPlusInt64ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4442,14 +4372,12 @@ func (p projPlusInt64ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -4469,7 +4397,7 @@ func (p projPlusInt64ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4557,14 +4485,12 @@ func (p projPlusInt64ConstDatumOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -4587,7 +4513,7 @@ func (p projPlusInt64ConstDatumOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4682,14 +4608,12 @@ func (p projPlusFloat64ConstFloat64Op) Next() coldata.Batch { } projCol := projVec.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -4704,7 +4628,7 @@ func (p projPlusFloat64ConstFloat64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4775,14 +4699,12 @@ func (p projPlusTimestampConstIntervalOp) Next() coldata.Batch { } projCol := projVec.Timestamp() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) t_res := duration.Add(p.constArg, arg) @@ -4797,7 +4719,7 @@ func (p projPlusTimestampConstIntervalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4868,14 +4790,12 @@ func (p projPlusIntervalConstTimestampOp) Next() coldata.Batch { } projCol := projVec.Timestamp() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) t_res := duration.Add(arg, p.constArg) @@ -4890,7 +4810,7 @@ func (p projPlusIntervalConstTimestampOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4961,14 +4881,12 @@ func (p projPlusIntervalConstIntervalOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = p.constArg.Add(arg) @@ -4978,7 +4896,7 @@ func (p projPlusIntervalConstIntervalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -5036,14 +4954,12 @@ func (p projPlusIntervalConstDatumOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5066,7 +4982,7 @@ func (p projPlusIntervalConstDatumOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -5163,14 +5079,12 @@ func (p projPlusDatumConstIntervalOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5193,7 +5107,7 @@ func (p projPlusDatumConstIntervalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5288,14 +5202,12 @@ func (p projPlusDatumConstInt16Op) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5318,7 +5230,7 @@ func (p projPlusDatumConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5413,14 +5325,12 @@ func (p projPlusDatumConstInt32Op) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5443,7 +5353,7 @@ func (p projPlusDatumConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5538,14 +5448,12 @@ func (p projPlusDatumConstInt64Op) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5568,7 +5476,7 @@ func (p projPlusDatumConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5661,14 +5569,12 @@ func (p projMinusDecimalConstInt16Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5687,7 +5593,7 @@ func (p projMinusDecimalConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -5770,14 +5676,12 @@ func (p projMinusDecimalConstInt32Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5796,7 +5700,7 @@ func (p projMinusDecimalConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -5879,14 +5783,12 @@ func (p projMinusDecimalConstInt64Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5905,7 +5807,7 @@ func (p projMinusDecimalConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -5988,14 +5890,12 @@ func (p projMinusDecimalConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6013,7 +5913,7 @@ func (p projMinusDecimalConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6093,14 +5993,12 @@ func (p projMinusInt16ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6118,7 +6016,7 @@ func (p projMinusInt16ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6198,14 +6096,12 @@ func (p projMinusInt16ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6223,7 +6119,7 @@ func (p projMinusInt16ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6303,14 +6199,12 @@ func (p projMinusInt16ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6328,7 +6222,7 @@ func (p projMinusInt16ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6408,14 +6302,12 @@ func (p projMinusInt16ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6435,7 +6327,7 @@ func (p projMinusInt16ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6523,14 +6415,12 @@ func (p projMinusInt16ConstDatumOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6553,7 +6443,7 @@ func (p projMinusInt16ConstDatumOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6648,14 +6538,12 @@ func (p projMinusInt32ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6673,7 +6561,7 @@ func (p projMinusInt32ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6753,14 +6641,12 @@ func (p projMinusInt32ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6778,7 +6664,7 @@ func (p projMinusInt32ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6858,14 +6744,12 @@ func (p projMinusInt32ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6883,7 +6767,7 @@ func (p projMinusInt32ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6963,14 +6847,12 @@ func (p projMinusInt32ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6990,7 +6872,7 @@ func (p projMinusInt32ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -7078,14 +6960,12 @@ func (p projMinusInt32ConstDatumOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7108,7 +6988,7 @@ func (p projMinusInt32ConstDatumOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -7203,14 +7083,12 @@ func (p projMinusInt64ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7228,7 +7106,7 @@ func (p projMinusInt64ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -7308,14 +7186,12 @@ func (p projMinusInt64ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7333,7 +7209,7 @@ func (p projMinusInt64ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -7413,14 +7289,12 @@ func (p projMinusInt64ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7438,7 +7312,7 @@ func (p projMinusInt64ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -7518,14 +7392,12 @@ func (p projMinusInt64ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7545,7 +7417,7 @@ func (p projMinusInt64ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -7633,14 +7505,12 @@ func (p projMinusInt64ConstDatumOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7663,7 +7533,7 @@ func (p projMinusInt64ConstDatumOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -7758,14 +7628,12 @@ func (p projMinusFloat64ConstFloat64Op) Next() coldata.Batch { } projCol := projVec.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7780,7 +7648,7 @@ func (p projMinusFloat64ConstFloat64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -7851,14 +7719,12 @@ func (p projMinusTimestampConstTimestampOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7871,7 +7737,7 @@ func (p projMinusTimestampConstTimestampOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -7936,14 +7802,12 @@ func (p projMinusTimestampConstIntervalOp) Next() coldata.Batch { } projCol := projVec.Timestamp() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) t_res := duration.Add(p.constArg, arg.Mul(-1)) @@ -7958,7 +7822,7 @@ func (p projMinusTimestampConstIntervalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -8029,14 +7893,12 @@ func (p projMinusIntervalConstIntervalOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = p.constArg.Sub(arg) @@ -8046,7 +7908,7 @@ func (p projMinusIntervalConstIntervalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -8104,14 +7966,12 @@ func (p projMinusIntervalConstDatumOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8134,7 +7994,7 @@ func (p projMinusIntervalConstDatumOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -8229,14 +8089,12 @@ func (p projMinusJSONConstBytesOp) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8255,7 +8113,7 @@ func (p projMinusJSONConstBytesOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8336,14 +8194,12 @@ func (p projMinusJSONConstInt16Op) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8358,7 +8214,7 @@ func (p projMinusJSONConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8427,14 +8283,12 @@ func (p projMinusJSONConstInt32Op) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8449,7 +8303,7 @@ func (p projMinusJSONConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8518,14 +8372,12 @@ func (p projMinusJSONConstInt64Op) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8540,7 +8392,7 @@ func (p projMinusJSONConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8611,16 +8463,17 @@ func (p projMinusDatumConstDatumOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, p.constArg.(tree.Datum), arg.(tree.Datum)) if err != nil { @@ -8637,9 +8490,12 @@ func (p projMinusDatumConstDatumOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, p.constArg.(tree.Datum), arg.(tree.Datum)) if err != nil { @@ -8653,7 +8509,9 @@ func (p projMinusDatumConstDatumOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*colNulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*colNulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -8720,14 +8578,12 @@ func (p projMinusDatumConstIntervalOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8750,7 +8606,7 @@ func (p projMinusDatumConstIntervalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8845,14 +8701,12 @@ func (p projMinusDatumConstBytesOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8875,7 +8729,7 @@ func (p projMinusDatumConstBytesOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8970,14 +8824,12 @@ func (p projMinusDatumConstInt16Op) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9000,7 +8852,7 @@ func (p projMinusDatumConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9095,14 +8947,12 @@ func (p projMinusDatumConstInt32Op) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9125,7 +8975,7 @@ func (p projMinusDatumConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9220,14 +9070,12 @@ func (p projMinusDatumConstInt64Op) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9250,7 +9098,7 @@ func (p projMinusDatumConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9343,14 +9191,12 @@ func (p projMultDecimalConstInt16Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9369,7 +9215,7 @@ func (p projMultDecimalConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -9452,14 +9298,12 @@ func (p projMultDecimalConstInt32Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9478,7 +9322,7 @@ func (p projMultDecimalConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -9561,14 +9405,12 @@ func (p projMultDecimalConstInt64Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9587,7 +9429,7 @@ func (p projMultDecimalConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -9670,14 +9512,12 @@ func (p projMultDecimalConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9695,7 +9535,7 @@ func (p projMultDecimalConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -9775,14 +9615,12 @@ func (p projMultDecimalConstIntervalOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9797,7 +9635,7 @@ func (p projMultDecimalConstIntervalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -9868,14 +9706,12 @@ func (p projMultInt16ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9901,7 +9737,7 @@ func (p projMultInt16ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10005,14 +9841,12 @@ func (p projMultInt16ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -10038,7 +9872,7 @@ func (p projMultInt16ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10142,14 +9976,12 @@ func (p projMultInt16ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -10175,7 +10007,7 @@ func (p projMultInt16ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10279,14 +10111,12 @@ func (p projMultInt16ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -10306,7 +10136,7 @@ func (p projMultInt16ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10392,14 +10222,12 @@ func (p projMultInt16ConstIntervalOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = arg.Mul(int64(p.constArg)) @@ -10409,7 +10237,7 @@ func (p projMultInt16ConstIntervalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10465,14 +10293,12 @@ func (p projMultInt32ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -10498,7 +10324,7 @@ func (p projMultInt32ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10602,14 +10428,12 @@ func (p projMultInt32ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -10635,7 +10459,7 @@ func (p projMultInt32ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10739,14 +10563,12 @@ func (p projMultInt32ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -10772,7 +10594,7 @@ func (p projMultInt32ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10876,14 +10698,12 @@ func (p projMultInt32ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -10903,7 +10723,7 @@ func (p projMultInt32ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10989,14 +10809,12 @@ func (p projMultInt32ConstIntervalOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = arg.Mul(int64(p.constArg)) @@ -11006,7 +10824,7 @@ func (p projMultInt32ConstIntervalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11062,14 +10880,12 @@ func (p projMultInt64ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -11095,7 +10911,7 @@ func (p projMultInt64ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11199,14 +11015,12 @@ func (p projMultInt64ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -11232,7 +11046,7 @@ func (p projMultInt64ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11336,14 +11150,12 @@ func (p projMultInt64ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -11369,7 +11181,7 @@ func (p projMultInt64ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11473,14 +11285,12 @@ func (p projMultInt64ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -11500,7 +11310,7 @@ func (p projMultInt64ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11586,14 +11396,12 @@ func (p projMultInt64ConstIntervalOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = arg.Mul(int64(p.constArg)) @@ -11603,7 +11411,7 @@ func (p projMultInt64ConstIntervalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11659,14 +11467,12 @@ func (p projMultFloat64ConstFloat64Op) Next() coldata.Batch { } projCol := projVec.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -11681,7 +11487,7 @@ func (p projMultFloat64ConstFloat64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11752,14 +11558,12 @@ func (p projMultFloat64ConstIntervalOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = arg.MulFloat(float64(p.constArg)) @@ -11769,7 +11573,7 @@ func (p projMultFloat64ConstIntervalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11825,14 +11629,12 @@ func (p projMultIntervalConstInt16Op) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = p.constArg.Mul(int64(arg)) @@ -11842,7 +11644,7 @@ func (p projMultIntervalConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11898,14 +11700,12 @@ func (p projMultIntervalConstInt32Op) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = p.constArg.Mul(int64(arg)) @@ -11915,7 +11715,7 @@ func (p projMultIntervalConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11971,14 +11771,12 @@ func (p projMultIntervalConstInt64Op) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = p.constArg.Mul(int64(arg)) @@ -11988,7 +11786,7 @@ func (p projMultIntervalConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12044,14 +11842,12 @@ func (p projMultIntervalConstFloat64Op) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = p.constArg.MulFloat(float64(arg)) @@ -12061,7 +11857,7 @@ func (p projMultIntervalConstFloat64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12117,14 +11913,12 @@ func (p projMultIntervalConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -12139,7 +11933,7 @@ func (p projMultIntervalConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12210,14 +12004,12 @@ func (p projDivDecimalConstInt16Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -12240,7 +12032,7 @@ func (p projDivDecimalConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12335,14 +12127,12 @@ func (p projDivDecimalConstInt32Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -12365,7 +12155,7 @@ func (p projDivDecimalConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12460,14 +12250,12 @@ func (p projDivDecimalConstInt64Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -12490,7 +12278,7 @@ func (p projDivDecimalConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12585,14 +12373,12 @@ func (p projDivDecimalConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -12614,7 +12400,7 @@ func (p projDivDecimalConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12706,14 +12492,12 @@ func (p projDivInt16ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -12735,7 +12519,7 @@ func (p projDivInt16ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12827,14 +12611,12 @@ func (p projDivInt16ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -12856,7 +12638,7 @@ func (p projDivInt16ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12948,14 +12730,12 @@ func (p projDivInt16ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -12977,7 +12757,7 @@ func (p projDivInt16ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -13069,14 +12849,12 @@ func (p projDivInt16ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -13100,7 +12878,7 @@ func (p projDivInt16ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -13198,14 +12976,12 @@ func (p projDivInt32ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -13227,7 +13003,7 @@ func (p projDivInt32ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -13319,14 +13095,12 @@ func (p projDivInt32ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -13348,7 +13122,7 @@ func (p projDivInt32ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -13440,14 +13214,12 @@ func (p projDivInt32ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -13469,7 +13241,7 @@ func (p projDivInt32ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -13561,14 +13333,12 @@ func (p projDivInt32ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -13592,7 +13362,7 @@ func (p projDivInt32ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -13690,14 +13460,12 @@ func (p projDivInt64ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -13719,7 +13487,7 @@ func (p projDivInt64ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -13811,14 +13579,12 @@ func (p projDivInt64ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -13840,7 +13606,7 @@ func (p projDivInt64ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -13932,14 +13698,12 @@ func (p projDivInt64ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -13961,7 +13725,7 @@ func (p projDivInt64ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14053,14 +13817,12 @@ func (p projDivInt64ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14084,7 +13846,7 @@ func (p projDivInt64ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14182,14 +13944,12 @@ func (p projDivFloat64ConstFloat64Op) Next() coldata.Batch { } projCol := projVec.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14208,7 +13968,7 @@ func (p projDivFloat64ConstFloat64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14291,14 +14051,12 @@ func (p projDivIntervalConstInt16Op) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14312,7 +14070,7 @@ func (p projDivIntervalConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14380,14 +14138,12 @@ func (p projDivIntervalConstInt32Op) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14401,7 +14157,7 @@ func (p projDivIntervalConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14469,14 +14225,12 @@ func (p projDivIntervalConstInt64Op) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14490,7 +14244,7 @@ func (p projDivIntervalConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14558,14 +14312,12 @@ func (p projDivIntervalConstFloat64Op) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14579,7 +14331,7 @@ func (p projDivIntervalConstFloat64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14647,14 +14399,12 @@ func (p projFloorDivDecimalConstInt16Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14677,7 +14427,7 @@ func (p projFloorDivDecimalConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14772,14 +14522,12 @@ func (p projFloorDivDecimalConstInt32Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14802,7 +14550,7 @@ func (p projFloorDivDecimalConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14897,14 +14645,12 @@ func (p projFloorDivDecimalConstInt64Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14927,7 +14673,7 @@ func (p projFloorDivDecimalConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15022,14 +14768,12 @@ func (p projFloorDivDecimalConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15051,7 +14795,7 @@ func (p projFloorDivDecimalConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15143,14 +14887,12 @@ func (p projFloorDivInt16ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15167,7 +14909,7 @@ func (p projFloorDivInt16ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15244,14 +14986,12 @@ func (p projFloorDivInt16ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15268,7 +15008,7 @@ func (p projFloorDivInt16ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15345,14 +15085,12 @@ func (p projFloorDivInt16ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15369,7 +15107,7 @@ func (p projFloorDivInt16ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15446,14 +15184,12 @@ func (p projFloorDivInt16ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15477,7 +15213,7 @@ func (p projFloorDivInt16ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15575,14 +15311,12 @@ func (p projFloorDivInt32ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15599,7 +15333,7 @@ func (p projFloorDivInt32ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15676,14 +15410,12 @@ func (p projFloorDivInt32ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15700,7 +15432,7 @@ func (p projFloorDivInt32ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15777,14 +15509,12 @@ func (p projFloorDivInt32ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15801,7 +15531,7 @@ func (p projFloorDivInt32ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15878,14 +15608,12 @@ func (p projFloorDivInt32ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15909,7 +15637,7 @@ func (p projFloorDivInt32ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16007,14 +15735,12 @@ func (p projFloorDivInt64ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16031,7 +15757,7 @@ func (p projFloorDivInt64ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16108,14 +15834,12 @@ func (p projFloorDivInt64ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16132,7 +15856,7 @@ func (p projFloorDivInt64ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16209,14 +15933,12 @@ func (p projFloorDivInt64ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16233,7 +15955,7 @@ func (p projFloorDivInt64ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16310,14 +16032,12 @@ func (p projFloorDivInt64ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16341,7 +16061,7 @@ func (p projFloorDivInt64ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16439,14 +16159,12 @@ func (p projFloorDivFloat64ConstFloat64Op) Next() coldata.Batch { } projCol := projVec.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16465,7 +16183,7 @@ func (p projFloorDivFloat64ConstFloat64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16548,14 +16266,12 @@ func (p projModDecimalConstInt16Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16578,7 +16294,7 @@ func (p projModDecimalConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16673,14 +16389,12 @@ func (p projModDecimalConstInt32Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16703,7 +16417,7 @@ func (p projModDecimalConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16798,14 +16512,12 @@ func (p projModDecimalConstInt64Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16828,7 +16540,7 @@ func (p projModDecimalConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16923,14 +16635,12 @@ func (p projModDecimalConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16952,7 +16662,7 @@ func (p projModDecimalConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17044,14 +16754,12 @@ func (p projModInt16ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17068,7 +16776,7 @@ func (p projModInt16ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17145,14 +16853,12 @@ func (p projModInt16ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17169,7 +16875,7 @@ func (p projModInt16ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17246,14 +16952,12 @@ func (p projModInt16ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17270,7 +16974,7 @@ func (p projModInt16ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17347,14 +17051,12 @@ func (p projModInt16ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17378,7 +17080,7 @@ func (p projModInt16ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17476,14 +17178,12 @@ func (p projModInt32ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17500,7 +17200,7 @@ func (p projModInt32ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17577,14 +17277,12 @@ func (p projModInt32ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17601,7 +17299,7 @@ func (p projModInt32ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17678,14 +17376,12 @@ func (p projModInt32ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17702,7 +17398,7 @@ func (p projModInt32ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17779,14 +17475,12 @@ func (p projModInt32ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17810,7 +17504,7 @@ func (p projModInt32ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17908,14 +17602,12 @@ func (p projModInt64ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17932,7 +17624,7 @@ func (p projModInt64ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18009,14 +17701,12 @@ func (p projModInt64ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18033,7 +17723,7 @@ func (p projModInt64ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18110,14 +17800,12 @@ func (p projModInt64ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18134,7 +17822,7 @@ func (p projModInt64ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18211,14 +17899,12 @@ func (p projModInt64ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18242,7 +17928,7 @@ func (p projModInt64ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18340,14 +18026,12 @@ func (p projModFloat64ConstFloat64Op) Next() coldata.Batch { } projCol := projVec.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18366,7 +18050,7 @@ func (p projModFloat64ConstFloat64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18449,14 +18133,12 @@ func (p projPowDecimalConstInt16Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18475,7 +18157,7 @@ func (p projPowDecimalConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18558,14 +18240,12 @@ func (p projPowDecimalConstInt32Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18584,7 +18264,7 @@ func (p projPowDecimalConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18667,14 +18347,12 @@ func (p projPowDecimalConstInt64Op) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18693,7 +18371,7 @@ func (p projPowDecimalConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18776,14 +18454,12 @@ func (p projPowDecimalConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18801,7 +18477,7 @@ func (p projPowDecimalConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18881,14 +18557,12 @@ func (p projPowInt16ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18912,7 +18586,7 @@ func (p projPowInt16ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -19010,14 +18684,12 @@ func (p projPowInt16ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -19041,7 +18713,7 @@ func (p projPowInt16ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -19139,14 +18811,12 @@ func (p projPowInt16ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -19170,7 +18840,7 @@ func (p projPowInt16ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -19268,14 +18938,12 @@ func (p projPowInt16ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -19295,7 +18963,7 @@ func (p projPowInt16ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -19381,14 +19049,12 @@ func (p projPowInt32ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -19412,7 +19078,7 @@ func (p projPowInt32ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -19510,14 +19176,12 @@ func (p projPowInt32ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -19541,7 +19205,7 @@ func (p projPowInt32ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -19639,14 +19303,12 @@ func (p projPowInt32ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -19670,7 +19332,7 @@ func (p projPowInt32ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -19768,14 +19430,12 @@ func (p projPowInt32ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -19795,7 +19455,7 @@ func (p projPowInt32ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -19881,14 +19541,12 @@ func (p projPowInt64ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -19912,7 +19570,7 @@ func (p projPowInt64ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -20010,14 +19668,12 @@ func (p projPowInt64ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20041,7 +19697,7 @@ func (p projPowInt64ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -20139,14 +19795,12 @@ func (p projPowInt64ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20170,7 +19824,7 @@ func (p projPowInt64ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -20268,14 +19922,12 @@ func (p projPowInt64ConstDecimalOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20295,7 +19947,7 @@ func (p projPowInt64ConstDecimalOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -20381,14 +20033,12 @@ func (p projPowFloat64ConstFloat64Op) Next() coldata.Batch { } projCol := projVec.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20403,7 +20053,7 @@ func (p projPowFloat64ConstFloat64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -20474,14 +20124,12 @@ func (p projConcatBytesConstBytesOp) Next() coldata.Batch { } projCol := projVec.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20498,7 +20146,7 @@ func (p projConcatBytesConstBytesOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20573,14 +20221,12 @@ func (p projConcatJSONConstJSONOp) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20596,7 +20242,7 @@ func (p projConcatJSONConstJSONOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20670,16 +20316,17 @@ func (p projConcatDatumConstDatumOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, p.constArg.(tree.Datum), arg.(tree.Datum)) if err != nil { @@ -20696,9 +20343,12 @@ func (p projConcatDatumConstDatumOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, p.constArg.(tree.Datum), arg.(tree.Datum)) if err != nil { @@ -20712,7 +20362,9 @@ func (p projConcatDatumConstDatumOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*colNulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*colNulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -20777,14 +20429,12 @@ func (p projLShiftInt16ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20802,7 +20452,7 @@ func (p projLShiftInt16ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -20882,14 +20532,12 @@ func (p projLShiftInt16ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20907,7 +20555,7 @@ func (p projLShiftInt16ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -20987,14 +20635,12 @@ func (p projLShiftInt16ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21012,7 +20658,7 @@ func (p projLShiftInt16ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -21092,14 +20738,12 @@ func (p projLShiftInt32ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21117,7 +20761,7 @@ func (p projLShiftInt32ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -21197,14 +20841,12 @@ func (p projLShiftInt32ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21222,7 +20864,7 @@ func (p projLShiftInt32ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -21302,14 +20944,12 @@ func (p projLShiftInt32ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21327,7 +20967,7 @@ func (p projLShiftInt32ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -21407,14 +21047,12 @@ func (p projLShiftInt64ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21432,7 +21070,7 @@ func (p projLShiftInt64ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -21512,14 +21150,12 @@ func (p projLShiftInt64ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21537,7 +21173,7 @@ func (p projLShiftInt64ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -21617,14 +21253,12 @@ func (p projLShiftInt64ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21642,7 +21276,7 @@ func (p projLShiftInt64ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -21724,14 +21358,12 @@ func (p projLShiftDatumConstInt16Op) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21754,7 +21386,7 @@ func (p projLShiftDatumConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21849,14 +21481,12 @@ func (p projLShiftDatumConstInt32Op) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21879,7 +21509,7 @@ func (p projLShiftDatumConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21974,14 +21604,12 @@ func (p projLShiftDatumConstInt64Op) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22004,7 +21632,7 @@ func (p projLShiftDatumConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22097,14 +21725,12 @@ func (p projRShiftInt16ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22122,7 +21748,7 @@ func (p projRShiftInt16ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22202,14 +21828,12 @@ func (p projRShiftInt16ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22227,7 +21851,7 @@ func (p projRShiftInt16ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22307,14 +21931,12 @@ func (p projRShiftInt16ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22332,7 +21954,7 @@ func (p projRShiftInt16ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22412,14 +22034,12 @@ func (p projRShiftInt32ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22437,7 +22057,7 @@ func (p projRShiftInt32ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22517,14 +22137,12 @@ func (p projRShiftInt32ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22542,7 +22160,7 @@ func (p projRShiftInt32ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22622,14 +22240,12 @@ func (p projRShiftInt32ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22647,7 +22263,7 @@ func (p projRShiftInt32ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22727,14 +22343,12 @@ func (p projRShiftInt64ConstInt16Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22752,7 +22366,7 @@ func (p projRShiftInt64ConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22832,14 +22446,12 @@ func (p projRShiftInt64ConstInt32Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22857,7 +22469,7 @@ func (p projRShiftInt64ConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22937,14 +22549,12 @@ func (p projRShiftInt64ConstInt64Op) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22962,7 +22572,7 @@ func (p projRShiftInt64ConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -23044,14 +22654,12 @@ func (p projRShiftDatumConstInt16Op) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23074,7 +22682,7 @@ func (p projRShiftDatumConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23169,14 +22777,12 @@ func (p projRShiftDatumConstInt32Op) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23199,7 +22805,7 @@ func (p projRShiftDatumConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23294,14 +22900,12 @@ func (p projRShiftDatumConstInt64Op) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23324,7 +22928,7 @@ func (p projRShiftDatumConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23417,14 +23021,12 @@ func (p projJSONFetchValJSONConstBytesOp) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23446,7 +23048,7 @@ func (p projJSONFetchValJSONConstBytesOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23536,14 +23138,12 @@ func (p projJSONFetchValJSONConstInt16Op) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23562,7 +23162,7 @@ func (p projJSONFetchValJSONConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23643,14 +23243,12 @@ func (p projJSONFetchValJSONConstInt32Op) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23669,7 +23267,7 @@ func (p projJSONFetchValJSONConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23750,14 +23348,12 @@ func (p projJSONFetchValJSONConstInt64Op) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23776,7 +23372,7 @@ func (p projJSONFetchValJSONConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23857,14 +23453,12 @@ func (p projJSONFetchTextJSONConstBytesOp) Next() coldata.Batch { } projCol := projVec.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23895,7 +23489,7 @@ func (p projJSONFetchTextJSONConstBytesOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24012,14 +23606,12 @@ func (p projJSONFetchTextJSONConstInt16Op) Next() coldata.Batch { } projCol := projVec.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24047,7 +23639,7 @@ func (p projJSONFetchTextJSONConstInt16Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24155,14 +23747,12 @@ func (p projJSONFetchTextJSONConstInt32Op) Next() coldata.Batch { } projCol := projVec.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24190,7 +23780,7 @@ func (p projJSONFetchTextJSONConstInt32Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24298,14 +23888,12 @@ func (p projJSONFetchTextJSONConstInt64Op) Next() coldata.Batch { } projCol := projVec.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24333,7 +23921,7 @@ func (p projJSONFetchTextJSONConstInt64Op) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24441,14 +24029,12 @@ func (p projJSONFetchValPathJSONConstDatumOp) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24467,7 +24053,7 @@ func (p projJSONFetchValPathJSONConstDatumOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24548,14 +24134,12 @@ func (p projJSONFetchTextPathJSONConstDatumOp) Next() coldata.Batch { } projCol := projVec.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24584,7 +24168,7 @@ func (p projJSONFetchTextPathJSONConstDatumOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) diff --git a/pkg/sql/colexec/colexecproj/proj_const_ops_tmpl.go b/pkg/sql/colexec/colexecproj/proj_const_ops_tmpl.go index deb28ef7fd53..3109e7029fe4 100644 --- a/pkg/sql/colexec/colexecproj/proj_const_ops_tmpl.go +++ b/pkg/sql/colexec/colexecproj/proj_const_ops_tmpl.go @@ -134,23 +134,7 @@ func (p _OP_CONST_NAME) Next() coldata.Batch { // of a projection is Null. // */}} _outNulls := projVec.Nulls() - - // {{/* - // If nullableArgs is true, the function’s definition can handle null - // arguments. We would still want to perform the projection, and there is no - // need to call projVec.SetNulls(). The behaviour will just be the same as - // _HAS_NULLS is false. Since currently only ConcatDatumDatum needs this - // nullableArgs == true behaviour, logic for nullableArgs is only added to - // the if statement for function with Datum, Datum. If we later introduce - // another projection operation that has nullableArgs == true, we should - // update this code accordingly. - // */}} - // {{if and (eq .Left.VecMethod "Datum") (eq .Right.VecMethod "Datum")}} - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - // {{else}} - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - // {{end}} - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { _SET_PROJECTION(true) } else { _SET_PROJECTION(false) @@ -167,6 +151,7 @@ func _SET_PROJECTION(_HAS_NULLS bool) { // {{define "setProjection" -}} // {{$hasNulls := $.HasNulls}} // {{with $.Overload}} + // {{$isDatum := (and (eq .Left.VecMethod "Datum") (eq .Right.VecMethod "Datum"))}} // {{if _HAS_NULLS}} colNulls := vec.Nulls() // {{end}} @@ -190,7 +175,13 @@ func _SET_PROJECTION(_HAS_NULLS bool) { // projVec.Nulls() so there is no need to call projVec.SetNulls(). // */}} // {{if _HAS_NULLS}} - projVec.SetNulls(_outNulls.Or(*colNulls)) + // {{if $isDatum}} + if !p.nullableArgs { + // {{end}} + projVec.SetNulls(_outNulls.Or(*colNulls)) + // {{if $isDatum}} + } + // {{end}} // {{end}} // {{end}} // {{end}} @@ -205,8 +196,9 @@ func _SET_SINGLE_TUPLE_PROJECTION(_HAS_NULLS bool, _HAS_SEL bool) { // */}} // {{$hasNulls := $.HasNulls}} // {{$hasSel := $.HasSel}} // {{with $.Overload}} + // {{$isDatum := (and (eq .Left.VecMethod "Datum") (eq .Right.VecMethod "Datum"))}} // {{if _HAS_NULLS}} - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. // {{end}} // {{if _IS_CONST_LEFT}} @@ -219,6 +211,19 @@ func _SET_SINGLE_TUPLE_PROJECTION(_HAS_NULLS bool, _HAS_SEL bool) { // */}} // {{end}} // {{end}} arg := col.Get(i) + // {{if (and _HAS_NULLS $isDatum)}} + if colNulls.NullAt(i) { + // {{/* + // If we entered this branch for a null value, nullableArgs must be + // true. This means the projection should be calculated on null arguments. + // When a value is null, the underlying data in the slice is invalid and + // can be anything, so we need to overwrite it here. nullableArgs is + // currently only true for ConcatDatumDatum, so only the datum case needs + // to be handled. + // */}} + arg = tree.DNull + } + // {{end}} // {{if _IS_CONST_LEFT}} _ASSIGN(projCol[i], p.constArg, arg, projCol, _, col) // {{else}} diff --git a/pkg/sql/colexec/colexecproj/proj_const_right_ops.eg.go b/pkg/sql/colexec/colexecproj/proj_const_right_ops.eg.go index b643a488f9dd..7340bad4ea90 100644 --- a/pkg/sql/colexec/colexecproj/proj_const_right_ops.eg.go +++ b/pkg/sql/colexec/colexecproj/proj_const_right_ops.eg.go @@ -74,14 +74,12 @@ func (p projBitandInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -93,7 +91,7 @@ func (p projBitandInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -155,14 +153,12 @@ func (p projBitandInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -174,7 +170,7 @@ func (p projBitandInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -236,14 +232,12 @@ func (p projBitandInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -255,7 +249,7 @@ func (p projBitandInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -317,14 +311,12 @@ func (p projBitandInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -336,7 +328,7 @@ func (p projBitandInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -398,14 +390,12 @@ func (p projBitandInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -417,7 +407,7 @@ func (p projBitandInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -479,14 +469,12 @@ func (p projBitandInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -498,7 +486,7 @@ func (p projBitandInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -560,14 +548,12 @@ func (p projBitandInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -579,7 +565,7 @@ func (p projBitandInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -641,14 +627,12 @@ func (p projBitandInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -660,7 +644,7 @@ func (p projBitandInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -722,14 +706,12 @@ func (p projBitandInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -741,7 +723,7 @@ func (p projBitandInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -805,16 +787,17 @@ func (p projBitandDatumDatumConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg.(tree.Datum), p.constArg.(tree.Datum)) if err != nil { @@ -831,9 +814,12 @@ func (p projBitandDatumDatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg.(tree.Datum), p.constArg.(tree.Datum)) if err != nil { @@ -847,7 +833,9 @@ func (p projBitandDatumDatumConstOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*colNulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*colNulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -912,14 +900,12 @@ func (p projBitorInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -931,7 +917,7 @@ func (p projBitorInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -993,14 +979,12 @@ func (p projBitorInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1012,7 +996,7 @@ func (p projBitorInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1074,14 +1058,12 @@ func (p projBitorInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1093,7 +1075,7 @@ func (p projBitorInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1155,14 +1137,12 @@ func (p projBitorInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1174,7 +1154,7 @@ func (p projBitorInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1236,14 +1216,12 @@ func (p projBitorInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1255,7 +1233,7 @@ func (p projBitorInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1317,14 +1295,12 @@ func (p projBitorInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1336,7 +1312,7 @@ func (p projBitorInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1398,14 +1374,12 @@ func (p projBitorInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1417,7 +1391,7 @@ func (p projBitorInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1479,14 +1453,12 @@ func (p projBitorInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1498,7 +1470,7 @@ func (p projBitorInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1560,14 +1532,12 @@ func (p projBitorInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1579,7 +1549,7 @@ func (p projBitorInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1643,16 +1613,17 @@ func (p projBitorDatumDatumConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg.(tree.Datum), p.constArg.(tree.Datum)) if err != nil { @@ -1669,9 +1640,12 @@ func (p projBitorDatumDatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg.(tree.Datum), p.constArg.(tree.Datum)) if err != nil { @@ -1685,7 +1659,9 @@ func (p projBitorDatumDatumConstOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*colNulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*colNulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -1750,14 +1726,12 @@ func (p projBitxorInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1769,7 +1743,7 @@ func (p projBitxorInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1831,14 +1805,12 @@ func (p projBitxorInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1850,7 +1822,7 @@ func (p projBitxorInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1912,14 +1884,12 @@ func (p projBitxorInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -1931,7 +1901,7 @@ func (p projBitxorInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -1993,14 +1963,12 @@ func (p projBitxorInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2012,7 +1980,7 @@ func (p projBitxorInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2074,14 +2042,12 @@ func (p projBitxorInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2093,7 +2059,7 @@ func (p projBitxorInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2155,14 +2121,12 @@ func (p projBitxorInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2174,7 +2138,7 @@ func (p projBitxorInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2236,14 +2200,12 @@ func (p projBitxorInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2255,7 +2217,7 @@ func (p projBitxorInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2317,14 +2279,12 @@ func (p projBitxorInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2336,7 +2296,7 @@ func (p projBitxorInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2398,14 +2358,12 @@ func (p projBitxorInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2417,7 +2375,7 @@ func (p projBitxorInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2481,16 +2439,17 @@ func (p projBitxorDatumDatumConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg.(tree.Datum), p.constArg.(tree.Datum)) if err != nil { @@ -2507,9 +2466,12 @@ func (p projBitxorDatumDatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg.(tree.Datum), p.constArg.(tree.Datum)) if err != nil { @@ -2523,7 +2485,9 @@ func (p projBitxorDatumDatumConstOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*colNulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*colNulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -2588,14 +2552,12 @@ func (p projPlusDecimalInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2614,7 +2576,7 @@ func (p projPlusDecimalInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2697,14 +2659,12 @@ func (p projPlusDecimalInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2723,7 +2683,7 @@ func (p projPlusDecimalInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2806,14 +2766,12 @@ func (p projPlusDecimalInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2832,7 +2790,7 @@ func (p projPlusDecimalInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -2915,14 +2873,12 @@ func (p projPlusDecimalDecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -2940,7 +2896,7 @@ func (p projPlusDecimalDecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3020,14 +2976,12 @@ func (p projPlusInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3045,7 +2999,7 @@ func (p projPlusInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3125,14 +3079,12 @@ func (p projPlusInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3150,7 +3102,7 @@ func (p projPlusInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3230,14 +3182,12 @@ func (p projPlusInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3255,7 +3205,7 @@ func (p projPlusInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3335,14 +3285,12 @@ func (p projPlusInt16DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3362,7 +3310,7 @@ func (p projPlusInt16DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3450,14 +3398,12 @@ func (p projPlusInt16DatumConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3480,7 +3426,7 @@ func (p projPlusInt16DatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3573,14 +3519,12 @@ func (p projPlusInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3598,7 +3542,7 @@ func (p projPlusInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3678,14 +3622,12 @@ func (p projPlusInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3703,7 +3645,7 @@ func (p projPlusInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3783,14 +3725,12 @@ func (p projPlusInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3808,7 +3748,7 @@ func (p projPlusInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -3888,14 +3828,12 @@ func (p projPlusInt32DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -3915,7 +3853,7 @@ func (p projPlusInt32DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4003,14 +3941,12 @@ func (p projPlusInt32DatumConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -4033,7 +3969,7 @@ func (p projPlusInt32DatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -4126,14 +4062,12 @@ func (p projPlusInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -4151,7 +4085,7 @@ func (p projPlusInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4231,14 +4165,12 @@ func (p projPlusInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -4256,7 +4188,7 @@ func (p projPlusInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4336,14 +4268,12 @@ func (p projPlusInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -4361,7 +4291,7 @@ func (p projPlusInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4441,14 +4371,12 @@ func (p projPlusInt64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -4468,7 +4396,7 @@ func (p projPlusInt64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4556,14 +4484,12 @@ func (p projPlusInt64DatumConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -4586,7 +4512,7 @@ func (p projPlusInt64DatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -4679,14 +4605,12 @@ func (p projPlusFloat64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -4701,7 +4625,7 @@ func (p projPlusFloat64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4772,14 +4696,12 @@ func (p projPlusTimestampIntervalConstOp) Next() coldata.Batch { } projCol := projVec.Timestamp() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) t_res := duration.Add(arg, p.constArg) @@ -4794,7 +4716,7 @@ func (p projPlusTimestampIntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4865,14 +4787,12 @@ func (p projPlusIntervalTimestampConstOp) Next() coldata.Batch { } projCol := projVec.Timestamp() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) t_res := duration.Add(p.constArg, arg) @@ -4887,7 +4807,7 @@ func (p projPlusIntervalTimestampConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -4958,14 +4878,12 @@ func (p projPlusIntervalIntervalConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = arg.Add(p.constArg) @@ -4975,7 +4893,7 @@ func (p projPlusIntervalIntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -5033,14 +4951,12 @@ func (p projPlusIntervalDatumConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5063,7 +4979,7 @@ func (p projPlusIntervalDatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5158,14 +5074,12 @@ func (p projPlusDatumIntervalConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5188,7 +5102,7 @@ func (p projPlusDatumIntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -5285,14 +5199,12 @@ func (p projPlusDatumInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5315,7 +5227,7 @@ func (p projPlusDatumInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -5412,14 +5324,12 @@ func (p projPlusDatumInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5442,7 +5352,7 @@ func (p projPlusDatumInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -5539,14 +5449,12 @@ func (p projPlusDatumInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5569,7 +5477,7 @@ func (p projPlusDatumInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -5664,14 +5572,12 @@ func (p projMinusDecimalInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5690,7 +5596,7 @@ func (p projMinusDecimalInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -5773,14 +5679,12 @@ func (p projMinusDecimalInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5799,7 +5703,7 @@ func (p projMinusDecimalInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -5882,14 +5786,12 @@ func (p projMinusDecimalInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -5908,7 +5810,7 @@ func (p projMinusDecimalInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -5991,14 +5893,12 @@ func (p projMinusDecimalDecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6016,7 +5916,7 @@ func (p projMinusDecimalDecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6096,14 +5996,12 @@ func (p projMinusInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6121,7 +6019,7 @@ func (p projMinusInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6201,14 +6099,12 @@ func (p projMinusInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6226,7 +6122,7 @@ func (p projMinusInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6306,14 +6202,12 @@ func (p projMinusInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6331,7 +6225,7 @@ func (p projMinusInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6411,14 +6305,12 @@ func (p projMinusInt16DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6438,7 +6330,7 @@ func (p projMinusInt16DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6526,14 +6418,12 @@ func (p projMinusInt16DatumConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6556,7 +6446,7 @@ func (p projMinusInt16DatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6649,14 +6539,12 @@ func (p projMinusInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6674,7 +6562,7 @@ func (p projMinusInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6754,14 +6642,12 @@ func (p projMinusInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6779,7 +6665,7 @@ func (p projMinusInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6859,14 +6745,12 @@ func (p projMinusInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6884,7 +6768,7 @@ func (p projMinusInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -6964,14 +6848,12 @@ func (p projMinusInt32DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -6991,7 +6873,7 @@ func (p projMinusInt32DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -7079,14 +6961,12 @@ func (p projMinusInt32DatumConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7109,7 +6989,7 @@ func (p projMinusInt32DatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7202,14 +7082,12 @@ func (p projMinusInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7227,7 +7105,7 @@ func (p projMinusInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -7307,14 +7185,12 @@ func (p projMinusInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7332,7 +7208,7 @@ func (p projMinusInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -7412,14 +7288,12 @@ func (p projMinusInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7437,7 +7311,7 @@ func (p projMinusInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -7517,14 +7391,12 @@ func (p projMinusInt64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7544,7 +7416,7 @@ func (p projMinusInt64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -7632,14 +7504,12 @@ func (p projMinusInt64DatumConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7662,7 +7532,7 @@ func (p projMinusInt64DatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7755,14 +7625,12 @@ func (p projMinusFloat64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7777,7 +7645,7 @@ func (p projMinusFloat64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -7848,14 +7716,12 @@ func (p projMinusTimestampTimestampConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -7868,7 +7734,7 @@ func (p projMinusTimestampTimestampConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -7933,14 +7799,12 @@ func (p projMinusTimestampIntervalConstOp) Next() coldata.Batch { } projCol := projVec.Timestamp() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) t_res := duration.Add(arg, p.constArg.Mul(-1)) @@ -7955,7 +7819,7 @@ func (p projMinusTimestampIntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -8026,14 +7890,12 @@ func (p projMinusIntervalIntervalConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = arg.Sub(p.constArg) @@ -8043,7 +7905,7 @@ func (p projMinusIntervalIntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -8101,14 +7963,12 @@ func (p projMinusIntervalDatumConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8131,7 +7991,7 @@ func (p projMinusIntervalDatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8224,14 +8084,12 @@ func (p projMinusJSONBytesConstOp) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8250,7 +8108,7 @@ func (p projMinusJSONBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8331,14 +8189,12 @@ func (p projMinusJSONInt16ConstOp) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8353,7 +8209,7 @@ func (p projMinusJSONInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -8424,14 +8280,12 @@ func (p projMinusJSONInt32ConstOp) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8446,7 +8300,7 @@ func (p projMinusJSONInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -8517,14 +8371,12 @@ func (p projMinusJSONInt64ConstOp) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8539,7 +8391,7 @@ func (p projMinusJSONInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -8612,16 +8464,17 @@ func (p projMinusDatumDatumConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg.(tree.Datum), p.constArg.(tree.Datum)) if err != nil { @@ -8638,9 +8491,12 @@ func (p projMinusDatumDatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg.(tree.Datum), p.constArg.(tree.Datum)) if err != nil { @@ -8654,7 +8510,9 @@ func (p projMinusDatumDatumConstOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*colNulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*colNulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -8721,14 +8579,12 @@ func (p projMinusDatumIntervalConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8751,7 +8607,7 @@ func (p projMinusDatumIntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -8848,14 +8704,12 @@ func (p projMinusDatumBytesConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8878,7 +8732,7 @@ func (p projMinusDatumBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -8973,14 +8827,12 @@ func (p projMinusDatumInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9003,7 +8855,7 @@ func (p projMinusDatumInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -9100,14 +8952,12 @@ func (p projMinusDatumInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9130,7 +8980,7 @@ func (p projMinusDatumInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -9227,14 +9077,12 @@ func (p projMinusDatumInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9257,7 +9105,7 @@ func (p projMinusDatumInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -9352,14 +9200,12 @@ func (p projMultDecimalInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9378,7 +9224,7 @@ func (p projMultDecimalInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -9461,14 +9307,12 @@ func (p projMultDecimalInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9487,7 +9331,7 @@ func (p projMultDecimalInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -9570,14 +9414,12 @@ func (p projMultDecimalInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9596,7 +9438,7 @@ func (p projMultDecimalInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -9679,14 +9521,12 @@ func (p projMultDecimalDecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9704,7 +9544,7 @@ func (p projMultDecimalDecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -9784,14 +9624,12 @@ func (p projMultDecimalIntervalConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9806,7 +9644,7 @@ func (p projMultDecimalIntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -9877,14 +9715,12 @@ func (p projMultInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -9910,7 +9746,7 @@ func (p projMultInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10014,14 +9850,12 @@ func (p projMultInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -10047,7 +9881,7 @@ func (p projMultInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10151,14 +9985,12 @@ func (p projMultInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -10184,7 +10016,7 @@ func (p projMultInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10288,14 +10120,12 @@ func (p projMultInt16DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -10315,7 +10145,7 @@ func (p projMultInt16DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10401,14 +10231,12 @@ func (p projMultInt16IntervalConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = p.constArg.Mul(int64(arg)) @@ -10418,7 +10246,7 @@ func (p projMultInt16IntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10474,14 +10302,12 @@ func (p projMultInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -10507,7 +10333,7 @@ func (p projMultInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10611,14 +10437,12 @@ func (p projMultInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -10644,7 +10468,7 @@ func (p projMultInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10748,14 +10572,12 @@ func (p projMultInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -10781,7 +10603,7 @@ func (p projMultInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10885,14 +10707,12 @@ func (p projMultInt32DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -10912,7 +10732,7 @@ func (p projMultInt32DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -10998,14 +10818,12 @@ func (p projMultInt32IntervalConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = p.constArg.Mul(int64(arg)) @@ -11015,7 +10833,7 @@ func (p projMultInt32IntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11071,14 +10889,12 @@ func (p projMultInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -11104,7 +10920,7 @@ func (p projMultInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11208,14 +11024,12 @@ func (p projMultInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -11241,7 +11055,7 @@ func (p projMultInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11345,14 +11159,12 @@ func (p projMultInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -11378,7 +11190,7 @@ func (p projMultInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11482,14 +11294,12 @@ func (p projMultInt64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -11509,7 +11319,7 @@ func (p projMultInt64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11595,14 +11405,12 @@ func (p projMultInt64IntervalConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = p.constArg.Mul(int64(arg)) @@ -11612,7 +11420,7 @@ func (p projMultInt64IntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11668,14 +11476,12 @@ func (p projMultFloat64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -11690,7 +11496,7 @@ func (p projMultFloat64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11761,14 +11567,12 @@ func (p projMultFloat64IntervalConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = p.constArg.MulFloat(float64(arg)) @@ -11778,7 +11582,7 @@ func (p projMultFloat64IntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11834,14 +11638,12 @@ func (p projMultIntervalInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = arg.Mul(int64(p.constArg)) @@ -11851,7 +11653,7 @@ func (p projMultIntervalInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11907,14 +11709,12 @@ func (p projMultIntervalInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = arg.Mul(int64(p.constArg)) @@ -11924,7 +11724,7 @@ func (p projMultIntervalInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -11980,14 +11780,12 @@ func (p projMultIntervalInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = arg.Mul(int64(p.constArg)) @@ -11997,7 +11795,7 @@ func (p projMultIntervalInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12053,14 +11851,12 @@ func (p projMultIntervalFloat64ConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = arg.MulFloat(float64(p.constArg)) @@ -12070,7 +11866,7 @@ func (p projMultIntervalFloat64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12126,14 +11922,12 @@ func (p projMultIntervalDecimalConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -12148,7 +11942,7 @@ func (p projMultIntervalDecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12219,14 +12013,12 @@ func (p projDivDecimalInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -12249,7 +12041,7 @@ func (p projDivDecimalInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12344,14 +12136,12 @@ func (p projDivDecimalInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -12374,7 +12164,7 @@ func (p projDivDecimalInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12469,14 +12259,12 @@ func (p projDivDecimalInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -12499,7 +12287,7 @@ func (p projDivDecimalInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12594,14 +12382,12 @@ func (p projDivDecimalDecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -12623,7 +12409,7 @@ func (p projDivDecimalDecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12715,14 +12501,12 @@ func (p projDivInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -12744,7 +12528,7 @@ func (p projDivInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12836,14 +12620,12 @@ func (p projDivInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -12865,7 +12647,7 @@ func (p projDivInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -12957,14 +12739,12 @@ func (p projDivInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -12986,7 +12766,7 @@ func (p projDivInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -13078,14 +12858,12 @@ func (p projDivInt16DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -13109,7 +12887,7 @@ func (p projDivInt16DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -13207,14 +12985,12 @@ func (p projDivInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -13236,7 +13012,7 @@ func (p projDivInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -13328,14 +13104,12 @@ func (p projDivInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -13357,7 +13131,7 @@ func (p projDivInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -13449,14 +13223,12 @@ func (p projDivInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -13478,7 +13250,7 @@ func (p projDivInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -13570,14 +13342,12 @@ func (p projDivInt32DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -13601,7 +13371,7 @@ func (p projDivInt32DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -13699,14 +13469,12 @@ func (p projDivInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -13728,7 +13496,7 @@ func (p projDivInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -13820,14 +13588,12 @@ func (p projDivInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -13849,7 +13615,7 @@ func (p projDivInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -13941,14 +13707,12 @@ func (p projDivInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -13970,7 +13734,7 @@ func (p projDivInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14062,14 +13826,12 @@ func (p projDivInt64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14093,7 +13855,7 @@ func (p projDivInt64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14191,14 +13953,12 @@ func (p projDivFloat64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14217,7 +13977,7 @@ func (p projDivFloat64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14300,14 +14060,12 @@ func (p projDivIntervalInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14321,7 +14079,7 @@ func (p projDivIntervalInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14389,14 +14147,12 @@ func (p projDivIntervalInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14410,7 +14166,7 @@ func (p projDivIntervalInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14478,14 +14234,12 @@ func (p projDivIntervalInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14499,7 +14253,7 @@ func (p projDivIntervalInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14567,14 +14321,12 @@ func (p projDivIntervalFloat64ConstOp) Next() coldata.Batch { } projCol := projVec.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14588,7 +14340,7 @@ func (p projDivIntervalFloat64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14656,14 +14408,12 @@ func (p projFloorDivDecimalInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14686,7 +14436,7 @@ func (p projFloorDivDecimalInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14781,14 +14531,12 @@ func (p projFloorDivDecimalInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14811,7 +14559,7 @@ func (p projFloorDivDecimalInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -14906,14 +14654,12 @@ func (p projFloorDivDecimalInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -14936,7 +14682,7 @@ func (p projFloorDivDecimalInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15031,14 +14777,12 @@ func (p projFloorDivDecimalDecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15060,7 +14804,7 @@ func (p projFloorDivDecimalDecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15152,14 +14896,12 @@ func (p projFloorDivInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15176,7 +14918,7 @@ func (p projFloorDivInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15253,14 +14995,12 @@ func (p projFloorDivInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15277,7 +15017,7 @@ func (p projFloorDivInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15354,14 +15094,12 @@ func (p projFloorDivInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15378,7 +15116,7 @@ func (p projFloorDivInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15455,14 +15193,12 @@ func (p projFloorDivInt16DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15486,7 +15222,7 @@ func (p projFloorDivInt16DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15584,14 +15320,12 @@ func (p projFloorDivInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15608,7 +15342,7 @@ func (p projFloorDivInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15685,14 +15419,12 @@ func (p projFloorDivInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15709,7 +15441,7 @@ func (p projFloorDivInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15786,14 +15518,12 @@ func (p projFloorDivInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15810,7 +15540,7 @@ func (p projFloorDivInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -15887,14 +15617,12 @@ func (p projFloorDivInt32DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -15918,7 +15646,7 @@ func (p projFloorDivInt32DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16016,14 +15744,12 @@ func (p projFloorDivInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16040,7 +15766,7 @@ func (p projFloorDivInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16117,14 +15843,12 @@ func (p projFloorDivInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16141,7 +15865,7 @@ func (p projFloorDivInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16218,14 +15942,12 @@ func (p projFloorDivInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16242,7 +15964,7 @@ func (p projFloorDivInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16319,14 +16041,12 @@ func (p projFloorDivInt64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16350,7 +16070,7 @@ func (p projFloorDivInt64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16448,14 +16168,12 @@ func (p projFloorDivFloat64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16474,7 +16192,7 @@ func (p projFloorDivFloat64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16557,14 +16275,12 @@ func (p projModDecimalInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16587,7 +16303,7 @@ func (p projModDecimalInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16682,14 +16398,12 @@ func (p projModDecimalInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16712,7 +16426,7 @@ func (p projModDecimalInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16807,14 +16521,12 @@ func (p projModDecimalInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16837,7 +16549,7 @@ func (p projModDecimalInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -16932,14 +16644,12 @@ func (p projModDecimalDecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -16961,7 +16671,7 @@ func (p projModDecimalDecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17053,14 +16763,12 @@ func (p projModInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17077,7 +16785,7 @@ func (p projModInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17154,14 +16862,12 @@ func (p projModInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17178,7 +16884,7 @@ func (p projModInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17255,14 +16961,12 @@ func (p projModInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17279,7 +16983,7 @@ func (p projModInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17356,14 +17060,12 @@ func (p projModInt16DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17387,7 +17089,7 @@ func (p projModInt16DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17485,14 +17187,12 @@ func (p projModInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17509,7 +17209,7 @@ func (p projModInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17586,14 +17286,12 @@ func (p projModInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17610,7 +17308,7 @@ func (p projModInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17687,14 +17385,12 @@ func (p projModInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17711,7 +17407,7 @@ func (p projModInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17788,14 +17484,12 @@ func (p projModInt32DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17819,7 +17513,7 @@ func (p projModInt32DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -17917,14 +17611,12 @@ func (p projModInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -17941,7 +17633,7 @@ func (p projModInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18018,14 +17710,12 @@ func (p projModInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18042,7 +17732,7 @@ func (p projModInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18119,14 +17809,12 @@ func (p projModInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18143,7 +17831,7 @@ func (p projModInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18220,14 +17908,12 @@ func (p projModInt64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18251,7 +17937,7 @@ func (p projModInt64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18349,14 +18035,12 @@ func (p projModFloat64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18375,7 +18059,7 @@ func (p projModFloat64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18458,14 +18142,12 @@ func (p projPowDecimalInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18484,7 +18166,7 @@ func (p projPowDecimalInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18567,14 +18249,12 @@ func (p projPowDecimalInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18593,7 +18273,7 @@ func (p projPowDecimalInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18676,14 +18356,12 @@ func (p projPowDecimalInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18702,7 +18380,7 @@ func (p projPowDecimalInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18785,14 +18463,12 @@ func (p projPowDecimalDecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18810,7 +18486,7 @@ func (p projPowDecimalDecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -18890,14 +18566,12 @@ func (p projPowInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -18921,7 +18595,7 @@ func (p projPowInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -19019,14 +18693,12 @@ func (p projPowInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -19050,7 +18722,7 @@ func (p projPowInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -19148,14 +18820,12 @@ func (p projPowInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -19179,7 +18849,7 @@ func (p projPowInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -19277,14 +18947,12 @@ func (p projPowInt16DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -19304,7 +18972,7 @@ func (p projPowInt16DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -19390,14 +19058,12 @@ func (p projPowInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -19421,7 +19087,7 @@ func (p projPowInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -19519,14 +19185,12 @@ func (p projPowInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -19550,7 +19214,7 @@ func (p projPowInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -19648,14 +19312,12 @@ func (p projPowInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -19679,7 +19341,7 @@ func (p projPowInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -19777,14 +19439,12 @@ func (p projPowInt32DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -19804,7 +19464,7 @@ func (p projPowInt32DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -19890,14 +19550,12 @@ func (p projPowInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -19921,7 +19579,7 @@ func (p projPowInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -20019,14 +19677,12 @@ func (p projPowInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20050,7 +19706,7 @@ func (p projPowInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -20148,14 +19804,12 @@ func (p projPowInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20179,7 +19833,7 @@ func (p projPowInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -20277,14 +19931,12 @@ func (p projPowInt64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20304,7 +19956,7 @@ func (p projPowInt64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -20390,14 +20042,12 @@ func (p projPowFloat64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20412,7 +20062,7 @@ func (p projPowFloat64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -20483,14 +20133,12 @@ func (p projConcatBytesBytesConstOp) Next() coldata.Batch { } projCol := projVec.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20507,7 +20155,7 @@ func (p projConcatBytesBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20582,14 +20230,12 @@ func (p projConcatJSONJSONConstOp) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20605,7 +20251,7 @@ func (p projConcatJSONJSONConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20679,16 +20325,17 @@ func (p projConcatDatumDatumConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg.(tree.Datum), p.constArg.(tree.Datum)) if err != nil { @@ -20705,9 +20352,12 @@ func (p projConcatDatumDatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg.(tree.Datum), p.constArg.(tree.Datum)) if err != nil { @@ -20721,7 +20371,9 @@ func (p projConcatDatumDatumConstOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*colNulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*colNulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -20786,14 +20438,12 @@ func (p projLShiftInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20811,7 +20461,7 @@ func (p projLShiftInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -20891,14 +20541,12 @@ func (p projLShiftInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -20916,7 +20564,7 @@ func (p projLShiftInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -20996,14 +20644,12 @@ func (p projLShiftInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21021,7 +20667,7 @@ func (p projLShiftInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -21101,14 +20747,12 @@ func (p projLShiftInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21126,7 +20770,7 @@ func (p projLShiftInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -21206,14 +20850,12 @@ func (p projLShiftInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21231,7 +20873,7 @@ func (p projLShiftInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -21311,14 +20953,12 @@ func (p projLShiftInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21336,7 +20976,7 @@ func (p projLShiftInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -21416,14 +21056,12 @@ func (p projLShiftInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21441,7 +21079,7 @@ func (p projLShiftInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -21521,14 +21159,12 @@ func (p projLShiftInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21546,7 +21182,7 @@ func (p projLShiftInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -21626,14 +21262,12 @@ func (p projLShiftInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21651,7 +21285,7 @@ func (p projLShiftInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -21733,14 +21367,12 @@ func (p projLShiftDatumInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21763,7 +21395,7 @@ func (p projLShiftDatumInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -21860,14 +21492,12 @@ func (p projLShiftDatumInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -21890,7 +21520,7 @@ func (p projLShiftDatumInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -21987,14 +21617,12 @@ func (p projLShiftDatumInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22017,7 +21645,7 @@ func (p projLShiftDatumInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22112,14 +21740,12 @@ func (p projRShiftInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22137,7 +21763,7 @@ func (p projRShiftInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22217,14 +21843,12 @@ func (p projRShiftInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22242,7 +21866,7 @@ func (p projRShiftInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22322,14 +21946,12 @@ func (p projRShiftInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22347,7 +21969,7 @@ func (p projRShiftInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22427,14 +22049,12 @@ func (p projRShiftInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22452,7 +22072,7 @@ func (p projRShiftInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22532,14 +22152,12 @@ func (p projRShiftInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22557,7 +22175,7 @@ func (p projRShiftInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22637,14 +22255,12 @@ func (p projRShiftInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22662,7 +22278,7 @@ func (p projRShiftInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22742,14 +22358,12 @@ func (p projRShiftInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22767,7 +22381,7 @@ func (p projRShiftInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22847,14 +22461,12 @@ func (p projRShiftInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22872,7 +22484,7 @@ func (p projRShiftInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -22952,14 +22564,12 @@ func (p projRShiftInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -22977,7 +22587,7 @@ func (p projRShiftInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -23059,14 +22669,12 @@ func (p projRShiftDatumInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23089,7 +22697,7 @@ func (p projRShiftDatumInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -23186,14 +22794,12 @@ func (p projRShiftDatumInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23216,7 +22822,7 @@ func (p projRShiftDatumInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -23313,14 +22919,12 @@ func (p projRShiftDatumInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23343,7 +22947,7 @@ func (p projRShiftDatumInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -23438,14 +23042,12 @@ func (p projJSONFetchValJSONBytesConstOp) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23467,7 +23069,7 @@ func (p projJSONFetchValJSONBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23557,14 +23159,12 @@ func (p projJSONFetchValJSONInt16ConstOp) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23583,7 +23183,7 @@ func (p projJSONFetchValJSONInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -23666,14 +23266,12 @@ func (p projJSONFetchValJSONInt32ConstOp) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23692,7 +23290,7 @@ func (p projJSONFetchValJSONInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -23775,14 +23373,12 @@ func (p projJSONFetchValJSONInt64ConstOp) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23801,7 +23397,7 @@ func (p projJSONFetchValJSONInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -23884,14 +23480,12 @@ func (p projJSONFetchTextJSONBytesConstOp) Next() coldata.Batch { } projCol := projVec.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -23922,7 +23516,7 @@ func (p projJSONFetchTextJSONBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24039,14 +23633,12 @@ func (p projJSONFetchTextJSONInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24074,7 +23666,7 @@ func (p projJSONFetchTextJSONInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -24184,14 +23776,12 @@ func (p projJSONFetchTextJSONInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24219,7 +23809,7 @@ func (p projJSONFetchTextJSONInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -24329,14 +23919,12 @@ func (p projJSONFetchTextJSONInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24364,7 +23952,7 @@ func (p projJSONFetchTextJSONInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -24474,14 +24062,12 @@ func (p projJSONFetchValPathJSONDatumConstOp) Next() coldata.Batch { } projCol := projVec.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24500,7 +24086,7 @@ func (p projJSONFetchValPathJSONDatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24581,14 +24167,12 @@ func (p projJSONFetchTextPathJSONDatumConstOp) Next() coldata.Batch { } projCol := projVec.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24617,7 +24201,7 @@ func (p projJSONFetchTextPathJSONDatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24728,14 +24312,12 @@ func (p projEQBoolBoolConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24759,7 +24341,7 @@ func (p projEQBoolBoolConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -24857,14 +24439,12 @@ func (p projEQBytesBytesConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24880,7 +24460,7 @@ func (p projEQBytesBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24952,14 +24532,12 @@ func (p projEQDecimalInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -24981,7 +24559,7 @@ func (p projEQDecimalInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -25073,14 +24651,12 @@ func (p projEQDecimalInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -25102,7 +24678,7 @@ func (p projEQDecimalInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -25194,14 +24770,12 @@ func (p projEQDecimalInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -25223,7 +24797,7 @@ func (p projEQDecimalInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -25315,14 +24889,12 @@ func (p projEQDecimalFloat64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -25346,7 +24918,7 @@ func (p projEQDecimalFloat64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -25444,14 +25016,12 @@ func (p projEQDecimalDecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -25467,7 +25037,7 @@ func (p projEQDecimalDecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -25541,14 +25111,12 @@ func (p projEQInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -25575,7 +25143,7 @@ func (p projEQInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -25682,14 +25250,12 @@ func (p projEQInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -25716,7 +25282,7 @@ func (p projEQInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -25823,14 +25389,12 @@ func (p projEQInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -25857,7 +25421,7 @@ func (p projEQInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -25964,14 +25528,12 @@ func (p projEQInt16Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -26006,7 +25568,7 @@ func (p projEQInt16Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -26137,14 +25699,12 @@ func (p projEQInt16DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -26166,7 +25726,7 @@ func (p projEQInt16DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -26258,14 +25818,12 @@ func (p projEQInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -26292,7 +25850,7 @@ func (p projEQInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -26399,14 +25957,12 @@ func (p projEQInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -26433,7 +25989,7 @@ func (p projEQInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -26540,14 +26096,12 @@ func (p projEQInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -26574,7 +26128,7 @@ func (p projEQInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -26681,14 +26235,12 @@ func (p projEQInt32Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -26723,7 +26275,7 @@ func (p projEQInt32Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -26854,14 +26406,12 @@ func (p projEQInt32DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -26883,7 +26433,7 @@ func (p projEQInt32DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -26975,14 +26525,12 @@ func (p projEQInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -27009,7 +26557,7 @@ func (p projEQInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -27116,14 +26664,12 @@ func (p projEQInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -27150,7 +26696,7 @@ func (p projEQInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -27257,14 +26803,12 @@ func (p projEQInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -27291,7 +26835,7 @@ func (p projEQInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -27398,14 +26942,12 @@ func (p projEQInt64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -27440,7 +26982,7 @@ func (p projEQInt64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -27571,14 +27113,12 @@ func (p projEQInt64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -27600,7 +27140,7 @@ func (p projEQInt64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -27692,14 +27232,12 @@ func (p projEQFloat64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -27734,7 +27272,7 @@ func (p projEQFloat64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -27865,14 +27403,12 @@ func (p projEQFloat64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -27907,7 +27443,7 @@ func (p projEQFloat64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -28038,14 +27574,12 @@ func (p projEQFloat64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -28080,7 +27614,7 @@ func (p projEQFloat64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -28211,14 +27745,12 @@ func (p projEQFloat64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -28253,7 +27785,7 @@ func (p projEQFloat64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -28384,14 +27916,12 @@ func (p projEQFloat64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -28415,7 +27945,7 @@ func (p projEQFloat64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -28513,14 +28043,12 @@ func (p projEQTimestampTimestampConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -28543,7 +28071,7 @@ func (p projEQTimestampTimestampConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -28638,14 +28166,12 @@ func (p projEQIntervalIntervalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -28661,7 +28187,7 @@ func (p projEQIntervalIntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -28735,14 +28261,12 @@ func (p projEQJSONJSONConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -28764,7 +28288,7 @@ func (p projEQJSONJSONConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -28854,16 +28378,17 @@ func (p projEQDatumDatumConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } { var cmpResult int @@ -28879,9 +28404,12 @@ func (p projEQDatumDatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } { var cmpResult int @@ -28894,7 +28422,9 @@ func (p projEQDatumDatumConstOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*colNulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*colNulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -28957,14 +28487,12 @@ func (p projNEBoolBoolConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -28988,7 +28516,7 @@ func (p projNEBoolBoolConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -29086,14 +28614,12 @@ func (p projNEBytesBytesConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -29109,7 +28635,7 @@ func (p projNEBytesBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -29181,14 +28707,12 @@ func (p projNEDecimalInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -29210,7 +28734,7 @@ func (p projNEDecimalInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -29302,14 +28826,12 @@ func (p projNEDecimalInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -29331,7 +28853,7 @@ func (p projNEDecimalInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -29423,14 +28945,12 @@ func (p projNEDecimalInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -29452,7 +28972,7 @@ func (p projNEDecimalInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -29544,14 +29064,12 @@ func (p projNEDecimalFloat64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -29575,7 +29093,7 @@ func (p projNEDecimalFloat64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -29673,14 +29191,12 @@ func (p projNEDecimalDecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -29696,7 +29212,7 @@ func (p projNEDecimalDecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -29770,14 +29286,12 @@ func (p projNEInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -29804,7 +29318,7 @@ func (p projNEInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -29911,14 +29425,12 @@ func (p projNEInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -29945,7 +29457,7 @@ func (p projNEInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -30052,14 +29564,12 @@ func (p projNEInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -30086,7 +29596,7 @@ func (p projNEInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -30193,14 +29703,12 @@ func (p projNEInt16Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -30235,7 +29743,7 @@ func (p projNEInt16Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -30366,14 +29874,12 @@ func (p projNEInt16DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -30395,7 +29901,7 @@ func (p projNEInt16DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -30487,14 +29993,12 @@ func (p projNEInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -30521,7 +30025,7 @@ func (p projNEInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -30628,14 +30132,12 @@ func (p projNEInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -30662,7 +30164,7 @@ func (p projNEInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -30769,14 +30271,12 @@ func (p projNEInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -30803,7 +30303,7 @@ func (p projNEInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -30910,14 +30410,12 @@ func (p projNEInt32Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -30952,7 +30450,7 @@ func (p projNEInt32Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -31083,14 +30581,12 @@ func (p projNEInt32DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -31112,7 +30608,7 @@ func (p projNEInt32DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -31204,14 +30700,12 @@ func (p projNEInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -31238,7 +30732,7 @@ func (p projNEInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -31345,14 +30839,12 @@ func (p projNEInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -31379,7 +30871,7 @@ func (p projNEInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -31486,14 +30978,12 @@ func (p projNEInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -31520,7 +31010,7 @@ func (p projNEInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -31627,14 +31117,12 @@ func (p projNEInt64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -31669,7 +31157,7 @@ func (p projNEInt64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -31800,14 +31288,12 @@ func (p projNEInt64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -31829,7 +31315,7 @@ func (p projNEInt64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -31921,14 +31407,12 @@ func (p projNEFloat64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -31963,7 +31447,7 @@ func (p projNEFloat64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -32094,14 +31578,12 @@ func (p projNEFloat64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -32136,7 +31618,7 @@ func (p projNEFloat64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -32267,14 +31749,12 @@ func (p projNEFloat64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -32309,7 +31789,7 @@ func (p projNEFloat64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -32440,14 +31920,12 @@ func (p projNEFloat64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -32482,7 +31960,7 @@ func (p projNEFloat64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -32613,14 +32091,12 @@ func (p projNEFloat64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -32644,7 +32120,7 @@ func (p projNEFloat64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -32742,14 +32218,12 @@ func (p projNETimestampTimestampConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -32772,7 +32246,7 @@ func (p projNETimestampTimestampConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -32867,14 +32341,12 @@ func (p projNEIntervalIntervalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -32890,7 +32362,7 @@ func (p projNEIntervalIntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -32964,14 +32436,12 @@ func (p projNEJSONJSONConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -32993,7 +32463,7 @@ func (p projNEJSONJSONConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -33083,16 +32553,17 @@ func (p projNEDatumDatumConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } { var cmpResult int @@ -33108,9 +32579,12 @@ func (p projNEDatumDatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } { var cmpResult int @@ -33123,7 +32597,9 @@ func (p projNEDatumDatumConstOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*colNulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*colNulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -33186,14 +32662,12 @@ func (p projLTBoolBoolConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -33217,7 +32691,7 @@ func (p projLTBoolBoolConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -33315,14 +32789,12 @@ func (p projLTBytesBytesConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -33338,7 +32810,7 @@ func (p projLTBytesBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -33410,14 +32882,12 @@ func (p projLTDecimalInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -33439,7 +32909,7 @@ func (p projLTDecimalInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -33531,14 +33001,12 @@ func (p projLTDecimalInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -33560,7 +33028,7 @@ func (p projLTDecimalInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -33652,14 +33120,12 @@ func (p projLTDecimalInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -33681,7 +33147,7 @@ func (p projLTDecimalInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -33773,14 +33239,12 @@ func (p projLTDecimalFloat64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -33804,7 +33268,7 @@ func (p projLTDecimalFloat64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -33902,14 +33366,12 @@ func (p projLTDecimalDecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -33925,7 +33387,7 @@ func (p projLTDecimalDecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -33999,14 +33461,12 @@ func (p projLTInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -34033,7 +33493,7 @@ func (p projLTInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -34140,14 +33600,12 @@ func (p projLTInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -34174,7 +33632,7 @@ func (p projLTInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -34281,14 +33739,12 @@ func (p projLTInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -34315,7 +33771,7 @@ func (p projLTInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -34422,14 +33878,12 @@ func (p projLTInt16Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -34464,7 +33918,7 @@ func (p projLTInt16Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -34595,14 +34049,12 @@ func (p projLTInt16DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -34624,7 +34076,7 @@ func (p projLTInt16DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -34716,14 +34168,12 @@ func (p projLTInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -34750,7 +34200,7 @@ func (p projLTInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -34857,14 +34307,12 @@ func (p projLTInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -34891,7 +34339,7 @@ func (p projLTInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -34998,14 +34446,12 @@ func (p projLTInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -35032,7 +34478,7 @@ func (p projLTInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -35139,14 +34585,12 @@ func (p projLTInt32Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -35181,7 +34625,7 @@ func (p projLTInt32Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -35312,14 +34756,12 @@ func (p projLTInt32DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -35341,7 +34783,7 @@ func (p projLTInt32DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -35433,14 +34875,12 @@ func (p projLTInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -35467,7 +34907,7 @@ func (p projLTInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -35574,14 +35014,12 @@ func (p projLTInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -35608,7 +35046,7 @@ func (p projLTInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -35715,14 +35153,12 @@ func (p projLTInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -35749,7 +35185,7 @@ func (p projLTInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -35856,14 +35292,12 @@ func (p projLTInt64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -35898,7 +35332,7 @@ func (p projLTInt64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -36029,14 +35463,12 @@ func (p projLTInt64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -36058,7 +35490,7 @@ func (p projLTInt64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -36150,14 +35582,12 @@ func (p projLTFloat64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -36192,7 +35622,7 @@ func (p projLTFloat64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -36323,14 +35753,12 @@ func (p projLTFloat64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -36365,7 +35793,7 @@ func (p projLTFloat64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -36496,14 +35924,12 @@ func (p projLTFloat64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -36538,7 +35964,7 @@ func (p projLTFloat64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -36669,14 +36095,12 @@ func (p projLTFloat64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -36711,7 +36135,7 @@ func (p projLTFloat64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -36842,14 +36266,12 @@ func (p projLTFloat64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -36873,7 +36295,7 @@ func (p projLTFloat64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -36971,14 +36393,12 @@ func (p projLTTimestampTimestampConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -37001,7 +36421,7 @@ func (p projLTTimestampTimestampConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -37096,14 +36516,12 @@ func (p projLTIntervalIntervalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -37119,7 +36537,7 @@ func (p projLTIntervalIntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -37193,14 +36611,12 @@ func (p projLTJSONJSONConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -37222,7 +36638,7 @@ func (p projLTJSONJSONConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -37312,16 +36728,17 @@ func (p projLTDatumDatumConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } { var cmpResult int @@ -37337,9 +36754,12 @@ func (p projLTDatumDatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } { var cmpResult int @@ -37352,7 +36772,9 @@ func (p projLTDatumDatumConstOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*colNulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*colNulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -37415,14 +36837,12 @@ func (p projLEBoolBoolConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -37446,7 +36866,7 @@ func (p projLEBoolBoolConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -37544,14 +36964,12 @@ func (p projLEBytesBytesConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -37567,7 +36985,7 @@ func (p projLEBytesBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -37639,14 +37057,12 @@ func (p projLEDecimalInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -37668,7 +37084,7 @@ func (p projLEDecimalInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -37760,14 +37176,12 @@ func (p projLEDecimalInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -37789,7 +37203,7 @@ func (p projLEDecimalInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -37881,14 +37295,12 @@ func (p projLEDecimalInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -37910,7 +37322,7 @@ func (p projLEDecimalInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -38002,14 +37414,12 @@ func (p projLEDecimalFloat64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -38033,7 +37443,7 @@ func (p projLEDecimalFloat64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -38131,14 +37541,12 @@ func (p projLEDecimalDecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -38154,7 +37562,7 @@ func (p projLEDecimalDecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -38228,14 +37636,12 @@ func (p projLEInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -38262,7 +37668,7 @@ func (p projLEInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -38369,14 +37775,12 @@ func (p projLEInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -38403,7 +37807,7 @@ func (p projLEInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -38510,14 +37914,12 @@ func (p projLEInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -38544,7 +37946,7 @@ func (p projLEInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -38651,14 +38053,12 @@ func (p projLEInt16Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -38693,7 +38093,7 @@ func (p projLEInt16Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -38824,14 +38224,12 @@ func (p projLEInt16DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -38853,7 +38251,7 @@ func (p projLEInt16DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -38945,14 +38343,12 @@ func (p projLEInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -38979,7 +38375,7 @@ func (p projLEInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -39086,14 +38482,12 @@ func (p projLEInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -39120,7 +38514,7 @@ func (p projLEInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -39227,14 +38621,12 @@ func (p projLEInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -39261,7 +38653,7 @@ func (p projLEInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -39368,14 +38760,12 @@ func (p projLEInt32Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -39410,7 +38800,7 @@ func (p projLEInt32Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -39541,14 +38931,12 @@ func (p projLEInt32DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -39570,7 +38958,7 @@ func (p projLEInt32DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -39662,14 +39050,12 @@ func (p projLEInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -39696,7 +39082,7 @@ func (p projLEInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -39803,14 +39189,12 @@ func (p projLEInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -39837,7 +39221,7 @@ func (p projLEInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -39944,14 +39328,12 @@ func (p projLEInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -39978,7 +39360,7 @@ func (p projLEInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -40085,14 +39467,12 @@ func (p projLEInt64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -40127,7 +39507,7 @@ func (p projLEInt64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -40258,14 +39638,12 @@ func (p projLEInt64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -40287,7 +39665,7 @@ func (p projLEInt64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -40379,14 +39757,12 @@ func (p projLEFloat64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -40421,7 +39797,7 @@ func (p projLEFloat64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -40552,14 +39928,12 @@ func (p projLEFloat64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -40594,7 +39968,7 @@ func (p projLEFloat64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -40725,14 +40099,12 @@ func (p projLEFloat64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -40767,7 +40139,7 @@ func (p projLEFloat64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -40898,14 +40270,12 @@ func (p projLEFloat64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -40940,7 +40310,7 @@ func (p projLEFloat64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -41071,14 +40441,12 @@ func (p projLEFloat64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -41102,7 +40470,7 @@ func (p projLEFloat64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -41200,14 +40568,12 @@ func (p projLETimestampTimestampConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -41230,7 +40596,7 @@ func (p projLETimestampTimestampConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -41325,14 +40691,12 @@ func (p projLEIntervalIntervalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -41348,7 +40712,7 @@ func (p projLEIntervalIntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -41422,14 +40786,12 @@ func (p projLEJSONJSONConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -41451,7 +40813,7 @@ func (p projLEJSONJSONConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -41541,16 +40903,17 @@ func (p projLEDatumDatumConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } { var cmpResult int @@ -41566,9 +40929,12 @@ func (p projLEDatumDatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } { var cmpResult int @@ -41581,7 +40947,9 @@ func (p projLEDatumDatumConstOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*colNulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*colNulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -41644,14 +41012,12 @@ func (p projGTBoolBoolConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -41675,7 +41041,7 @@ func (p projGTBoolBoolConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -41773,14 +41139,12 @@ func (p projGTBytesBytesConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -41796,7 +41160,7 @@ func (p projGTBytesBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -41868,14 +41232,12 @@ func (p projGTDecimalInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -41897,7 +41259,7 @@ func (p projGTDecimalInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -41989,14 +41351,12 @@ func (p projGTDecimalInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -42018,7 +41378,7 @@ func (p projGTDecimalInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -42110,14 +41470,12 @@ func (p projGTDecimalInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -42139,7 +41497,7 @@ func (p projGTDecimalInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -42231,14 +41589,12 @@ func (p projGTDecimalFloat64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -42262,7 +41618,7 @@ func (p projGTDecimalFloat64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -42360,14 +41716,12 @@ func (p projGTDecimalDecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -42383,7 +41737,7 @@ func (p projGTDecimalDecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -42457,14 +41811,12 @@ func (p projGTInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -42491,7 +41843,7 @@ func (p projGTInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -42598,14 +41950,12 @@ func (p projGTInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -42632,7 +41982,7 @@ func (p projGTInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -42739,14 +42089,12 @@ func (p projGTInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -42773,7 +42121,7 @@ func (p projGTInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -42880,14 +42228,12 @@ func (p projGTInt16Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -42922,7 +42268,7 @@ func (p projGTInt16Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -43053,14 +42399,12 @@ func (p projGTInt16DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -43082,7 +42426,7 @@ func (p projGTInt16DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -43174,14 +42518,12 @@ func (p projGTInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -43208,7 +42550,7 @@ func (p projGTInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -43315,14 +42657,12 @@ func (p projGTInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -43349,7 +42689,7 @@ func (p projGTInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -43456,14 +42796,12 @@ func (p projGTInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -43490,7 +42828,7 @@ func (p projGTInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -43597,14 +42935,12 @@ func (p projGTInt32Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -43639,7 +42975,7 @@ func (p projGTInt32Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -43770,14 +43106,12 @@ func (p projGTInt32DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -43799,7 +43133,7 @@ func (p projGTInt32DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -43891,14 +43225,12 @@ func (p projGTInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -43925,7 +43257,7 @@ func (p projGTInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -44032,14 +43364,12 @@ func (p projGTInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -44066,7 +43396,7 @@ func (p projGTInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -44173,14 +43503,12 @@ func (p projGTInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -44207,7 +43535,7 @@ func (p projGTInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -44314,14 +43642,12 @@ func (p projGTInt64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -44356,7 +43682,7 @@ func (p projGTInt64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -44487,14 +43813,12 @@ func (p projGTInt64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -44516,7 +43840,7 @@ func (p projGTInt64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -44608,14 +43932,12 @@ func (p projGTFloat64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -44650,7 +43972,7 @@ func (p projGTFloat64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -44781,14 +44103,12 @@ func (p projGTFloat64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -44823,7 +44143,7 @@ func (p projGTFloat64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -44954,14 +44274,12 @@ func (p projGTFloat64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -44996,7 +44314,7 @@ func (p projGTFloat64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -45127,14 +44445,12 @@ func (p projGTFloat64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -45169,7 +44485,7 @@ func (p projGTFloat64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -45300,14 +44616,12 @@ func (p projGTFloat64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -45331,7 +44645,7 @@ func (p projGTFloat64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -45429,14 +44743,12 @@ func (p projGTTimestampTimestampConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -45459,7 +44771,7 @@ func (p projGTTimestampTimestampConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -45554,14 +44866,12 @@ func (p projGTIntervalIntervalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -45577,7 +44887,7 @@ func (p projGTIntervalIntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -45651,14 +44961,12 @@ func (p projGTJSONJSONConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -45680,7 +44988,7 @@ func (p projGTJSONJSONConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -45770,16 +45078,17 @@ func (p projGTDatumDatumConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } { var cmpResult int @@ -45795,9 +45104,12 @@ func (p projGTDatumDatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } { var cmpResult int @@ -45810,7 +45122,9 @@ func (p projGTDatumDatumConstOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*colNulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*colNulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -45873,14 +45187,12 @@ func (p projGEBoolBoolConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -45904,7 +45216,7 @@ func (p projGEBoolBoolConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -46002,14 +45314,12 @@ func (p projGEBytesBytesConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -46025,7 +45335,7 @@ func (p projGEBytesBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -46097,14 +45407,12 @@ func (p projGEDecimalInt16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -46126,7 +45434,7 @@ func (p projGEDecimalInt16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -46218,14 +45526,12 @@ func (p projGEDecimalInt32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -46247,7 +45553,7 @@ func (p projGEDecimalInt32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -46339,14 +45645,12 @@ func (p projGEDecimalInt64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -46368,7 +45672,7 @@ func (p projGEDecimalInt64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -46460,14 +45764,12 @@ func (p projGEDecimalFloat64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -46491,7 +45793,7 @@ func (p projGEDecimalFloat64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -46589,14 +45891,12 @@ func (p projGEDecimalDecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -46612,7 +45912,7 @@ func (p projGEDecimalDecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -46686,14 +45986,12 @@ func (p projGEInt16Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -46720,7 +46018,7 @@ func (p projGEInt16Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -46827,14 +46125,12 @@ func (p projGEInt16Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -46861,7 +46157,7 @@ func (p projGEInt16Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -46968,14 +46264,12 @@ func (p projGEInt16Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -47002,7 +46296,7 @@ func (p projGEInt16Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -47109,14 +46403,12 @@ func (p projGEInt16Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -47151,7 +46443,7 @@ func (p projGEInt16Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -47282,14 +46574,12 @@ func (p projGEInt16DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -47311,7 +46601,7 @@ func (p projGEInt16DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -47403,14 +46693,12 @@ func (p projGEInt32Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -47437,7 +46725,7 @@ func (p projGEInt32Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -47544,14 +46832,12 @@ func (p projGEInt32Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -47578,7 +46864,7 @@ func (p projGEInt32Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -47685,14 +46971,12 @@ func (p projGEInt32Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -47719,7 +47003,7 @@ func (p projGEInt32Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -47826,14 +47110,12 @@ func (p projGEInt32Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -47868,7 +47150,7 @@ func (p projGEInt32Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -47999,14 +47281,12 @@ func (p projGEInt32DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -48028,7 +47308,7 @@ func (p projGEInt32DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -48120,14 +47400,12 @@ func (p projGEInt64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -48154,7 +47432,7 @@ func (p projGEInt64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -48261,14 +47539,12 @@ func (p projGEInt64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -48295,7 +47571,7 @@ func (p projGEInt64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -48402,14 +47678,12 @@ func (p projGEInt64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -48436,7 +47710,7 @@ func (p projGEInt64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -48543,14 +47817,12 @@ func (p projGEInt64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -48585,7 +47857,7 @@ func (p projGEInt64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -48716,14 +47988,12 @@ func (p projGEInt64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -48745,7 +48015,7 @@ func (p projGEInt64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -48837,14 +48107,12 @@ func (p projGEFloat64Int16ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -48879,7 +48147,7 @@ func (p projGEFloat64Int16ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -49010,14 +48278,12 @@ func (p projGEFloat64Int32ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -49052,7 +48318,7 @@ func (p projGEFloat64Int32ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -49183,14 +48449,12 @@ func (p projGEFloat64Int64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -49225,7 +48489,7 @@ func (p projGEFloat64Int64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -49356,14 +48620,12 @@ func (p projGEFloat64Float64ConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -49398,7 +48660,7 @@ func (p projGEFloat64Float64ConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -49529,14 +48791,12 @@ func (p projGEFloat64DecimalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -49560,7 +48820,7 @@ func (p projGEFloat64DecimalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -49658,14 +48918,12 @@ func (p projGETimestampTimestampConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -49688,7 +48946,7 @@ func (p projGETimestampTimestampConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -49783,14 +49041,12 @@ func (p projGEIntervalIntervalConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -49806,7 +49062,7 @@ func (p projGEIntervalIntervalConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. //gcassert:bce arg := col.Get(i) @@ -49880,14 +49136,12 @@ func (p projGEJSONJSONConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -49909,7 +49163,7 @@ func (p projGEJSONJSONConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) @@ -49999,16 +49253,17 @@ func (p projGEDatumDatumConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() && !p.nullableArgs - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } { var cmpResult int @@ -50024,9 +49279,12 @@ func (p projGEDatumDatumConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) + if colNulls.NullAt(i) { + arg = tree.DNull + } { var cmpResult int @@ -50039,7 +49297,9 @@ func (p projGEDatumDatumConstOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*colNulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*colNulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] diff --git a/pkg/sql/colexec/colexecproj/proj_like_ops.eg.go b/pkg/sql/colexec/colexecproj/proj_like_ops.eg.go index b6bbb1cda651..4fde380856c8 100644 --- a/pkg/sql/colexec/colexecproj/proj_like_ops.eg.go +++ b/pkg/sql/colexec/colexecproj/proj_like_ops.eg.go @@ -43,14 +43,12 @@ func (p projPrefixBytesBytesConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = bytes.HasPrefix(arg, p.constArg) @@ -60,7 +58,7 @@ func (p projPrefixBytesBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = bytes.HasPrefix(arg, p.constArg) @@ -114,14 +112,12 @@ func (p projSuffixBytesBytesConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = bytes.HasSuffix(arg, p.constArg) @@ -131,7 +127,7 @@ func (p projSuffixBytesBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = bytes.HasSuffix(arg, p.constArg) @@ -185,14 +181,12 @@ func (p projContainsBytesBytesConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = bytes.Contains(arg, p.constArg) @@ -202,7 +196,7 @@ func (p projContainsBytesBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = bytes.Contains(arg, p.constArg) @@ -256,14 +250,12 @@ func (p projRegexpBytesBytesConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = p.constArg.Match(arg) @@ -273,7 +265,7 @@ func (p projRegexpBytesBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = p.constArg.Match(arg) @@ -327,14 +319,12 @@ func (p projNotPrefixBytesBytesConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = !bytes.HasPrefix(arg, p.constArg) @@ -344,7 +334,7 @@ func (p projNotPrefixBytesBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = !bytes.HasPrefix(arg, p.constArg) @@ -398,14 +388,12 @@ func (p projNotSuffixBytesBytesConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = !bytes.HasSuffix(arg, p.constArg) @@ -415,7 +403,7 @@ func (p projNotSuffixBytesBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = !bytes.HasSuffix(arg, p.constArg) @@ -469,14 +457,12 @@ func (p projNotContainsBytesBytesConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = !bytes.Contains(arg, p.constArg) @@ -486,7 +472,7 @@ func (p projNotContainsBytesBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = !bytes.Contains(arg, p.constArg) @@ -540,14 +526,12 @@ func (p projNotRegexpBytesBytesConstOp) Next() coldata.Batch { } projCol := projVec.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := vec.Nulls().MaybeHasNulls() - if hasNullsAndNotNullable { + if vec.Nulls().MaybeHasNulls() { colNulls := vec.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = !p.constArg.Match(arg) @@ -557,7 +541,7 @@ func (p projNotRegexpBytesBytesConstOp) Next() coldata.Batch { _ = projCol.Get(n - 1) _ = col.Get(n - 1) for i := 0; i < n; i++ { - if !colNulls.NullAt(i) { + if p.nullableArgs || !colNulls.NullAt(i) { // We only want to perform the projection operation if the value is not null. arg := col.Get(i) projCol[i] = !p.constArg.Match(arg) diff --git a/pkg/sql/colexec/colexecproj/proj_non_const_ops.eg.go b/pkg/sql/colexec/colexecproj/proj_non_const_ops.eg.go index 56617ef32d0b..c7da397a5e06 100644 --- a/pkg/sql/colexec/colexecproj/proj_non_const_ops.eg.go +++ b/pkg/sql/colexec/colexecproj/proj_non_const_ops.eg.go @@ -92,15 +92,13 @@ func (p projBitandInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -115,7 +113,7 @@ func (p projBitandInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -181,15 +179,13 @@ func (p projBitandInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -204,7 +200,7 @@ func (p projBitandInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -270,15 +266,13 @@ func (p projBitandInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -293,7 +287,7 @@ func (p projBitandInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -359,15 +353,13 @@ func (p projBitandInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -382,7 +374,7 @@ func (p projBitandInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -448,15 +440,13 @@ func (p projBitandInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -471,7 +461,7 @@ func (p projBitandInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -537,15 +527,13 @@ func (p projBitandInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -560,7 +548,7 @@ func (p projBitandInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -626,15 +614,13 @@ func (p projBitandInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -649,7 +635,7 @@ func (p projBitandInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -715,15 +701,13 @@ func (p projBitandInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -738,7 +722,7 @@ func (p projBitandInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -804,15 +788,13 @@ func (p projBitandInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -827,7 +809,7 @@ func (p projBitandInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -895,19 +877,23 @@ func (p projBitandDatumDatumOp) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) && !p.nullableArgs - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg1.(tree.Datum), arg2.(tree.Datum)) if err != nil { @@ -925,11 +911,17 @@ func (p projBitandDatumDatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg1.(tree.Datum), arg2.(tree.Datum)) if err != nil { @@ -943,7 +935,9 @@ func (p projBitandDatumDatumOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -1008,15 +1002,13 @@ func (p projBitorInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -1031,7 +1023,7 @@ func (p projBitorInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -1097,15 +1089,13 @@ func (p projBitorInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -1120,7 +1110,7 @@ func (p projBitorInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -1186,15 +1176,13 @@ func (p projBitorInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -1209,7 +1197,7 @@ func (p projBitorInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -1275,15 +1263,13 @@ func (p projBitorInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -1298,7 +1284,7 @@ func (p projBitorInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -1364,15 +1350,13 @@ func (p projBitorInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -1387,7 +1371,7 @@ func (p projBitorInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -1453,15 +1437,13 @@ func (p projBitorInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -1476,7 +1458,7 @@ func (p projBitorInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -1542,15 +1524,13 @@ func (p projBitorInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -1565,7 +1545,7 @@ func (p projBitorInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -1631,15 +1611,13 @@ func (p projBitorInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -1654,7 +1632,7 @@ func (p projBitorInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -1720,15 +1698,13 @@ func (p projBitorInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -1743,7 +1719,7 @@ func (p projBitorInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -1811,19 +1787,23 @@ func (p projBitorDatumDatumOp) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) && !p.nullableArgs - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg1.(tree.Datum), arg2.(tree.Datum)) if err != nil { @@ -1841,11 +1821,17 @@ func (p projBitorDatumDatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg1.(tree.Datum), arg2.(tree.Datum)) if err != nil { @@ -1859,7 +1845,9 @@ func (p projBitorDatumDatumOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -1924,15 +1912,13 @@ func (p projBitxorInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -1947,7 +1933,7 @@ func (p projBitxorInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -2013,15 +1999,13 @@ func (p projBitxorInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -2036,7 +2020,7 @@ func (p projBitxorInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -2102,15 +2086,13 @@ func (p projBitxorInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -2125,7 +2107,7 @@ func (p projBitxorInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -2191,15 +2173,13 @@ func (p projBitxorInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -2214,7 +2194,7 @@ func (p projBitxorInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -2280,15 +2260,13 @@ func (p projBitxorInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -2303,7 +2281,7 @@ func (p projBitxorInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -2369,15 +2347,13 @@ func (p projBitxorInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -2392,7 +2368,7 @@ func (p projBitxorInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -2458,15 +2434,13 @@ func (p projBitxorInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -2481,7 +2455,7 @@ func (p projBitxorInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -2547,15 +2521,13 @@ func (p projBitxorInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -2570,7 +2542,7 @@ func (p projBitxorInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -2636,15 +2608,13 @@ func (p projBitxorInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -2659,7 +2629,7 @@ func (p projBitxorInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -2727,19 +2697,23 @@ func (p projBitxorDatumDatumOp) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) && !p.nullableArgs - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg1.(tree.Datum), arg2.(tree.Datum)) if err != nil { @@ -2757,11 +2731,17 @@ func (p projBitxorDatumDatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg1.(tree.Datum), arg2.(tree.Datum)) if err != nil { @@ -2775,7 +2755,9 @@ func (p projBitxorDatumDatumOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -2840,15 +2822,13 @@ func (p projPlusDecimalInt16Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -2870,7 +2850,7 @@ func (p projPlusDecimalInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -2957,15 +2937,13 @@ func (p projPlusDecimalInt32Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -2987,7 +2965,7 @@ func (p projPlusDecimalInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -3074,15 +3052,13 @@ func (p projPlusDecimalInt64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -3104,7 +3080,7 @@ func (p projPlusDecimalInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -3191,15 +3167,13 @@ func (p projPlusDecimalDecimalOp) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -3220,7 +3194,7 @@ func (p projPlusDecimalDecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -3304,15 +3278,13 @@ func (p projPlusInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -3333,7 +3305,7 @@ func (p projPlusInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -3417,15 +3389,13 @@ func (p projPlusInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -3446,7 +3416,7 @@ func (p projPlusInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -3530,15 +3500,13 @@ func (p projPlusInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -3559,7 +3527,7 @@ func (p projPlusInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -3643,15 +3611,13 @@ func (p projPlusInt16DecimalOp) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -3674,7 +3640,7 @@ func (p projPlusInt16DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -3766,15 +3732,13 @@ func (p projPlusInt16DatumOp) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -3800,7 +3764,7 @@ func (p projPlusInt16DatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -3897,15 +3861,13 @@ func (p projPlusInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -3926,7 +3888,7 @@ func (p projPlusInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -4010,15 +3972,13 @@ func (p projPlusInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -4039,7 +3999,7 @@ func (p projPlusInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -4123,15 +4083,13 @@ func (p projPlusInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -4152,7 +4110,7 @@ func (p projPlusInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -4236,15 +4194,13 @@ func (p projPlusInt32DecimalOp) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -4267,7 +4223,7 @@ func (p projPlusInt32DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -4359,15 +4315,13 @@ func (p projPlusInt32DatumOp) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -4393,7 +4347,7 @@ func (p projPlusInt32DatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -4490,15 +4444,13 @@ func (p projPlusInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -4519,7 +4471,7 @@ func (p projPlusInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -4603,15 +4555,13 @@ func (p projPlusInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -4632,7 +4582,7 @@ func (p projPlusInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -4716,15 +4666,13 @@ func (p projPlusInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -4745,7 +4693,7 @@ func (p projPlusInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -4829,15 +4777,13 @@ func (p projPlusInt64DecimalOp) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -4860,7 +4806,7 @@ func (p projPlusInt64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -4952,15 +4898,13 @@ func (p projPlusInt64DatumOp) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -4986,7 +4930,7 @@ func (p projPlusInt64DatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -5083,15 +5027,13 @@ func (p projPlusFloat64Float64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -5109,7 +5051,7 @@ func (p projPlusFloat64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -5184,15 +5126,13 @@ func (p projPlusTimestampIntervalOp) Next() coldata.Batch { col1 := vec1.Timestamp() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -5210,7 +5150,7 @@ func (p projPlusTimestampIntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -5285,15 +5225,13 @@ func (p projPlusIntervalTimestampOp) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Timestamp() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -5311,7 +5249,7 @@ func (p projPlusIntervalTimestampOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -5386,15 +5324,13 @@ func (p projPlusIntervalIntervalOp) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -5407,7 +5343,7 @@ func (p projPlusIntervalIntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -5469,15 +5405,13 @@ func (p projPlusIntervalDatumOp) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -5503,7 +5437,7 @@ func (p projPlusIntervalDatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -5602,15 +5536,13 @@ func (p projPlusDatumIntervalOp) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -5636,7 +5568,7 @@ func (p projPlusDatumIntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -5735,15 +5667,13 @@ func (p projPlusDatumInt16Op) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -5769,7 +5699,7 @@ func (p projPlusDatumInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -5868,15 +5798,13 @@ func (p projPlusDatumInt32Op) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -5902,7 +5830,7 @@ func (p projPlusDatumInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -6001,15 +5929,13 @@ func (p projPlusDatumInt64Op) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -6035,7 +5961,7 @@ func (p projPlusDatumInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -6132,15 +6058,13 @@ func (p projMinusDecimalInt16Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -6162,7 +6086,7 @@ func (p projMinusDecimalInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -6249,15 +6173,13 @@ func (p projMinusDecimalInt32Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -6279,7 +6201,7 @@ func (p projMinusDecimalInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -6366,15 +6288,13 @@ func (p projMinusDecimalInt64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -6396,7 +6316,7 @@ func (p projMinusDecimalInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -6483,15 +6403,13 @@ func (p projMinusDecimalDecimalOp) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -6512,7 +6430,7 @@ func (p projMinusDecimalDecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -6596,15 +6514,13 @@ func (p projMinusInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -6625,7 +6541,7 @@ func (p projMinusInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -6709,15 +6625,13 @@ func (p projMinusInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -6738,7 +6652,7 @@ func (p projMinusInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -6822,15 +6736,13 @@ func (p projMinusInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -6851,7 +6763,7 @@ func (p projMinusInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -6935,15 +6847,13 @@ func (p projMinusInt16DecimalOp) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -6966,7 +6876,7 @@ func (p projMinusInt16DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -7058,15 +6968,13 @@ func (p projMinusInt16DatumOp) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -7092,7 +7000,7 @@ func (p projMinusInt16DatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -7189,15 +7097,13 @@ func (p projMinusInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -7218,7 +7124,7 @@ func (p projMinusInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -7302,15 +7208,13 @@ func (p projMinusInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -7331,7 +7235,7 @@ func (p projMinusInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -7415,15 +7319,13 @@ func (p projMinusInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -7444,7 +7346,7 @@ func (p projMinusInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -7528,15 +7430,13 @@ func (p projMinusInt32DecimalOp) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -7559,7 +7459,7 @@ func (p projMinusInt32DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -7651,15 +7551,13 @@ func (p projMinusInt32DatumOp) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -7685,7 +7583,7 @@ func (p projMinusInt32DatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -7782,15 +7680,13 @@ func (p projMinusInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -7811,7 +7707,7 @@ func (p projMinusInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -7895,15 +7791,13 @@ func (p projMinusInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -7924,7 +7818,7 @@ func (p projMinusInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -8008,15 +7902,13 @@ func (p projMinusInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -8037,7 +7929,7 @@ func (p projMinusInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -8121,15 +8013,13 @@ func (p projMinusInt64DecimalOp) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -8152,7 +8042,7 @@ func (p projMinusInt64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -8244,15 +8134,13 @@ func (p projMinusInt64DatumOp) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -8278,7 +8166,7 @@ func (p projMinusInt64DatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -8375,15 +8263,13 @@ func (p projMinusFloat64Float64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -8401,7 +8287,7 @@ func (p projMinusFloat64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -8476,15 +8362,13 @@ func (p projMinusTimestampTimestampOp) Next() coldata.Batch { col1 := vec1.Timestamp() col2 := vec2.Timestamp() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -8500,7 +8384,7 @@ func (p projMinusTimestampTimestampOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -8569,15 +8453,13 @@ func (p projMinusTimestampIntervalOp) Next() coldata.Batch { col1 := vec1.Timestamp() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -8595,7 +8477,7 @@ func (p projMinusTimestampIntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -8670,15 +8552,13 @@ func (p projMinusIntervalIntervalOp) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -8691,7 +8571,7 @@ func (p projMinusIntervalIntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -8753,15 +8633,13 @@ func (p projMinusIntervalDatumOp) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -8787,7 +8665,7 @@ func (p projMinusIntervalDatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -8884,15 +8762,13 @@ func (p projMinusJSONBytesOp) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -8914,7 +8790,7 @@ func (p projMinusJSONBytesOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -8997,15 +8873,13 @@ func (p projMinusJSONInt16Op) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -9023,7 +8897,7 @@ func (p projMinusJSONInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -9096,15 +8970,13 @@ func (p projMinusJSONInt32Op) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -9122,7 +8994,7 @@ func (p projMinusJSONInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -9195,15 +9067,13 @@ func (p projMinusJSONInt64Op) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -9221,7 +9091,7 @@ func (p projMinusJSONInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -9296,19 +9166,23 @@ func (p projMinusDatumDatumOp) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) && !p.nullableArgs - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg1.(tree.Datum), arg2.(tree.Datum)) if err != nil { @@ -9326,11 +9200,17 @@ func (p projMinusDatumDatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg1.(tree.Datum), arg2.(tree.Datum)) if err != nil { @@ -9344,7 +9224,9 @@ func (p projMinusDatumDatumOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -9411,15 +9293,13 @@ func (p projMinusDatumIntervalOp) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -9445,7 +9325,7 @@ func (p projMinusDatumIntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -9544,15 +9424,13 @@ func (p projMinusDatumBytesOp) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -9578,7 +9456,7 @@ func (p projMinusDatumBytesOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -9675,15 +9553,13 @@ func (p projMinusDatumInt16Op) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -9709,7 +9585,7 @@ func (p projMinusDatumInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -9808,15 +9684,13 @@ func (p projMinusDatumInt32Op) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -9842,7 +9716,7 @@ func (p projMinusDatumInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -9941,15 +9815,13 @@ func (p projMinusDatumInt64Op) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -9975,7 +9847,7 @@ func (p projMinusDatumInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -10072,15 +9944,13 @@ func (p projMultDecimalInt16Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -10102,7 +9972,7 @@ func (p projMultDecimalInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -10189,15 +10059,13 @@ func (p projMultDecimalInt32Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -10219,7 +10087,7 @@ func (p projMultDecimalInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -10306,15 +10174,13 @@ func (p projMultDecimalInt64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -10336,7 +10202,7 @@ func (p projMultDecimalInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -10423,15 +10289,13 @@ func (p projMultDecimalDecimalOp) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -10452,7 +10316,7 @@ func (p projMultDecimalDecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -10536,15 +10400,13 @@ func (p projMultDecimalIntervalOp) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -10562,7 +10424,7 @@ func (p projMultDecimalIntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -10637,15 +10499,13 @@ func (p projMultInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -10674,7 +10534,7 @@ func (p projMultInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -10782,15 +10642,13 @@ func (p projMultInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -10819,7 +10677,7 @@ func (p projMultInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -10927,15 +10785,13 @@ func (p projMultInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -10964,7 +10820,7 @@ func (p projMultInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -11072,15 +10928,13 @@ func (p projMultInt16DecimalOp) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -11103,7 +10957,7 @@ func (p projMultInt16DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -11193,15 +11047,13 @@ func (p projMultInt16IntervalOp) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -11214,7 +11066,7 @@ func (p projMultInt16IntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -11274,15 +11126,13 @@ func (p projMultInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -11311,7 +11161,7 @@ func (p projMultInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -11419,15 +11269,13 @@ func (p projMultInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -11456,7 +11304,7 @@ func (p projMultInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -11564,15 +11412,13 @@ func (p projMultInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -11601,7 +11447,7 @@ func (p projMultInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -11709,15 +11555,13 @@ func (p projMultInt32DecimalOp) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -11740,7 +11584,7 @@ func (p projMultInt32DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -11830,15 +11674,13 @@ func (p projMultInt32IntervalOp) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -11851,7 +11693,7 @@ func (p projMultInt32IntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -11911,15 +11753,13 @@ func (p projMultInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -11948,7 +11788,7 @@ func (p projMultInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -12056,15 +11896,13 @@ func (p projMultInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -12093,7 +11931,7 @@ func (p projMultInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -12201,15 +12039,13 @@ func (p projMultInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -12238,7 +12074,7 @@ func (p projMultInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -12346,15 +12182,13 @@ func (p projMultInt64DecimalOp) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -12377,7 +12211,7 @@ func (p projMultInt64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -12467,15 +12301,13 @@ func (p projMultInt64IntervalOp) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -12488,7 +12320,7 @@ func (p projMultInt64IntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -12548,15 +12380,13 @@ func (p projMultFloat64Float64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -12574,7 +12404,7 @@ func (p projMultFloat64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -12649,15 +12479,13 @@ func (p projMultFloat64IntervalOp) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -12670,7 +12498,7 @@ func (p projMultFloat64IntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -12730,15 +12558,13 @@ func (p projMultIntervalInt16Op) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -12751,7 +12577,7 @@ func (p projMultIntervalInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -12811,15 +12637,13 @@ func (p projMultIntervalInt32Op) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -12832,7 +12656,7 @@ func (p projMultIntervalInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -12892,15 +12716,13 @@ func (p projMultIntervalInt64Op) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -12913,7 +12735,7 @@ func (p projMultIntervalInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -12973,15 +12795,13 @@ func (p projMultIntervalFloat64Op) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -12994,7 +12814,7 @@ func (p projMultIntervalFloat64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -13054,15 +12874,13 @@ func (p projMultIntervalDecimalOp) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -13080,7 +12898,7 @@ func (p projMultIntervalDecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -13155,15 +12973,13 @@ func (p projDivDecimalInt16Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -13189,7 +13005,7 @@ func (p projDivDecimalInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -13288,15 +13104,13 @@ func (p projDivDecimalInt32Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -13322,7 +13136,7 @@ func (p projDivDecimalInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -13421,15 +13235,13 @@ func (p projDivDecimalInt64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -13455,7 +13267,7 @@ func (p projDivDecimalInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -13554,15 +13366,13 @@ func (p projDivDecimalDecimalOp) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -13587,7 +13397,7 @@ func (p projDivDecimalDecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -13683,15 +13493,13 @@ func (p projDivInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -13716,7 +13524,7 @@ func (p projDivInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -13812,15 +13620,13 @@ func (p projDivInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -13845,7 +13651,7 @@ func (p projDivInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -13941,15 +13747,13 @@ func (p projDivInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -13974,7 +13778,7 @@ func (p projDivInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -14070,15 +13874,13 @@ func (p projDivInt16DecimalOp) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -14105,7 +13907,7 @@ func (p projDivInt16DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -14207,15 +14009,13 @@ func (p projDivInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -14240,7 +14040,7 @@ func (p projDivInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -14336,15 +14136,13 @@ func (p projDivInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -14369,7 +14167,7 @@ func (p projDivInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -14465,15 +14263,13 @@ func (p projDivInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -14498,7 +14294,7 @@ func (p projDivInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -14594,15 +14390,13 @@ func (p projDivInt32DecimalOp) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -14629,7 +14423,7 @@ func (p projDivInt32DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -14731,15 +14525,13 @@ func (p projDivInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -14764,7 +14556,7 @@ func (p projDivInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -14860,15 +14652,13 @@ func (p projDivInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -14893,7 +14683,7 @@ func (p projDivInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -14989,15 +14779,13 @@ func (p projDivInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -15022,7 +14810,7 @@ func (p projDivInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -15118,15 +14906,13 @@ func (p projDivInt64DecimalOp) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -15153,7 +14939,7 @@ func (p projDivInt64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -15255,15 +15041,13 @@ func (p projDivFloat64Float64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -15285,7 +15069,7 @@ func (p projDivFloat64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -15372,15 +15156,13 @@ func (p projDivIntervalInt16Op) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -15397,7 +15179,7 @@ func (p projDivIntervalInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -15469,15 +15251,13 @@ func (p projDivIntervalInt32Op) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -15494,7 +15274,7 @@ func (p projDivIntervalInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -15566,15 +15346,13 @@ func (p projDivIntervalInt64Op) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -15591,7 +15369,7 @@ func (p projDivIntervalInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -15663,15 +15441,13 @@ func (p projDivIntervalFloat64Op) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -15688,7 +15464,7 @@ func (p projDivIntervalFloat64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -15760,15 +15536,13 @@ func (p projFloorDivDecimalInt16Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -15794,7 +15568,7 @@ func (p projFloorDivDecimalInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -15893,15 +15667,13 @@ func (p projFloorDivDecimalInt32Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -15927,7 +15699,7 @@ func (p projFloorDivDecimalInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -16026,15 +15798,13 @@ func (p projFloorDivDecimalInt64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -16060,7 +15830,7 @@ func (p projFloorDivDecimalInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -16159,15 +15929,13 @@ func (p projFloorDivDecimalDecimalOp) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -16192,7 +15960,7 @@ func (p projFloorDivDecimalDecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -16288,15 +16056,13 @@ func (p projFloorDivInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -16316,7 +16082,7 @@ func (p projFloorDivInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -16397,15 +16163,13 @@ func (p projFloorDivInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -16425,7 +16189,7 @@ func (p projFloorDivInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -16506,15 +16270,13 @@ func (p projFloorDivInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -16534,7 +16296,7 @@ func (p projFloorDivInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -16615,15 +16377,13 @@ func (p projFloorDivInt16DecimalOp) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -16650,7 +16410,7 @@ func (p projFloorDivInt16DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -16752,15 +16512,13 @@ func (p projFloorDivInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -16780,7 +16538,7 @@ func (p projFloorDivInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -16861,15 +16619,13 @@ func (p projFloorDivInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -16889,7 +16645,7 @@ func (p projFloorDivInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -16970,15 +16726,13 @@ func (p projFloorDivInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -16998,7 +16752,7 @@ func (p projFloorDivInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -17079,15 +16833,13 @@ func (p projFloorDivInt32DecimalOp) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -17114,7 +16866,7 @@ func (p projFloorDivInt32DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -17216,15 +16968,13 @@ func (p projFloorDivInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -17244,7 +16994,7 @@ func (p projFloorDivInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -17325,15 +17075,13 @@ func (p projFloorDivInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -17353,7 +17101,7 @@ func (p projFloorDivInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -17434,15 +17182,13 @@ func (p projFloorDivInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -17462,7 +17208,7 @@ func (p projFloorDivInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -17543,15 +17289,13 @@ func (p projFloorDivInt64DecimalOp) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -17578,7 +17322,7 @@ func (p projFloorDivInt64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -17680,15 +17424,13 @@ func (p projFloorDivFloat64Float64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -17710,7 +17452,7 @@ func (p projFloorDivFloat64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -17797,15 +17539,13 @@ func (p projModDecimalInt16Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -17831,7 +17571,7 @@ func (p projModDecimalInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -17930,15 +17670,13 @@ func (p projModDecimalInt32Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -17964,7 +17702,7 @@ func (p projModDecimalInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -18063,15 +17801,13 @@ func (p projModDecimalInt64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -18097,7 +17833,7 @@ func (p projModDecimalInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -18196,15 +17932,13 @@ func (p projModDecimalDecimalOp) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -18229,7 +17963,7 @@ func (p projModDecimalDecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -18325,15 +18059,13 @@ func (p projModInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -18353,7 +18085,7 @@ func (p projModInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -18434,15 +18166,13 @@ func (p projModInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -18462,7 +18192,7 @@ func (p projModInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -18543,15 +18273,13 @@ func (p projModInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -18571,7 +18299,7 @@ func (p projModInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -18652,15 +18380,13 @@ func (p projModInt16DecimalOp) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -18687,7 +18413,7 @@ func (p projModInt16DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -18789,15 +18515,13 @@ func (p projModInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -18817,7 +18541,7 @@ func (p projModInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -18898,15 +18622,13 @@ func (p projModInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -18926,7 +18648,7 @@ func (p projModInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -19007,15 +18729,13 @@ func (p projModInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -19035,7 +18755,7 @@ func (p projModInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -19116,15 +18836,13 @@ func (p projModInt32DecimalOp) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -19151,7 +18869,7 @@ func (p projModInt32DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -19253,15 +18971,13 @@ func (p projModInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -19281,7 +18997,7 @@ func (p projModInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -19362,15 +19078,13 @@ func (p projModInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -19390,7 +19104,7 @@ func (p projModInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -19471,15 +19185,13 @@ func (p projModInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -19499,7 +19211,7 @@ func (p projModInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -19580,15 +19292,13 @@ func (p projModInt64DecimalOp) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -19615,7 +19325,7 @@ func (p projModInt64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -19717,15 +19427,13 @@ func (p projModFloat64Float64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -19747,7 +19455,7 @@ func (p projModFloat64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -19834,15 +19542,13 @@ func (p projPowDecimalInt16Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -19864,7 +19570,7 @@ func (p projPowDecimalInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -19951,15 +19657,13 @@ func (p projPowDecimalInt32Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -19981,7 +19685,7 @@ func (p projPowDecimalInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -20068,15 +19772,13 @@ func (p projPowDecimalInt64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -20098,7 +19800,7 @@ func (p projPowDecimalInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -20185,15 +19887,13 @@ func (p projPowDecimalDecimalOp) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -20214,7 +19914,7 @@ func (p projPowDecimalDecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -20298,15 +19998,13 @@ func (p projPowInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -20333,7 +20031,7 @@ func (p projPowInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -20435,15 +20133,13 @@ func (p projPowInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -20470,7 +20166,7 @@ func (p projPowInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -20572,15 +20268,13 @@ func (p projPowInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -20607,7 +20301,7 @@ func (p projPowInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -20709,15 +20403,13 @@ func (p projPowInt16DecimalOp) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -20740,7 +20432,7 @@ func (p projPowInt16DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -20830,15 +20522,13 @@ func (p projPowInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -20865,7 +20555,7 @@ func (p projPowInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -20967,15 +20657,13 @@ func (p projPowInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -21002,7 +20690,7 @@ func (p projPowInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -21104,15 +20792,13 @@ func (p projPowInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -21139,7 +20825,7 @@ func (p projPowInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -21241,15 +20927,13 @@ func (p projPowInt32DecimalOp) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -21272,7 +20956,7 @@ func (p projPowInt32DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -21362,15 +21046,13 @@ func (p projPowInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -21397,7 +21079,7 @@ func (p projPowInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -21499,15 +21181,13 @@ func (p projPowInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -21534,7 +21214,7 @@ func (p projPowInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -21636,15 +21316,13 @@ func (p projPowInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -21671,7 +21349,7 @@ func (p projPowInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -21773,15 +21451,13 @@ func (p projPowInt64DecimalOp) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -21804,7 +21480,7 @@ func (p projPowInt64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -21894,15 +21570,13 @@ func (p projPowFloat64Float64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -21920,7 +21594,7 @@ func (p projPowFloat64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -21995,15 +21669,13 @@ func (p projConcatBytesBytesOp) Next() coldata.Batch { col1 := vec1.Bytes() col2 := vec2.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -22023,7 +21695,7 @@ func (p projConcatBytesBytesOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -22100,15 +21772,13 @@ func (p projConcatJSONJSONOp) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -22127,7 +21797,7 @@ func (p projConcatJSONJSONOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -22203,19 +21873,23 @@ func (p projConcatDatumDatumOp) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) && !p.nullableArgs - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg1.(tree.Datum), arg2.(tree.Datum)) if err != nil { @@ -22233,11 +21907,17 @@ func (p projConcatDatumDatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } _res, err := _overloadHelper.BinFn(_overloadHelper.EvalCtx, arg1.(tree.Datum), arg2.(tree.Datum)) if err != nil { @@ -22251,7 +21931,9 @@ func (p projConcatDatumDatumOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -22316,15 +21998,13 @@ func (p projLShiftInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -22345,7 +22025,7 @@ func (p projLShiftInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -22429,15 +22109,13 @@ func (p projLShiftInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -22458,7 +22136,7 @@ func (p projLShiftInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -22542,15 +22220,13 @@ func (p projLShiftInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -22571,7 +22247,7 @@ func (p projLShiftInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -22655,15 +22331,13 @@ func (p projLShiftInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -22684,7 +22358,7 @@ func (p projLShiftInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -22768,15 +22442,13 @@ func (p projLShiftInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -22797,7 +22469,7 @@ func (p projLShiftInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -22881,15 +22553,13 @@ func (p projLShiftInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -22910,7 +22580,7 @@ func (p projLShiftInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -22994,15 +22664,13 @@ func (p projLShiftInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -23023,7 +22691,7 @@ func (p projLShiftInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -23107,15 +22775,13 @@ func (p projLShiftInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -23136,7 +22802,7 @@ func (p projLShiftInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -23220,15 +22886,13 @@ func (p projLShiftInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -23249,7 +22913,7 @@ func (p projLShiftInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -23335,15 +22999,13 @@ func (p projLShiftDatumInt16Op) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -23369,7 +23031,7 @@ func (p projLShiftDatumInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -23468,15 +23130,13 @@ func (p projLShiftDatumInt32Op) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -23502,7 +23162,7 @@ func (p projLShiftDatumInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -23601,15 +23261,13 @@ func (p projLShiftDatumInt64Op) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -23635,7 +23293,7 @@ func (p projLShiftDatumInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -23732,15 +23390,13 @@ func (p projRShiftInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -23761,7 +23417,7 @@ func (p projRShiftInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -23845,15 +23501,13 @@ func (p projRShiftInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -23874,7 +23528,7 @@ func (p projRShiftInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -23958,15 +23612,13 @@ func (p projRShiftInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -23987,7 +23639,7 @@ func (p projRShiftInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -24071,15 +23723,13 @@ func (p projRShiftInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -24100,7 +23750,7 @@ func (p projRShiftInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -24184,15 +23834,13 @@ func (p projRShiftInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -24213,7 +23861,7 @@ func (p projRShiftInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -24297,15 +23945,13 @@ func (p projRShiftInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -24326,7 +23972,7 @@ func (p projRShiftInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -24410,15 +24056,13 @@ func (p projRShiftInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -24439,7 +24083,7 @@ func (p projRShiftInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -24523,15 +24167,13 @@ func (p projRShiftInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -24552,7 +24194,7 @@ func (p projRShiftInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -24636,15 +24278,13 @@ func (p projRShiftInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -24665,7 +24305,7 @@ func (p projRShiftInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -24751,15 +24391,13 @@ func (p projRShiftDatumInt16Op) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -24785,7 +24423,7 @@ func (p projRShiftDatumInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -24884,15 +24522,13 @@ func (p projRShiftDatumInt32Op) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -24918,7 +24554,7 @@ func (p projRShiftDatumInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -25017,15 +24653,13 @@ func (p projRShiftDatumInt64Op) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -25051,7 +24685,7 @@ func (p projRShiftDatumInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -25148,15 +24782,13 @@ func (p projJSONFetchValJSONBytesOp) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -25181,7 +24813,7 @@ func (p projJSONFetchValJSONBytesOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -25273,15 +24905,13 @@ func (p projJSONFetchValJSONInt16Op) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -25303,7 +24933,7 @@ func (p projJSONFetchValJSONInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -25388,15 +25018,13 @@ func (p projJSONFetchValJSONInt32Op) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -25418,7 +25046,7 @@ func (p projJSONFetchValJSONInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -25503,15 +25131,13 @@ func (p projJSONFetchValJSONInt64Op) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -25533,7 +25159,7 @@ func (p projJSONFetchValJSONInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -25618,15 +25244,13 @@ func (p projJSONFetchTextJSONBytesOp) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -25660,7 +25284,7 @@ func (p projJSONFetchTextJSONBytesOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -25779,15 +25403,13 @@ func (p projJSONFetchTextJSONInt16Op) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -25818,7 +25440,7 @@ func (p projJSONFetchTextJSONInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -25930,15 +25552,13 @@ func (p projJSONFetchTextJSONInt32Op) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -25969,7 +25589,7 @@ func (p projJSONFetchTextJSONInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -26081,15 +25701,13 @@ func (p projJSONFetchTextJSONInt64Op) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -26120,7 +25738,7 @@ func (p projJSONFetchTextJSONInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -26232,15 +25850,13 @@ func (p projJSONFetchValPathJSONDatumOp) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -26262,7 +25878,7 @@ func (p projJSONFetchValPathJSONDatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -26345,15 +25961,13 @@ func (p projJSONFetchTextPathJSONDatumOp) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -26385,7 +25999,7 @@ func (p projJSONFetchTextPathJSONDatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -26498,15 +26112,13 @@ func (p projEQBoolBoolOp) Next() coldata.Batch { col1 := vec1.Bool() col2 := vec2.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -26533,7 +26145,7 @@ func (p projEQBoolBoolOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -26635,15 +26247,13 @@ func (p projEQBytesBytesOp) Next() coldata.Batch { col1 := vec1.Bytes() col2 := vec2.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -26662,7 +26272,7 @@ func (p projEQBytesBytesOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -26736,15 +26346,13 @@ func (p projEQDecimalInt16Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -26769,7 +26377,7 @@ func (p projEQDecimalInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -26865,15 +26473,13 @@ func (p projEQDecimalInt32Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -26898,7 +26504,7 @@ func (p projEQDecimalInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -26994,15 +26600,13 @@ func (p projEQDecimalInt64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -27027,7 +26631,7 @@ func (p projEQDecimalInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -27123,15 +26727,13 @@ func (p projEQDecimalFloat64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -27158,7 +26760,7 @@ func (p projEQDecimalFloat64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -27260,15 +26862,13 @@ func (p projEQDecimalDecimalOp) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -27287,7 +26887,7 @@ func (p projEQDecimalDecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -27365,15 +26965,13 @@ func (p projEQInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -27403,7 +27001,7 @@ func (p projEQInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -27514,15 +27112,13 @@ func (p projEQInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -27552,7 +27148,7 @@ func (p projEQInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -27663,15 +27259,13 @@ func (p projEQInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -27701,7 +27295,7 @@ func (p projEQInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -27812,15 +27406,13 @@ func (p projEQInt16Float64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -27858,7 +27450,7 @@ func (p projEQInt16Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -27993,15 +27585,13 @@ func (p projEQInt16DecimalOp) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -28026,7 +27616,7 @@ func (p projEQInt16DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -28122,15 +27712,13 @@ func (p projEQInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -28160,7 +27748,7 @@ func (p projEQInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -28271,15 +27859,13 @@ func (p projEQInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -28309,7 +27895,7 @@ func (p projEQInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -28420,15 +28006,13 @@ func (p projEQInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -28458,7 +28042,7 @@ func (p projEQInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -28569,15 +28153,13 @@ func (p projEQInt32Float64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -28615,7 +28197,7 @@ func (p projEQInt32Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -28750,15 +28332,13 @@ func (p projEQInt32DecimalOp) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -28783,7 +28363,7 @@ func (p projEQInt32DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -28879,15 +28459,13 @@ func (p projEQInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -28917,7 +28495,7 @@ func (p projEQInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -29028,15 +28606,13 @@ func (p projEQInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -29066,7 +28642,7 @@ func (p projEQInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -29177,15 +28753,13 @@ func (p projEQInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -29215,7 +28789,7 @@ func (p projEQInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -29326,15 +28900,13 @@ func (p projEQInt64Float64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -29372,7 +28944,7 @@ func (p projEQInt64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -29507,15 +29079,13 @@ func (p projEQInt64DecimalOp) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -29540,7 +29110,7 @@ func (p projEQInt64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -29636,15 +29206,13 @@ func (p projEQFloat64Int16Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -29682,7 +29250,7 @@ func (p projEQFloat64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -29817,15 +29385,13 @@ func (p projEQFloat64Int32Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -29863,7 +29429,7 @@ func (p projEQFloat64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -29998,15 +29564,13 @@ func (p projEQFloat64Int64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -30044,7 +29608,7 @@ func (p projEQFloat64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -30179,15 +29743,13 @@ func (p projEQFloat64Float64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -30225,7 +29787,7 @@ func (p projEQFloat64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -30360,15 +29922,13 @@ func (p projEQFloat64DecimalOp) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -30395,7 +29955,7 @@ func (p projEQFloat64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -30497,15 +30057,13 @@ func (p projEQTimestampTimestampOp) Next() coldata.Batch { col1 := vec1.Timestamp() col2 := vec2.Timestamp() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -30531,7 +30089,7 @@ func (p projEQTimestampTimestampOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -30630,15 +30188,13 @@ func (p projEQIntervalIntervalOp) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -30657,7 +30213,7 @@ func (p projEQIntervalIntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -30735,15 +30291,13 @@ func (p projEQJSONJSONOp) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -30768,7 +30322,7 @@ func (p projEQJSONJSONOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -30860,19 +30414,23 @@ func (p projEQDatumDatumOp) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) && !p.nullableArgs - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } { var cmpResult int @@ -30889,11 +30447,17 @@ func (p projEQDatumDatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } { var cmpResult int @@ -30906,7 +30470,9 @@ func (p projEQDatumDatumOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -30969,15 +30535,13 @@ func (p projNEBoolBoolOp) Next() coldata.Batch { col1 := vec1.Bool() col2 := vec2.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -31004,7 +30568,7 @@ func (p projNEBoolBoolOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -31106,15 +30670,13 @@ func (p projNEBytesBytesOp) Next() coldata.Batch { col1 := vec1.Bytes() col2 := vec2.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -31133,7 +30695,7 @@ func (p projNEBytesBytesOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -31207,15 +30769,13 @@ func (p projNEDecimalInt16Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -31240,7 +30800,7 @@ func (p projNEDecimalInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -31336,15 +30896,13 @@ func (p projNEDecimalInt32Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -31369,7 +30927,7 @@ func (p projNEDecimalInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -31465,15 +31023,13 @@ func (p projNEDecimalInt64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -31498,7 +31054,7 @@ func (p projNEDecimalInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -31594,15 +31150,13 @@ func (p projNEDecimalFloat64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -31629,7 +31183,7 @@ func (p projNEDecimalFloat64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -31731,15 +31285,13 @@ func (p projNEDecimalDecimalOp) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -31758,7 +31310,7 @@ func (p projNEDecimalDecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -31836,15 +31388,13 @@ func (p projNEInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -31874,7 +31424,7 @@ func (p projNEInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -31985,15 +31535,13 @@ func (p projNEInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -32023,7 +31571,7 @@ func (p projNEInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -32134,15 +31682,13 @@ func (p projNEInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -32172,7 +31718,7 @@ func (p projNEInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -32283,15 +31829,13 @@ func (p projNEInt16Float64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -32329,7 +31873,7 @@ func (p projNEInt16Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -32464,15 +32008,13 @@ func (p projNEInt16DecimalOp) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -32497,7 +32039,7 @@ func (p projNEInt16DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -32593,15 +32135,13 @@ func (p projNEInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -32631,7 +32171,7 @@ func (p projNEInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -32742,15 +32282,13 @@ func (p projNEInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -32780,7 +32318,7 @@ func (p projNEInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -32891,15 +32429,13 @@ func (p projNEInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -32929,7 +32465,7 @@ func (p projNEInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -33040,15 +32576,13 @@ func (p projNEInt32Float64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -33086,7 +32620,7 @@ func (p projNEInt32Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -33221,15 +32755,13 @@ func (p projNEInt32DecimalOp) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -33254,7 +32786,7 @@ func (p projNEInt32DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -33350,15 +32882,13 @@ func (p projNEInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -33388,7 +32918,7 @@ func (p projNEInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -33499,15 +33029,13 @@ func (p projNEInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -33537,7 +33065,7 @@ func (p projNEInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -33648,15 +33176,13 @@ func (p projNEInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -33686,7 +33212,7 @@ func (p projNEInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -33797,15 +33323,13 @@ func (p projNEInt64Float64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -33843,7 +33367,7 @@ func (p projNEInt64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -33978,15 +33502,13 @@ func (p projNEInt64DecimalOp) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -34011,7 +33533,7 @@ func (p projNEInt64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -34107,15 +33629,13 @@ func (p projNEFloat64Int16Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -34153,7 +33673,7 @@ func (p projNEFloat64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -34288,15 +33808,13 @@ func (p projNEFloat64Int32Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -34334,7 +33852,7 @@ func (p projNEFloat64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -34469,15 +33987,13 @@ func (p projNEFloat64Int64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -34515,7 +34031,7 @@ func (p projNEFloat64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -34650,15 +34166,13 @@ func (p projNEFloat64Float64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -34696,7 +34210,7 @@ func (p projNEFloat64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -34831,15 +34345,13 @@ func (p projNEFloat64DecimalOp) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -34866,7 +34378,7 @@ func (p projNEFloat64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -34968,15 +34480,13 @@ func (p projNETimestampTimestampOp) Next() coldata.Batch { col1 := vec1.Timestamp() col2 := vec2.Timestamp() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -35002,7 +34512,7 @@ func (p projNETimestampTimestampOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -35101,15 +34611,13 @@ func (p projNEIntervalIntervalOp) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -35128,7 +34636,7 @@ func (p projNEIntervalIntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -35206,15 +34714,13 @@ func (p projNEJSONJSONOp) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -35239,7 +34745,7 @@ func (p projNEJSONJSONOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -35331,19 +34837,23 @@ func (p projNEDatumDatumOp) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) && !p.nullableArgs - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } { var cmpResult int @@ -35360,11 +34870,17 @@ func (p projNEDatumDatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } { var cmpResult int @@ -35377,7 +34893,9 @@ func (p projNEDatumDatumOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -35440,15 +34958,13 @@ func (p projLTBoolBoolOp) Next() coldata.Batch { col1 := vec1.Bool() col2 := vec2.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -35475,7 +34991,7 @@ func (p projLTBoolBoolOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -35577,15 +35093,13 @@ func (p projLTBytesBytesOp) Next() coldata.Batch { col1 := vec1.Bytes() col2 := vec2.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -35604,7 +35118,7 @@ func (p projLTBytesBytesOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -35678,15 +35192,13 @@ func (p projLTDecimalInt16Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -35711,7 +35223,7 @@ func (p projLTDecimalInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -35807,15 +35319,13 @@ func (p projLTDecimalInt32Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -35840,7 +35350,7 @@ func (p projLTDecimalInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -35936,15 +35446,13 @@ func (p projLTDecimalInt64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -35969,7 +35477,7 @@ func (p projLTDecimalInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -36065,15 +35573,13 @@ func (p projLTDecimalFloat64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -36100,7 +35606,7 @@ func (p projLTDecimalFloat64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -36202,15 +35708,13 @@ func (p projLTDecimalDecimalOp) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -36229,7 +35733,7 @@ func (p projLTDecimalDecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -36307,15 +35811,13 @@ func (p projLTInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -36345,7 +35847,7 @@ func (p projLTInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -36456,15 +35958,13 @@ func (p projLTInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -36494,7 +35994,7 @@ func (p projLTInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -36605,15 +36105,13 @@ func (p projLTInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -36643,7 +36141,7 @@ func (p projLTInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -36754,15 +36252,13 @@ func (p projLTInt16Float64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -36800,7 +36296,7 @@ func (p projLTInt16Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -36935,15 +36431,13 @@ func (p projLTInt16DecimalOp) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -36968,7 +36462,7 @@ func (p projLTInt16DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -37064,15 +36558,13 @@ func (p projLTInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -37102,7 +36594,7 @@ func (p projLTInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -37213,15 +36705,13 @@ func (p projLTInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -37251,7 +36741,7 @@ func (p projLTInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -37362,15 +36852,13 @@ func (p projLTInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -37400,7 +36888,7 @@ func (p projLTInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -37511,15 +36999,13 @@ func (p projLTInt32Float64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -37557,7 +37043,7 @@ func (p projLTInt32Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -37692,15 +37178,13 @@ func (p projLTInt32DecimalOp) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -37725,7 +37209,7 @@ func (p projLTInt32DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -37821,15 +37305,13 @@ func (p projLTInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -37859,7 +37341,7 @@ func (p projLTInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -37970,15 +37452,13 @@ func (p projLTInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -38008,7 +37488,7 @@ func (p projLTInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -38119,15 +37599,13 @@ func (p projLTInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -38157,7 +37635,7 @@ func (p projLTInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -38268,15 +37746,13 @@ func (p projLTInt64Float64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -38314,7 +37790,7 @@ func (p projLTInt64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -38449,15 +37925,13 @@ func (p projLTInt64DecimalOp) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -38482,7 +37956,7 @@ func (p projLTInt64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -38578,15 +38052,13 @@ func (p projLTFloat64Int16Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -38624,7 +38096,7 @@ func (p projLTFloat64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -38759,15 +38231,13 @@ func (p projLTFloat64Int32Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -38805,7 +38275,7 @@ func (p projLTFloat64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -38940,15 +38410,13 @@ func (p projLTFloat64Int64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -38986,7 +38454,7 @@ func (p projLTFloat64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -39121,15 +38589,13 @@ func (p projLTFloat64Float64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -39167,7 +38633,7 @@ func (p projLTFloat64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -39302,15 +38768,13 @@ func (p projLTFloat64DecimalOp) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -39337,7 +38801,7 @@ func (p projLTFloat64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -39439,15 +38903,13 @@ func (p projLTTimestampTimestampOp) Next() coldata.Batch { col1 := vec1.Timestamp() col2 := vec2.Timestamp() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -39473,7 +38935,7 @@ func (p projLTTimestampTimestampOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -39572,15 +39034,13 @@ func (p projLTIntervalIntervalOp) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -39599,7 +39059,7 @@ func (p projLTIntervalIntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -39677,15 +39137,13 @@ func (p projLTJSONJSONOp) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -39710,7 +39168,7 @@ func (p projLTJSONJSONOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -39802,19 +39260,23 @@ func (p projLTDatumDatumOp) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) && !p.nullableArgs - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } { var cmpResult int @@ -39831,11 +39293,17 @@ func (p projLTDatumDatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } { var cmpResult int @@ -39848,7 +39316,9 @@ func (p projLTDatumDatumOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -39911,15 +39381,13 @@ func (p projLEBoolBoolOp) Next() coldata.Batch { col1 := vec1.Bool() col2 := vec2.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -39946,7 +39414,7 @@ func (p projLEBoolBoolOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -40048,15 +39516,13 @@ func (p projLEBytesBytesOp) Next() coldata.Batch { col1 := vec1.Bytes() col2 := vec2.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -40075,7 +39541,7 @@ func (p projLEBytesBytesOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -40149,15 +39615,13 @@ func (p projLEDecimalInt16Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -40182,7 +39646,7 @@ func (p projLEDecimalInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -40278,15 +39742,13 @@ func (p projLEDecimalInt32Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -40311,7 +39773,7 @@ func (p projLEDecimalInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -40407,15 +39869,13 @@ func (p projLEDecimalInt64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -40440,7 +39900,7 @@ func (p projLEDecimalInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -40536,15 +39996,13 @@ func (p projLEDecimalFloat64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -40571,7 +40029,7 @@ func (p projLEDecimalFloat64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -40673,15 +40131,13 @@ func (p projLEDecimalDecimalOp) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -40700,7 +40156,7 @@ func (p projLEDecimalDecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -40778,15 +40234,13 @@ func (p projLEInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -40816,7 +40270,7 @@ func (p projLEInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -40927,15 +40381,13 @@ func (p projLEInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -40965,7 +40417,7 @@ func (p projLEInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -41076,15 +40528,13 @@ func (p projLEInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -41114,7 +40564,7 @@ func (p projLEInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -41225,15 +40675,13 @@ func (p projLEInt16Float64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -41271,7 +40719,7 @@ func (p projLEInt16Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -41406,15 +40854,13 @@ func (p projLEInt16DecimalOp) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -41439,7 +40885,7 @@ func (p projLEInt16DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -41535,15 +40981,13 @@ func (p projLEInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -41573,7 +41017,7 @@ func (p projLEInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -41684,15 +41128,13 @@ func (p projLEInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -41722,7 +41164,7 @@ func (p projLEInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -41833,15 +41275,13 @@ func (p projLEInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -41871,7 +41311,7 @@ func (p projLEInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -41982,15 +41422,13 @@ func (p projLEInt32Float64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -42028,7 +41466,7 @@ func (p projLEInt32Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -42163,15 +41601,13 @@ func (p projLEInt32DecimalOp) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -42196,7 +41632,7 @@ func (p projLEInt32DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -42292,15 +41728,13 @@ func (p projLEInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -42330,7 +41764,7 @@ func (p projLEInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -42441,15 +41875,13 @@ func (p projLEInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -42479,7 +41911,7 @@ func (p projLEInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -42590,15 +42022,13 @@ func (p projLEInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -42628,7 +42058,7 @@ func (p projLEInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -42739,15 +42169,13 @@ func (p projLEInt64Float64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -42785,7 +42213,7 @@ func (p projLEInt64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -42920,15 +42348,13 @@ func (p projLEInt64DecimalOp) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -42953,7 +42379,7 @@ func (p projLEInt64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -43049,15 +42475,13 @@ func (p projLEFloat64Int16Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -43095,7 +42519,7 @@ func (p projLEFloat64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -43230,15 +42654,13 @@ func (p projLEFloat64Int32Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -43276,7 +42698,7 @@ func (p projLEFloat64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -43411,15 +42833,13 @@ func (p projLEFloat64Int64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -43457,7 +42877,7 @@ func (p projLEFloat64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -43592,15 +43012,13 @@ func (p projLEFloat64Float64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -43638,7 +43056,7 @@ func (p projLEFloat64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -43773,15 +43191,13 @@ func (p projLEFloat64DecimalOp) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -43808,7 +43224,7 @@ func (p projLEFloat64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -43910,15 +43326,13 @@ func (p projLETimestampTimestampOp) Next() coldata.Batch { col1 := vec1.Timestamp() col2 := vec2.Timestamp() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -43944,7 +43358,7 @@ func (p projLETimestampTimestampOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -44043,15 +43457,13 @@ func (p projLEIntervalIntervalOp) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -44070,7 +43482,7 @@ func (p projLEIntervalIntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -44148,15 +43560,13 @@ func (p projLEJSONJSONOp) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -44181,7 +43591,7 @@ func (p projLEJSONJSONOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -44273,19 +43683,23 @@ func (p projLEDatumDatumOp) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) && !p.nullableArgs - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } { var cmpResult int @@ -44302,11 +43716,17 @@ func (p projLEDatumDatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } { var cmpResult int @@ -44319,7 +43739,9 @@ func (p projLEDatumDatumOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -44382,15 +43804,13 @@ func (p projGTBoolBoolOp) Next() coldata.Batch { col1 := vec1.Bool() col2 := vec2.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -44417,7 +43837,7 @@ func (p projGTBoolBoolOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -44519,15 +43939,13 @@ func (p projGTBytesBytesOp) Next() coldata.Batch { col1 := vec1.Bytes() col2 := vec2.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -44546,7 +43964,7 @@ func (p projGTBytesBytesOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -44620,15 +44038,13 @@ func (p projGTDecimalInt16Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -44653,7 +44069,7 @@ func (p projGTDecimalInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -44749,15 +44165,13 @@ func (p projGTDecimalInt32Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -44782,7 +44196,7 @@ func (p projGTDecimalInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -44878,15 +44292,13 @@ func (p projGTDecimalInt64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -44911,7 +44323,7 @@ func (p projGTDecimalInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -45007,15 +44419,13 @@ func (p projGTDecimalFloat64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -45042,7 +44452,7 @@ func (p projGTDecimalFloat64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -45144,15 +44554,13 @@ func (p projGTDecimalDecimalOp) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -45171,7 +44579,7 @@ func (p projGTDecimalDecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -45249,15 +44657,13 @@ func (p projGTInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -45287,7 +44693,7 @@ func (p projGTInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -45398,15 +44804,13 @@ func (p projGTInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -45436,7 +44840,7 @@ func (p projGTInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -45547,15 +44951,13 @@ func (p projGTInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -45585,7 +44987,7 @@ func (p projGTInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -45696,15 +45098,13 @@ func (p projGTInt16Float64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -45742,7 +45142,7 @@ func (p projGTInt16Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -45877,15 +45277,13 @@ func (p projGTInt16DecimalOp) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -45910,7 +45308,7 @@ func (p projGTInt16DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -46006,15 +45404,13 @@ func (p projGTInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -46044,7 +45440,7 @@ func (p projGTInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -46155,15 +45551,13 @@ func (p projGTInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -46193,7 +45587,7 @@ func (p projGTInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -46304,15 +45698,13 @@ func (p projGTInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -46342,7 +45734,7 @@ func (p projGTInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -46453,15 +45845,13 @@ func (p projGTInt32Float64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -46499,7 +45889,7 @@ func (p projGTInt32Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -46634,15 +46024,13 @@ func (p projGTInt32DecimalOp) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -46667,7 +46055,7 @@ func (p projGTInt32DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -46763,15 +46151,13 @@ func (p projGTInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -46801,7 +46187,7 @@ func (p projGTInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -46912,15 +46298,13 @@ func (p projGTInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -46950,7 +46334,7 @@ func (p projGTInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -47061,15 +46445,13 @@ func (p projGTInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -47099,7 +46481,7 @@ func (p projGTInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -47210,15 +46592,13 @@ func (p projGTInt64Float64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -47256,7 +46636,7 @@ func (p projGTInt64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -47391,15 +46771,13 @@ func (p projGTInt64DecimalOp) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -47424,7 +46802,7 @@ func (p projGTInt64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -47520,15 +46898,13 @@ func (p projGTFloat64Int16Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -47566,7 +46942,7 @@ func (p projGTFloat64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -47701,15 +47077,13 @@ func (p projGTFloat64Int32Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -47747,7 +47121,7 @@ func (p projGTFloat64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -47882,15 +47256,13 @@ func (p projGTFloat64Int64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -47928,7 +47300,7 @@ func (p projGTFloat64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -48063,15 +47435,13 @@ func (p projGTFloat64Float64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -48109,7 +47479,7 @@ func (p projGTFloat64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -48244,15 +47614,13 @@ func (p projGTFloat64DecimalOp) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -48279,7 +47647,7 @@ func (p projGTFloat64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -48381,15 +47749,13 @@ func (p projGTTimestampTimestampOp) Next() coldata.Batch { col1 := vec1.Timestamp() col2 := vec2.Timestamp() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -48415,7 +47781,7 @@ func (p projGTTimestampTimestampOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -48514,15 +47880,13 @@ func (p projGTIntervalIntervalOp) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -48541,7 +47905,7 @@ func (p projGTIntervalIntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -48619,15 +47983,13 @@ func (p projGTJSONJSONOp) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -48652,7 +48014,7 @@ func (p projGTJSONJSONOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -48744,19 +48106,23 @@ func (p projGTDatumDatumOp) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) && !p.nullableArgs - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } { var cmpResult int @@ -48773,11 +48139,17 @@ func (p projGTDatumDatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } { var cmpResult int @@ -48790,7 +48162,9 @@ func (p projGTDatumDatumOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] @@ -48853,15 +48227,13 @@ func (p projGEBoolBoolOp) Next() coldata.Batch { col1 := vec1.Bool() col2 := vec2.Bool() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -48888,7 +48260,7 @@ func (p projGEBoolBoolOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -48990,15 +48362,13 @@ func (p projGEBytesBytesOp) Next() coldata.Batch { col1 := vec1.Bytes() col2 := vec2.Bytes() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -49017,7 +48387,7 @@ func (p projGEBytesBytesOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -49091,15 +48461,13 @@ func (p projGEDecimalInt16Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -49124,7 +48492,7 @@ func (p projGEDecimalInt16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -49220,15 +48588,13 @@ func (p projGEDecimalInt32Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -49253,7 +48619,7 @@ func (p projGEDecimalInt32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -49349,15 +48715,13 @@ func (p projGEDecimalInt64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -49382,7 +48746,7 @@ func (p projGEDecimalInt64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -49478,15 +48842,13 @@ func (p projGEDecimalFloat64Op) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -49513,7 +48875,7 @@ func (p projGEDecimalFloat64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -49615,15 +48977,13 @@ func (p projGEDecimalDecimalOp) Next() coldata.Batch { col1 := vec1.Decimal() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -49642,7 +49002,7 @@ func (p projGEDecimalDecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -49720,15 +49080,13 @@ func (p projGEInt16Int16Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -49758,7 +49116,7 @@ func (p projGEInt16Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -49869,15 +49227,13 @@ func (p projGEInt16Int32Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -49907,7 +49263,7 @@ func (p projGEInt16Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -50018,15 +49374,13 @@ func (p projGEInt16Int64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -50056,7 +49410,7 @@ func (p projGEInt16Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -50167,15 +49521,13 @@ func (p projGEInt16Float64Op) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -50213,7 +49565,7 @@ func (p projGEInt16Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -50348,15 +49700,13 @@ func (p projGEInt16DecimalOp) Next() coldata.Batch { col1 := vec1.Int16() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -50381,7 +49731,7 @@ func (p projGEInt16DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -50477,15 +49827,13 @@ func (p projGEInt32Int16Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -50515,7 +49863,7 @@ func (p projGEInt32Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -50626,15 +49974,13 @@ func (p projGEInt32Int32Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -50664,7 +50010,7 @@ func (p projGEInt32Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -50775,15 +50121,13 @@ func (p projGEInt32Int64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -50813,7 +50157,7 @@ func (p projGEInt32Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -50924,15 +50268,13 @@ func (p projGEInt32Float64Op) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -50970,7 +50312,7 @@ func (p projGEInt32Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -51105,15 +50447,13 @@ func (p projGEInt32DecimalOp) Next() coldata.Batch { col1 := vec1.Int32() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -51138,7 +50478,7 @@ func (p projGEInt32DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -51234,15 +50574,13 @@ func (p projGEInt64Int16Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -51272,7 +50610,7 @@ func (p projGEInt64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -51383,15 +50721,13 @@ func (p projGEInt64Int32Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -51421,7 +50757,7 @@ func (p projGEInt64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -51532,15 +50868,13 @@ func (p projGEInt64Int64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -51570,7 +50904,7 @@ func (p projGEInt64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -51681,15 +51015,13 @@ func (p projGEInt64Float64Op) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -51727,7 +51059,7 @@ func (p projGEInt64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -51862,15 +51194,13 @@ func (p projGEInt64DecimalOp) Next() coldata.Batch { col1 := vec1.Int64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -51895,7 +51225,7 @@ func (p projGEInt64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -51991,15 +51321,13 @@ func (p projGEFloat64Int16Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int16() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -52037,7 +51365,7 @@ func (p projGEFloat64Int16Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -52172,15 +51500,13 @@ func (p projGEFloat64Int32Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int32() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -52218,7 +51544,7 @@ func (p projGEFloat64Int32Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -52353,15 +51679,13 @@ func (p projGEFloat64Int64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Int64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -52399,7 +51723,7 @@ func (p projGEFloat64Int64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -52534,15 +51858,13 @@ func (p projGEFloat64Float64Op) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Float64() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -52580,7 +51902,7 @@ func (p projGEFloat64Float64Op) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -52715,15 +52037,13 @@ func (p projGEFloat64DecimalOp) Next() coldata.Batch { col1 := vec1.Float64() col2 := vec2.Decimal() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -52750,7 +52070,7 @@ func (p projGEFloat64DecimalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -52852,15 +52172,13 @@ func (p projGETimestampTimestampOp) Next() coldata.Batch { col1 := vec1.Timestamp() col2 := vec2.Timestamp() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -52886,7 +52204,7 @@ func (p projGETimestampTimestampOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -52985,15 +52303,13 @@ func (p projGEIntervalIntervalOp) Next() coldata.Batch { col1 := vec1.Interval() col2 := vec2.Interval() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -53012,7 +52328,7 @@ func (p projGEIntervalIntervalOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. //gcassert:bce @@ -53090,15 +52406,13 @@ func (p projGEJSONJSONOp) Next() coldata.Batch { col1 := vec1.JSON() col2 := vec2.JSON() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -53123,7 +52437,7 @@ func (p projGEJSONJSONOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) @@ -53215,19 +52529,23 @@ func (p projGEDatumDatumOp) Next() coldata.Batch { col1 := vec1.Datum() col2 := vec2.Datum() _outNulls := projVec.Nulls() - - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) && !p.nullableArgs - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() if sel := batch.Selection(); sel != nil { sel = sel[:n] for _, i := range sel { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } { var cmpResult int @@ -53244,11 +52562,17 @@ func (p projGEDatumDatumOp) Next() coldata.Batch { _ = col1.Get(n - 1) _ = col2.Get(n - 1) for i := 0; i < n; i++ { - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. arg1 := col1.Get(i) + if col1Nulls.NullAt(i) { + arg1 = tree.DNull + } arg2 := col2.Get(i) + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } { var cmpResult int @@ -53261,7 +52585,9 @@ func (p projGEDatumDatumOp) Next() coldata.Batch { } } } - projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + if !p.nullableArgs { + projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + } } else { if sel := batch.Selection(); sel != nil { sel = sel[:n] diff --git a/pkg/sql/colexec/colexecproj/proj_non_const_ops_tmpl.go b/pkg/sql/colexec/colexecproj/proj_non_const_ops_tmpl.go index b29561821083..b2b0cac995ba 100644 --- a/pkg/sql/colexec/colexecproj/proj_non_const_ops_tmpl.go +++ b/pkg/sql/colexec/colexecproj/proj_non_const_ops_tmpl.go @@ -141,23 +141,7 @@ func (p _OP_NAME) Next() coldata.Batch { // of a projection is Null. // */}} _outNulls := projVec.Nulls() - - // {{/* - // If nullableArgs is true, the function’s definition can handle null - // arguments. We would still want to perform the projection, and there is no - // need to call projVec.SetNulls(). The behaviour will just be the same as - // _HAS_NULLS is false. Since currently only ConcatDatumDatum needs this - // nullableArgs == true behaviour, logic for nullableArgs is only added to - // the if statement for function with Datum, Datum. If we later introduce - // another projection operation that has nullableArgs == true, we should - // update this code accordingly. - // */}} - // {{if and (eq .Left.VecMethod "Datum") (eq .Right.VecMethod "Datum")}} - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) && !p.nullableArgs - // {{else}} - hasNullsAndNotNullable := (vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls()) - // {{end}} - if hasNullsAndNotNullable { + if vec1.Nulls().MaybeHasNulls() || vec2.Nulls().MaybeHasNulls() { _SET_PROJECTION(true) } else { _SET_PROJECTION(false) @@ -174,6 +158,7 @@ func _SET_PROJECTION(_HAS_NULLS bool) { // {{define "setProjection" -}} // {{$hasNulls := $.HasNulls}} // {{with $.Overload}} + // {{$isDatum := (and (eq .Left.VecMethod "Datum") (eq .Right.VecMethod "Datum"))}} // {{if _HAS_NULLS}} col1Nulls := vec1.Nulls() col2Nulls := vec2.Nulls() @@ -199,7 +184,13 @@ func _SET_PROJECTION(_HAS_NULLS bool) { // projVec.Nulls() so there is no need to call projVec.SetNulls(). // */}} // {{if _HAS_NULLS}} - projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + // {{if $isDatum}} + if !p.nullableArgs { + // {{end}} + projVec.SetNulls(_outNulls.Or(*col1Nulls).Or(*col2Nulls)) + // {{if $isDatum}} + } + // {{end}} // {{end}} // {{end}} // {{end}} @@ -214,8 +205,9 @@ func _SET_SINGLE_TUPLE_PROJECTION(_HAS_NULLS bool, _HAS_SEL bool) { // */}} // {{$hasNulls := $.HasNulls}} // {{$hasSel := $.HasSel}} // {{with $.Overload}} + // {{$isDatum := (and (eq .Left.VecMethod "Datum") (eq .Right.VecMethod "Datum"))}} // {{if _HAS_NULLS}} - if !col1Nulls.NullAt(i) && !col2Nulls.NullAt(i) { + if p.nullableArgs || (!col1Nulls.NullAt(i) && !col2Nulls.NullAt(i)) { // We only want to perform the projection operation if both values are not // null. // {{end}} @@ -223,10 +215,28 @@ func _SET_SINGLE_TUPLE_PROJECTION(_HAS_NULLS bool, _HAS_SEL bool) { // */}} //gcassert:bce // {{end}} arg1 := col1.Get(i) + // {{if (and _HAS_NULLS $isDatum)}} + if col1Nulls.NullAt(i) { + // {{/* + // If we entered this branch for a null value, nullableArgs must be + // true. This means the projection should be calculated on null arguments. + // When a value is null, the underlying data in the slice is invalid and + // can be anything, so we need to overwrite it here. nullableArgs is + // currently only true for ConcatDatumDatum, so only the datum case needs + // to be handled. + // */}} + arg1 = tree.DNull + } + // {{end}} // {{if and (.Right.Sliceable) (not _HAS_SEL)}} //gcassert:bce // {{end}} arg2 := col2.Get(i) + // {{if (and _HAS_NULLS $isDatum)}} + if col2Nulls.NullAt(i) { + arg2 = tree.DNull + } + // {{end}} _ASSIGN(projCol[i], arg1, arg2, projCol, col1, col2) // {{if _HAS_NULLS}} } diff --git a/pkg/sql/logictest/testdata/logic_test/array b/pkg/sql/logictest/testdata/logic_test/array index ba8fe7b9103f..5eddbfe681d1 100644 --- a/pkg/sql/logictest/testdata/logic_test/array +++ b/pkg/sql/logictest/testdata/logic_test/array @@ -2271,3 +2271,25 @@ SELECT ('foo'::STRING || col::STRING[])::STRING[] FROM (VALUES (ARRAY['bar':::ST ---- {foo,bar} {foo,baz} + +# Regression test for #87919 - datum concatenation should be performed for +# null arguments. +statement ok +CREATE TABLE t1_87919 ( + a INT +); +CREATE TABLE t2_87919 ( + b INT, + c TIME[] +); +INSERT INTO t1_87919 (a) VALUES (NULL); +INSERT INTO t2_87919 (c) VALUES (ARRAY['03:23:06.042923']); + +query T rowsort +SELECT ('09:20:35.19023'::TIME || c)::TIME[] AS col_25551 +FROM t1_87919 +FULL JOIN t2_87919 ON a = b +ORDER BY a; +---- +{09:20:35.19023} +{09:20:35.19023,03:23:06.042923}