1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-30 11:03:19 +03:00

Improve spelling of new FINALFUNC_MODIFY aggregate attribute.

I'd used SHARABLE as a value originally, but Peter Eisentraut points out
that dictionaries agree that SHAREABLE is the preferred spelling.
Run around and change that before it's too late.

Discussion: https://postgr.es/m/d2e1afd4-659c-50d6-1b20-7cfd3675e909@2ndquadrant.com
This commit is contained in:
Tom Lane
2018-05-21 11:41:42 -04:00
parent 3f5e3a9844
commit f755a152d4
10 changed files with 37 additions and 36 deletions

View File

@ -477,13 +477,13 @@ extractModify(DefElem *defel)
if (strcmp(val, "read_only") == 0)
return AGGMODIFY_READ_ONLY;
if (strcmp(val, "sharable") == 0)
return AGGMODIFY_SHARABLE;
if (strcmp(val, "shareable") == 0)
return AGGMODIFY_SHAREABLE;
if (strcmp(val, "read_write") == 0)
return AGGMODIFY_READ_WRITE;
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("parameter \"%s\" must be READ_ONLY, SHARABLE, or READ_WRITE",
errmsg("parameter \"%s\" must be READ_ONLY, SHAREABLE, or READ_WRITE",
defel->defname)));
return 0; /* keep compiler quiet */
}

View File

@ -288,7 +288,7 @@ static void build_pertrans_for_aggref(AggStatePerTrans pertrans,
static int find_compatible_peragg(Aggref *newagg, AggState *aggstate,
int lastaggno, List **same_input_transnos);
static int find_compatible_pertrans(AggState *aggstate, Aggref *newagg,
bool sharable,
bool shareable,
Oid aggtransfn, Oid aggtranstype,
Oid aggserialfn, Oid aggdeserialfn,
Datum initValue, bool initValueIsNull,
@ -2522,7 +2522,7 @@ ExecInitAgg(Agg *node, EState *estate, int eflags)
AclResult aclresult;
Oid transfn_oid,
finalfn_oid;
bool sharable;
bool shareable;
Oid serialfn_oid,
deserialfn_oid;
Expr *finalfnexpr;
@ -2597,12 +2597,12 @@ ExecInitAgg(Agg *node, EState *estate, int eflags)
/*
* If finalfn is marked read-write, we can't share transition states;
* but it is okay to share states for AGGMODIFY_SHARABLE aggs. Also,
* but it is okay to share states for AGGMODIFY_SHAREABLE aggs. Also,
* if we're not executing the finalfn here, we can share regardless.
*/
sharable = (aggform->aggfinalmodify != AGGMODIFY_READ_WRITE) ||
shareable = (aggform->aggfinalmodify != AGGMODIFY_READ_WRITE) ||
(finalfn_oid == InvalidOid);
peragg->sharable = sharable;
peragg->shareable = shareable;
serialfn_oid = InvalidOid;
deserialfn_oid = InvalidOid;
@ -2746,12 +2746,12 @@ ExecInitAgg(Agg *node, EState *estate, int eflags)
* 2. Build working state for invoking the transition function, or
* look up previously initialized working state, if we can share it.
*
* find_compatible_peragg() already collected a list of sharable
* find_compatible_peragg() already collected a list of shareable
* per-Trans's with the same inputs. Check if any of them have the
* same transition function and initial value.
*/
existing_transno = find_compatible_pertrans(aggstate, aggref,
sharable,
shareable,
transfn_oid, aggtranstype,
serialfn_oid, deserialfn_oid,
initValue, initValueIsNull,
@ -3170,7 +3170,7 @@ GetAggInitVal(Datum textInitVal, Oid transtype)
* with this one, with the same input parameters. If no compatible aggregate
* can be found, returns -1.
*
* As a side-effect, this also collects a list of existing, sharable per-Trans
* As a side-effect, this also collects a list of existing, shareable per-Trans
* structs with matching inputs. If no identical Aggref is found, the list is
* passed later to find_compatible_pertrans, to see if we can at least reuse
* the state value of another aggregate.
@ -3237,7 +3237,7 @@ find_compatible_peragg(Aggref *newagg, AggState *aggstate,
* we might report a transno more than once. find_compatible_pertrans
* is cheap enough that it's not worth spending cycles to avoid that.)
*/
if (peragg->sharable)
if (peragg->shareable)
*same_input_transnos = lappend_int(*same_input_transnos,
peragg->transno);
}
@ -3254,7 +3254,7 @@ find_compatible_peragg(Aggref *newagg, AggState *aggstate,
* verified to match.)
*/
static int
find_compatible_pertrans(AggState *aggstate, Aggref *newagg, bool sharable,
find_compatible_pertrans(AggState *aggstate, Aggref *newagg, bool shareable,
Oid aggtransfn, Oid aggtranstype,
Oid aggserialfn, Oid aggdeserialfn,
Datum initValue, bool initValueIsNull,
@ -3263,7 +3263,7 @@ find_compatible_pertrans(AggState *aggstate, Aggref *newagg, bool sharable,
ListCell *lc;
/* If this aggregate can't share transition states, give up */
if (!sharable)
if (!shareable)
return -1;
foreach(lc, transnos)

View File

@ -13833,8 +13833,8 @@ dumpAgg(Archive *fout, AggInfo *agginfo)
case AGGMODIFY_READ_ONLY:
appendPQExpBufferStr(details, ",\n FINALFUNC_MODIFY = READ_ONLY");
break;
case AGGMODIFY_SHARABLE:
appendPQExpBufferStr(details, ",\n FINALFUNC_MODIFY = SHARABLE");
case AGGMODIFY_SHAREABLE:
appendPQExpBufferStr(details, ",\n FINALFUNC_MODIFY = SHAREABLE");
break;
case AGGMODIFY_READ_WRITE:
appendPQExpBufferStr(details, ",\n FINALFUNC_MODIFY = READ_WRITE");
@ -13889,8 +13889,8 @@ dumpAgg(Archive *fout, AggInfo *agginfo)
case AGGMODIFY_READ_ONLY:
appendPQExpBufferStr(details, ",\n MFINALFUNC_MODIFY = READ_ONLY");
break;
case AGGMODIFY_SHARABLE:
appendPQExpBufferStr(details, ",\n MFINALFUNC_MODIFY = SHARABLE");
case AGGMODIFY_SHAREABLE:
appendPQExpBufferStr(details, ",\n MFINALFUNC_MODIFY = SHAREABLE");
break;
case AGGMODIFY_READ_WRITE:
appendPQExpBufferStr(details, ",\n MFINALFUNC_MODIFY = READ_WRITE");

View File

@ -1431,7 +1431,7 @@ my %tests = (
basetype = int4,
stype = _int8,
finalfunc = int8_avg,
finalfunc_modify = sharable,
finalfunc_modify = shareable,
initcond1 = \'{0,0}\'
);',
regexp => qr/^
@ -1440,7 +1440,7 @@ my %tests = (
\n\s+\QSTYPE = bigint[],\E
\n\s+\QINITCOND = '{0,0}',\E
\n\s+\QFINALFUNC = int8_avg,\E
\n\s+\QFINALFUNC_MODIFY = SHARABLE\E
\n\s+\QFINALFUNC_MODIFY = SHAREABLE\E
\n\);/xm,
like => {
%full_runs,

View File

@ -134,7 +134,7 @@ typedef FormData_pg_aggregate *Form_pg_aggregate;
* transfn cannot be applied anymore after the first finalfn call.
*/
#define AGGMODIFY_READ_ONLY 'r'
#define AGGMODIFY_SHARABLE 's'
#define AGGMODIFY_SHAREABLE 's'
#define AGGMODIFY_READ_WRITE 'w'
#endif /* EXPOSE_TO_CLIENT_CODE */

View File

@ -216,10 +216,10 @@ typedef struct AggStatePerAggData
bool resulttypeByVal;
/*
* "sharable" is false if this agg cannot share state values with other
* "shareable" is false if this agg cannot share state values with other
* aggregates because the final function is read-write.
*/
bool sharable;
bool shareable;
} AggStatePerAggData;
/*

View File

@ -148,7 +148,7 @@ CREATE AGGREGATE myavg (numeric)
serialfunc = numeric_avg_serialize,
deserialfunc = numeric_avg_deserialize,
combinefunc = numeric_avg_combine,
finalfunc_modify = sharable -- just to test a non-default setting
finalfunc_modify = shareable -- just to test a non-default setting
);
-- Ensure all these functions made it into the catalog
SELECT aggfnoid, aggtransfn, aggcombinefn, aggtranstype::regtype,

View File

@ -163,7 +163,7 @@ CREATE AGGREGATE myavg (numeric)
serialfunc = numeric_avg_serialize,
deserialfunc = numeric_avg_deserialize,
combinefunc = numeric_avg_combine,
finalfunc_modify = sharable -- just to test a non-default setting
finalfunc_modify = shareable -- just to test a non-default setting
);
-- Ensure all these functions made it into the catalog