cockroachdb / cockroachdb/cockroach
plpgsql: support accessing variables via `label.var_name` pattern
- Dominant language
- Go
- Stars
- 32.5k
- Forks
- 4.1k
- PR merge metrics
- PR metrics pending
Description
This works in Postgres:
```sql
DROP PROCEDURE IF EXISTS p;
CREATE PROCEDURE p() LANGUAGE PLpgSQL AS $$
BEGIN
<>
DECLARE
v text := 'test';
BEGIN
RAISE NOTICE '%', label.v;
END;
END;
$$;
```
Note that support for this access pattern makes sense the most when variable shadowing is allowed (#117508).
Relatedly, it's possible to access the input arguments via `routine-name.arg-name` pattern:
```sql
DROP PROCEDURE IF EXISTS p;
CREATE PROCEDURE p(param1 INT, param2 TEXT) LANGUAGE PLpgSQL AS $$
BEGIN
RAISE NOTICE '% %', p.param1, p.param2;
END;
$$;
CALL p(3, 'foo');
```
Jira issue: CRDB-37800
Contributor guide
Assessment
This issue has not been assessed yet.