cockroachdb / cockroach

CockroachDB — the cloud native, distributed SQL database designed for high availability, effortless scale, and control over data placement.
https://www.cockroachlabs.com
Other
29.95k stars 3.79k forks source link

sql: internal error comparing record types with different numbers of columns #114847

Open rharding6373 opened 10 months ago

rharding6373 commented 10 months ago

Repro:

create type testtype1 as (a int, b int);
create type testtype5 as (a int);
select row(1, 2)::testtype1 < row(1)::testtype5;

Stack trace:

ERROR: internal error: runtime error: index out of range [1] with length 1
SQLSTATE: XX000
DETAIL: stack trace:
github.com/cockroachdb/cockroach/pkg/util/errorutil/catch.go:29: ShouldCatch()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/builder.go:211: func1()
GOROOT/src/runtime/panic.go:914: gopanic()
GOROOT/src/runtime/panic.go:114: goPanicIndex()
github.com/cockroachdb/cockroach/pkg/sql/sem/eval/binary_op.go:175: EvalCompareTupleOp()
github.com/cockroachdb/cockroach/bazel-out/darwin-fastbuild/bin/pkg/sql/sem/tree/eval_op_generated.go:305: Eval()
github.com/cockroachdb/cockroach/pkg/sql/sem/eval/binary_op.go:42: BinaryOp()
github.com/cockroachdb/cockroach/pkg/sql/opt/norm/fold_constants_funcs.go:532: FoldComparison()
github.com/cockroachdb/cockroach/bazel-out/darwin-fastbuild/bin/pkg/sql/opt/norm/factory.og.go:14356: ConstructLt()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/scalar.go:721: constructComparison()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/scalar.go:321: buildScalar()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/project.go:206: buildProjectionList()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1236: buildSelectClause()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1141: buildSelectStmtWithoutParens()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1099: func1()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/with.go:116: processWiths()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1098: buildSelect()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/builder.go:341: buildStmt()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/builder.go:285: buildStmtAtRootWithScope()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/builder.go:266: buildStmtAtRoot()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/builder.go:245: Build()
github.com/cockroachdb/cockroach/pkg/sql/plan_opt.go:577: buildExecMemo()
github.com/cockroachdb/cockroach/pkg/sql/plan_opt.go:240: makeOptimizerPlan()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:2185: makeExecPlan()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:1677: dispatchToExecutionEngine()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:1092: execStmtInOpenState()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:145: func1()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:3277: execWithProfiling()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:144: execStmt()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:2227: func1()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:2232: execCmd()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:2149: run()

HINT: You have encountered an unexpected error.

Please check the public issue tracker to check whether this problem is
already tracked. If you cannot find it there, please report the error
with details by creating a new issue.

If you would rather not post publicly, please contact us directly
using the support form.

We appreciate your feedback.

postgres returns the following error:

ERROR:  cannot compare record types with different numbers of columns  

Found in pg_regress rowtypes

Jira issue: CRDB-33713

DrewKimball commented 9 months ago

Just need to convert internal to expected error, so assigning p3.