Re: [HACKERS] proposal: schema variables
Pavel Stehule <pavel.stehule@gmail.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Move WAL sequence code into its own file
- a87987cafca6 19 (unreleased) cited
-
Add ExplainState argument to pg_plan_query() and planner().
- c83ac02ec730 19 (unreleased) cited
-
Don't include access/htup_details.h in executor/tuptable.h
- 1a8b5b11e48a 19 (unreleased) cited
-
Refactor to avoid code duplication in transformPLAssignStmt.
- b0fb2c6aa5a4 19 (unreleased) cited
-
Avoid including commands/dbcommands.h in so many places
- 325fc0ab14d1 19 (unreleased) cited
-
Restrict psql meta-commands in plain-text dumps.
- 71ea0d679543 19 (unreleased) cited
-
Split func.sgml into more manageable pieces
- 4e23c9ef65ac 19 (unreleased) cited
-
Fix squashing algorithm for query texts
- 0f65f3eec478 18.0 cited
-
EXPLAIN: Always use two fractional digits for row counts.
- 95dbd827f2ed 18.0 cited
-
Preliminary refactoring of plpgsql expression construction.
- a654af21ae52 18.0 cited
-
plpgsql: pure parser and reentrant scanner
- 7b27f5fd36cb 18.0 cited
-
Add some sanity checks in executor for query ID reporting
- 24f520594809 18.0 cited
-
Fix misleading error message context
- 4af123ad45bd 18.0 cited
-
Add macros for looping through a List without a ListCell.
- 14dd0f27d7cd 17.0 cited
Attachments
- schema-variables-poc-180308-01-diff (application/octet-stream)
Hi 2018-02-07 7:34 GMT+01:00 Pavel Stehule <pavel.stehule@gmail.com>: > Hi > > updated patch with your changes in documentation and pg_dump (initial) > support > > Main issue of this patch is storage. We can reuse local buffers used for > temp tables. But it does allocation by 8KB and it creates temp files for > every object. That is too big overhead. Storing just in session memory is > too simple - then there should be lot of new code used, when variable will > be dropped. > > I have ideas how to allow work with mix of scalar and composite types - so > it will be next step of this prototype. > > Regards > > Pavel > new update - rebased, + some initial support for composite values on right side and custom types, arrays are supported too. omega=# CREATE VARIABLE xx AS (a int, b numeric); CREATE VARIABLE omega=# LET xx = (10, 20)::xx; LET omega=# SELECT xx; +---------+ | xx | +---------+ | (10,20) | +---------+ (1 row) omega=# SELECT xx.a + xx.b; +----------+ | ?column? | +----------+ | 30 | +----------+ (1 row) omega=# \d xx schema variable "public.xx" +--------+---------+ | Column | Type | +--------+---------+ | a | integer | | b | numeric | +--------+---------+ Regards Pavel