Re: Re: 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
- v20241229-0022-pg_restore-A-variable.patch (text/x-patch) patch v20241229-0022
- v20241229-0019-expression-with-session-variables-can-be-inlined.patch (text/x-patch) patch v20241229-0019
- v20241229-0021-transactional-variables.patch (text/x-patch) patch v20241229-0021
- v20241229-0018-plpgsql-implementation-for-LET-statement.patch (text/x-patch) patch v20241229-0018
- v20241229-0020-this-patch-changes-error-message-column-doesn-t-exis.patch (text/x-patch) patch v20241229-0020
- v20241229-0017-allow-parallel-execution-queries-with-session-variab.patch (text/x-patch) patch v20241229-0017
- v20241229-0016-allow-read-an-value-of-session-variable-directly-fro.patch (text/x-patch) patch v20241229-0016
- v20241229-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch (text/x-patch) patch v20241229-0015
- v20241229-0014-Implementation-of-DEFAULT-clause-default-expressions.patch (text/x-patch) patch v20241229-0014
- v20241229-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch (text/x-patch) patch v20241229-0013
- v20241229-0012-implementation-of-temporary-session-variables.patch (text/x-patch) patch v20241229-0012
- v20241229-0011-PREPARE-LET-support.patch (text/x-patch) patch v20241229-0011
- v20241229-0010-EXPLAIN-LET-support.patch (text/x-patch) patch v20241229-0010
- v20241229-0009-dynamic-check-of-usage-of-session-variable-fences.patch (text/x-patch) patch v20241229-0009
- v20241229-0008-variable-fence-syntax-support-and-variable-fence-usa.patch (text/x-patch) patch v20241229-0008
- v20241229-0007-GUC-session_variables_ambiguity_warning.patch (text/x-patch) patch v20241229-0007
- v20241229-0006-plpgsql-tests.patch (text/x-patch) patch v20241229-0006
- v20241229-0005-memory-cleaning-after-DROP-VARIABLE.patch (text/x-patch) patch v20241229-0005
- v20241229-0004-DISCARD-VARIABLES.patch (text/x-patch) patch v20241229-0004
- v20241229-0003-function-pg_session_variables-for-cleaning-tests.patch (text/x-patch) patch v20241229-0003
- v20241229-0002-Storage-for-session-variables-and-SQL-interface.patch (text/x-patch) patch v20241229-0002
- v20241229-0001-Enhancing-catalog-for-support-session-variables-and-.patch (text/x-patch) patch v20241229-0001
Hi
ne 29. 12. 2024 v 3:49 odesílatel jian he <jian.universality@gmail.com>
napsal:
> On Sun, Dec 29, 2024 at 5:50 AM Pavel Stehule <pavel.stehule@gmail.com>
> wrote:
> >
> > Hi
> >
> >
> >> ------------------<<>>>---------------
> >> + else
> >> + {
> >> + /* the last field of list can be star too */
> >> + Assert(IsA(field2, A_Star));
> >> +
> >> + /*
> >> + * In this case, the field1 should be variable name. But
> >> + * direct unboxing of composite session variables is not
> >> + * supported now, and then we don't need to try lookup
> >> + * related variable.
> >> + *
> >> + * Unboxing is supported by syntax (var).*
> >> + */
> >> + return InvalidOid;
> >> + }
> >> I don't fully understand the above comments,
> >
> >
> > The parser allows only two syntaxes - identifier.identifier or
> identifier.star. Second
> > syntax is not supported by session variables, and then I didn't try to
> search for the variable.
> > Some users can be confused by similar syntaxes identifier.* and
> (identifier).* Only
> > second syntax is composite unboxing, and only second syntax is supported
> for
> > session variables.
> >
> > Maybe the note about unboxing is messy there?
> >
> >> add
> >> `elog(INFO, "%s:%d called", __FILE__, __LINE__); ` within the ELSE
> branch.
> >> Then I found out the ELSE branch doesn't have coverage tests.
> >
> >
> > I don't understand this comment? I don't use elog(INFO anywhere
> >
> >
>
> sorry for confusion, i mean,
> i added " elog(INFO", the regress test is still successful,
> therefore it means the above ELSE branch code doesn't have coverage tests.
>
yes, force this case can be little bit tricky
a) the variable should not be shadowed,
or session_variables_ambiguity_warning should be on
b) the transformColumnRef should be executed and the star symbol should be
in the list - it is possible for aggregate functions
SELECT count(v.*) FROM foo
I wrote requested regress tests
Regards
Pavel