Skip to content

Internal error: lookup for ComparisonExpr ((@2)[float] != ('NaN')[string])[bool]'s CmpOp failed #46914

@mrigger

Description

@mrigger

Consider the following statements:

CREATE TABLE t0(c0 INT);
SELECT * FROM t0 GROUP BY t0.c0 HAVING MIN((CASE WHEN false THEN NULL END):::FLOAT) IS NOT NAN; -- internal error: lookup for ComparisonExpr ((@2)[float] != ('NaN')[string])[bool]'s CmpOp failed

Unexpectedly, the SELECT results in an internal error with the following stack trace:

ERROR: internal error: lookup for ComparisonExpr ((@2)[float] != ('NaN')[string])[bool]'s CmpOp failed
SQLSTATE: XX000
DETAIL: stack trace:
github.com/cockroachdb/cockroach/pkg/sql/sem/tree/expr.go:526: memoizeFn()
github.com/cockroachdb/cockroach/pkg/sql/sem/tree/expr.go:440: NewTypedComparisonExpr()
github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/scalar.go:228: buildComparison()
github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/scalar.go:91: buildScalar()
github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/scalar.go:206: buildBoolean()
github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/scalar.go:91: buildScalar()
github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/scalar.go:175: buildBoolean()
github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/scalar.go:91: buildScalar()
github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/relational.go:542: buildSelect()
github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/relational.go:196: buildRelational()
github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/relational.go:579: buildProject()
github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/relational.go:199: buildRelational()
github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/builder.go:142: build()
github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/builder.go:111: Build()
github.com/cockroachdb/cockroach/pkg/sql/plan_opt.go:178: makeOptimizerPlan()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:796: makeExecPlan()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:686: dispatchToExecutionEngine()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:476: execStmtInOpenState()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:95: execStmt()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:1368: execCmd()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:1297: run()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:476: ServeConn()
github.com/cockroachdb/cockroach/pkg/sql/pgwire/conn.go:594: func1()
runtime/asm_amd64.s:1357: goexit()

I found this issue based on commit 51e8960.

Metadata

Metadata

Assignees

Labels

C-bugCode not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions