cockroachdb / cockroachdb/cockroach

sql: mismatched argument expression and desired parameter type for routine

Open
#139,910 2 comments 0 reactions 0 assignees View on GitHub
A-sql-routine branch-master branch-release-24.2 branch-release-24.3 branch-release-25.1 C-test-failure O-robot P-3 T-sql-queries
Dominant language
Go
Stars
32.5k
Forks
4.1k
PR merge metrics
PR metrics pending

Description

Reduced repro:
```sql
CREATE TABLE seed(_float8 FLOAT);
CREATE FUNCTION func_1(IN p0 seed) RETURNS RECORD LANGUAGE SQL AS $$ SELECT 1; $$;
INSERT INTO seed (_float8)
WITH cte (c1, c2) AS (SELECT * FROM (VALUES (func_1(NULL::RECORD), (SELECT 1 FROM unknown_table LIMIT 1))))
SELECT 0.1 FROM cte;
```
results in
```
RROR: internal error: argument expression has type RECORD, need type USER DEFINED RECORD: public.seed, assignment cast isn't possible
SQLSTATE: XX000
DETAIL: stack trace:
pkg/sql/opt/optbuilder/routine.go:327: buildRoutine()
pkg/sql/opt/optbuilder/routine.go:70: buildUDF()
pkg/sql/opt/optbuilder/scalar.go:548: buildFunction()
pkg/sql/opt/optbuilder/scalar.go:329: buildScalar()
pkg/sql/opt/optbuilder/values.go:76: buildValuesClause()
pkg/sql/opt/optbuilder/select.go:1157: buildSelectStmtWithoutParens()
...
```
The bug reproduces on 24.2.4 and 24.3.3, but not 24.1.7 (where it gets "relation "unknown_table" does not exist").

Jira issue: CRDB-46904

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.