cockroachdb / cockroachdb/cockroach
optbuilder: internal error with UDF returning REGTYPE
- 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
Assessment
This issue has not been assessed yet.