cockroachdb / cockroachdb/cockroach
sql: misleading error message when comparing tuples
- Dominant language
- Go
- Stars
- 32.5k
- Forks
- 4.1k
- PR merge metrics
- PR metrics pending
Description
**Describe the problem**
The latest version of the CockroachDB (d0430041837) shows `Internal Error` when executing the following query:
```sql
SELECT * FROM (VALUES (ARRAY[(), ()]), (ARRAY[(), ()])) AS x WHERE x = (());
```
**To Reproduce**
Here is the detail steps to reproduce the bug.
1. In operating system Ubuntu 20.04, download the CockroachDB source code from the github source.
2. Use the latest version of the CockroachDB code (tested version: d0430041837)
3. Directly `make install` in the root repository folder.
4. Run `./cockroach demo`, and then paste the PoC query to the cockroach cli environment.
5. Observe the `Internal Error` and log the stack information.
**Expected behavior**
The SELECT statement should return semantic error indicating that the tuple types are not matched.
**Additional data / screenshots**
Here is the outputted stack trace:
```
ERROR: internal error: tuple length mismatch
SQLSTATE: XX000
DETAIL: stack trace:
github.com/cockroachdb/cockroach/pkg/sql/opt/norm/comp_funcs.go:63: NormalizeTupleEquality()
github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:13179: ConstructEq()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/scalar.go:849: constructComparison()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/scalar.go:322: buildScalar()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/util.go:463: resolveAndBuildScalar()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1179: buildWhere()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1061: buildSelectClause()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1006: buildSelectStmtWithoutParens()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:975: func1()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/with.go:117: processWiths()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:974: buildSelect()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/builder.go:305: buildStmt()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/builder.go:252: buildStmtAtRoot()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/builder.go:226: Build()
github.com/cockroachdb/cockroach/pkg/sql/plan_opt.go:570: buildExecMemo()
github.com/cockroachdb/cockroach/pkg/sql/plan_opt.go:237: makeOptimizerPlan()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:1518: makeExecPlan()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:1125: dispatchToExecutionEngine()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:737: execStmtInOpenState()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:130: func1()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:2514: execWithProfiling()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:129: execStmt()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:1955: func1()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:1960: execCmd()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:1878: run()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:834: ServeConn()
github.com/cockroachdb/cockroach/pkg/sql/pgwire/conn.go:728: func1()
runtime/asm_arm64.s:1165: goexit()
HINT: You have encountered an unexpected error.
```
**Environment:**
- CockroachDB version: v23.1.0-alpha
- Server OS: Ubuntu 20.04 LTS
- Client app: CockroachDB demo command. (`./cockroach demo`)
- Detailed CockroachDB version output:
```
cockroach version details:
Build Tag: v23.1.0-alpha.1-312-gd043004183
Build Time: 2022/12/22 19:40:48
Distribution: CCL
Platform: linux arm64 (aarch64-linux-gnu)
Go Version: go1.19
C Compiler: gcc 9.4.0
Build Commit ID: d04300418378d5254fd8c4cdad9f9dcb73fadefe
Build Type: development
```
**Additional context**
The Internal Error problem is reproducible on version `v23.1 alpha`, `v22.2.1 Production Releases` and `v22.1.*`.
Jira issue: CRDB-22722
Contributor guide
Assessment
This issue has not been assessed yet.