cockroachdb / cockroachdb/cockroach

sql: Internal Error when casting return value from INTERNAL functions

Open
#97,302 2 comments 0 reactions 0 assignees View on GitHub
C-bug O-community T-sql-queries X-blathers-triaged
Dominant language
Go
Stars
32.5k
Forks
4.1k
PR merge metrics
PR metrics pending

Description

**Describe the problem**

The latest alpha version of the CockroachDB (`v23.1.0-alpha.2`) encounters Internal Error when executing the following query.

```sql
SELECT * FROM LATERAL ROWS FROM (CAST(CRDB_INTERNAL.SHOW_CREATE_ALL_TABLES('anyRandomText') AS INT));
```

**To Reproduce**

1. In operating system Ubuntu 20.04 LTS, download the CockroachDB source code from the github source.
2. Download the pre-build CockroachDB binaries (v22.2.3 and v23.1.0 alpha) from [link](https://www.cockroachlabs.com/docs/releases/index.html)
3. Run `./cockroach demo`, and then paste the PoC query to the cockroach cli environment.
4. Observe the `Internal Error` and log the stack information.

**Expected behavior**
The `SELECT` statement should return empty result.

**Additional data / screenshots**

Here is the stack trace from `v23.1.0-alpha.2`:

```
ERROR: internal error: generator functions cannot be evaluated as scalars
SQLSTATE: XX000
DETAIL: stack trace:
github.com/cockroachdb/cockroach/pkg/sql/sem/builtins/generator_builtins.go:645: func357()
github.com/cockroachdb/cockroach/pkg/sql/sem/eval/expr.go:468: EvalFuncExpr()
github.com/cockroachdb/cockroach/bazel-out/k8-opt/bin/pkg/sql/sem/tree/eval_expr_generated.go:276: Eval()
github.com/cockroachdb/cockroach/pkg/sql/sem/eval/expr.go:180: EvalCastExpr()
github.com/cockroachdb/cockroach/bazel-out/k8-opt/bin/pkg/sql/sem/tree/eval_expr_generated.go:96: Eval()
github.com/cockroachdb/cockroach/pkg/sql/sem/eval/expr.go:26: Expr()
github.com/cockroachdb/cockroach/pkg/sql/execinfrapb/pkg/sql/execinfrapb/expr.go:248: Eval()
github.com/cockroachdb/cockroach/pkg/sql/rowexec/project_set.go:241: nextGeneratorValues()
github.com/cockroachdb/cockroach/pkg/sql/rowexec/project_set.go:292: Next()
github.com/cockroachdb/cockroach/pkg/sql/colexec/columnarizer.go:243: Next()
github.com/cockroachdb/cockroach/pkg/sql/colflow/stats.go:118: next()
github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:92: CatchVectorizedRuntimeError()
github.com/cockroachdb/cockroach/pkg/sql/colflow/stats.go:126: Next()
github.com/cockroachdb/cockroach/pkg/sql/colflow/flow_coordinator.go:252: nextAdapter()
github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:92: CatchVectorizedRuntimeError()
github.com/cockroachdb/cockroach/pkg/sql/colflow/flow_coordinator.go:256: next()
github.com/cockroachdb/cockroach/pkg/sql/colflow/flow_coordinator.go:294: Run()
github.com/cockroachdb/cockroach/pkg/sql/colflow/vectorized_flow.go:309: Run()
github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:857: Run()
github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:1793: PlanAndRun()
github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:1544: PlanAndRunAll()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:1642: execWithDistSQLEngine()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:1263: dispatchToExecutionEngine()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:745: execStmtInOpenState()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:131: func1()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:2530: execWithProfiling()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:130: execStmt()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:1969: func1()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:1974: execCmd()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:1892: run()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:861: ServeConn()
github.com/cockroachdb/cockroach/pkg/sql/pgwire/conn.go:731: func1()

HINT: You have encountered an unexpected error.
```

**Environment:**
- CockroachDB version: v23.1.0-alpha.2
- 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.2
Build Time: 2023/02/13 18:32:33
Distribution: CCL
Platform: linux amd64 (x86_64-pc-linux-gnu)
Go Version: go1.19.4
C Compiler: gcc 6.5.0
Build Commit ID: eb158026c50d8fa856e42f928d844831ea9e6b28
Build Type: release
```

**Additional context**

The bug can also be reproduced in `v23.1.0-alpha.2`, `v23.1.0-alpha.1`, `v22.2.3`, `v22.1.13` and `v21.2.17`. I haven't tested versions before `v21.2.17`.

Jira issue: CRDB-24625

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.