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_qsort_comparator) (const void *a, const void *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)
 
void lappend_cell (List *list, ListCell *prev, void *datum)
 
void lappend_cell_int (List *list, ListCell *prev, int datum)
 
void lappend_cell_oid (List *list, ListCell *prev, 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_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_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_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)
 
Listlist_qsort (const List *list, list_qsort_comparator cmp)
 

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(), consider_groupingsets_paths(), create_groupingsets_plan(), estimate_num_groups(), expand_grouping_sets(), exprTypmod(), extract_rollup_sets(), 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(), 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(), expandRecordVariable(), expandRelAttrs(), expandRTE(), extractRemainingColumns(), find_param_referent(), fix_indexorderby_references(), fix_indexqual_clause(), flatten_join_alias_vars_mutator(), get_matching_location(), get_number_of_groups(), get_qual_for_range(), get_rule_expr(), get_simple_values_rte(), get_tablefunc(), identify_join_columns(), inheritance_planner(), make_modifytable(), make_row_comparison_op(), make_row_distinct_op(), 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(), and add_path().

◆ 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(), 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_child_rel_equivalences(), 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(), addFamilyMember(), addKey(), addRangeTableEntryForCTE(), addRangeTableEntryForFunction(), addRangeTableEntryForSubquery(), AddRelationNewConstraints(), AddRoleMems(), 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(), 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(), ATPostAlterTypeCleanup(), ATPostAlterTypeParse(), ATRewriteCatalogs(), ATRewriteTable(), ATRewriteTables(), blvalidate(), bms_equal_any(), brinvalidate(), btvalidate(), build_index_pathkeys(), build_index_paths(), build_index_tlist(), build_join_rel_hash(), build_joinrel_tlist(), 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(), 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_selectivity_simple(), CloneFkReferencing(), CloseTableList(), cluster(), coerce_record_to_complex(), colname_is_unique(), colNameToVar(), compare_pathkeys(), compare_tlist_datatypes(), compute_function_attributes(), compute_semijoin_info(), 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(), ConvertTriggerToFK(), CopyGetAttnums(), CopyMultiInsertInfoCleanup(), CopyMultiInsertInfoFlush(), cost_append(), cost_bitmap_and_node(), cost_bitmap_or_node(), 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_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(), determineRecursiveColTypes(), dintdict_init(), dispell_init(), do_analyze_rel(), do_start_worker(), DoCopy(), domain_check_input(), DropConfigurationMapping(), 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(), EvalPlanQualFetchRowMarks(), 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(), ExecInitAppend(), ExecInitBitmapAnd(), ExecInitBitmapOr(), ExecInitCoerceToDomain(), ExecInitExprList(), ExecInitExprRec(), ExecInitFunc(), ExecInitFunctionScan(), ExecInitIndexScan(), ExecInitJunkFilter(), ExecInitJunkFilterConversion(), ExecInitMergeAppend(), 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(), expandRecordVariable(), expandRelAttrs(), 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(), 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_join_using_qual(), 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(), 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(), 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_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_rte_attribute_type(), 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(), getTokenTypes(), gimme_tree(), ginvalidate(), gistbufferinginserttuples(), gistfinishsplit(), 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_relevant_eclass_joinclause(), has_stats_of_kind(), has_unique_index(), hash_inner_and_outer(), hashvalidate(), have_dangerous_phv(), have_join_order_restriction(), have_relevant_eclass_joinclause(), have_relevant_joinclause(), heap_truncate(), heap_truncate_check_FKs(), identify_current_nestloop_params(), identify_join_columns(), 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(), inline_set_returning_functions(), 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(), JsonValueListNext(), JumbleExpr(), lappend(), lappend_cell(), 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(), partkey_is_bool_constant_for_query(), pathkey_is_redundant(), pathkeys_useful_for_merging(), perform_base_backup(), perform_pruning_base_step(), 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_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(), range_table_walker(), 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(), 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(), RTERangeTablePosn(), 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_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(), sort_policies_by_name(), 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_coltypelist(), 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(), 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(), ATRewriteTable(), BeginCopy(), bms_overlap_list(), build_subplan(), BuildDescFromLists(), 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(), 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(), get_from_clause_coldeflist(), get_matching_location(), get_rule_groupingset(), get_tablefunc(), inheritance_planner(), InitPlan(), is_parallel_safe(), JumbleExpr(), lappend_cell_int(), 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(), SyncRepGetNthLatestSyncRecPtr(), SyncRepGetOldestSyncRecPtr(), SyncRepGetSyncStandbysPriority(), 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(), 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(), ATPostAlterTypeParse(), BeginCopy(), brincostestimate(), btcostestimate(), build_tlist_to_deparse(), BuildCachedPlan(), BuildParameterizedTidPaths(), cached_plan_cost(), 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_indexscan_plan(), create_mergejoin_plan(), create_one_window_path(), create_tidscan_plan(), CreateFunction(), CreateTrigger(), DefineAggregate(), DefineCollation(), DefineOpClass(), DefineQueryRewrite(), DefineView(), deparseExplicitTargetList(), errdetail_execute(), eval_const_expressions_mutator(), exec_simple_query(), ExecBuildProjectionInfo(), ExecCleanTargetListLength(), ExecCreatePartitionPruneState(), ExecInitAlternativeSubPlan(), ExecInitHashJoin(), ExecInitLockRows(), ExecInitModifyTable(), ExecInitRangeTable(), 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(), QueryListGetPrimaryStmt(), 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_append_rel_array(), SPI_cursor_open_internal(), standard_planner(), subquery_planner(), TidQualFromRestrictInfoList(), transformAlterTableStmt(), transformCaseExpr(), transformColumnDefinition(), transformContainerSubscripts(), transformIndexConstraint(), transformIndexConstraints(), transformInsertRow(), transformInsertStmt(), transformUpdateTargetList(), transformXmlExpr(), translate_col_privs(), 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(), ATDetachCheckNoForeignKeyRefs(), ATExecAddColumn(), ATExecAlterConstraint(), ATExecChangeOwner(), ATExecDetachPartition(), ATExecDropColumn(), ATExecDropConstraint(), ATExecDropNotNull(), ATExecSetTableSpace(), ATExecValidateConstraint(), ATPostAlterTypeCleanup(), ATPrepAlterColumnType(), ATSimpleRecursion(), AttachPartitionEnsureIndexes(), ATTypedTableRecursion(), BuildDescFromLists(), 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_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(), GetRelationPublicationActions(), heap_truncate(), heap_truncate_check_FKs(), index_concurrently_swap(), index_get_partition(), infer_arbiter_indexes(), insert_ordered_oid(), insert_ordered_unique_oid(), InsertExtensionTuple(), is_admin_of_role(), lappend_cell_oid(), 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_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(), RelationHasUnloggedIndex(), RelationIsVisible(), RelationTruncateIndexes(), RelnameGetRelid(), 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_matches_coltypelist(), tlist_same_collations(), tlist_same_datatypes(), toast_open_indexes(), transformFkeyCheckAttrs(), transformFkeyGetPrimaryKey(), transformRangeTableSample(), transformSetOperationStmt(), transformTableLikeClause(), triggered_change_notification(), TSConfigIsVisible(), TSDictionaryIsVisible(), TSParserIsVisible(), TSTemplateIsVisible(), typeInheritsFrom(), TypeIsVisible(), TypenameGetTypid(), and vac_open_indexes().

◆ lfourth

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

Definition at line 210 of file pg_list.h.

Referenced by LookupTypeName(), 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(), 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(), ConvertTriggerToFK(), CopyMultiInsertInfoFlush(), cost_append(), 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(), CreateExtensionInternal(), 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(), exec_save_simple_expr(), exec_simple_check_plan(), exec_stmt_call(), ExecBuildAggTrans(), ExecIndexBuildScanKeys(), ExecInitAlternativeSubPlan(), ExecInitExprRec(), ExecInitHashJoin(), 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(), flatten_join_using_qual(), 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(), 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(), LookupTypeName(), 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(), mcv_get_match_bitmap(), 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(), 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(), ResolveOpClass(), RewriteQuery(), rewriteTargetView(), rewriteValuesRTE(), rowcomparesel(), scalararraysel(), select_common_type(), set_append_references(), set_deparse_context_planstate(), 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(), statext_is_compatible_clause_internal(), 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(), ATAddCheckConstraint(), ATExecAddColumn(), ATExecAttachPartition(), ATExecColumnDefault(), 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(), choose_bitmap_and(), consider_groupingsets_paths(), convert_combining_aggrefs(), ConvertTriggerToFK(), 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_rtable(), 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_simple_values(), pull_up_sublinks(), 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(), transformFromClauseItem(), 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:297

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.

◆ 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 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(), ConvertTriggerToFK(), cost_qual_eval_walker(), cost_tidscan(), DeconstructQualifiedName(), DefineAggregate(), deparseDistinctExpr(), deparseScalarArrayOpExpr(), dependency_is_compatible_clause(), does_not_exist_skipping(), ExecIndexBuildScanKeys(), ExecInitAlternativeSubPlan(), ExecInitExprRec(), ExecInitHashJoin(), ExecInitSubPlan(), ExpandColumnRefStar(), exprIsLengthCoercion(), flatten_join_using_qual(), 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(), LookupTypeName(), make_row_comparison_op(), makeRangeVarFromNameList(), match_clause_to_partition_key(), match_opclause_to_indexcol(), match_saopclause_to_indexcol(), mcv_get_match_bitmap(), 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(), statext_is_compatible_clause_internal(), 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(), addFkRecurseReferenced(), addFkRecurseReferencing(), addRangeTableEntry(), addRangeTableEntryForCTE(), addRangeTableEntryForENR(), addRangeTableEntryForFunction(), addRangeTableEntryForJoin(), addRangeTableEntryForRelation(), addRangeTableEntryForTableFunc(), addRangeTableEntryForValues(), AddRelationNewConstraints(), addTargetToSortList(), adjust_appendrel_attrs_mutator(), adjust_inherited_tlist(), adjust_partition_tlist(), AfterTriggerEnlargeQueryState(), AfterTriggerFreeQuery(), AfterTriggerSetState(), AlterDomainDefault(), AlterFunction(), AlterOperator(), AlterOpFamilyAdd(), AlterOpFamilyDrop(), AlterPolicy(), AlterPublicationTables(), AlterRole(), AlterTableGetRelOptionsLockLevel(), AlterTableMoveAll(), AlterTSDictionary(), analyzeCTETargetList(), appendTypeNameToBuffer(), apply_child_basequals(), apply_handle_delete(), apply_handle_truncate(), apply_handle_update(), apply_scanjoin_target_to_paths(), ApplyExtensionUpdates(), approx_tuple_count(), assign_aggregate_collations(), assign_collations_walker(), Async_Unlisten(), Async_UnlistenAll(), AsyncExistsPendingNotify(), 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(), AtSubStart_Notify(), 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_partition_info(), build_joinrel_restrictlist(), 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(), BuildIndexInfo(), BuildOnConflictExcludedTargetlist(), buildRelationAliases(), 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_selectivity(), ClearPendingActionsAndNotifies(), 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(), 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(), ConvertTriggerToFK(), copy_table(), CopyFrom(), CopyGetAttnums(), CopyMultiInsertBufferFlush(), CopyMultiInsertInfoInit(), cost_append(), 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(), CreateProceduralLanguage(), 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_rtable(), 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(), EvalPlanQualStart(), EventCacheLookup(), EventTriggerAlterTableStart(), EventTriggerBeginCompleteQuery(), EventTriggerCollectGrant(), EventTriggerCommonSetup(), EventTriggerDDLCommandEnd(), EventTriggerDDLCommandStart(), EventTriggerSQLDrop(), EventTriggerTableRewrite(), examine_simple_variable(), examine_variable(), 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(), ExecInitHashJoin(), 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(), expandRelAttrs(), 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(), extractRemainingColumns(), 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(), 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_broken(), generate_join_implied_equalities_for_ecs(), generate_join_implied_equalities_normal(), 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(), 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_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(), GetCachedPlan(), GetForeignColumnOptions(), GetForeignDataWrapperExtended(), GetForeignServerExtended(), GetForeignTable(), getObjectIdentityParts(), getOwnedSequences(), GetParentedForeignKeyRefs(), GetPublicationRelations(), GetRelationPublications(), getRelationsInNamespace(), getState(), GetSubscriptionNotReadyRelations(), GetSubscriptionRelations(), GetUserMapping(), gimme_tree(), gincostestimate(), gistEmptyAllBuffers(), gistFindPath(), gistfinishsplit(), gistfixsplit(), gistGetNodeBuffer(), gistInitBuildBuffers(), gistplacetopage(), gistProcessEmptyingQueue(), GrantRole(), grouping_planner(), has_indexed_join_quals(), has_unique_index(), has_useful_pathkeys(), hash_inner_and_outer(), 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_join_columns(), 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_params(), init_sql_fcache(), InitDomainConstraintRef(), initialize_mergeclause_eclasses(), InitPlan(), InitResultRelInfo(), InitSync(), inline_cte_walker(), inline_set_returning_function(), inline_set_returning_functions(), innerrel_is_unique(), insert_event_trigger_tuple(), insert_ordered_oid(), insert_ordered_unique_oid(), 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_copy(), list_copy_deep(), list_copy_tail(), list_delete_first(), 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_qsort(), 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(), LookupTypeName(), 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_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(), 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(), 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(), pathkeys_useful_for_merging(), pathkeys_useful_for_ordering(), perform_base_backup(), PerformCursorOpen(), 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_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_Notify(), PreCommit_on_commit_actions(), predicate_implied_by(), predicate_refuted_by(), prep_domain_constraints(), 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_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(), 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(), RelationGetFKeyList(), RelationGetIndexAttrBitmap(), RelationGetIndexExpressions(), RelationGetIndexList(), RelationGetIndexPredicate(), RelationGetPartitionQual(), RelationGetStatExtList(), RelationInitIndexAccessInfo(), remap_to_groupclause_idx(), 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(), ResetReindexPending(), 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_planstate(), set_dummy_rel_pathlist(), set_dummy_tlist_references(), set_foreignscan_references(), set_function_pathlist(), set_mergeappend_references(), set_plan_refs(), set_relation_column_names(), set_rtable_names(), set_simple_column_names(), set_subquery_pathlist(), set_upper_references(), SetDefaultACLsInSchemas(), setup_append_rel_array(), show_eval_params(), show_grouping_set_keys(), 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(), sort_policies_by_name(), 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(), SyncRepGetSyncStandbys(), SyncRepGetSyncStandbysPriority(), SyncRepGetSyncStandbysQuorum(), 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(), 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

◆ ForEachState

◆ ForFiveState

◆ ForFourState

◆ ForThreeState

◆ List

typedef struct List List

◆ list_qsort_comparator

typedef int(* list_qsort_comparator) (const void *a, const void *b)

Definition at line 573 of file pg_list.h.

◆ 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_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(), addFamilyMember(), addFkRecurseReferencing(), addKey(), addKeyToQueue(), addRangeTableEntry(), addRangeTableEntryForCTE(), addRangeTableEntryForENR(), addRangeTableEntryForFunction(), addRangeTableEntryForJoin(), addRangeTableEntryForRelation(), addRangeTableEntryForSubquery(), addRangeTableEntryForTableFunc(), addRangeTableEntryForValues(), AddRelationNewConstraints(), addRTEtoQuery(), 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(), Async_Notify(), ATAddCheckConstraint(), ATExecAddColumn(), ATGetQueueEntry(), 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(), CloneFkReferenced(), CloneFkReferencing(), CloneRowTriggersToPartition(), 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(), ConvertTriggerToFK(), CopyMultiInsertInfoFlush(), CopyMultiInsertInfoSetupBuffer(), create_append_plan(), create_bitmap_scan_plan(), create_bitmap_subplan(), create_ctas_nodata(), create_customscan_plan(), create_degenerate_grouping_paths(), create_groupingsets_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(), eval_const_expressions_mutator(), EvalPlanQualStart(), EventTriggerAlterTableEnd(), EventTriggerCollectAlterDefPrivs(), EventTriggerCollectAlterOpFam(), EventTriggerCollectAlterTableSubcmd(), EventTriggerCollectAlterTSConfig(), EventTriggerCollectCreateOpClass(), EventTriggerCollectGrant(), EventTriggerCollectSimpleCommand(), Exec_ListenCommit(), ExecAllocTableSlot(), ExecEvalXmlExpr(), ExecGetTriggerResultRel(), ExecInitAlternativeSubPlan(), ExecInitExprList(), ExecInitExprRec(), ExecInitHashJoin(), 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(), expandRelAttrs(), 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_join_using_qual(), 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_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_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_required_extension(), get_sortgrouplist_exprs(), get_steps_using_prefix_recurse(), get_subscription_list(), get_switched_clauses(), 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(), 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(), 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(), ReindexRelationConcurrently(), relation_excluded_by_constraints(), relation_has_unique_index_for(), RelationCacheInvalidate(), 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_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_modifytable_info(), show_plan_tlist(), show_sort_group_keys(), show_tablesample(), simplify_and_arguments(), simplify_or_arguments(), sort_policies_by_name(), 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:75
static void new_tail_cell(List *list)
Definition: list.c:305
#define IsPointerList(l)
Definition: list.c:52
Definition: nodes.h:297
#define Assert(condition)
Definition: c.h:732
#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:86

◆ lappend_cell()

void lappend_cell ( List list,
ListCell prev,
void *  datum 
)

Definition at line 465 of file list.c.

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

Referenced by merge_clump().

466 {
467  Assert(IsPointerList(list));
468  lfirst(add_new_cell_after(list, prev)) = datum;
469  check_list_invariants(list);
470 }
#define check_list_invariants(l)
Definition: list.c:75
static ListCell * add_new_cell_after(List *list, ListCell *prev_cell)
Definition: list.c:450
#define IsPointerList(l)
Definition: list.c:52
#define Assert(condition)
Definition: c.h:732
#define lfirst(lc)
Definition: pg_list.h:190

◆ lappend_cell_int()

void lappend_cell_int ( List list,
ListCell prev,
int  datum 
)

Definition at line 473 of file list.c.

References add_new_cell_after(), Assert, check_list_invariants, IsIntegerList, and lfirst_int.

474 {
475  Assert(IsIntegerList(list));
476  lfirst_int(add_new_cell_after(list, prev)) = datum;
477  check_list_invariants(list);
478 }
#define check_list_invariants(l)
Definition: list.c:75
#define IsIntegerList(l)
Definition: list.c:53
#define lfirst_int(lc)
Definition: pg_list.h:191
static ListCell * add_new_cell_after(List *list, ListCell *prev_cell)
Definition: list.c:450
#define Assert(condition)
Definition: c.h:732

◆ lappend_cell_oid()

void lappend_cell_oid ( List list,
ListCell prev,
Oid  datum 
)

Definition at line 481 of file list.c.

References add_new_cell_after(), Assert, check_list_invariants, IsOidList, and lfirst_oid.

Referenced by insert_ordered_oid(), and insert_ordered_unique_oid().

482 {
483  Assert(IsOidList(list));
484  lfirst_oid(add_new_cell_after(list, prev)) = datum;
485  check_list_invariants(list);
486 }
#define check_list_invariants(l)
Definition: list.c:75
static ListCell * add_new_cell_after(List *list, ListCell *prev_cell)
Definition: list.c:450
#define IsOidList(l)
Definition: list.c:54
#define Assert(condition)
Definition: c.h:732
#define lfirst_oid(lc)
Definition: pg_list.h:192

◆ 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 addRangeTableEntryForENR(), addRangeTableEntryForFunction(), analyzeCTETargetList(), ATRewriteTable(), build_subplan(), check_ungrouped_columns_walker(), checkInsertTargets(), convert_EXISTS_to_ANY(), CopyGetAttnums(), deparseAnalyzeSql(), deparseExplicitTargetList(), deparseTargetList(), ExecBuildAggTrans(), ExecBuildGroupingEqual(), ExecInitExprRec(), ExecInitQual(), ExecInitSubscriptingRef(), expand_indexqual_rowcompare(), 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(), 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(), SyncRepGetSyncStandbysPriority(), SyncRepGetSyncStandbysQuorum(), transformDistinctOnClause(), 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:75
#define IsIntegerList(l)
Definition: list.c:53
#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:732
static ListCell * list_tail(const List *l)
Definition: pg_list.h:132
static List * new_list(NodeTag type, int min_size)
Definition: list.c:86

◆ 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(), 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(), CloneFkReferenced(), CloneFkReferencing(), compute_semijoin_info(), convert_EXISTS_to_ANY(), create_indexscan_plan(), CreateExtensionInternal(), CreateFunction(), CreateTrigger(), DefineRelation(), do_autovacuum(), EventTriggerCommonSetup(), ExecAlterDefaultPrivilegesStmt(), ExecInitHashJoin(), ExecInitPartitionInfo(), ExecInsertIndexTuples(), ExecuteGrantStmt(), ExecuteTruncate(), ExecuteTruncateGuts(), expand_indexqual_rowcompare(), extract_query_dependencies_walker(), ExtractExtensionList(), find_all_inheritors(), find_inheritance_children(), find_typed_table_dependencies(), 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(), getOwnedSequences(), GetParentedForeignKeyRefs(), GetPublicationRelations(), GetRelationPublications(), getRelationsInNamespace(), heap_truncate_check_FKs(), index_concurrently_swap(), infer_arbiter_indexes(), list_append_unique_oid(), list_concat_unique_oid(), list_difference_oid(), list_union_oid(), 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(), RememberConstraintForRebuilding(), RememberIndexForRebuilding(), remove_useless_groupby_columns(), replace_outer_agg(), replace_outer_grouping(), RestoreReindexState(), roleSpecsToIds(), transformAggregateCall(), transformInsertStmt(), transformRangeTableFunc(), transformSetOperationTree(), transformValuesClause(), 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:75
static void new_tail_cell(List *list)
Definition: list.c:305
#define IsOidList(l)
Definition: list.c:54
#define Assert(condition)
Definition: c.h:732
static ListCell * list_tail(const List *l)
Definition: pg_list.h:132
static List * new_list(NodeTag type, int min_size)
Definition: list.c:86
#define lfirst_oid(lc)
Definition: pg_list.h:192

◆ lcons()

List* lcons ( void *  datum,
List list 
)

Definition at line 500 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 AtSubStart_Notify(), build_minmax_path(), checkWellFormedRecursionWalker(), consider_groupingsets_paths(), CreateExprContext(), CreateLockFile(), estimate_num_groups(), ExecInitExprRec(), ExecInitModifyTable(), ExplainNode(), 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(), get_relation_statistics(), get_rels_with_domain(), get_tables_to_cluster(), gistEmptyAllBuffers(), gistFindPath(), gistfinishsplit(), gistGetNodeBuffer(), gistPushItupToNodeBuffer(), load_domaintype_info(), makeDependencyGraphWalker(), merge_clump(), parseCheckAggregates(), 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().

501 {
502  Assert(IsPointerList(list));
503 
504  if (list == NIL)
505  list = new_list(T_List, 1);
506  else
507  new_head_cell(list);
508 
509  lfirst(list_head(list)) = datum;
510  check_list_invariants(list);
511  return list;
512 }
#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:75
static ListCell * list_head(const List *l)
Definition: pg_list.h:125
#define IsPointerList(l)
Definition: list.c:52
Definition: nodes.h:297
#define Assert(condition)
Definition: c.h:732
#define lfirst(lc)
Definition: pg_list.h:190
static List * new_list(NodeTag type, int min_size)
Definition: list.c:86

◆ lcons_int()

List* lcons_int ( int  datum,
List list 
)

Definition at line 518 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(), and is_parallel_safe().

519 {
520  Assert(IsIntegerList(list));
521 
522  if (list == NIL)
523  list = new_list(T_IntList, 1);
524  else
525  new_head_cell(list);
526 
527  lfirst_int(list_head(list)) = datum;
528  check_list_invariants(list);
529  return list;
530 }
#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:75
#define IsIntegerList(l)
Definition: list.c:53
#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:732
static List * new_list(NodeTag type, int min_size)
Definition: list.c:86

◆ lcons_oid()

List* lcons_oid ( Oid  datum,
List list 
)

Definition at line 536 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 CheckAttributeType(), CreateSchemaCommand(), fireRIRrules(), inline_function(), insert_ordered_oid(), insert_ordered_unique_oid(), LockViewRecurse(), pg_partition_ancestors(), PushOverrideSearchPath(), recomputeNamespacePath(), ReindexMultipleTables(), and TryReuseForeignKey().

537 {
538  Assert(IsOidList(list));
539 
540  if (list == NIL)
541  list = new_list(T_OidList, 1);
542  else
543  new_head_cell(list);
544 
545  lfirst_oid(list_head(list)) = datum;
546  check_list_invariants(list);
547  return list;
548 }
#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:75
static ListCell * list_head(const List *l)
Definition: pg_list.h:125
#define IsOidList(l)
Definition: list.c:54
#define Assert(condition)
Definition: c.h:732
static List * new_list(NodeTag type, int min_size)
Definition: list.c:86
#define lfirst_oid(lc)
Definition: pg_list.h:192

◆ list_append_unique()

List* list_append_unique ( List list,
void *  datum 
)

Definition at line 1162 of file list.c.

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

Referenced by add_security_quals(), and add_with_check_options().

1163 {
1164  if (list_member(list, datum))
1165  return list;
1166  else
1167  return lappend(list, datum);
1168 }
bool list_member(const List *list, const void *datum)
Definition: list.c:622
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 1187 of file list.c.

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

1188 {
1189  if (list_member_int(list, datum))
1190  return list;
1191  else
1192  return lappend_int(list, datum);
1193 }
bool list_member_int(const List *list, int datum)
Definition: list.c:663
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 1199 of file list.c.

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

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

1200 {
1201  if (list_member_oid(list, datum))
1202  return list;
1203  else
1204  return lappend_oid(list, datum);
1205 }
List * lappend_oid(List *list, Oid datum)
Definition: list.c:357
bool list_member_oid(const List *list, Oid datum)
Definition: list.c:683

◆ list_append_unique_ptr()

List* list_append_unique_ptr ( List list,
void *  datum 
)

Definition at line 1175 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().

1176 {
1177  if (list_member_ptr(list, datum))
1178  return list;
1179  else
1180  return lappend(list, datum);
1181 }
List * lappend(List *list, void *datum)
Definition: list.c:321
bool list_member_ptr(const List *list, const void *datum)
Definition: list.c:643

◆ 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:732
int length
Definition: pg_list.h:53

◆ list_concat()

List* list_concat ( List list1,
const List list2 
)

Definition at line 559 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_function_defaults(), add_paths_to_append_rel(), add_predicate_to_index_quals(), addRangeTableEntryForJoin(), addRangeTableEntryForTableFunc(), AtEOSubXact_ApplyLauncher(), ATExecAttachPartition(), ATPostAlterTypeParse(), AtSubCommit_Notify(), build_joinrel_partition_info(), build_joinrel_restrictlist(), build_paths_for_OR(), check_index_predicates(), check_sql_fn_retval(), 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(), create_scan_plan(), deconstruct_recurse(), DefineIndex(), 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(), gen_partprune_steps_internal(), gen_prune_steps_from_opexps(), generate_bitmap_or_paths(), 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_parameterized_baserel_size(), get_relation_constraints(), get_rels_with_domain(), get_steps_using_prefix_recurse(), init_sql_fcache(), inline_set_returning_function(), make_pathkeys_for_window(), max_parallel_hazard_walker(), objectsInSchemaToOids(), process_equivalence(), process_matched_tle(), 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_plan_refs(), simplify_and_arguments(), simplify_or_arguments(), split_pathtarget_at_srfs(), split_pathtarget_walker(), SyncRepGetSyncStandbysPriority(), TidQualFromRestrictInfoList(), transformAExprIn(), transformAlterTableStmt(), transformCreateSchemaStmt(), transformCreateStmt(), transformExpressionList(), transformExtendedStatistics(), transformFromClause(), transformFromClauseItem(), transformIndexConstraints(), transformTargetList(), and vacuum().

560 {
561  int new_len;
562 
563  if (list1 == NIL)
564  return list_copy(list2);
565  if (list2 == NIL)
566  return list1;
567 
568  Assert(list1->type == list2->type);
569 
570  new_len = list1->length + list2->length;
571  /* Enlarge array if necessary */
572  if (new_len > list1->max_length)
573  enlarge_list(list1, new_len);
574 
575  /* Even if list1 == list2, using memcpy should be safe here */
576  memcpy(&list1->elements[list1->length], &list2->elements[0],
577  list2->length * sizeof(ListCell));
578  list1->length = new_len;
579 
580  check_list_invariants(list1);
581  return list1;
582 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:75
List * list_copy(const List *oldlist)
Definition: list.c:1357
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:732
int length
Definition: pg_list.h:53
NodeTag type
Definition: pg_list.h:52

◆ list_concat_unique()

List* list_concat_unique ( List list1,
const List list2 
)

Definition at line 1219 of file list.c.

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

Referenced by create_bitmap_subplan(), and select_active_windows().

1220 {
1221  ListCell *cell;
1222 
1223  Assert(IsPointerList(list1));
1224  Assert(IsPointerList(list2));
1225 
1226  foreach(cell, list2)
1227  {
1228  if (!list_member(list1, lfirst(cell)))
1229  list1 = lappend(list1, lfirst(cell));
1230  }
1231 
1232  check_list_invariants(list1);
1233  return list1;
1234 }
#define check_list_invariants(l)
Definition: list.c:75
bool list_member(const List *list, const void *datum)
Definition: list.c:622
#define IsPointerList(l)
Definition: list.c:52
List * lappend(List *list, void *datum)
Definition: list.c:321
#define Assert(condition)
Definition: c.h:732
#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 1262 of file list.c.

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

1263 {
1264  ListCell *cell;
1265 
1266  Assert(IsIntegerList(list1));
1267  Assert(IsIntegerList(list2));
1268 
1269  foreach(cell, list2)
1270  {
1271  if (!list_member_int(list1, lfirst_int(cell)))
1272  list1 = lappend_int(list1, lfirst_int(cell));
1273  }
1274 
1275  check_list_invariants(list1);
1276  return list1;
1277 }
#define check_list_invariants(l)
Definition: list.c:75
#define IsIntegerList(l)
Definition: list.c:53
#define lfirst_int(lc)
Definition: pg_list.h:191
bool list_member_int(const List *list, int datum)
Definition: list.c:663
List * lappend_int(List *list, int datum)
Definition: list.c:339
#define Assert(condition)
Definition: c.h:732

◆ list_concat_unique_oid()

List* list_concat_unique_oid ( List list1,
const List list2 
)

Definition at line 1283 of file list.c.

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

Referenced by GetRelationPublicationActions().

1284 {
1285  ListCell *cell;
1286 
1287  Assert(IsOidList(list1));
1288  Assert(IsOidList(list2));
1289 
1290  foreach(cell, list2)
1291  {
1292  if (!list_member_oid(list1, lfirst_oid(cell)))
1293  list1 = lappend_oid(list1, lfirst_oid(cell));
1294  }
1295 
1296  check_list_invariants(list1);
1297  return list1;
1298 }
#define check_list_invariants(l)
Definition: list.c:75
List * lappend_oid(List *list, Oid datum)
Definition: list.c:357
#define IsOidList(l)
Definition: list.c:54
bool list_member_oid(const List *list, Oid datum)
Definition: list.c:683
#define Assert(condition)
Definition: c.h:732
#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 1241 of file list.c.

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

1242 {
1243  ListCell *cell;
1244 
1245  Assert(IsPointerList(list1));
1246  Assert(IsPointerList(list2));
1247 
1248  foreach(cell, list2)
1249  {
1250  if (!list_member_ptr(list1, lfirst(cell)))
1251  list1 = lappend(list1, lfirst(cell));
1252  }
1253 
1254  check_list_invariants(list1);
1255  return list1;
1256 }
#define check_list_invariants(l)
Definition: list.c:75
#define IsPointerList(l)
Definition: list.c:52
List * lappend(List *list, void *datum)
Definition: list.c:321
bool list_member_ptr(const List *list, const void *datum)
Definition: list.c:643
#define Assert(condition)
Definition: c.h:732
#define lfirst(lc)
Definition: pg_list.h:190

◆ list_copy()

List* list_copy ( const List list)

Definition at line 1357 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(), add_paths_to_append_rel(), arrayconst_startup_fn(), arrayexpr_startup_fn(), build_joinrel_partition_info(), build_paths_for_OR(), build_subplan(), check_index_predicates(), choose_bitmap_and(), consider_groupingsets_paths(), ConstraintImpliedByRelConstraint(), copy_pathtarget(), copyObjectImpl(), CopyOverrideSearchPath(), create_append_path(), create_append_plan(), create_merge_append_path(), create_merge_append_plan(), create_scan_plan(), DefineIndex(), deparseFromExprForRel(), does_not_exist_skipping(), estimate_path_cost_size(), EventTriggerCollectGrant(), ExecuteTruncateGuts(), expand_groupingset_node(), expand_indexqual_rowcompare(), expression_tree_mutator(), extract_or_clause(), fetch_search_path(), find_indexpath_quals(), foreign_join_ok(), gen_partprune_steps(), gen_prune_steps_from_opexps(), generate_bitmap_or_paths(), generate_mergejoin_paths(), get_eclass_for_sort_expr(), get_foreign_key_join_selectivity(), get_from_clause_item(), get_object_address_attrdef(), get_object_address_attribute(), get_object_address_opf_member(), get_object_address_relobject(), get_parameterized_baserel_size(), get_query_def(), get_required_extension(), get_steps_using_prefix_recurse(), get_switched_clauses(), get_useful_pathkeys_for_relation(), GetOverrideSearchPath(), init_sql_fcache(), list_concat(), list_difference(), list_difference_int(), list_difference_oid(), list_difference_ptr(), list_union(), list_union_int(), list_union_oid(), list_union_ptr(), make_pathkeys_for_window(), max_parallel_hazard_walker(), owningrel_does_not_exist_skipping(), process_matched_tle(), 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_append_rel_pathlist(), set_plan_refs(), set_using_names(), SetReindexPending(), simplify_and_arguments(), simplify_or_arguments(), sort_inner_and_outer(), transformWithClause(), and truncate_useless_pathkeys().

1358 {
1359  List *newlist;
1360 
1361  if (oldlist == NIL)
1362  return NIL;
1363 
1364  newlist = new_list(oldlist->type, oldlist->length);
1365  memcpy(newlist->elements, oldlist->elements,
1366  newlist->length * sizeof(ListCell));
1367 
1368  check_list_invariants(newlist);
1369  return newlist;
1370 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:75
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:86

◆ list_copy_deep()

List* list_copy_deep ( const List oldlist)

Definition at line 1402 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().

1403 {
1404  List *newlist;
1405 
1406  if (oldlist == NIL)
1407  return NIL;
1408 
1409  /* This is only sensible for pointer Lists */
1410  Assert(IsA(oldlist, List));
1411 
1412  newlist = new_list(oldlist->type, oldlist->length);
1413  for (int i = 0; i < newlist->length; i++)
1414  lfirst(&newlist->elements[i]) =
1415  copyObjectImpl(lfirst(&oldlist->elements[i]));
1416 
1417  check_list_invariants(newlist);
1418  return newlist;
1419 }
#define NIL
Definition: pg_list.h:65
#define IsA(nodeptr, _type_)
Definition: nodes.h:575
#define check_list_invariants(l)
Definition: list.c:75
ListCell * elements
Definition: pg_list.h:55
#define Assert(condition)
Definition: c.h:732
#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:86
void * copyObjectImpl(const void *from)
Definition: copyfuncs.c:4741

◆ list_copy_tail()

List* list_copy_tail ( const List list,
int  nskip 
)

Definition at line 1376 of file list.c.

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

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

1377 {
1378  List *newlist;
1379 
1380  if (nskip < 0)
1381  nskip = 0; /* would it be better to elog? */
1382 
1383  if (oldlist == NIL || nskip >= oldlist->length)
1384  return NIL;
1385 
1386  newlist = new_list(oldlist->type, oldlist->length - nskip);
1387  memcpy(newlist->elements, &oldlist->elements[nskip],
1388  newlist->length * sizeof(ListCell));
1389 
1390  check_list_invariants(newlist);
1391  return newlist;
1392 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:75
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:86

◆ list_delete()

List* list_delete ( List list,
void *  datum 
)

Definition at line 783 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().

784 {
785  ListCell *cell;
786 
787  Assert(IsPointerList(list));
788  check_list_invariants(list);
789 
790  foreach(cell, list)
791  {
792  if (equal(lfirst(cell), datum))
793  return list_delete_cell(list, cell);
794  }
795 
796  /* Didn't find a match: return the list unmodified */
797  return list;
798 }
bool equal(const void *a, const void *b)
Definition: equalfuncs.c:2998
#define check_list_invariants(l)
Definition: list.c:75
#define IsPointerList(l)
Definition: list.c:52
List * list_delete_cell(List *list, ListCell *cell)
Definition: list.c:773
#define Assert(condition)
Definition: c.h:732
#define lfirst(lc)
Definition: pg_list.h:190

◆ list_delete_cell()

List* list_delete_cell ( List list,
ListCell cell 
)

Definition at line 773 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().

774 {
775  return list_delete_nth_cell(list, cell - list->elements);
776 }
ListCell * elements
Definition: pg_list.h:55
List * list_delete_nth_cell(List *list, int n)
Definition: list.c:705

◆ list_delete_first()

◆ list_delete_int()

List* list_delete_int ( List list,
int  datum 
)

Definition at line 821 of file list.c.

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

Referenced by reorder_grouping_sets().

822 {
823  ListCell *cell;
824 
825  Assert(IsIntegerList(list));
826  check_list_invariants(list);
827 
828  foreach(cell, list)
829  {
830  if (lfirst_int(cell) == datum)
831  return list_delete_cell(list, cell);
832  }
833 
834  /* Didn't find a match: return the list unmodified */
835  return list;
836 }
#define check_list_invariants(l)
Definition: list.c:75
#define IsIntegerList(l)
Definition: list.c:53
#define lfirst_int(lc)
Definition: pg_list.h:191
List * list_delete_cell(List *list, ListCell *cell)
Definition: list.c:773
#define Assert(condition)
Definition: c.h:732

◆ list_delete_nth_cell()

List* list_delete_nth_cell ( List list,
int  n 
)

Definition at line 705 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, memmove, MemoryContextAlloc(), NIL, offsetof, pfree(), PG_USED_FOR_ASSERTS_ONLY, and repalloc().

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

706 {
707  check_list_invariants(list);
708 
709  Assert(n >= 0 && n < list->length);
710 
711  /*
712  * If we're about to delete the last node from the list, free the whole
713  * list instead and return NIL, which is the only valid representation of
714  * a zero-length list.
715  */
716  if (list->length == 1)
717  {
718  list_free(list);
719  return NIL;
720  }
721 
722  /*
723  * Otherwise, we normally just collapse out the removed element. But for
724  * debugging purposes, move the whole list contents someplace else.
725  *
726  * (Note that we *must* keep the contents in the same memory context.)
727  */
728 #ifndef DEBUG_LIST_MEMORY_USAGE
729  memmove(&list->elements[n], &list->elements[n + 1],
730  (list->length - 1 - n) * sizeof(ListCell));
731  list->length--;
732 #else
733  {
734  ListCell *newelems;
735  int newmaxlen = list->length - 1;
736 
737  newelems = (ListCell *)
739  newmaxlen * sizeof(ListCell));
740  memcpy(newelems, list->elements, n * sizeof(ListCell));
741  memcpy(&newelems[n], &list->elements[n + 1],
742  (list->length - 1 - n) * sizeof(ListCell));
743  if (list->elements != list->initial_elements)
744  pfree(list->elements);
745  else
746  {
747  /*
748  * As in enlarge_list(), tell palloc code we're not using the
749  * initial_elements space anymore.
750  */
752 
753  newlist = (List *) repalloc(list, offsetof(List, initial_elements));
754  Assert(newlist == list);
755  }
756  list->elements = newelems;
757  list->max_length = newmaxlen;
758  list->length--;
759  check_list_invariants(list);
760  }
761 #endif
762 
763  return list;
764 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:75
void pfree(void *pointer)
Definition: mcxt.c:1031
#define memmove(d, s, c)
Definition: c.h:1224
union ListCell ListCell
int max_length
Definition: pg_list.h:54
ListCell * elements
Definition: pg_list.h:55
#define Assert(condition)
Definition: c.h:732
void * repalloc(void *pointer, Size size)
Definition: mcxt.c:1044
int length
Definition: pg_list.h:53
void * MemoryContextAlloc(MemoryContext context, Size size)
Definition: mcxt.c:771
void list_free(List *list)
Definition: list.c:1330
ListCell initial_elements[FLEXIBLE_ARRAY_MEMBER]
Definition: pg_list.h:57
#define PG_USED_FOR_ASSERTS_ONLY
Definition: c.h:123
Definition: pg_list.h:50
#define offsetof(type, field)
Definition: c.h:655
static MemoryContext GetMemoryChunkContext(void *pointer)
Definition: memutils.h:112

◆ list_delete_oid()

List* list_delete_oid ( List list,
Oid  datum 
)

Definition at line 840 of file list.c.

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

Referenced by LockViewRecurse(), and RemoveReindexPending().

841 {
842  ListCell *cell;
843 
844  Assert(IsOidList(list));
845  check_list_invariants(list);
846 
847  foreach(cell, list)
848  {
849  if (lfirst_oid(cell) == datum)
850  return list_delete_cell(list, cell);
851  }
852 
853  /* Didn't find a match: return the list unmodified */
854  return list;
855 }
#define check_list_invariants(l)
Definition: list.c:75
List * list_delete_cell(List *list, ListCell *cell)
Definition: list.c:773
#define IsOidList(l)
Definition: list.c:54
#define Assert(condition)
Definition: c.h:732
#define lfirst_oid(lc)
Definition: pg_list.h:192

◆ list_delete_ptr()

List* list_delete_ptr ( List list,
void *  datum 
)

Definition at line 802 of file list.c.

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

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

803 {
804  ListCell *cell;
805 
806  Assert(IsPointerList(list));
807  check_list_invariants(list);
808 
809  foreach(cell, list)
810  {
811  if (lfirst(cell) == datum)
812  return list_delete_cell(list, cell);
813  }
814 
815  /* Didn't find a match: return the list unmodified */
816  return list;
817 }
#define check_list_invariants(l)
Definition: list.c:75
#define IsPointerList(l)
Definition: list.c:52
List * list_delete_cell(List *list, ListCell *cell)
Definition: list.c:773
#define Assert(condition)
Definition: c.h:732
#define lfirst(lc)
Definition: pg_list.h:190

◆ list_difference()

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

Definition at line 1058 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().

1059 {
1060  const ListCell *cell;
1061  List *result = NIL;
1062 
1063  Assert(IsPointerList(list1));
1064  Assert(IsPointerList(list2));
1065 
1066  if (list2 == NIL)
1067  return list_copy(list1);
1068 
1069  foreach(cell, list1)
1070  {
1071  if (!list_member(list2, lfirst(cell)))
1072  result = lappend(result, lfirst(cell));
1073  }
1074 
1075  check_list_invariants(result);
1076  return result;
1077 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:75
List * list_copy(const List *oldlist)
Definition: list.c:1357
bool list_member(const List *list, const void *datum)
Definition: list.c:622
#define IsPointerList(l)
Definition: list.c:52
List * lappend(List *list, void *datum)
Definition: list.c:321
#define Assert(condition)
Definition: c.h:732
#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 1109 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().

1110 {
1111  const ListCell *cell;
1112  List *result = NIL;
1113 
1114  Assert(IsIntegerList(list1));
1115  Assert(IsIntegerList(list2));
1116 
1117  if (list2 == NIL)
1118  return list_copy(list1);
1119 
1120  foreach(cell, list1)
1121  {
1122  if (!list_member_int(list2, lfirst_int(cell)))
1123  result = lappend_int(result, lfirst_int(cell));
1124  }
1125 
1126  check_list_invariants(result);
1127  return result;
1128 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:75
List * list_copy(const List *oldlist)
Definition: list.c:1357
#define IsIntegerList(l)
Definition: list.c:53
#define lfirst_int(lc)
Definition: pg_list.h:191
bool list_member_int(const List *list, int datum)
Definition: list.c:663
List * lappend_int(List *list, int datum)
Definition: list.c:339
#define Assert(condition)
Definition: c.h:732
Definition: pg_list.h:50

◆ list_difference_oid()

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

Definition at line 1134 of file list.c.

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

1135 {
1136  const ListCell *cell;
1137  List *result = NIL;
1138 
1139  Assert(IsOidList(list1));
1140  Assert(IsOidList(list2));
1141 
1142  if (list2 == NIL)
1143  return list_copy(list1);
1144 
1145  foreach(cell, list1)
1146  {
1147  if (!list_member_oid(list2, lfirst_oid(cell)))
1148  result = lappend_oid(result, lfirst_oid(cell));
1149  }
1150 
1151  check_list_invariants(result);
1152  return result;
1153 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:75
List * list_copy(const List *oldlist)
Definition: list.c:1357
List * lappend_oid(List *list, Oid datum)
Definition: list.c:357
#define IsOidList(l)
Definition: list.c:54
bool list_member_oid(const List *list, Oid datum)
Definition: list.c:683
#define Assert(condition)
Definition: c.h:732
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 1084 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().

1085 {
1086  const ListCell *cell;
1087  List *result = NIL;
1088 
1089  Assert(IsPointerList(list1));
1090  Assert(IsPointerList(list2));
1091 
1092  if (list2 == NIL)
1093  return list_copy(list1);
1094 
1095  foreach(cell, list1)
1096  {
1097  if (!list_member_ptr(list2, lfirst(cell)))
1098  result = lappend(result, lfirst(cell));
1099  }
1100 
1101  check_list_invariants(result);
1102  return result;
1103 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:75
List * list_copy(const List *oldlist)
Definition: list.c:1357
#define IsPointerList(l)
Definition: list.c:52
List * lappend(List *list, void *datum)
Definition: list.c:321
bool list_member_ptr(const List *list, const void *datum)
Definition: list.c:643
#define Assert(condition)
Definition: c.h:732
#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 1330 of file list.c.

References list_free_private().

Referenced by AfterTriggerSetState(), AlterIndexNamespaces(), arrayconst_cleanup_fn(), arrayexpr_cleanup_fn(), 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_expr_references_walker(), 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(), index_concurrently_swap(), index_get_partition(), infer_arbiter_indexes(), is_admin_of_role(), list_delete_nth_cell(), make_group_input_target(), make_partial_grouping_target(), make_pathkeys_for_window(), make_sort_input_target(), make_window_input_target(), 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(), RelationHasUnloggedIndex(), reorder_grouping_sets(), reparameterize_pathlist_by_child(), roles_has_privs_of(), roles_is_member_of(), sepgsql_dml_privileges(), stringToQualifiedNameList(), SyncRepGetSyncRecPtr(), SyncRepGetSyncStandbysPriority(), textToQualifiedNameList(), toast_open_indexes(), transformFkeyCheckAttrs(), transformFkeyGetPrimaryKey(), transformTableLikeClause(), transformValuesClause(), triggered_change_notification(), typeInheritsFrom(), vac_open_indexes(), and WaitForLockers().

1331 {
1332  list_free_private(list, false);
1333 }
static void list_free_private(List *list, bool deep)
Definition: list.c:1304

◆ list_free_deep()

void list_free_deep ( List list)

Definition at line 1344 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().

1345 {
1346  /*
1347  * A "deep" free operation only makes sense on a list of pointers.
1348  */
1349  Assert(IsPointerList(list));
1350  list_free_private(list, true);
1351 }
#define IsPointerList(l)
Definition: list.c:52
#define Assert(condition)
Definition: c.h:732
static void list_free_private(List *list, bool deep)
Definition: list.c:1304

◆ 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(), insert_ordered_oid(), insert_ordered_unique_oid(), intorel_startup(), join_search_one_level(), jsonb_path_query(), lcons(), lcons_int(), lcons_oid(), list_startup_fn(), make_inner_pathkeys_for_merge(), makeDependencyGraphWalker(), match_index_to_operand(), merge_clump(), 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_coltypelist(), tlist_matches_tupdesc(), tlist_same_collations(), tlist_same_datatypes(), transformAssignedExpr(), transformUpdateTargetList(), trim_mergeclauses_for_inner_pathkeys(), 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(), and add_path().

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:75
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:52
#define Assert(condition)
Definition: c.h:732
#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:75
static ListCell * insert_new_cell(List *list, int pos)
Definition: list.c:379
#define IsIntegerList(l)
Definition: list.c:53
#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:732

◆ 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:75
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:54
#define Assert(condition)
Definition: c.h:732
#define lfirst_oid(lc)
Definition: pg_list.h:192

◆ list_intersection()

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

Definition at line 1000 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().

1001 {
1002  List *result;
1003  const ListCell *cell;
1004 
1005  if (list1 == NIL || list2 == NIL)
1006  return NIL;
1007 
1008  Assert(IsPointerList(list1));
1009  Assert(IsPointerList(list2));
1010 
1011  result = NIL;
1012  foreach(cell, list1)
1013  {
1014  if (list_member(list2, lfirst(cell)))
1015  result = lappend(result, lfirst(cell));
1016  }
1017 
1018  check_list_invariants(result);
1019  return result;
1020 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:75
bool list_member(const List *list, const void *datum)
Definition: list.c:622
#define IsPointerList(l)
Definition: list.c:52
List * lappend(List *list, void *datum)
Definition: list.c:321
#define Assert(condition)
Definition: c.h:732
#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 1026 of file list.c.

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

Referenced by parseCheckAggregates().

1027 {
1028  List *result;
1029  const ListCell *cell;
1030 
1031  if (list1 == NIL || list2 == NIL)
1032  return NIL;
1033 
1034  Assert(IsIntegerList(list1));
1035  Assert(IsIntegerList(list2));
1036 
1037  result = NIL;
1038  foreach(cell, list1)
1039  {
1040  if (list_member_int(list2, lfirst_int(cell)))
1041  result = lappend_int(result, lfirst_int(cell));
1042  }
1043 
1044  check_list_invariants(result);
1045  return result;
1046 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:75
#define IsIntegerList(l)
Definition: list.c:53
#define lfirst_int(lc)
Definition: pg_list.h:191
bool list_member_int(const List *list, int datum)
Definition: list.c:663
List * lappend_int(List *list, int datum)
Definition: list.c:339
#define Assert(condition)
Definition: c.h:732
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_rel_equivalences(), add_column_to_pathtarget(), add_function_defaults(), add_paths_to_append_rel(), add_rte_to_flat_rtable(), add_security_quals(), add_sp_item_to_pathtarget(), add_to_flat_tlist(), add_with_check_options(), addRangeTableEntryForCTE(), addRangeTableEntryForFunction(), addRangeTableEntryForJoin(), 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(), AtSubAbort_Notify(), AtSubCommit_Notify(), AtSubStart_Notify(), AttachPartitionEnsureIndexes(), BeginCopy(), BeginCopyFrom(), btvalidate(), build_pertrans_for_aggref(), build_remote_returning(), build_simple_rel(), build_subplan(), build_tlist_index(), build_tlist_index_other_vars(), BuildDescForRelation(), BuildDescFromLists(), buildRelationAliases(), buildSubPlanHash(), cached_plan_cost(), check_hashjoinable(), check_mergejoinable(), check_selective_binary_conversion(), 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(), common_prefix_cmp(), commute_restrictinfo(), CommuteOpExpr(), 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_list_bounds(), create_merge_append_path(), create_merge_append_plan(), create_mergejoin_plan(), create_modifytable_path(), create_setop_path(), create_tidscan_plan(), create_unique_path(), create_unique_plan(), create_windowagg_path(), create_windowagg_plan(), CreateExtensionInternal(), CreateFunction(), CreatePublication(), CreateStatistics(), CreateTrigger(), current_schemas(), currtid_for_view(), deconstruct_recurse(), DeconstructQualifiedName(), DefineAggregate(), DefineCollation(), DefineDomain(), DefineIndex(), DefineQueryRewrite(), DefineRelation(), DefineVirtualRelation(), DelRoleMems(), 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_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(), extractRemainingColumns(), 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_join_using_qual(), 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(), 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_for_ecs(), generate_mergejoin_paths(), generate_new_exec_param(), generate_nonunion_paths(), generate_series_int4_support(), generate_series_int8_support(), generate_union_paths(), genericcostestimate(), geqo_eval(), get_agg_expr(), get_aggregate_argtypes(), get_call_expr_arg_stable(), get_call_expr_argtype(), 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_rte_attribute_type(), 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(), getInsertSelectQuery(), getOwnedSequence(), 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_qsort(), list_truncate(), LookupFuncWithArgs(), LookupOperWithArgs(), LookupTypeName(), 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_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(), markTargetListOrigin(), match_clause_to_partition_key(), match_foreign_keys_to_quals(), match_opclause_to_indexcol(), MatchNamedCall(), mcv_get_match_bitmap(), 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(), pathkeys_useful_for_ordering(), 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_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_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(), ResolveOpClass(), 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_planstate(), 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(), setTargetTable(), setup_append_rel_array(), setup_simple_rel_arrays(), show_grouping_sets(), show_plan_tlist(), show_sort_group_keys(), show_tablesample(), show_upper_qual(), simplify_boolean_equality(), sort_inner_and_outer(), sort_policies_by_name(), 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(), SyncRepGetNthLatestSyncRecPtr(), SyncRepGetSyncRecPtr(), SyncRepGetSyncStandbysPriority(), 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(), transformOnConflictClause(), 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(), UpdateLogicalMappings(), 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:75
ListCell * elements
Definition: pg_list.h:55
Definition: pg_list.h:50
static List * new_list(NodeTag type, int min_size)
Definition: list.c:86

◆ 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:75
ListCell * elements
Definition: pg_list.h:55
Definition: pg_list.h:50
static List * new_list(NodeTag type, int min_size)
Definition: list.c:86

◆ 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:75
ListCell * elements
Definition: pg_list.h:55
Definition: pg_list.h:50
static List * new_list(NodeTag type, int min_size)
Definition: list.c:86

◆ 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:75
ListCell * elements
Definition: pg_list.h:55
Definition: pg_list.h:50
static List * new_list(NodeTag type, int min_size)
Definition: list.c:86

◆ list_member()

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

Definition at line 622 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().

623 {
624  const ListCell *cell;
625 
626  Assert(IsPointerList(list));
627  check_list_invariants(list);
628 
629  foreach(cell, list)
630  {
631  if (equal(lfirst(cell), datum))
632  return true;
633  }
634 
635  return false;
636 }
bool equal(const void *a, const void *b)
Definition: equalfuncs.c:2998
#define check_list_invariants(l)
Definition: list.c:75
#define IsPointerList(l)
Definition: list.c:52
#define Assert(condition)
Definition: c.h:732
#define lfirst(lc)
Definition: pg_list.h:190

◆ list_member_int()

bool list_member_int ( const List list,
int  datum 
)

Definition at line 663 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(), pg_stat_get_wal_senders(), reorder_grouping_sets(), and transformDistinctOnClause().

664 {
665  const ListCell *cell;
666 
667  Assert(IsIntegerList(list));
668  check_list_invariants(list);
669 
670  foreach(cell, list)
671  {
672  if (lfirst_int(cell) == datum)
673  return true;
674  }
675 
676  return false;
677 }
#define check_list_invariants(l)
Definition: list.c:75
#define IsIntegerList(l)
Definition: list.c:53
#define lfirst_int(lc)
Definition: pg_list.h:191
#define Assert(condition)
Definition: c.h:732

◆ list_member_oid()

bool list_member_oid ( const List list,
Oid  datum 
)

Definition at line 683 of file list.c.

References Assert, check_list_invariants, IsOidList, and lfirst_oid.

Referenced by AfterTriggerSaveEvent(), AlterTableMoveAll(), ATExecAddInherit(), ATExecAttachPartition(), BeginCopy(), CheckAttributeType(), CloneFkReferencing(), CollationIsVisible(), ConversionIsVisible(), DefineRelation(), ec_member_matches_indexcol(), 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(), RelationIsVisible(), RememberConstraintForRebuilding(), RememberIndexForRebuilding(), StatisticsObjIsVisible(), TSConfigIsVisible(), TSDictionaryIsVisible(), TSParserIsVisible(), TSTemplateIsVisible(), typeInheritsFrom(), and TypeIsVisible().

684 {
685  const ListCell *cell;
686 
687  Assert(IsOidList(list));
688  check_list_invariants(list);
689 
690  foreach(cell, list)
691  {
692  if (lfirst_oid(cell) == datum)
693  return true;
694  }
695 
696  return false;
697 }
#define check_list_invariants(l)
Definition: list.c:75
#define IsOidList(l)
Definition: list.c:54
#define Assert(condition)
Definition: c.h:732
#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 643 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().

644 {
645  const ListCell *cell;
646 
647  Assert(IsPointerList(list));
648  check_list_invariants(list);
649 
650  foreach(cell, list)
651  {
652  if (lfirst(cell) == datum)
653  return true;
654  }
655 
656  return false;
657 }
#define check_list_invariants(l)
Definition: list.c:75
#define IsPointerList(l)
Definition: list.c:52
#define Assert(condition)
Definition: c.h:732
#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_rel_equivalences(), adjust_appendrel_attrs_mutator(), adjust_inherited_tlist(), adjust_partition_tlist(), ATAddForeignKeyConstraint(), consider_index_join_outer_rels(), convert_subquery_pathkeys(), convert_testexpr_mutator(), errorMissingColumn(), eval_const_expressions_mutator(), ExecInitCteScan(), ExecInitModifyTable(), ExecInitSubPlan(), expand_indexqual_rowcompare(), expandRecordVariable(), expandRTE(), ExplainTargetRel(), finalize_plan(), find_expr_references_walker(), find_hash_columns(), fix_param_node(), flatten_join_alias_vars_mutator(), 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_rte_attribute_type(), get_variable(), gimme_tree(), infer_collation_opclass_match(), markRTEForSelectPriv(), markTargetListOrigin(), 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_join_column_names(), set_relation_column_names(), set_using_names(), show_modifytable_info(), substitute_actual_parameters_mutator(), substitute_actual_srf_parameters_mutator(), transformFromClauseItem(), 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:575
static ListCell * list_nth_cell(const List *list, int n)
Definition: pg_list.h:265
#define Assert(condition)
Definition: c.h:732
#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(), and split_pathtarget_walker().

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:732

◆ 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(), get_rte_attribute_type(), 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:575
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:732

◆ 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(), get_rte_attribute_type(), 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:575
static ListCell * list_nth_cell(const List *list, int n)
Definition: pg_list.h:265
#define Assert(condition)
Definition: c.h:732
#define lfirst_oid(lc)
Definition: pg_list.h:192

◆ list_qsort()

List* list_qsort ( const List list,
list_qsort_comparator  cmp 
)

Definition at line 1432 of file list.c.

References check_list_invariants, List::elements, i, list_length(), new_list(), NIL, palloc(), pfree(), qsort, and List::type.

Referenced by create_append_path().

1433 {
1434  int len = list_length(list);
1435  ListCell **list_arr;
1436  List *newlist;
1437  ListCell *cell;
1438  int i;
1439 
1440  /* Empty list is easy */
1441  if (len == 0)
1442  return NIL;
1443 
1444  /* We have to make an array of pointers to satisfy the API */
1445  list_arr = (ListCell **) palloc(sizeof(ListCell *) * len);
1446  i = 0;
1447  foreach(cell, list)
1448  list_arr[i++] = cell;
1449 
1450  qsort(list_arr, len, sizeof(ListCell *), cmp);
1451 
1452  /* Construct new list (this code is much like list_copy) */
1453  newlist = new_list(list->type, len);
1454 
1455  for (i = 0; i < len; i++)
1456  newlist->elements[i] = *list_arr[i];
1457 
1458  /* Might as well free the workspace array */
1459  pfree(list_arr);
1460 
1461  check_list_invariants(newlist);
1462  return newlist;
1463 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:75
void pfree(void *pointer)
Definition: mcxt.c:1031
ListCell * elements
Definition: pg_list.h:55
static int list_length(const List *l)
Definition: pg_list.h:169
NodeTag type
Definition: pg_list.h:52
void * palloc(Size size)
Definition: mcxt.c:924
int i
#define qsort(a, b, c, d)
Definition: port.h:491
Definition: pg_list.h:50
static List * new_list(NodeTag type, int min_size)
Definition: list.c:86
static int cmp(const chr *x, const chr *y, size_t len)
Definition: regc_locale.c:742

◆ 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 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_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 594 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(), owningrel_does_not_exist_skipping(), ParseFuncOrColumn(), process_owned_by(), transformAggregateCall(), transformFromClauseItem(), transformSetOperationStmt(), and truncate_useless_pathkeys().

595 {
596  if (new_size <= 0)
597  return NIL; /* truncate to zero length */
598 
599  /* If asked to effectively extend the list, do nothing */
600  if (new_size < list_length(list))
601  list->length = new_size;
602 
603  /*
604  * Note: unlike the individual-list-cell deletion functions, we don't move
605  * the list cells to new storage, even in DEBUG_LIST_MEMORY_USAGE mode.
606  * This is because none of them can move in this operation, so just like
607  * in the old cons-cell-based implementation, this function doesn't
608  * invalidate any pointers to cells of the list. This is also the reason
609  * for not wiping the memory of the deleted cells: the old code didn't
610  * free them either. Perhaps later we'll tighten this up.
611  */
612 
613  return list;
614 }
#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 897 of file list.c.

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

Referenced by AddRelationNewConstraints(), and process_duplicate_ors().

898 {
899  List *result;
900  const ListCell *cell;
901 
902  Assert(IsPointerList(list1));
903  Assert(IsPointerList(list2));
904 
905  result = list_copy(list1);
906  foreach(cell, list2)
907  {
908  if (!list_member(result, lfirst(cell)))
909  result = lappend(result, lfirst(cell));
910  }
911 
912  check_list_invariants(result);
913  return result;
914 }
#define check_list_invariants(l)
Definition: list.c:75
List * list_copy(const List *oldlist)
Definition: list.c:1357
bool list_member(const List *list, const void *datum)
Definition: list.c:622
#define IsPointerList(l)
Definition: list.c:52
List * lappend(List *list, void *datum)
Definition: list.c:321
#define Assert(condition)
Definition: c.h:732
#define lfirst(lc)
Definition: pg_list.h:190
Definition: pg_list.h:50

◆ list_union_int()

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

Definition at line 944 of file list.c.

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

Referenced by expand_grouping_sets().

945 {
946  List *result;
947  const ListCell *cell;
948 
949  Assert(IsIntegerList(list1));
950  Assert(IsIntegerList(list2));
951 
952  result = list_copy(list1);
953  foreach(cell, list2)
954  {
955  if (!list_member_int(result, lfirst_int(cell)))
956  result = lappend_int(result, lfirst_int(cell));
957  }
958 
959  check_list_invariants(result);
960  return result;
961 }
#define check_list_invariants(l)
Definition: list.c:75
List * list_copy(const List *oldlist)
Definition: list.c:1357
#define IsIntegerList(l)
Definition: list.c:53
#define lfirst_int(lc)
Definition: pg_list.h:191
bool list_member_int(const List *list, int datum)
Definition: list.c:663
List * lappend_int(List *list, int datum)
Definition: list.c:339
#define Assert(condition)
Definition: c.h:732
Definition: pg_list.h:50

◆ list_union_oid()

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

Definition at line 967 of file list.c.

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

968 {
969  List *result;
970  const ListCell *cell;
971