cockroachdb / cockroachdb/cockroach
sql: internal error when querying with numeric table references (table ID) with column ID references
- Dominant language
- Go
- Stars
- 32.5k
- Forks
- 4.1k
- PR merge metrics
- PR metrics pending
Description
We have a "numeric table reference" syntax that allows querying a table by its ID. It also allows specifying specific columns to select from the table, by ID.
For example:
```
defaultdb> CREATE TABLE t (a INT PRIMARY KEY, b INT);
CREATE TABLE
defaultdb> INSERT INTO t VALUES (1, 10);
INSERT 0 1
defaultdb> SELECT * FROM [104(2) AS _];
b
------
10
(1 row)
```
This syntax causes internal errors when querying for a virtual computed column without including any columns it depends on.
```
defaultdb> CREATE TABLE t (a INT PRIMARY KEY, b INT AS (a+10) VIRTUAL);
CREATE TABLE
defaultdb> INSERT INTO t VALUES (1);
INSERT 0 1
defaultdb> SELECT * FROM t;
a | b
----+-----
1 | 11
(1 row)
defaultdb> SELECT * FROM [104(2) AS _];
ERROR: internal error: scanned virtual column depends on non-scanned column
SQLSTATE: XX000
DETAIL: stack trace:
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:661: func1()
github.com/cockroachdb/cockroach/pkg/sql/opt/colset.go:83: func1()
github.com/cockroachdb/cockroach/pkg/util/pkg/util/fast_int_set.go:206: ForEach()
github.com/cockroachdb/cockroach/pkg/sql/opt/colset.go:83: ForEach()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:658: buildScan()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:417: buildScanFromTableRef()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:226: buildDataSource()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:66: buildDataSource()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1227: buildFromTablesRightDeep()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1204: buildFromTables()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1131: buildFrom()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1052: buildSelectClause()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1000: buildSelectStmtWithoutParens()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:969: func1()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/with.go:116: processWiths()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:968: 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:561: buildExecMemo()
github.com/cockroachdb/cockroach/pkg/sql/plan_opt.go:232: makeOptimizerPlan()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:1459: makeExecPlan()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:1067: dispatchToExecutionEngine()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:689: execStmtInOpenState()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:131: func1()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:2412: execWithProfiling()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:130: execStmt()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:1928: func1()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:1932: execCmd()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:1854: run()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:832: ServeConn()
github.com/cockroachdb/cockroach/pkg/sql/pgwire/conn.go:728: func1()
```
Jira issue: CRDB-23300
Contributor guide
Assessment
This issue has not been assessed yet.