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-180321-01-diff (application/octet-stream)
2018-03-20 18:38 GMT+01:00 Pavel Stehule <pavel.stehule@gmail.com>: > Hi > > I am sending new update. The code is less ugly, and the current > functionality is +/- final for first stage. It should be good enough for > playing and testing this concept. > > What is supported: > > 1. scalar, composite and array variables > 2. composite can be defined on place or some composite type can be used > 3. variable, or any field of variable, can have defined default value > 4. variable is database object - the access rights are required > 5. the values are stored in binary form with defined typmod > > An usage is very simple: > > postgres=# create variable foo as numeric default 0; > CREATE VARIABLE > postgres=# select foo; > ┌─────┐ > │ foo │ > ╞═════╡ > │ 0 │ > └─────┘ > (1 row) > > postgres=# let foo = pi(); > LET > postgres=# select foo; > ┌──────────────────┐ > │ foo │ > ╞══════════════════╡ > │ 3.14159265358979 │ > └──────────────────┘ > (1 row) > > postgres=# create variable boo as (x numeric default 0, y numeric default > 0); > CREATE VARIABLE > postgres=# let boo.x = 100; > LET > postgres=# select boo; > ┌─────────┐ > │ boo │ > ╞═════════╡ > │ (100,0) │ > └─────────┘ > (1 row) > > postgres=# select boo.x; > ┌─────┐ > │ x │ > ╞═════╡ > │ 100 │ > └─────┘ > (1 row) > > Please try it. > small fix - support for SQL functions > > Regards > > Pavel >