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-20180914-01.patch (text/x-patch) patch
út 4. 9. 2018 v 9:21 odesílatel Dean Rasheed <dean.a.rasheed@gmail.com> napsal: > AFAICS this patch does nothing to consider parallel safety -- that is, > as things stand, a variable is allowed in a query that may be > parallelised, but its value is not copied to workers, leading to > incorrect results. For example: > > create table foo(a int); > insert into foo select * from generate_series(1,1000000); > create variable zero int; > let zero = 0; > > explain (costs off) select count(*) from foo where a%10 = zero; > > QUERY PLAN > ----------------------------------------------- > Finalize Aggregate > -> Gather > Workers Planned: 2 > -> Partial Aggregate > -> Parallel Seq Scan on foo > Filter: ((a % 10) = zero) > (6 rows) > > select count(*) from foo where a%10 = zero; > > count > ------- > 38037 -- Different random result each time, should be 100,000 > (1 row) > > Thoughts? > This issue should be fixed in attached patch (and more others). The code is more cleaner now, there are more tests, and documentation is mostly complete. I am sorry - my English is not good. New features: o ON COMMIT DROP and ON TRANSACTION END RESET -- remove temp variable on commit, reset variable on transaction end (commit, rollback) o LET var = DEFAULT -- reset specified variable Regards Pavel > Regards, > Dean >