cockroachdb / cockroachdb/cockroach

optbuilder: internal error with UDF returning REGTYPE

Open
#123,023 0 comments 0 reactions 0 assignees View on GitHub
A-sql-routine C-bug O-qa T-sql-queries
Dominant language
Go
Stars
32.5k
Forks
4.1k
PR merge metrics
PR metrics pending

Description

```sql
CREATE TABLE seed (col REGTYPE);

CREATE FUNCTION f() RETURNS REGPROCEDURE LANGUAGE SQL AS $$
UPDATE seed AS t SET col = t.col RETURNING col
$$;

WITH cte(col1) AS (SELECT * FROM (VALUES (f())))
SELECT unknown_table.unknown_col FROM cte;
```
results in
```
ERROR: internal error: invalid cast should have been caught earlier
SQLSTATE: XX000
DETAIL: stack trace:
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/routine.go:672: maybeAddRoutineAssignmentCasts()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/routine.go:547: finishBuildLastStmt()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/routine.go:403: buildRoutine()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/routine.go:64: buildUDF()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/scalar.go:551: buildFunction()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/scalar.go:332: buildScalar()
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/values.go:81: buildValuesClause()
...
```
whereas a regular error is expected.

Jira issue: CRDB-38168

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.