agora inbox for pgsql-hackers@postgresql.org
help / color / mirror / Atom feedFrom: Justin Pryzby <pryzbyj@telsasoft.com>
Subject: [PATCH 3/3] Justin's contribution
Date: Fri, 5 Nov 2021 18:06:43 -0500
---
doc/src/sgml/advanced.sgml | 2 +-
doc/src/sgml/ref/create_variable.sgml | 12 ++---
doc/src/sgml/ref/grant.sgml | 4 +-
doc/src/sgml/ref/let.sgml | 4 +-
src/backend/catalog/aclchk.c | 4 +-
src/backend/catalog/namespace.c | 21 ++++----
src/backend/catalog/pg_variable.c | 14 ++---
src/backend/commands/schemavariable.c | 51 +++++++++----------
src/backend/executor/execExpr.c | 4 +-
src/backend/executor/execMain.c | 4 +-
src/backend/executor/execParallel.c | 10 ++--
src/backend/optimizer/plan/setrefs.c | 5 +-
src/backend/parser/analyze.c | 8 +--
src/backend/parser/parse_expr.c | 20 ++++----
src/bin/psql/tab-complete.c | 2 +-
src/include/catalog/pg_variable.h | 2 +-
src/include/nodes/pathnodes.h | 2 +-
src/include/nodes/primnodes.h | 2 +-
src/pl/plpgsql/src/pl_exec.c | 10 ++--
.../regress/expected/schema_variables.out | 2 +-
src/test/regress/sql/schema_variables.sql | 2 +-
21 files changed, 92 insertions(+), 93 deletions(-)
diff --git a/doc/src/sgml/advanced.sgml b/doc/src/sgml/advanced.sgml
index bd4733c0bb..6ae3e7b281 100644
--- a/doc/src/sgml/advanced.sgml
+++ b/doc/src/sgml/advanced.sgml
@@ -714,7 +714,7 @@ SELECT name, elevation
<para>
Schema variables are database objects that can hold a value.
- Schema variables, like relations, exist within a schema and the access is
+ Schema variables, like relations, exist within a schema and their access is
controlled via <command>GRANT</command> and <command>REVOKE</command> commands.
A schema variable can be created by the <command>CREATE VARIABLE</command> command.
</para>
diff --git a/doc/src/sgml/ref/create_variable.sgml b/doc/src/sgml/ref/create_variable.sgml
index 859c0bc2f1..977bd5511a 100644
--- a/doc/src/sgml/ref/create_variable.sgml
+++ b/doc/src/sgml/ref/create_variable.sgml
@@ -44,7 +44,7 @@ CREATE [ { TEMPORARY | TEMP } ] [ IMMUTABLE ] VARIABLE [ IF NOT EXISTS ] <replac
The value of a schema variable is local to the current session. Retrieving
a variable's value returns either a NULL or a default value, unless its value
is set to something else in the current session with a LET command. The content
- of a variable is not transactional. This is the same as in regular variables in PL languages.
+ of a variable is not transactional. This is the same as regular variables in PL languages.
</para>
<para>
@@ -101,7 +101,7 @@ CREATE [ { TEMPORARY | TEMP } ] [ IMMUTABLE ] VARIABLE [ IF NOT EXISTS ] <replac
<para>
The <literal>COLLATE</literal> clause assigns a collation to
the variable (which must be of a collatable data type).
- If not specified, the variable data type's default collation is used.
+ If not specified, the data type's default collation is used.
</para>
</listitem>
</varlistentry>
@@ -110,10 +110,10 @@ CREATE [ { TEMPORARY | TEMP } ] [ IMMUTABLE ] VARIABLE [ IF NOT EXISTS ] <replac
<term><literal>NOT NULL</literal></term>
<listitem>
<para>
- The <literal>NOT NULL</literal> clause forbids to set the variable to
+ The <literal>NOT NULL</literal> clause forbids setting the variable to
a null value. A variable created as NOT NULL and without an explicitly
declared default value cannot be read until it is initialized by a LET
- command. This obliges the user to explicitly initialize the variable
+ command. This requires the user to explicitly initialize the variable
content before reading it.
</para>
</listitem>
@@ -134,10 +134,10 @@ CREATE [ { TEMPORARY | TEMP } ] [ IMMUTABLE ] VARIABLE [ IF NOT EXISTS ] <replac
<listitem>
<para>
The <literal>ON COMMIT DROP</literal> clause specifies the behaviour
- of a temporary schema variable at transaction commit. With this clause the
+ of a temporary schema variable at transaction commit. With this clause, the
variable is dropped at commit time. The clause is only allowed
for temporary variables. The <literal>ON TRANSACTION END RESET</literal>
- clause enforces the variable to be reset to its default value when
+ clause causes the variable to be reset to its default value when
the transaction is committed or rolled back.
</para>
</listitem>
diff --git a/doc/src/sgml/ref/grant.sgml b/doc/src/sgml/ref/grant.sgml
index 6586e412c1..2bf8eb9d54 100644
--- a/doc/src/sgml/ref/grant.sgml
+++ b/doc/src/sgml/ref/grant.sgml
@@ -210,7 +210,7 @@ GRANT { READ | WRITE | ALL [ PRIVILEGES ] }
<term><literal>READ</literal></term>
<listitem>
<para>
- Allows to read a schema variable.
+ Allows reading of a schema variable.
</para>
</listitem>
</varlistentry>
@@ -219,7 +219,7 @@ GRANT { READ | WRITE | ALL [ PRIVILEGES ] }
<term><literal>WRITE</literal></term>
<listitem>
<para>
- Allows to set a schema variable's content.
+ Allows setting the value of a schema variable.
</para>
</listitem>
</varlistentry>
diff --git a/doc/src/sgml/ref/let.sgml b/doc/src/sgml/ref/let.sgml
index d4396cad3c..0abb995f5a 100644
--- a/doc/src/sgml/ref/let.sgml
+++ b/doc/src/sgml/ref/let.sgml
@@ -35,7 +35,7 @@ LET <replaceable class="parameter">schema_variable</replaceable> = DEFAULT
<title>Description</title>
<para>
- The <command>LET</command> command updates the specified schema variable value.
+ The <command>LET</command> command assigns a value to the specified schema variable.
</para>
</refsect1>
@@ -57,7 +57,7 @@ LET <replaceable class="parameter">schema_variable</replaceable> = DEFAULT
<term><literal>sql_expression</literal></term>
<listitem>
<para>
- An SQL expression. The result is cast into the schema variable's type.
+ An SQL expression. The result is cast to the data type of the schema variable.
</para>
</listitem>
</varlistentry>
diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index 715208af23..c794e3f4b1 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -3325,7 +3325,7 @@ ExecGrant_Variable(InternalGrant *istmt)
tuple = SearchSysCache1(VARIABLEOID, ObjectIdGetDatum(varId));
if (!HeapTupleIsValid(tuple))
- elog(ERROR, "cache lookup failed for schema variables %u", varId);
+ elog(ERROR, "cache lookup failed for schema variable %u", varId);
pg_variable_tuple = (Form_pg_variable) GETSTRUCT(tuple);
@@ -5707,7 +5707,7 @@ pg_statistics_object_ownercheck(Oid stat_oid, Oid roleid)
}
/*
- * Ownership check for a schema variables (specified by OID).
+ * Ownership check for a schema variable (specified by OID).
*/
bool
pg_variable_ownercheck(Oid db_oid, Oid roleid)
diff --git a/src/backend/catalog/namespace.c b/src/backend/catalog/namespace.c
index 789f41876c..a241dd6330 100644
--- a/src/backend/catalog/namespace.c
+++ b/src/backend/catalog/namespace.c
@@ -2951,7 +2951,7 @@ LookupVariable(const char *nspname, const char *varname, bool missing_ok)
if (nspname)
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_OBJECT),
- errmsg("variable \"%s\".\"%s\" does not exist",
+ errmsg("variable \"%s.%s\" does not exist",
nspname, varname)));
else
ereport(ERROR,
@@ -2964,10 +2964,9 @@ LookupVariable(const char *nspname, const char *varname, bool missing_ok)
}
/*
- * The source list holds names with indirection expressions used
- * as left part of LET statement. Following routine makes new
- * list with only initial strings (names) - without indirection
- * expressions.
+ * The input list contains names with indirection expressions used as the left
+ * part of LET statement. The following routine returns a new list with only
+ * initial strings (names) - without indirection expressions.
*/
List *
NamesFromList(List *names)
@@ -2993,9 +2992,9 @@ NamesFromList(List *names)
/*
* IdentifyVariable
*
- * Returns oid of not ambigonuous variable specified by qualified path
- * or InvalidOid. When the path is ambigonuous, then not_uniq flag is
- * is true.
+ * Returns the oid of an unambiguous variable specified by the qualified path,
+ * or InvalidOid. When the path is ambiguous, then not_uniq flag is set to
+ * true.
*
* XXX Do we need the not_uniq flag, when we return InvalidOid anyway?
* XXX Maybe use not_unique, it's not much longer.
@@ -3093,7 +3092,7 @@ IdentifyVariable(List *names, char **attrname, bool *not_uniq)
* a.b.c can mean "catalog"."schema"."variable" or
* "schema"."variable"."field", Check both variants, and returns
* InvalidOid with not_uniq flag, when both interpretations are
- * possible. When third node is star, then only possible
+ * possible. When third node is star, the only possible
* interpretation is "schema"."variable"."*".
*/
varoid_without_attr = LookupVariable(b, c, true);
@@ -3115,7 +3114,7 @@ IdentifyVariable(List *names, char **attrname, bool *not_uniq)
*attrname = NULL;
/*
- * We in this case a "a" is used as catalog name, check it.
+ * In this case, "a" is used as catalog name - check it.
*/
if (strcmp(a, get_database_name(MyDatabaseId)) != 0)
ereport(ERROR,
@@ -3147,7 +3146,7 @@ IdentifyVariable(List *names, char **attrname, bool *not_uniq)
c = strVal(field3);
/*
- * We in this case a "a" is used as catalog name, check it.
+ * In this case, "a" is used as catalog name - check it.
*/
if (strcmp(a, get_database_name(MyDatabaseId)) != 0)
ereport(ERROR,
diff --git a/src/backend/catalog/pg_variable.c b/src/backend/catalog/pg_variable.c
index 451b57a0b7..eb1ce6d0fd 100644
--- a/src/backend/catalog/pg_variable.c
+++ b/src/backend/catalog/pg_variable.c
@@ -74,8 +74,8 @@ to_eoxaction(VariableEOXActionCodes code)
}
/*
- * Returns name of schema variable. When variable is not on path,
- * then the name is qualified.
+ * Returns name of schema variable. When the variable is not in the path,
+ * the name is qualified.
*/
char *
schema_variable_get_name(Oid varid)
@@ -202,8 +202,8 @@ initVariable(Variable *var, Oid varid, bool missing_ok, bool fast_only)
var->has_defexpr = !defexpr_isnull;
/*
- * Sometimes we don't need deserialized defexpr, but we need info about
- * existence of defexpr.
+ * Sometimes we don't need to deserialize defexpr, but we need info about
+ * the existence of defexpr.
*/
if (!fast_only)
@@ -291,7 +291,7 @@ VariableCreate(const char *varName,
values[Anum_pg_variable_vareoxaction - 1] = CharGetDatum((char) to_eoxaction_code(eoxaction));
values[Anum_pg_variable_varisnotnull - 1] = BoolGetDatum(is_not_null);
values[Anum_pg_variable_varisimmutable - 1] = BoolGetDatum(is_immutable);
- /* proacl will be determined later */
+ /* varacl will be determined later */
if (varDefexpr)
values[Anum_pg_variable_vardefexpr - 1] = CStringGetTextDatum(nodeToString(varDefexpr));
@@ -372,8 +372,8 @@ VariableCreate(const char *varName,
recordDependencyOnCurrentExtension(&myself, false);
/*
- * register on commit action if it is necessary. This moment, the variable
- * has not any value, so we don't need to solve content transactionality.
+ * register on commit action if it is necessary. At this moment, the variable
+ * has no value, so we don't need to solve content transactionality.
*/
register_variable_on_commit_action(myself.objectId, eoxaction);
diff --git a/src/backend/commands/schemavariable.c b/src/backend/commands/schemavariable.c
index 5426e5fa21..aa40910405 100644
--- a/src/backend/commands/schemavariable.c
+++ b/src/backend/commands/schemavariable.c
@@ -60,10 +60,10 @@ typedef struct OnCommitItem
static List *on_commits = NIL;
/*
- * The content of variables is not transactional. Due this fact the
+ * The content of variables is not transactional. Due to this fact, the
* implementation of DROP can be simple, because although DROP VARIABLE
* can be reverted, the content of variable can be lost. In this example,
- * DROP VARIABLE is same like reset variable.
+ * DROP VARIABLE is the same as reset variable.
*
* XXX Seems misplaced? There is no example here.
* XXX Also, is it really true that discarding the value even if DROP
@@ -110,7 +110,7 @@ static void clean_cache_variable(Oid varid);
/*
* Save info about necessity to clean hash table, because some
- * schema variable was dropped. Don't do here more, recheck
+ * schema variable was dropped. Don't do more here, recheck
* needs to be in transaction state.
*
* XXX Not sure "needs to be in transaction state" means? Perhaps
@@ -202,7 +202,7 @@ create_schema_variable_hashtable(void)
first_time = false;
}
- /* needs own long life memory context */
+ /* needs its own long lived memory context */
if (SchemaVariableMemoryContext == NULL)
{
SchemaVariableMemoryContext =
@@ -253,7 +253,7 @@ ResetSchemaVariableCache(void)
* and was not modified already in this transaction, then it archives
* current value for possible future usage on rollback.
*
- * When force is true, then release current and possibly archived value.
+ * When force is true, release current and possibly archived value.
*
* XXX The "force" flag is not really used.
* XXX Can't the value be something more complex?
@@ -273,7 +273,7 @@ free_schema_variable(SchemaVariable svar, bool force)
}
/*
- * Assign some content to the schema variable. It does copy to
+ * Assign some content to the schema variable. It's copied to
* SchemaVariableMemoryContext if it is necessary.
*/
static void
@@ -282,7 +282,7 @@ set_schema_variable(SchemaVariable svar, Datum value, bool isnull, Oid typid)
MemoryContext oldcxt;
Datum newval = value;
- /* Don't allow assign null to NOT NULL variable */
+ /* Don't allow assignment of null to NOT NULL variable */
if (isnull && svar->is_not_null)
ereport(ERROR,
(errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED),
@@ -346,11 +346,11 @@ init_schema_variable(SchemaVariable svar, Variable *var)
}
/*
- * Try to search value in hash table. If doesn't
- * exists insert it (and calculate defexpr if exists.
- * When reset is true, we would to enforce calculate
- * defexpr. When some is wrong, then this function try
- * don't break previous value.
+ * Try to search value in hash table. If it doesn't
+ * exist, then insert it (and calculate defexpr if it exists).
+ * When reset is true, we enforce calculation of defexpr.
+ * When something is wrong, then this function tries not to
+ * break the previous value.
*/
static SchemaVariable
prepare_variable_for_reading(Oid varid, bool reset)
@@ -387,7 +387,7 @@ prepare_variable_for_reading(Oid varid, bool reset)
if (!found)
init_schema_variable(svar, &var);
- /* Raise a error when we cannot to initialize variable correctly */
+ /* Raise an error when we cannot initialize variable correctly */
if (var.is_not_null && !var.defexpr)
ereport(ERROR,
(errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED),
@@ -434,7 +434,7 @@ prepare_variable_for_reading(Oid varid, bool reset)
/*
* Write value to variable. We expect secured access in this moment.
- * We try to don't break previous value, if some is wrong.
+ * We try not to break the previous value, if something is wrong.
*/
void
SetSchemaVariable(Oid varid, Datum value, bool isNull, Oid typid)
@@ -448,7 +448,7 @@ SetSchemaVariable(Oid varid, Datum value, bool isNull, Oid typid)
svar = (SchemaVariable) hash_search(schemavarhashtab, &varid,
HASH_ENTER, &found);
- /* Initialize svar when was not initialized or when stored value is null */
+ /* Initialize svar when not initialized or when stored value is null */
if (!found)
{
Variable var;
@@ -459,7 +459,7 @@ SetSchemaVariable(Oid varid, Datum value, bool isNull, Oid typid)
register_variable_on_commit_action(varid, var.eoxaction);
}
- /* don't allow a update on immutable variable */
+ /* don't allow updating an immutable variable */
if (svar->is_immutable)
ereport(ERROR,
(errcode(ERRCODE_ERROR_IN_ASSIGNMENT),
@@ -472,7 +472,7 @@ SetSchemaVariable(Oid varid, Datum value, bool isNull, Oid typid)
/*
* Write value to variable with security check.
- * We try to don't break previous value, if some is wrong.
+ * We try not to break the previous value, if something is wrong.
*/
void
SetSchemaVariableWithSecurityCheck(Oid varid, Datum value, bool isNull, Oid typid)
@@ -490,7 +490,7 @@ SetSchemaVariableWithSecurityCheck(Oid varid, Datum value, bool isNull, Oid typi
}
/*
- * Returns copy of value of schema variable spcified by varid
+ * Returns a copy of value of the schema variable specified by varid
*/
Datum
CopySchemaVariable(Oid varid, bool *isNull, Oid *typid)
@@ -510,8 +510,8 @@ CopySchemaVariable(Oid varid, bool *isNull, Oid *typid)
}
/*
- * Returns value of schema variable specified by varid. Check correct
- * result type. Optionaly the result can be copy.
+ * Returns the value of the schema variable specified by varid. Check correct
+ * result type. Optionally the result can be copied.
*/
Datum
GetSchemaVariable(Oid varid, bool *isNull, Oid expected_typid, bool copy)
@@ -539,7 +539,7 @@ GetSchemaVariable(Oid varid, bool *isNull, Oid expected_typid, bool copy)
}
/*
- * Clean variable defined by varid
+ * Clean the variable defined by varid
*/
static void
clean_cache_variable(Oid varid)
@@ -614,7 +614,7 @@ ExecuteLetStmt(ParseState *pstate,
Assert(OidIsValid(varid));
/*
- * Is possible to write to schema variable?
+ * Is it allowed to write to schema variable?
*/
aclresult = pg_variable_aclcheck(varid, GetUserId(), ACL_WRITE);
if (aclresult != ACLCHECK_OK)
@@ -624,7 +624,7 @@ ExecuteLetStmt(ParseState *pstate,
dest = CreateDestReceiver(DestVariable);
SetVariableDestReceiverParams(dest, varid);
- /* run rewriter - there can be used for replacement of DEFAULT node */
+ /* run rewriter - can be used for replacement of DEFAULT node */
query = copyObject(query);
rewritten = QueryRewrite(query);
@@ -846,8 +846,8 @@ AtPreEOXact_SchemaVariable_on_commit_actions(bool isCommit)
{
/*
* ON COMMIT DROP is allowed only for temp schema
- * variables. So we should explicit delete only when
- * current transaction was committed. When is rollback,
+ * variables. So we should explicitly delete only when
+ * current transaction was committed. When it's rollback,
* then schema variable is removed automatically.
*/
if (isCommit)
@@ -876,7 +876,6 @@ AtPreEOXact_SchemaVariable_on_commit_actions(bool isCommit)
* Post-commit or post-abort cleanup for ON COMMIT management.
*
* All we do here is remove no-longer-needed OnCommitItem entries.
- *
*/
void
AtEOXact_SchemaVariable_on_commit_actions(bool isCommit)
diff --git a/src/backend/executor/execExpr.c b/src/backend/executor/execExpr.c
index 35a8523f98..a35bce8ff1 100644
--- a/src/backend/executor/execExpr.c
+++ b/src/backend/executor/execExpr.c
@@ -1037,8 +1037,8 @@ ExecInitExprRec(Expr *node, ExprState *state,
else
{
/*
- * When we have not a full PlanState (plpgsql
- * simple expr evaluation, then we should to
+ * When we have no full PlanState (plpgsql
+ * simple expr evaluation), then we should
* use direct access.
*/
scratch.opcode = EEOP_PARAM_VARIABLE;
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index 95dac87ca7..62c9fddd6e 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -203,7 +203,7 @@ standard_ExecutorStart(QueryDesc *queryDesc, int eflags)
estate->es_sourceText = queryDesc->sourceText;
/*
- * Prepare schema variables, if are not prepared in queryDesc
+ * Prepare schema variables, if not prepared in queryDesc
*/
if (queryDesc->num_schema_variables > 0)
{
@@ -223,7 +223,7 @@ standard_ExecutorStart(QueryDesc *queryDesc, int eflags)
nSchemaVariables = list_length(queryDesc->plannedstmt->schemaVariables);
- /* Create buffer for used schema variables */
+ /* Create buffer used for schema variables */
estate->es_schema_variables = (SchemaVariableValue *)
palloc(nSchemaVariables * sizeof(SchemaVariableValue));
diff --git a/src/backend/executor/execParallel.c b/src/backend/executor/execParallel.c
index 341c817371..43ff881042 100644
--- a/src/backend/executor/execParallel.c
+++ b/src/backend/executor/execParallel.c
@@ -13,8 +13,8 @@
* leader; see src/backend/access/transam/README.parallel for details.
* However, we must save and restore relevant executor state, such as
* any ParamListInfo associated with the query, buffer/WAL usage info,
- * used schema variables buffer, and the actual plan to be passed down
- * to the worker.
+ * schema variables buffer, and the actual plan to be passed down to
+ * the worker.
*
* IDENTIFICATION
* src/backend/executor/execParallel.c
@@ -142,7 +142,7 @@ static bool ExecParallelRetrieveInstrumentation(PlanState *planstate,
/* Helper function that runs in the parallel worker. */
static DestReceiver *ExecParallelGetReceiver(dsm_segment *seg, shm_toc *toc);
-/* Helper functions that can pass values of used schema variables */
+/* Helper functions that can pass values of schema variables */
static Size EstimateSchemaVariables(EState *estate);
static void SerializeSchemaVariables(EState *estate, char **start_address);
static SchemaVariableValue * RestoreSchemaVariables(char **start_address,
@@ -1527,8 +1527,8 @@ ParallelQueryMain(dsm_segment *seg, shm_toc *toc)
}
/*
- * Estimate the amount of space required to serialize a used
- * schema variables.
+ * Estimate the amount of space required to serialize a
+ * schema variable.
*/
static Size
EstimateSchemaVariables(EState *estate)
diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c
index 91717cd4e1..daba475101 100644
--- a/src/backend/optimizer/plan/setrefs.c
+++ b/src/backend/optimizer/plan/setrefs.c
@@ -175,6 +175,7 @@ static List *set_returning_clause_references(PlannerInfo *root,
static bool pull_up_has_schema_variables_walker(Node *node,
PlannerInfo *root);
+
/*****************************************************************************
*
* SUBPLAN REFERENCES
@@ -1937,8 +1938,8 @@ fix_alternative_subplan(PlannerInfo *root, AlternativeSubPlan *asplan,
* choosing the best implementation for AlternativeSubPlans,
* looking up operator opcode info for OpExpr and related nodes,
* and adding OIDs from regclass Const nodes into root->glob->relationOids,
- * and replacing PARAM_VARIABLE paramid, that is oid of schema variable
- * to offset to array of by query used schema variables.
+ * and replacing PARAM_VARIABLE paramid, that is the oid of the schema variable
+ * to offset the array by query used schema variables. ???
*
* 'node': the expression to be modified
* 'rtoffset': how much to increment varnos by
diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c
index 34cbaa9100..2efd77f499 100644
--- a/src/backend/parser/analyze.c
+++ b/src/backend/parser/analyze.c
@@ -1288,7 +1288,7 @@ transformSelectStmt(ParseState *pstate, SelectStmt *stmt)
/*
* Transform targetlist. Second usage of this transformation
- * is for Let statement. In this case we would to allow DEFAULT
+ * is for Let statement. In this case we want to allow DEFAULT
* keyword - we specify EXPR_KIND_LET_TARGET.
*
* XXX This is really hard to understand. What if p_expr_kind is
@@ -1672,7 +1672,7 @@ transformLetStmt(ParseState *pstate, LetStmt * stmt)
if (!OidIsValid(varid))
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_OBJECT),
- errmsg("schema variable \"%s\" doesn't exists",
+ errmsg("schema variable \"%s\" doesn't exist",
NameListToString(names)),
parser_errposition(pstate, stmt->location)));
@@ -1859,8 +1859,8 @@ transformLetStmt(ParseState *pstate, LetStmt * stmt)
/*
* When statement is executed as an expression as PLpgSQL LET
- * statement, then we should to return query. We should not
- * to use an utility wrapper node.
+ * statement, then we should return query. We should not
+ * use a utility wrapper node.
*/
if (stmt->plpgsql_mode)
return query;
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c
index 31b5b55a09..d26b825382 100644
--- a/src/backend/parser/parse_expr.c
+++ b/src/backend/parser/parse_expr.c
@@ -88,6 +88,7 @@ static Node *makeParamSchemaVariable(ParseState *pstate,
Oid varid, Oid typid, int32 typmod, Oid collid,
char *attrname, int location);
+
/*
* transformExpr -
* Analyze and transform expressions. Type checking and type casting is
@@ -851,18 +852,17 @@ transformColumnRef(ParseState *pstate, ColumnRef *cref)
FreeTupleDesc(tupdesc);
- /* there are not composite variable with this field */
+ /* there is no composite variable with this field */
if (!found)
varid = InvalidOid;
}
else
- /* there are not composite variable with this name */
+ /* there is no composite variable with this name */
varid = InvalidOid;
}
/*
- * Raise error if varid is still valid. It should be really
- * amigonuous
+ * Raise error if varid is still valid, since it is ambiguous.
*/
if (OidIsValid(varid))
ereport(ERROR,
@@ -932,13 +932,13 @@ makeParamSchemaVariable(ParseState *pstate,
param->paramcollid = collid;
/*
- * There are two access to schema variables - direct, used by simple
- * plpgsql expressions, where there are not necessary to emulate
- * stability. Buffered access is used elsewhere. We should to ensure
+ * There are two ways to access schema variables - direct, used by simple
+ * plpgsql expressions, where it is not necessary to emulate stability.
+ * And Buffered access, which is used everywhere else. We should ensure
* stable values, and because schema variables are global, then we should
- * to work with copied values instead direct access to variables. For
- * direct access the varid is best for access. For buffered access we need
- * to assign index to buffer - later, when we will know what variables are
+ * work with copied values instead of directly accessing variables. For
+ * direct access, the varid is best. For buffered access, we need
+ * to assign an index to the buffer - later, when we know what variables are
* used. Now, we just remember, so we use schema variables.
*/
pstate->p_hasSchemaVariables = true;
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 7045be20bf..dd6d5a1dcb 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -629,7 +629,7 @@ static const SchemaQuery Query_for_list_of_collations = {
};
static const SchemaQuery Query_for_list_of_variables = {
- .min_server_version = 120000,
+ .min_server_version = 150000,
.catname = "pg_catalog.pg_variable v",
.viscondition = "pg_catalog.pg_variable_is_visible(v.oid)",
.namespace = "v.varnamespace",
diff --git a/src/include/catalog/pg_variable.h b/src/include/catalog/pg_variable.h
index 7e53880a3c..e159a5f6a5 100644
--- a/src/include/catalog/pg_variable.h
+++ b/src/include/catalog/pg_variable.h
@@ -63,7 +63,7 @@ typedef enum VariableEOXActionCodes
* the format of pg_variable relation.
* ----------------
*/
-typedef FormData_pg_variable * Form_pg_variable;
+typedef FormData_pg_variable *Form_pg_variable;
DECLARE_UNIQUE_INDEX_PKEY(pg_variable_oid_index, 9223, VariableOidIndexId, on pg_variable using btree(oid oid_ops));
#define VariableObjectIndexId 9223
diff --git a/src/include/nodes/pathnodes.h b/src/include/nodes/pathnodes.h
index a2d3fa5b4b..1af7cca067 100644
--- a/src/include/nodes/pathnodes.h
+++ b/src/include/nodes/pathnodes.h
@@ -352,7 +352,7 @@ struct PlannerInfo
* pseudoconstant = true */
bool hasAlternativeSubPlans; /* true if we've made any of those */
bool hasRecursion; /* true if planning a recursive WITH item */
- bool hasSchemaVariables; /* true if schema variables was used */
+ bool hasSchemaVariables; /* true if schema variables were used */
/*
* Information about aggregates. Filled by preprocess_aggrefs().
diff --git a/src/include/nodes/primnodes.h b/src/include/nodes/primnodes.h
index dc7c2008b0..2f5cedec4e 100644
--- a/src/include/nodes/primnodes.h
+++ b/src/include/nodes/primnodes.h
@@ -263,7 +263,7 @@ typedef struct Const
* the low-order 16 bits contain the column number. (This type
* of Param is also converted to PARAM_EXEC during planning.)
*
- * PARAM_VARIABLE: The parameter is a access to schema variable
+ * PARAM_VARIABLE: The parameter is an access to schema variable
* paramid holds varid.
*/
typedef enum ParamKind
diff --git a/src/pl/plpgsql/src/pl_exec.c b/src/pl/plpgsql/src/pl_exec.c
index ab9a3c99a7..545f82abd5 100644
--- a/src/pl/plpgsql/src/pl_exec.c
+++ b/src/pl/plpgsql/src/pl_exec.c
@@ -4982,11 +4982,11 @@ exec_stmt_let(PLpgSQL_execstate *estate, PLpgSQL_stmt_let *stmt)
/*
* Oid of target schema variable is stored in Query structure.
- * It is safer to read this value directly from plan, then to
- * hold this value in plpgsql context, because I don't need to
- * solve invalidation of this cached value. Next operations
- * are read only without any allocations, so we can expect so
- * taking varid from Query should be fast.
+ * It is safer to read this value directly from the plan than to
+ * hold this value in the plpgsql context, because it's not necessary
+ * to handle invalidation of the cached value. Next operations
+ * are read only without any allocations, so we can expect that
+ * retrieving varid from Query should be fast.
*/
plansources = SPI_plan_get_plan_sources(stmt->expr->plan);
if (list_length(plansources) != 1)
diff --git a/src/test/regress/expected/schema_variables.out b/src/test/regress/expected/schema_variables.out
index 0246d86673..58e85a44ea 100644
--- a/src/test/regress/expected/schema_variables.out
+++ b/src/test/regress/expected/schema_variables.out
@@ -299,7 +299,7 @@ SELECT v2;
(3.14159265358979,Hello)
(1 row)
--- shoudl fail due dependency
+-- should fail due dependency
DROP TYPE t2;
ERROR: cannot drop type t2 because other objects depend on it
DETAIL: schema variable v2 depends on type t2
diff --git a/src/test/regress/sql/schema_variables.sql b/src/test/regress/sql/schema_variables.sql
index 0bd7798cf9..a6419990dd 100644
--- a/src/test/regress/sql/schema_variables.sql
+++ b/src/test/regress/sql/schema_variables.sql
@@ -206,7 +206,7 @@ CREATE VARIABLE v2 AS t2 DEFAULT (NULL, 'Hello');
LET svartest.v2.a = pi();
SELECT v2;
--- shoudl fail due dependency
+-- should fail due dependency
DROP TYPE t2;
-- should be ok
--
2.17.0
--qxfKREH7IwbezJ+T--
view thread (2+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: pryzbyj@telsasoft.com
Subject: Re: [PATCH 3/3] Justin's contribution
In-Reply-To: <no-message-id-654137@localhost>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox