diff --git a/CHANGELOG.md b/CHANGELOG.md index f5d3553..3d2b693 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,19 @@ Changelog ========= +WIP version 1.1.3: +------------------ + + **Miscellaneous** + + - Use a dedicated MemoryContext to store hypothetical objects + - Fix compatibility on Windows (Godwottery) + + **Bug fixed** + + - Call previous explain_get_index_name_hook if it was setup + - add hypopg_reset_index() SQL function + 2018-05-30 version 1.1.2: ------------------------- diff --git a/hypopg.c b/hypopg.c index 3153e78..4ab76b7 100644 --- a/hypopg.c +++ b/hypopg.c @@ -25,39 +25,39 @@ PG_MODULE_MAGIC; /*--- Variables exported ---*/ -bool isExplain; -bool hypo_is_enabled; +bool isExplain; +bool hypo_is_enabled; MemoryContext HypoMemoryContext; /*--- Functions --- */ -PGDLLEXPORT void _PG_init(void); -PGDLLEXPORT void _PG_fini(void); +PGDLLEXPORT void _PG_init(void); +PGDLLEXPORT void _PG_fini(void); -PGDLLEXPORT Datum hypopg_reset(PG_FUNCTION_ARGS); +PGDLLEXPORT Datum hypopg_reset(PG_FUNCTION_ARGS); PG_FUNCTION_INFO_V1(hypopg_reset); static void -hypo_utility_hook( + hypo_utility_hook( #if PG_VERSION_NUM >= 100000 - PlannedStmt *pstmt, + PlannedStmt *pstmt, #else - Node *parsetree, + Node *parsetree, #endif - const char *queryString, + const char *queryString, #if PG_VERSION_NUM >= 90300 - ProcessUtilityContext context, + ProcessUtilityContext context, #endif - ParamListInfo params, + ParamListInfo params, #if PG_VERSION_NUM >= 100000 - QueryEnvironment *queryEnv, + QueryEnvironment *queryEnv, #endif #if PG_VERSION_NUM < 90300 - bool isTopLevel, + bool isTopLevel, #endif - DestReceiver *dest, - char *completionTag); + DestReceiver *dest, + char *completionTag); static ProcessUtility_hook_type prev_utility_hook = NULL; static void hypo_executorEnd_hook(QueryDesc *queryDesc); @@ -65,9 +65,9 @@ static ExecutorEnd_hook_type prev_ExecutorEnd_hook = NULL; static void hypo_get_relation_info_hook(PlannerInfo *root, - Oid relationObjectId, - bool inhparent, - RelOptInfo *rel); + Oid relationObjectId, + bool inhparent, + RelOptInfo *rel); static get_relation_info_hook_type prev_get_relation_info_hook = NULL; static bool hypo_query_walker(Node *node); @@ -92,15 +92,15 @@ _PG_init(void) hypoIndexes = NIL; HypoMemoryContext = AllocSetContextCreate(TopMemoryContext, - "HypoPG context", + "HypoPG context", #if PG_VERSION_NUM >= 90600 - ALLOCSET_DEFAULT_SIZES + ALLOCSET_DEFAULT_SIZES #else - ALLOCSET_DEFAULT_MINSIZE, - ALLOCSET_DEFAULT_INITSIZE, - ALLOCSET_DEFAULT_MAXSIZE + ALLOCSET_DEFAULT_MINSIZE, + ALLOCSET_DEFAULT_INITSIZE, + ALLOCSET_DEFAULT_MAXSIZE #endif - ); + ); DefineCustomBoolVariable("hypopg.enabled", "Enable / Disable hypopg", @@ -225,7 +225,7 @@ hypo_utility_hook( #endif params, #if PG_VERSION_NUM >= 100000 - queryEnv, + queryEnv, #endif #if PG_VERSION_NUM < 90300 isTopLevel, @@ -301,9 +301,9 @@ hypo_get_relation_info_hook(PlannerInfo *root, if (relation->rd_rel->relkind == RELKIND_RELATION #if PG_VERSION_NUM >= 90300 - || relation->rd_rel->relkind == RELKIND_MATVIEW + || relation->rd_rel->relkind == RELKIND_MATVIEW #endif - ) + ) { ListCell *lc; @@ -318,7 +318,7 @@ hypo_get_relation_info_hook(PlannerInfo *root, * indextlist */ hypo_injectHypotheticalIndex(root, relationObjectId, - inhparent, rel, relation, entry); + inhparent, rel, relation, entry); } } } diff --git a/hypopg_import.c b/hypopg_import.c index 4292b8a..7b45baf 100644 --- a/hypopg_import.c +++ b/hypopg_import.c @@ -66,7 +66,7 @@ build_index_tlist(PlannerInfo *root, IndexOptInfo *index, if (indexkey < 0) att_tup = SystemAttributeDefinition(indexkey, - heapRelation->rd_rel->relhasoids); + heapRelation->rd_rel->relhasoids); else #if PG_VERSION_NUM >= 110000 att_tup = TupleDescAttr(heapRelation->rd_att, indexkey - 1); @@ -210,7 +210,7 @@ GetIndexOpClass(List *opclass, Oid attrType, ereport(ERROR, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("operator class \"%s\" does not accept data type %s", - NameListToString(opclass), format_type_be(attrType)))); + NameListToString(opclass), format_type_be(attrType)))); ReleaseSysCache(tuple); @@ -244,7 +244,7 @@ CheckPredicate(Expr *predicate) if (CheckMutability(predicate)) ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("functions in index predicate must be marked IMMUTABLE"))); + errmsg("functions in index predicate must be marked IMMUTABLE"))); } /* diff --git a/hypopg_index.c b/hypopg_index.c index ed97529..d99b0aa 100644 --- a/hypopg_index.c +++ b/hypopg_index.c @@ -64,7 +64,7 @@ #if PG_VERSION_NUM >= 90600 /* this will be updated, when needed, by hypo_discover_am */ -static Oid BLOOM_AM_OID = InvalidOid; +static Oid BLOOM_AM_OID = InvalidOid; #endif /*--- Variables exported ---*/ @@ -82,21 +82,21 @@ PG_FUNCTION_INFO_V1(hypopg_get_indexdef); PG_FUNCTION_INFO_V1(hypopg_reset_index); -static void hypo_addIndex(hypoIndex *entry); -static bool hypo_can_return(hypoIndex *entry, Oid atttype, int i, char *amname); +static void hypo_addIndex(hypoIndex * entry); +static bool hypo_can_return(hypoIndex * entry, Oid atttype, int i, char *amname); static void hypo_discover_am(char *amname, Oid oid); -static void hypo_estimate_index_simple(hypoIndex *entry, - BlockNumber *pages, double *tuples); -static void hypo_estimate_index(hypoIndex *entry, RelOptInfo *rel); -static int hypo_estimate_index_colsize(hypoIndex *entry, int col); -static void hypo_index_pfree(hypoIndex *entry); +static void hypo_estimate_index_simple(hypoIndex * entry, + BlockNumber *pages, double *tuples); +static void hypo_estimate_index(hypoIndex * entry, RelOptInfo *rel); +static int hypo_estimate_index_colsize(hypoIndex * entry, int col); +static void hypo_index_pfree(hypoIndex * entry); static bool hypo_index_remove(Oid indexid); static const hypoIndex *hypo_index_store_parsetree(IndexStmt *node, - const char *queryString); -static hypoIndex *hypo_newIndex(Oid relid, char *accessMethod, int nkeycolumns, - int ninccolumns, - List *options); -static void hypo_set_indexname(hypoIndex *entry, char *indexname); + const char *queryString); +static hypoIndex * hypo_newIndex(Oid relid, char *accessMethod, int nkeycolumns, + int ninccolumns, + List *options); +static void hypo_set_indexname(hypoIndex * entry, char *indexname); /* @@ -106,7 +106,7 @@ static void hypo_set_indexname(hypoIndex *entry, char *indexname); */ static hypoIndex * hypo_newIndex(Oid relid, char *accessMethod, int nkeycolumns, int ninccolumns, - List *options) + List *options) { /* must be declared "volatile", because used in a PG_CATCH() */ hypoIndex *volatile entry; @@ -139,6 +139,7 @@ hypo_newIndex(Oid relid, char *accessMethod, int nkeycolumns, int ninccolumns, entry->relam = HeapTupleGetOid(tuple); #if PG_VERSION_NUM >= 90600 + /* * Since 9.6, AM informations are available through an amhandler function, * returning an IndexAmRoutine containing what's needed. @@ -236,15 +237,15 @@ hypo_newIndex(Oid relid, char *accessMethod, int nkeycolumns, int ninccolumns, #if PG_VERSION_NUM >= 90600 && entry->relam != BLOOM_AM_OID #endif - ) + ) { - /* - * do not store hypothetical indexes with access method not - * supported - */ - elog(ERROR, "hypopg: access method \"%s\" is not supported", - accessMethod); - break; + /* + * do not store hypothetical indexes with access method not + * supported + */ + elog(ERROR, "hypopg: access method \"%s\" is not supported", + accessMethod); + break; } /* No more elog beyond this point. */ @@ -263,7 +264,7 @@ hypo_newIndex(Oid relid, char *accessMethod, int nkeycolumns, int ninccolumns, /* Add an hypoIndex to hypoIndexes */ static void -hypo_addIndex(hypoIndex *entry) +hypo_addIndex(hypoIndex * entry) { MemoryContext oldcontext; @@ -364,13 +365,13 @@ hypo_index_store_parsetree(IndexStmt *node, const char *queryString) if (node->unique && !entry->amcanunique) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("hypopg: access method \"%s\" does not support unique indexes", - node->accessMethod))); + errmsg("hypopg: access method \"%s\" does not support unique indexes", + node->accessMethod))); if (nkeycolumns > 1 && !entry->amcanmulticol) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("hypopg: access method \"%s\" does not support multicolumn indexes", - node->accessMethod))); + errmsg("hypopg: access method \"%s\" does not support multicolumn indexes", + node->accessMethod))); entry->unique = node->unique; entry->ncolumns = nkeycolumns + ninccolumns; @@ -446,8 +447,8 @@ hypo_index_store_parsetree(IndexStmt *node, const char *queryString) * they're only computed when a real index exists (selectivity * and average width). */ - MemoryContext oldcontext; - Node *expr = attribute->expr; + MemoryContext oldcontext; + Node *expr = attribute->expr; Assert(expr != NULL); entry->indexcollations[attn] = exprCollation(attribute->expr); @@ -470,7 +471,9 @@ hypo_index_store_parsetree(IndexStmt *node, const char *queryString) * Treat it like simple attribute anyway. */ entry->indexkeys[attn] = ((Var *) expr)->varattno; - /* Generated index name will have _expr instead of attname + + /* + * Generated index name will have _expr instead of attname * in generated index name, and error message will also be * slighty different in case on unexisting column from a * simple attribute, but that's how ComputeIndexAttrs() @@ -502,7 +505,7 @@ hypo_index_store_parsetree(IndexStmt *node, const char *queryString) oldcontext = MemoryContextSwitchTo(HypoMemoryContext); entry->indexprs = lappend(entry->indexprs, - (Node *) copyObject(attribute->expr)); + (Node *) copyObject(attribute->expr)); MemoryContextSwitchTo(oldcontext); } } @@ -565,7 +568,7 @@ hypo_index_store_parsetree(IndexStmt *node, const char *queryString) entry->nulls_first[attn] = true; } else if (attribute->nulls_ordering == SORTBY_NULLS_FIRST) - entry->nulls_first[attn] = true; + entry->nulls_first[attn] = true; } /* handle index-only scan info */ @@ -587,7 +590,7 @@ hypo_index_store_parsetree(IndexStmt *node, const char *queryString) #else /* per-column IOS information */ entry->canreturn[attn] = hypo_can_return(entry, atttype, attn, - node->accessMethod); + node->accessMethod); #endif attn++; @@ -606,7 +609,7 @@ hypo_index_store_parsetree(IndexStmt *node, const char *queryString) if (attno < 0 && attno != ObjectIdAttributeNumber) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("hypopg: index creation on system columns is not supported"))); + errmsg("hypopg: index creation on system columns is not supported"))); } @@ -673,19 +676,20 @@ hypo_index_store_parsetree(IndexStmt *node, const char *queryString) /* per-column IOS information */ entry->canreturn[attn] = hypo_can_return(entry, atttype, attn, - node->accessMethod); + node->accessMethod); attn++; } Assert(attn == (nkeycolumns + ninccolumns)); #endif + /* * Also check for system columns used in expressions or predicates. */ if (entry->indexprs || entry->indpred) { Bitmapset *indexattrs = NULL; - int i; + int i; pull_varattnos((Node *) entry->indexprs, 1, &indexattrs); pull_varattnos((Node *) entry->indpred, 1, &indexattrs); @@ -697,7 +701,7 @@ hypo_index_store_parsetree(IndexStmt *node, const char *queryString) indexattrs)) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("hypopg: index creation on system columns is not supported"))); + errmsg("hypopg: index creation on system columns is not supported"))); } } @@ -711,9 +715,9 @@ hypo_index_store_parsetree(IndexStmt *node, const char *queryString) "exceeds maximum %ld", ind_avg_width, HYPO_BTMaxItemSize), errhint("Values larger than 1/3 of a buffer page " - "cannot be indexed.\nConsider a function index " - " of an MD5 hash of the value, or use full text " - "indexing\n(which is not yet supported by hypopg)." + "cannot be indexed.\nConsider a function index " + " of an MD5 hash of the value, or use full text " + "indexing\n(which is not yet supported by hypopg)." ))); /* Warn about posssible error with a 80% avg size */ else if (ind_avg_width >= HYPO_BTMaxItemSize * .8) @@ -723,9 +727,9 @@ hypo_index_store_parsetree(IndexStmt *node, const char *queryString) "is close to maximum %ld", ind_avg_width, HYPO_BTMaxItemSize), errhint("Values larger than 1/3 of a buffer page " - "cannot be indexed.\nConsider a function index " - " of an MD5 hash of the value, or use full text " - "indexing\n(which is not yet supported by hypopg)." + "cannot be indexed.\nConsider a function index " + " of an MD5 hash of the value, or use full text " + "indexing\n(which is not yet supported by hypopg)." ))); } @@ -829,7 +833,7 @@ hypo_index_remove(Oid indexid) /* pfree all allocated memory for within an hypoIndex and the entry itself. */ static void -hypo_index_pfree(hypoIndex *entry) +hypo_index_pfree(hypoIndex * entry) { /* pfree all memory that has been allocated */ pfree(entry->indexname); @@ -873,15 +877,15 @@ hypo_injectHypotheticalIndex(PlannerInfo *root, bool inhparent, RelOptInfo *rel, Relation relation, - hypoIndex *entry) + hypoIndex * entry) { IndexOptInfo *index; int ncolumns, - /* - * For convenience and readability, use nkeycolumns even for - * pg10- version. In this case, this var will be initialized - * to ncolumns - */ + + /* + * For convenience and readability, use nkeycolumns even for pg10- + * version. In this case, this var will be initialized to ncolumns + */ nkeycolumns, i; @@ -1112,7 +1116,7 @@ hypopg(PG_FUNCTION_ARGS) Datum values[HYPO_INDEX_NB_COLS]; bool nulls[HYPO_INDEX_NB_COLS]; ListCell *lc2; - StringInfoData exprsString; + StringInfoData exprsString; int i = 0; memset(values, 0, sizeof(values)); @@ -1133,7 +1137,7 @@ hypopg(PG_FUNCTION_ARGS) initStringInfo(&exprsString); foreach(lc2, entry->indexprs) { - Node *expr = lfirst(lc2); + Node *expr = lfirst(lc2); appendStringInfo(&exprsString, "%s", nodeToString(expr)); } @@ -1219,7 +1223,7 @@ hypopg_create_index(PG_FUNCTION_ARGS) Node *parsetree = (Node *) lfirst(parsetree_item); Datum values[HYPO_INDEX_CREATE_COLS]; bool nulls[HYPO_INDEX_CREATE_COLS]; - const hypoIndex *entry; + const hypoIndex *entry; memset(values, 0, sizeof(values)); memset(nulls, 0, sizeof(nulls)); @@ -1300,13 +1304,14 @@ hypopg_relation_size(PG_FUNCTION_ARGS) Datum hypopg_get_indexdef(PG_FUNCTION_ARGS) { - Oid indexid = PG_GETARG_OID(0); - ListCell *indexpr_item; - StringInfoData buf; - hypoIndex *entry = NULL; - ListCell *lc; - List *context; - int keyno, cpt = 0; + Oid indexid = PG_GETARG_OID(0); + ListCell *indexpr_item; + StringInfoData buf; + hypoIndex *entry = NULL; + ListCell *lc; + List *context; + int keyno, + cpt = 0; foreach(lc, hypoIndexes) { @@ -1321,16 +1326,16 @@ hypopg_get_indexdef(PG_FUNCTION_ARGS) initStringInfo(&buf); appendStringInfo(&buf, "CREATE %s ON %s.%s USING %s (", - (entry->unique ? "UNIQUE INDEX" : "INDEX"), - quote_identifier(get_namespace_name(get_rel_namespace(entry->relid))), - quote_identifier(get_rel_name(entry->relid)), - get_am_name(entry->relam)); + (entry->unique ? "UNIQUE INDEX" : "INDEX"), + quote_identifier(get_namespace_name(get_rel_namespace(entry->relid))), + quote_identifier(get_rel_name(entry->relid)), + get_am_name(entry->relam)); indexpr_item = list_head(entry->indexprs); context = deparse_context_for(get_rel_name(entry->relid), entry->relid); - for (keyno=0; keynonkeycolumns; keyno++) + for (keyno = 0; keyno < entry->nkeycolumns; keyno++) { Oid indcoll; Oid keycoltype; @@ -1345,10 +1350,10 @@ hypopg_get_indexdef(PG_FUNCTION_ARGS) int32 keycoltypmod; #if PG_VERSION_NUM >= 110000 appendStringInfo(&buf, "%s", get_attname(entry->relid, - entry->indexkeys[keyno], false)); + entry->indexkeys[keyno], false)); #else appendStringInfo(&buf, "%s", get_attname(entry->relid, - entry->indexkeys[keyno])); + entry->indexkeys[keyno])); #endif get_atttypetypmodcoll(entry->relid, entry->indexkeys[keyno], @@ -1370,7 +1375,7 @@ hypopg_get_indexdef(PG_FUNCTION_ARGS) /* Need parens if it's not a bare function call */ if (indexkey && IsA(indexkey, FuncExpr) && - ((FuncExpr *) indexkey)->funcformat == COERCE_EXPLICIT_CALL) + ((FuncExpr *) indexkey)->funcformat == COERCE_EXPLICIT_CALL) appendStringInfoString(&buf, str); else appendStringInfo(&buf, "(%s)", str); @@ -1417,13 +1422,13 @@ hypopg_get_indexdef(PG_FUNCTION_ARGS) if (entry->ncolumns > entry->nkeycolumns) { appendStringInfo(&buf, " INCLUDE ("); - for (keyno=entry->nkeycolumns; keynoncolumns; keyno++) + for (keyno = entry->nkeycolumns; keyno < entry->ncolumns; keyno++) { if (keyno != entry->nkeycolumns) appendStringInfo(&buf, ", "); appendStringInfo(&buf, "%s", get_attname(entry->relid, - entry->indexkeys[keyno], false)); + entry->indexkeys[keyno], false)); } appendStringInfo(&buf, ")"); } @@ -1435,7 +1440,7 @@ hypopg_get_indexdef(PG_FUNCTION_ARGS) foreach(lc, entry->options) { - DefElem *elem = (DefElem *) lfirst(lc); + DefElem *elem = (DefElem *) lfirst(lc); appendStringInfo(&buf, "%s = ", elem->defname); @@ -1446,8 +1451,8 @@ hypopg_get_indexdef(PG_FUNCTION_ARGS) else if (strcmp(elem->defname, "length") == 0) appendStringInfo(&buf, "%d", (int32) intVal(elem->arg)); else - elog(WARNING," hypopg: option %s unhandled, please report the bug", - elem->defname); + elog(WARNING, " hypopg: option %s unhandled, please report the bug", + elem->defname); } appendStringInfo(&buf, ")"); } @@ -1455,7 +1460,7 @@ hypopg_get_indexdef(PG_FUNCTION_ARGS) if (entry->indpred) { appendStringInfo(&buf, " WHERE %s", deparse_expression((Node *) - make_ands_explicit(entry->indpred), context, false, false)); + make_ands_explicit(entry->indpred), context, false, false)); } PG_RETURN_TEXT_P(cstring_to_text(buf.data)); @@ -1476,7 +1481,7 @@ hypopg_reset_index(PG_FUNCTION_ARGS) * ending \0 */ static void -hypo_set_indexname(hypoIndex *entry, char *indexname) +hypo_set_indexname(hypoIndex * entry, char *indexname) { char oid[12]; /* store , oid shouldn't be more than * 9999999999 */ @@ -1500,7 +1505,7 @@ hypo_set_indexname(hypoIndex *entry, char *indexname) * Fill the pages and tuples information for a given hypoIndex. */ static void -hypo_estimate_index_simple(hypoIndex *entry, BlockNumber *pages, double *tuples) +hypo_estimate_index_simple(hypoIndex * entry, BlockNumber *pages, double *tuples) { RelOptInfo *rel; Relation relation; @@ -1547,7 +1552,7 @@ hypo_estimate_index_simple(hypoIndex *entry, BlockNumber *pages, double *tuples) * RelOptInfo */ static void -hypo_estimate_index(hypoIndex *entry, RelOptInfo *rel) +hypo_estimate_index(hypoIndex * entry, RelOptInfo *rel) { int i, ind_avg_width = 0; @@ -1665,7 +1670,7 @@ hypo_estimate_index(hypoIndex *entry, RelOptInfo *rel) usable_page_size = BLCKSZ - SizeOfPageHeaderData - sizeof(BTPageOpaqueData); bloat_factor = (200.0 - - (fillfactor == 0 ? BTREE_DEFAULT_FILLFACTOR : fillfactor) + - (fillfactor == 0 ? BTREE_DEFAULT_FILLFACTOR : fillfactor) + additional_bloat) / 100; entry->pages = (BlockNumber) (entry->tuples * line_size * bloat_factor / usable_page_size); @@ -1697,8 +1702,8 @@ hypo_estimate_index(hypoIndex *entry, RelOptInfo *rel) * BRIN access method does not bloat, don't add any additional. */ - entry->pages = 1 /* root page */ - + (ranges / REVMAP_PAGE_MAXITEMS) + 1; /* revmap */ + entry->pages = 1 /* root page */ + + (ranges / REVMAP_PAGE_MAXITEMS) + 1; /* revmap */ /* get the operator class name */ ht_opc = SearchSysCache1(CLAOID, @@ -1749,9 +1754,9 @@ hypo_estimate_index(hypoIndex *entry, RelOptInfo *rel) line_size = BLOOMTUPLEHDRSZ + sizeof_SignType * bloomLength; - entry->pages = 1; /* meta page */ + entry->pages = 1; /* meta page */ entry->pages += (BlockNumber) ceil( - ((double) entry->tuples * line_size) / usable_page_size); + ((double) entry->tuples * line_size) / usable_page_size); } #endif else @@ -1770,10 +1775,11 @@ hypo_estimate_index(hypoIndex *entry, RelOptInfo *rel) * Estimate a single index's column of an hypothetical index. */ static int -hypo_estimate_index_colsize(hypoIndex *entry, int col) +hypo_estimate_index_colsize(hypoIndex * entry, int col) { - int i, pos; - Node *expr; + int i, + pos; + Node *expr; /* If simple attribute, return avg width */ if (entry->indexkeys[col] != 0) @@ -1782,7 +1788,7 @@ hypo_estimate_index_colsize(hypoIndex *entry, int col) /* It's an expression */ pos = 0; - for (i=0; iindexkeys[i] == 0) @@ -1791,41 +1797,41 @@ hypo_estimate_index_colsize(hypoIndex *entry, int col) expr = (Node *) list_nth(entry->indexprs, pos); - if (IsA(expr, Var) && ((Var *) expr)->varattno != InvalidAttrNumber) + if (IsA(expr, Var) &&((Var *) expr)->varattno != InvalidAttrNumber) return get_attavgwidth(entry->relid, ((Var *) expr)->varattno); if (IsA(expr, FuncExpr)) { - FuncExpr *funcexpr = (FuncExpr *) expr; + FuncExpr *funcexpr = (FuncExpr *) expr; switch (funcexpr->funcid) { case 2311: /* md5 */ return 32; - break; + break; case 870: case 871: - { - /* lower and upper, detect if simple attr */ - Var *var; - - if (IsA(linitial(funcexpr->args), Var)) { - var = (Var *) linitial(funcexpr->args); + /* lower and upper, detect if simple attr */ + Var *var; - if (var->varattno > 0) - return get_attavgwidth(entry->relid, var->varattno); + if (IsA(linitial(funcexpr->args), Var)) + { + var = (Var *) linitial(funcexpr->args); + + if (var->varattno > 0) + return get_attavgwidth(entry->relid, var->varattno); + } + break; } - break; - } default: /* default fallback estimate will be used */ - break; + break; } } - return 50; /* default fallback estimate */ + return 50; /* default fallback estimate */ } /* @@ -1833,7 +1839,7 @@ hypo_estimate_index_colsize(hypoIndex *entry, int col) * can't be done without a real Relation, so try to find it out */ static bool -hypo_can_return(hypoIndex *entry, Oid atttype, int i, char *amname) +hypo_can_return(hypoIndex * entry, Oid atttype, int i, char *amname) { /* no amcanreturn entry, am does not handle IOS */ #if PG_VERSION_NUM >= 90600 diff --git a/include/hypopg.h b/include/hypopg.h index 1dcbc1c..6e40ceb 100644 --- a/include/hypopg.h +++ b/include/hypopg.h @@ -20,10 +20,11 @@ #include "include/hypopg_import.h" extern bool isExplain; + /* GUC for enabling / disabling hypopg during EXPLAIN */ extern bool hypo_is_enabled; extern MemoryContext HypoMemoryContext; -Oid hypo_getNewOid(Oid relid); +Oid hypo_getNewOid(Oid relid); #endif diff --git a/include/hypopg_import.h b/include/hypopg_import.h index c948ce9..6d44677 100644 --- a/include/hypopg_import.h +++ b/include/hypopg_import.h @@ -24,9 +24,9 @@ MAXALIGN(sizeof(BTPageOpaqueData))) / 3) extern List *build_index_tlist(PlannerInfo *root, IndexOptInfo *index, - Relation heapRelation); -extern Oid GetIndexOpClass(List *opclass, Oid attrType, - char *accessMethodName, Oid accessMethodId); + Relation heapRelation); +extern Oid GetIndexOpClass(List *opclass, Oid attrType, + char *accessMethodName, Oid accessMethodId); extern void CheckPredicate(Expr *predicate); extern bool CheckMutability(Expr *expr); diff --git a/include/hypopg_index.h b/include/hypopg_index.h index 3738533..0c56db0 100644 --- a/include/hypopg_index.h +++ b/include/hypopg_index.h @@ -22,7 +22,8 @@ #include "tcop/utility.h" #define HYPO_INDEX_NB_COLS 12 /* # of column hypopg() returns */ -#define HYPO_INDEX_CREATE_COLS 2 /* # of column hypopg_create_index() returns */ +#define HYPO_INDEX_CREATE_COLS 2 /* # of column hypopg_create_index() + * returns */ #if PG_VERSION_NUM >= 90600 /* hardcode some bloom values, bloom.h is not exported */ @@ -95,37 +96,37 @@ typedef struct hypoIndex #if PG_VERSION_NUM >= 110000 bool amcanparallel; /* does AM support parallel scan? */ #endif - bool amcanunique; /* does AM support UNIQUE indexes? */ - bool amcanmulticol; /* does AM support multi-column indexes? */ + bool amcanunique; /* does AM support UNIQUE indexes? */ + bool amcanmulticol; /* does AM support multi-column indexes? */ /* store some informations usually saved in catalogs */ List *options; /* WITH clause options: a list of DefElem */ bool amcanorder; /* does AM support order by column value? */ -} hypoIndex; +} hypoIndex; /* List of hypothetic indexes for current backend */ -extern List *hypoIndexes; +extern List *hypoIndexes; /*--- Functions --- */ -void hypo_index_reset(void); +void hypo_index_reset(void); -PGDLLEXPORT Datum hypopg(PG_FUNCTION_ARGS); -PGDLLEXPORT Datum hypopg_create_index(PG_FUNCTION_ARGS); -PGDLLEXPORT Datum hypopg_drop_index(PG_FUNCTION_ARGS); -PGDLLEXPORT Datum hypopg_relation_size(PG_FUNCTION_ARGS); -PGDLLEXPORT Datum hypopg_get_indexdef(PG_FUNCTION_ARGS); -PGDLLEXPORT Datum hypopg_reset_index(PG_FUNCTION_ARGS); +PGDLLEXPORT Datum hypopg(PG_FUNCTION_ARGS); +PGDLLEXPORT Datum hypopg_create_index(PG_FUNCTION_ARGS); +PGDLLEXPORT Datum hypopg_drop_index(PG_FUNCTION_ARGS); +PGDLLEXPORT Datum hypopg_relation_size(PG_FUNCTION_ARGS); +PGDLLEXPORT Datum hypopg_get_indexdef(PG_FUNCTION_ARGS); +PGDLLEXPORT Datum hypopg_reset_index(PG_FUNCTION_ARGS); extern explain_get_index_name_hook_type prev_explain_get_index_name_hook; const char *hypo_explain_get_index_name_hook(Oid indexId); -void hypo_injectHypotheticalIndex(PlannerInfo *root, - Oid relationObjectId, - bool inhparent, - RelOptInfo *rel, - Relation relation, - hypoIndex *entry); +void hypo_injectHypotheticalIndex(PlannerInfo *root, + Oid relationObjectId, + bool inhparent, + RelOptInfo *rel, + Relation relation, + hypoIndex * entry); #endif diff --git a/typedefs.list b/typedefs.list index 625e860..8cc033e 100644 --- a/typedefs.list +++ b/typedefs.list @@ -1,11 +1,10 @@ -hypoEntry ABITVEC ACCESS_ALLOWED_ACE ACL ACL_SIZE_INFORMATION -AES_KEY AFFIX ASN1_INTEGER +ASN1_OBJECT ASN1_STRING AV A_ArrayExpr @@ -16,12 +15,12 @@ A_Indices A_Indirection A_Star AbsoluteTime +AccessMethodInfo AccessPriv Acl AclItem AclMaskHow AclMode -AclObjectKind AclResult AcquireSampleRowsFunc ActiveSnapshotElt @@ -35,17 +34,21 @@ AfterTriggerEventList AfterTriggerShared AfterTriggerSharedData AfterTriggersData +AfterTriggersQueryData +AfterTriggersTableData +AfterTriggersTransData Agg AggClauseCosts -AggHashEntry AggInfo +AggPath +AggSplit AggState AggStatePerAgg AggStatePerGroup -AggStatePerGroupData +AggStatePerHash AggStatePerPhase +AggStatePerTrans AggStrategy -AggVals Aggref AggrefExprState AlenState @@ -55,8 +58,10 @@ AllocChunk AllocPointer AllocSet AllocSetContext +AllocSetFreeList AllocateDesc AllocateDescKind +AlterCollationStmt AlterDatabaseSetStmt AlterDatabaseStmt AlterDefaultPrivilegesStmt @@ -68,13 +73,18 @@ AlterExtensionStmt AlterFdwStmt AlterForeignServerStmt AlterFunctionStmt +AlterObjectDependsStmt AlterObjectSchemaStmt AlterOpFamilyStmt +AlterOperatorStmt AlterOwnerStmt AlterPolicyStmt +AlterPublicationStmt AlterRoleSetStmt AlterRoleStmt AlterSeqStmt +AlterSubscriptionStmt +AlterSubscriptionType AlterSystemStmt AlterTSConfigType AlterTSConfigurationStmt @@ -98,10 +108,11 @@ AppendPath AppendRelInfo AppendState Archive -ArchiveEntryPtr +ArchiveEntryPtrType ArchiveFormat ArchiveHandle ArchiveMode +ArchiveOpts ArchiverOutput ArchiverStage ArrayAnalyzeExtraData @@ -109,32 +120,33 @@ ArrayBuildState ArrayBuildStateAny ArrayBuildStateArr ArrayCoerceExpr -ArrayCoerceExprState ArrayConstIterState ArrayExpr ArrayExprIterState -ArrayExprState +ArrayIOData ArrayIterator ArrayMapState ArrayMetaState ArrayParseState -ArrayRef -ArrayRefExprState ArrayType AsyncQueueControl AsyncQueueEntry AttInMetadata +AttStatsSlot AttoptCacheEntry AttoptCacheKey AttrDefInfo AttrDefault +AttrMissing AttrNumber AttributeOpts AuthRequest +AutoPrewarmSharedState AutoVacOpts AutoVacuumShmemStruct +AutoVacuumWorkItem +AutoVacuumWorkItemType AuxProcType -BF_KEY BF_ctx BF_key BF_word @@ -154,17 +166,25 @@ BTArrayKeyInfo BTBuildState BTCycleId BTIndexStat +BTInsertState +BTInsertStateData +BTLeader BTMetaPageData BTOneVacInfo +BTPS_State BTPageOpaque BTPageOpaqueData BTPageStat BTPageState +BTParallelScanDesc +BTScanInsert +BTScanInsertData BTScanOpaque BTScanOpaqueData BTScanPos BTScanPosData BTScanPosItem +BTShared BTSortArrayContext BTSpool BTStack @@ -177,16 +197,22 @@ Backend BackendId BackendParameters BackendState +BackendType BackgroundWorker BackgroundWorkerArray BackgroundWorkerHandle BackgroundWorkerSlot +Barrier BaseBackupCmd +BeginDirectModify_function +BeginForeignInsert_function BeginForeignModify_function BeginForeignScan_function +BeginSampleScan_function BernoulliSamplerData BgWorkerStartTime BgwHandleStatus +BinaryArithmFunc BipartiteMatchState BitmapAnd BitmapAndPath @@ -204,13 +230,25 @@ BlobInfo Block BlockId BlockIdData +BlockInfoRecord BlockNumber BlockSampler BlockSamplerData +BlockedProcData +BlockedProcsData +BloomBuildState +BloomMetaPageData +BloomOptions +BloomPageOpaque +BloomPageOpaqueData +BloomScanOpaque +BloomScanOpaqueData +BloomSignatureWord +BloomState +BloomTuple BlowfishContext BoolAggState BoolExpr -BoolExprState BoolExprType BoolTestType BooleanTest @@ -224,11 +262,13 @@ BrinOpcInfo BrinOptions BrinRevmap BrinSpecialSpace +BrinStatsData BrinTuple BrinValues +BtreeCheckState +BtreeLevel Bucket BufFile -BufFlags Buffer BufferAccessStrategy BufferAccessStrategyType @@ -236,15 +276,19 @@ BufferCachePagesContext BufferCachePagesRec BufferDesc BufferDescPadded +BufferHeapTupleTableSlot BufferLookupEnt BufferStrategyControl BufferTag BufferUsage BuildAccumulator +BuiltinScript BulkInsertState +BulkInsertStateData CACHESIGN CAC_state -CAST_KEY +CCFastEqualFN +CCHashFN CEOUC_WAIT_MODE CFuncHashTabEntry CHAR @@ -255,17 +299,20 @@ CMPDAffix CONTEXT COP CRITICAL_SECTION +CRSSnapshotAction CState +CTEMaterialize CV C_block +CachedExpression CachedPlan CachedPlanSource +CallContext +CallStmt CancelRequestPacket CaseExpr -CaseExprState CaseTestExpr CaseWhen -CaseWhenState Cash CastInfo CatCList @@ -281,27 +328,27 @@ CheckpointStatsData CheckpointerRequest CheckpointerShmemStruct Chromosome -City +CkptSortItem +CkptTsStatus ClientAuthentication_hook_type +ClientCertMode ClientData -ClonePtr +ClonePtrType ClosePortalStmt -ClosePtr +ClosePtrType Clump ClusterInfo ClusterStmt CmdType CoalesceExpr -CoalesceExprState CoerceParamHook CoerceToDomain -CoerceToDomainState CoerceToDomainValue CoerceViaIO -CoerceViaIOState CoercionContext CoercionForm CoercionPathType +CollAliasData CollInfo CollateClause CollateExpr @@ -315,6 +362,8 @@ ColumnCompareData ColumnDef ColumnIOData ColumnRef +ColumnsHashData +CombinationGenerator ComboCidEntry ComboCidEntryData ComboCidKey @@ -329,15 +378,21 @@ CommitTimestampShared CommonEntry CommonTableExpr CompareScalarsContext +CompiledExprState +CompositeIOData CompositeTypeStmt +CompoundAffixFlag CompressionAlgorithm CompressorState -ConfigFileVariable +ConditionVariable +ConditionalStack +ConfigData ConfigVariable ConnCacheEntry ConnCacheKey ConnStatusType ConnType +ConnectionStateEnum ConsiderSplitContext Const ConstrCheck @@ -352,9 +407,11 @@ ConvInfo ConvProcInfo ConversionLocation ConvertRowtypeExpr -ConvertRowtypeExprState CookedConstraint CopyDest +CopyInsertMethod +CopyMultiInsertBuffer +CopyMultiInsertInfo CopyState CopyStateData CopyStmt @@ -363,6 +420,7 @@ CostSelector Counters CoverExt CoverPos +CreateAmStmt CreateCastStmt CreateConversionStmt CreateDomainStmt @@ -378,14 +436,17 @@ CreateOpClassStmt CreateOpFamilyStmt CreatePLangStmt CreatePolicyStmt +CreatePublicationStmt CreateRangeStmt CreateReplicationSlotCmd CreateRoleStmt CreateSchemaStmt CreateSchemaStmtContext CreateSeqStmt +CreateStatsStmt CreateStmt CreateStmtContext +CreateSubscriptionStmt CreateTableAsStmt CreateTableSpaceStmt CreateTransformStmt @@ -401,20 +462,16 @@ CtlCommand CtxtHandle CurrentOfExpr CustomExecMethods -CustomOutPtr +CustomOutPtrType CustomPath -CustomPathMethods CustomScan CustomScanMethods CustomScanState CycleCtr DBState -DBWriteRequest DCHCacheEntry DEADLOCK_INFO DECountItem -DES_cblock -DES_key_schedule DH DIR DNSServiceErrorType @@ -424,6 +481,7 @@ DR_intorel DR_printtup DR_sqlfunction DR_transientrel +DSA DWORD DataDumperPtr DataPageDeleteStack @@ -432,7 +490,7 @@ Datum DatumTupleFields DbInfo DbInfoArr -DeClonePtr +DeClonePtrType DeadLockState DeallocateStmt DeclareCursorStmt @@ -443,6 +501,8 @@ DefElemAction DefaultACLInfo DefineStmt DeleteStmt +DependencyGenerator +DependencyGeneratorData DependencyType DestReceiver DictISpell @@ -452,6 +512,9 @@ DictSnowball DictSubState DictSyn DictThesaurus +DimensionInfo +DirectoryMethodData +DirectoryMethodFile DisableTimeoutParams DiscardMode DiscardStmt @@ -468,11 +531,14 @@ DropOwnedStmt DropReplicationSlotCmd DropRoleStmt DropStmt +DropSubscriptionStmt DropTableSpaceStmt DropUserMappingStmt DropdbStmt +DumpComponents DumpId DumpOptions +DumpSignalInformation DumpableObject DumpableObjectType DynamicFileList @@ -485,24 +551,36 @@ EOM_get_flat_size_method EPQState EPlan EState +EVP_CIPHER +EVP_CIPHER_CTX EVP_MD EVP_MD_CTX EVP_PKEY EachState Edge +EditableObjectType ElementsState EnableTimeoutParams -EndBlobPtr -EndBlobsPtr -EndDataPtr +EndBlobPtrType +EndBlobsPtrType +EndDataPtrType +EndDirectModify_function +EndForeignInsert_function EndForeignModify_function EndForeignScan_function +EndSampleScan_function EnumItem EolType +EphemeralNameRelationType +EphemeralNamedRelation +EphemeralNamedRelationData +EphemeralNamedRelationMetadata +EphemeralNamedRelationMetadataData EquivalenceClass EquivalenceMember ErrorContextCallback ErrorData +EstimateDSMForeignScan_function EventTriggerCacheEntry EventTriggerCacheItem EventTriggerCacheStateType @@ -512,10 +590,16 @@ EventTriggerInfo EventTriggerQueryState ExceptionLabelMap ExceptionMap +ExclusiveBackupState ExecAuxRowMark +ExecEvalSubroutine ExecForeignDelete_function ExecForeignInsert_function ExecForeignUpdate_function +ExecParallelEstimateContext +ExecParallelInitializeDSMContext +ExecPhraseData +ExecProcNodeMtd ExecRowMark ExecScanAccessMtd ExecScanRecheckMtd @@ -530,22 +614,32 @@ ExecutorStart_hook_type ExpandedArrayHeader ExpandedObjectHeader ExpandedObjectMethods +ExpandedRecordFieldInfo +ExpandedRecordHeader +ExplainDirectModify_function ExplainForeignModify_function ExplainForeignScan_function ExplainFormat ExplainOneQuery_hook_type ExplainState ExplainStmt +ExportedSnapshot Expr ExprContext ExprContextCallbackFunction ExprContext_CB ExprDoneCond +ExprEvalOp +ExprEvalOpLookup +ExprEvalStep ExprState ExprStateEvalFunc -ExtensionBehavior +ExtensibleNode +ExtensibleNodeEntry +ExtensibleNodeMethods ExtensionControlFile ExtensionInfo +ExtensionMemberId ExtensionVersionInfo FDWCollateState FD_SET @@ -554,7 +648,6 @@ FILETIME FSMAddress FSMPage FSMPageData -FState FakeRelCacheEntry FakeRelCacheEntryData FastPathStrongRelationLockData @@ -564,21 +657,26 @@ FetchDirection FetchStmt FieldNot FieldSelect -FieldSelectState FieldStore -FieldStoreState File FileFdwExecutionState FileFdwPlanState -FileName FileNameMap +FileTag +FinalPathExtraData FindSplitData +FindSplitStrat +FixedParallelExecutorState FixedParallelState FixedParamState +FlagMode +FlushPosition FmgrBuiltin FmgrHookEventType FmgrInfo ForeignDataWrapper +ForeignKeyCacheInfo +ForeignKeyOptInfo ForeignPath ForeignScan ForeignScanState @@ -617,16 +715,22 @@ FormData_pg_namespace FormData_pg_opclass FormData_pg_operator FormData_pg_opfamily +FormData_pg_partitioned_table FormData_pg_pltemplate FormData_pg_policy FormData_pg_proc +FormData_pg_publication +FormData_pg_publication_rel FormData_pg_range FormData_pg_replication_origin FormData_pg_rewrite FormData_pg_sequence +FormData_pg_sequence_data FormData_pg_shdepend FormData_pg_statistic -FormData_pg_tablesample_method +FormData_pg_statistic_ext +FormData_pg_subscription +FormData_pg_subscription_rel FormData_pg_tablespace FormData_pg_transform FormData_pg_trigger @@ -668,16 +772,22 @@ Form_pg_namespace Form_pg_opclass Form_pg_operator Form_pg_opfamily +Form_pg_partitioned_table Form_pg_pltemplate Form_pg_policy Form_pg_proc +Form_pg_publication +Form_pg_publication_rel Form_pg_range Form_pg_replication_origin Form_pg_rewrite Form_pg_sequence +Form_pg_sequence_data Form_pg_shdepend Form_pg_statistic -Form_pg_tablesample_method +Form_pg_statistic_ext +Form_pg_subscription +Form_pg_subscription_rel Form_pg_tablespace Form_pg_transform Form_pg_trigger @@ -689,18 +799,28 @@ Form_pg_ts_template Form_pg_type Form_pg_user_mapping FormatNode +FreeBlockNumberArray +FreeListData +FreePageBtree +FreePageBtreeHeader +FreePageBtreeInternalKey +FreePageBtreeLeafKey +FreePageBtreeSearchResult +FreePageManager +FreePageSpanLeader FromCharDateMode FromExpr +FullTransactionId FuncCall FuncCallContext FuncCandidateList FuncDetailCode FuncExpr -FuncExprState FuncInfo -FuncWithArgs +FuncLookupError +Function FunctionCallInfo -FunctionCallInfoData +FunctionCallInfoBaseData FunctionParameter FunctionParameterMode FunctionScan @@ -729,16 +849,29 @@ GISTSearchHeapItem GISTSearchItem GISTTYPE GIST_SPLITVEC +GMReaderTupleBuffer GV +Gather +GatherMerge +GatherMergePath +GatherMergeState +GatherPath +GatherState Gene +GeneratePruningStepsContext +GenerationBlock +GenerationChunk +GenerationContext +GenerationPointer GenericCosts -GenericExprState +GenericXLogState GeqoPrivateData GetForeignJoinPaths_function GetForeignPaths_function GetForeignPlan_function GetForeignRelSize_function GetForeignRowMarkType_function +GetForeignUpperPaths_function GetState GiSTOptions GinBtree @@ -748,6 +881,7 @@ GinBtreeEntryInsertData GinBtreeStack GinBuildState GinChkVal +GinEntries GinEntryAccumulator GinIndexStat GinMetaPageData @@ -767,25 +901,29 @@ GinStatsData GinTernaryValue GinTupleCollector GinVacuumState -GistBDItem GistBufferingMode +GistBulkDeleteResult GistEntryVector GistInetKey GistNSN GistSplitUnion GistSplitVector +GistVacState GlobalTransaction -GrantObjectType GrantRoleStmt GrantStmt GrantTargetType Group +GroupPath +GroupPathExtraData +GroupResultPath GroupState GroupVarInfo GroupingFunc -GroupingFuncExprState GroupingSet +GroupingSetData GroupingSetKind +GroupingSetsPath GucAction GucBoolAssignHook GucBoolCheckHook @@ -823,7 +961,6 @@ HSParser HSpool HStore HTAB -HTSU_Result HTSV_Result HV Hash @@ -831,6 +968,8 @@ HashAllocFunc HashBuildState HashCompareFunc HashCopyFunc +HashIndexStat +HashInstrumentation HashJoin HashJoinState HashJoinTable @@ -840,16 +979,18 @@ HashMetaPage HashMetaPageData HashPageOpaque HashPageOpaqueData +HashPageStat HashPath -HashScanList -HashScanListData HashScanOpaque HashScanOpaqueData +HashScanPosData +HashScanPosItem HashSkewBucket HashState HashValueFunc HbaLine HbaToken +HeadlineJsonState HeadlineParsedText HeadlineWordEntry HeapScanDesc @@ -858,11 +999,14 @@ HeapTupleData HeapTupleFields HeapTupleHeader HeapTupleHeaderData -HeapUpdateFailureData +HeapTupleTableSlot HistControl HotStandbyState I32 +ICU_Convert_Func +ID INFIX +INT128 INTERFACE_INFO IOFuncSelector IPCompareMethod @@ -871,28 +1015,35 @@ IV IdentLine IdentifierLookup IdentifySystemCmd +IfStackElem ImportForeignSchemaStmt ImportForeignSchemaType ImportForeignSchema_function ImportQual +IncludeWal InclusionOpaque IncrementVarSublevelsUp_context Index +IndexAMProperty +IndexAmRoutine IndexArrayKeyInfo +IndexAttachInfo IndexAttrBitmapKind IndexBuildCallback IndexBuildResult IndexBulkDeleteCallback IndexBulkDeleteResult +IndexClause IndexClauseSet IndexElem +IndexFetchHeapData +IndexFetchTableData IndexInfo IndexList IndexOnlyScan IndexOnlyScanState IndexOptInfo IndexPath -IndexQualInfo IndexRuntimeKeyInfo IndexScan IndexScanDesc @@ -903,20 +1054,23 @@ IndexTuple IndexTupleData IndexUniqueCheck IndexVacuumInfo -IndirectBlock IndxInfo InferClause InferenceElem InfoItem InhInfo -InhOption InheritableSocket +InheritanceKind +InitSampleScan_function +InitializeDSMForeignScan_function +InitializeWorkerForeignScan_function InlineCodeBlock InsertStmt Instrumentation Int128AggState Int8TransTypeData -IntArray +IntRBTreeNode +IntegerSet InternalDefaultACL InternalGrant Interval @@ -925,24 +1079,33 @@ InvalidationChunk InvalidationListHeader IpcMemoryId IpcMemoryKey +IpcMemoryState IpcSemaphoreId IpcSemaphoreKey IsForeignRelUpdatable_function +IsForeignScanParallelSafe_function IspellDict Item ItemId ItemIdData -ItemLength -ItemOffset ItemPointer ItemPointerData +IterateDirectModify_function IterateForeignScan_function +IterateJsonStringValuesState JEntry JHashState JOBOBJECTINFOCLASS JOBOBJECT_BASIC_LIMIT_INFORMATION JOBOBJECT_BASIC_UI_RESTRICTIONS JOBOBJECT_SECURITY_LIMIT_INFORMATION +JitContext +JitInstrumentation +JitProviderCallbacks +JitProviderCompileExprCB +JitProviderInit +JitProviderReleaseContextCB +JitProviderResetAfterErrorCB Join JoinCostWorkspace JoinExpr @@ -951,13 +1114,41 @@ JoinPath JoinPathExtraData JoinState JoinType +JsObject +JsValue +JsonAggState +JsonBaseObjectInfo JsonHashEntry +JsonIterateStringValuesAction JsonLexContext +JsonLikeRegexContext JsonParseContext +JsonPath +JsonPathBool +JsonPathExecContext +JsonPathExecResult +JsonPathGinAddPathItemFunc +JsonPathGinContext +JsonPathGinExtractNodesFunc +JsonPathGinNode +JsonPathGinNodeType +JsonPathGinPath +JsonPathGinPathItem +JsonPathItem +JsonPathItemType +JsonPathKeyword +JsonPathParseItem +JsonPathParseResult +JsonPathPredicateCallback +JsonPathString JsonSemAction JsonTokenType +JsonTransformStringValuesAction JsonTypeCategory +JsonValueList +JsonValueListIterator Jsonb +JsonbAggState JsonbContainer JsonbInState JsonbIterState @@ -977,6 +1168,24 @@ LDAPMessage LDAPURLDesc LDAP_TIMEVAL LINE +LLVMAttributeRef +LLVMBasicBlockRef +LLVMBuilderRef +LLVMIntPredicate +LLVMJitContext +LLVMJitHandle +LLVMMemoryBufferRef +LLVMModuleRef +LLVMOrcJITStackRef +LLVMOrcModuleHandle +LLVMOrcTargetAddress +LLVMPassManagerBuilderRef +LLVMPassManagerRef +LLVMSharedModuleRef +LLVMTargetMachineRef +LLVMTargetRef +LLVMTypeRef +LLVMValueRef LOCALLOCK LOCALLOCKOWNER LOCALLOCKTAG @@ -1001,16 +1210,18 @@ LPTSTR LPVOID LPWSTR LSEG +LUID LVRelStats LWLock LWLockHandle +LWLockMinimallyPadded LWLockMode LWLockPadded -LWLockTranche LabelProvider +LagTracker LargeObjectDesc +LastAttnumInfo Latch -LateralJoinInfo LerpFunc LexDescr LexemeEntry @@ -1018,7 +1229,9 @@ LexemeHashKey LexemeInfo LexemeKey LexizeData +LibraryInfo Limit +LimitPath LimitState LimitStateCond List @@ -1042,10 +1255,12 @@ LockMethod LockMethodData LockRelId LockRows +LockRowsPath LockRowsState LockStmt LockTagType LockTupleMode +LockViewRecurse_context LockWaitPolicy LockingClause LogOpts @@ -1054,34 +1269,52 @@ LogicalDecodeBeginCB LogicalDecodeChangeCB LogicalDecodeCommitCB LogicalDecodeFilterByOriginCB +LogicalDecodeMessageCB LogicalDecodeShutdownCB LogicalDecodeStartupCB +LogicalDecodeTruncateCB LogicalDecodingContext LogicalErrorCallbackState LogicalOutputPluginInit LogicalOutputPluginWriterPrepareWrite +LogicalOutputPluginWriterUpdateProgress LogicalOutputPluginWriterWrite +LogicalRepBeginData +LogicalRepCommitData +LogicalRepCtxStruct +LogicalRepRelId +LogicalRepRelMapEntry +LogicalRepRelation +LogicalRepTupleData +LogicalRepTyp +LogicalRepWorker +LogicalRepWorkerId LogicalRewriteMappingData LogicalTape LogicalTapeSet MAGIC MBuf +MCVItem +MCVList MEMORY_BASIC_INFORMATION MINIDUMPWRITEDUMP MINIDUMP_TYPE MJEvalResult -MasterEndParallelItemPtr -MasterStartParallelItemPtr +MVDependencies +MVDependency +MVNDistinct +MVNDistinctItem Material MaterialPath MaterialState MdfdVec -MembersLiveRange MemoryContext MemoryContextCallback MemoryContextCallbackFunction +MemoryContextCounters MemoryContextData MemoryContextMethods +MemoryStatsPrintFunc MergeAppend MergeAppendPath MergeAppendState @@ -1090,17 +1323,23 @@ MergeJoinClause MergeJoinState MergePath MergeScanSelCache +MetaCommand MinMaxAggInfo +MinMaxAggPath MinMaxExpr -MinMaxExprState MinMaxOp MinimalTuple MinimalTupleData +MinimalTupleTableSlot MinmaxOpaque ModifyTable +ModifyTablePath ModifyTableState +MorphOpaque MsgType MultiAssignRef +MultiSortSupport +MultiSortSupportData MultiXactId MultiXactMember MultiXactOffset @@ -1115,7 +1354,12 @@ NUMProc NV Name NameData +NameHashEntry NamedArgExpr +NamedLWLockTranche +NamedLWLockTrancheRequest +NamedTuplestoreScan +NamedTuplestoreScanState NamespaceInfo NestLoop NestLoopParam @@ -1123,6 +1367,9 @@ NestLoopState NestPath NewColumnValue NewConstraint +NextSampleBlock_function +NextSampleTuple_function +NextValueExpr Node NodeTag NonEmptyRange @@ -1131,18 +1378,20 @@ NotifyStmt Nsrt NullIfExpr NullTest -NullTestState NullTestType +NullableDatum Numeric NumericAggState NumericDigit NumericSortSupport +NumericSumAccum NumericVar OM_uint32 OP OSAPerGroupState OSAPerQueryState OSInfo +OSSLCipher OSSLDigest OSVERSIONINFO OVERLAPPED @@ -1152,12 +1401,14 @@ ObjectAccessPostAlter ObjectAccessPostCreate ObjectAccessType ObjectAddress +ObjectAddressAndFlags ObjectAddressExtra ObjectAddressStack ObjectAddresses ObjectClass ObjectPropertyType ObjectType +ObjectWithArgs Offset OffsetNumber OffsetVarNodes_context @@ -1165,21 +1416,24 @@ Oid OidOptions OkeysState OldSerXidControl +OldSnapshotControlData OldToNewMapping OldToNewMappingData OldTriggerInfo -Oldstyle_fnextra OnCommitAction OnCommitItem OnConflictAction OnConflictClause OnConflictExpr +OnConflictSetState OpBtreeInterpretation OpClassCacheEnt OpExpr OpFamilyMember +OpFamilyOpFuncGroup OpclassInfo Operator +OperatorElement OpfamilyInfo OprCacheEntry OprCacheKey @@ -1192,14 +1446,19 @@ OutputPluginOptions OutputPluginOutputType OverrideSearchPath OverrideStackEntry +OverridingKind PACE_HEADER PACL PATH PBOOL PCtxtHandle PFN +PGAlignedBlock +PGAlignedXLogBlock PGAsyncStatusType PGCALL2 +PGChecksummablePage +PGContextVisibility PGEvent PGEventConnDestroy PGEventConnReset @@ -1216,6 +1475,7 @@ PGLZ_Strategy PGMessageField PGModuleMagicFunction PGNoticeHooks +PGOutputData PGPROC PGP_CFB PGP_Context @@ -1254,6 +1514,7 @@ PLpgSQL_arrayelem PLpgSQL_case_when PLpgSQL_condition PLpgSQL_datum +PLpgSQL_datum_type PLpgSQL_diag_item PLpgSQL_exception PLpgSQL_exception_block @@ -1261,10 +1522,15 @@ PLpgSQL_execstate PLpgSQL_expr PLpgSQL_func_hashkey PLpgSQL_function +PLpgSQL_getdiag_kind PLpgSQL_if_elsif +PLpgSQL_label_type PLpgSQL_nsitem +PLpgSQL_nsitem_type PLpgSQL_plugin +PLpgSQL_promise_type PLpgSQL_raise_option +PLpgSQL_raise_option_type PLpgSQL_rec PLpgSQL_recfield PLpgSQL_resolve_option @@ -1273,8 +1539,10 @@ PLpgSQL_stmt PLpgSQL_stmt_assert PLpgSQL_stmt_assign PLpgSQL_stmt_block +PLpgSQL_stmt_call PLpgSQL_stmt_case PLpgSQL_stmt_close +PLpgSQL_stmt_commit PLpgSQL_stmt_dynexecute PLpgSQL_stmt_dynfors PLpgSQL_stmt_execsql @@ -1294,32 +1562,45 @@ PLpgSQL_stmt_raise PLpgSQL_stmt_return PLpgSQL_stmt_return_next PLpgSQL_stmt_return_query +PLpgSQL_stmt_rollback +PLpgSQL_stmt_set +PLpgSQL_stmt_type PLpgSQL_stmt_while PLpgSQL_trigtype PLpgSQL_type +PLpgSQL_type_type PLpgSQL_var PLpgSQL_variable PLwdatum PLword +PLyArrayToOb PLyCursorObject PLyDatumToOb PLyDatumToObFunc PLyExceptionEntry PLyExecutionContext +PLyObToArray PLyObToDatum PLyObToDatumFunc +PLyObToDomain +PLyObToScalar +PLyObToTransform PLyObToTuple +PLyObject_AsString_t PLyPlanObject PLyProcedure PLyProcedureEntry PLyProcedureKey PLyResultObject +PLySRFState +PLySavedArgs +PLyScalarToOb PLySubtransactionData PLySubtransactionObject +PLyTransformToOb PLyTupleToOb -PLyTypeInfo -PLyTypeInput -PLyTypeOutput +PLyUnicode_FromStringAndSize_t +PLy_elog_impl_t PMINIDUMP_CALLBACK_INFORMATION PMINIDUMP_EXCEPTION_INFORMATION PMINIDUMP_USER_STREAM_INFORMATION @@ -1351,10 +1632,11 @@ PSQL_COMP_CASE PSQL_ECHO PSQL_ECHO_HIDDEN PSQL_ERROR_ROLLBACK -PTOKEN_GROUPS +PTEntryArray +PTIterationArray +PTOKEN_PRIVILEGES PTOKEN_USER -PVCAggregateBehavior -PVCPlaceHolderBehavior +PUTENVPROC PVOID PX_Alias PX_Cipher @@ -1362,18 +1644,33 @@ PX_Combo PX_HMAC PX_MD Page +PageData PageGistNSN PageHeader PageHeaderData PageXLogRecPtr PagetableEntry Pairs -ParallelArgs +ParallelAppendState +ParallelBitmapHeapState +ParallelBlockTableScanDesc +ParallelCompletionPtr ParallelContext +ParallelExecutorInfo +ParallelHashGrowth +ParallelHashJoinBatch +ParallelHashJoinBatchAccessor +ParallelHashJoinState +ParallelIndexScanDesc +ParallelReadyList ParallelSlot ParallelState +ParallelTableScanDesc +ParallelTableScanDescData +ParallelWorkerContext ParallelWorkerInfo Param +ParamCompileHook ParamExecData ParamExternData ParamFetchHook @@ -1388,31 +1685,79 @@ ParseNamespaceItem ParseParamRefHook ParseState ParsedLex +ParsedScript ParsedText ParsedWord ParserSetupHook ParserState +PartClauseInfo +PartClauseMatchStatus +PartClauseTarget +PartitionBoundInfo +PartitionBoundInfoData +PartitionBoundSpec +PartitionCmd +PartitionDesc +PartitionDescData +PartitionDirectory +PartitionDirectoryEntry +PartitionDispatch +PartitionElem +PartitionHashBound +PartitionKey +PartitionListValue +PartitionPruneCombineOp +PartitionPruneContext +PartitionPruneInfo +PartitionPruneState +PartitionPruneStep +PartitionPruneStepCombine +PartitionPruneStepOp +PartitionPruningData +PartitionRangeBound +PartitionRangeDatum +PartitionRangeDatumKind +PartitionRoutingInfo +PartitionScheme +PartitionSpec +PartitionTupleRouting +PartitionedRelPruneInfo +PartitionedRelPruningData +PartitionwiseAggregateType +PasswordType Path PathClauseUsage PathCostComparison PathHashStack PathKey PathKeysComparison +PathTarget Pattern_Prefix_Status Pattern_Type -PendingOperationEntry +PendingFsyncEntry PendingRelDelete PendingUnlinkEntry +PendingWriteback PerlInterpreter +Perl_check_t Perl_ppaddr_t Permutation +PgBackendGSSStatus PgBackendSSLStatus PgBackendStatus PgBenchExpr +PgBenchExprLink +PgBenchExprList PgBenchExprType +PgBenchFunction +PgBenchValue +PgBenchValueType +PgChecksumMode PgFdwAnalyzeState +PgFdwDirectModifyState PgFdwModifyState PgFdwOption +PgFdwPathExtraData PgFdwRelationInfo PgFdwScanState PgIfAddrCallback @@ -1428,6 +1773,7 @@ PgStat_MsgAnalyze PgStat_MsgArchiver PgStat_MsgAutovacStart PgStat_MsgBgWriter +PgStat_MsgChecksumFailure PgStat_MsgDeadlock PgStat_MsgDropdb PgStat_MsgDummy @@ -1462,6 +1808,7 @@ PipeProtoHeader PlaceHolderInfo PlaceHolderVar Plan +PlanDirectModify_function PlanForeignModify_function PlanInvalItem PlanRowMark @@ -1475,6 +1822,10 @@ Pointer PolicyInfo PolyNumAggState Pool +PopulateArrayContext +PopulateArrayState +PopulateRecordCache +PopulateRecordsetCache PopulateRecordsetState Port Portal @@ -1493,12 +1844,13 @@ PredXactList PredXactListElement PredicateLockData PredicateLockTargetType +PrepParallelRestorePtrType PrepareStmt PreparedParamsData PreparedStatement PrewarmType -PrintExtraTocPtr -PrintTocDataPtr +PrintExtraTocPtrType +PrintTocDataPtrType PrintfArgType PrintfArgValue PrintfTarget @@ -1513,22 +1865,36 @@ ProcState ProcessUtilityContext ProcessUtility_hook_type ProcessingMode +ProgressCommandType +ProjectSet +ProjectSetPath +ProjectSetState ProjectionInfo +ProjectionPath ProtocolVersion PrsStorage PruneState +PruneStepResult +PsqlScanCallbacks +PsqlScanQuoteType PsqlScanResult PsqlScanState PsqlScanStateData PsqlSettings +Publication +PublicationActions +PublicationInfo +PublicationRelInfo PullFilter PullFilterOps PushFilter PushFilterOps PushFunction +PyCFunction PyCodeObject PyMappingMethods PyMethodDef +PyModuleDef PyObject PySequenceMethods PyTypeObject @@ -1537,10 +1903,12 @@ QPRS_STATE QTN2QTState QTNode QUERYTYPE +QUERY_SECURITY_CONTEXT_TOKEN_FN QualCost QualItem Query QueryDesc +QueryEnvironment QueryInfo QueryItem QueryItemType @@ -1548,12 +1916,14 @@ QueryMode QueryOperand QueryOperator QueryRepresentation +QueryRepresentationOperand QuerySource QueueBackendStatus QueuePosition -RBNode -RBOrderControl +RBTNode +RBTOrderControl RBTree +RBTreeIterator REPARSE_JUNCTION_DATA_BUFFER RIX RI_CompareHashEntry @@ -1561,15 +1931,19 @@ RI_CompareKey RI_ConstraintInfo RI_QueryHashEntry RI_QueryKey -RSA RTEKind RWConflict RWConflictPoolHeader +RandomState +Range RangeBound +RangeBox RangeFunction RangeIOData RangeQueryClause RangeSubselect +RangeTableFunc +RangeTableFuncCol RangeTableSample RangeTblEntry RangeTblFunction @@ -1578,20 +1952,26 @@ RangeType RangeVar RangeVarGetRelidCallback RawColumnDefault +RawStmt +ReInitializeDSMForeignScan_function ReScanForeignScan_function -ReadBufPtr +ReadBufPtrType ReadBufferMode -ReadBytePtr -ReadExtraTocPtr +ReadBytePtrType +ReadExtraTocPtrType ReadFunc ReassignOwnedStmt +RecheckForeignScan_function RecordCacheEntry RecordCompareData RecordIOData -RecoveryTargetAction +RecoveryLockListsEntry +RecoveryTargetTimeLineGoal RecoveryTargetType +RectBox RecursionContext RecursiveUnion +RecursiveUnionPath RecursiveUnionState RefetchForeignRow_function RefreshMatViewStmt @@ -1614,25 +1994,29 @@ RelToCheck RelToCluster RelabelType Relation -RelationAmInfo RelationData RelationPtr -RelativeTime +RelationSyncEntry RelcacheCallbackFunction RelfilenodeMapEntry RelfilenodeMapKey Relids RelocationBufferInfo +RelptrFreePageBtree +RelptrFreePageManager +RelptrFreePageSpanLeader RenameStmt -ReopenPtr +ReopenPtrType ReorderBuffer ReorderBufferApplyChangeCB +ReorderBufferApplyTruncateCB ReorderBufferBeginCB ReorderBufferChange ReorderBufferCommitCB ReorderBufferDiskChange ReorderBufferIterTXNEntry ReorderBufferIterTXNState +ReorderBufferMessageCB ReorderBufferTXN ReorderBufferTXNByIdEnt ReorderBufferToastEnt @@ -1641,6 +2025,7 @@ ReorderBufferTupleCidEnt ReorderBufferTupleCidKey ReorderTuple RepOriginId +ReparameterizeForeignPathByChild_function ReplaceVarsFromTargetList_context ReplaceVarsNoMatchOption ReplicaIdentityStmt @@ -1656,14 +2041,15 @@ ReplicationStateOnDisk ResTarget ReservoirState ReservoirStateData +ResourceArray ResourceOwner ResourceReleaseCallback ResourceReleaseCallbackItem ResourceReleasePhase RestoreOptions +RestorePass RestrictInfo Result -ResultPath ResultRelInfo ResultState ReturnSetInfo @@ -1679,11 +2065,10 @@ RmgrIds RoleSpec RoleSpecType RoleStmtType +RollupData RowCompareExpr -RowCompareExprState RowCompareType RowExpr -RowExprState RowMarkClause RowMarkType RowSecurityDesc @@ -1704,15 +2089,14 @@ SERVICE_STATUS SERVICE_STATUS_HANDLE SERVICE_TABLE_ENTRY SHA1_CTX -SHA224_CTX SHA256_CTX -SHA384_CTX SHA512_CTX SHM_QUEUE SID_AND_ATTRIBUTES SID_IDENTIFIER_AUTHORITY SID_NAME_USE SISeg +SIZE_T SMgrRelation SMgrRelationData SOCKADDR @@ -1724,28 +2108,33 @@ SPLITCOST SPNode SPNodeData SPPageDesc +SQLCmd SQLDropObject SQLFunctionCache SQLFunctionCachePtr SQLFunctionParseInfoPtr +SQLValueFunction +SQLValueFunctionOp SSL +SSLExtensionInfoContext SSL_CTX STARTUPINFO STRLEN SV SampleScan +SampleScanGetSampleSize_function SampleScanState SamplerRandomState ScalarArrayOpExpr -ScalarArrayOpExprState +ScalarIOData ScalarItem ScalarMCVItem Scan ScanDirection ScanKey ScanKeyData -ScanKeyword -ScanStackEntry +ScanKeywordHashFunc +ScanKeywordList ScanState ScanTypeControl SchemaQuery @@ -1753,33 +2142,45 @@ SecBuffer SecBufferDesc SecLabelItem SecLabelStmt +SeenRelsEntry SelectStmt Selectivity +SemTPadded SemiAntiJoinFactors SeqScan SeqScanState SeqTable SeqTableData SerCommitSeqNo +SerializableXactHandle +SerializedActiveRelMaps +SerializedReindexState SerializedSnapshotData +SerializedTransactionState Session +SessionBackupState SetConstraintState SetConstraintStateData SetConstraintTriggerData +SetExprState SetFunctionReturnMode SetOp SetOpCmd -SetOpHashEntry +SetOpPath SetOpState SetOpStatePerGroup -SetOpStatePerGroupData SetOpStrategy SetOperation SetOperationStmt SetToDefault -SetupWorkerPtr +SetupWorkerPtrType +ShDependObjectInfo +SharedBitmapState SharedDependencyObjectType SharedDependencyType +SharedExecutorInstrumentation +SharedFileSet +SharedHashInfo SharedInvalCatalogMsg SharedInvalCatcacheMsg SharedInvalRelcacheMsg @@ -1787,18 +2188,40 @@ SharedInvalRelmapMsg SharedInvalSmgrMsg SharedInvalSnapshotMsg SharedInvalidationMessage +SharedJitInstrumentation +SharedRecordTableEntry +SharedRecordTableKey +SharedRecordTypmodRegistry +SharedSortInfo +SharedTuplestore +SharedTuplestoreAccessor +SharedTuplestoreChunk +SharedTuplestoreParticipant +SharedTypmodTableEntry +Sharedsort ShellTypeInfo +ShippableCacheEntry +ShippableCacheKey ShmemIndexEnt +ShutdownForeignScan_function ShutdownInformation ShutdownMode SignTSVector +SimpleActionList +SimpleActionListCell SimpleEcontextStackEntry SimpleOidList SimpleOidListCell +SimpleStats SimpleStringList SimpleStringListCell SingleBoundSortItem Size +SlabBlock +SlabChunk +SlabContext +SlabSlot +SlotErrCallbackArg SlotNumber SlruCtl SlruCtlData @@ -1814,13 +2237,16 @@ SnapBuildOnDisk SnapBuildState Snapshot SnapshotData -SnapshotSatisfiesFunc +SnapshotType SockAddr Sort SortBy SortByDir SortByNulls +SortCoordinate SortGroupClause +SortItem +SortPath SortShimExtra SortState SortSupport @@ -1845,29 +2271,38 @@ SpGistPageOpaque SpGistPageOpaqueData SpGistScanOpaque SpGistScanOpaqueData +SpGistSearchItem SpGistState SpGistTypeDesc SpecialJoinInfo +SpinDelayStatus SplitInterval SplitLR +SplitPoint SplitVar SplitedPageLayout StackElem -StandardChunkHeader -StartBlobPtr -StartBlobsPtr -StartDataPtr +StartBlobPtrType +StartBlobsPtrType +StartDataPtrType StartReplicationCmd StartupPacket +StartupStatusEnum StatEntry +StatExtEntry StatMsgType StateFileChunk +StatisticExtInfo Stats +StatsData +StatsExtInfo StdAnalyzeData StdRdOptions Step StopList +StopWorkersData StrategyNumber +StreamCtl StringInfo StringInfoData StripnullState @@ -1879,20 +2314,43 @@ SubTransactionId SubXactCallback SubXactCallbackItem SubXactEvent +SubplanResultRelHashElem SubqueryScan +SubqueryScanPath SubqueryScanState +SubscriptingRef +SubscriptingRefState +Subscription +SubscriptionInfo +SubscriptionRelState +SupportRequestCost +SupportRequestIndexCondition +SupportRequestRows +SupportRequestSelectivity +SupportRequestSimplify Syn +SyncOps +SyncRepConfigData +SyncRequestType SysScanDesc SyscacheCallbackFunction +SystemRowsSamplerData SystemSamplerData +SystemTimeSamplerData TAR_MEMBER TBMIterateResult +TBMIteratingState TBMIterator +TBMSharedIterator +TBMSharedIteratorState TBMStatus TBlockState TIDBitmap +TM_FailureData +TM_Result TOKEN_DEFAULT_DACL TOKEN_INFORMATION_CLASS +TOKEN_PRIVILEGES TOKEN_USER TParser TParserCharTest @@ -1901,13 +2359,14 @@ TParserSpecial TParserState TParserStateAction TParserStateActionItem +TQueueDestReceiver TRGM -TResult TSAnyCacheEntry TSConfigCacheEntry TSConfigInfo TSDictInfo TSDictionaryCacheEntry +TSExecuteCallback TSLexeme TSParserCacheEntry TSParserInfo @@ -1919,47 +2378,58 @@ TSReadPointer TSTemplateInfo TSTokenTypeStorage TSVector +TSVectorBuildState TSVectorData TSVectorParseState TSVectorStat TState TStoreState -TTOffList TYPCATEGORY T_Action T_WorkerStatus +TabStatHashEntry TabStatusArray +TableAmRoutine TableDataInfo +TableFunc +TableFuncRoutine +TableFuncScan +TableFuncScanState TableInfo TableLikeClause TableSampleClause -TableSampleDesc +TableScanDesc +TableScanDescData TableSpaceCacheEntry TableSpaceOpts TablespaceList TablespaceListCell +TapeBlockTrailer +TapeShare +TarMethodData +TarMethodFile TargetEntry +TclExceptionNameMap Tcl_DString Tcl_FileProc Tcl_HashEntry Tcl_HashTable Tcl_Interp Tcl_NotifierProcs +Tcl_Obj Tcl_Time TestDecodingData TestSpec TextFreq TextPositionState -TextSortSupport TheLexeme TheSubstitute +TidExpr TidHashKey TidPath TidScan TidScanState TimeADT -TimeInterval -TimeIntervalData TimeLineHistoryCmd TimeLineHistoryEntry TimeLineID @@ -1975,6 +2445,7 @@ TmFromChar TmToChar TocEntry TokenAuxData +TokenizedLine TrackItem TransInvalidationInfo TransState @@ -1984,8 +2455,11 @@ TransactionStateData TransactionStmt TransactionStmtKind TransformInfo +TransformJsonStringValuesState +TransitionCaptureState TrgmArc TrgmArcInfo +TrgmBound TrgmColor TrgmColorInfo TrgmNFA @@ -2003,7 +2477,9 @@ TriggerDesc TriggerEvent TriggerFlags TriggerInfo +TriggerTransition TruncateStmt +TsmRoutine TupOutputState TupSortStatus TupStoreStatus @@ -2014,7 +2490,12 @@ TupleHashEntry TupleHashEntryData TupleHashIterator TupleHashTable +TupleQueueReader TupleTableSlot +TupleTableSlotOps +TuplesortInstrumentation +TuplesortMethod +TuplesortSpaceType Tuplesortstate Tuplestorestate TwoPhaseCallback @@ -2034,16 +2515,26 @@ Type TypeCacheEntry TypeCacheEnumData TypeCast +TypeCat TypeFuncClass TypeInfo TypeName +U U32 U8 +UChar +UCharIterator +UColAttribute +UColAttributeValue +UCollator +UConverter +UErrorCode UINT ULARGE_INTEGER ULONG ULONG_PTR UV +UVersionInfo Unique UniquePath UniquePathMethod @@ -2052,13 +2543,18 @@ UnlistenStmt UnresolvedTup UnresolvedTupData UpdateStmt +UpperRelationKind +UpperUniquePath UserAuth UserMapping UserOpts VacAttrStats VacAttrStatsP +VacOptTernaryValue VacuumParams +VacuumRelation VacuumStmt +ValidateIndexState Value ValuesScan ValuesScanState @@ -2066,6 +2562,8 @@ Var VarBit VarChar VarParamState +VarString +VarStringSortSupport Variable VariableAssignHook VariableCache @@ -2075,11 +2573,14 @@ VariableSetStmt VariableShowStmt VariableSpace VariableStatData +VariableSubstituteHook +VersionedQuery Vfd ViewCheckOption ViewOptions ViewStmt VirtualTransactionId +VirtualTupleTableSlot Vsrt WAITORTIMERCALLBACK WAIT_ORDER @@ -2087,6 +2588,7 @@ WALInsertLock WALInsertLockPadded WCHAR WCOKind +WFW_WaitOption WIDGET WIN32_FILE_ATTRIBUTE_DATA WORD @@ -2095,17 +2597,35 @@ WSABUF WSADATA WSANETWORKEVENTS WSAPROTOCOL_INFO +WaitEvent +WaitEventActivity +WaitEventClient +WaitEventIO +WaitEventIPC +WaitEventSet +WaitEventTimeout +WaitPMResult +WalCloseMethod WalLevel WalRcvData +WalRcvExecResult +WalRcvExecStatus WalRcvState +WalRcvStreamOptions +WalReceiverConn +WalReceiverFunctionsType WalSnd WalSndCtlData WalSndSendDataCallback WalSndState -WholeRowVarExprState +WalTimeSample +WalWriteMethod +Walfile WindowAgg +WindowAggPath WindowAggState WindowClause +WindowClauseSortData WindowDef WindowFunc WindowFuncExprState @@ -2126,15 +2646,18 @@ WorkTableScan WorkTableScanState WorkerInfo WorkerInfoData -WorkerJobDumpPtr -WorkerJobRestorePtr +WorkerInstrumentation +WorkerJobDumpPtrType +WorkerJobRestorePtrType Working_State -WriteBufPtr -WriteBytePtr -WriteDataPtr -WriteExtraTocPtr +WriteBufPtrType +WriteBytePtrType +WriteDataPtrType +WriteExtraTocPtrType WriteFunc +WritebackContext X509 +X509_EXTENSION X509_NAME X509_NAME_ENTRY X509_STORE @@ -2165,16 +2688,18 @@ XLogSource XLogwrtResult XLogwrtRqst XPVIV +XPVMG XactCallback XactCallbackItem XactEvent XactLockTableWaitInfo +XidHorizonPrefetchState XidStatus XmlExpr XmlExprOp -XmlExprState XmlOptionType XmlSerialize +XmlTableBuilderData YYLTYPE YYSTYPE YY_BUFFER_STATE @@ -2189,15 +2714,39 @@ __RegisterWaitForSingleObject __SetInformationJobObject _resultmap _stringlist +abs acquireLocksOnSubLinks_context adjust_appendrel_attrs_context allocfunc +ambeginscan_function +ambuild_function +ambuildempty_function +ambuildphasename_function +ambulkdelete_function +amcanreturn_function +amcostestimate_function +amendscan_function +amestimateparallelscan_function +amgetbitmap_function +amgettuple_function +aminitparallelscan_function +aminsert_function +ammarkpos_function +amoptions_function +amparallelrescan_function +amproperty_function +amrescan_function +amrestrpos_function +amvacuumcleanup_function +amvalidate_function array_iter array_unnest_fctx assign_collations_context autovac_table av_relation avl_dbase +avl_node +avl_tree avw_dbase backslashResult base_yy_extra_type @@ -2209,21 +2758,18 @@ bitmapword bits16 bits32 bits8 -bool -boolean +bloom_filter brin_column_state -brin_page_state bytea cached_re_str cashKEY -celt cfp check_agg_arguments_context +check_function_callback check_network_data check_object_relabel_type check_password_hook_type check_ungrouped_columns_context -chkpass chr clock_t cmpEntriesArg @@ -2232,14 +2778,17 @@ codes_t coercion collation_cache_entry color +colormaprange config_var_value contain_aggs_of_level_context convert_testexpr_context +copy_data_source_cb core_YYSTYPE core_yy_extra_type core_yyscan_t +corrupt_items cost_qual_eval_context -count_agg_clauses_context +create_upper_paths_hook_type createdb_failure_params crosstab_HashEnt crosstab_cat_desc @@ -2255,6 +2804,7 @@ deparse_expr_cxt deparse_namespace destructor dev_t +digit directory_fctx disassembledLeaf dlist_head @@ -2262,6 +2812,25 @@ dlist_iter dlist_mutable_iter dlist_node ds_state +dsa_area +dsa_area_control +dsa_area_pool +dsa_area_span +dsa_handle +dsa_pointer +dsa_pointer_atomic +dsa_segment_header +dsa_segment_index +dsa_segment_map +dshash_compare_function +dshash_hash +dshash_hash_function +dshash_parameters +dshash_partition +dshash_table +dshash_table_control +dshash_table_handle +dshash_table_item dsm_control_header dsm_control_item dsm_handle @@ -2283,11 +2852,14 @@ execution_state explain_get_index_name_hook_type f_smgr fd_set +fe_scram_state +fe_scram_state_enum file_action_t file_entry_t file_type_t filemap_t finalize_primnode_context +find_dependent_phvs_context find_expr_references_context fix_join_expr_context fix_scan_expr_context @@ -2297,6 +2869,8 @@ float4 float4KEY float8 float8KEY +floating_decimal_32 +floating_decimal_64 fmAggrefPtr fmExprContextCallbackFunction fmNodePtr @@ -2307,7 +2881,6 @@ foreign_loc_cxt freeaddrinfo_ptr_t freefunc fsec_t -func_ptr gbt_vsrt_arg gbtree_ninfo gbtree_vinfo @@ -2316,6 +2889,7 @@ generate_series_numeric_fctx generate_series_timestamp_fctx generate_series_timestamptz_fctx generate_subscripts_fctx +get_agg_clause_costs_context get_attavgwidth_hook_type get_index_stats_hook_type get_relation_info_hook_type @@ -2335,11 +2909,14 @@ ginxlogRecompressDataLeaf ginxlogSplit ginxlogUpdateMeta ginxlogVacuumDataLeafPage +gistxlogDelete gistxlogPage +gistxlogPageDelete +gistxlogPageReuse gistxlogPageSplit gistxlogPageUpdate +grouping_sets_data gseg_picksplit_item -gss_OID gss_buffer_desc gss_cred_id_t gss_ctx_id_t @@ -2351,13 +2928,21 @@ hbaPort heap_page_items_state help_handler hlCheck +hstoreCheckKeyLen_t +hstoreCheckValLen_t +hstorePairs_t +hstoreUniquePairs_t +hstoreUpgrade_t hyperLogLogState +ifState +ilist import_error_callback_arg indexed_tlist inet inetKEY inet_struct init_function +inline_cte_walker_context inline_error_callback_arg ino_t inquiry @@ -2374,9 +2959,13 @@ int64KEY int8 internalPQconninfoOption intptr_t +intset_internal_node +intset_leaf_node +intset_node intvKEY itemIdSort itemIdSortData +iterator jmp_buf join_search_hook_type json_aelem_action @@ -2388,7 +2977,10 @@ key_t lclContext lclTocEntry leafSegmentInfo +leaf_item line_t +lineno_t +list_qsort_comparator locale_t locate_agg_of_level_context locate_var_of_level_context @@ -2402,9 +2994,13 @@ ltree_gist ltree_level ltxtquery mXactCacheEnt +mac8KEY macKEY macaddr +macaddr8 +macaddr_sortsupport_state map_variable_attnos_context +max_parallel_hazard_context mb2wchar_with_len_converter mbcharacter_incrementer mbdisplaylen_converter @@ -2421,6 +3017,8 @@ mp_int mp_result mp_sign mp_size +mp_small +mp_usmall mp_word mpz_t mxact @@ -2436,20 +3034,23 @@ oidKEY oidvector on_dsm_detach_callback on_exit_nicely_callback -ossldata +ossl_EVP_cipher_func +other output_type -pageCnvCtx +pagetable_hash +pagetable_iterator pairingheap pairingheap_comparator pairingheap_node parallel_worker_main_type parse_error_callback_arg -pcolor pendingPosition pgParameterStatus pg_atomic_flag pg_atomic_uint32 pg_atomic_uint64 +pg_conn_host +pg_conn_host_type pg_conv_map pg_crc32 pg_crc32c @@ -2460,17 +3061,22 @@ pg_enc2name pg_encname pg_gssinfo pg_int64 -pg_local_to_utf pg_local_to_utf_combined pg_locale_t +pg_mb_radix_tree pg_on_exit_callback pg_re_flags +pg_saslprep_rc +pg_sha224_ctx +pg_sha256_ctx +pg_sha384_ctx +pg_sha512_ctx pg_stack_base_t pg_time_t pg_tz pg_tz_cache pg_tzenum -pg_utf_to_local +pg_unicode_decomposition pg_utf_to_local_combined pg_uuid_t pg_wc_probefunc @@ -2490,6 +3096,7 @@ pgstat_page pgstattuple_type pgthreadlock_t pid_t +pivot_field planner_hook_type plperl_array_info plperl_call_data @@ -2502,11 +3109,14 @@ plperl_query_entry plpgsql_CastHashEntry plpgsql_CastHashKey plpgsql_HashEnt +pltcl_call_state pltcl_interp_desc pltcl_proc_desc pltcl_proc_key pltcl_proc_ptr pltcl_query_desc +pointer +pos_trgm post_parse_analyze_hook_type pqbool pqsigfunc @@ -2518,15 +3128,20 @@ printTextFormat printTextLineFormat printTextLineWrap printTextRule +printfunc priv_map process_file_callback_t process_sublinks_context +proclist_head +proclist_mutable_iter +proclist_node promptStatus_t pthread_attr_t pthread_key_t pthread_mutex_t pthread_once_t pthread_t +ptrdiff_t pull_var_clause_context pull_varattnos_context pull_varnos_context @@ -2539,11 +3154,12 @@ radius_attribute radius_packet rangeTableEntry_used_context rank_context -rb_allocfunc -rb_combiner -rb_comparator -rb_freefunc +rbt_allocfunc +rbt_combiner +rbt_comparator +rbt_freefunc reduce_outer_joins_state +reference regex_arc_t regex_t regexp @@ -2573,7 +3189,10 @@ rm_detail_t role_auth_extra row_security_policy_hook_type save_buffer -security_barrier_replace_vars_context +scram_HMAC_ctx +scram_state +scram_state_enum +sem_t sequence_magic set_join_pathlist_hook_type set_rel_pathlist_hook_type @@ -2595,7 +3214,7 @@ slist_iter slist_mutable_iter slist_node slock_t -smgrid +socket_set spgBulkDeleteState spgChooseIn spgChooseOut @@ -2619,6 +3238,8 @@ spgxlogState spgxlogVacuumLeaf spgxlogVacuumRedirect spgxlogVacuumRoot +split_pathtarget_context +split_pathtarget_item sql_error_callback_arg sqlparseInfo sqlparseState @@ -2632,9 +3253,10 @@ stmtCacheEntry storeInfo storeRes_func stream_stop_callback +string substitute_actual_parameters_context substitute_actual_srf_parameters_context -substitute_multiple_relids_context +substitute_phv_relids_context svtype symbol tablespaceinfo @@ -2643,6 +3265,7 @@ teSection temp_tablespaces_extra test_function test_shm_mq_header +test_spec text timeKEY time_t @@ -2658,9 +3281,14 @@ trgm_mb_char trivalue tsKEY ts_db_fctx +ts_parserstate +ts_tokenizer ts_tokentype tsearch_readline_state +tuplehash_hash +tuplehash_iterator txid +type tzEntry u1byte u4byte @@ -2674,6 +3302,7 @@ uint16_t uint32 uint32_t uint64 +uint64_t uint8 uint8_t uintptr_t @@ -2685,9 +3314,10 @@ unicode_linestyle unit_conversion unlogged_relation_entry utf_local_conversion_func +uuidKEY uuid_rc_t +uuid_sortsupport_state uuid_t -v_i_state va_list vacuumingOptions validate_string_relopt @@ -2695,14 +3325,21 @@ varatt_expanded varattrib_1b varattrib_1b_e varattrib_4b -walrcv_connect_type -walrcv_disconnect_type -walrcv_endstreaming_type -walrcv_identify_system_type -walrcv_readtimelinehistoryfile_type -walrcv_receive_type -walrcv_send_type -walrcv_startstreaming_type +vbits +walrcv_check_conninfo_fn +walrcv_connect_fn +walrcv_create_slot_fn +walrcv_disconnect_fn +walrcv_endstreaming_fn +walrcv_exec_fn +walrcv_get_conninfo_fn +walrcv_get_senderinfo_fn +walrcv_identify_system_fn +walrcv_readtimelinehistoryfile_fn +walrcv_receive_fn +walrcv_send_fn +walrcv_server_version_fn +walrcv_startstreaming_fn wchar2mb_with_len_converter wchar_t win32_deadchild_waitinfo @@ -2710,7 +3347,9 @@ win32_pthread wint_t worker_state worktable +wrap xl_brin_createidx +xl_brin_desummarize xl_brin_insert xl_brin_revmap_extend xl_brin_samepage_update @@ -2724,10 +3363,23 @@ xl_btree_reuse_page xl_btree_split xl_btree_unlink_page xl_btree_vacuum +xl_clog_truncate xl_commit_ts_set +xl_commit_ts_truncate xl_dbase_create_rec xl_dbase_drop_rec xl_end_of_recovery +xl_hash_add_ovfl_page +xl_hash_delete +xl_hash_init_bitmap_page +xl_hash_init_meta_page +xl_hash_insert +xl_hash_move_page_contents +xl_hash_split_allocate_page +xl_hash_split_complete +xl_hash_squeeze_page +xl_hash_update_meta_page +xl_hash_vacuum_one_page xl_heap_clean xl_heap_cleanup_info xl_heap_confirm @@ -2742,12 +3394,16 @@ xl_heap_lock_updated xl_heap_multi_insert xl_heap_new_cid xl_heap_rewrite_mapping +xl_heap_truncate xl_heap_update xl_heap_visible xl_invalid_page xl_invalid_page_key +xl_invalidations +xl_logical_message xl_multi_insert_tuple xl_multixact_create +xl_multixact_truncate xl_parameter_change xl_relmap_update xl_replorigin_drop @@ -2769,6 +3425,7 @@ xl_xact_invals xl_xact_origin xl_xact_parsed_abort xl_xact_parsed_commit +xl_xact_parsed_prepare xl_xact_relfilenodes xl_xact_subxacts xl_xact_twophase