PostgreSQL Source Code  git master
pg_list.h File Reference
#include "nodes/nodes.h"
Include dependency graph for pg_list.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

union  ListCell
 
struct  List
 
struct  ForEachState
 
struct  ForBothState
 
struct  ForBothCellState
 
struct  ForThreeState
 
struct  ForFourState
 
struct  ForFiveState
 

Macros

#define NIL   ((List *) NULL)
 
#define lfirst(lc)   ((lc)->ptr_value)
 
#define lfirst_int(lc)   ((lc)->int_value)
 
#define lfirst_oid(lc)   ((lc)->oid_value)
 
#define lfirst_node(type, lc)   castNode(type, lfirst(lc))
 
#define linitial(l)   lfirst(list_head(l))
 
#define linitial_int(l)   lfirst_int(list_head(l))
 
#define linitial_oid(l)   lfirst_oid(list_head(l))
 
#define linitial_node(type, l)   castNode(type, linitial(l))
 
#define lsecond(l)   lfirst(list_second_cell(l))
 
#define lsecond_int(l)   lfirst_int(list_second_cell(l))
 
#define lsecond_oid(l)   lfirst_oid(list_second_cell(l))
 
#define lsecond_node(type, l)   castNode(type, lsecond(l))
 
#define lthird(l)   lfirst(list_third_cell(l))
 
#define lthird_int(l)   lfirst_int(list_third_cell(l))
 
#define lthird_oid(l)   lfirst_oid(list_third_cell(l))
 
#define lthird_node(type, l)   castNode(type, lthird(l))
 
#define lfourth(l)   lfirst(list_fourth_cell(l))
 
#define lfourth_int(l)   lfirst_int(list_fourth_cell(l))
 
#define lfourth_oid(l)   lfirst_oid(list_fourth_cell(l))
 
#define lfourth_node(type, l)   castNode(type, lfourth(l))
 
#define llast(l)   lfirst(list_tail(l))
 
#define llast_int(l)   lfirst_int(list_tail(l))
 
#define llast_oid(l)   lfirst_oid(list_tail(l))
 
#define llast_node(type, l)   castNode(type, llast(l))
 
#define list_make_ptr_cell(v)   ((ListCell) {.ptr_value = (v)})
 
#define list_make_int_cell(v)   ((ListCell) {.int_value = (v)})
 
#define list_make_oid_cell(v)   ((ListCell) {.oid_value = (v)})
 
#define list_make1(x1)   list_make1_impl(T_List, list_make_ptr_cell(x1))
 
#define list_make2(x1, x2)   list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2))
 
#define list_make3(x1, x2, x3)
 
#define list_make4(x1, x2, x3, x4)
 
#define list_make1_int(x1)   list_make1_impl(T_IntList, list_make_int_cell(x1))
 
#define list_make2_int(x1, x2)   list_make2_impl(T_IntList, list_make_int_cell(x1), list_make_int_cell(x2))
 
#define list_make3_int(x1, x2, x3)
 
#define list_make4_int(x1, x2, x3, x4)
 
#define list_make1_oid(x1)   list_make1_impl(T_OidList, list_make_oid_cell(x1))
 
#define list_make2_oid(x1, x2)   list_make2_impl(T_OidList, list_make_oid_cell(x1), list_make_oid_cell(x2))
 
#define list_make3_oid(x1, x2, x3)
 
#define list_make4_oid(x1, x2, x3, x4)
 
#define list_nth_node(type, list, n)   castNode(type, list_nth(list, n))
 
#define foreach(cell, lst)
 
#define foreach_delete_current(lst, cell)
 
#define foreach_current_index(cell)   (cell##__state.i)
 
#define for_each_cell(cell, lst, initcell)
 
#define forboth(cell1, list1, cell2, list2)
 
#define multi_for_advance_cell(cell, state, l, i)
 
#define for_both_cell(cell1, list1, initcell1, cell2, list2, initcell2)
 
#define forthree(cell1, list1, cell2, list2, cell3, list3)
 
#define forfour(cell1, list1, cell2, list2, cell3, list3, cell4, list4)
 
#define forfive(cell1, list1, cell2, list2, cell3, list3, cell4, list4, cell5, list5)
 

Typedefs

typedef union ListCell ListCell
 
typedef struct List List
 
typedef struct ForEachState ForEachState
 
typedef struct ForBothState ForBothState
 
typedef struct ForBothCellState ForBothCellState
 
typedef struct ForThreeState ForThreeState
 
typedef struct ForFourState ForFourState
 
typedef struct ForFiveState ForFiveState
 
typedef int(* list_sort_comparator) (const ListCell *a, const ListCell *b)
 

Functions

static ListCelllist_head (const List *l)
 
static ListCelllist_tail (const List *l)
 
static ListCelllist_second_cell (const List *l)
 
static ListCelllist_third_cell (const List *l)
 
static ListCelllist_fourth_cell (const List *l)
 
static int list_length (const List *l)
 
static ListCelllist_nth_cell (const List *list, int n)
 
static void * list_nth (const List *list, int n)
 
static int list_nth_int (const List *list, int n)
 
static Oid list_nth_oid (const List *list, int n)
 
static int list_cell_number (const List *l, const ListCell *c)
 
static ListCelllnext (const List *l, const ListCell *c)
 
static ForEachState for_each_cell_setup (List *lst, ListCell *initcell)
 
static ForBothCellState for_both_cell_setup (List *list1, ListCell *initcell1, List *list2, ListCell *initcell2)
 
Listlist_make1_impl (NodeTag t, ListCell datum1)
 
Listlist_make2_impl (NodeTag t, ListCell datum1, ListCell datum2)
 
Listlist_make3_impl (NodeTag t, ListCell datum1, ListCell datum2, ListCell datum3)
 
Listlist_make4_impl (NodeTag t, ListCell datum1, ListCell datum2, ListCell datum3, ListCell datum4)
 
Listlappend (List *list, void *datum)
 
Listlappend_int (List *list, int datum)
 
Listlappend_oid (List *list, Oid datum)
 
Listlist_insert_nth (List *list, int pos, void *datum)
 
Listlist_insert_nth_int (List *list, int pos, int datum)
 
Listlist_insert_nth_oid (List *list, int pos, Oid datum)
 
Listlcons (void *datum, List *list)
 
Listlcons_int (int datum, List *list)
 
Listlcons_oid (Oid datum, List *list)
 
Listlist_concat (List *list1, const List *list2)
 
Listlist_concat_copy (const List *list1, const List *list2)
 
Listlist_truncate (List *list, int new_size)
 
bool list_member (const List *list, const void *datum)
 
bool list_member_ptr (const List *list, const void *datum)
 
bool list_member_int (const List *list, int datum)
 
bool list_member_oid (const List *list, Oid datum)
 
Listlist_delete (List *list, void *datum)
 
Listlist_delete_ptr (List *list, void *datum)
 
Listlist_delete_int (List *list, int datum)
 
Listlist_delete_oid (List *list, Oid datum)
 
Listlist_delete_first (List *list)
 
Listlist_delete_last (List *list)
 
Listlist_delete_nth_cell (List *list, int n)
 
Listlist_delete_cell (List *list, ListCell *cell)
 
Listlist_union (const List *list1, const List *list2)
 
Listlist_union_ptr (const List *list1, const List *list2)
 
Listlist_union_int (const List *list1, const List *list2)
 
Listlist_union_oid (const List *list1, const List *list2)
 
Listlist_intersection (const List *list1, const List *list2)
 
Listlist_intersection_int (const List *list1, const List *list2)
 
Listlist_difference (const List *list1, const List *list2)
 
Listlist_difference_ptr (const List *list1, const List *list2)
 
Listlist_difference_int (const List *list1, const List *list2)
 
Listlist_difference_oid (const List *list1, const List *list2)
 
Listlist_append_unique (List *list, void *datum)
 
Listlist_append_unique_ptr (List *list, void *datum)
 
Listlist_append_unique_int (List *list, int datum)
 
Listlist_append_unique_oid (List *list, Oid datum)
 
Listlist_concat_unique (List *list1, const List *list2)
 
Listlist_concat_unique_ptr (List *list1, const List *list2)
 
Listlist_concat_unique_int (List *list1, const List *list2)
 
Listlist_concat_unique_oid (List *list1, const List *list2)
 
void list_deduplicate_oid (List *list)
 
void list_free (List *list)
 
void list_free_deep (List *list)
 
Listlist_copy (const List *list)
 
Listlist_copy_tail (const List *list, int nskip)
 
Listlist_copy_deep (const List *oldlist)
 
void list_sort (List *list, list_sort_comparator cmp)
 
int list_oid_cmp (const ListCell *p1, const ListCell *p2)
 

Macro Definition Documentation

◆ for_both_cell

#define for_both_cell (   cell1,
  list1,
  initcell1,
  cell2,
  list2,
  initcell2 
)
Value:
for (ForBothCellState cell1##__state = \
for_both_cell_setup(list1, initcell1, list2, initcell2); \
multi_for_advance_cell(cell1, cell1##__state, l1, i1), \
multi_for_advance_cell(cell2, cell1##__state, l2, i2), \
(cell1 != NULL && cell2 != NULL); \
cell1##__state.i1++, cell1##__state.i2++)
static ForBothCellState for_both_cell_setup(List *list1, ListCell *initcell1, List *list2, ListCell *initcell2)
Definition: pg_list.h:450

Definition at line 441 of file pg_list.h.

Referenced by get_qual_for_range().

◆ for_each_cell

#define for_each_cell (   cell,
  lst,
  initcell 
)
Value:
for (ForEachState cell##__state = for_each_cell_setup(lst, initcell); \
(cell##__state.l != NIL && \
cell##__state.i < cell##__state.l->length) ? \
(cell = &cell##__state.l->elements[cell##__state.i], true) : \
(cell = NULL, false); \
cell##__state.i++)
#define NIL
Definition: pg_list.h:65
static ForEachState for_each_cell_setup(List *lst, ListCell *initcell)
Definition: pg_list.h:399

Definition at line 390 of file pg_list.h.

Referenced by append_nonpartial_cost(), ATCheckPartitionsNotInUse(), consider_groupingsets_paths(), create_groupingsets_plan(), estimate_num_groups(), expand_grouping_sets(), exprTypmod(), extract_rollup_sets(), find_param_referent(), gen_prune_steps_from_opexps(), get_steps_using_prefix_recurse(), join_search_one_level(), make_rels_by_clause_joins(), parseCheckAggregates(), select_common_type(), split_pathtarget_at_srfs(), transformAssignmentIndirection(), and transformWithClause().

◆ forboth

#define forboth (   cell1,
  list1,
  cell2,
  list2 
)
Value:
for (ForBothState cell1##__state = {(list1), (list2), 0}; \
multi_for_advance_cell(cell1, cell1##__state, l1, i), \
multi_for_advance_cell(cell2, cell1##__state, l2, i), \
(cell1 != NULL && cell2 != NULL); \
cell1##__state.i++)
int i

Definition at line 419 of file pg_list.h.

Referenced by _equalList(), AddRoleMems(), adjust_paths_for_srfs(), apply_tlist_labeling(), assign_collations_walker(), ATPostAlterTypeCleanup(), ATPrepAlterColumnType(), common_prefix_cmp(), compare_pathkeys(), create_index_paths(), create_indexscan_plan(), create_modifytable_plan(), CreateTrigger(), DelRoleMems(), determineRecursiveColTypes(), distinct_col_search(), equalRSDesc(), ExecEvalXmlExpr(), ExecHashTableCreate(), ExecInitExprRec(), ExecInitIndexScan(), ExecScanSubPlan(), ExecSetParamPlan(), ExecWithCheckOptions(), expandNSItemAttrs(), expandRecordVariable(), expandRTE(), find_param_referent(), fix_indexorderby_references(), fix_indexqual_clause(), flatten_join_alias_vars_mutator(), get_expr_result_type(), get_matching_location(), get_number_of_groups(), get_qual_for_range(), get_rule_expr(), get_simple_values_rte(), get_tablefunc(), inheritance_planner(), make_modifytable(), make_row_comparison_op(), make_row_distinct_op(), pathkeys_count_contained_in(), reduce_outer_joins_pass2(), ReindexRelationConcurrently(), relation_has_unique_index_for(), rename_constraint_internal(), renameatt_internal(), set_append_rel_size(), set_deparse_for_query(), set_simple_column_names(), standard_planner(), tfuncInitialize(), tlist_same_exprs(), transformAggregateCall(), transformDistinctOnClause(), transformJoinUsingClause(), transformRangeTableSample(), transformSetOperationTree(), transformValuesClause(), trivial_subqueryscan(), and xmlelement().

◆ foreach

#define foreach (   cell,
  lst 
)
Value:
for (ForEachState cell##__state = {(lst), 0}; \
(cell##__state.l != NIL && \
cell##__state.i < cell##__state.l->length) ? \
(cell = &cell##__state.l->elements[cell##__state.i], true) : \
(cell = NULL, false); \
cell##__state.i++)
#define NIL
Definition: pg_list.h:65

Definition at line 351 of file pg_list.h.

◆ foreach_current_index

#define foreach_current_index (   cell)    (cell##__state.i)

Definition at line 381 of file pg_list.h.

Referenced by add_partial_path(), add_path(), and show_incremental_sort_group_info().

◆ foreach_delete_current

◆ forfive

#define forfive (   cell1,
  list1,
  cell2,
  list2,
  cell3,
  list3,
  cell4,
  list4,
  cell5,
  list5 
)
Value:
for (ForFiveState cell1##__state = {(list1), (list2), (list3), (list4), (list5), 0}; \
multi_for_advance_cell(cell1, cell1##__state, l1, i), \
multi_for_advance_cell(cell2, cell1##__state, l2, i), \
multi_for_advance_cell(cell3, cell1##__state, l3, i), \
multi_for_advance_cell(cell4, cell1##__state, l4, i), \
multi_for_advance_cell(cell5, cell1##__state, l5, i), \
(cell1 != NULL && cell2 != NULL && cell3 != NULL && \
cell4 != NULL && cell5 != NULL); \
cell1##__state.i++)
int i

Definition at line 489 of file pg_list.h.

Referenced by ExecInitExprRec(), and get_tablefunc().

◆ forfour

#define forfour (   cell1,
  list1,
  cell2,
  list2,
  cell3,
  list3,
  cell4,
  list4 
)
Value:
for (ForFourState cell1##__state = {(list1), (list2), (list3), (list4), 0}; \
multi_for_advance_cell(cell1, cell1##__state, l1, i), \
multi_for_advance_cell(cell2, cell1##__state, l2, i), \
multi_for_advance_cell(cell3, cell1##__state, l3, i), \
multi_for_advance_cell(cell4, cell1##__state, l4, i), \
(cell1 != NULL && cell2 != NULL && cell3 != NULL && cell4 != NULL); \
cell1##__state.i++)
int i

Definition at line 476 of file pg_list.h.

Referenced by BuildDescFromLists(), convert_EXISTS_to_ANY(), ExecIndexBuildScanKeys(), generate_setop_tlist(), get_from_clause_coldeflist(), and transformSetOperationStmt().

◆ forthree

#define forthree (   cell1,
  list1,
  cell2,
  list2,
  cell3,
  list3 
)
Value:
for (ForThreeState cell1##__state = {(list1), (list2), (list3), 0}; \
multi_for_advance_cell(cell1, cell1##__state, l1, i), \
multi_for_advance_cell(cell2, cell1##__state, l2, i), \
multi_for_advance_cell(cell3, cell1##__state, l3, i), \
(cell1 != NULL && cell2 != NULL && cell3 != NULL); \
cell1##__state.i++)
int i

Definition at line 464 of file pg_list.h.

Referenced by addRangeTableEntryForFunction(), buildNSItemFromLists(), contain_leaked_vars_walker(), expand_indexqual_rowcompare(), expandRTE(), generate_append_tlist(), set_plan_refs(), split_pathtarget_at_srfs(), transformInsertRow(), and transformInsertStmt().

◆ lfirst

#define lfirst (   lc)    ((lc)->ptr_value)

Definition at line 190 of file pg_list.h.

Referenced by _equalList(), _outList(), _SPI_execute_plan(), _SPI_make_plan_non_temp(), _SPI_save_plan(), AcquireExecutorLocks(), AcquireRewriteLocks(), add_base_rels_to_query(), add_foreign_final_paths(), add_foreign_ordered_paths(), add_new_columns_to_pathtarget(), add_partial_path(), add_partial_path_precheck(), add_path(), add_path_precheck(), add_paths_to_append_rel(), add_paths_to_grouping_rel(), add_paths_to_joinrel(), add_paths_with_pathkeys_for_rel(), add_placeholders_to_base_rels(), add_placeholders_to_joinrel(), add_predicate_to_index_quals(), add_rtes_to_flat_rtable(), add_security_quals(), add_sp_item_to_pathtarget(), add_sp_items_to_pathtarget(), add_to_flat_tlist(), add_unique_group_var(), add_vars_to_targetlist(), add_with_check_options(), addArc(), addArcs(), AddEventToPendingNotifies(), addFamilyMember(), addKey(), addRangeTableEntryForCTE(), addRangeTableEntryForFunction(), addRangeTableEntryForSubquery(), AddRelationNewConstraints(), AddWALInfoToBackupManifest(), adjust_inherited_tlist(), adjust_paths_for_srfs(), adjust_rowcount_for_semijoins(), adjustJoinTreeList(), advance_windowaggregate(), advance_windowaggregate_base(), afterTriggerDeleteHeadEventChunk(), AfterTriggerFreeQuery(), AfterTriggerSetState(), AlterDatabase(), AlterDomainNotNull(), AlterFunction(), AlterOperator(), AlterPublicationTables(), AlterRole(), AlterSubscription_refresh(), AlterTableGetLockLevel(), AlterTableGetRelOptionsLockLevel(), AlterTSDictionary(), AlterType(), analyzeCTE(), analyzeCTETargetList(), append_nonpartial_cost(), append_startup_cost_compare(), append_total_cost_compare(), appendAggOrderBy(), appendConditions(), appendGroupByClause(), appendOrderByClause(), appendTypeNameToBuffer(), apply_child_basequals(), apply_handle_truncate(), apply_pathtarget_labeling_to_tlist(), apply_scanjoin_target_to_paths(), apply_server_options(), apply_table_options(), apply_tlist_labeling(), ApplyExtensionUpdates(), ApplyLauncherMain(), approx_tuple_count(), arrayexpr_next_fn(), assign_collations_walker(), assign_hypothetical_collations(), assign_list_collations(), assign_param_for_placeholdervar(), assign_param_for_var(), assignSortGroupRef(), AsyncExistsPendingNotify(), asyncQueueAddEntries(), ATAddCheckConstraint(), AtCommit_Notify(), ATController(), AtEOSubXact_on_commit_actions(), AtEOXact_ApplyLauncher(), AtEOXact_on_commit_actions(), AtEOXact_Snapshot(), ATExecDetachPartition(), ATExecSetRelOptions(), ATGetQueueEntry(), ATParseTransformCmd(), ATPostAlterTypeCleanup(), ATPostAlterTypeParse(), ATRewriteCatalogs(), ATRewriteTable(), ATRewriteTables(), AtSubCommit_Notify(), blvalidate(), bms_equal_any(), brinvalidate(), btvalidate(), build_index_pathkeys(), build_index_paths(), build_index_tlist(), build_join_rel_hash(), build_joinrel_tlist(), build_local_reloptions(), build_merged_partition_bounds(), build_path_tlist(), build_paths_for_OR(), build_pertrans_for_aggref(), build_physical_tlist(), build_remote_returning(), build_subplan(), build_tlist_index(), build_tlist_index_other_vars(), BuildDescForRelation(), BuildDescFromLists(), buildRelationAliases(), BuildRelationExtStatistics(), cached_scansel(), CachedPlanAllowsSimpleValidityCheck(), ChangeVarNodes(), check_constant_qual(), check_datestyle(), check_db(), check_functional_grouping(), check_hba(), check_index_only(), check_index_predicates(), check_log_destination(), check_log_statement(), check_new_partition_bound(), check_outerjoin_delay(), check_output_expressions(), check_redundant_nullability_qual(), check_role(), check_selective_binary_conversion(), check_sql_fn_retval(), check_temp_tablespaces(), check_ungrouped_columns_walker(), check_usermap(), check_wal_consistency_checking(), checkInsertTargets(), checkNameSpaceConflicts(), CheckRADIUSAuth(), checkRuleResultList(), checkSharedDependencies(), checkWellFormedRecursionWalker(), choose_best_statistics(), choose_bitmap_and(), ChooseConstraintName(), ChooseExtendedStatisticNameAddition(), ChooseForeignKeyConstraintNameAddition(), ChooseIndexColumnNames(), ChooseIndexNameAddition(), ChoosePortalStrategy(), classify_index_clause_usage(), clause_is_strict_for(), clause_selectivity(), clauselist_apply_dependencies(), clauselist_selectivity_simple(), CloneFkReferencing(), CloseTableList(), cluster(), cmp_list_len_asc(), coerce_record_to_complex(), colname_is_unique(), colNameToVar(), compare_pathkeys(), compare_tlist_datatypes(), compareWalFileNames(), compute_function_attributes(), compute_semijoin_info(), ComputeExtStatisticsRows(), ComputeIndexAttrs(), ComputePartitionAttrs(), consider_index_join_outer_rels(), consider_parallel_mergejoin(), consider_parallel_nestloop(), ConstructTupleDescriptor(), contain_leaked_vars_walker(), convert_EXISTS_to_ANY(), convert_requires_to_datum(), convert_subquery_pathkeys(), CopyGetAttnums(), CopyMultiInsertInfoCleanup(), CopyMultiInsertInfoFlush(), cost_append(), cost_bitmap_and_node(), cost_bitmap_or_node(), cost_incremental_sort(), cost_qual_eval(), count_nonjunk_tlist_entries(), create_append_path(), create_append_plan(), create_bitmap_subplan(), create_ctas_nodata(), create_ctescan_plan(), create_customscan_plan(), create_distinct_paths(), create_foreignscan_plan(), create_groupingsets_path(), create_groupingsets_plan(), create_index_paths(), create_indexscan_plan(), create_join_clause(), create_lateral_join_info(), create_limit_plan(), create_list_bounds(), create_merge_append_path(), create_merge_append_plan(), create_mergejoin_plan(), create_minmaxagg_path(), create_minmaxagg_plan(), create_modifytable_path(), create_modifytable_plan(), create_nestloop_path(), create_ordered_paths(), create_partial_grouping_paths(), create_set_projection_path(), create_unique_plan(), create_window_paths(), create_windowagg_plan(), createdb(), CreateEventTrigger(), CreateExtension(), CreateExtensionInternal(), CreateRole(), CreateSchemaCommand(), CreateStatistics(), CreateSubscription(), CreateTrigger(), dblink_fdw_validator(), deconstruct_recurse(), defGetStringList(), DefineDomain(), DefineIndex(), DefineOperator(), DefineRange(), DefineRelation(), DefineTSConfiguration(), DefineTSDictionary(), DefineTSParser(), DefineTSTemplate(), DefineType(), DefineView(), DefineVirtualRelation(), deflist_to_tuplestore(), DelRoleMems(), deparseAggref(), deparseAnalyzeSql(), deparseArrayExpr(), deparseBoolExpr(), deparseColumnRef(), deparseFuncExpr(), deparseOpExpr(), deparseParam(), deparseRelation(), deparseSubqueryTargetList(), deparseSubscriptingRef(), deparseVar(), dependencies_clauselist_selectivity(), dependency_is_compatible_clause(), determineRecursiveColTypes(), dintdict_init(), dispell_init(), do_analyze_rel(), do_start_worker(), DoCopy(), domain_check_input(), DropConfigurationMapping(), DropDatabase(), dropOperators(), dropProcedures(), DropRole(), DropSubscription(), dsimple_init(), dsnowball_init(), dsynonym_init(), dump_block(), dump_case(), dump_dynexecute(), dump_dynfors(), dump_getdiag(), dump_if(), dump_open(), dump_raise(), dump_return_query(), dump_stmts(), dxsyn_init(), eclass_already_used(), eclass_useful_for_merging(), EnumValuesCreate(), equalRSDesc(), estimate_multivariate_ndistinct(), estimate_num_groups(), eval_const_expressions_mutator(), EvalOrderByExpressions(), EvalPlanQualEnd(), EvalPlanQualStart(), evaluate_function(), EvaluateParams(), EventTriggerCollectGrant(), EventTriggerCommonSetup(), examine_variable(), exec_check_rw_parameter(), exec_eval_using_params(), exec_stmt_block(), exec_stmt_call(), exec_stmt_case(), exec_stmt_execsql(), exec_stmt_getdiag(), exec_stmt_if(), exec_stmt_raise(), exec_stmts(), Exec_UnlistenCommit(), ExecAlterDefaultPrivilegesStmt(), ExecAlterExtensionStmt(), ExecBuildAggTrans(), ExecCheckPlanOutput(), ExecCheckRTPerms(), ExecCheckXactReadOnly(), ExecCleanUpTriggerState(), ExecEndPlan(), ExecEvalFuncArgs(), ExecEvalXmlExpr(), ExecFindJunkAttributeInTlist(), ExecGetTriggerResultRel(), ExecGrant_Relation(), ExecHashGetHashValue(), ExecIndexBuildScanKeys(), ExecInitAgg(), ExecInitBitmapAnd(), ExecInitBitmapOr(), ExecInitCoerceToDomain(), ExecInitExprList(), ExecInitExprRec(), ExecInitFunc(), ExecInitFunctionScan(), ExecInitIndexScan(), ExecInitJunkFilter(), ExecInitJunkFilterConversion(), ExecInitModifyTable(), ExecInitNode(), ExecInitPartitionInfo(), ExecInitProjectSet(), ExecInitPruningContext(), ExecInitQual(), ExecInitSubscriptingRef(), ExecInitValuesScan(), ExecInitWholeRowVar(), ExecInitWindowAgg(), ExecLockRows(), ExecNestLoop(), ExecPostprocessPlan(), ExecPrepareExprList(), ExecReScan(), ExecReScanFunctionScan(), ExecScanSubPlan(), ExecSecLabelStmt(), ExecSerializePlan(), ExecSetParamPlan(), ExecSetVariableStmt(), ExecSupportsBackwardScan(), ExecTypeFromExprList(), ExecTypeFromTLInternal(), ExecTypeSetColNames(), ExecuteCallStmt(), ExecuteDoStmt(), ExecuteGrantStmt(), ExecuteTruncate(), ExecuteTruncateGuts(), ExecVacuum(), ExecWithCheckOptions(), expand_appendrel_subquery(), expand_col_privileges(), expand_function_arguments(), expand_grouping_sets(), expand_groupingset_node(), expand_targetlist(), ExpandAllTables(), expandNSItemAttrs(), expandNSItemVars(), expandRecordVariable(), expandRTE(), ExpandSingleTable(), expandTupleDesc(), ExplainCustomChildren(), ExplainNode(), ExplainPrintTriggers(), ExplainPropertyList(), ExplainPropertyListNested(), ExplainQuery(), ExplainResultDesc(), ExplainSubPlans(), expression_tree_mutator(), expression_tree_walker(), exprLocation(), exprs_known_equal(), exprTypmod(), extract_grouping_collations(), extract_grouping_cols(), extract_grouping_ops(), extract_lateral_references(), extract_or_clause(), extract_query_dependencies_walker(), extract_restriction_or_clauses(), extract_rollup_sets(), ExtractConnectionOptions(), ExtractExtensionList(), extractRemainingColumns(), fetch_table_list(), fetch_upper_rel(), FigureColnameInternal(), file_fdw_validator(), file_sort_by_lsn(), fileGetOptions(), fill_hba_line(), fill_hba_view(), filter_list_to_array(), finalize_aggregate(), finalize_grouping_exprs_walker(), finalize_plan(), find_duplicate_ors(), find_ec_member_for_tle(), find_em_expr_for_input_target(), find_em_expr_for_rel(), find_expr_references_walker(), find_forced_null_vars(), find_indexpath_quals(), find_install_path(), find_join_rel(), find_jointree_node_for_rel(), find_list_position(), find_mergeclauses_for_outer_pathkeys(), find_minmax_aggs_walker(), find_nonnullable_rels_walker(), find_nonnullable_vars_walker(), find_param_path_info(), find_param_referent(), find_partition_scheme(), find_placeholder_info(), find_placeholders_in_expr(), find_placeholders_recurse(), find_single_rel_for_clauses(), find_update_path(), find_var_for_subquery_tle(), findAttrByName(), findTargetlistEntrySQL92(), findTargetlistEntrySQL99(), findWindowClause(), fireRIRrules(), fireRules(), fix_append_rel_relids(), fix_indexorderby_references(), fix_indexqual_clause(), fix_indexqual_operand(), fix_placeholder_input_needed_levels(), fix_scan_expr_mutator(), fix_upper_expr_mutator(), flatten_grouping_sets(), flatten_join_alias_vars_mutator(), flatten_set_variable_args(), flush_pipe_input(), fmgr_sql(), foreign_expr_walker(), foreign_grouping_ok(), foreign_join_ok(), FormIndexDatum(), FormPartitionKeyDatum(), free_block(), free_case(), free_dynexecute(), free_dynfors(), free_if(), free_open(), free_raise(), free_return_query(), free_stmts(), func_get_detail(), funcname_signature_string(), gather_grouping_paths(), gen_partprune_steps_internal(), gen_prune_steps_from_opexps(), generate_append_tlist(), generate_base_implied_equalities(), generate_base_implied_equalities_broken(), generate_base_implied_equalities_const(), generate_base_implied_equalities_no_const(), generate_bitmap_or_paths(), generate_gather_paths(), generate_implied_equalities_for_column(), generate_join_implied_equalities_broken(), generate_join_implied_equalities_for_ecs(), generate_join_implied_equalities_normal(), generate_orderedappend_paths(), generate_partitionwise_join_paths(), generate_relation_name(), generate_setop_grouplist(), generate_setop_tlist(), generate_subquery_params(), generate_subquery_vars(), generate_union_paths(), generate_useful_gather_paths(), generateClonedIndexStmt(), genericcostestimate(), get_actual_variable_range(), get_agg_expr(), get_altertable_subcmdtypes(), get_available_versions_for_extension(), get_baserel_parampathinfo(), get_basic_select_query(), get_bitmap_tree_required_outer(), get_cheapest_fractional_path(), get_cheapest_fractional_path_for_pathkeys(), get_cheapest_parallel_safe_total_inner(), get_cheapest_parameterized_child_path(), get_cheapest_path_for_pathkeys(), get_connect_string(), get_eclass_for_sort_expr(), get_ENR(), get_expr_result_type(), get_ext_ver_info(), get_file_fdw_attribute_options(), get_foreign_key_join_selectivity(), get_from_clause(), get_from_clause_coldeflist(), get_from_clause_item(), get_func_expr(), get_index_clause_from_support(), get_index_paths(), get_indexpath_pages(), get_insert_query_def(), get_join_index_paths(), get_joinrel_parampathinfo(), get_matching_location(), get_matching_partitions(), get_name_for_var_field(), get_nearest_unprocessed_vertex(), get_number_of_groups(), get_object_address_attribute(), get_parse_rowmark(), get_partkey_exec_paramids(), get_plan_rowmark(), get_policies_for_relation(), get_qual_for_hash(), get_qual_for_list(), get_qual_for_range(), get_range_key_properties(), get_range_nulltest(), get_range_partbound_string(), get_rel_sync_entry(), get_relation_column_alias_ids(), get_relation_foreign_keys(), get_relids_in_jointree(), get_rels_with_domain(), get_required_extension(), get_rte_attribute_is_dropped(), get_rule_expr(), get_rule_groupingset(), get_rule_orderby(), get_rule_windowclause(), get_rule_windowspec(), get_select_query_def(), get_simple_values_rte(), get_sortgrouplist_exprs(), get_sortgroupref_clause(), get_sortgroupref_clause_noerr(), get_sortgroupref_tle(), get_steps_using_prefix_recurse(), get_switched_clauses(), get_tablefunc(), get_tablesample_def(), get_target_list(), get_tle_by_resno(), get_tlist_exprs(), get_update_query_targetlist_def(), get_useful_ecs_for_relation(), get_useful_pathkeys_for_relation(), get_values_def(), get_windowfunc_expr(), get_with_clause(), GetAfterTriggersTableData(), GetCommandLogLevel(), GetCTEForRTE(), GetExistingLocalJoinPath(), GetNSItemByRangeTablePosn(), getTokenTypes(), gimme_tree(), ginvalidate(), gistbufferinginserttuples(), gistRelocateBuildBuffersOnSplit(), gistvalidate(), GrantRole(), group_by_has_partkey(), grouping_is_hashable(), grouping_is_sortable(), grouping_planner(), has_dangerous_join_using(), has_indexed_join_quals(), has_join_restriction(), has_legal_joinclause(), has_partition_attrs(), has_stats_of_kind(), has_unique_index(), hash_inner_and_outer(), hashagg_reset_spill_state(), hashvalidate(), have_dangerous_phv(), have_join_order_restriction(), have_relevant_joinclause(), heap_truncate(), heap_truncate_check_FKs(), identify_current_nestloop_params(), ImportForeignSchema(), index_other_operands_eval_cost(), indexcol_is_bool_constant_for_query(), infer_arbiter_indexes(), inheritance_planner(), init_params(), init_returning_filter(), initialize_peragg(), InitPlan(), inline_function(), innerrel_is_unique(), interpret_function_parameter_list(), intorel_startup(), is_innerrel_unique_for(), is_parallel_safe(), is_redundant_derived_clause(), isFutureCTE(), IsImportableForeignTable(), IsListeningOn(), isLockedRefname(), isQueryUsingTempRelation_walker(), join_is_legal(), join_is_removable(), join_search_one_level(), jointree_contains_lateral_outer_refs(), jsonb_path_query_internal(), JsonValueListNext(), JumbleExpr(), lappend(), lcons(), list_concat_unique(), list_concat_unique_ptr(), list_copy_deep(), list_delete(), list_delete_ptr(), list_difference(), list_difference_ptr(), list_free_private(), list_insert_nth(), list_intersection(), list_member(), list_member_ptr(), list_next_fn(), list_nth(), list_union(), list_union_ptr(), llvm_get_function(), load_hba(), load_ident(), load_libraries(), LoadPublications(), LockTableCommand(), LockViewRecurse_walker(), lookup_proof_cache(), LookupFuncWithArgs(), make_canonical_pathkey(), make_fn_arguments(), make_group_input_target(), make_inner_pathkeys_for_merge(), make_jsp_expr_node_args(), make_one_partition_rbound(), make_outerjoininfo(), make_partial_grouping_target(), make_partition_op_expr(), make_partition_pruneinfo(), make_partitionedrel_pruneinfo(), make_pathkeys_for_sortclauses(), make_pathtarget_from_tlist(), make_recursive_union(), make_rel_from_joinlist(), make_rels_by_clause_joins(), make_rels_by_clauseless_joins(), make_row_comparison_op(), make_row_distinct_op(), make_ruledef(), make_setop(), make_setop_translation_list(), make_sort_from_groupcols(), make_sort_from_sortclauses(), make_sort_input_target(), make_sub_restrictinfos(), make_tlist_from_pathtarget(), make_unique_from_pathkeys(), make_unique_from_sortclauses(), make_window_input_target(), MakeConfigurationMapping(), makeDependencyGraphWalker(), map_sql_typecoll_to_xmlschema_types(), markQueryForLocking(), markTargetListOrigins(), match_clause_to_index(), match_clause_to_partition_key(), match_eclasses_to_foreign_key_col(), match_expr_to_partition_keys(), match_foreign_keys_to_quals(), match_funcclause_to_indexcol(), match_index_to_operand(), match_join_clauses_to_index(), match_pathkeys_to_index(), match_unsorted_outer(), MatchNamedCall(), mcv_get_match_bitmap(), merge_clump(), MergeAttributes(), MergeCheckConstraint(), MJExamineQuals(), NameListToQuotedString(), NameListToString(), negate_clause(), objectNamesToOids(), objectsInSchemaToOids(), OffsetVarNodes(), OpenTableList(), optionListToArray(), order_qual_clauses(), ordered_set_startup(), packArcInfoCmp(), packGraph(), parse_basebackup_options(), parse_func_options(), parse_hba_auth_opt(), parse_hba_line(), parse_ident_line(), parse_output_parameters(), parse_publication_options(), parse_subscription_options(), parse_tsquery(), parseCheckAggregates(), parseCreateReplSlotOptions(), ParseFuncOrColumn(), parseLocalRelOptions(), partkey_is_bool_constant_for_query(), pathkey_is_redundant(), pathkeys_count_contained_in(), pathkeys_useful_for_merging(), perform_base_backup(), perform_pruning_base_step(), perform_pullup_replace_vars(), pg_decode_startup(), pg_event_trigger_ddl_commands(), pg_extension_update_paths(), pg_get_functiondef(), pg_get_indexdef_worker(), pg_get_partkeydef_worker(), pg_rewrite_query(), PlanCacheObjectCallback(), planstate_tree_walker(), plpgsql_extra_checks_check_hook(), policy_role_list_to_array(), postgres_fdw_validator(), postgresAcquireSampleRowsFunc(), postgresGetForeignPaths(), postgresGetForeignPlan(), postgresImportForeignSchema(), postgresIsForeignRelUpdatable(), postgresql_fdw_validator(), PostmasterMain(), PreCommit_Notify(), PreCommit_on_commit_actions(), prep_domain_constraints(), prepare_query_params(), prepare_sort_from_pathkeys(), PrepareClientEncoding(), PrepareQuery(), PrepareTempTablespaces(), preprocess_function_rtes(), preprocess_grouping_sets(), preprocess_minmax_aggregates(), preprocess_qual_conditions(), preprocess_targetlist(), print_expr(), print_function_arguments(), print_pathkeys(), print_rt(), print_tl(), printSubscripts(), ProcedureCreate(), process_duplicate_ors(), process_equivalence(), process_owned_by(), process_pipe_input(), process_query_params(), process_security_barrier_quals(), process_startup_options(), process_sublinks_mutator(), process_subquery_nestloop_params(), process_syncing_tables_for_apply(), ProcessUtilitySlow(), prsd_headline(), PublicationAddTables(), PublicationDropTables(), publicationListToArray(), pull_ands(), pull_ors(), pull_up_simple_subquery(), pull_up_simple_union_all(), pull_up_simple_values(), pull_up_sublinks_jointree_recurse(), pull_up_sublinks_qual_recurse(), pull_up_subqueries_recurse(), push_ancestor_plan(), qual_is_pushdown_safe(), query_is_distinct_for(), QueryRewrite(), range_table_mutator(), raw_expression_tree_walker(), rebuild_database_list(), rebuild_fdw_scan_tlist(), recheck_cast_function_args(), recomputeNamespacePath(), reconsider_full_join_clause(), reconsider_outer_join_clause(), reconsider_outer_join_clauses(), recurse_set_operations(), reduce_outer_joins_pass1(), reduce_outer_joins_pass2(), reduce_unique_semijoins(), ReindexRelationConcurrently(), rel_supports_distinctness(), relation_excluded_by_constraints(), relation_has_unique_index_for(), RelationBuildPartitionKey(), RelationCacheInvalidate(), RelationGetDummyIndexExpressions(), remap_groupColIdx(), RememberSyncRequest(), remove_on_commit_action(), remove_rel_from_joinlist(), remove_rel_from_query(), remove_unused_subquery_outputs(), remove_useless_joins(), remove_useless_result_rtes(), remove_useless_results_recurse(), RemoveInheritance(), RemoveObjects(), RemoveRelations(), RemoveSocketFiles(), reorder_function_arguments(), reorder_grouping_sets(), reparameterize_path(), reparameterize_pathlist_by_child(), replace_nestloop_param_placeholdervar(), replace_nestloop_param_var(), replace_vars_in_jointree(), rescanLatestTimeLine(), resolve_unique_index_expr(), resolveTargetListUnknowns(), RewriteQuery(), rewriteRuleAction(), rewriteTargetListIU(), rewriteTargetView(), rewriteValuesRTE(), right_merge_direction(), row_security_policy_cmp(), scalararraysel(), scanNameSpaceForCTE(), scanNameSpaceForRefname(), scanNameSpaceForRelid(), ScanQueryForLocks(), scanRTEForColumn(), search_indexed_tlist_for_sortgroupref(), SearchCatCacheList(), searchForDefault(), searchRangeTableForCol(), searchRangeTableForRel(), select_common_type(), select_mergejoin_clauses(), select_outer_pathkeys_for_merge(), selectColorTrigrams(), SendBackupHeader(), sendDir(), SendNegotiateProtocolVersion(), SendRowDescriptionCols_3(), sepgsql_avc_lookup(), sepgsql_avc_reclaim(), sepgsql_dml_privileges(), sepgsql_subxact_callback(), sepgsql_utility_command(), serialize_deflist(), set_append_references(), set_append_rel_pathlist(), set_append_rel_size(), set_base_rel_consider_startup(), set_baserel_partition_key_exprs(), set_cheapest(), set_cte_pathlist(), set_customscan_references(), set_deparse_for_query(), set_dummy_tlist_references(), set_function_pathlist(), set_function_size_estimates(), set_join_references(), set_joinrel_partition_key_exprs(), set_mergeappend_references(), set_param_references(), set_pathtarget_cost_width(), set_plan_refs(), set_rel_width(), set_relation_column_names(), set_rtable_names(), set_simple_column_names(), set_subquery_pathlist(), set_upper_references(), set_using_names(), SetClientEncoding(), SetDefaultACLsInSchemas(), setNamespaceColumnVisibility(), setNamespaceLateralState(), setRuleCheckAsUser_Query(), setup_simple_rel_arrays(), show_grouping_set_keys(), show_grouping_sets(), show_plan_tlist(), show_tablesample(), ShutdownSQLFunction(), sort_inner_and_outer(), spgvalidate(), SPI_freeplan(), SPI_keepplan(), SPI_plan_is_valid(), split_pathtarget_at_srfs(), split_pathtarget_walker(), sql_exec_error_callback(), SS_charge_for_initplans(), SS_identify_outer_params(), SS_process_ctes(), standard_join_search(), standard_planner(), standard_ProcessUtility(), StartupXLOG(), statext_is_compatible_clause_internal(), statext_mcv_clauselist_selectivity(), StoreConstraints(), storeOperators(), storeProcedures(), StoreRelCheck(), stringlist_to_identifierstr(), stringToQualifiedNameList(), strlist_to_textarray(), subbuild_joinrel_joinlist(), subbuild_joinrel_restrictlist(), subquery_planner(), tablesample_init(), targetIsInAllPartitionLists(), targetIsInSortList(), testexpr_is_hashable(), textToQualifiedNameList(), tfuncInitialize(), tfuncLoadRows(), thesaurus_init(), TidExprListCreate(), TidListEval(), TidQualFromRestrictInfoList(), tliInHistory(), tliOfPointInHistory(), tlist_matches_tupdesc(), tlist_member(), tlist_member_ignore_relabel(), tlist_member_match_var(), tlist_same_collations(), tlist_same_datatypes(), tlist_same_exprs(), tliSwitchPoint(), tokenize_inc_file(), TouchSocketFiles(), TouchSocketLockFiles(), transformAExprIn(), transformAExprOf(), transformAggregateCall(), transformAlterTableStmt(), transformArrayExpr(), transformAssignmentIndirection(), transformBoolExpr(), transformCallStmt(), transformCaseExpr(), transformCheckConstraints(), transformCoalesceExpr(), transformColumnNameList(), transformConstraintAttrs(), transformContainerSubscripts(), transformCreateSchemaStmt(), transformCreateStmt(), transformDistinctClause(), transformDistinctOnClause(), transformExpressionList(), transformFKConstraints(), transformFromClause(), transformFromClauseItem(), transformFuncCall(), transformGenericOptions(), transformGroupClause(), transformGroupClauseExpr(), transformGroupClauseList(), transformGroupingFunc(), transformGroupingSet(), transformIndexConstraint(), transformIndexConstraints(), transformIndexStmt(), transformIndirection(), transformInsertRow(), transformInsertStmt(), transformJoinUsingClause(), transformLockingClause(), transformMinMaxExpr(), transformPartitionBound(), transformPartitionRangeBounds(), transformPartitionSpec(), transformRangeFunction(), transformRangeTableFunc(), transformRangeTableSample(), transformRelOptions(), transformRuleStmt(), transformSelectStmt(), transformSetOperationStmt(), transformSetOperationTree(), transformSortClause(), transformSubLink(), transformTargetList(), transformUpdateTargetList(), transformValuesClause(), transformWindowDefinitions(), transformWindowFuncCall(), transformWithClause(), transformXmlExpr(), translate_sub_tlist(), trim_mergeclauses_for_inner_pathkeys(), trivial_subqueryscan(), typenameTypeMod(), unaccent_init(), unify_hypothetical_args(), UnlinkLockFiles(), update_placeholder_eval_levels(), UpdateLogicalMappings(), use_physical_tlist(), UserMappingPasswordRequired(), validate_ddl_tags(), validate_table_rewrite_tags(), validateDomainConstraint(), validateInfiniteBounds(), ValuesNext(), view_cols_are_auto_updatable(), view_query_is_auto_updatable(), WaitForLockersMultiple(), XLogFileReadAnyTLI(), xmlconcat(), and xmlelement().

◆ lfirst_int

#define lfirst_int (   lc)    ((lc)->int_value)

Definition at line 191 of file pg_list.h.

Referenced by _equalList(), _outList(), adjust_paths_for_srfs(), analyzeCTE(), ATPrepAlterColumnType(), ATRewriteTable(), BeginCopy(), bms_overlap_list(), build_merged_partition_bounds(), build_subplan(), BuildDescFromLists(), buildNSItemFromLists(), BuildRelationExtStatistics(), buildSubPlanHash(), convert_prep_stmt_params(), CopyOneRowTo(), CopyTo(), create_foreign_modify(), deparseDirectUpdateSql(), deparseInsertSql(), deparseUpdateSql(), distinct_col_search(), DoCopy(), ExecBuildAggTrans(), ExecBuildGroupingEqual(), ExecEvalGroupingFunc(), ExecInitExprRec(), ExecInitQual(), ExecInitSubPlan(), ExecInitSubscriptingRef(), ExecReScanSetParamPlan(), ExecScanSubPlan(), ExecSetParamPlan(), expandRTE(), extract_rollup_sets(), extractRemainingColumns(), finalize_plan(), finalize_primnode(), find_all_inheritors(), find_compatible_pertrans(), find_expr_references_walker(), find_hash_columns(), find_param_referent(), fix_expr_common(), fix_indexorderby_references(), fix_indexqual_clause(), fix_merged_indexes(), get_from_clause_coldeflist(), get_matching_location(), get_rule_groupingset(), get_tablefunc(), identify_join_columns(), inheritance_planner(), InitPlan(), JumbleExpr(), lappend_int(), lcons_int(), list_concat_unique_int(), list_delete_int(), list_difference_int(), list_insert_nth_int(), list_intersection_int(), list_member_int(), list_nth_int(), list_union_int(), make_modifytable(), make_partitionedrel_pruneinfo(), make_tuple_from_result_row(), NextCopyFrom(), perform_pruning_combine_step(), prepare_projection_slot(), preprocess_groupclause(), remap_to_groupclause_idx(), rename_constraint_internal(), renameatt_internal(), set_param_references(), set_plan_refs(), show_grouping_set_keys(), SS_identify_outer_params(), TerminateOtherDBBackends(), transformDistinctOnClause(), transformInsertRow(), transformInsertStmt(), and transformSetOperationStmt().

◆ lfirst_node

#define lfirst_node (   type,
  lc 
)    castNode(type, lfirst(lc))

Definition at line 193 of file pg_list.h.

Referenced by _SPI_execute_plan(), _SPI_prepare_oneshot_plan(), _SPI_prepare_plan(), AcquireExecutorLocks(), AcquirePlannerLocks(), addFkRecurseReferencing(), AddRoleMems(), adjust_paths_for_srfs(), adjust_view_column_set(), AlterOpFamilyAdd(), AlterOpFamilyDrop(), apply_scanjoin_target_to_paths(), assign_aggregate_collations(), assign_collations_walker(), assign_ordered_set_collations(), ATExecSetIdentity(), ATParseTransformCmd(), ATPostAlterTypeParse(), BeginCopy(), brincostestimate(), btcostestimate(), build_tlist_to_deparse(), BuildCachedPlan(), BuildParameterizedTidPaths(), cached_plan_cost(), CachedPlanAllowsSimpleValidityCheck(), calc_joinrel_size_estimate(), check_sql_fn_retval(), check_sql_fn_statements(), classifyConditions(), CloneFkReferencing(), common_prefix_cmp(), compute_semi_anti_join_factors(), consider_groupingsets_paths(), cost_tidscan(), cost_windowagg(), create_bitmap_scan_plan(), create_hashjoin_plan(), create_indexscan_plan(), create_mergejoin_plan(), create_one_window_path(), create_tidscan_plan(), CreateFunction(), CreateTrigger(), DefineAggregate(), DefineCollation(), DefineOpClass(), DefineQueryRewrite(), DefineView(), deparse_context_for_plan_tree(), deparseExplicitTargetList(), errdetail_execute(), eval_const_expressions_mutator(), exec_simple_query(), ExecBuildProjectionInfo(), ExecCleanTargetListLength(), ExecCreatePartitionPruneState(), ExecInitAlternativeSubPlan(), ExecInitLockRows(), ExecInitModifyTable(), ExecInitSubPlan(), ExecResetTupleTable(), ExecSerializePlan(), execute_sql_string(), ExecVacuum(), ExplainExecuteQuery(), ExplainQuery(), expression_tree_walker(), exprTypmod(), extract_actual_clauses(), extract_actual_join_clauses(), extract_nonindex_conditions(), extract_or_clause(), final_cost_hashjoin(), fix_indexqual_references(), fmgr_sql_validator(), foreign_grouping_ok(), foreign_join_ok(), generate_bitmap_or_paths(), generateSerialExtraStmts(), get_actual_clauses(), get_number_of_groups(), get_object_address_opf_member(), get_quals_from_indexclauses(), get_rule_expr(), get_sublink_expr(), gincostestimate(), have_partkey_equi_join(), ImportForeignSchema(), inheritance_planner(), init_execution_state(), init_sql_fcache(), is_redundant_with_indexclauses(), JumbleExpr(), JumbleRangeTable(), JumbleRowMarks(), make_modifytable(), make_window_input_target(), match_clauses_to_index(), pg_plan_queries(), plan_cluster_use_sort(), PlanCacheObjectCallback(), PlanCacheRelCallback(), planstate_walk_subplans(), PortalGetPrimaryStmt(), PortalRunMulti(), postgresGetForeignPlan(), postgresGetForeignRelSize(), postprocess_setop_tlist(), preprocess_groupclause(), preprocess_grouping_sets(), preprocess_rowmarks(), ProcessCopyOptions(), query_tree_mutator(), query_tree_walker(), QueryListGetPrimaryStmt(), range_table_walker(), raw_expression_tree_walker(), rel_is_distinct_for(), remap_to_groupclause_idx(), remove_useless_groupby_columns(), ResetPlanCache(), restriction_is_constant_false(), RewriteQuery(), roleSpecsToIds(), ScanQueryForLocks(), select_active_windows(), set_plan_references(), set_subquery_size_estimates(), setup_simple_rel_arrays(), SPI_cursor_open_internal(), standard_planner(), subquery_planner(), TidQualFromRestrictInfoList(), transformAlterTableStmt(), transformCaseExpr(), transformColumnDefinition(), transformContainerSubscripts(), transformIndexConstraint(), transformIndexConstraints(), transformInsertRow(), transformInsertStmt(), transformUpdateTargetList(), transformXmlExpr(), translate_col_privs(), try_partitionwise_join(), type_in_list_does_not_exist_skipping(), TypeNameListToString(), update_proconfig_value(), and vacuum().

◆ lfirst_oid

#define lfirst_oid (   lc)    ((lc)->oid_value)

Definition at line 192 of file pg_list.h.

Referenced by _equalList(), _outList(), acquire_inherited_sample_rows(), AddRoleMems(), AfterTriggerSetState(), AlterIndexNamespaces(), AlterPublicationOptions(), AlterPublicationTables(), AlterTableMoveAll(), analyzeCTE(), apply_handle_truncate(), ApplyExtensionUpdates(), ATAddCheckConstraint(), ATAddForeignKeyConstraint(), ATCheckPartitionsNotInUse(), ATDetachCheckNoForeignKeyRefs(), ATExecAddColumn(), ATExecAlterConstraint(), ATExecChangeOwner(), ATExecDetachPartition(), ATExecDropColumn(), ATExecDropConstraint(), ATExecDropNotNull(), ATExecSetStorage(), ATExecSetTableSpace(), ATExecValidateConstraint(), ATPostAlterTypeCleanup(), ATPrepAlterColumnType(), ATSimpleRecursion(), AttachPartitionEnsureIndexes(), ATTypedTableRecursion(), BuildDescFromLists(), buildNSItemFromLists(), calculate_indexes_size(), calculate_toast_table_size(), check_default_partition_contents(), check_functions_in_node(), CloneFkReferenced(), CloneFkReferencing(), cluster(), CollationGetCollid(), compare_tlist_datatypes(), contain_leaked_vars_walker(), ConversionGetConid(), convert_EXISTS_to_ANY(), cost_qual_eval_walker(), create_unique_plan(), CreateFunction(), CreateTrigger(), current_schemas(), database_to_xml_internal(), database_to_xmlschema_internal(), DefineIndex(), DefineRelation(), DelRoleMems(), distinct_col_search(), do_autovacuum(), DropOwnedObjects(), EventTriggerInvoke(), ExecGrant_Database(), ExecGrant_Fdw(), ExecGrant_ForeignServer(), ExecGrant_Function(), ExecGrant_Language(), ExecGrant_Largeobject(), ExecGrant_Namespace(), ExecGrant_Relation(), ExecGrant_Tablespace(), ExecGrant_Type(), ExecHashTableCreate(), ExecIndexBuildScanKeys(), ExecInitExprRec(), ExecInitIndexScan(), ExecInitPartitionInfo(), ExecOpenIndices(), ExecRefreshMatView(), execute_extension_script(), ExecuteTruncate(), ExecuteTruncateGuts(), expand_indexqual_rowcompare(), expand_inherited_rtentry(), expand_vacuum_rel(), expandRTE(), fetch_search_path_array(), find_all_inheritors(), find_expr_references_walker(), FindDefaultConversionProc(), FuncnameGetCandidates(), generate_append_tlist(), generate_setop_tlist(), get_aggregate_argtypes(), get_collation_oid(), get_conversion_oid(), get_from_clause_coldeflist(), get_rel_sync_entry(), get_relation_info(), get_relation_statistics(), get_statistics_object_oid(), get_tablefunc(), get_ts_config_oid(), get_ts_dict_oid(), get_ts_parser_oid(), get_ts_template_oid(), GetPublicationRelations(), GetRelationPublicationActions(), heap_truncate(), heap_truncate_check_FKs(), heap_truncate_find_FKs(), index_concurrently_swap(), index_get_partition(), infer_arbiter_indexes(), InsertExtensionTuple(), is_admin_of_role(), lappend_oid(), lcons_oid(), list_concat_unique_oid(), list_delete_oid(), list_difference_oid(), list_insert_nth_oid(), list_member_oid(), list_nth_oid(), list_oid_cmp(), list_union_oid(), LockTableRecurse(), map_sql_catalog_to_xmlschema_types(), map_sql_schema_to_xmlschema_types(), map_sql_typecoll_to_xmlschema_types(), mark_index_clustered(), merge_acl_with_grant(), MergeAttributes(), OpclassnameGetOpcid(), OpenTableList(), OpernameGetCandidates(), OpernameGetOprid(), OpfamilynameGetOpfid(), OverrideSearchPathMatchesCurrent(), perform_pruning_base_step(), pg_partition_tree(), PreCommit_on_commit_actions(), ProcessUtilitySlow(), ReassignOwnedObjects(), refresh_by_match_merge(), reindex_relation(), ReindexMultipleTables(), ReindexRelationConcurrently(), relation_has_unique_index_for(), relation_mark_replica_identity(), RelationBuildPartitionDesc(), RelationGetIndexAttrBitmap(), relationHasPrimaryKey(), RelationIsVisible(), RelationTruncateIndexes(), RelnameGetRelid(), remove_dbtablespaces(), rename_constraint_internal(), renameatt_internal(), roles_has_privs_of(), roles_is_member_of(), schema_to_xml_internal(), schema_to_xmlschema_internal(), select_best_grantor(), select_equality_operator(), sepgsql_dml_privileges(), SerializeReindexState(), shdepDropOwned(), shdepReassignOwned(), show_modifytable_info(), StatisticsObjIsVisible(), StoreCatalogInheritance(), tlist_same_collations(), tlist_same_datatypes(), toast_open_indexes(), transformFkeyCheckAttrs(), transformFkeyGetPrimaryKey(), transformRangeTableSample(), transformSetOperationStmt(), transformTableLikeClause(), triggered_change_notification(), TSConfigIsVisible(), TSDictionaryIsVisible(), TSParserIsVisible(), TSTemplateIsVisible(), typeInheritsFrom(), TypeIsVisible(), TypenameGetTypidExtended(), and vac_open_indexes().

◆ lfourth

#define lfourth (   l)    lfirst(list_fourth_cell(l))

Definition at line 210 of file pg_list.h.

Referenced by LookupTypeNameExtended(), and transformColumnRef().

◆ lfourth_int

#define lfourth_int (   l)    lfirst_int(list_fourth_cell(l))

Definition at line 211 of file pg_list.h.

◆ lfourth_node

#define lfourth_node (   type,
 
)    castNode(type, lfourth(l))

Definition at line 213 of file pg_list.h.

◆ lfourth_oid

#define lfourth_oid (   l)    lfirst_oid(list_fourth_cell(l))

Definition at line 212 of file pg_list.h.

◆ linitial

#define linitial (   l)    lfirst(list_head(l))

Definition at line 195 of file pg_list.h.

Referenced by add_paths_to_append_rel(), add_security_quals(), add_with_check_options(), addRangeTableEntryForFunction(), addRangeTableEntryForValues(), AddRelationNewConstraints(), agg_refill_hash_table(), ApplyRetrieveRule(), array_unnest_support(), ATColumnChangeRequiresRewrite(), AtEOSubXact_Namespace(), AtEOXact_Namespace(), bernoulli_samplescangetsamplesize(), bitmap_subplan_mark_shared(), build_partition_pathkeys(), build_subplan(), check_hashjoinable(), check_mergejoinable(), check_sql_fn_retval(), choose_bitmap_and(), ChooseExtendedStatisticNameAddition(), ChoosePortalStrategy(), clause_is_strict_for(), clauselist_selectivity_simple(), commute_restrictinfo(), CommuteOpExpr(), compute_semijoin_info(), consider_groupingsets_paths(), convert_EXISTS_sublink_to_join(), convert_EXISTS_to_ANY(), convert_subquery_pathkeys(), CopyMultiInsertInfoFlush(), cost_append(), cost_incremental_sort(), cost_qual_eval_walker(), create_append_path(), create_bitmap_subplan(), create_groupingsets_path(), create_groupingsets_plan(), create_hashjoin_plan(), create_ordered_paths(), create_partial_grouping_paths(), CreateCommandTag(), CreateStatistics(), currtid_for_view(), deconstruct_recurse(), DeconstructQualifiedName(), deparseBoolExpr(), deparseDistinctExpr(), deparseFuncExpr(), deparseScalarArrayOpExpr(), dependency_is_compatible_clause(), does_not_exist_skipping(), estimate_num_groups(), eval_const_expressions_mutator(), examine_clause_args(), exec_save_simple_expr(), exec_simple_check_plan(), exec_stmt_call(), ExecBuildAggTrans(), ExecIndexBuildScanKeys(), ExecInitAlternativeSubPlan(), ExecInitExprRec(), ExecInitModifyTable(), ExecInitPartitionInfo(), ExecInitSubPlan(), ExecInitValuesScan(), ExecSecLabelStmt(), ExecSupportsMarkRestore(), expand_grouping_sets(), expand_indexqual_rowcompare(), ExpandColumnRefStar(), ExplainTargetRel(), exprCollation(), exprType(), exprTypmod(), extract_jsp_path_expr(), extract_not_arg(), extract_strong_not_arg(), FigureColnameInternal(), find_duplicate_ors(), find_minmax_aggs_walker(), find_param_referent(), findTargetlistEntrySQL92(), fix_indexqual_clause(), fix_scan_expr_mutator(), fix_upper_expr_mutator(), FreeExecutorState(), func_get_detail(), gather_grouping_paths(), gen_partprune_steps_internal(), gen_prune_steps_from_opexps(), generate_base_implied_equalities_const(), generate_gather_paths(), generate_join_implied_equalities_normal(), generate_series_int4_support(), generate_series_int8_support(), generate_union_paths(), generate_useful_gather_paths(), get_agg_clause_costs_walker(), get_from_clause_item(), get_func_expr(), get_join_variables(), get_leftop(), get_notclausearg(), get_object_address_defacl(), get_object_address_opcf(), get_object_address_opf_member(), get_object_address_publication_rel(), get_object_address_usermapping(), get_oper_expr(), get_partition_qual_relid(), get_qual_for_list(), get_qual_for_range(), get_restriction_variable(), get_rtable_name(), get_rule_expr(), get_simple_binary_op_name(), get_singleton_append_subpath(), get_sublink_expr(), get_update_query_targetlist_def(), get_useful_pathkeys_for_relation(), get_view_query(), getInsertSelectQuery(), gimme_tree(), gistEmptyAllBuffers(), gistFindPath(), gistfinishsplit(), gistProcessEmptyingQueue(), hash_inner_and_outer(), hash_ok_operator(), have_partkey_equi_join(), initial_cost_mergejoin(), inline_function(), inline_set_returning_function(), interpret_AS_clause(), interval_support(), is_dummy_rel(), is_safe_append_member(), is_simple_values(), isSimpleNode(), IsTidEqualAnyClause(), IsTidEqualClause(), JsonValueListHead(), JsonValueListInitIterator(), like_regex_support(), llvm_release_context(), LookupOperWithArgs(), LookupTypeNameExtended(), make_ands_explicit(), make_partition_op_expr(), make_rel_from_joinlist(), make_row_comparison_op(), make_ruledef(), make_unique_from_pathkeys(), make_viewdef(), makeRangeVarFromNameList(), makeWholeRowVar(), match_clause_to_partition_key(), match_opclause_to_indexcol(), match_rowcompare_to_indexcol(), match_saopclause_to_indexcol(), matches_boolean_partition_clause(), MJExamineQuals(), negate_clause(), network_subset_support(), numeric_support(), operator_precedence_group(), operator_predicate_proof(), ordered_set_startup(), parse_hba_line(), parse_ident_line(), parseCheckAggregates(), ParseFuncOrColumn(), perform_base_backup(), pg_get_object_address(), plan_union_children(), plpgsql_parse_cwordrowtype(), plpgsql_parse_cwordtype(), PLy_abort_open_subtransactions(), PLy_subtransaction_exit(), PopOverrideSearchPath(), predicate_implied_by(), predicate_refuted_by(), prepare_sort_from_pathkeys(), preprocess_minmax_aggregates(), process_duplicate_ors(), process_owned_by(), processIndirection(), processState(), processTypesSpec(), pull_up_simple_subquery(), pull_up_simple_values(), pull_up_sublinks_qual_recurse(), query_is_distinct_for(), query_planner(), QueuePartitionConstraintValidation(), reconsider_full_join_clause(), recurse_set_operations(), reduce_outer_joins_pass2(), refresh_matview_datafill(), regnamespacein(), regrolein(), relation_excluded_by_constraints(), relation_is_updatable(), remove_useless_results_recurse(), replace_domain_constraint_value(), resolve_column_ref(), RewriteQuery(), rewriteTargetView(), rewriteValuesRTE(), rowcomparesel(), scalararraysel(), select_common_type(), set_append_references(), set_deparse_context_plan(), set_deparse_plan(), set_mergeappend_references(), set_plan_refs(), simplify_and_arguments(), simplify_boolean_equality(), simplify_or_arguments(), sort_inner_and_outer(), SPI_cursor_open_internal(), SPI_is_cursor_plan(), SPI_plan_get_cached_plan(), sql_fn_post_column_ref(), standard_join_search(), StandbyReleaseLockList(), strip_implicit_coercions(), SyncPostCheckpoint(), system_rows_samplescangetsamplesize(), system_samplescangetsamplesize(), system_time_samplescangetsamplesize(), TemporalSimplify(), test_predtest(), test_support_func(), TidExprListCreate(), to_regnamespace(), to_regrole(), transformAExprBetween(), transformAExprIn(), transformAExprNullIf(), transformAExprOf(), transformAExprOp(), transformAssignedExpr(), transformColumnDefinition(), transformColumnRef(), transformDeclareCursorStmt(), transformGraph(), transformInsertRow(), transformInsertStmt(), transformJoinUsingClause(), transformPartitionBound(), transformPartitionRangeBounds(), transformRangeFunction(), transformReturningList(), transformSelectStmt(), transformSetOperationStmt(), transformSetOperationTree(), transformValuesClause(), transformWindowDefinitions(), transformXmlExpr(), TypeGetTupleDesc(), typenameTypeMod(), typeStringToTypeName(), varbit_support(), varchar_support(), and view_query_is_auto_updatable().

◆ linitial_int

◆ linitial_node

◆ linitial_oid

◆ list_make1

#define list_make1 (   x1)    list_make1_impl(T_List, list_make_ptr_cell(x1))

Definition at line 227 of file pg_list.h.

Referenced by add_dummy_return(), add_paths_to_append_rel(), add_predicate_to_index_quals(), Async_Notify(), ATAddCheckConstraint(), ATExecAddColumn(), ATExecAttachPartition(), ATExecColumnDefault(), ATParseTransformCmd(), autovacuum_do_vac_analyze(), build_aggregate_finalfn_expr(), build_aggregate_serialfn_expr(), build_aggregate_transfn_expr(), build_coercion_expression(), build_expression_pathkey(), build_minmax_path(), BuildEventTriggerCache(), BuildParameterizedTidPaths(), check_index_predicates(), check_sql_fn_retval(), choose_bitmap_and(), consider_groupingsets_paths(), convert_combining_aggrefs(), create_append_plan(), create_bitmap_scan_plan(), create_bitmap_subplan(), create_estate_for_relation(), create_indexscan_plan(), create_tidscan_plan(), CreateRole(), deconstruct_recurse(), defGetQualifiedName(), defGetTypeName(), DefineViewRules(), DefineVirtualRelation(), deparse_context_for(), deparse_context_for_plan_tree(), DoCopy(), does_not_exist_skipping(), eval_const_expressions_mutator(), ExecInitSubPlan(), ExecSetVariableStmt(), expand_groupingset_node(), expand_indexqual_rowcompare(), ExplainNode(), extract_rollup_sets(), fileGetForeignPaths(), find_forced_null_vars(), find_nonnullable_vars_walker(), flatten_simple_union_all(), foreign_grouping_ok(), FunctionIsVisible(), gen_partprune_steps_internal(), generate_bitmap_or_paths(), generate_function_name(), generate_operator_name(), generateClonedExtStatsStmt(), generateSerialExtraStmts(), get_proposed_default_constraint(), get_qual_for_hash(), get_qual_for_list(), get_qual_for_range(), get_steps_using_prefix(), get_steps_using_prefix_recurse(), get_useful_pathkeys_for_relation(), getObjectIdentityParts(), gistFindPath(), grouping_planner(), inheritance_planner(), inline_function(), intorel_startup(), JsonValueListGetList(), list_insert_nth(), make_ands_implicit(), make_notclause(), make_op(), make_opclause(), make_ruledef(), makeSimpleA_Expr(), makeTypeName(), map_sql_table_to_xmlschema(), match_boolean_index_clause(), match_clause_to_indexcol(), match_clause_to_partition_key(), match_network_subset(), match_opclause_to_indexcol(), match_pattern_prefix(), match_saopclause_to_indexcol(), NotNullImpliedByRelConstraints(), OperatorIsVisible(), PerformCursorOpen(), pg_get_triggerdef_worker(), pg_rewrite_query(), plan_cluster_use_sort(), plan_create_index_workers(), plan_union_children(), process_duplicate_ors(), process_equivalence(), pull_up_constant_function(), pull_up_simple_values(), pull_up_sublinks(), queue_listen(), readTimeLineHistory(), recordDependencyOnExpr(), recordDependencyOnSingleRelExpr(), regoperout(), regprocout(), remove_useless_results_recurse(), replace_empty_jointree(), resolve_unique_index_expr(), selectColorTrigrams(), set_baserel_partition_key_exprs(), split_pathtarget_at_srfs(), sql_fn_post_column_ref(), standard_ProcessUtility(), test_rls_hooks_permissive(), test_rls_hooks_restrictive(), TidQualFromRestrictInfo(), transformAExprDistinct(), transformAExprIn(), transformAlterTableStmt(), transformAssignmentIndirection(), transformColumnDefinition(), transformColumnRef(), transformCurrentOfExpr(), transformGroupClause(), transformIndexConstraints(), transformIndirection(), transformRangeFunction(), transformRuleStmt(), transformSubLink(), transformValuesClause(), transformXmlSerialize(), and WaitForLockers().

◆ list_make1_int

◆ list_make1_oid

◆ list_make2

◆ list_make2_int

#define list_make2_int (   x1,
  x2 
)    list_make2_impl(T_IntList, list_make_int_cell(x1), list_make_int_cell(x2))

Definition at line 240 of file pg_list.h.

◆ list_make2_oid

#define list_make2_oid (   x1,
  x2 
)    list_make2_impl(T_OidList, list_make_oid_cell(x1), list_make_oid_cell(x2))

Definition at line 251 of file pg_list.h.

◆ list_make3

#define list_make3 (   x1,
  x2,
  x3 
)

◆ list_make3_int

#define list_make3_int (   x1,
  x2,
  x3 
)
Value:
List * list_make3_impl(NodeTag t, ListCell datum1, ListCell datum2, ListCell datum3)
Definition: list.c:254
#define list_make_int_cell(v)
Definition: pg_list.h:224

Definition at line 242 of file pg_list.h.

◆ list_make3_oid

#define list_make3_oid (   x1,
  x2,
  x3 
)
Value:
List * list_make3_impl(NodeTag t, ListCell datum1, ListCell datum2, ListCell datum3)
Definition: list.c:254
#define list_make_oid_cell(v)
Definition: pg_list.h:225

Definition at line 253 of file pg_list.h.

◆ list_make4

#define list_make4 (   x1,
  x2,
  x3,
  x4 
)
Value:
List * list_make4_impl(NodeTag t, ListCell datum1, ListCell datum2, ListCell datum3, ListCell datum4)
Definition: list.c:267
#define list_make_ptr_cell(v)
Definition: pg_list.h:223
Definition: nodes.h:300

Definition at line 234 of file pg_list.h.

Referenced by postgresPlanDirectModify(), and postgresPlanForeignModify().

◆ list_make4_int

#define list_make4_int (   x1,
  x2,
  x3,
  x4 
)
Value:
List * list_make4_impl(NodeTag t, ListCell datum1, ListCell datum2, ListCell datum3, ListCell datum4)
Definition: list.c:267
#define list_make_int_cell(v)
Definition: pg_list.h:224

Definition at line 245 of file pg_list.h.

◆ list_make4_oid

#define list_make4_oid (   x1,
  x2,
  x3,
  x4 
)
Value:
List * list_make4_impl(NodeTag t, ListCell datum1, ListCell datum2, ListCell datum3, ListCell datum4)
Definition: list.c:267
#define list_make_oid_cell(v)
Definition: pg_list.h:225

Definition at line 256 of file pg_list.h.

◆ list_make_int_cell

#define list_make_int_cell (   v)    ((ListCell) {.int_value = (v)})

Definition at line 224 of file pg_list.h.

◆ list_make_oid_cell

#define list_make_oid_cell (   v)    ((ListCell) {.oid_value = (v)})

Definition at line 225 of file pg_list.h.

◆ list_make_ptr_cell

#define list_make_ptr_cell (   v)    ((ListCell) {.ptr_value = (v)})

Definition at line 223 of file pg_list.h.

◆ list_nth_node

#define list_nth_node (   type,
  list,
 
)    castNode(type, list_nth(list, n))

◆ llast

◆ llast_int

#define llast_int (   l)    lfirst_int(list_tail(l))

Definition at line 216 of file pg_list.h.

Referenced by add_merged_range_bounds().

◆ llast_node

#define llast_node (   type,
 
)    castNode(type, llast(l))

Definition at line 218 of file pg_list.h.

Referenced by apply_scanjoin_target_to_paths().

◆ llast_oid

#define llast_oid (   l)    lfirst_oid(list_tail(l))

Definition at line 217 of file pg_list.h.

Referenced by get_rel_sync_entry(), and pg_partition_root().

◆ lsecond

#define lsecond (   l)    lfirst(list_second_cell(l))

Definition at line 200 of file pg_list.h.

Referenced by arrayconst_startup_fn(), arrayexpr_next_fn(), arrayexpr_startup_fn(), btcostestimate(), clause_is_strict_for(), clauselist_selectivity_simple(), commute_restrictinfo(), CommuteOpExpr(), compute_semijoin_info(), convert_EXISTS_to_ANY(), cost_qual_eval_walker(), cost_tidscan(), create_hashjoin_plan(), DeconstructQualifiedName(), DefineAggregate(), deparseDistinctExpr(), deparseScalarArrayOpExpr(), dependency_is_compatible_clause(), does_not_exist_skipping(), examine_clause_args(), ExecIndexBuildScanKeys(), ExecInitAlternativeSubPlan(), ExecInitExprRec(), ExecInitSubPlan(), ExpandColumnRefStar(), exprIsLengthCoercion(), generate_series_int4_support(), generate_series_int8_support(), genericcostestimate(), get_join_variables(), get_object_address(), get_object_address_defacl(), get_object_address_opf_member(), get_object_address_publication_rel(), get_object_address_usermapping(), get_oper_expr(), get_restriction_variable(), get_rightop(), get_rule_expr(), get_simple_binary_op_name(), get_sublink_expr(), gincost_opexpr(), gincost_scalararrayopexpr(), gistfinishsplit(), have_partkey_equi_join(), index_other_operands_eval_cost(), interpret_AS_clause(), interval_support(), is_strict_saop(), IsTidEqualAnyClause(), IsTidEqualClause(), like_regex_support(), LookupOperWithArgs(), LookupTypeNameExtended(), make_row_comparison_op(), makeRangeVarFromNameList(), match_clause_to_partition_key(), match_opclause_to_indexcol(), match_saopclause_to_indexcol(), MJExamineQuals(), network_subset_support(), numeric_support(), operator_predicate_proof(), plpgsql_parse_cwordrowtype(), plpgsql_parse_cwordtype(), predicate_classify(), processTypesSpec(), reconsider_full_join_clause(), reduce_outer_joins_pass2(), resolve_column_ref(), scalararraysel(), simplify_boolean_equality(), sql_fn_post_column_ref(), TemporalSimplify(), test_predtest(), test_support_func(), TidExprListCreate(), transformAExprBetween(), transformColumnRef(), transformRangeFunction(), varbit_support(), and varchar_support().

◆ lsecond_int

#define lsecond_int (   l)    lfirst_int(list_second_cell(l))

Definition at line 201 of file pg_list.h.

◆ lsecond_node

#define lsecond_node (   type,
 
)    castNode(type, lsecond(l))

◆ lsecond_oid

#define lsecond_oid (   l)    lfirst_oid(list_second_cell(l))

Definition at line 202 of file pg_list.h.

◆ lthird

◆ lthird_int

#define lthird_int (   l)    lfirst_int(list_third_cell(l))

Definition at line 206 of file pg_list.h.

◆ lthird_node

#define lthird_node (   type,
 
)    castNode(type, lthird(l))

Definition at line 208 of file pg_list.h.

Referenced by get_rule_expr().

◆ lthird_oid

#define lthird_oid (   l)    lfirst_oid(list_third_cell(l))

Definition at line 207 of file pg_list.h.

◆ multi_for_advance_cell

#define multi_for_advance_cell (   cell,
  state,
  l,
  i 
)
Value:
(cell = (state.l != NIL && state.i < state.l->length) ? \
&state.l->elements[state.i] : NULL)
#define NIL
Definition: pg_list.h:65
Definition: regguts.h:298

Definition at line 426 of file pg_list.h.

◆ NIL

#define NIL   ((List *) NULL)

Definition at line 65 of file pg_list.h.

Referenced by _copyRestrictInfo(), _SPI_execute_plan(), _SPI_make_plan_non_temp(), _SPI_prepare_oneshot_plan(), _SPI_prepare_plan(), AcquireRewriteLocks(), add_dummy_return(), add_foreign_final_paths(), add_foreign_grouping_paths(), add_foreign_ordered_paths(), add_path(), add_path_precheck(), add_paths_to_append_rel(), add_paths_to_grouping_rel(), add_paths_to_joinrel(), add_paths_with_pathkeys_for_rel(), add_predicate_to_index_quals(), add_rte_to_flat_rtable(), add_security_quals(), add_with_check_options(), AddEventToPendingNotifies(), addFkRecurseReferenced(), addFkRecurseReferencing(), addRangeTableEntry(), addRangeTableEntryForCTE(), addRangeTableEntryForENR(), addRangeTableEntryForFunction(), addRangeTableEntryForJoin(), addRangeTableEntryForRelation(), addRangeTableEntryForSubquery(), addRangeTableEntryForTableFunc(), addRangeTableEntryForValues(), AddRelationNewConstraints(), addTargetToSortList(), adjust_appendrel_attrs_mutator(), adjust_inherited_tlist(), adjust_partition_tlist(), AfterTriggerEnlargeQueryState(), AfterTriggerFreeQuery(), AfterTriggerSetState(), agg_refill_hash_table(), AlterDomainDefault(), AlterFunction(), AlterOperator(), AlterOpFamilyAdd(), AlterOpFamilyDrop(), AlterPolicy(), AlterPublicationTables(), AlterRole(), AlterTableGetRelOptionsLockLevel(), AlterTableMoveAll(), AlterTSDictionary(), analyzeCTETargetList(), appendTypeNameToBuffer(), apply_child_basequals(), apply_handle_delete_internal(), apply_handle_truncate(), apply_handle_tuple_routing(), apply_handle_update_internal(), apply_scanjoin_target_to_paths(), ApplyExtensionUpdates(), approx_tuple_count(), assign_aggregate_collations(), assign_collations_walker(), asyncQueueUnregister(), AtAbort_Notify(), ATAddCheckConstraint(), ATAddForeignKeyConstraint(), AtCommit_Notify(), ATController(), AtEOXact_Snapshot(), ATExecAddColumn(), ATExecAddConstraint(), ATExecAlterColumnGenericOptions(), ATExecAlterConstraint(), ATExecColumnDefault(), ATExecDropConstraint(), ATExecGenericOptions(), ATExecReplicaIdentity(), ATExecSetRelOptions(), ATExecSetTableSpace(), ATExecValidateConstraint(), ATPostAlterTypeParse(), ATPrepAlterColumnType(), ATRewriteCatalogs(), ATRewriteTable(), ATRewriteTables(), autovacuum_do_vac_analyze(), BeginCopy(), binary_upgrade_create_empty_extension(), bitmap_and_cost_est(), bitmap_scan_cost_est(), bms_overlap_list(), btcostestimate(), btvalidate(), build_base_rel_tlists(), build_child_join_rel(), build_expression_pathkey(), build_index_pathkeys(), build_index_paths(), build_index_tlist(), build_join_pathkeys(), build_join_rel(), build_joinrel_joinlist(), build_joinrel_restrictlist(), build_merged_partition_bounds(), build_minmax_path(), build_partition_pathkeys(), build_path_tlist(), build_paths_for_OR(), build_pertrans_for_aggref(), build_physical_tlist(), build_remote_returning(), build_simple_rel(), build_subplan(), build_tlist_to_deparse(), BuildCachedPlan(), BuildDummyIndexInfo(), BuildOnConflictExcludedTargetlist(), buildRelationAliases(), BuildRelationExtStatistics(), CachedPlanGetTargetList(), calc_joinrel_size_estimate(), can_partial_agg(), CatalogIndexInsert(), check_agglevels_and_constraints(), check_equivalence_delay(), check_index_predicates(), check_outerjoin_delay(), check_selective_binary_conversion(), check_sql_fn_retval(), CheckAttributeNamesTypes(), CheckIndexCompatible(), checkInsertTargets(), CheckSelectLocking(), checkSharedDependencies(), checkWellFormedRecursion(), checkWellFormedRecursionWalker(), choose_bitmap_and(), choose_hashed_setop(), ChooseIndexColumnNames(), ChooseIndexName(), ChoosePortalStrategy(), classify_index_clause_usage(), classifyConditions(), clauselist_apply_dependencies(), clauselist_selectivity(), CloneFkReferenced(), CloneFkReferencing(), CloneRowTriggersToPartition(), coerce_record_to_complex(), CommandIsReadOnly(), commute_restrictinfo(), CompareIndexInfo(), compile_plperl_function(), compute_function_attributes(), compute_index_stats(), compute_return_type(), compute_semi_anti_join_factors(), compute_semijoin_info(), ComputePartitionAttrs(), consider_groupingsets_paths(), consider_index_join_clauses(), consider_new_or_clause(), ConstructTupleDescriptor(), contain_dml_walker(), convert_ANY_sublink_to_join(), convert_combining_aggrefs(), convert_EXISTS_sublink_to_join(), convert_EXISTS_to_ANY(), convert_prep_stmt_params(), convert_subquery_pathkeys(), copy_table(), CopyFrom(), CopyGetAttnums(), CopyMultiInsertBufferFlush(), CopyMultiInsertInfoInit(), cost_append(), cost_incremental_sort(), cost_subplan(), create_agg_path(), create_agg_plan(), create_append_path(), create_append_plan(), create_bitmap_and_path(), create_bitmap_heap_path(), create_bitmap_or_path(), create_bitmap_scan_plan(), create_bitmap_subplan(), create_ctas_internal(), create_ctas_nodata(), create_ctescan_path(), create_customscan_plan(), create_degenerate_grouping_paths(), create_distinct_paths(), create_gather_merge_plan(), create_gather_path(), create_gather_plan(), create_group_result_path(), create_grouping_paths(), create_groupingsets_path(), create_groupingsets_plan(), create_hashjoin_path(), create_hashjoin_plan(), create_index_paths(), create_indexscan_plan(), create_join_plan(), create_list_bounds(), create_lockrows_path(), create_logical_replication_slot(), create_merge_append_plan(), create_mergejoin_plan(), create_minmaxagg_path(), create_minmaxagg_plan(), create_modifytable_path(), create_modifytable_plan(), create_namedtuplestorescan_path(), create_nestloop_path(), create_nestloop_plan(), create_ordered_paths(), create_ordinary_grouping_paths(), create_partial_grouping_paths(), create_partitionwise_grouping_paths(), create_plan(), create_recursiveunion_path(), create_resultscan_path(), create_samplescan_path(), create_scan_plan(), create_seqscan_path(), create_setop_path(), create_tablefuncscan_path(), create_tidscan_path(), create_tidscan_plan(), create_toast_table(), create_unique_path(), create_unique_plan(), create_valuesscan_path(), create_worktablescan_path(), CreateCachedPlan(), CreateCommandTag(), CreateExecutorState(), CreateExtension(), CreateExtensionInternal(), CreateFKCheckTrigger(), createForeignKeyActionTriggers(), CreateFunction(), CreateInitDecodingContext(), CreateLockFile(), CreateOneShotCachedPlan(), CreateReplicationSlot(), CreateRole(), CreateTrigger(), current_schema(), database_to_xmlschema_internal(), dccref_deletion_callback(), deconstruct_jointree(), deconstruct_recurse(), defGetQualifiedName(), DefineAggregate(), DefineCompositeType(), DefineDomain(), DefineIndex(), DefineOpClass(), DefineOperator(), DefineQueryRewrite(), DefineRange(), DefineRelation(), DefineSequence(), DefineTSDictionary(), DefineType(), DefineView(), DefineVirtualRelation(), deparse_context_for(), deparse_context_for_plan_tree(), deparse_expression_pretty(), deparseAggref(), deparseAnalyzeSql(), deparseArrayExpr(), deparseDeleteSql(), deparseDirectDeleteSql(), deparseDirectUpdateSql(), deparseExplicitTargetList(), deparseFromExpr(), deparseFromExprForRel(), deparseRangeTblRef(), deparseReturningList(), deparseTargetList(), deserialize_deflist(), determineRecursiveColTypes(), DiscardAll(), do_analyze_rel(), do_autovacuum(), DoCopy(), domainAddConstraint(), dump_dynexecute(), dump_dynfors(), dump_if(), dump_open(), dump_return_query(), EnableSyncRequestForwarding(), estimate_expression_value(), estimate_multivariate_ndistinct(), estimate_num_groups(), estimate_path_cost_size(), eval_const_expressions(), eval_const_expressions_mutator(), EvalPlanQualBegin(), EvalPlanQualEnd(), EvalPlanQualInit(), EvalPlanQualStart(), EventCacheLookup(), EventTriggerAlterTableStart(), EventTriggerBeginCompleteQuery(), EventTriggerCollectGrant(), EventTriggerCommonSetup(), EventTriggerDDLCommandEnd(), EventTriggerDDLCommandStart(), EventTriggerSQLDrop(), EventTriggerTableRewrite(), examine_simple_variable(), examine_variable(), exec_eval_using_params(), exec_execute_message(), exec_parse_message(), exec_simple_check_plan(), exec_stmt_raise(), exec_stmts(), Exec_UnlistenAllCommit(), ExecAlterDefaultPrivilegesStmt(), ExecARDeleteTriggers(), ExecASDeleteTriggers(), ExecASInsertTriggers(), ExecASTruncateTriggers(), ExecASUpdateTriggers(), ExecBuildAggTrans(), ExecBuildGroupingEqual(), ExecCheckIndexConstraints(), ExecEvalXmlExpr(), ExecHashSubPlan(), ExecInitAgg(), ExecInitBitmapHeapScan(), ExecInitCheck(), ExecInitCustomScan(), ExecInitExprList(), ExecInitExprRec(), ExecInitForeignScan(), ExecInitHash(), ExecInitLockRows(), ExecInitMergeJoin(), ExecInitModifyTable(), ExecInitNestLoop(), ExecInitNode(), ExecInitPartitionDispatchInfo(), ExecInitPartitionInfo(), ExecInitProjectSet(), ExecInitQual(), ExecInitRecursiveUnion(), ExecInitSubPlan(), ExecInitSubscriptingRef(), ExecInitWindowAgg(), ExecInsert(), ExecInsertIndexTuples(), ExecOnConflictUpdate(), ExecPrepareExprList(), ExecReScanSetParamPlan(), ExecSecLabelStmt(), ExecSerializePlan(), ExecSetParamPlan(), ExecSimpleRelationInsert(), ExecSimpleRelationUpdate(), ExecSubPlan(), ExecUpdate(), ExecuteGrantStmt(), ExecuteTruncate(), ExecuteTruncateGuts(), ExecVacuum(), expand_grouping_sets(), expand_groupingset_node(), expand_indexqual_rowcompare(), expand_inherited_rtentry(), expand_single_inheritance_child(), expand_targetlist(), expand_vacuum_rel(), ExpandAllTables(), expandNSItemAttrs(), expandNSItemVars(), ExpandRowReference(), expandRTE(), ExplainNode(), ExplainPrintPlan(), ExplainPrintTriggers(), ExplainQuery(), expression_planner_with_deps(), expression_tree_mutator(), exprTypmod(), extract_actual_clauses(), extract_actual_join_clauses(), extract_jsp_path_expr_nodes(), extract_lateral_references(), extract_nonindex_conditions(), extract_or_clause(), extract_query_dependencies(), extract_rollup_sets(), ExtractExtensionList(), fetch_statentries_for_relation(), fetch_table_list(), fetch_upper_rel(), FetchPortalTargetList(), FetchStatementTargetList(), file_acquire_sample_rows(), file_fdw_validator(), fileBeginForeignScan(), fileGetForeignPaths(), fileGetForeignPlan(), fileGetOptions(), fileReScanForeignScan(), fill_hba_line(), fill_hba_view(), final_cost_mergejoin(), finalize_grouping_exprs(), finalize_grouping_exprs_walker(), find_compatible_peragg(), find_duplicate_ors(), find_forced_null_vars(), find_hash_columns(), find_inheritance_children(), find_install_path(), find_mergeclauses_for_outer_pathkeys(), find_minmax_aggs_walker(), find_nonnullable_vars_walker(), find_param_referent(), find_typed_table_dependencies(), find_update_path(), findRangeCanonicalFunction(), findRangeSubOpclass(), findRangeSubtypeDiffFunction(), findTypeAnalyzeFunction(), findTypeInputFunction(), findTypeOutputFunction(), findTypeReceiveFunction(), findTypeSendFunction(), findTypeTypmodinFunction(), findTypeTypmodoutFunction(), fireRIRrules(), fireRules(), fix_expr_common(), fix_indexorderby_references(), fix_indexqual_references(), fix_scan_expr(), fix_scan_expr_mutator(), fix_upper_expr_mutator(), flatten_grouping_sets(), flatten_join_alias_vars_mutator(), flatten_set_variable_args(), flatten_simple_union_all(), fmgr_sql_validator(), foreign_grouping_ok(), foreign_join_ok(), format_operator_parts(), format_procedure_parts(), FormIndexDatum(), FormPartitionKeyDatum(), func_get_detail(), FuncnameGetCandidates(), FunctionIsVisible(), gen_partprune_steps_internal(), gen_prune_steps_from_opexps(), generate_append_tlist(), generate_bitmap_or_paths(), generate_function_name(), generate_gather_paths(), generate_implied_equalities_for_column(), generate_join_implied_equalities(), generate_join_implied_equalities_broken(), generate_join_implied_equalities_for_ecs(), generate_join_implied_equalities_normal(), generate_matching_part_pairs(), generate_mergejoin_paths(), generate_nonunion_paths(), generate_orderedappend_paths(), generate_partition_qual(), generate_partitionwise_join_paths(), generate_recursion_path(), generate_setop_tlist(), generate_subquery_params(), generate_subquery_vars(), generate_union_paths(), generate_useful_gather_paths(), generateClonedExtStatsStmt(), generateClonedIndexStmt(), GenerateTypeDependencies(), get_actual_clauses(), get_actual_variable_range(), get_agg_clause_costs_walker(), get_agg_expr(), get_all_vacuum_rels(), get_appendrel_parampathinfo(), get_available_versions_for_extension(), get_baserel_parampathinfo(), get_basic_select_query(), get_cheapest_parameterized_child_path(), get_collation(), get_database_list(), get_delete_query_def(), get_eclass_for_sort_expr(), get_ext_ver_info(), get_ext_ver_list(), get_file_fdw_attribute_options(), get_foreign_key_join_selectivity(), get_from_clause_item(), get_func_expr(), get_gating_quals(), get_index_clause_from_support(), get_index_paths(), get_index_ref_constraints(), get_insert_query_def(), get_join_index_paths(), get_joinrel_parampathinfo(), get_leftop(), get_matching_part_pairs(), get_mergejoin_opfamilies(), get_name_for_var_field(), get_op_btree_interpretation(), get_opclass(), get_partition_ancestors(), get_partition_qual_relid(), get_policies_for_relation(), get_qual_for_list(), get_qual_for_range(), get_qual_from_partbound(), get_quals_from_indexclauses(), get_query_def(), get_range_nulltest(), get_relation_constraints(), get_relation_info(), get_relation_statistics(), get_rels_with_domain(), get_row_security_policies(), get_rule_expr(), get_select_query_def(), get_sortgrouplist_exprs(), get_steps_using_prefix(), get_steps_using_prefix_recurse(), get_subscription_list(), get_switched_clauses(), get_tablefunc(), get_tables_to_cluster(), get_tablesample_def(), get_tlist_exprs(), get_ts_parser_func(), get_ts_template_func(), get_update_query_def(), get_update_query_targetlist_def(), get_useful_ecs_for_relation(), get_useful_pathkeys_for_relation(), get_variable(), get_windowfunc_expr(), get_with_clause(), GetAllTablesPublicationRelations(), GetAllTablesPublications(), getAutoExtensionsOfObject(), GetCachedPlan(), GetForeignColumnOptions(), GetForeignDataWrapperExtended(), GetForeignServerExtended(), GetForeignTable(), getObjectIdentityParts(), getOwnedSequences_internal(), GetParentedForeignKeyRefs(), GetPublicationRelations(), GetRelationPublications(), getRelationsInNamespace(), getState(), GetSubscriptionNotReadyRelations(), GetSubscriptionRelations(), GetUserMapping(), gimme_tree(), gincostestimate(), gistEmptyAllBuffers(), gistFindPath(), gistfixsplit(), gistGetNodeBuffer(), gistInitBuildBuffers(), gistplacetopage(), gistProcessEmptyingQueue(), GrantRole(), grouping_planner(), has_indexed_join_quals(), has_unique_index(), has_useful_pathkeys(), hash_inner_and_outer(), hashagg_reset_spill_state(), hashvalidate(), heap_truncate(), heap_truncate_check_FKs(), heap_truncate_find_FKs(), heapam_index_build_range_scan(), heapam_index_validate_scan(), identify_current_nestloop_params(), identify_opfamily_groups(), identify_update_path(), index_concurrently_create_copy(), index_concurrently_swap(), index_constraint_create(), index_register(), IndexCheckExclusion(), infer_arbiter_indexes(), inheritance_planner(), init_execution_state(), init_local_reloptions(), init_params(), init_sql_fcache(), InitDomainConstraintRef(), initialize_mergeclause_eclasses(), InitPlan(), InitResultRelInfo(), InitSync(), inline_cte_walker(), innerrel_is_unique(), insert_event_trigger_tuple(), InsertRule(), interpret_AS_clause(), interpret_func_support(), interpret_function_parameter_list(), intorel_startup(), is_degenerate_grouping(), is_dummy_rel(), is_innerrel_unique_for(), is_parallel_safe(), is_safe_append_member(), is_shippable(), is_strict_saop(), is_usable_unique_index(), isLockedRefname(), IsThereFunctionInNamespace(), join_is_removable(), join_search_one_level(), JsonValueListInitIterator(), label_sort_with_costsize(), lappend(), lappend_int(), lappend_oid(), lcons(), lcons_int(), lcons_oid(), list_concat(), list_concat_copy(), list_copy(), list_copy_deep(), list_copy_tail(), list_delete_first(), list_delete_last(), list_delete_nth_cell(), list_difference(), list_difference_int(), list_difference_oid(), list_difference_ptr(), list_free_private(), list_insert_nth(), list_insert_nth_int(), list_insert_nth_oid(), list_intersection(), list_intersection_int(), list_nth_cell(), list_truncate(), llvm_release_context(), load_domaintype_info(), load_hba(), load_ident(), load_relcache_init_file(), LoadPublications(), LockTableCommand(), logicalrep_read_truncate(), logicalrep_worker_stop_at_commit(), logicalrep_workers_find(), lookup_agg_function(), lookup_am_handler_func(), lookup_proof_cache(), lookup_ts_dictionary_cache(), LookupFuncName(), LookupFuncNameInternal(), LookupFuncWithArgs(), LookupTypeNameExtended(), make_ands_explicit(), make_ands_implicit(), make_bitmap_and(), make_bitmap_indexscan(), make_bitmap_or(), make_copy_attnamelist(), make_group_input_target(), make_hash(), make_incrementalsort(), make_inh_translation_list(), make_inner_pathkeys_for_merge(), make_join_rel(), make_limit(), make_lockrows(), make_material(), make_modifytable(), make_new_heap(), make_one_partition_rbound(), make_partial_grouping_target(), make_partition_op_expr(), make_partition_pruneinfo(), make_partitionedrel_pruneinfo(), make_pathkeys_for_sortclauses(), make_project_set(), make_recursive_union(), make_rel_from_joinlist(), make_restrictinfo_internal(), make_result(), make_row_comparison_op(), make_ruledef(), make_setop(), make_setop_translation_list(), make_sort(), make_sort_input_target(), make_sub_restrictinfos(), make_subplan(), make_tlist_from_pathtarget(), make_union_unique(), make_unique_from_pathkeys(), make_unique_from_sortclauses(), make_viewdef(), make_window_input_target(), make_windowagg(), makeColumnDef(), makeDependencyGraph(), makeDependencyGraphWalker(), makeFuncCall(), makeIndexInfo(), makeRangeConstructors(), makeTypeNameFromNameList(), map_partition_varattnos(), map_sql_typecoll_to_xmlschema_types(), mark_dummy_rel(), match_boolean_index_clause(), match_clause_to_indexcol(), match_clause_to_partition_key(), match_eclasses_to_foreign_key_col(), match_foreign_keys_to_quals(), match_network_function(), match_network_subset(), match_opclause_to_indexcol(), match_pathkeys_to_index(), match_pattern_prefix(), match_saopclause_to_indexcol(), match_unsorted_outer(), matchLocks(), MatchNamedCall(), materialize_finished_plan(), max_parallel_hazard(), mcv_get_match_bitmap(), merge_clump(), merge_list_bounds(), merge_range_bounds(), MergeAttributes(), minmax_qp_callback(), negate_clause(), next_field_expand(), nodeRead(), NotNullImpliedByRelConstraints(), objectNamesToOids(), objectsInSchemaToOids(), oid_array_to_list(), OpenTableList(), operator_precedence_group(), order_qual_clauses(), parse_hba_line(), parse_ident_line(), parse_tsquery(), parseCheckAggregates(), ParseFuncOrColumn(), PartConstraintImpliedByRelConstraint(), partition_bounds_merge(), pathkeys_count_contained_in(), pathkeys_useful_for_merging(), pathkeys_useful_for_ordering(), perform_base_backup(), PerformCursorOpen(), pg_column_is_updatable(), pg_extension_update_paths(), pg_get_constraintdef_worker(), pg_get_expr_worker(), pg_get_function_arg_default(), pg_get_functiondef(), pg_get_indexdef_worker(), pg_get_object_address(), pg_get_partkeydef_worker(), pg_get_statisticsobj_worker(), pg_get_triggerdef_worker(), pg_identify_object_as_address(), pg_logical_replication_slot_advance(), pg_logical_slot_get_changes_guts(), pg_partition_root(), pg_partition_tree(), pg_plan_queries(), pg_relation_is_updatable(), pg_rewrite_query(), pgoutput_startup(), pgstat_db_requested(), pgstat_write_statsfile_needed(), pgstat_write_statsfiles(), plan_cluster_use_sort(), plan_set_operations(), plan_union_children(), PlanCacheRelCallback(), plperl_inline_handler(), plpgsql_parse_word(), PLy_abort_open_subtransactions(), PLy_initialize(), PLy_procedure_create(), PLy_subtransaction_exit(), policy_role_list_to_array(), PopOverrideSearchPath(), populate_joinrel_with_paths(), PortalDefineQuery(), PortalReleaseCachedPlan(), postgresBeginForeignInsert(), postgresGetForeignJoinPaths(), postgresGetForeignPaths(), postgresGetForeignPlan(), postgresGetForeignRelSize(), postgresImportForeignSchema(), postgresPlanDirectModify(), postgresPlanForeignModify(), PostmasterMain(), PreCommit_on_commit_actions(), predicate_implied_by(), predicate_refuted_by(), prep_domain_constraints(), preprocess_function_rtes(), preprocess_groupclause(), preprocess_grouping_sets(), preprocess_minmax_aggregates(), preprocess_rowmarks(), print_function_arguments(), ProcedureCreate(), process_duplicate_ors(), process_equivalence(), process_sublinks_mutator(), process_syncing_tables_for_apply(), ProcessCompletedNotifies(), ProcessCopyOptions(), ProcessIncomingNotify(), ProcessStartupPacket(), processState(), processTypesSpec(), ProcessUtilitySlow(), prune_append_rel_partitions(), pull_ands(), pull_ors(), pull_up_constant_function(), pull_up_simple_subquery(), pull_up_simple_values(), pull_up_sublinks_jointree_recurse(), pull_up_sublinks_qual_recurse(), pull_var_clause(), pull_vars_of_level(), PushOverrideSearchPath(), query_planner(), query_supports_distinctness(), query_to_oid_list(), query_tree_mutator(), QueryRewrite(), range_table_mutator(), raw_parser(), readTimeLineHistory(), recomputeNamespacePath(), recurse_set_operations(), reduce_outer_joins(), reduce_outer_joins_pass1(), reduce_outer_joins_pass2(), regprocedurein(), regprocin(), regprocout(), reindex_relation(), ReindexMultipleTables(), ReindexRelationConcurrently(), rel_is_distinct_for(), rel_supports_distinctness(), relation_excluded_by_constraints(), relation_has_unique_index_for(), RelationBuildDesc(), RelationCacheInvalidate(), RelationGetDummyIndexExpressions(), RelationGetFKeyList(), RelationGetIndexAttrBitmap(), RelationGetIndexExpressions(), RelationGetIndexList(), RelationGetIndexPredicate(), RelationGetPartitionQual(), RelationGetStatExtList(), RelationInitIndexAccessInfo(), remap_to_groupclause_idx(), remove_dbtablespaces(), remove_rel_from_joinlist(), remove_useless_groupby_columns(), RemoveInheritance(), RemoveRoleFromObjectACL(), RemoveRoleFromObjectPolicy(), RemoveSocketFiles(), rename_constraint_internal(), renameatt_internal(), reorder_function_arguments(), reorder_grouping_sets(), reparameterize_path(), reparameterize_pathlist_by_child(), replace_empty_jointree(), ResetReindexState(), resolve_unique_index_expr(), ResolveOpClass(), RestoreReindexState(), RevalidateCachedQuery(), RewriteQuery(), rewriteRuleAction(), rewriteTargetListIU(), rewriteTargetView(), rewriteValuesRTE(), roleSpecsToIds(), schema_to_xmlschema_internal(), SearchCatCacheList(), select_active_windows(), select_common_type(), select_mergejoin_clauses(), select_outer_pathkeys_for_merge(), select_rtable_names_for_explain(), sendTablespace(), sepgsql_xact_callback(), sequence_options(), set_append_references(), set_append_rel_pathlist(), set_cheapest(), set_customscan_references(), set_deparse_for_query(), set_deparse_plan(), set_dummy_rel_pathlist(), set_dummy_tlist_references(), set_foreignscan_references(), set_function_pathlist(), set_hash_references(), set_joinrel_partition_key_exprs(), set_mergeappend_references(), set_plan_references(), set_plan_refs(), set_relation_column_names(), set_rtable_names(), set_simple_column_names(), set_subquery_pathlist(), set_upper_references(), SetDefaultACLsInSchemas(), setup_simple_rel_arrays(), show_eval_params(), show_grouping_set_keys(), show_incremental_sort_group_info(), show_modifytable_info(), show_plan_tlist(), show_qual(), show_sort_group_keys(), show_tablesample(), simplify_and_arguments(), simplify_EXISTS_query(), simplify_or_arguments(), sort_inner_and_outer(), SPI_cursor_open_internal(), split_pathtarget_at_srfs(), split_pathtarget_walker(), SplitDirectoriesString(), SplitGUCList(), SplitIdentifierString(), SS_charge_for_initplans(), SS_identify_outer_params(), SS_process_ctes(), standard_ExecutorStart(), standard_join_search(), standard_planner(), standard_qp_callback(), StandbyAcquireAccessExclusiveLock(), StartupXLOG(), statext_is_compatible_clause_internal(), statext_mcv_clauselist_selectivity(), StoreCatalogInheritance(), StoreConstraints(), stringToQualifiedNameList(), subquery_planner(), SyncPostCheckpoint(), TerminateOtherDBBackends(), test_rls_hooks_permissive(), test_rls_hooks_restrictive(), textarray_to_stringlist(), textarray_to_strvaluelist(), textToQualifiedNameList(), TidExprListCreate(), TidQualFromRestrictInfo(), TidQualFromRestrictInfoList(), to_regproc(), to_regprocedure(), toast_open_indexes(), tokenize_file(), transformAExprBetween(), transformAExprIn(), transformAggregateCall(), transformAlterTableStmt(), transformArrayExpr(), transformAssignmentIndirection(), transformAssignmentSubscripts(), transformBoolExpr(), transformCallStmt(), transformCaseExpr(), transformCheckConstraints(), transformCoalesceExpr(), transformColumnDefinition(), transformContainerSubscripts(), transformCreateSchemaStmt(), transformCreateStmt(), transformDeclareCursorStmt(), transformDeleteStmt(), transformDistinctClause(), transformDistinctOnClause(), transformExpressionList(), transformFKConstraints(), transformFkeyGetPrimaryKey(), transformFromClauseItem(), transformFuncCall(), transformGraph(), transformGroupClause(), transformGroupClauseList(), transformGroupingFunc(), transformGroupingSet(), transformIndexConstraint(), transformIndexConstraints(), transformIndirection(), transformInsertRow(), transformInsertStmt(), transformJoinUsingClause(), transformLockingClause(), transformMinMaxExpr(), transformMultiAssignRef(), transformOfType(), transformOnConflictArbiter(), transformOnConflictClause(), transformPartitionBound(), transformPartitionRangeBounds(), transformPartitionSpec(), transformRangeFunction(), transformRangeTableFunc(), transformRangeTableSample(), transformRelOptions(), transformReturningList(), transformRowExpr(), transformRuleStmt(), transformSelectStmt(), transformSetOperationStmt(), transformSetOperationTree(), transformSortClause(), transformSubLink(), transformTableLikeClause(), transformTargetList(), transformUpdateTargetList(), transformValuesClause(), transformWindowDefinitions(), transformWindowFuncCall(), transformWithClause(), transformXmlExpr(), translate_sub_tlist(), trim_mergeclauses_for_inner_pathkeys(), trivial_subqueryscan(), truncate_useless_pathkeys(), try_hashjoin_path(), try_mergejoin_path(), try_partial_hashjoin_path(), try_partial_mergejoin_path(), try_partitionwise_join(), TryReuseForeignKey(), ts_headline_byid_opt(), ts_headline_json_byid_opt(), ts_headline_jsonb_byid_opt(), TypeGetTupleDesc(), typeInheritsFrom(), typenameTypeMod(), typeStringToTypeName(), unique_key_recheck(), UnlinkLockFiles(), untransformRelOptions(), update_mergeclause_eclasses(), UpdateDomainConstraintRef(), UpdateIndexRelation(), UpdateLogicalMappings(), UpdateRangeTableOfViewParse(), use_physical_tlist(), vacuum(), ValuesNext(), view_query_is_auto_updatable(), WaitForLockersMultiple(), XactHasExportedSnapshots(), and xmlelement().

Typedef Documentation

◆ ForBothCellState

◆ ForBothState

typedef struct ForBothState ForBothState

◆ ForEachState

typedef struct ForEachState ForEachState

◆ ForFiveState

typedef struct ForFiveState ForFiveState

◆ ForFourState

typedef struct ForFourState ForFourState

◆ ForThreeState

typedef struct ForThreeState ForThreeState

◆ List

typedef struct List List

◆ list_sort_comparator

typedef int(* list_sort_comparator) (const ListCell *a, const ListCell *b)

Definition at line 574 of file pg_list.h.

◆ ListCell

typedef union ListCell ListCell

Function Documentation

◆ for_both_cell_setup()

static ForBothCellState for_both_cell_setup ( List list1,
ListCell initcell1,
List list2,
ListCell initcell2 
)
inlinestatic

Definition at line 450 of file pg_list.h.

References list_cell_number(), and list_length().

452 {
453  ForBothCellState r = {list1, list2,
454  initcell1 ? list_cell_number(list1, initcell1) : list_length(list1),
455  initcell2 ? list_cell_number(list2, initcell2) : list_length(list2)};
456 
457  return r;
458 }
static int list_cell_number(const List *l, const ListCell *c)
Definition: pg_list.h:311
static int list_length(const List *l)
Definition: pg_list.h:169

◆ for_each_cell_setup()

static ForEachState for_each_cell_setup ( List lst,
ListCell initcell 
)
inlinestatic

Definition at line 399 of file pg_list.h.

References list_cell_number(), and list_length().

400 {
401  ForEachState r = {lst,
402  initcell ? list_cell_number(lst, initcell) : list_length(lst)};
403 
404  return r;
405 }
static int list_cell_number(const List *l, const ListCell *c)
Definition: pg_list.h:311
static int list_length(const List *l)
Definition: pg_list.h:169

◆ lappend()

List* lappend ( List list,
void *  datum 
)

Definition at line 321 of file list.c.

References Assert, check_list_invariants, IsPointerList, lfirst, sort-test::list, list_tail(), new_list(), new_tail_cell(), NIL, and T_List.

Referenced by _SPI_make_plan_non_temp(), _SPI_prepare_oneshot_plan(), _SPI_prepare_plan(), _SPI_save_plan(), accumulate_append_subpath(), AcquireRewriteLocks(), add_column_to_pathtarget(), add_dummy_return(), add_eq_member(), add_join_clause_to_rels(), add_join_rel(), add_local_reloption(), add_merged_range_bounds(), add_paths_to_append_rel(), add_placeholders_to_base_rels(), add_placeholders_to_joinrel(), add_rte_to_flat_rtable(), add_security_quals(), add_to_flat_tlist(), add_unique_group_var(), add_vars_to_targetlist(), add_with_check_options(), addArc(), AddEventToPendingNotifies(), addFamilyMember(), addFkRecurseReferencing(), addKey(), addKeyToQueue(), addNSItemToQuery(), addRangeTableEntry(), addRangeTableEntryForCTE(), addRangeTableEntryForENR(), addRangeTableEntryForFunction(), addRangeTableEntryForJoin(), addRangeTableEntryForRelation(), addRangeTableEntryForSubquery(), addRangeTableEntryForTableFunc(), addRangeTableEntryForValues(), AddRelationNewConstraints(), addTargetToGroupList(), addTargetToSortList(), adjust_inherited_tlist(), adjust_partition_tlist(), AlterPublicationTables(), AlterTableMoveAll(), AlterTSDictionary(), analyzeCTETargetList(), apply_child_basequals(), apply_handle_truncate(), apply_scanjoin_target_to_paths(), applyLockingClause(), ApplyRetrieveRule(), assign_param_for_placeholdervar(), assign_param_for_var(), ATAddCheckConstraint(), ATExecAddColumn(), ATGetQueueEntry(), ATParseTransformCmd(), ATPostAlterTypeCleanup(), ATPostAlterTypeParse(), ATPrepAlterColumnType(), ATPrepCmd(), btcostestimate(), build_aggregate_finalfn_expr(), build_aggregate_transfn_expr(), build_coercion_expression(), build_index_pathkeys(), build_index_paths(), build_index_tlist(), build_join_rel(), build_joinrel_tlist(), build_partition_pathkeys(), build_path_tlist(), build_physical_tlist(), build_remote_returning(), build_subplan(), BuildEventTriggerCache(), BuildOnConflictExcludedTargetlist(), buildRelationAliases(), cached_scansel(), calc_joinrel_size_estimate(), check_index_predicates(), check_selective_binary_conversion(), check_sql_fn_retval(), checkInsertTargets(), checkSharedDependencies(), checkWellFormedRecursionWalker(), choose_bitmap_and(), ChooseIndexColumnNames(), classifyConditions(), clauselist_apply_dependencies(), CloneFkReferenced(), CloneFkReferencing(), CloneRowTriggersToPartition(), coerce_fn_result_column(), coerce_record_to_complex(), compute_common_attribute(), compute_semi_anti_join_factors(), compute_semijoin_info(), ComputeIndexAttrs(), ComputePartitionAttrs(), consider_groupingsets_paths(), consider_new_or_clause(), convert_ANY_sublink_to_join(), convert_EXISTS_to_ANY(), convert_subquery_pathkeys(), CopyMultiInsertInfoFlush(), CopyMultiInsertInfoSetupBuffer(), cost_incremental_sort(), create_append_plan(), create_bitmap_scan_plan(), create_bitmap_subplan(), create_ctas_nodata(), create_customscan_plan(), create_degenerate_grouping_paths(), create_groupingsets_plan(), create_hashjoin_plan(), create_index_paths(), create_indexscan_plan(), create_join_clause(), create_list_bounds(), create_merge_append_plan(), create_modifytable_plan(), create_nestloop_path(), create_partitionwise_grouping_paths(), create_tidscan_plan(), create_unique_plan(), database_to_xmlschema_internal(), deconstruct_recurse(), DefineRelation(), DefineSequence(), DefineTSDictionary(), DefineView(), DefineVirtualRelation(), deparseParam(), deparseVar(), deserialize_deflist(), determineRecursiveColTypes(), distribute_qual_to_rels(), distribute_restrictinfo_to_rels(), do_pg_start_backup(), DoCopy(), estimate_multivariate_ndistinct(), estimate_num_groups(), eval_const_expressions_mutator(), EvalPlanQualStart(), EventTriggerAlterTableEnd(), EventTriggerCollectAlterDefPrivs(), EventTriggerCollectAlterOpFam(), EventTriggerCollectAlterTableSubcmd(), EventTriggerCollectAlterTSConfig(), EventTriggerCollectCreateOpClass(), EventTriggerCollectGrant(), EventTriggerCollectSimpleCommand(), Exec_ListenCommit(), ExecAllocTableSlot(), ExecEvalXmlExpr(), ExecGetTriggerResultRel(), ExecInitAlternativeSubPlan(), ExecInitExprList(), ExecInitExprRec(), ExecInitLockRows(), ExecInitModifyTable(), ExecInitNode(), ExecInitPartitionInfo(), ExecInitSubPlan(), ExecPrepareExprList(), ExecSerializePlan(), ExecuteGrantStmt(), ExecuteTruncate(), ExecuteTruncateGuts(), expand_grouping_sets(), expand_groupingset_node(), expand_inherited_rtentry(), expand_single_inheritance_child(), expand_targetlist(), expand_vacuum_rel(), expandNSItemAttrs(), expandNSItemVars(), ExpandRowReference(), expandRTE(), expandTupleDesc(), ExplainNode(), ExportSnapshot(), expression_tree_mutator(), extract_actual_clauses(), extract_actual_join_clauses(), extract_jsp_path_expr_nodes(), extract_lateral_references(), extract_nonindex_conditions(), extract_or_clause(), extract_rollup_sets(), extractRemainingColumns(), fetch_statentries_for_relation(), fetch_table_list(), fetch_upper_rel(), file_fdw_validator(), fill_hba_line(), find_duplicate_ors(), find_hash_columns(), find_indexpath_quals(), find_list_position(), find_mergeclauses_for_outer_pathkeys(), find_minmax_aggs_walker(), find_partition_scheme(), find_placeholder_info(), find_window_functions_walker(), findTargetlistEntrySQL99(), fireRIRrules(), fireRules(), fix_indexorderby_references(), fix_indexqual_references(), flatten_grouping_sets(), flatten_join_alias_vars_mutator(), flatten_simple_union_all(), foreign_grouping_ok(), foreign_join_ok(), format_operator_parts(), format_procedure_parts(), func_get_detail(), gen_partprune_steps_internal(), gen_prune_step_combine(), gen_prune_step_op(), gen_prune_steps_from_opexps(), generate_append_tlist(), generate_bitmap_or_paths(), generate_implied_equalities_for_column(), generate_join_implied_equalities_broken(), generate_join_implied_equalities_normal(), generate_matching_part_pairs(), generate_orderedappend_paths(), generate_partitionwise_join_paths(), generate_setop_tlist(), generate_subquery_params(), generate_subquery_vars(), generate_union_paths(), generateClonedExtStatsStmt(), generateClonedIndexStmt(), generateSerialExtraStmts(), get_actual_clauses(), get_all_vacuum_rels(), get_appendrel_parampathinfo(), get_baserel_parampathinfo(), get_database_list(), get_eclass_for_sort_expr(), get_ext_ver_info(), get_ext_ver_list(), get_file_fdw_attribute_options(), get_foreign_key_join_selectivity(), get_func_expr(), get_index_clause_from_support(), get_index_paths(), get_insert_query_def(), get_join_index_paths(), get_joinrel_parampathinfo(), get_matching_part_pairs(), get_op_btree_interpretation(), get_policies_for_relation(), get_qual_for_hash(), get_qual_for_list(), get_qual_for_range(), get_quals_from_indexclauses(), get_range_nulltest(), get_relation_constraints(), get_relation_foreign_keys(), get_relation_statistics(), get_rels_with_domain(), get_required_extension(), get_sortgrouplist_exprs(), get_steps_using_prefix_recurse(), get_subscription_list(), get_switched_clauses(), get_tables_to_cluster(), get_tlist_exprs(), get_update_query_targetlist_def(), get_useful_ecs_for_relation(), get_useful_pathkeys_for_relation(), get_windowfunc_expr(), GetAfterTriggersTableData(), getObjectIdentityParts(), getState(), GetSubscriptionNotReadyRelations(), GetSubscriptionRelations(), gistFindPath(), gistfixsplit(), gistplacetopage(), hash_inner_and_outer(), heap_truncate(), identify_current_nestloop_params(), identify_opfamily_groups(), index_concurrently_create_copy(), infer_arbiter_indexes(), inheritance_planner(), init_execution_state(), init_sql_fcache(), InitPlan(), innerrel_is_unique(), interpret_function_parameter_list(), intorel_startup(), is_innerrel_unique_for(), join_is_removable(), jsonb_ops__extract_nodes(), jsonb_path_ops__extract_nodes(), JsonValueListAppend(), list_append_unique(), list_append_unique_ptr(), list_concat_unique(), list_concat_unique_ptr(), list_difference(), list_difference_ptr(), list_intersection(), list_union(), list_union_ptr(), llvm_compile_module(), load_hba(), load_ident(), LoadPublications(), logicalrep_worker_stop_at_commit(), logicalrep_workers_find(), make_canonical_pathkey(), make_copy_attnamelist(), make_group_input_target(), make_inh_translation_list(), make_inner_pathkeys_for_merge(), make_modifytable(), make_partial_grouping_target(), make_partition_op_expr(), make_partition_pruneinfo(), make_partitionedrel_pruneinfo(), make_pathkeys_for_sortclauses(), make_pathtarget_from_tlist(), make_rel_from_joinlist(), make_row_comparison_op(), make_setop_translation_list(), make_sort_input_target(), make_sub_restrictinfos(), make_tlist_from_pathtarget(), make_window_input_target(), makeDependencyGraphWalker(), match_clause_to_index(), match_clause_to_partition_key(), match_foreign_keys_to_quals(), match_join_clauses_to_index(), match_network_subset(), match_pathkeys_to_index(), match_pattern_prefix(), matchLocks(), merge_clump(), merge_list_bounds(), MergeAttributes(), negate_clause(), next_field_expand(), nodeRead(), OpenTableList(), order_qual_clauses(), parse_hba_line(), parseCheckAggregates(), ParseFuncOrColumn(), PartConstraintImpliedByRelConstraint(), perform_base_backup(), pg_get_object_address(), pg_logical_slot_get_changes_guts(), pg_plan_queries(), pg_rewrite_query(), plan_union_children(), postgresAddForeignUpdateTargets(), postgresGetForeignPaths(), postgresGetForeignPlan(), postgresImportForeignSchema(), prep_domain_constraints(), prepare_sort_from_pathkeys(), preprocess_groupclause(), preprocess_grouping_sets(), preprocess_rowmarks(), preprocess_targetlist(), process_duplicate_ors(), process_equivalence(), process_pipe_input(), process_sublinks_mutator(), process_subquery_nestloop_params(), process_syncing_tables_for_apply(), ProcessStartupPacket(), pull_ands(), pull_ors(), pull_up_simple_values(), pull_up_sublinks_jointree_recurse(), pull_up_sublinks_qual_recurse(), pull_up_union_leaf_queries(), pull_var_clause_walker(), pull_vars_walker(), query_tree_mutator(), QueryRewrite(), queue_listen(), range_table_mutator(), read_tablespace_map(), rebuild_fdw_scan_tlist(), RebuildConstraintComment(), record_plan_function_dependency(), record_plan_type_dependency(), reduce_outer_joins_pass1(), register_ENR(), register_label_provider(), register_reloptions_validator(), ReindexRelationConcurrently(), relation_excluded_by_constraints(), relation_has_unique_index_for(), RelationCacheInvalidate(), RelationGetDummyIndexExpressions(), RelationGetFKeyList(), remap_to_groupclause_idx(), RememberConstraintForRebuilding(), RememberIndexForRebuilding(), RememberSyncRequest(), remove_rel_from_joinlist(), remove_useless_groupby_columns(), RemoveInheritance(), reorder_function_arguments(), reparameterize_path(), reparameterize_path_by_child(), reparameterize_pathlist_by_child(), replace_empty_jointree(), replace_nestloop_param_placeholdervar(), replace_nestloop_param_var(), replace_outer_agg(), replace_outer_grouping(), resolve_unique_index_expr(), RewriteQuery(), rewriteTargetListIU(), rewriteTargetListUD(), rewriteTargetView(), rewriteValuesRTE(), schema_to_xmlschema_internal(), SearchCatCacheList(), select_active_windows(), select_mergejoin_clauses(), select_outer_pathkeys_for_merge(), sepgsql_set_client_label(), sequence_options(), set_append_rel_pathlist(), set_cheapest(), set_deparse_for_query(), set_dummy_tlist_references(), set_joinrel_partition_key_exprs(), set_plan_references(), set_plan_refs(), set_rtable_names(), set_simple_column_names(), set_subquery_pathlist(), set_upper_references(), set_using_names(), show_eval_params(), show_grouping_set_keys(), show_incremental_sort_group_info(), show_modifytable_info(), show_plan_tlist(), show_sort_group_keys(), show_tablesample(), simplify_and_arguments(), simplify_or_arguments(), split_pathtarget_at_srfs(), split_pathtarget_walker(), SplitDirectoriesString(), SplitGUCList(), SplitIdentifierString(), SS_make_initplan_from_plan(), SS_process_ctes(), StandbyAcquireAccessExclusiveLock(), statext_mcv_clauselist_selectivity(), StreamServerPort(), stringToQualifiedNameList(), subquery_planner(), table_slot_create(), textarray_to_stringlist(), textarray_to_strvaluelist(), textToQualifiedNameList(), TidExprListCreate(), tokenize_file(), tokenize_inc_file(), transformAExprIn(), transformAggregateCall(), transformAlterTableStmt(), transformArrayExpr(), transformAssignmentIndirection(), transformBoolExpr(), transformCallStmt(), transformCaseExpr(), transformCoalesceExpr(), transformColumnDefinition(), transformContainerSubscripts(), transformCreateSchemaStmt(), transformCreateStmt(), transformDistinctClause(), transformDistinctOnClause(), transformExpressionList(), transformFKConstraints(), transformFkeyGetPrimaryKey(), transformFromClause(), transformFromClauseItem(), transformFuncCall(), transformGenericOptions(), transformGroupClause(), transformGroupClauseExpr(), transformGroupingFunc(), transformGroupingSet(), transformIndexConstraint(), transformIndexConstraints(), transformIndirection(), transformInsertRow(), transformInsertStmt(), transformJoinUsingClause(), transformMinMaxExpr(), transformMultiAssignRef(), transformOfType(), transformPartitionBound(), transformPartitionRangeBounds(), transformPartitionSpec(), transformRangeFunction(), transformRangeTableFunc(), transformRangeTableSample(), transformRowExpr(), transformRuleStmt(), transformSetOperationStmt(), transformSetOperationTree(), transformSubLink(), transformTableConstraint(), transformTableLikeClause(), transformTargetList(), transformValuesClause(), transformWindowDefinitions(), transformWindowFuncCall(), transformWithClause(), transformXmlExpr(), trim_mergeclauses_for_inner_pathkeys(), untransformRelOptions(), UpdateLogicalMappings(), WaitForLockersMultiple(), and xmlelement().

322 {
323  Assert(IsPointerList(list));
324 
325  if (list == NIL)
326  list = new_list(T_List, 1);
327  else
328  new_tail_cell(list);
329 
330  lfirst(list_tail(list)) = datum;
331  check_list_invariants(list);
332  return list;
333 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
static void new_tail_cell(List *list)
Definition: list.c:305
#define IsPointerList(l)
Definition: list.c:54
Definition: nodes.h:300
#define Assert(condition)
Definition: c.h:738
#define lfirst(lc)
Definition: pg_list.h:190
static ListCell * list_tail(const List *l)
Definition: pg_list.h:132
static List * new_list(NodeTag type, int min_size)
Definition: list.c:88

◆ lappend_int()

List* lappend_int ( List list,
int  datum 
)

Definition at line 339 of file list.c.

References Assert, check_list_invariants, IsIntegerList, lfirst_int, sort-test::list, list_tail(), new_list(), new_tail_cell(), NIL, and T_IntList.

Referenced by add_merged_range_bounds(), addRangeTableEntryForENR(), addRangeTableEntryForFunction(), addRangeTableEntryForSubquery(), analyzeCTETargetList(), ATRewriteTable(), build_merged_partition_bounds(), build_subplan(), check_ungrouped_columns_walker(), checkInsertTargets(), convert_EXISTS_to_ANY(), CopyGetAttnums(), deparseAnalyzeSql(), deparseExplicitTargetList(), deparseTargetList(), ExecBuildAggTrans(), ExecBuildGroupingEqual(), ExecInitExprRec(), ExecInitQual(), ExecInitSubscriptingRef(), expand_indexqual_rowcompare(), extractRemainingColumns(), fetch_statentries_for_relation(), finalize_grouping_exprs_walker(), find_all_inheritors(), find_compatible_peragg(), fix_expr_common(), gen_partprune_steps_internal(), gen_prune_steps_from_opexps(), generate_subquery_params(), inheritance_planner(), list_append_unique_int(), list_concat_unique_int(), list_difference_int(), list_intersection_int(), list_union_int(), match_pathkeys_to_index(), merge_list_bounds(), nodeRead(), postgresBeginForeignInsert(), postgresPlanDirectModify(), postgresPlanForeignModify(), rel_is_distinct_for(), remap_to_groupclause_idx(), reorder_grouping_sets(), set_plan_refs(), split_pathtarget_at_srfs(), SS_process_ctes(), TerminateOtherDBBackends(), transformDistinctOnClause(), transformFromClauseItem(), transformGroupClauseList(), transformInsertStmt(), transformRangeTableFunc(), transformSetOperationTree(), transformValuesClause(), and translate_sub_tlist().

340 {
341  Assert(IsIntegerList(list));
342 
343  if (list == NIL)
344  list = new_list(T_IntList, 1);
345  else
346  new_tail_cell(list);
347 
348  lfirst_int(list_tail(list)) = datum;
349  check_list_invariants(list);
350  return list;
351 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
#define IsIntegerList(l)
Definition: list.c:55
#define lfirst_int(lc)
Definition: pg_list.h:191
static void new_tail_cell(List *list)
Definition: list.c:305
#define Assert(condition)
Definition: c.h:738
static ListCell * list_tail(const List *l)
Definition: pg_list.h:132
static List * new_list(NodeTag type, int min_size)
Definition: list.c:88

◆ lappend_oid()

List* lappend_oid ( List list,
Oid  datum 
)

Definition at line 357 of file list.c.

References Assert, check_list_invariants, IsOidList, lfirst_oid, sort-test::list, list_tail(), new_list(), new_tail_cell(), NIL, and T_OidList.

Referenced by add_rte_to_flat_rtable(), addRangeTableEntryForENR(), addRangeTableEntryForFunction(), addRangeTableEntryForSubquery(), AfterTriggerSetState(), AlterTableMoveAll(), analyzeCTETargetList(), apply_handle_truncate(), ApplyExtensionUpdates(), assign_collations_walker(), assign_param_for_placeholdervar(), assign_param_for_var(), assign_special_exec_param(), binary_upgrade_create_empty_extension(), check_functional_grouping(), CheckAttributeType(), CloneFkReferenced(), CloneFkReferencing(), compute_semijoin_info(), convert_EXISTS_to_ANY(), create_hashjoin_plan(), create_indexscan_plan(), CreateExtensionInternal(), CreateFunction(), CreateTrigger(), DefineRelation(), do_autovacuum(), EventTriggerCommonSetup(), ExecAlterDefaultPrivilegesStmt(), ExecInitPartitionInfo(), ExecInsertIndexTuples(), ExecuteGrantStmt(), ExecuteTruncate(), ExecuteTruncateGuts(), expand_indexqual_rowcompare(), extract_query_dependencies_walker(), ExtractExtensionList(), find_all_inheritors(), find_inheritance_children(), find_typed_table_dependencies(), fireRIRrules(), fix_expr_common(), generate_new_exec_param(), get_index_ref_constraints(), get_mergejoin_opfamilies(), get_partition_ancestors_worker(), get_steps_using_prefix_recurse(), GetAllTablesPublicationRelations(), GetAllTablesPublications(), getAutoExtensionsOfObject(), getOwnedSequences_internal(), GetParentedForeignKeyRefs(), GetPublicationRelations(), GetRelationPublications(), getRelationsInNamespace(), heap_truncate_check_FKs(), heap_truncate_find_FKs(), index_concurrently_swap(), infer_arbiter_indexes(), inline_function(), list_append_unique_oid(), list_concat_unique_oid(), list_difference_oid(), list_union_oid(), LockViewRecurse(), logicalrep_read_truncate(), make_row_comparison_op(), nodeRead(), objectNamesToOids(), objectsInSchemaToOids(), oid_array_to_list(), OpenTableList(), pgstat_recv_inquiry(), PreCommit_on_commit_actions(), query_to_oid_list(), recomputeNamespacePath(), ReindexMultipleTables(), ReindexRelationConcurrently(), rel_is_distinct_for(), relation_is_updatable(), RelationGetIndexList(), RelationGetStatExtList(), RememberConstraintForRebuilding(), RememberIndexForRebuilding(), remove_dbtablespaces(), replace_outer_agg(), replace_outer_grouping(), RestoreReindexState(), roleSpecsToIds(), transformAggregateCall(), transformInsertStmt(), transformRangeTableFunc(), transformSetOperationTree(), transformValuesClause(), TryReuseForeignKey(), and typeInheritsFrom().

358 {
359  Assert(IsOidList(list));
360 
361  if (list == NIL)
362  list = new_list(T_OidList, 1);
363  else
364  new_tail_cell(list);
365 
366  lfirst_oid(list_tail(list)) = datum;
367  check_list_invariants(list);
368  return list;
369 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
static void new_tail_cell(List *list)
Definition: list.c:305
#define IsOidList(l)
Definition: list.c:56
#define Assert(condition)
Definition: c.h:738
static ListCell * list_tail(const List *l)
Definition: pg_list.h:132
static List * new_list(NodeTag type, int min_size)
Definition: list.c:88
#define lfirst_oid(lc)
Definition: pg_list.h:192

◆ lcons()

List* lcons ( void *  datum,
List list 
)

Definition at line 453 of file list.c.

References Assert, check_list_invariants, IsPointerList, lfirst, sort-test::list, list_head(), new_head_cell(), new_list(), NIL, and T_List.

Referenced by build_minmax_path(), checkWellFormedRecursionWalker(), consider_groupingsets_paths(), CreateExprContextInternal(), CreateLockFile(), ExecInitModifyTable(), ExplainNode(), ExplainSubPlans(), extract_rollup_sets(), find_expr_references_walker(), find_update_path(), generate_orderedappend_paths(), generateSerialExtraStmts(), get_name_for_var_field(), get_object_address_rv(), get_query_def(), get_relation_info(), gistEmptyAllBuffers(), gistFindPath(), gistGetNodeBuffer(), gistPushItupToNodeBuffer(), hashagg_spill_finish(), load_domaintype_info(), makeDependencyGraphWalker(), pg_get_object_address(), plan_union_children(), PLy_subtransaction_enter(), PrepareClientEncoding(), push_child_plan(), pushOperator(), PushOverrideSearchPath(), pushStop(), pushValue_internal(), readTimeLineHistory(), register_on_commit_action(), RelationBuildRowSecurity(), RelationCacheInvalidate(), reorder_grouping_sets(), RewriteQuery(), rewriteTargetView(), sepgsql_avc_compute(), set_cheapest(), show_agg_keys(), show_group_keys(), sort_inner_and_outer(), transformCaseExpr(), and UpdateRangeTableOfViewParse().

454 {
455  Assert(IsPointerList(list));
456 
457  if (list == NIL)
458  list = new_list(T_List, 1);
459  else
460  new_head_cell(list);
461 
462  lfirst(list_head(list)) = datum;
463  check_list_invariants(list);
464  return list;
465 }
#define NIL
Definition: pg_list.h:65
static void new_head_cell(List *list)
Definition: list.c:287
#define check_list_invariants(l)
Definition: list.c:77
static ListCell * list_head(const List *l)
Definition: pg_list.h:125
#define IsPointerList(l)
Definition: list.c:54
Definition: nodes.h:300
#define Assert(condition)
Definition: c.h:738
#define lfirst(lc)
Definition: pg_list.h:190
static List * new_list(NodeTag type, int min_size)
Definition: list.c:88

◆ lcons_int()

List* lcons_int ( int  datum,
List list 
)

Definition at line 471 of file list.c.

References Assert, check_list_invariants, IsIntegerList, lfirst_int, sort-test::list, list_head(), new_head_cell(), new_list(), NIL, and T_IntList.

Referenced by ExecInitAgg(), ExplainBeginOutput(), ExplainOpenGroup(), ExplainOpenSetAsideGroup(), and ExplainRestoreGroup().

472 {
473  Assert(IsIntegerList(list));
474 
475  if (list == NIL)
476  list = new_list(T_IntList, 1);
477  else
478  new_head_cell(list);
479 
480  lfirst_int(list_head(list)) = datum;
481  check_list_invariants(list);
482  return list;
483 }
#define NIL
Definition: pg_list.h:65
static void new_head_cell(List *list)
Definition: list.c:287
#define check_list_invariants(l)
Definition: list.c:77
#define IsIntegerList(l)
Definition: list.c:55
#define lfirst_int(lc)
Definition: pg_list.h:191
static ListCell * list_head(const List *l)
Definition: pg_list.h:125
#define Assert(condition)
Definition: c.h:738
static List * new_list(NodeTag type, int min_size)
Definition: list.c:88

◆ lcons_oid()

List* lcons_oid ( Oid  datum,
List list 
)

Definition at line 489 of file list.c.

References Assert, check_list_invariants, IsOidList, lfirst_oid, sort-test::list, list_head(), new_head_cell(), new_list(), NIL, and T_OidList.

Referenced by CreateSchemaCommand(), pg_partition_ancestors(), PushOverrideSearchPath(), recomputeNamespacePath(), and ReindexMultipleTables().

490 {
491  Assert(IsOidList(list));
492 
493  if (list == NIL)
494  list = new_list(T_OidList, 1);
495  else
496  new_head_cell(list);
497 
498  lfirst_oid(list_head(list)) = datum;
499  check_list_invariants(list);
500  return list;
501 }
#define NIL
Definition: pg_list.h:65
static void new_head_cell(List *list)
Definition: list.c:287
#define check_list_invariants(l)
Definition: list.c:77
static ListCell * list_head(const List *l)
Definition: pg_list.h:125
#define IsOidList(l)
Definition: list.c:56
#define Assert(condition)
Definition: c.h:738
static List * new_list(NodeTag type, int min_size)
Definition: list.c:88
#define lfirst_oid(lc)
Definition: pg_list.h:192

◆ list_append_unique()

List* list_append_unique ( List list,
void *  datum 
)

Definition at line 1180 of file list.c.

References lappend(), sort-test::list, and list_member().

Referenced by add_security_quals(), and add_with_check_options().

1181 {
1182  if (list_member(list, datum))
1183  return list;
1184  else
1185  return lappend(list, datum);
1186 }
bool list_member(const List *list, const void *datum)
Definition: list.c:613
List * lappend(List *list, void *datum)
Definition: list.c:321

◆ list_append_unique_int()

List* list_append_unique_int ( List list,
int  datum 
)

Definition at line 1205 of file list.c.

References lappend_int(), sort-test::list, and list_member_int().

1206 {
1207  if (list_member_int(list, datum))
1208  return list;
1209  else
1210  return lappend_int(list, datum);
1211 }
bool list_member_int(const List *list, int datum)
Definition: list.c:654
List * lappend_int(List *list, int datum)
Definition: list.c:339

◆ list_append_unique_oid()

List* list_append_unique_oid ( List list,
Oid  datum 
)

Definition at line 1217 of file list.c.

References lappend_oid(), sort-test::list, and list_member_oid().

Referenced by ATExecAlterConstraint(), btvalidate(), hashvalidate(), heap_truncate_find_FKs(), is_admin_of_role(), map_sql_typecoll_to_xmlschema_types(), roles_has_privs_of(), and roles_is_member_of().

1218 {
1219  if (list_member_oid(list, datum))
1220  return list;
1221  else
1222  return lappend_oid(list, datum);
1223 }
List * lappend_oid(List *list, Oid datum)
Definition: list.c:357
bool list_member_oid(const List *list, Oid datum)
Definition: list.c:674

◆ list_append_unique_ptr()

List* list_append_unique_ptr ( List list,
void *  datum 
)

Definition at line 1193 of file list.c.

References lappend(), sort-test::list, and list_member_ptr().

Referenced by get_useful_ecs_for_relation(), postgresGetForeignPaths(), subbuild_joinrel_joinlist(), and subbuild_joinrel_restrictlist().

1194 {
1195  if (list_member_ptr(list, datum))
1196  return list;
1197  else
1198  return lappend(list, datum);
1199 }
List * lappend(List *list, void *datum)
Definition: list.c:321
bool list_member_ptr(const List *list, const void *datum)
Definition: list.c:634

◆ list_cell_number()

static int list_cell_number ( const List l,
const ListCell c 
)
inlinestatic

Definition at line 311 of file pg_list.h.

References Assert, List::elements, and List::length.

Referenced by for_both_cell_setup(), for_each_cell_setup(), and push_ancestor_plan().

312 {
313  Assert(c >= &l->elements[0] && c < &l->elements[l->length]);
314  return c - l->elements;
315 }
char * c
ListCell * elements
Definition: pg_list.h:55
#define Assert(condition)
Definition: c.h:738
int length
Definition: pg_list.h:53

◆ list_concat()

List* list_concat ( List list1,
const List list2 
)

Definition at line 515 of file list.c.

References Assert, check_list_invariants, List::elements, enlarge_list(), List::length, list_copy(), List::max_length, NIL, and List::type.

Referenced by accumulate_append_subpath(), add_paths_to_append_rel(), add_predicate_to_index_quals(), addRangeTableEntryForJoin(), addRangeTableEntryForTableFunc(), AtEOSubXact_ApplyLauncher(), ATExecAttachPartition(), ATParseTransformCmd(), ATPostAlterTypeParse(), AtSubCommit_Notify(), build_joinrel_restrictlist(), build_paths_for_OR(), check_index_predicates(), choose_bitmap_and(), clean_up_removed_plan_level(), consider_groupingsets_paths(), ConstraintImpliedByRelConstraint(), convert_EXISTS_sublink_to_join(), cost_index(), create_append_path(), create_append_plan(), create_bitmap_subplan(), create_index_paths(), create_join_plan(), create_merge_append_plan(), deconstruct_recurse(), DefineRelation(), deparseDirectDeleteSql(), deparseDirectUpdateSql(), deparseFromExprForRel(), estimate_path_cost_size(), expand_groupingset_node(), ExpandAllTables(), expandRTE(), extract_or_clause(), extract_rollup_sets(), fileBeginForeignScan(), fileGetOptions(), find_forced_null_vars(), find_indexpath_quals(), find_mergeclauses_for_outer_pathkeys(), find_nonnullable_vars_walker(), fireRIRrules(), flatten_grouping_sets(), fmgr_sql_validator(), foreign_grouping_ok(), foreign_join_ok(), gen_partprune_steps_internal(), gen_prune_steps_from_opexps(), generate_bitmap_or_paths(), generate_join_implied_equalities(), generate_join_implied_equalities_for_ecs(), generate_join_implied_equalities_normal(), generate_partition_qual(), get_baserel_parampathinfo(), get_foreign_key_join_selectivity(), get_from_clause_item(), get_index_paths(), get_join_index_paths(), get_joinrel_parampathinfo(), get_relation_constraints(), get_rels_with_domain(), get_steps_using_prefix_recurse(), GetPublicationRelations(), init_sql_fcache(), is_parallel_safe(), objectsInSchemaToOids(), process_equivalence(), process_sublinks_mutator(), pull_ands(), pull_ors(), pull_up_simple_subquery(), pull_up_simple_union_all(), reduce_outer_joins_pass2(), reduce_unique_semijoins(), reorder_grouping_sets(), RewriteQuery(), rewriteRuleAction(), rewriteTargetListIU(), selectColorTrigrams(), set_append_rel_pathlist(), set_joinrel_partition_key_exprs(), set_plan_refs(), split_pathtarget_at_srfs(), split_pathtarget_walker(), TidQualFromRestrictInfoList(), transformAExprIn(), transformAlterTableStmt(), transformCreateSchemaStmt(), transformCreateStmt(), transformExpressionList(), transformExtendedStatistics(), transformFromClause(), transformFromClauseItem(), transformIndexConstraints(), transformTargetList(), and vacuum().

516 {
517  int new_len;
518 
519  if (list1 == NIL)
520  return list_copy(list2);
521  if (list2 == NIL)
522  return list1;
523 
524  Assert(list1->type == list2->type);
525 
526  new_len = list1->length + list2->length;
527  /* Enlarge array if necessary */
528  if (new_len > list1->max_length)
529  enlarge_list(list1, new_len);
530 
531  /* Even if list1 == list2, using memcpy should be safe here */
532  memcpy(&list1->elements[list1->length], &list2->elements[0],
533  list2->length * sizeof(ListCell));
534  list1->length = new_len;
535 
536  check_list_invariants(list1);
537  return list1;
538 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
List * list_copy(const List *oldlist)
Definition: list.c:1403
static void enlarge_list(List *list, int min_size)
Definition: list.c:152
int max_length
Definition: pg_list.h:54
ListCell * elements
Definition: pg_list.h:55
#define Assert(condition)
Definition: c.h:738
int length
Definition: pg_list.h:53
NodeTag type
Definition: pg_list.h:52

◆ list_concat_copy()

List* list_concat_copy ( const List list1,
const List list2 
)

Definition at line 552 of file list.c.

References Assert, check_list_invariants, List::elements, List::length, list_copy(), new_list(), NIL, and List::type.

Referenced by add_function_defaults(), build_paths_for_OR(), choose_bitmap_and(), create_scan_plan(), DefineIndex(), gen_partprune_steps(), generate_bitmap_or_paths(), get_parameterized_baserel_size(), make_pathkeys_for_window(), max_parallel_hazard_walker(), process_matched_tle(), set_joinrel_partition_key_exprs(), simplify_and_arguments(), and simplify_or_arguments().

553 {
554  List *result;
555  int new_len;
556 
557  if (list1 == NIL)
558  return list_copy(list2);
559  if (list2 == NIL)
560  return list_copy(list1);
561 
562  Assert(list1->type == list2->type);
563 
564  new_len = list1->length + list2->length;
565  result = new_list(list1->type, new_len);
566  memcpy(result->elements, list1->elements,
567  list1->length * sizeof(ListCell));
568  memcpy(result->elements + list1->length, list2->elements,
569  list2->length * sizeof(ListCell));
570 
571  check_list_invariants(result);
572  return result;
573 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
List * list_copy(const List *oldlist)
Definition: list.c:1403
ListCell * elements
Definition: pg_list.h:55
#define Assert(condition)
Definition: c.h:738
int length
Definition: pg_list.h:53
NodeTag type
Definition: pg_list.h:52
Definition: pg_list.h:50
static List * new_list(NodeTag type, int min_size)
Definition: list.c:88

◆ list_concat_unique()

List* list_concat_unique ( List list1,
const List list2 
)

Definition at line 1237 of file list.c.

References Assert, check_list_invariants, IsPointerList, lappend(), lfirst, and list_member().

Referenced by create_bitmap_subplan(), and select_active_windows().

1238 {
1239  ListCell *cell;
1240 
1241  Assert(IsPointerList(list1));
1242  Assert(IsPointerList(list2));
1243 
1244  foreach(cell, list2)
1245  {
1246  if (!list_member(list1, lfirst(cell)))
1247  list1 = lappend(list1, lfirst(cell));
1248  }
1249 
1250  check_list_invariants(list1);
1251  return list1;
1252 }
#define check_list_invariants(l)
Definition: list.c:77
bool list_member(const List *list, const void *datum)
Definition: list.c:613
#define IsPointerList(l)
Definition: list.c:54
List * lappend(List *list, void *datum)
Definition: list.c:321
#define Assert(condition)
Definition: c.h:738
#define lfirst(lc)
Definition: pg_list.h:190

◆ list_concat_unique_int()

List* list_concat_unique_int ( List list1,
const List list2 
)

Definition at line 1280 of file list.c.

References Assert, check_list_invariants, IsIntegerList, lappend_int(), lfirst_int, and list_member_int().

1281 {
1282  ListCell *cell;
1283 
1284  Assert(IsIntegerList(list1));
1285  Assert(IsIntegerList(list2));
1286 
1287  foreach(cell, list2)
1288  {
1289  if (!list_member_int(list1, lfirst_int(cell)))
1290  list1 = lappend_int(list1, lfirst_int(cell));
1291  }
1292 
1293  check_list_invariants(list1);
1294  return list1;
1295 }
#define check_list_invariants(l)
Definition: list.c:77
#define IsIntegerList(l)
Definition: list.c:55
#define lfirst_int(lc)
Definition: pg_list.h:191
bool list_member_int(const List *list, int datum)
Definition: list.c:654
List * lappend_int(List *list, int datum)
Definition: list.c:339
#define Assert(condition)
Definition: c.h:738

◆ list_concat_unique_oid()

List* list_concat_unique_oid ( List list1,
const List list2 
)

Definition at line 1301 of file list.c.

References Assert, check_list_invariants, IsOidList, lappend_oid(), lfirst_oid, and list_member_oid().

Referenced by GetRelationPublicationActions().

1302 {
1303  ListCell *cell;
1304 
1305  Assert(IsOidList(list1));
1306  Assert(IsOidList(list2));
1307 
1308  foreach(cell, list2)
1309  {
1310  if (!list_member_oid(list1, lfirst_oid(cell)))
1311  list1 = lappend_oid(list1, lfirst_oid(cell));
1312  }
1313 
1314  check_list_invariants(list1);
1315  return list1;
1316 }
#define check_list_invariants(l)
Definition: list.c:77
List * lappend_oid(List *list, Oid datum)
Definition: list.c:357
#define IsOidList(l)
Definition: list.c:56
bool list_member_oid(const List *list, Oid datum)
Definition: list.c:674
#define Assert(condition)
Definition: c.h:738
#define lfirst_oid(lc)
Definition: pg_list.h:192

◆ list_concat_unique_ptr()

List* list_concat_unique_ptr ( List list1,
const List list2 
)

Definition at line 1259 of file list.c.

References Assert, check_list_invariants, IsPointerList, lappend(), lfirst, and list_member_ptr().

1260 {
1261  ListCell *cell;
1262 
1263  Assert(IsPointerList(list1));
1264  Assert(IsPointerList(list2));
1265 
1266  foreach(cell, list2)
1267  {
1268  if (!list_member_ptr(list1, lfirst(cell)))
1269  list1 = lappend(list1, lfirst(cell));
1270  }
1271 
1272  check_list_invariants(list1);
1273  return list1;
1274 }
#define check_list_invariants(l)
Definition: list.c:77
#define IsPointerList(l)
Definition: list.c:54
List * lappend(List *list, void *datum)
Definition: list.c:321
bool list_member_ptr(const List *list, const void *datum)
Definition: list.c:634
#define Assert(condition)
Definition: c.h:738
#define lfirst(lc)
Definition: pg_list.h:190

◆ list_copy()

List* list_copy ( const List list)

Definition at line 1403 of file list.c.

References check_list_invariants, List::elements, List::length, new_list(), NIL, and List::type.

Referenced by accumulate_append_subpath(), arrayconst_startup_fn(), arrayexpr_startup_fn(), build_subplan(), check_index_predicates(), consider_groupingsets_paths(), ConstraintImpliedByRelConstraint(), copy_pathtarget(), copyObjectImpl(), CopyOverrideSearchPath(), create_append_path(), create_append_plan(), create_merge_append_path(), create_merge_append_plan(), does_not_exist_skipping(), EventTriggerCollectGrant(), ExecuteTruncateGuts(), expand_indexqual_rowcompare(), expression_tree_mutator(), fetch_search_path(), generate_mergejoin_paths(), get_eclass_for_sort_expr(), get_foreign_key_join_selectivity(), get_object_address_attrdef(), get_object_address_attribute(), get_object_address_opf_member(), get_object_address_relobject(), get_query_def(), get_required_extension(), get_steps_using_prefix_recurse(), get_switched_clauses(), get_useful_pathkeys_for_relation(), GetOverrideSearchPath(), heap_truncate_find_FKs(), list_concat(), list_concat_copy(), list_difference(), list_difference_int(), list_difference_oid(), list_difference_ptr(), list_union(), list_union_int(), list_union_oid(), list_union_ptr(), owningrel_does_not_exist_skipping(), process_owned_by(), PushOverrideSearchPath(), recomputeNamespacePath(), RelationGetIndexList(), RelationGetStatExtList(), remove_rel_from_query(), reorder_grouping_sets(), roles_has_privs_of(), roles_is_member_of(), select_active_windows(), select_outer_pathkeys_for_merge(), set_joinrel_partition_key_exprs(), set_using_names(), SetReindexPending(), simplify_and_arguments(), simplify_or_arguments(), sort_inner_and_outer(), transformWithClause(), and truncate_useless_pathkeys().

1404 {
1405  List *newlist;
1406 
1407  if (oldlist == NIL)
1408  return NIL;
1409 
1410  newlist = new_list(oldlist->type, oldlist->length);
1411  memcpy(newlist->elements, oldlist->elements,
1412  newlist->length * sizeof(ListCell));
1413 
1414  check_list_invariants(newlist);
1415  return newlist;
1416 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
ListCell * elements
Definition: pg_list.h:55
int length
Definition: pg_list.h:53
Definition: pg_list.h:50
static List * new_list(NodeTag type, int min_size)
Definition: list.c:88

◆ list_copy_deep()

List* list_copy_deep ( const List oldlist)

Definition at line 1448 of file list.c.

References Assert, check_list_invariants, copyObjectImpl(), List::elements, i, IsA, List::length, lfirst, new_list(), NIL, and List::type.

Referenced by copyObjectImpl().

1449 {
1450  List *newlist;
1451 
1452  if (oldlist == NIL)
1453  return NIL;
1454 
1455  /* This is only sensible for pointer Lists */
1456  Assert(IsA(oldlist, List));
1457 
1458  newlist = new_list(oldlist->type, oldlist->length);
1459  for (int i = 0; i < newlist->length; i++)
1460  lfirst(&newlist->elements[i]) =
1461  copyObjectImpl(lfirst(&oldlist->elements[i]));
1462 
1463  check_list_invariants(newlist);
1464  return newlist;
1465 }
#define NIL
Definition: pg_list.h:65
#define IsA(nodeptr, _type_)
Definition: nodes.h:580
#define check_list_invariants(l)
Definition: list.c:77
ListCell * elements
Definition: pg_list.h:55
#define Assert(condition)
Definition: c.h:738
#define lfirst(lc)
Definition: pg_list.h:190
int length
Definition: pg_list.h:53
NodeTag type
Definition: pg_list.h:52
int i
Definition: pg_list.h:50
static List * new_list(NodeTag type, int min_size)
Definition: list.c:88
void * copyObjectImpl(const void *from)
Definition: copyfuncs.c:4823

◆ list_copy_tail()

List* list_copy_tail ( const List list,
int  nskip 
)

Definition at line 1422 of file list.c.

References check_list_invariants, List::elements, List::length, new_list(), NIL, and List::type.

Referenced by accumulate_append_subpath(), add_function_defaults(), addRangeTableEntryForJoin(), addRangeTableEntryForTableFunc(), does_not_exist_skipping(), expandRTE(), func_get_detail(), get_name_for_var_field(), get_object_address_opcf(), ParseFuncOrColumn(), push_ancestor_plan(), and transformAggregateCall().

1423 {
1424  List *newlist;
1425 
1426  if (nskip < 0)
1427  nskip = 0; /* would it be better to elog? */
1428 
1429  if (oldlist == NIL || nskip >= oldlist->length)
1430  return NIL;
1431 
1432  newlist = new_list(oldlist->type, oldlist->length - nskip);
1433  memcpy(newlist->elements, &oldlist->elements[nskip],
1434  newlist->length * sizeof(ListCell));
1435 
1436  check_list_invariants(newlist);
1437  return newlist;
1438 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
ListCell * elements
Definition: pg_list.h:55
int length
Definition: pg_list.h:53
Definition: pg_list.h:50
static List * new_list(NodeTag type, int min_size)
Definition: list.c:88

◆ list_deduplicate_oid()

void list_deduplicate_oid ( List list)

Definition at line 1325 of file list.c.

References Assert, check_list_invariants, List::elements, i, IsOidList, List::length, list_length(), and ListCell::oid_value.

Referenced by heap_truncate_find_FKs().

1326 {
1327  int len;
1328 
1329  Assert(IsOidList(list));
1330  len = list_length(list);
1331  if (len > 1)
1332  {
1333  ListCell *elements = list->elements;
1334  int i = 0;
1335 
1336  for (int j = 1; j < len; j++)
1337  {
1338  if (elements[i].oid_value != elements[j].oid_value)
1339  elements[++i].oid_value = elements[j].oid_value;
1340  }
1341  list->length = i + 1;
1342  }
1343  check_list_invariants(list);
1344 }
#define check_list_invariants(l)
Definition: list.c:77
ListCell * elements
Definition: pg_list.h:55
#define IsOidList(l)
Definition: list.c:56
#define Assert(condition)
Definition: c.h:738
static int list_length(const List *l)
Definition: pg_list.h:169
int length
Definition: pg_list.h:53
Oid oid_value
Definition: pg_list.h:47
int i

◆ list_delete()

List* list_delete ( List list,
void *  datum 
)

Definition at line 777 of file list.c.

References Assert, check_list_invariants, equal(), IsPointerList, lfirst, sort-test::list, and list_delete_cell().

Referenced by postgresGetForeignPlan(), and unregister_ENR().

778 {
779  ListCell *cell;
780 
781  Assert(IsPointerList(list));
782  check_list_invariants(list);
783 
784  foreach(cell, list)
785  {
786  if (equal(lfirst(cell), datum))
787  return list_delete_cell(list, cell);
788  }
789 
790  /* Didn't find a match: return the list unmodified */
791  return list;
792 }
bool equal(const void *a, const void *b)
Definition: equalfuncs.c:3033
#define check_list_invariants(l)
Definition: list.c:77
#define IsPointerList(l)
Definition: list.c:54
List * list_delete_cell(List *list, ListCell *cell)
Definition: list.c:767
#define Assert(condition)
Definition: c.h:738
#define lfirst(lc)
Definition: pg_list.h:190

◆ list_delete_cell()

List* list_delete_cell ( List list,
ListCell cell 
)

Definition at line 767 of file list.c.

References List::elements, and list_delete_nth_cell().

Referenced by list_delete(), list_delete_int(), list_delete_oid(), list_delete_ptr(), remove_useless_joins(), and transformGenericOptions().

768 {
769  return list_delete_nth_cell(list, cell - list->elements);
770 }
ListCell * elements
Definition: pg_list.h:55
List * list_delete_nth_cell(List *list, int n)
Definition: list.c:696

◆ list_delete_first()

◆ list_delete_int()

List* list_delete_int ( List list,
int  datum 
)

Definition at line 815 of file list.c.

References Assert, check_list_invariants, IsIntegerList, lfirst_int, sort-test::list, and list_delete_cell().

Referenced by reorder_grouping_sets().

816 {
817  ListCell *cell;
818 
819  Assert(IsIntegerList(list));
820  check_list_invariants(list);
821 
822  foreach(cell, list)
823  {
824  if (lfirst_int(cell) == datum)
825  return list_delete_cell(list, cell);
826  }
827 
828  /* Didn't find a match: return the list unmodified */
829  return list;
830 }
#define check_list_invariants(l)
Definition: list.c:77
#define IsIntegerList(l)
Definition: list.c:55
#define lfirst_int(lc)
Definition: pg_list.h:191
List * list_delete_cell(List *list, ListCell *cell)
Definition: list.c:767
#define Assert(condition)
Definition: c.h:738

◆ list_delete_last()

List* list_delete_last ( List list)

Definition at line 877 of file list.c.

References check_list_invariants, list_free(), list_length(), list_truncate(), and NIL.

Referenced by CheckAttributeType(), fireRIRrules(), inline_function(), LockViewRecurse(), relation_is_updatable(), and RewriteQuery().

878 {
879  check_list_invariants(list);
880 
881  if (list == NIL)
882  return NIL; /* would an error be better? */
883 
884  /* list_truncate won't free list if it goes to empty, but this should */
885  if (list_length(list) <= 1)
886  {
887  list_free(list);
888  return NIL;
889  }
890 
891  return list_truncate(list, list_length(list) - 1);
892 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
List * list_truncate(List *list, int new_size)
Definition: list.c:585
static int list_length(const List *l)
Definition: pg_list.h:169
void list_free(List *list)
Definition: list.c:1376

◆ list_delete_nth_cell()

List* list_delete_nth_cell ( List list,
int  n 
)

Definition at line 696 of file list.c.

References Assert, check_list_invariants, List::elements, GetMemoryChunkContext(), List::initial_elements, List::length, sort-test::list, list_free(), List::max_length, MemoryContextAlloc(), NIL, pfree(), and VALGRIND_MAKE_MEM_NOACCESS.

Referenced by list_delete_cell(), list_delete_first(), and MergeAttributes().

697 {
698  check_list_invariants(list);
699 
700  Assert(n >= 0 && n < list->length);
701 
702  /*
703  * If we're about to delete the last node from the list, free the whole
704  * list instead and return NIL, which is the only valid representation of
705  * a zero-length list.
706  */
707  if (list->length == 1)
708  {
709  list_free(list);
710  return NIL;
711  }
712 
713  /*
714  * Otherwise, we normally just collapse out the removed element. But for
715  * debugging purposes, move the whole list contents someplace else.
716  *
717  * (Note that we *must* keep the contents in the same memory context.)
718  */
719 #ifndef DEBUG_LIST_MEMORY_USAGE
720  memmove(&list->elements[n], &list->elements[n + 1],
721  (list->length - 1 - n) * sizeof(ListCell));
722  list->length--;
723 #else
724  {
725  ListCell *newelems;
726  int newmaxlen = list->length - 1;
727 
728  newelems = (ListCell *)
730  newmaxlen * sizeof(ListCell));
731  memcpy(newelems, list->elements, n * sizeof(ListCell));
732  memcpy(&newelems[n], &list->elements[n + 1],
733  (list->length - 1 - n) * sizeof(ListCell));
734  if (list->elements != list->initial_elements)
735  pfree(list->elements);
736  else
737  {
738  /*
739  * As in enlarge_list(), clear the initial_elements[] space and/or
740  * mark it inaccessible.
741  */
742 #ifdef CLOBBER_FREED_MEMORY
743  wipe_mem(list->initial_elements,
744  list->max_length * sizeof(ListCell));
745 #else
747  list->max_length * sizeof(ListCell));
748 #endif
749  }
750  list->elements = newelems;
751  list->max_length = newmaxlen;
752  list->length--;
753  check_list_invariants(list);
754  }
755 #endif
756 
757  return list;
758 }
#define NIL
Definition: pg_list.h:65
#define VALGRIND_MAKE_MEM_NOACCESS(addr, size)
Definition: memdebug.h:27
#define check_list_invariants(l)
Definition: list.c:77
void pfree(void *pointer)
Definition: mcxt.c:1056
union ListCell ListCell
int max_length
Definition: pg_list.h:54
ListCell * elements
Definition: pg_list.h:55
#define Assert(condition)
Definition: c.h:738
int length
Definition: pg_list.h:53
void * MemoryContextAlloc(MemoryContext context, Size size)
Definition: mcxt.c:796
void list_free(List *list)
Definition: list.c:1376
ListCell initial_elements[FLEXIBLE_ARRAY_MEMBER]
Definition: pg_list.h:57
static MemoryContext GetMemoryChunkContext(void *pointer)
Definition: memutils.h:113

◆ list_delete_oid()

List* list_delete_oid ( List list,
Oid  datum 
)

Definition at line 834 of file list.c.

References Assert, check_list_invariants, IsOidList, lfirst_oid, sort-test::list, and list_delete_cell().

Referenced by RemoveReindexPending().

835 {
836  ListCell *cell;
837 
838  Assert(IsOidList(list));
839  check_list_invariants(list);
840 
841  foreach(cell, list)
842  {
843  if (lfirst_oid(cell) == datum)
844  return list_delete_cell(list, cell);
845  }
846 
847  /* Didn't find a match: return the list unmodified */
848  return list;
849 }
#define check_list_invariants(l)
Definition: list.c:77
List * list_delete_cell(List *list, ListCell *cell)
Definition: list.c:767
#define IsOidList(l)
Definition: list.c:56
#define Assert(condition)
Definition: c.h:738
#define lfirst_oid(lc)
Definition: pg_list.h:192

◆ list_delete_ptr()

List* list_delete_ptr ( List list,
void *  datum 
)

Definition at line 796 of file list.c.

References Assert, check_list_invariants, IsPointerList, lfirst, sort-test::list, and list_delete_cell().

Referenced by adjustJoinTreeList(), FreeExprContext(), generateSerialExtraStmts(), process_equivalence(), reconsider_full_join_clause(), remove_join_clause_from_rels(), sort_inner_and_outer(), and transformMultiAssignRef().

797 {
798  ListCell *cell;
799 
800  Assert(IsPointerList(list));
801  check_list_invariants(list);
802 
803  foreach(cell, list)
804  {
805  if (lfirst(cell) == datum)
806  return list_delete_cell(list, cell);
807  }
808 
809  /* Didn't find a match: return the list unmodified */
810  return list;
811 }
#define check_list_invariants(l)
Definition: list.c:77
#define IsPointerList(l)
Definition: list.c:54
List * list_delete_cell(List *list, ListCell *cell)
Definition: list.c:767
#define Assert(condition)
Definition: c.h:738
#define lfirst(lc)
Definition: pg_list.h:190

◆ list_difference()

List* list_difference ( const List list1,
const List list2 
)

Definition at line 1076 of file list.c.

References Assert, check_list_invariants, IsPointerList, lappend(), lfirst, list_copy(), list_member(), and NIL.

Referenced by create_hashjoin_plan(), create_mergejoin_plan(), create_tidscan_plan(), infer_arbiter_indexes(), and process_duplicate_ors().

1077 {
1078  const ListCell *cell;
1079  List *result = NIL;
1080 
1081  Assert(IsPointerList(list1));
1082  Assert(IsPointerList(list2));
1083 
1084  if (list2 == NIL)
1085  return list_copy(list1);
1086 
1087  foreach(cell, list1)
1088  {
1089  if (!list_member(list2, lfirst(cell)))
1090  result = lappend(result, lfirst(cell));
1091  }
1092 
1093  check_list_invariants(result);
1094  return result;
1095 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
List * list_copy(const List *oldlist)
Definition: list.c:1403
bool list_member(const List *list, const void *datum)
Definition: list.c:613
#define IsPointerList(l)
Definition: list.c:54
List * lappend(List *list, void *datum)
Definition: list.c:321
#define Assert(condition)
Definition: c.h:738
#define lfirst(lc)
Definition: pg_list.h:190
Definition: pg_list.h:50

◆ list_difference_int()

List* list_difference_int ( const List list1,
const List list2 
)

Definition at line 1127 of file list.c.

References Assert, check_list_invariants, IsIntegerList, lappend_int(), lfirst_int, list_copy(), list_member_int(), and NIL.

Referenced by reorder_grouping_sets().

1128 {
1129  const ListCell *cell;
1130  List *result = NIL;
1131 
1132  Assert(IsIntegerList(list1));
1133  Assert(IsIntegerList(list2));
1134 
1135  if (list2 == NIL)
1136  return list_copy(list1);
1137 
1138  foreach(cell, list1)
1139  {
1140  if (!list_member_int(list2, lfirst_int(cell)))
1141  result = lappend_int(result, lfirst_int(cell));
1142  }
1143 
1144  check_list_invariants(result);
1145  return result;
1146 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
List * list_copy(const List *oldlist)
Definition: list.c:1403
#define IsIntegerList(l)
Definition: list.c:55
#define lfirst_int(lc)
Definition: pg_list.h:191
bool list_member_int(const List *list, int datum)
Definition: list.c:654
List * lappend_int(List *list, int datum)
Definition: list.c:339
#define Assert(condition)
Definition: c.h:738
Definition: pg_list.h:50

◆ list_difference_oid()

List* list_difference_oid ( const List list1,
const List list2 
)

Definition at line 1152 of file list.c.

References Assert, check_list_invariants, IsOidList, lappend_oid(), lfirst_oid, list_copy(), list_member_oid(), and NIL.

1153 {
1154  const ListCell *cell;
1155  List *result = NIL;
1156 
1157  Assert(IsOidList(list1));
1158  Assert(IsOidList(list2));
1159 
1160  if (list2 == NIL)
1161  return list_copy(list1);
1162 
1163  foreach(cell, list1)
1164  {
1165  if (!list_member_oid(list2, lfirst_oid(cell)))
1166  result = lappend_oid(result, lfirst_oid(cell));
1167  }
1168 
1169  check_list_invariants(result);
1170  return result;
1171 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
List * list_copy(const List *oldlist)
Definition: list.c:1403
List * lappend_oid(List *list, Oid datum)
Definition: list.c:357
#define IsOidList(l)
Definition: list.c:56
bool list_member_oid(const List *list, Oid datum)
Definition: list.c:674
#define Assert(condition)
Definition: c.h:738
Definition: pg_list.h:50
#define lfirst_oid(lc)
Definition: pg_list.h:192

◆ list_difference_ptr()

List* list_difference_ptr ( const List list1,
const List list2 
)

Definition at line 1102 of file list.c.

References Assert, check_list_invariants, IsPointerList, lappend(), lfirst, list_copy(), list_member_ptr(), and NIL.

Referenced by create_bitmap_scan_plan(), and ExecuteTruncateGuts().

1103 {
1104  const ListCell *cell;
1105  List *result = NIL;
1106 
1107  Assert(IsPointerList(list1));
1108  Assert(IsPointerList(list2));
1109 
1110  if (list2 == NIL)
1111  return list_copy(list1);
1112 
1113  foreach(cell, list1)
1114  {
1115  if (!list_member_ptr(list2, lfirst(cell)))
1116  result = lappend(result, lfirst(cell));
1117  }
1118 
1119  check_list_invariants(result);
1120  return result;
1121 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
List * list_copy(const List *oldlist)
Definition: list.c:1403
#define IsPointerList(l)
Definition: list.c:54
List * lappend(List *list, void *datum)
Definition: list.c:321
bool list_member_ptr(const List *list, const void *datum)
Definition: list.c:634
#define Assert(condition)
Definition: c.h:738
#define lfirst(lc)
Definition: pg_list.h:190
Definition: pg_list.h:50

◆ list_fourth_cell()

static ListCell* list_fourth_cell ( const List l)
inlinestatic

Definition at line 159 of file pg_list.h.

References List::elements, and List::length.

160 {
161  if (l && l->length >= 4)
162  return &l->elements[3];
163  else
164  return NULL;
165 }
ListCell * elements
Definition: pg_list.h:55
int length
Definition: pg_list.h:53

◆ list_free()

void list_free ( List list)

Definition at line 1376 of file list.c.

References list_free_private().

Referenced by AfterTriggerSetState(), AlterIndexNamespaces(), arrayconst_cleanup_fn(), arrayexpr_cleanup_fn(), ATCheckPartitionsNotInUse(), AtEOSubXact_Namespace(), AtEOXact_Namespace(), ATExecChangeOwner(), ATExecDropNotNull(), ATExecSetTableSpace(), build_base_rel_tlists(), build_remote_returning(), calc_joinrel_size_estimate(), calculate_indexes_size(), calculate_toast_table_size(), check_datestyle(), check_log_destination(), check_search_path(), check_temp_tablespaces(), check_wal_consistency_checking(), choose_bitmap_and(), compute_semi_anti_join_factors(), CopyFrom(), CopyMultiInsertBufferFlush(), CopyMultiInsertInfoCleanup(), CreateExtensionInternal(), CreateTrigger(), current_schema(), current_schemas(), DefineIndex(), DefineRelation(), distribute_qual_to_rels(), DropSubscription(), EventTriggerDDLCommandEnd(), EventTriggerDDLCommandStart(), EventTriggerSQLDrop(), EventTriggerTableRewrite(), ExecInitPartitionInfo(), ExecInsert(), ExecOpenIndices(), ExecRefreshMatView(), ExecResetTupleTable(), ExecSimpleRelationInsert(), ExecSimpleRelationUpdate(), ExecUpdate(), extract_lateral_references(), ExtractExtensionList(), find_all_inheritors(), find_compatible_peragg(), find_hash_columns(), find_placeholders_in_expr(), fix_placeholder_input_needed_levels(), generate_base_implied_equalities_no_const(), generate_partitionwise_join_paths(), get_rel_sync_entry(), get_relation_info(), get_relation_statistics(), get_steps_using_prefix_recurse(), hashagg_reset_spill_state(), heap_truncate_find_FKs(), index_concurrently_swap(), index_get_partition(), infer_arbiter_indexes(), is_admin_of_role(), list_delete_last(), list_delete_nth_cell(), make_group_input_target(), make_partial_grouping_target(), make_pathkeys_for_window(), make_sort_input_target(), make_window_input_target(), max_parallel_hazard_walker(), merge_list_bounds(), merge_range_bounds(), OpenTableList(), parse_hba_auth_opt(), pg_partition_root(), pgstat_write_statsfiles(), plpgsql_extra_checks_check_hook(), pop_ancestor_plan(), PopOverrideSearchPath(), PostmasterMain(), prepare_sort_from_pathkeys(), PrepareTempTablespaces(), preprocess_targetlist(), ProcessUtilitySlow(), qual_is_pushdown_safe(), recomputeNamespacePath(), refresh_by_match_merge(), RelationCacheInvalidate(), RelationDestroyRelation(), RelationGetIndexAttrBitmap(), RelationGetIndexList(), RelationGetPrimaryKeyIndex(), RelationGetReplicaIndex(), RelationGetStatExtList(), relationHasPrimaryKey(), remove_dbtablespaces(), reorder_grouping_sets(), reparameterize_pathlist_by_child(), roles_has_privs_of(), roles_is_member_of(), sepgsql_dml_privileges(), simplify_and_arguments(), simplify_or_arguments(), stringToQualifiedNameList(), textToQualifiedNameList(), toast_open_indexes(), transformFkeyCheckAttrs(), transformFkeyGetPrimaryKey(), transformTableLikeClause(), transformValuesClause(), triggered_change_notification(), typeInheritsFrom(), vac_open_indexes(), and WaitForLockers().

1377 {
1378  list_free_private(list, false);
1379 }
static void list_free_private(List *list, bool deep)
Definition: list.c:1350

◆ list_free_deep()

void list_free_deep ( List list)

Definition at line 1390 of file list.c.

References Assert, IsPointerList, and list_free_private().

Referenced by AfterTriggerFreeQuery(), AtEOSubXact_ApplyLauncher(), ATExecDetachPartition(), checkSharedDependencies(), Exec_UnlistenAllCommit(), FreeSubscription(), get_rel_sync_entry(), gistbufferinginserttuples(), load_libraries(), lookup_proof_cache(), PostmasterMain(), process_syncing_tables_for_apply(), RelationDestroyRelation(), RelationGetFKeyList(), rescanLatestTimeLine(), StartReplication(), WaitForLockersMultiple(), XLogReadDetermineTimeline(), and XLogSendPhysical().

1391 {
1392  /*
1393  * A "deep" free operation only makes sense on a list of pointers.
1394  */
1395  Assert(IsPointerList(list));
1396  list_free_private(list, true);
1397 }
#define IsPointerList(l)
Definition: list.c:54
#define Assert(condition)
Definition: c.h:738
static void list_free_private(List *list, bool deep)
Definition: list.c:1350

◆ list_head()

static ListCell* list_head ( const List l)
inlinestatic

Definition at line 125 of file pg_list.h.

References List::elements.

Referenced by analyzeCTE(), appendTypeNameToBuffer(), arrayexpr_startup_fn(), assign_hypothetical_collations(), ATAddForeignKeyConstraint(), boolexpr_startup_fn(), build_index_tlist(), buildRelationAliases(), CheckRADIUSAuth(), checkWellFormedRecursionWalker(), coerce_record_to_complex(), compare_tlist_datatypes(), ComputeIndexAttrs(), consider_groupingsets_paths(), ConstructTupleDescriptor(), cost_bitmap_and_node(), cost_bitmap_or_node(), create_ctas_nodata(), create_mergejoin_plan(), create_modifytable_path(), DefineView(), deparseOpExpr(), deparseSubscriptingRef(), do_analyze_rel(), dump_getdiag(), examine_variable(), exec_stmt_raise(), ExecInitJunkFilterConversion(), expand_targetlist(), expandRTE(), extract_rollup_sets(), fix_indexqual_operand(), flatten_set_variable_args(), FormIndexDatum(), FormPartitionKeyDatum(), funcname_signature_string(), generate_append_tlist(), generate_setop_grouplist(), generateClonedIndexStmt(), get_qual_for_hash(), get_qual_for_range(), get_range_nulltest(), get_steps_using_prefix(), get_update_query_targetlist_def(), has_partition_attrs(), intorel_startup(), join_search_one_level(), jsonb_path_query_internal(), lcons(), lcons_int(), lcons_oid(), list_startup_fn(), make_inner_pathkeys_for_merge(), makeDependencyGraphWalker(), match_index_to_operand(), NameListToQuotedString(), NameListToString(), OverrideSearchPathMatchesCurrent(), parse_hba_line(), parse_ident_line(), perform_pruning_base_step(), pg_get_indexdef_worker(), pg_get_partkeydef_worker(), postprocess_setop_tlist(), PreCommit_Notify(), print_function_arguments(), printSubscripts(), process_startup_options(), query_is_distinct_for(), RelationBuildPartitionKey(), SendRowDescriptionCols_3(), set_baserel_partition_key_exprs(), sort_inner_and_outer(), tfuncLoadRows(), tlist_matches_tupdesc(), tlist_same_collations(), tlist_same_datatypes(), transformAssignedExpr(), transformUpdateTargetList(), trim_mergeclauses_for_inner_pathkeys(), try_partitionwise_join(), and TypeNameListToString().

126 {
127  return l ? &l->elements[0] : NULL;
128 }
ListCell * elements
Definition: pg_list.h:55

◆ list_insert_nth()

List* list_insert_nth ( List list,
int  pos,
void *  datum 
)

Definition at line 400 of file list.c.

References Assert, check_list_invariants, insert_new_cell(), IsPointerList, lfirst, sort-test::list, list_make1, and NIL.

Referenced by add_partial_path(), add_path(), and merge_clump().

401 {
402  if (list == NIL)
403  {
404  Assert(pos == 0);
405  return list_make1(datum);
406  }
407  Assert(IsPointerList(list));
408  lfirst(insert_new_cell(list, pos)) = datum;
409  check_list_invariants(list);
410  return list;
411 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
static ListCell * insert_new_cell(List *list, int pos)
Definition: list.c:379
#define list_make1(x1)
Definition: pg_list.h:227
#define IsPointerList(l)
Definition: list.c:54
#define Assert(condition)
Definition: c.h:738
#define lfirst(lc)
Definition: pg_list.h:190

◆ list_insert_nth_int()

List* list_insert_nth_int ( List list,
int  pos,
int  datum 
)

Definition at line 414 of file list.c.

References Assert, check_list_invariants, insert_new_cell(), IsIntegerList, lfirst_int, sort-test::list, list_make1_int, and NIL.

415 {
416  if (list == NIL)
417  {
418  Assert(pos == 0);
419  return list_make1_int(datum);
420  }
421  Assert(IsIntegerList(list));
422  lfirst_int(insert_new_cell(list, pos)) = datum;
423  check_list_invariants(list);
424  return list;
425 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
static ListCell * insert_new_cell(List *list, int pos)
Definition: list.c:379
#define IsIntegerList(l)
Definition: list.c:55
#define lfirst_int(lc)
Definition: pg_list.h:191
#define list_make1_int(x1)
Definition: pg_list.h:238
#define Assert(condition)
Definition: c.h:738

◆ list_insert_nth_oid()

List* list_insert_nth_oid ( List list,
int  pos,
Oid  datum 
)

Definition at line 428 of file list.c.

References Assert, check_list_invariants, insert_new_cell(), IsOidList, lfirst_oid, sort-test::list, list_make1_oid, and NIL.

429 {
430  if (list == NIL)
431  {
432  Assert(pos == 0);
433  return list_make1_oid(datum);
434  }
435  Assert(IsOidList(list));
436  lfirst_oid(insert_new_cell(list, pos)) = datum;
437  check_list_invariants(list);
438  return list;
439 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
static ListCell * insert_new_cell(List *list, int pos)
Definition: list.c:379
#define list_make1_oid(x1)
Definition: pg_list.h:249
#define IsOidList(l)
Definition: list.c:56
#define Assert(condition)
Definition: c.h:738
#define lfirst_oid(lc)
Definition: pg_list.h:192

◆ list_intersection()

List* list_intersection ( const List list1,
const List list2 
)

Definition at line 1018 of file list.c.

References Assert, check_list_invariants, IsPointerList, lappend(), lfirst, list_member(), and NIL.

Referenced by find_nonnullable_vars_walker(), and reduce_outer_joins_pass2().

1019 {
1020  List *result;
1021  const ListCell *cell;
1022 
1023  if (list1 == NIL || list2 == NIL)
1024  return NIL;
1025 
1026  Assert(IsPointerList(list1));
1027  Assert(IsPointerList(list2));
1028 
1029  result = NIL;
1030  foreach(cell, list1)
1031  {
1032  if (list_member(list2, lfirst(cell)))
1033  result = lappend(result, lfirst(cell));
1034  }
1035 
1036  check_list_invariants(result);
1037  return result;
1038 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
bool list_member(const List *list, const void *datum)
Definition: list.c:613
#define IsPointerList(l)
Definition: list.c:54
List * lappend(List *list, void *datum)
Definition: list.c:321
#define Assert(condition)
Definition: c.h:738
#define lfirst(lc)
Definition: pg_list.h:190
Definition: pg_list.h:50

◆ list_intersection_int()

List* list_intersection_int ( const List list1,
const List list2 
)

Definition at line 1044 of file list.c.

References Assert, check_list_invariants, IsIntegerList, lappend_int(), lfirst_int, list_member_int(), and NIL.

Referenced by parseCheckAggregates().

1045 {
1046  List *result;
1047  const ListCell *cell;
1048 
1049  if (list1 == NIL || list2 == NIL)
1050  return NIL;
1051 
1052  Assert(IsIntegerList(list1));
1053  Assert(IsIntegerList(list2));
1054 
1055  result = NIL;
1056  foreach(cell, list1)
1057  {
1058  if (list_member_int(list2, lfirst_int(cell)))
1059  result = lappend_int(result, lfirst_int(cell));
1060  }
1061 
1062  check_list_invariants(result);
1063  return result;
1064 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:77
#define IsIntegerList(l)
Definition: list.c:55
#define lfirst_int(lc)
Definition: pg_list.h:191
bool list_member_int(const List *list, int datum)
Definition: list.c:654
List * lappend_int(List *list, int datum)
Definition: list.c:339
#define Assert(condition)
Definition: c.h:738
Definition: pg_list.h:50

◆ list_length()

static int list_length ( const List l)
inlinestatic

Definition at line 169 of file pg_list.h.

References List::length.

Referenced by _copyMergeJoin(), _outForeignKeyOptInfo(), _outMergeJoin(), _outPathTarget(), _readMergeJoin(), acquire_inherited_sample_rows(), add_child_join_rel_equivalences(), add_child_rel_equivalences(), add_column_to_pathtarget(), add_function_defaults(), add_paths_to_append_rel(), add_paths_to_grouping_rel(), add_rte_to_flat_rtable(), add_security_quals(), add_sp_item_to_pathtarget(), add_to_flat_tlist(), add_with_check_options(), AddEventToPendingNotifies(), addRangeTableEntry(), addRangeTableEntryForCTE(), addRangeTableEntryForENR(), addRangeTableEntryForFunction(), addRangeTableEntryForJoin(), addRangeTableEntryForRelation(), addRangeTableEntryForSubquery(), addRangeTableEntryForTableFunc(), addRangeTableEntryForValues(), AddRelationNewConstraints(), AddRoleMems(), adjust_appendrel_attrs_mutator(), adjust_inherited_tlist(), adjust_paths_for_srfs(), AlterDatabase(), AlterPublicationOptions(), AlterPublicationTables(), AlterSubscription_refresh(), analyzeCTETargetList(), apply_tlist_labeling(), ApplyRetrieveRule(), assign_hypothetical_collations(), assign_ordered_set_collations(), assign_param_for_placeholdervar(), assign_param_for_var(), assign_special_exec_param(), ATAddCheckConstraint(), ATAddForeignKeyConstraint(), ATExecAddColumn(), ATExecAlterColumnType(), ATPrepChangePersistence(), AttachPartitionEnsureIndexes(), BeginCopy(), BeginCopyFrom(), btvalidate(), build_local_reloptions(), build_merged_partition_bounds(), build_pertrans_for_aggref(), build_remote_returning(), build_simple_rel(), build_subplan(), build_tlist_index(), build_tlist_index_other_vars(), BuildDescForRelation(), BuildDescFromLists(), buildNSItemFromLists(), buildNSItemFromTupleDesc(), buildRelationAliases(), BuildRelationExtStatistics(), buildSubPlanHash(), cached_plan_cost(), check_hashjoinable(), check_mergejoinable(), check_selective_binary_conversion(), check_sql_fn_retval(), check_temp_tablespaces(), check_ungrouped_columns_walker(), CheckIndexCompatible(), CheckRADIUSAuth(), choose_bitmap_and(), choose_hashed_setop(), ChoosePortalStrategy(), classify_index_clause_usage(), clause_is_strict_for(), clauselist_selectivity_simple(), cmp_list_len_asc(), coerce_fn_result_column(), common_prefix_cmp(), commute_restrictinfo(), CommuteOpExpr(), compute_partition_bounds(), compute_semijoin_info(), ComputeIndexAttrs(), connect_pg_server(), consider_groupingsets_paths(), consider_index_join_clauses(), consider_index_join_outer_rels(), convert_ANY_sublink_to_join(), convert_EXISTS_sublink_to_join(), convert_requires_to_datum(), convert_subquery_pathkeys(), convert_testexpr_mutator(), cookConstraint(), copy_pathtarget(), CopyMultiInsertInfoFlush(), CopyOneRowTo(), CopyTo(), count_rowexpr_columns(), create_agg_path(), create_agg_plan(), create_append_path(), create_append_plan(), create_bitmap_subplan(), create_ctescan_plan(), create_degenerate_grouping_paths(), create_distinct_paths(), create_foreign_modify(), create_group_path(), create_group_plan(), create_groupingsets_path(), create_groupingsets_plan(), create_hashjoin_plan(), create_indexscan_plan(), create_limit_plan(), create_list_bounds(), create_merge_append_path(), create_merge_append_plan(), create_mergejoin_plan(), create_modifytable_path(), create_ordered_paths(), create_partial_grouping_paths(), create_setop_path(), create_tidscan_plan(), create_unique_path(), create_unique_plan(), create_windowagg_path(), create_windowagg_plan(), CreateFunction(), CreatePublication(), CreateStatistics(), CreateTrigger(), current_schemas(), currtid_for_view(), deconstruct_recurse(), DeconstructQualifiedName(), DefineAggregate(), DefineCollation(), DefineDomain(), DefineIndex(), DefineQueryRewrite(), DefineRelation(), DefineVirtualRelation(), DelRoleMems(), deparse_context_for_plan_tree(), deparseDistinctExpr(), deparseOpExpr(), deparseRangeTblRef(), deparseScalarArrayOpExpr(), dependencies_clauselist_selectivity(), dependency_is_compatible_clause(), do_analyze_rel(), does_not_exist_skipping(), domainAddConstraint(), eclass_useful_for_merging(), EnumValuesCreate(), equalRSDesc(), estimate_array_length(), estimate_num_groups(), estimate_path_cost_size(), EstimateReindexStateSpace(), eval_const_expressions_mutator(), EvalPlanQualBegin(), EvalPlanQualStart(), EvaluateParams(), EventTriggerAlterTableEnd(), examine_clause_args(), examine_simple_variable(), exec_eval_using_params(), exec_parse_message(), exec_save_simple_expr(), exec_simple_check_plan(), exec_simple_query(), exec_stmt_call(), ExecBuildAggTrans(), ExecCreatePartitionPruneState(), ExecCreateTableAs(), ExecEvalXmlExpr(), ExecHashTableCreate(), ExecIndexBuildScanKeys(), ExecInitAgg(), ExecInitAlternativeSubPlan(), ExecInitAppend(), ExecInitBitmapAnd(), ExecInitBitmapOr(), ExecInitExprRec(), ExecInitFunc(), ExecInitFunctionScan(), ExecInitIndexScan(), ExecInitMergeAppend(), ExecInitMergeJoin(), ExecInitModifyTable(), ExecInitPartitionInfo(), ExecInitProjectSet(), ExecInitPruningContext(), ExecInitRangeTable(), ExecInitSubPlan(), ExecInitSubscriptingRef(), ExecInitValuesScan(), ExecInitWindowAgg(), ExecMakeTableFunctionResult(), ExecOpenIndices(), ExecRefreshMatView(), ExecScanSubPlan(), ExecSecLabelStmt(), ExecSetParamPlan(), ExecSupportsMarkRestore(), ExecTargetListLength(), ExecTypeFromExprList(), ExecuteCallStmt(), ExecuteQuery(), ExecuteTruncateGuts(), expand_function_arguments(), expand_grouping_sets(), expand_groupingset_node(), expand_indexqual_rowcompare(), expand_inherited_rtentry(), expand_single_inheritance_child(), ExpandColumnRefStar(), ExpandIndirectionStar(), expandRecordVariable(), expandRTE(), expandTupleDesc(), ExplainCustomChildren(), ExplainNode(), ExplainOneUtility(), ExplainTargetRel(), ExportSnapshot(), exprIsLengthCoercion(), extract_grouping_collations(), extract_grouping_cols(), extract_grouping_ops(), extract_jsp_path_expr(), extract_rollup_sets(), fetch_table_list(), filter_list_to_array(), final_cost_mergejoin(), finalize_plan(), find_all_inheritors(), find_duplicate_ors(), find_expr_references_walker(), find_install_path(), find_join_rel(), find_minmax_aggs_walker(), findTargetlistEntrySQL92(), fireRIRrules(), fix_indexqual_clause(), fix_param_node(), fix_scan_expr_mutator(), fix_upper_expr_mutator(), flatten_join_alias_vars_mutator(), flatten_set_variable_args(), flatten_simple_union_all(), for_both_cell_setup(), for_each_cell_setup(), foreign_grouping_ok(), foreign_join_ok(), func_get_detail(), funcname_signature_string(), gather_grouping_paths(), gen_partprune_steps_internal(), gen_prune_step_op(), gen_prune_steps_from_opexps(), generate_append_tlist(), generate_base_implied_equalities(), generate_base_implied_equalities_const(), generate_implied_equalities_for_column(), generate_join_implied_equalities(), generate_join_implied_equalities_for_ecs(), generate_mergejoin_paths(), generate_new_exec_param(), generate_nonunion_paths(), generate_series_int4_support(), generate_series_int8_support(), generate_union_paths(), generate_useful_gather_paths(), genericcostestimate(), geqo_eval(), get_agg_expr(), get_aggregate_argtypes(), get_call_expr_arg_stable(), get_call_expr_argtype(), get_eclass_for_sort_expr(), get_expr_result_type(), get_foreign_key_join_selectivity(), get_from_clause_item(), get_func_expr(), get_join_variables(), get_matching_partitions(), get_name_for_var_field(), get_number_of_groups(), get_object_address_attrdef(), get_object_address_attribute(), get_object_address_defacl(), get_object_address_opf_member(), get_object_address_relobject(), get_oper_expr(), get_partition_qual_relid(), get_qual_for_range(), get_query_def(), get_relation_foreign_keys(), get_restriction_variable(), get_rightop(), get_rtable_name(), get_rte_attribute_is_dropped(), get_rte_attribute_name(), get_rule_expr(), get_rule_groupingset(), get_simple_binary_op_name(), get_simple_values_rte(), get_singleton_append_subpath(), get_steps_using_prefix(), get_steps_using_prefix_recurse(), get_update_query_targetlist_def(), get_useful_pathkeys_for_relation(), get_variable(), get_view_query(), get_windowfunc_expr(), getIdentitySequence(), getInsertSelectQuery(), GetRTEByRangeTablePosn(), getTokenTypes(), gimme_tree(), gincostestimate(), gistbufferinginserttuples(), gistfinishsplit(), gistRelocateBuildBuffersOnSplit(), grouping_planner(), has_relevant_eclass_joinclause(), hash_ok_operator(), hashvalidate(), have_relevant_eclass_joinclause(), have_relevant_joinclause(), identify_join_columns(), inheritance_planner(), init_sexpr(), initial_cost_hashjoin(), initialize_peragg(), InitPlan(), inline_function(), inline_set_returning_function(), interpret_AS_clause(), interpret_function_parameter_list(), interval_support(), is_safe_append_member(), is_simple_values(), is_strict_saop(), IsTidEqualAnyClause(), IsTidEqualClause(), IsTransactionExitStmtList(), IsTransactionStmtList(), JsonValueListIsEmpty(), JsonValueListLength(), like_regex_support(), list_deduplicate_oid(), list_delete_last(), list_sort(), list_truncate(), LookupFuncWithArgs(), LookupOperWithArgs(), LookupTypeNameExtended(), make_ands_explicit(), make_jsp_expr_node_args(), make_modifytable(), make_partition_op_expr(), make_partition_pruneinfo(), make_pathtarget_from_tlist(), make_recursive_union(), make_rel_from_joinlist(), make_restrictinfo_internal(), make_row_comparison_op(), make_row_distinct_op(), make_ruledef(), make_setop(), make_setop_translation_list(), make_sort_from_groupcols(), make_sort_from_sortclauses(), make_sort_input_target(), make_union_unique(), make_unique_from_pathkeys(), make_unique_from_sortclauses(), make_viewdef(), MakeConfigurationMapping(), makeRangeVarFromNameList(), makeWholeRowVar(), markRTEForSelectPriv(), match_clause_to_partition_key(), match_foreign_keys_to_quals(), match_opclause_to_indexcol(), MatchNamedCall(), mcv_get_match_bitmap(), merge_clump(), merge_list_bounds(), merge_range_bounds(), MergeAttributes(), MJExamineQuals(), network_subset_support(), NextCopyFrom(), numeric_support(), operator_precedence_group(), operator_predicate_proof(), order_qual_clauses(), ordered_set_startup(), owningrel_does_not_exist_skipping(), parse_hba_line(), parse_tsquery(), parseCheckAggregates(), ParseFuncOrColumn(), parseLocalRelOptions(), pathkeys_count_contained_in(), perform_base_backup(), perform_pruning_base_step(), perform_pruning_combine_step(), PerformCursorOpen(), pg_get_function_arg_default(), pg_get_object_address(), pg_get_publication_tables(), pg_listening_channels(), pg_partition_ancestors(), pg_partition_tree(), pgoutput_startup(), plpgsql_parse_cwordrowtype(), plpgsql_parse_cwordtype(), PLy_abort_open_subtransactions(), PLy_procedure_call(), policy_role_list_to_array(), postgresAddForeignUpdateTargets(), postgresBeginDirectModify(), postgresBeginForeignScan(), postgresExplainForeignScan(), predicate_classify(), predicate_implied_by(), predicate_refuted_by(), prepare_sort_from_pathkeys(), PrepareQuery(), PrepareTempTablespaces(), preprocess_groupclause(), preprocess_grouping_sets(), preprocess_minmax_aggregates(), preprocess_targetlist(), print_expr(), print_function_arguments(), ProcedureCreate(), process_duplicate_ors(), process_owned_by(), processIndirection(), processTypesSpec(), prune_append_rel_partitions(), publicationListToArray(), pull_up_constant_function(), pull_up_simple_subquery(), pull_up_simple_union_all(), pull_up_simple_values(), pull_up_sublinks_qual_recurse(), pullup_replace_vars_callback(), query_is_distinct_for(), query_planner(), rebuild_fdw_scan_tlist(), ReceiveCopyBegin(), recheck_cast_function_args(), reconsider_full_join_clause(), reduce_outer_joins_pass2(), refresh_matview_datafill(), regnamespacein(), regrolein(), relation_excluded_by_constraints(), relation_has_unique_index_for(), RelationBuildPartitionDesc(), remap_groupColIdx(), remove_dbtablespaces(), remove_useless_groupby_columns(), remove_useless_results_recurse(), RemoveRelations(), reorder_function_arguments(), reorder_grouping_sets(), replace_domain_constraint_value(), replace_empty_jointree(), replace_outer_agg(), replace_outer_grouping(), resolve_column_ref(), resolve_special_varno(), RewriteQuery(), rewriteRuleAction(), rewriteTargetListUD(), rewriteTargetView(), rewriteValuesRTE(), scalararraysel(), SearchCatCacheList(), select_active_windows(), select_outer_pathkeys_for_merge(), selectColorTrigrams(), SendCopyBegin(), SendNegotiateProtocolVersion(), SerializeReindexState(), set_append_references(), set_cte_pathlist(), set_deparse_context_plan(), set_deparse_for_query(), set_join_column_names(), set_mergeappend_references(), set_plan_references(), set_plan_refs(), set_relation_column_names(), set_rtable_names(), set_simple_column_names(), set_subquery_pathlist(), set_using_names(), set_values_size_estimates(), setup_simple_rel_arrays(), show_grouping_sets(), show_incremental_sort_group_info(), show_plan_tlist(), show_sort_group_keys(), show_tablesample(), show_upper_qual(), simplify_boolean_equality(), sort_inner_and_outer(), SPI_cursor_open_internal(), SPI_is_cursor_plan(), SPI_plan_get_cached_plan(), split_pathtarget_walker(), sql_fn_post_column_ref(), SS_make_initplan_from_plan(), SS_process_ctes(), standard_ExecutorStart(), standard_join_search(), standard_planner(), standard_qp_callback(), statext_is_compatible_clause_internal(), statext_mcv_clauselist_selectivity(), StoreRelCheck(), strlist_to_textarray(), subquery_planner(), tablesample_init(), TemporalSimplify(), test_predtest(), TidExprListCreate(), TidListEval(), tlist_same_exprs(), to_regnamespace(), to_regrole(), toast_open_indexes(), trackDroppedObjectsNeeded(), transformAExprBetween(), transformAExprIn(), transformAExprOp(), transformAggregateCall(), transformColumnDefinition(), transformColumnRef(), transformFromClauseItem(), transformGroupingFunc(), transformGroupingSet(), transformIndexConstraint(), transformIndexStmt(), transformInsertRow(), transformInsertStmt(), transformJoinUsingClause(), transformMultiAssignRef(), transformPartitionBound(), transformPartitionRangeBounds(), transformPartitionSpec(), transformRangeFunction(), transformRangeTableFunc(), transformRangeTableSample(), transformRowExpr(), transformRuleStmt(), transformSetOperationStmt(), transformSetOperationTree(), transformSubLink(), transformTableLikeClause(), transformValuesClause(), transformWindowDefinitions(), transformWindowFuncCall(), transformWithClause(), trivial_subqueryscan(), truncate_useless_pathkeys(), tsvector_update_trigger(), TypeGetTupleDesc(), typenameTypeMod(), typeStringToTypeName(), unify_hypothetical_args(), vac_open_indexes(), vacuum(), ValuesNext(), varbit_support(), varchar_support(), verify_option_list_length(), view_cols_are_auto_updatable(), view_query_is_auto_updatable(), and WaitForLockersMultiple().

170 {
171  return l ? l->length : 0;
172 }
int length
Definition: pg_list.h:53

◆ list_make1_impl()

List* list_make1_impl ( NodeTag  t,
ListCell  datum1 
)

Definition at line 233 of file list.c.

References check_list_invariants, List::elements, sort-test::list, and new_list().

234 {
235  List *list = new_list(t, 1);
236 
237  list->elements[0] = datum1;
238  check_list_invariants(list);
239  return list;
240 }
#define check_list_invariants(l)
Definition: list.c:77
ListCell * elements
Definition: pg_list.h:55
Definition: pg_list.h:50
static List * new_list(NodeTag type, int min_size)
Definition: list.c:88

◆ list_make2_impl()

List* list_make2_impl ( NodeTag  t,
ListCell  datum1,
ListCell  datum2 
)

Definition at line 243 of file list.c.

References check_list_invariants, List::elements, sort-test::list, and new_list().

244 {
245  List *list = new_list(t, 2);
246 
247  list->elements[0] = datum1;
248  list->elements[1] = datum2;
249  check_list_invariants(list);
250  return list;
251 }
#define check_list_invariants(l)
Definition: list.c:77
ListCell * elements
Definition: pg_list.h:55
Definition: pg_list.h:50
static List * new_list(NodeTag type, int min_size)
Definition: list.c:88

◆ list_make3_impl()

List* list_make3_impl ( NodeTag  t,
ListCell  datum1,
ListCell  datum2,
ListCell  datum3 
)

Definition at line 254 of file list.c.

References check_list_invariants, List::elements, sort-test::list, and new_list().

256 {
257  List *list = new_list(t, 3);
258 
259  list->elements[0] = datum1;
260  list->elements[1] = datum2;
261  list->elements[2] = datum3;
262  check_list_invariants(list);
263  return list;
264 }
#define check_list_invariants(l)
Definition: list.c:77
ListCell * elements
Definition: pg_list.h:55
Definition: pg_list.h:50
static List * new_list(NodeTag type, int min_size)
Definition: list.c:88

◆ list_make4_impl()

List* list_make4_impl ( NodeTag  t,
ListCell  datum1,
ListCell  datum2,
ListCell  datum3,
ListCell  datum4 
)

Definition at line 267 of file list.c.

References check_list_invariants, List::elements, sort-test::list, and new_list().

269 {
270  List *list = new_list(t, 4);
271 
272  list->elements[0] = datum1;
273  list->elements[1] = datum2;
274  list->elements[2] = datum3;
275  list->elements[3] = datum4;
276  check_list_invariants(list);
277  return list;
278 }
#define check_list_invariants(l)
Definition: list.c:77
ListCell * elements
Definition: pg_list.h:55
Definition: pg_list.h:50
static List * new_list(NodeTag type, int min_size)
Definition: list.c:88

◆ list_member()

bool list_member ( const List list,
const void *  datum 
)

Definition at line 613 of file list.c.

References Assert, check_list_invariants, equal(), IsPointerList, and lfirst.

Referenced by add_new_column_to_pathtarget(), build_minmax_path(), create_bitmap_scan_plan(), ec_member_matches_foreign(), find_window_functions_walker(), group_by_has_partkey(), infer_arbiter_indexes(), list_append_unique(), list_concat_unique(), list_difference(), list_intersection(), list_union(), process_duplicate_ors(), split_pathtarget_at_srfs(), and split_pathtarget_walker().

614 {
615  const ListCell *cell;
616 
617  Assert(IsPointerList(list));
618  check_list_invariants(list);
619 
620  foreach(cell, list)
621  {
622  if (equal(lfirst(cell), datum))
623  return true;
624  }
625 
626  return false;
627 }
bool equal(const void *a, const void *b)
Definition: equalfuncs.c:3033
#define check_list_invariants(l)
Definition: list.c:77
#define IsPointerList(l)
Definition: list.c:54
#define Assert(condition)
Definition: c.h:738
#define lfirst(lc)
Definition: pg_list.h:190

◆ list_member_int()

bool list_member_int ( const List list,
int  datum 
)

Definition at line 654 of file list.c.

References Assert, check_list_invariants, IsIntegerList, and lfirst_int.

Referenced by BeginCopy(), BeginCopyFrom(), check_ungrouped_columns_walker(), CopyGetAttnums(), estimate_num_groups(), init_returning_filter(), list_append_unique_int(), list_concat_unique_int(), list_difference_int(), list_intersection_int(), list_union_int(), max_parallel_hazard_walker(), parseCheckAggregates(), reorder_grouping_sets(), and transformDistinctOnClause().

655 {
656  const ListCell *cell;
657 
658  Assert(IsIntegerList(list));
659  check_list_invariants(list);
660 
661  foreach(cell, list)
662  {
663  if (lfirst_int(cell) == datum)
664  return true;
665  }
666 
667  return false;
668 }
#define check_list_invariants(l)
Definition: list.c:77
#define IsIntegerList(l)
Definition: list.c:55
#define lfirst_int(lc)
Definition: pg_list.h:191
#define Assert(condition)
Definition: c.h:738

◆ list_member_oid()

bool list_member_oid ( const List list,
Oid  datum 
)

Definition at line 674 of file list.c.

References Assert, check_list_invariants, IsOidList, and lfirst_oid.

Referenced by AfterTriggerSaveEvent(), AlterTableMoveAll(), apply_handle_truncate(), ATExecAddInherit(), ATExecAttachPartition(), BeginCopy(), CheckAttributeType(), CloneFkReferenced(), CloneFkReferencing(), CollationIsVisible(), ConversionIsVisible(), DefineRelation(), ec_member_matches_indexcol(), ExecAlterObjectDependsStmt(), ExecCheckIndexConstraints(), ExecInitPartitionInfo(), ExecInsertIndexTuples(), ExecuteTruncate(), fireRIRrules(), FunctionIsVisible(), get_rel_sync_entry(), get_transform_fromsql(), get_transform_tosql(), has_privs_of_role(), hashvalidate(), have_partkey_equi_join(), heap_truncate_check_FKs(), heap_truncate_find_FKs(), inline_function(), is_member_of_role(), is_member_of_role_nosuper(), list_append_unique_oid(), list_concat_unique_oid(), list_difference_oid(), list_union_oid(), LockViewRecurse_walker(), lookup_shippable(), OpclassIsVisible(), OpenTableList(), OperatorIsVisible(), OpfamilyIsVisible(), pgstat_db_requested(), pgstat_recv_inquiry(), PlanCacheRelCallback(), recomputeNamespacePath(), ReindexIsProcessingIndex(), relation_has_unique_index_for(), relation_is_updatable(), RelationIsVisible(), RememberConstraintForRebuilding(), RememberIndexForRebuilding(), StatisticsObjIsVisible(), TSConfigIsVisible(), TSDictionaryIsVisible(), TSParserIsVisible(), TSTemplateIsVisible(), typeInheritsFrom(), and TypeIsVisible().

675 {
676  const ListCell *cell;
677 
678  Assert(IsOidList(list));
679  check_list_invariants(list);
680 
681  foreach(cell, list)
682  {
683  if (lfirst_oid(cell) == datum)
684  return true;
685  }
686 
687  return false;
688 }
#define check_list_invariants(l)
Definition: list.c:77
#define IsOidList(l)
Definition: list.c:56
#define Assert(condition)
Definition: c.h:738
#define lfirst_oid(lc)
Definition: pg_list.h:192

◆ list_member_ptr()

bool list_member_ptr ( const List list,
const void *  datum 
)

Definition at line 634 of file list.c.

References Assert, check_list_invariants, IsPointerList, and lfirst.

Referenced by create_bitmap_scan_plan(), create_tidscan_plan(), get_foreign_key_join_selectivity(), list_append_unique_ptr(), list_concat_unique_ptr(), list_difference_ptr(), list_union_ptr(), postgresGetForeignPlan(), preprocess_groupclause(), and remove_join_clause_from_rels().

635 {
636  const ListCell *cell;
637 
638  Assert(IsPointerList(list));
639  check_list_invariants(list);
640 
641  foreach(cell, list)
642  {
643  if (lfirst(cell) == datum)
644  return true;
645  }
646 
647  return false;
648 }
#define check_list_invariants(l)
Definition: list.c:77
#define IsPointerList(l)
Definition: list.c:54
#define Assert(condition)
Definition: c.h:738
#define lfirst(lc)
Definition: pg_list.h:190

◆ list_nth()

static void* list_nth ( const List list,
int  n 
)
inlinestatic

Definition at line 277 of file pg_list.h.

References Assert, IsA, lfirst, and list_nth_cell().

Referenced by add_child_join_rel_equivalences(), add_child_rel_equivalences(), adjust_appendrel_attrs_mutator(), adjust_inherited_tlist(), adjust_partition_tlist(), apply_handle_update(), ATAddForeignKeyConstraint(), consider_index_join_outer_rels(), convert_subquery_pathkeys(), convert_testexpr_mutator(), errorMissingColumn(), eval_const_expressions_mutator(), exec_rt_fetch(), ExecInitAppend(), ExecInitCteScan(), ExecInitMergeAppend(), ExecInitModifyTable(), ExecInitSubPlan(), expand_indexqual_rowcompare(), expand_single_inheritance_child(), expandRecordVariable(), expandRTE(), ExplainTargetRel(), finalize_plan(), find_expr_references_walker(), find_hash_columns(), find_param_referent(), fix_param_node(), flatten_join_alias_vars_mutator(), generate_implied_equalities_for_column(), generate_join_implied_equalities(), get_call_expr_arg_stable(), get_call_expr_argtype(), get_name_for_var_field(), get_rtable_name(), get_rte_attribute_is_dropped(), get_rte_attribute_name(), get_variable(), gimme_tree(), gistfinishsplit(), has_dangerous_join_using(), has_relevant_eclass_joinclause(), have_relevant_eclass_joinclause(), infer_collation_opclass_match(), match_eclasses_to_foreign_key_col(), merge_clump(), MergeAttributes(), pg_get_function_arg_default(), pg_listening_channels(), postgresBeginDirectModify(), postgresBeginForeignModify(), postgresBeginForeignScan(), postgresExplainDirectModify(), postgresExplainForeignModify(), postgresExplainForeignScan(), postgresGetForeignPlan(), postgresPlanDirectModify(), postgresPlanForeignModify(), reorder_grouping_sets(), resolve_special_varno(), set_cte_pathlist(), set_deparse_plan(), set_join_column_names(), set_relation_column_names(), set_using_names(), show_modifytable_info(), substitute_actual_parameters_mutator(), substitute_actual_srf_parameters_mutator(), transformInsertRow(), transformMultiAssignRef(), transformPartitionRangeBounds(), transformSetOperationStmt(), TypeGetTupleDesc(), WinGetFuncArgCurrent(), WinGetFuncArgInFrame(), and WinGetFuncArgInPartition().

278 {
279  Assert(IsA(list, List));
280  return lfirst(list_nth_cell(list, n));
281 }
#define IsA(nodeptr, _type_)
Definition: nodes.h:580
static ListCell * list_nth_cell(const List *list, int n)
Definition: pg_list.h:265
#define Assert(condition)
Definition: c.h:738
#define lfirst(lc)
Definition: pg_list.h:190
Definition: pg_list.h:50

◆ list_nth_cell()

static ListCell* list_nth_cell ( const List list,
int  n 
)
inlinestatic

Definition at line 265 of file pg_list.h.

References Assert, List::elements, and NIL.

Referenced by build_subplan(), expandTupleDesc(), find_all_inheritors(), inheritance_planner(), list_nth(), list_nth_int(), list_nth_oid(), ProcedureCreate(), split_pathtarget_at_srfs(), split_pathtarget_walker(), and unify_hypothetical_args().

266 {
267  Assert(list != NIL);
268  Assert(n >= 0 && n < list->length);
269  return &list->elements[n];
270 }
#define NIL
Definition: pg_list.h:65
ListCell * elements
Definition: pg_list.h:55
#define Assert(condition)
Definition: c.h:738

◆ list_nth_int()

static int list_nth_int ( const List list,
int  n 
)
inlinestatic

Definition at line 288 of file pg_list.h.

References Assert, IsA, lfirst_int, and list_nth_cell().

Referenced by create_ctescan_plan(), and set_cte_pathlist().

289 {
290  Assert(IsA(list, IntList));
291  return lfirst_int(list_nth_cell(list, n));
292 }
#define IsA(nodeptr, _type_)
Definition: nodes.h:580
static ListCell * list_nth_cell(const List *list, int n)
Definition: pg_list.h:265
#define lfirst_int(lc)
Definition: pg_list.h:191
#define Assert(condition)
Definition: c.h:738

◆ list_nth_oid()

static Oid list_nth_oid ( const List list,
int  n 
)
inlinestatic

Definition at line 299 of file pg_list.h.

References Assert, IsA, lfirst_oid, and list_nth_cell().

Referenced by EstimateParamExecSpace(), expand_indexqual_rowcompare(), get_rte_attribute_is_dropped(), pg_get_publication_tables(), pg_partition_ancestors(), pg_partition_tree(), and SerializeParamExecParams().

300 {
301  Assert(IsA(list, OidList));
302  return lfirst_oid(list_nth_cell(list, n));
303 }
#define IsA(nodeptr, _type_)
Definition: nodes.h:580
static ListCell * list_nth_cell(const List *list, int n)
Definition: pg_list.h:265
#define Assert(condition)
Definition: c.h:738
#define lfirst_oid(lc)
Definition: pg_list.h:192

◆ list_oid_cmp()

int list_oid_cmp ( const ListCell p1,
const ListCell p2 
)

Definition at line 1498 of file list.c.

References lfirst_oid.

Referenced by heap_truncate_find_FKs(), RelationGetIndexList(), and RelationGetStatExtList().

1499 {
1500  Oid v1 = lfirst_oid(p1);
1501  Oid v2 = lfirst_oid(p2);
1502 
1503  if (v1 < v2)
1504  return -1;
1505  if (v1 > v2)
1506  return 1;
1507  return 0;
1508 }
unsigned int Oid
Definition: postgres_ext.h:31
#define lfirst_oid(lc)
Definition: pg_list.h:192

◆ list_second_cell()

static ListCell* list_second_cell ( const List l)
inlinestatic

Definition at line 139 of file pg_list.h.

References List::elements, and List::length.

Referenced by ATCheckPartitionsNotInUse(), consider_groupingsets_paths(), create_groupingsets_plan(), estimate_num_groups(), expand_grouping_sets(), exprTypmod(), get_rule_expr(), JsonValueListInitIterator(), parseCheckAggregates(), and select_common_type().

140 {
141  if (l && l->length >= 2)
142  return &l->elements[1];
143  else
144  return NULL;
145 }
ListCell * elements
Definition: pg_list.h:55
int length
Definition: pg_list.h:53

◆ list_sort()

void list_sort ( List list,
list_sort_comparator  cmp 
)

Definition at line 1481 of file list.c.

References check_list_invariants, List::elements, list_length(), and qsort.

Referenced by create_append_path(), expand_grouping_sets(), heap_truncate_find_FKs(), perform_base_backup(), RelationGetIndexList(), RelationGetStatExtList(), sort_policies_by_name(), and UpdateLogicalMappings().

1482 {
1483  typedef int (*qsort_comparator) (const void *a, const void *b);
1484  int len;
1485 
1486  check_list_invariants(list);
1487 
1488  /* Nothing to do if there's less than two elements */
1489  len = list_length(list);
1490  if (len > 1)
1491  qsort(list->elements, len, sizeof(ListCell), (qsort_comparator) cmp);
1492 }
#define check_list_invariants(l)
Definition: list.c:77
ListCell * elements
Definition: pg_list.h:55
static int list_length(const List *l)
Definition: pg_list.h:169
#define qsort(a, b, c, d)
Definition: port.h:479
static int cmp(const chr *x, const chr *y, size_t len)
Definition: regc_locale.c:742

◆ list_tail()

static ListCell* list_tail ( const List l)
inlinestatic

Definition at line 132 of file pg_list.h.

References List::elements, and List::length.

Referenced by deparseOpExpr(), get_object_address_attribute(), lappend(), lappend_int(), lappend_oid(), and process_owned_by().

133 {
134  return l ? &l->elements[l->length - 1] : NULL;
135 }
ListCell * elements
Definition: pg_list.h:55
int length
Definition: pg_list.h:53

◆ list_third_cell()

static ListCell* list_third_cell ( const List l)
inlinestatic

Definition at line 149 of file pg_list.h.

References List::elements, and List::length.

150 {
151  if (l && l->length >= 3)
152  return &l->elements[2];
153  else
154  return NULL;
155 }
ListCell * elements
Definition: pg_list.h:55
int length
Definition: pg_list.h:53

◆ list_truncate()

List* list_truncate ( List list,
int  new_size 
)

Definition at line 585 of file list.c.

References List::length, sort-test::list, list_length(), and NIL.

Referenced by accumulate_append_subpath(), choose_bitmap_and(), create_append_plan(), create_merge_append_plan(), does_not_exist_skipping(), expand_indexqual_rowcompare(), ExpandIndirectionStar(), expandRTE(), generate_mergejoin_paths(), geqo_eval(), get_object_address_attrdef(), get_object_address_attribute(), get_object_address_opf_member(), get_object_address_relobject(), get_useful_pathkeys_for_relation(), list_delete_last(), owningrel_does_not_exist_skipping(), ParseFuncOrColumn(), process_owned_by(), transformAggregateCall(), transformFromClauseItem(), transformSetOperationStmt(), and truncate_useless_pathkeys().

586 {
587  if (new_size <= 0)
588  return NIL; /* truncate to zero length */
589 
590  /* If asked to effectively extend the list, do nothing */
591  if (new_size < list_length(list))
592  list->length = new_size;
593 
594  /*
595  * Note: unlike the individual-list-cell deletion functions, we don't move
596  * the list cells to new storage, even in DEBUG_LIST_MEMORY_USAGE mode.
597  * This is because none of them can move in this operation, so just like
598  * in the old cons-cell-based implementation, this function doesn't
599  * invalidate any pointers to cells of the list. This is also the reason
600  * for not wiping the memory of the deleted cells: the old code didn't
601  * free them either. Perhaps later we'll tighten this up.
602  */
603 
604  return list;
605 }
#define NIL
Definition: pg_list.h:65
static int list_length(const List *l)
Definition: pg_list.h:169
int length
Definition: pg_list.h:53

◆ list_union()

List* list_union ( const List list1,
const List list2 
)

Definition at line 915 of file list.c.

References Assert, check_list_invariants, IsPointerList, lappend(), lfirst, list_copy(), and list_member().

Referenced by AddRelationNewConstraints(), and process_duplicate_ors().

916 {
917  List *result;
918  const ListCell *cell;
919 
920  Assert(IsPointerList(list1));
921  Assert(IsPointerList(list2));
922 
923  result = list_copy(list1);
924  foreach(cell, list2)
925  {
926  if (!list_member(result,