mirror of https://github.com/citusdata/citus.git
Introduces macros for vacuum options
VacOptTernaryValue enum is renamed to VacOptValue. In the enum there were three values, VACOPT_TERNARY_DEFAULT, VACOPT_TERNARY_DISABLED, and VACOPT_TERNARY_ENABLED Now there are four values VACOPTVALUE_UNSPECIFIED, VACOPTVALUE_AUTO, VACOPTVALUE_DISABLED, and VACOPTVALUE_ENABLED New macros are VacOptValue_compat, VACOPTVALUE_UNSPECIFIED_COMPAT, VACOPTVALUE_DISABLED_COMPAT, and VACOPTVALUE_ENABLED_COMPAT The VACOPTVALUE_UNSPECIFIED_COMPAT matches VACOPT_TERNARY_DEFAULT and VACOPTVALUE_UNSPECIFIED. And there are no macro for VACOPTVALUE_AUTO. Relevant PG commit: 3499df0dee8c4ea51d264a674df5b5e31991319atalha_pg14_support
parent
cea6d152e9
commit
c9d694bf63
|
@ -883,7 +883,7 @@ columnar_vacuum_rel(Relation rel, VacuumParams *params,
|
|||
int elevel = (params->options & VACOPT_VERBOSE) ? INFO : DEBUG2;
|
||||
|
||||
/* this should have been resolved by vacuum.c until now */
|
||||
Assert(params->truncate != VACOPT_TERNARY_DEFAULT);
|
||||
Assert(params->truncate != VACOPTVALUE_UNSPECIFIED_COMPAT);
|
||||
|
||||
LogRelationStats(rel, elevel);
|
||||
|
||||
|
@ -891,7 +891,7 @@ columnar_vacuum_rel(Relation rel, VacuumParams *params,
|
|||
* We don't have updates, deletes, or concurrent updates, so all we
|
||||
* care for now is truncating the unused space at the end of storage.
|
||||
*/
|
||||
if (params->truncate == VACOPT_TERNARY_ENABLED)
|
||||
if (params->truncate == VACOPTVALUE_ENABLED_COMPAT)
|
||||
{
|
||||
TruncateColumnar(rel, elevel);
|
||||
}
|
||||
|
|
|
@ -39,8 +39,8 @@
|
|||
typedef struct CitusVacuumParams
|
||||
{
|
||||
int options;
|
||||
VacOptTernaryValue truncate;
|
||||
VacOptTernaryValue index_cleanup;
|
||||
VacOptValue_compat truncate;
|
||||
VacOptValue_compat index_cleanup;
|
||||
|
||||
#if PG_VERSION_NUM >= PG_VERSION_13
|
||||
int nworkers;
|
||||
|
@ -346,8 +346,8 @@ DeparseVacuumStmtPrefix(CitusVacuumParams vacuumParams)
|
|||
|
||||
/* if no flags remain, exit early */
|
||||
if (vacuumFlags == 0 &&
|
||||
vacuumParams.truncate == VACOPT_TERNARY_DEFAULT &&
|
||||
vacuumParams.index_cleanup == VACOPT_TERNARY_DEFAULT
|
||||
vacuumParams.truncate == VACOPTVALUE_UNSPECIFIED_COMPAT &&
|
||||
vacuumParams.index_cleanup == VACOPTVALUE_UNSPECIFIED_COMPAT
|
||||
#if PG_VERSION_NUM >= PG_VERSION_13
|
||||
&& vacuumParams.nworkers == VACUUM_PARALLEL_NOTSET
|
||||
#endif
|
||||
|
@ -389,18 +389,18 @@ DeparseVacuumStmtPrefix(CitusVacuumParams vacuumParams)
|
|||
appendStringInfoString(vacuumPrefix, "SKIP_LOCKED,");
|
||||
}
|
||||
|
||||
if (vacuumParams.truncate != VACOPT_TERNARY_DEFAULT)
|
||||
if (vacuumParams.truncate != VACOPTVALUE_UNSPECIFIED_COMPAT)
|
||||
{
|
||||
appendStringInfoString(vacuumPrefix,
|
||||
vacuumParams.truncate == VACOPT_TERNARY_ENABLED ?
|
||||
vacuumParams.truncate == VACOPTVALUE_ENABLED_COMPAT ?
|
||||
"TRUNCATE," : "TRUNCATE false,"
|
||||
);
|
||||
}
|
||||
|
||||
if (vacuumParams.index_cleanup != VACOPT_TERNARY_DEFAULT)
|
||||
if (vacuumParams.index_cleanup != VACOPTVALUE_UNSPECIFIED_COMPAT)
|
||||
{
|
||||
appendStringInfoString(vacuumPrefix,
|
||||
vacuumParams.index_cleanup == VACOPT_TERNARY_ENABLED ?
|
||||
vacuumParams.index_cleanup == VACOPTVALUE_ENABLED_COMPAT ?
|
||||
"INDEX_CLEANUP," : "INDEX_CLEANUP false,"
|
||||
);
|
||||
}
|
||||
|
@ -506,8 +506,8 @@ VacuumStmtParams(VacuumStmt *vacstmt)
|
|||
bool disable_page_skipping = false;
|
||||
|
||||
/* Set default value */
|
||||
params.index_cleanup = VACOPT_TERNARY_DEFAULT;
|
||||
params.truncate = VACOPT_TERNARY_DEFAULT;
|
||||
params.index_cleanup = VACOPTVALUE_UNSPECIFIED_COMPAT;
|
||||
params.truncate = VACOPTVALUE_UNSPECIFIED_COMPAT;
|
||||
#if PG_VERSION_NUM >= PG_VERSION_13
|
||||
params.nworkers = VACUUM_PARALLEL_NOTSET;
|
||||
#endif
|
||||
|
@ -551,13 +551,13 @@ VacuumStmtParams(VacuumStmt *vacstmt)
|
|||
}
|
||||
else if (strcmp(opt->defname, "index_cleanup") == 0)
|
||||
{
|
||||
params.index_cleanup = defGetBoolean(opt) ? VACOPT_TERNARY_ENABLED :
|
||||
VACOPT_TERNARY_DISABLED;
|
||||
params.index_cleanup = defGetBoolean(opt) ? VACOPTVALUE_ENABLED_COMPAT :
|
||||
VACOPTVALUE_DISABLED_COMPAT;
|
||||
}
|
||||
else if (strcmp(opt->defname, "truncate") == 0)
|
||||
{
|
||||
params.truncate = defGetBoolean(opt) ? VACOPT_TERNARY_ENABLED :
|
||||
VACOPT_TERNARY_DISABLED;
|
||||
params.truncate = defGetBoolean(opt) ? VACOPTVALUE_ENABLED_COMPAT :
|
||||
VACOPTVALUE_DISABLED_COMPAT;
|
||||
}
|
||||
#if PG_VERSION_NUM >= PG_VERSION_13
|
||||
else if (strcmp(opt->defname, "parallel") == 0)
|
||||
|
|
|
@ -43,6 +43,10 @@
|
|||
#define FuncnameGetCandidates_compat(a, b, c, d, e, f, g) \
|
||||
FuncnameGetCandidates(a, b, c, d, e, f, g)
|
||||
#define expand_function_arguments_compat(a, b, c, d) expand_function_arguments(a, b, c, d)
|
||||
#define VacOptValue_compat VacOptValue
|
||||
#define VACOPTVALUE_UNSPECIFIED_COMPAT VACOPTVALUE_UNSPECIFIED
|
||||
#define VACOPTVALUE_DISABLED_COMPAT VACOPTVALUE_DISABLED
|
||||
#define VACOPTVALUE_ENABLED_COMPAT VACOPTVALUE_ENABLED
|
||||
#else
|
||||
#define AlterTableStmtObjType(a) ((a)->relkind)
|
||||
#define F_NEXTVAL_COMPAT F_NEXTVAL_OID
|
||||
|
@ -56,6 +60,10 @@
|
|||
#define FuncnameGetCandidates_compat(a, b, c, d, e, f, g) \
|
||||
FuncnameGetCandidates(a, b, c, d, e, g)
|
||||
#define expand_function_arguments_compat(a, b, c, d) expand_function_arguments(a, c, d)
|
||||
#define VacOptValue_compat VacOptTernaryValue
|
||||
#define VACOPTVALUE_UNSPECIFIED_COMPAT VACOPT_TERNARY_DEFAULT
|
||||
#define VACOPTVALUE_DISABLED_COMPAT VACOPT_TERNARY_DISABLED
|
||||
#define VACOPTVALUE_ENABLED_COMPAT VACOPT_TERNARY_ENABLED
|
||||
#endif
|
||||
|
||||
#if PG_VERSION_NUM >= PG_VERSION_13
|
||||
|
|
Loading…
Reference in New Issue