[24.2.1] - 2024-03-20
SQL
- Introduce stored procedures:
```sql
CREATE PROCEDURE my_proc(int, text)
LANGUAGE SQL
AS $$
INSERT INTO my_table VALUES($1, $2)
$$;
CALL my_proc(42, 'the answer');
SELECT * FROM my_table;
```
- The following new queries are supported:
```
CREATE PROCEDURE
DROP PROCEDURE
CALL PROCEDURE
ALTER PROCEDURE ... RENAME TO
GRANT ... ON PROCEDURE
REVOKE ... ON PROCEDURE
ALTER USER ... RENAME TO
```
Security
- All inter-instance communications now occur under `pico_service`
builtin user. The user is secured with a password in a file provided
in `picodata run --service-password-file` command-line option
- New requirements on password complexity — enforce uppercase,
lowercase, digits, special symbols
Implementation details
- Make RPC API the main communication interface, see [Architecture — RPC
API]. Lua API is deprecated and will be removed soon
[Architecture — RPC API]:
https://docs.picodata.io/picodata/devel/architecture/rpc_api/
Compatibility
- System table `_pico_role` was deleted
- System table `_pico_user` format changed, a new field `type` was added
(_string_, `"user" | "role"`)
- The current version is NOT compatible with prior releases. It cannot
be started with the old snapshots