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

Go to the source code of this file.

Data Structures

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

Macros

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

Typedefs

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

Functions

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

Macro Definition Documentation

◆ for_both_cell

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

Definition at line 441 of file pg_list.h.

Referenced by get_qual_for_range().

◆ for_each_cell

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

Definition at line 390 of file pg_list.h.

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

◆ forboth

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

Definition at line 419 of file pg_list.h.

Referenced by _equalList(), AddRoleMems(), adjust_paths_for_srfs(), apply_tlist_labeling(), assign_collations_walker(), ATPostAlterTypeCleanup(), ATPrepAlterColumnType(), common_prefix_cmp(), compare_pathkeys(), create_index_paths(), create_indexscan_plan(), create_modifytable_plan(), CreateTrigger(), DelRoleMems(), determineRecursiveColTypes(), distinct_col_search(), equalRSDesc(), ExecEvalXmlExpr(), ExecHashTableCreate(), ExecInitExprRec(), ExecInitIndexScan(), ExecScanSubPlan(), ExecSetParamPlan(), ExecWithCheckOptions(), expandRecordVariable(), expandRelAttrs(), expandRTE(), extractRemainingColumns(), find_param_referent(), fix_indexorderby_references(), fix_indexqual_clause(), flatten_join_alias_vars_mutator(), get_expr_result_type(), get_matching_location(), get_number_of_groups(), get_qual_for_range(), get_rule_expr(), get_simple_values_rte(), get_tablefunc(), 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_foreign_final_paths(), add_foreign_ordered_paths(), add_new_columns_to_pathtarget(), add_partial_path(), add_partial_path_precheck(), add_path(), add_path_precheck(), add_paths_to_append_rel(), add_paths_to_grouping_rel(), add_paths_to_joinrel(), add_paths_with_pathkeys_for_rel(), add_placeholders_to_base_rels(), add_placeholders_to_joinrel(), add_predicate_to_index_quals(), add_rtes_to_flat_rtable(), add_security_quals(), add_sp_item_to_pathtarget(), add_sp_items_to_pathtarget(), add_to_flat_tlist(), add_unique_group_var(), add_vars_to_targetlist(), add_with_check_options(), addArc(), addArcs(), AddEventToPendingNotifies(), addFamilyMember(), addKey(), addRangeTableEntryForCTE(), addRangeTableEntryForFunction(), addRangeTableEntryForSubquery(), AddRelationNewConstraints(), 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(), AtSubCommit_Notify(), blvalidate(), bms_equal_any(), brinvalidate(), btvalidate(), build_index_pathkeys(), build_index_paths(), build_index_tlist(), build_join_rel_hash(), build_joinrel_tlist(), build_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(), cmp_list_len_asc(), coerce_record_to_complex(), colname_is_unique(), colNameToVar(), compare_pathkeys(), compare_tlist_datatypes(), compareWalFileNames(), compute_function_attributes(), compute_semijoin_info(), ComputeExtStatisticsRows(), ComputeIndexAttrs(), ComputePartitionAttrs(), consider_index_join_outer_rels(), consider_parallel_mergejoin(), consider_parallel_nestloop(), ConstructTupleDescriptor(), contain_leaked_vars_walker(), convert_EXISTS_to_ANY(), convert_requires_to_datum(), convert_subquery_pathkeys(), 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(), DropDatabase(), dropOperators(), dropProcedures(), DropRole(), DropSubscription(), dsimple_init(), dsnowball_init(), dsynonym_init(), dump_block(), dump_case(), dump_dynexecute(), dump_dynfors(), dump_getdiag(), dump_if(), dump_open(), dump_raise(), dump_return_query(), dump_stmts(), dxsyn_init(), eclass_already_used(), eclass_useful_for_merging(), EnumValuesCreate(), equalRSDesc(), estimate_multivariate_ndistinct(), estimate_num_groups(), eval_const_expressions_mutator(), EvalOrderByExpressions(), EvalPlanQualEnd(), EvalPlanQualStart(), evaluate_function(), EvaluateParams(), EventTriggerCollectGrant(), EventTriggerCommonSetup(), examine_variable(), exec_check_rw_parameter(), exec_eval_using_params(), exec_stmt_block(), exec_stmt_call(), exec_stmt_case(), exec_stmt_execsql(), exec_stmt_getdiag(), exec_stmt_if(), exec_stmt_raise(), exec_stmts(), Exec_UnlistenCommit(), ExecAlterDefaultPrivilegesStmt(), ExecAlterExtensionStmt(), ExecBuildAggTrans(), ExecCheckPlanOutput(), ExecCheckRTPerms(), ExecCheckXactReadOnly(), ExecCleanUpTriggerState(), ExecEndPlan(), ExecEvalFuncArgs(), ExecEvalXmlExpr(), ExecFindJunkAttributeInTlist(), ExecGetTriggerResultRel(), ExecGrant_Relation(), ExecHashGetHashValue(), ExecIndexBuildScanKeys(), ExecInitAgg(), ExecInitBitmapAnd(), ExecInitBitmapOr(), ExecInitCoerceToDomain(), ExecInitExprList(), ExecInitExprRec(), ExecInitFunc(), ExecInitFunctionScan(), ExecInitIndexScan(), ExecInitJunkFilter(), ExecInitJunkFilterConversion(), ExecInitModifyTable(), ExecInitNode(), ExecInitPartitionInfo(), ExecInitProjectSet(), ExecInitPruningContext(), ExecInitQual(), ExecInitSubscriptingRef(), ExecInitValuesScan(), ExecInitWholeRowVar(), ExecInitWindowAgg(), ExecLockRows(), ExecNestLoop(), ExecPostprocessPlan(), ExecPrepareExprList(), ExecReScan(), ExecReScanFunctionScan(), ExecScanSubPlan(), ExecSecLabelStmt(), ExecSerializePlan(), ExecSetParamPlan(), ExecSetVariableStmt(), ExecSupportsBackwardScan(), ExecTypeFromExprList(), ExecTypeFromTLInternal(), ExecTypeSetColNames(), ExecuteCallStmt(), ExecuteDoStmt(), ExecuteGrantStmt(), ExecuteTruncate(), ExecuteTruncateGuts(), ExecVacuum(), ExecWithCheckOptions(), expand_appendrel_subquery(), expand_col_privileges(), expand_function_arguments(), expand_grouping_sets(), expand_groupingset_node(), expand_targetlist(), ExpandAllTables(), 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(), file_sort_by_lsn(), fileGetOptions(), fill_hba_line(), fill_hba_view(), filter_list_to_array(), finalize_aggregate(), finalize_grouping_exprs_walker(), finalize_plan(), find_duplicate_ors(), find_ec_member_for_tle(), find_em_expr_for_input_target(), find_em_expr_for_rel(), find_expr_references_walker(), find_forced_null_vars(), find_indexpath_quals(), find_install_path(), find_join_rel(), find_jointree_node_for_rel(), find_list_position(), find_mergeclauses_for_outer_pathkeys(), find_minmax_aggs_walker(), find_nonnullable_rels_walker(), find_nonnullable_vars_walker(), find_param_path_info(), find_param_referent(), find_partition_scheme(), find_placeholder_info(), find_placeholders_in_expr(), find_placeholders_recurse(), find_single_rel_for_clauses(), find_update_path(), find_var_for_subquery_tle(), findAttrByName(), findTargetlistEntrySQL92(), findTargetlistEntrySQL99(), findWindowClause(), fireRIRrules(), fireRules(), fix_append_rel_relids(), fix_indexorderby_references(), fix_indexqual_clause(), fix_indexqual_operand(), fix_placeholder_input_needed_levels(), fix_scan_expr_mutator(), fix_upper_expr_mutator(), flatten_grouping_sets(), flatten_join_alias_vars_mutator(), flatten_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_expr_result_type(), get_ext_ver_info(), get_file_fdw_attribute_options(), get_foreign_key_join_selectivity(), get_from_clause(), get_from_clause_coldeflist(), get_from_clause_item(), get_func_expr(), get_index_clause_from_support(), get_index_paths(), get_indexpath_pages(), get_insert_query_def(), get_join_index_paths(), get_joinrel_parampathinfo(), get_matching_location(), get_matching_partitions(), get_name_for_var_field(), get_nearest_unprocessed_vertex(), get_number_of_groups(), get_object_address_attribute(), get_parse_rowmark(), get_partkey_exec_paramids(), get_plan_rowmark(), get_policies_for_relation(), get_qual_for_hash(), get_qual_for_list(), get_qual_for_range(), get_range_key_properties(), get_range_nulltest(), get_range_partbound_string(), get_rel_sync_entry(), get_relation_column_alias_ids(), get_relation_foreign_keys(), get_relids_in_jointree(), get_rels_with_domain(), get_required_extension(), get_rte_attribute_is_dropped(), get_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(), gistRelocateBuildBuffersOnSplit(), gistvalidate(), GrantRole(), group_by_has_partkey(), grouping_is_hashable(), grouping_is_sortable(), grouping_planner(), has_dangerous_join_using(), has_indexed_join_quals(), has_join_restriction(), has_legal_joinclause(), has_partition_attrs(), has_stats_of_kind(), has_unique_index(), hash_inner_and_outer(), hashvalidate(), have_dangerous_phv(), have_join_order_restriction(), 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(), innerrel_is_unique(), interpret_function_parameter_list(), intorel_startup(), is_innerrel_unique_for(), is_parallel_safe(), is_redundant_derived_clause(), isFutureCTE(), IsImportableForeignTable(), IsListeningOn(), isLockedRefname(), isQueryUsingTempRelation_walker(), join_is_legal(), join_is_removable(), join_search_one_level(), jointree_contains_lateral_outer_refs(), jsonb_path_query_internal(), JsonValueListNext(), JumbleExpr(), lappend(), lcons(), list_concat_unique(), list_concat_unique_ptr(), list_copy_deep(), list_delete(), list_delete_ptr(), list_difference(), list_difference_ptr(), list_free_private(), list_insert_nth(), list_intersection(), list_member(), list_member_ptr(), list_next_fn(), list_nth(), list_union(), list_union_ptr(), llvm_get_function(), load_hba(), load_ident(), load_libraries(), LoadPublications(), LockTableCommand(), LockViewRecurse_walker(), lookup_proof_cache(), LookupFuncWithArgs(), make_canonical_pathkey(), make_fn_arguments(), make_group_input_target(), make_inner_pathkeys_for_merge(), make_jsp_expr_node_args(), make_one_partition_rbound(), make_outerjoininfo(), make_partial_grouping_target(), make_partition_op_expr(), make_partition_pruneinfo(), make_partitionedrel_pruneinfo(), make_pathkeys_for_sortclauses(), make_pathtarget_from_tlist(), make_recursive_union(), make_rel_from_joinlist(), make_rels_by_clause_joins(), make_rels_by_clauseless_joins(), make_row_comparison_op(), make_row_distinct_op(), make_ruledef(), make_setop(), make_setop_translation_list(), make_sort_from_groupcols(), make_sort_from_sortclauses(), make_sort_input_target(), make_sub_restrictinfos(), make_tlist_from_pathtarget(), make_unique_from_pathkeys(), make_unique_from_sortclauses(), make_window_input_target(), MakeConfigurationMapping(), makeDependencyGraphWalker(), map_sql_typecoll_to_xmlschema_types(), markQueryForLocking(), markTargetListOrigins(), match_clause_to_index(), match_clause_to_partition_key(), match_eclasses_to_foreign_key_col(), match_expr_to_partition_keys(), match_foreign_keys_to_quals(), match_funcclause_to_indexcol(), match_index_to_operand(), match_join_clauses_to_index(), match_pathkeys_to_index(), match_unsorted_outer(), MatchNamedCall(), mcv_get_match_bitmap(), merge_clump(), MergeAttributes(), MergeCheckConstraint(), MJExamineQuals(), NameListToQuotedString(), NameListToString(), negate_clause(), objectNamesToOids(), objectsInSchemaToOids(), OffsetVarNodes(), OpenTableList(), optionListToArray(), order_qual_clauses(), ordered_set_startup(), packArcInfoCmp(), packGraph(), parse_basebackup_options(), parse_func_options(), parse_hba_auth_opt(), parse_hba_line(), parse_ident_line(), parse_output_parameters(), parse_publication_options(), parse_subscription_options(), parse_tsquery(), parseCheckAggregates(), parseCreateReplSlotOptions(), ParseFuncOrColumn(), partkey_is_bool_constant_for_query(), pathkey_is_redundant(), pathkeys_useful_for_merging(), perform_base_backup(), perform_pruning_base_step(), perform_pullup_replace_vars(), pg_decode_startup(), pg_event_trigger_ddl_commands(), pg_extension_update_paths(), pg_get_functiondef(), pg_get_indexdef_worker(), pg_get_partkeydef_worker(), pg_rewrite_query(), PlanCacheObjectCallback(), planstate_tree_walker(), plpgsql_extra_checks_check_hook(), policy_role_list_to_array(), postgres_fdw_validator(), postgresAcquireSampleRowsFunc(), postgresGetForeignPaths(), postgresGetForeignPlan(), postgresImportForeignSchema(), postgresIsForeignRelUpdatable(), postgresql_fdw_validator(), PostmasterMain(), PreCommit_Notify(), PreCommit_on_commit_actions(), prep_domain_constraints(), prepare_query_params(), prepare_sort_from_pathkeys(), PrepareClientEncoding(), PrepareQuery(), PrepareTempTablespaces(), preprocess_function_rtes(), preprocess_grouping_sets(), preprocess_minmax_aggregates(), preprocess_qual_conditions(), preprocess_targetlist(), print_expr(), print_function_arguments(), print_pathkeys(), print_rt(), print_tl(), printSubscripts(), ProcedureCreate(), process_duplicate_ors(), process_equivalence(), process_owned_by(), process_pipe_input(), process_query_params(), process_security_barrier_quals(), process_startup_options(), process_sublinks_mutator(), process_subquery_nestloop_params(), process_syncing_tables_for_apply(), ProcessUtilitySlow(), prsd_headline(), PublicationAddTables(), PublicationDropTables(), publicationListToArray(), pull_ands(), pull_ors(), pull_up_simple_subquery(), pull_up_simple_union_all(), pull_up_simple_values(), pull_up_sublinks_jointree_recurse(), pull_up_sublinks_qual_recurse(), pull_up_subqueries_recurse(), push_ancestor_plan(), qual_is_pushdown_safe(), query_is_distinct_for(), QueryRewrite(), range_table_mutator(), 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(), row_security_policy_cmp(), 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(), 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(), ATPrepAlterColumnType(), 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(), JumbleExpr(), lappend_int(), lcons_int(), list_concat_unique_int(), list_delete_int(), list_difference_int(), list_insert_nth_int(), list_intersection_int(), list_member_int(), list_nth_int(), list_union_int(), make_modifytable(), make_partitionedrel_pruneinfo(), make_tuple_from_result_row(), NextCopyFrom(), perform_pruning_combine_step(), prepare_projection_slot(), preprocess_groupclause(), remap_to_groupclause_idx(), rename_constraint_internal(), renameatt_internal(), set_param_references(), set_plan_refs(), show_grouping_set_keys(), SS_identify_outer_params(), SyncRepGetNthLatestSyncRecPtr(), SyncRepGetOldestSyncRecPtr(), SyncRepGetSyncStandbysPriority(), TerminateOtherDBBackends(), transformDistinctOnClause(), transformInsertRow(), transformInsertStmt(), and transformSetOperationStmt().

◆ lfirst_node

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

Definition at line 193 of file pg_list.h.

Referenced by _SPI_execute_plan(), _SPI_prepare_oneshot_plan(), _SPI_prepare_plan(), AcquireExecutorLocks(), AcquirePlannerLocks(), addFkRecurseReferencing(), 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_hashjoin_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(), ExecInitLockRows(), ExecInitModifyTable(), ExecInitSubPlan(), ExecResetTupleTable(), ExecSerializePlan(), execute_sql_string(), ExecVacuum(), ExplainExecuteQuery(), ExplainQuery(), expression_tree_walker(), exprTypmod(), extract_actual_clauses(), extract_actual_join_clauses(), extract_nonindex_conditions(), extract_or_clause(), final_cost_hashjoin(), fix_indexqual_references(), fmgr_sql_validator(), foreign_grouping_ok(), foreign_join_ok(), generate_bitmap_or_paths(), generateSerialExtraStmts(), get_actual_clauses(), get_number_of_groups(), get_object_address_opf_member(), get_quals_from_indexclauses(), get_rule_expr(), get_sublink_expr(), gincostestimate(), have_partkey_equi_join(), ImportForeignSchema(), inheritance_planner(), init_execution_state(), init_sql_fcache(), is_redundant_with_indexclauses(), JumbleExpr(), JumbleRangeTable(), JumbleRowMarks(), make_modifytable(), make_window_input_target(), match_clauses_to_index(), pg_plan_queries(), plan_cluster_use_sort(), PlanCacheObjectCallback(), PlanCacheRelCallback(), planstate_walk_subplans(), PortalGetPrimaryStmt(), PortalRunMulti(), postgresGetForeignPlan(), postgresGetForeignRelSize(), postprocess_setop_tlist(), preprocess_groupclause(), preprocess_grouping_sets(), preprocess_rowmarks(), ProcessCopyOptions(), query_tree_mutator(), query_tree_walker(), QueryListGetPrimaryStmt(), raw_expression_tree_walker(), rel_is_distinct_for(), remap_to_groupclause_idx(), remove_useless_groupby_columns(), ResetPlanCache(), restriction_is_constant_false(), RewriteQuery(), roleSpecsToIds(), ScanQueryForLocks(), select_active_windows(), set_plan_references(), set_subquery_size_estimates(), setup_simple_rel_arrays(), SPI_cursor_open_internal(), standard_planner(), subquery_planner(), TidQualFromRestrictInfoList(), transformAlterTableStmt(), transformCaseExpr(), transformColumnDefinition(), transformContainerSubscripts(), transformIndexConstraint(), transformIndexConstraints(), transformInsertRow(), transformInsertStmt(), transformUpdateTargetList(), transformXmlExpr(), translate_col_privs(), type_in_list_does_not_exist_skipping(), TypeNameListToString(), update_proconfig_value(), and vacuum().

◆ lfirst_oid

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

Definition at line 192 of file pg_list.h.

Referenced by _equalList(), _outList(), acquire_inherited_sample_rows(), AddRoleMems(), AfterTriggerSetState(), AlterIndexNamespaces(), AlterPublicationOptions(), AlterPublicationTables(), AlterTableMoveAll(), analyzeCTE(), apply_handle_truncate(), ApplyExtensionUpdates(), ATAddCheckConstraint(), ATAddForeignKeyConstraint(), ATCheckPartitionsNotInUse(), ATDetachCheckNoForeignKeyRefs(), ATExecAddColumn(), ATExecAlterConstraint(), ATExecChangeOwner(), ATExecDetachPartition(), ATExecDropColumn(), ATExecDropConstraint(), ATExecDropNotNull(), 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(), InsertExtensionTuple(), is_admin_of_role(), lappend_oid(), lcons_oid(), list_concat_unique_oid(), list_delete_oid(), list_difference_oid(), list_insert_nth_oid(), list_member_oid(), list_nth_oid(), list_oid_cmp(), list_union_oid(), LockTableRecurse(), map_sql_catalog_to_xmlschema_types(), map_sql_schema_to_xmlschema_types(), map_sql_typecoll_to_xmlschema_types(), mark_index_clustered(), merge_acl_with_grant(), MergeAttributes(), OpclassnameGetOpcid(), OpenTableList(), OpernameGetCandidates(), OpernameGetOprid(), OpfamilynameGetOpfid(), OverrideSearchPathMatchesCurrent(), perform_pruning_base_step(), pg_partition_tree(), PreCommit_on_commit_actions(), ProcessUtilitySlow(), ReassignOwnedObjects(), refresh_by_match_merge(), reindex_relation(), ReindexMultipleTables(), ReindexRelationConcurrently(), relation_has_unique_index_for(), relation_mark_replica_identity(), RelationBuildPartitionDesc(), RelationGetIndexAttrBitmap(), relationHasPrimaryKey(), RelationIsVisible(), RelationTruncateIndexes(), RelnameGetRelid(), 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(), TypenameGetTypidExtended(), and vac_open_indexes().

◆ lfourth

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

Definition at line 210 of file pg_list.h.

Referenced by LookupTypeNameExtended(), and transformColumnRef().

◆ lfourth_int

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

Definition at line 211 of file pg_list.h.

◆ lfourth_node

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

Definition at line 213 of file pg_list.h.

◆ lfourth_oid

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

Definition at line 212 of file pg_list.h.

◆ linitial

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

Definition at line 195 of file pg_list.h.

Referenced by add_paths_to_append_rel(), add_security_quals(), add_with_check_options(), addRangeTableEntryForFunction(), addRangeTableEntryForValues(), AddRelationNewConstraints(), 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(), examine_opclause_expression(), exec_save_simple_expr(), exec_simple_check_plan(), exec_stmt_call(), ExecBuildAggTrans(), ExecIndexBuildScanKeys(), ExecInitAlternativeSubPlan(), ExecInitExprRec(), ExecInitModifyTable(), ExecInitPartitionInfo(), ExecInitSubPlan(), ExecInitValuesScan(), ExecSecLabelStmt(), ExecSupportsMarkRestore(), expand_grouping_sets(), expand_indexqual_rowcompare(), ExpandColumnRefStar(), ExplainTargetRel(), exprCollation(), exprType(), exprTypmod(), extract_jsp_path_expr(), extract_not_arg(), extract_strong_not_arg(), FigureColnameInternal(), find_duplicate_ors(), find_minmax_aggs_walker(), find_param_referent(), findTargetlistEntrySQL92(), fix_indexqual_clause(), fix_scan_expr_mutator(), fix_upper_expr_mutator(), 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(), LookupTypeNameExtended(), make_ands_explicit(), make_partition_op_expr(), make_rel_from_joinlist(), make_row_comparison_op(), make_ruledef(), make_unique_from_pathkeys(), make_viewdef(), makeRangeVarFromNameList(), makeWholeRowVar(), match_clause_to_partition_key(), match_opclause_to_indexcol(), match_rowcompare_to_indexcol(), match_saopclause_to_indexcol(), matches_boolean_partition_clause(), MJExamineQuals(), negate_clause(), network_subset_support(), numeric_support(), operator_precedence_group(), operator_predicate_proof(), ordered_set_startup(), parse_hba_line(), parse_ident_line(), parseCheckAggregates(), ParseFuncOrColumn(), perform_base_backup(), pg_get_object_address(), plan_union_children(), plpgsql_parse_cwordrowtype(), plpgsql_parse_cwordtype(), PLy_abort_open_subtransactions(), PLy_subtransaction_exit(), PopOverrideSearchPath(), predicate_implied_by(), predicate_refuted_by(), prepare_sort_from_pathkeys(), preprocess_minmax_aggregates(), process_duplicate_ors(), process_owned_by(), processIndirection(), processState(), processTypesSpec(), pull_up_simple_subquery(), pull_up_simple_values(), pull_up_sublinks_qual_recurse(), query_is_distinct_for(), query_planner(), QueuePartitionConstraintValidation(), reconsider_full_join_clause(), recurse_set_operations(), reduce_outer_joins_pass2(), refresh_matview_datafill(), regnamespacein(), regrolein(), relation_excluded_by_constraints(), relation_is_updatable(), remove_useless_results_recurse(), replace_domain_constraint_value(), resolve_column_ref(), 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(), strip_implicit_coercions(), SyncPostCheckpoint(), system_rows_samplescangetsamplesize(), system_samplescangetsamplesize(), system_time_samplescangetsamplesize(), TemporalSimplify(), test_predtest(), test_support_func(), TidExprListCreate(), to_regnamespace(), to_regrole(), transformAExprBetween(), transformAExprIn(), transformAExprNullIf(), transformAExprOf(), transformAExprOp(), transformAssignedExpr(), transformColumnDefinition(), transformColumnRef(), transformDeclareCursorStmt(), transformGraph(), transformInsertRow(), transformInsertStmt(), transformJoinUsingClause(), transformPartitionBound(), transformPartitionRangeBounds(), transformRangeFunction(), transformReturningList(), transformSelectStmt(), transformSetOperationStmt(), transformSetOperationTree(), transformValuesClause(), transformWindowDefinitions(), transformXmlExpr(), TypeGetTupleDesc(), typenameTypeMod(), typeStringToTypeName(), varbit_support(), varchar_support(), and view_query_is_auto_updatable().

◆ linitial_int

◆ linitial_node

◆ linitial_oid

◆ list_make1

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

Definition at line 227 of file pg_list.h.

Referenced by add_dummy_return(), add_paths_to_append_rel(), add_predicate_to_index_quals(), Async_Notify(), ATAddCheckConstraint(), ATExecAddColumn(), ATExecAttachPartition(), ATExecColumnDefault(), 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_constant_function(), pull_up_simple_values(), pull_up_sublinks(), queue_listen(), readTimeLineHistory(), recordDependencyOnExpr(), recordDependencyOnSingleRelExpr(), regoperout(), regprocout(), remove_useless_results_recurse(), replace_empty_jointree(), resolve_unique_index_expr(), selectColorTrigrams(), set_baserel_partition_key_exprs(), split_pathtarget_at_srfs(), sql_fn_post_column_ref(), standard_ProcessUtility(), test_rls_hooks_permissive(), test_rls_hooks_restrictive(), TidQualFromRestrictInfo(), transformAExprDistinct(), transformAExprIn(), transformAlterTableStmt(), transformAssignmentIndirection(), transformColumnDefinition(), transformColumnRef(), transformCurrentOfExpr(), 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:255
#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:255
#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:268
#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:268
#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:268
#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(), create_hashjoin_plan(), DeconstructQualifiedName(), DefineAggregate(), deparseDistinctExpr(), deparseScalarArrayOpExpr(), dependency_is_compatible_clause(), does_not_exist_skipping(), examine_opclause_expression(), ExecIndexBuildScanKeys(), ExecInitAlternativeSubPlan(), ExecInitExprRec(), 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(), LookupTypeNameExtended(), make_row_comparison_op(), makeRangeVarFromNameList(), match_clause_to_partition_key(), match_opclause_to_indexcol(), match_saopclause_to_indexcol(), MJExamineQuals(), network_subset_support(), numeric_support(), operator_predicate_proof(), plpgsql_parse_cwordrowtype(), plpgsql_parse_cwordtype(), predicate_classify(), processTypesSpec(), reconsider_full_join_clause(), reduce_outer_joins_pass2(), resolve_column_ref(), scalararraysel(), simplify_boolean_equality(), sql_fn_post_column_ref(), TemporalSimplify(), test_predtest(), test_support_func(), TidExprListCreate(), transformAExprBetween(), transformColumnRef(), transformRangeFunction(), varbit_support(), and varchar_support().

◆ lsecond_int

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

Definition at line 201 of file pg_list.h.

◆ lsecond_node

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

◆ lsecond_oid

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

Definition at line 202 of file pg_list.h.

◆ lthird

◆ lthird_int

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

Definition at line 206 of file pg_list.h.

◆ lthird_node

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

Definition at line 208 of file pg_list.h.

Referenced by get_rule_expr().

◆ lthird_oid

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

Definition at line 207 of file pg_list.h.

◆ multi_for_advance_cell

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

Definition at line 426 of file pg_list.h.

◆ NIL

#define NIL   ((List *) NULL)

Definition at line 65 of file pg_list.h.

Referenced by _copyRestrictInfo(), _SPI_execute_plan(), _SPI_make_plan_non_temp(), _SPI_prepare_oneshot_plan(), _SPI_prepare_plan(), AcquireRewriteLocks(), add_dummy_return(), add_foreign_final_paths(), add_foreign_grouping_paths(), add_foreign_ordered_paths(), add_path(), add_path_precheck(), add_paths_to_append_rel(), add_paths_to_grouping_rel(), add_paths_to_joinrel(), add_paths_with_pathkeys_for_rel(), add_predicate_to_index_quals(), add_rte_to_flat_rtable(), add_security_quals(), add_with_check_options(), AddEventToPendingNotifies(), addFkRecurseReferenced(), addFkRecurseReferencing(), addRangeTableEntry(), addRangeTableEntryForCTE(), addRangeTableEntryForENR(), addRangeTableEntryForFunction(), addRangeTableEntryForJoin(), addRangeTableEntryForRelation(), 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(), asyncQueueUnregister(), AtAbort_Notify(), ATAddCheckConstraint(), ATAddForeignKeyConstraint(), AtCommit_Notify(), ATController(), AtEOXact_Snapshot(), ATExecAddColumn(), ATExecAddConstraint(), ATExecAlterColumnGenericOptions(), ATExecAlterConstraint(), ATExecColumnDefault(), ATExecDropConstraint(), ATExecGenericOptions(), ATExecReplicaIdentity(), ATExecSetRelOptions(), ATExecSetTableSpace(), ATExecValidateConstraint(), ATPostAlterTypeParse(), ATPrepAlterColumnType(), ATRewriteCatalogs(), ATRewriteTable(), ATRewriteTables(), autovacuum_do_vac_analyze(), BeginCopy(), binary_upgrade_create_empty_extension(), bitmap_and_cost_est(), bitmap_scan_cost_est(), bms_overlap_list(), btcostestimate(), btvalidate(), build_base_rel_tlists(), build_child_join_rel(), build_expression_pathkey(), build_index_pathkeys(), build_index_paths(), build_index_tlist(), build_join_pathkeys(), build_join_rel(), build_joinrel_joinlist(), build_joinrel_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(), 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(), 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(), EvalPlanQualEnd(), EvalPlanQualInit(), 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(), 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_internal(), gen_prune_steps_from_opexps(), generate_append_tlist(), generate_bitmap_or_paths(), generate_function_name(), generate_gather_paths(), generate_implied_equalities_for_column(), generate_join_implied_equalities(), generate_join_implied_equalities_broken(), generate_join_implied_equalities_for_ecs(), generate_join_implied_equalities_normal(), generate_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_internal(), GetParentedForeignKeyRefs(), GetPublicationRelations(), GetRelationPublications(), getRelationsInNamespace(), getState(), GetSubscriptionNotReadyRelations(), GetSubscriptionRelations(), GetUserMapping(), gimme_tree(), gincostestimate(), gistEmptyAllBuffers(), gistFindPath(), gistfixsplit(), gistGetNodeBuffer(), gistInitBuildBuffers(), gistplacetopage(), gistProcessEmptyingQueue(), GrantRole(), grouping_planner(), has_indexed_join_quals(), has_unique_index(), has_useful_pathkeys(), hash_inner_and_outer(), 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(), innerrel_is_unique(), insert_event_trigger_tuple(), InsertRule(), interpret_AS_clause(), interpret_func_support(), interpret_function_parameter_list(), intorel_startup(), is_degenerate_grouping(), is_dummy_rel(), is_innerrel_unique_for(), is_parallel_safe(), is_safe_append_member(), is_shippable(), is_strict_saop(), is_usable_unique_index(), isLockedRefname(), IsThereFunctionInNamespace(), join_is_removable(), join_search_one_level(), JsonValueListInitIterator(), label_sort_with_costsize(), lappend(), lappend_int(), lappend_oid(), lcons(), lcons_int(), lcons_oid(), list_concat(), list_concat_copy(), list_copy(), list_copy_deep(), list_copy_tail(), list_delete_first(), list_delete_last(), list_delete_nth_cell(), list_difference(), list_difference_int(), list_difference_oid(), list_difference_ptr(), list_free_private(), list_insert_nth(), list_insert_nth_int(), list_insert_nth_oid(), list_intersection(), list_intersection_int(), list_nth_cell(), list_truncate(), llvm_release_context(), load_domaintype_info(), load_hba(), load_ident(), load_relcache_init_file(), LoadPublications(), LockTableCommand(), logicalrep_read_truncate(), logicalrep_worker_stop_at_commit(), logicalrep_workers_find(), lookup_agg_function(), lookup_am_handler_func(), lookup_proof_cache(), lookup_ts_dictionary_cache(), LookupFuncName(), LookupFuncNameInternal(), LookupFuncWithArgs(), LookupTypeNameExtended(), make_ands_explicit(), make_ands_implicit(), make_bitmap_and(), make_bitmap_indexscan(), make_bitmap_or(), make_copy_attnamelist(), make_group_input_target(), make_hash(), make_inh_translation_list(), make_inner_pathkeys_for_merge(), make_join_rel(), make_limit(), make_lockrows(), make_material(), make_modifytable(), make_new_heap(), make_one_partition_rbound(), make_partial_grouping_target(), make_partition_op_expr(), make_partition_pruneinfo(), make_partitionedrel_pruneinfo(), make_pathkeys_for_sortclauses(), make_project_set(), make_recursive_union(), make_rel_from_joinlist(), make_restrictinfo_internal(), make_result(), make_row_comparison_op(), make_ruledef(), make_setop(), make_setop_translation_list(), make_sort(), make_sort_input_target(), make_sub_restrictinfos(), make_subplan(), make_tlist_from_pathtarget(), make_union_unique(), make_unique_from_pathkeys(), make_unique_from_sortclauses(), make_viewdef(), make_window_input_target(), make_windowagg(), makeColumnDef(), makeDependencyGraph(), makeDependencyGraphWalker(), makeFuncCall(), makeIndexInfo(), makeRangeConstructors(), makeTypeNameFromNameList(), map_partition_varattnos(), map_sql_typecoll_to_xmlschema_types(), mark_dummy_rel(), match_boolean_index_clause(), match_clause_to_indexcol(), match_clause_to_partition_key(), match_eclasses_to_foreign_key_col(), match_foreign_keys_to_quals(), match_network_function(), match_network_subset(), match_opclause_to_indexcol(), match_pathkeys_to_index(), match_pattern_prefix(), match_saopclause_to_indexcol(), match_unsorted_outer(), matchLocks(), MatchNamedCall(), materialize_finished_plan(), max_parallel_hazard(), mcv_get_match_bitmap(), merge_clump(), 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_on_commit_actions(), predicate_implied_by(), predicate_refuted_by(), prep_domain_constraints(), preprocess_function_rtes(), preprocess_groupclause(), preprocess_grouping_sets(), preprocess_minmax_aggregates(), preprocess_rowmarks(), print_function_arguments(), ProcedureCreate(), process_duplicate_ors(), process_equivalence(), process_sublinks_mutator(), process_syncing_tables_for_apply(), ProcessCompletedNotifies(), ProcessCopyOptions(), ProcessIncomingNotify(), ProcessStartupPacket(), processState(), processTypesSpec(), ProcessUtilitySlow(), prune_append_rel_partitions(), pull_ands(), pull_ors(), pull_up_constant_function(), pull_up_simple_subquery(), pull_up_simple_values(), pull_up_sublinks_jointree_recurse(), pull_up_sublinks_qual_recurse(), pull_var_clause(), pull_vars_of_level(), PushOverrideSearchPath(), query_planner(), query_supports_distinctness(), query_to_oid_list(), query_tree_mutator(), QueryRewrite(), range_table_mutator(), raw_parser(), readTimeLineHistory(), recomputeNamespacePath(), recurse_set_operations(), reduce_outer_joins(), reduce_outer_joins_pass1(), reduce_outer_joins_pass2(), regprocedurein(), regprocin(), regprocout(), reindex_relation(), ReindexMultipleTables(), ReindexRelationConcurrently(), rel_is_distinct_for(), rel_supports_distinctness(), relation_excluded_by_constraints(), relation_has_unique_index_for(), RelationBuildDesc(), RelationCacheInvalidate(), 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_hash_references(), 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_simple_rel_arrays(), 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(), 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(), TerminateOtherDBBackends(), test_rls_hooks_permissive(), test_rls_hooks_restrictive(), textarray_to_stringlist(), textarray_to_strvaluelist(), textToQualifiedNameList(), TidExprListCreate(), TidQualFromRestrictInfo(), TidQualFromRestrictInfoList(), to_regproc(), to_regprocedure(), toast_open_indexes(), tokenize_file(), transformAExprBetween(), transformAExprIn(), transformAggregateCall(), transformAlterTableStmt(), transformArrayExpr(), transformAssignmentIndirection(), transformAssignmentSubscripts(), transformBoolExpr(), transformCallStmt(), transformCaseExpr(), transformCheckConstraints(), transformCoalesceExpr(), transformColumnDefinition(), transformContainerSubscripts(), transformCreateSchemaStmt(), transformCreateStmt(), transformDeclareCursorStmt(), transformDeleteStmt(), transformDistinctClause(), transformDistinctOnClause(), transformExpressionList(), transformFKConstraints(), transformFkeyGetPrimaryKey(), transformFromClauseItem(), transformFuncCall(), transformGraph(), transformGroupClause(), transformGroupClauseList(), transformGroupingFunc(), transformGroupingSet(), transformIndexConstraint(), transformIndexConstraints(), transformIndirection(), transformInsertRow(), transformInsertStmt(), transformJoinUsingClause(), transformLockingClause(), transformMinMaxExpr(), transformMultiAssignRef(), transformOfType(), transformOnConflictArbiter(), transformOnConflictClause(), transformPartitionBound(), transformPartitionRangeBounds(), transformPartitionSpec(), transformRangeFunction(), transformRangeTableFunc(), transformRangeTableSample(), transformRelOptions(), transformReturningList(), transformRowExpr(), transformRuleStmt(), transformSelectStmt(), transformSetOperationStmt(), transformSetOperationTree(), transformSortClause(), transformSubLink(), transformTableLikeClause(), transformTargetList(), transformUpdateTargetList(), transformValuesClause(), transformWindowDefinitions(), transformWindowFuncCall(), transformWithClause(), transformXmlExpr(), translate_sub_tlist(), trim_mergeclauses_for_inner_pathkeys(), trivial_subqueryscan(), truncate_useless_pathkeys(), try_hashjoin_path(), try_mergejoin_path(), try_partial_hashjoin_path(), try_partial_mergejoin_path(), TryReuseForeignKey(), ts_headline_byid_opt(), ts_headline_json_byid_opt(), ts_headline_jsonb_byid_opt(), TypeGetTupleDesc(), typeInheritsFrom(), typenameTypeMod(), typeStringToTypeName(), unique_key_recheck(), UnlinkLockFiles(), untransformRelOptions(), update_mergeclause_eclasses(), UpdateDomainConstraintRef(), UpdateIndexRelation(), UpdateLogicalMappings(), UpdateRangeTableOfViewParse(), use_physical_tlist(), vacuum(), ValuesNext(), view_query_is_auto_updatable(), WaitForLockersMultiple(), XactHasExportedSnapshots(), and xmlelement().

Typedef Documentation

◆ ForBothCellState

◆ ForBothState

typedef struct ForBothState ForBothState

◆ ForEachState

typedef struct ForEachState ForEachState

◆ ForFiveState

typedef struct ForFiveState ForFiveState

◆ ForFourState

typedef struct ForFourState ForFourState

◆ ForThreeState

typedef struct ForThreeState ForThreeState

◆ List

typedef struct List List

◆ list_sort_comparator

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

Definition at line 574 of file pg_list.h.

◆ ListCell

typedef union ListCell ListCell

Function Documentation

◆ for_both_cell_setup()

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

Definition at line 450 of file pg_list.h.

References list_cell_number(), and list_length().

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

◆ for_each_cell_setup()

static ForEachState for_each_cell_setup ( List lst,
ListCell initcell 
)
inlinestatic

Definition at line 399 of file pg_list.h.

References list_cell_number(), and list_length().

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

◆ lappend()

List* lappend ( List list,
void *  datum 
)

Definition at line 322 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(), AddEventToPendingNotifies(), 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(), 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_hashjoin_plan(), create_index_paths(), create_indexscan_plan(), create_join_clause(), create_list_bounds(), create_merge_append_plan(), create_modifytable_plan(), create_nestloop_path(), create_partitionwise_grouping_paths(), create_tidscan_plan(), create_unique_plan(), database_to_xmlschema_internal(), deconstruct_recurse(), DefineRelation(), DefineSequence(), DefineTSDictionary(), DefineView(), DefineVirtualRelation(), deparseParam(), deparseVar(), deserialize_deflist(), determineRecursiveColTypes(), distribute_qual_to_rels(), distribute_restrictinfo_to_rels(), do_pg_start_backup(), DoCopy(), estimate_multivariate_ndistinct(), estimate_num_groups(), eval_const_expressions_mutator(), EvalPlanQualStart(), EventTriggerAlterTableEnd(), EventTriggerCollectAlterDefPrivs(), EventTriggerCollectAlterOpFam(), EventTriggerCollectAlterTableSubcmd(), EventTriggerCollectAlterTSConfig(), EventTriggerCollectCreateOpClass(), EventTriggerCollectGrant(), EventTriggerCollectSimpleCommand(), Exec_ListenCommit(), ExecAllocTableSlot(), ExecEvalXmlExpr(), ExecGetTriggerResultRel(), ExecInitAlternativeSubPlan(), ExecInitExprList(), ExecInitExprRec(), ExecInitLockRows(), ExecInitModifyTable(), ExecInitNode(), ExecInitPartitionInfo(), ExecInitSubPlan(), ExecPrepareExprList(), ExecSerializePlan(), ExecuteGrantStmt(), ExecuteTruncate(), ExecuteTruncateGuts(), expand_grouping_sets(), expand_groupingset_node(), expand_inherited_rtentry(), expand_single_inheritance_child(), expand_targetlist(), expand_vacuum_rel(), 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_relation_statistics(), get_rels_with_domain(), get_required_extension(), get_sortgrouplist_exprs(), get_steps_using_prefix_recurse(), get_subscription_list(), get_switched_clauses(), get_tables_to_cluster(), get_tlist_exprs(), get_update_query_targetlist_def(), get_useful_ecs_for_relation(), get_useful_pathkeys_for_relation(), get_windowfunc_expr(), GetAfterTriggersTableData(), getObjectIdentityParts(), getState(), GetSubscriptionNotReadyRelations(), GetSubscriptionRelations(), gistFindPath(), gistfixsplit(), gistplacetopage(), hash_inner_and_outer(), heap_truncate(), identify_current_nestloop_params(), identify_opfamily_groups(), index_concurrently_create_copy(), infer_arbiter_indexes(), inheritance_planner(), init_execution_state(), init_sql_fcache(), InitPlan(), innerrel_is_unique(), interpret_function_parameter_list(), intorel_startup(), is_innerrel_unique_for(), join_is_removable(), jsonb_ops__extract_nodes(), jsonb_path_ops__extract_nodes(), JsonValueListAppend(), list_append_unique(), list_append_unique_ptr(), list_concat_unique(), list_concat_unique_ptr(), list_difference(), list_difference_ptr(), list_intersection(), list_union(), list_union_ptr(), llvm_compile_module(), load_hba(), load_ident(), LoadPublications(), logicalrep_worker_stop_at_commit(), logicalrep_workers_find(), make_canonical_pathkey(), make_copy_attnamelist(), make_group_input_target(), make_inh_translation_list(), make_inner_pathkeys_for_merge(), make_modifytable(), make_partial_grouping_target(), make_partition_op_expr(), make_partition_pruneinfo(), make_partitionedrel_pruneinfo(), make_pathkeys_for_sortclauses(), make_pathtarget_from_tlist(), make_rel_from_joinlist(), make_row_comparison_op(), make_setop_translation_list(), make_sort_input_target(), make_sub_restrictinfos(), make_tlist_from_pathtarget(), make_window_input_target(), makeDependencyGraphWalker(), match_clause_to_index(), match_clause_to_partition_key(), match_foreign_keys_to_quals(), match_join_clauses_to_index(), match_network_subset(), match_pathkeys_to_index(), match_pattern_prefix(), matchLocks(), merge_clump(), MergeAttributes(), negate_clause(), next_field_expand(), nodeRead(), OpenTableList(), order_qual_clauses(), parse_hba_line(), parseCheckAggregates(), ParseFuncOrColumn(), PartConstraintImpliedByRelConstraint(), perform_base_backup(), pg_get_object_address(), pg_logical_slot_get_changes_guts(), pg_plan_queries(), pg_rewrite_query(), plan_union_children(), postgresAddForeignUpdateTargets(), postgresGetForeignPaths(), postgresGetForeignPlan(), postgresImportForeignSchema(), prep_domain_constraints(), prepare_sort_from_pathkeys(), preprocess_groupclause(), preprocess_grouping_sets(), preprocess_rowmarks(), preprocess_targetlist(), process_duplicate_ors(), process_equivalence(), process_pipe_input(), process_sublinks_mutator(), process_subquery_nestloop_params(), process_syncing_tables_for_apply(), ProcessStartupPacket(), pull_ands(), pull_ors(), pull_up_simple_values(), pull_up_sublinks_jointree_recurse(), pull_up_sublinks_qual_recurse(), pull_up_union_leaf_queries(), pull_var_clause_walker(), pull_vars_walker(), query_tree_mutator(), QueryRewrite(), queue_listen(), range_table_mutator(), read_tablespace_map(), rebuild_fdw_scan_tlist(), RebuildConstraintComment(), record_plan_function_dependency(), record_plan_type_dependency(), reduce_outer_joins_pass1(), register_ENR(), register_label_provider(), 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(), 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().

323 {
324  Assert(IsPointerList(list));
325 
326  if (list == NIL)
327  list = new_list(T_List, 1);
328  else
329  new_tail_cell(list);
330 
331  lfirst(list_tail(list)) = datum;
332  check_list_invariants(list);
333  return list;
334 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:76
static void new_tail_cell(List *list)
Definition: list.c:306
#define IsPointerList(l)
Definition: list.c:53
Definition: nodes.h:297
#define Assert(condition)
Definition: c.h:733
#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:87

◆ lappend_int()

List* lappend_int ( List list,
int  datum 
)

Definition at line 340 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(), TerminateOtherDBBackends(), transformDistinctOnClause(), transformGroupClauseList(), transformInsertStmt(), transformRangeTableFunc(), transformSetOperationTree(), transformValuesClause(), and translate_sub_tlist().

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

◆ lappend_oid()

List* lappend_oid ( List list,
Oid  datum 
)

Definition at line 358 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(), CheckAttributeType(), CloneFkReferenced(), CloneFkReferencing(), compute_semijoin_info(), convert_EXISTS_to_ANY(), create_hashjoin_plan(), create_indexscan_plan(), CreateExtensionInternal(), CreateFunction(), CreateTrigger(), DefineRelation(), do_autovacuum(), EventTriggerCommonSetup(), ExecAlterDefaultPrivilegesStmt(), ExecInitPartitionInfo(), ExecInsertIndexTuples(), ExecuteGrantStmt(), ExecuteTruncate(), ExecuteTruncateGuts(), expand_indexqual_rowcompare(), extract_query_dependencies_walker(), ExtractExtensionList(), find_all_inheritors(), find_inheritance_children(), find_typed_table_dependencies(), fireRIRrules(), fix_expr_common(), generate_new_exec_param(), get_index_ref_constraints(), get_mergejoin_opfamilies(), get_partition_ancestors_worker(), get_steps_using_prefix_recurse(), GetAllTablesPublicationRelations(), GetAllTablesPublications(), getOwnedSequences_internal(), GetParentedForeignKeyRefs(), GetPublicationRelations(), GetRelationPublications(), getRelationsInNamespace(), heap_truncate_check_FKs(), heap_truncate_find_FKs(), index_concurrently_swap(), infer_arbiter_indexes(), inline_function(), list_append_unique_oid(), list_concat_unique_oid(), list_difference_oid(), list_union_oid(), LockViewRecurse(), logicalrep_read_truncate(), make_row_comparison_op(), nodeRead(), objectNamesToOids(), objectsInSchemaToOids(), oid_array_to_list(), OpenTableList(), pgstat_recv_inquiry(), PreCommit_on_commit_actions(), query_to_oid_list(), recomputeNamespacePath(), ReindexMultipleTables(), ReindexRelationConcurrently(), rel_is_distinct_for(), RelationGetIndexList(), RelationGetStatExtList(), RememberConstraintForRebuilding(), RememberIndexForRebuilding(), remove_useless_groupby_columns(), replace_outer_agg(), replace_outer_grouping(), RestoreReindexState(), roleSpecsToIds(), transformAggregateCall(), transformInsertStmt(), transformRangeTableFunc(), transformSetOperationTree(), transformValuesClause(), TryReuseForeignKey(), and typeInheritsFrom().

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

◆ lcons()

List* lcons ( void *  datum,
List list 
)

Definition at line 454 of file list.c.

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

Referenced by build_minmax_path(), checkWellFormedRecursionWalker(), consider_groupingsets_paths(), CreateExprContext(), CreateLockFile(), 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(), gistEmptyAllBuffers(), gistFindPath(), gistGetNodeBuffer(), gistPushItupToNodeBuffer(), load_domaintype_info(), makeDependencyGraphWalker(), pg_get_object_address(), plan_union_children(), PLy_subtransaction_enter(), PrepareClientEncoding(), push_child_plan(), pushOperator(), PushOverrideSearchPath(), pushStop(), pushValue_internal(), readTimeLineHistory(), register_on_commit_action(), RelationBuildRowSecurity(), RelationCacheInvalidate(), reorder_grouping_sets(), RewriteQuery(), rewriteTargetView(), sepgsql_avc_compute(), set_cheapest(), show_agg_keys(), show_group_keys(), sort_inner_and_outer(), transformCaseExpr(), and UpdateRangeTableOfViewParse().

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

◆ lcons_int()

List* lcons_int ( int  datum,
List list 
)

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

473 {
474  Assert(IsIntegerList(list));
475 
476  if (list == NIL)
477  list = new_list(T_IntList, 1);
478  else
479  new_head_cell(list);
480 
481  lfirst_int(list_head(list)) = datum;
482  check_list_invariants(list);
483  return list;
484 }
#define NIL
Definition: pg_list.h:65
static void new_head_cell(List *list)
Definition: list.c:288
#define check_list_invariants(l)
Definition: list.c:76
#define IsIntegerList(l)
Definition: list.c:54
#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:733
static List * new_list(NodeTag type, int min_size)
Definition: list.c:87

◆ lcons_oid()

List* lcons_oid ( Oid  datum,
List list 
)

Definition at line 490 of file list.c.

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

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

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

◆ list_append_unique()

List* list_append_unique ( List list,
void *  datum 
)

Definition at line 1181 of file list.c.

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

Referenced by add_security_quals(), and add_with_check_options().

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

◆ list_append_unique_int()

List* list_append_unique_int ( List list,
int  datum 
)

Definition at line 1206 of file list.c.

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

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

◆ list_append_unique_oid()

List* list_append_unique_oid ( List list,
Oid  datum 
)

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

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

◆ list_append_unique_ptr()

List* list_append_unique_ptr ( List list,
void *  datum 
)

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

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

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

◆ list_concat()

List* list_concat ( List list1,
const List list2 
)

Definition at line 516 of file list.c.

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

Referenced by accumulate_append_subpath(), add_paths_to_append_rel(), add_predicate_to_index_quals(), addRangeTableEntryForJoin(), addRangeTableEntryForTableFunc(), AtEOSubXact_ApplyLauncher(), ATExecAttachPartition(), 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(), deconstruct_recurse(), DefineRelation(), deparseDirectDeleteSql(), deparseDirectUpdateSql(), deparseFromExprForRel(), estimate_path_cost_size(), expand_groupingset_node(), ExpandAllTables(), expandRTE(), extract_or_clause(), extract_rollup_sets(), fileBeginForeignScan(), fileGetOptions(), find_forced_null_vars(), find_indexpath_quals(), find_mergeclauses_for_outer_pathkeys(), find_nonnullable_vars_walker(), fireRIRrules(), flatten_grouping_sets(), fmgr_sql_validator(), foreign_grouping_ok(), foreign_join_ok(), gen_partprune_steps_internal(), gen_prune_steps_from_opexps(), generate_bitmap_or_paths(), generate_join_implied_equalities(), generate_join_implied_equalities_for_ecs(), generate_join_implied_equalities_normal(), generate_partition_qual(), get_baserel_parampathinfo(), get_foreign_key_join_selectivity(), get_from_clause_item(), get_index_paths(), get_join_index_paths(), get_joinrel_parampathinfo(), get_relation_constraints(), get_rels_with_domain(), get_steps_using_prefix_recurse(), init_sql_fcache(), is_parallel_safe(), objectsInSchemaToOids(), process_equivalence(), process_sublinks_mutator(), pull_ands(), pull_ors(), pull_up_simple_subquery(), pull_up_simple_union_all(), reduce_outer_joins_pass2(), reduce_unique_semijoins(), reorder_grouping_sets(), RewriteQuery(), rewriteRuleAction(), rewriteTargetListIU(), selectColorTrigrams(), set_append_rel_pathlist(), set_plan_refs(), split_pathtarget_at_srfs(), split_pathtarget_walker(), SyncRepGetSyncStandbysPriority(), TidQualFromRestrictInfoList(), transformAExprIn(), transformAlterTableStmt(), transformCreateSchemaStmt(), transformCreateStmt(), transformExpressionList(), transformExtendedStatistics(), transformFromClause(), transformFromClauseItem(), transformIndexConstraints(), transformTargetList(), and vacuum().

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

◆ list_concat_copy()

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

Definition at line 553 of file list.c.

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

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

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

◆ list_concat_unique()

List* list_concat_unique ( List list1,
const List list2 
)

Definition at line 1238 of file list.c.

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

Referenced by create_bitmap_subplan(), and select_active_windows().

1239 {
1240  ListCell *cell;
1241 
1242  Assert(IsPointerList(list1));
1243  Assert(IsPointerList(list2));
1244 
1245  foreach(cell, list2)
1246  {
1247  if (!list_member(list1, lfirst(cell)))
1248  list1 = lappend(list1, lfirst(cell));
1249  }
1250 
1251  check_list_invariants(list1);
1252  return list1;
1253 }
#define check_list_invariants(l)
Definition: list.c:76
bool list_member(const List *list, const void *datum)
Definition: list.c:614
#define IsPointerList(l)
Definition: list.c:53
List * lappend(List *list, void *datum)
Definition: list.c:322
#define Assert(condition)
Definition: c.h:733
#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 1281 of file list.c.

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

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

◆ list_concat_unique_oid()

List* list_concat_unique_oid ( List list1,
const List list2 
)

Definition at line 1302 of file list.c.

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

Referenced by GetRelationPublicationActions().

1303 {
1304  ListCell *cell;
1305 
1306  Assert(IsOidList(list1));
1307  Assert(IsOidList(list2));
1308 
1309  foreach(cell, list2)
1310  {
1311  if (!list_member_oid(list1, lfirst_oid(cell)))
1312  list1 = lappend_oid(list1, lfirst_oid(cell));
1313  }
1314 
1315  check_list_invariants(list1);
1316  return list1;
1317 }
#define check_list_invariants(l)
Definition: list.c:76
List * lappend_oid(List *list, Oid datum)
Definition: list.c:358
#define IsOidList(l)
Definition: list.c:55
bool list_member_oid(const List *list, Oid datum)
Definition: list.c:675
#define Assert(condition)
Definition: c.h:733
#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 1260 of file list.c.

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

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

◆ list_copy()

List* list_copy ( const List list)

Definition at line 1404 of file list.c.

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

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

1405 {
1406  List *newlist;
1407 
1408  if (oldlist == NIL)
1409  return NIL;
1410 
1411  newlist = new_list(oldlist->type, oldlist->length);
1412  memcpy(newlist->elements, oldlist->elements,
1413  newlist->length * sizeof(ListCell));
1414 
1415  check_list_invariants(newlist);
1416  return newlist;
1417 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:76
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:87

◆ list_copy_deep()

List* list_copy_deep ( const List oldlist)

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

1450 {
1451  List *newlist;
1452 
1453  if (oldlist == NIL)
1454  return NIL;
1455 
1456  /* This is only sensible for pointer Lists */
1457  Assert(IsA(oldlist, List));
1458 
1459  newlist = new_list(oldlist->type, oldlist->length);
1460  for (int i = 0; i < newlist->length; i++)
1461  lfirst(&newlist->elements[i]) =
1462  copyObjectImpl(lfirst(&oldlist->elements[i]));
1463 
1464  check_list_invariants(newlist);
1465  return newlist;
1466 }
#define NIL
Definition: pg_list.h:65
#define IsA(nodeptr, _type_)
Definition: nodes.h:576
#define check_list_invariants(l)
Definition: list.c:76
ListCell * elements
Definition: pg_list.h:55
#define Assert(condition)
Definition: c.h:733
#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:87
void * copyObjectImpl(const void *from)
Definition: copyfuncs.c:4758

◆ list_copy_tail()

List* list_copy_tail ( const List list,
int  nskip 
)

Definition at line 1423 of file list.c.

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

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

1424 {
1425  List *newlist;
1426 
1427  if (nskip < 0)
1428  nskip = 0; /* would it be better to elog? */
1429 
1430  if (oldlist == NIL || nskip >= oldlist->length)
1431  return NIL;
1432 
1433  newlist = new_list(oldlist->type, oldlist->length - nskip);
1434  memcpy(newlist->elements, &oldlist->elements[nskip],
1435  newlist->length * sizeof(ListCell));
1436 
1437  check_list_invariants(newlist);
1438  return newlist;
1439 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:76
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:87

◆ list_deduplicate_oid()

void list_deduplicate_oid ( List list)

Definition at line 1326 of file list.c.

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

Referenced by heap_truncate_find_FKs().

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

◆ list_delete()

List* list_delete ( List list,
void *  datum 
)

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

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

◆ list_delete_cell()

List* list_delete_cell ( List list,
ListCell cell 
)

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

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

◆ list_delete_first()

◆ list_delete_int()

List* list_delete_int ( List list,
int  datum 
)

Definition at line 816 of file list.c.

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

Referenced by reorder_grouping_sets().

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

◆ list_delete_last()

List* list_delete_last ( List list)

Definition at line 878 of file list.c.

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

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

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

◆ list_delete_nth_cell()

List* list_delete_nth_cell ( List list,
int  n 
)

Definition at line 697 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, pfree(), and VALGRIND_MAKE_MEM_NOACCESS.

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

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

◆ list_delete_oid()

List* list_delete_oid ( List list,
Oid  datum 
)

Definition at line 835 of file list.c.

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

Referenced by RemoveReindexPending().

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

◆ list_delete_ptr()

List* list_delete_ptr ( List list,
void *  datum 
)

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

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

◆ list_difference()

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

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

1078 {
1079  const ListCell *cell;
1080  List *result = NIL;
1081 
1082  Assert(IsPointerList(list1));
1083  Assert(IsPointerList(list2));
1084 
1085  if (list2 == NIL)
1086  return list_copy(list1);
1087 
1088  foreach(cell, list1)
1089  {
1090  if (!list_member(list2, lfirst(cell)))
1091  result = lappend(result, lfirst(cell));
1092  }
1093 
1094  check_list_invariants(result);
1095  return result;
1096 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:76
List * list_copy(const List *oldlist)
Definition: list.c:1404
bool list_member(const List *list, const void *datum)
Definition: list.c:614
#define IsPointerList(l)
Definition: list.c:53
List * lappend(List *list, void *datum)
Definition: list.c:322
#define Assert(condition)
Definition: c.h:733
#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 1128 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().

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

◆ list_difference_oid()

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

Definition at line 1153 of file list.c.

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

1154 {
1155  const ListCell *cell;
1156  List *result = NIL;
1157 
1158  Assert(IsOidList(list1));
1159  Assert(IsOidList(list2));
1160 
1161  if (list2 == NIL)
1162  return list_copy(list1);
1163 
1164  foreach(cell, list1)
1165  {
1166  if (!list_member_oid(list2, lfirst_oid(cell)))
1167  result = lappend_oid(result, lfirst_oid(cell));
1168  }
1169 
1170  check_list_invariants(result);
1171  return result;
1172 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:76
List * list_copy(const List *oldlist)
Definition: list.c:1404
List * lappend_oid(List *list, Oid datum)
Definition: list.c:358
#define IsOidList(l)
Definition: list.c:55
bool list_member_oid(const List *list, Oid datum)
Definition: list.c:675
#define Assert(condition)
Definition: c.h:733
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 1103 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().

1104 {
1105  const ListCell *cell;
1106  List *result = NIL;
1107 
1108  Assert(IsPointerList(list1));
1109  Assert(IsPointerList(list2));
1110 
1111  if (list2 == NIL)
1112  return list_copy(list1);
1113 
1114  foreach(cell, list1)
1115  {
1116  if (!list_member_ptr(list2, lfirst(cell)))
1117  result = lappend(result, lfirst(cell));
1118  }
1119 
1120  check_list_invariants(result);
1121  return result;
1122 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:76
List * list_copy(const List *oldlist)
Definition: list.c:1404
#define IsPointerList(l)
Definition: list.c:53
List * lappend(List *list, void *datum)
Definition: list.c:322
bool list_member_ptr(const List *list, const void *datum)
Definition: list.c:635
#define Assert(condition)
Definition: c.h:733
#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 1377 of file list.c.

References list_free_private().

Referenced by AfterTriggerSetState(), AlterIndexNamespaces(), arrayconst_cleanup_fn(), arrayexpr_cleanup_fn(), ATCheckPartitionsNotInUse(), AtEOSubXact_Namespace(), AtEOXact_Namespace(), ATExecChangeOwner(), ATExecDropNotNull(), ATExecSetTableSpace(), build_base_rel_tlists(), build_remote_returning(), calc_joinrel_size_estimate(), calculate_indexes_size(), calculate_toast_table_size(), check_datestyle(), check_log_destination(), check_search_path(), check_temp_tablespaces(), check_wal_consistency_checking(), choose_bitmap_and(), compute_semi_anti_join_factors(), CopyFrom(), CopyMultiInsertBufferFlush(), CopyMultiInsertInfoCleanup(), CreateExtensionInternal(), CreateTrigger(), current_schema(), current_schemas(), DefineIndex(), DefineRelation(), distribute_qual_to_rels(), DropSubscription(), EventTriggerDDLCommandEnd(), EventTriggerDDLCommandStart(), EventTriggerSQLDrop(), EventTriggerTableRewrite(), ExecInitPartitionInfo(), ExecInsert(), ExecOpenIndices(), ExecRefreshMatView(), ExecResetTupleTable(), ExecSimpleRelationInsert(), ExecSimpleRelationUpdate(), ExecUpdate(), extract_lateral_references(), ExtractExtensionList(), find_all_inheritors(), find_compatible_peragg(), find_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_last(), list_delete_nth_cell(), make_group_input_target(), make_partial_grouping_target(), make_pathkeys_for_window(), make_sort_input_target(), make_window_input_target(), max_parallel_hazard_walker(), 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(), reorder_grouping_sets(), reparameterize_pathlist_by_child(), roles_has_privs_of(), roles_is_member_of(), sepgsql_dml_privileges(), simplify_and_arguments(), simplify_or_arguments(), stringToQualifiedNameList(), SyncRepGetSyncRecPtr(), SyncRepGetSyncStandbysPriority(), textToQualifiedNameList(), toast_open_indexes(), transformFkeyCheckAttrs(), transformFkeyGetPrimaryKey(), transformTableLikeClause(), transformValuesClause(), triggered_change_notification(), typeInheritsFrom(), vac_open_indexes(), and WaitForLockers().

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

◆ list_free_deep()

void list_free_deep ( List list)

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

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

◆ list_head()

static ListCell* list_head ( const List l)
inlinestatic

Definition at line 125 of file pg_list.h.

References List::elements.

Referenced by analyzeCTE(), appendTypeNameToBuffer(), arrayexpr_startup_fn(), assign_hypothetical_collations(), ATAddForeignKeyConstraint(), boolexpr_startup_fn(), build_index_tlist(), buildRelationAliases(), CheckRADIUSAuth(), checkWellFormedRecursionWalker(), coerce_record_to_complex(), compare_tlist_datatypes(), ComputeIndexAttrs(), consider_groupingsets_paths(), ConstructTupleDescriptor(), cost_bitmap_and_node(), cost_bitmap_or_node(), create_ctas_nodata(), create_mergejoin_plan(), create_modifytable_path(), DefineView(), deparseOpExpr(), deparseSubscriptingRef(), do_analyze_rel(), dump_getdiag(), examine_variable(), exec_stmt_raise(), ExecInitJunkFilterConversion(), expand_targetlist(), expandRTE(), extract_rollup_sets(), fix_indexqual_operand(), flatten_set_variable_args(), FormIndexDatum(), FormPartitionKeyDatum(), funcname_signature_string(), generate_append_tlist(), generate_setop_grouplist(), generateClonedIndexStmt(), get_qual_for_hash(), get_qual_for_range(), get_range_nulltest(), get_steps_using_prefix(), get_update_query_targetlist_def(), has_partition_attrs(), intorel_startup(), join_search_one_level(), jsonb_path_query_internal(), lcons(), lcons_int(), lcons_oid(), list_startup_fn(), make_inner_pathkeys_for_merge(), makeDependencyGraphWalker(), match_index_to_operand(), NameListToQuotedString(), NameListToString(), OverrideSearchPathMatchesCurrent(), parse_hba_line(), parse_ident_line(), perform_pruning_base_step(), pg_get_indexdef_worker(), pg_get_partkeydef_worker(), postprocess_setop_tlist(), PreCommit_Notify(), print_function_arguments(), printSubscripts(), process_startup_options(), query_is_distinct_for(), RelationBuildPartitionKey(), SendRowDescriptionCols_3(), set_baserel_partition_key_exprs(), sort_inner_and_outer(), tfuncLoadRows(), tlist_matches_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 401 of file list.c.

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

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

402 {
403  if (list == NIL)
404  {
405  Assert(pos == 0);
406  return list_make1(datum);
407  }
408  Assert(IsPointerList(list));
409  lfirst(insert_new_cell(list, pos)) = datum;
410  check_list_invariants(list);
411  return list;
412 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:76
static ListCell * insert_new_cell(List *list, int pos)
Definition: list.c:380
#define list_make1(x1)
Definition: pg_list.h:227
#define IsPointerList(l)
Definition: list.c:53
#define Assert(condition)
Definition: c.h:733
#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 415 of file list.c.

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

416 {
417  if (list == NIL)
418  {
419  Assert(pos == 0);
420  return list_make1_int(datum);
421  }
422  Assert(IsIntegerList(list));
423  lfirst_int(insert_new_cell(list, pos)) = datum;
424  check_list_invariants(list);
425  return list;
426 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:76
static ListCell * insert_new_cell(List *list, int pos)
Definition: list.c:380
#define IsIntegerList(l)
Definition: list.c:54
#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:733

◆ list_insert_nth_oid()

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

Definition at line 429 of file list.c.

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

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

◆ list_intersection()

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

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

1020 {
1021  List *result;
1022  const ListCell *cell;
1023 
1024  if (list1 == NIL || list2 == NIL)
1025  return NIL;
1026 
1027  Assert(IsPointerList(list1));
1028  Assert(IsPointerList(list2));
1029 
1030  result = NIL;
1031  foreach(cell, list1)
1032  {
1033  if (list_member(list2, lfirst(cell)))
1034  result = lappend(result, lfirst(cell));
1035  }
1036 
1037  check_list_invariants(result);
1038  return result;
1039 }
#define NIL
Definition: pg_list.h:65
#define check_list_invariants(l)
Definition: list.c:76
bool list_member(const List *list, const void *datum)
Definition: list.c:614
#define IsPointerList(l)
Definition: list.c:53
List * lappend(List *list, void *datum)
Definition: list.c:322
#define Assert(condition)
Definition: c.h:733
#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 1045 of file list.c.

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

Referenced by parseCheckAggregates().

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

◆ list_length()

static int list_length ( const List l)
inlinestatic

Definition at line 169 of file pg_list.h.

References List::length.

Referenced by _copyMergeJoin(), _outForeignKeyOptInfo(), _outMergeJoin(), _outPathTarget(), _readMergeJoin(), acquire_inherited_sample_rows(), add_child_join_rel_equivalences(), add_child_rel_equivalences(), add_column_to_pathtarget(), add_function_defaults(), add_paths_to_append_rel(), add_rte_to_flat_rtable(), add_security_quals(), add_sp_item_to_pathtarget(), add_to_flat_tlist(), add_with_check_options(), AddEventToPendingNotifies(), 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(), 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_opclause_expression(), 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(), 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_eclass_for_sort_expr(), get_expr_result_type(), get_foreign_key_join_selectivity(), get_from_clause_item(), get_func_expr(), get_join_variables(), get_matching_partitions(), get_name_for_var_field(), get_number_of_groups(), get_object_address_attrdef(), get_object_address_attribute(), get_object_address_defacl(), get_object_address_opf_member(), get_object_address_relobject(), get_oper_expr(), get_partition_qual_relid(), get_qual_for_range(), get_query_def(), get_relation_foreign_keys(), get_restriction_variable(), get_rightop(), get_rtable_name(), get_rte_attribute_is_dropped(), get_rte_attribute_name(), get_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(), getIdentitySequence(), getInsertSelectQuery(), GetRTEByRangeTablePosn(), getTokenTypes(), gimme_tree(), gincostestimate(), gistbufferinginserttuples(), gistfinishsplit(), gistRelocateBuildBuffersOnSplit(), grouping_planner(), has_relevant_eclass_joinclause(), hash_ok_operator(), hashvalidate(), have_relevant_eclass_joinclause(), have_relevant_joinclause(), identify_join_columns(), inheritance_planner(), init_sexpr(), initial_cost_hashjoin(), initialize_peragg(), InitPlan(), inline_function(), inline_set_returning_function(), interpret_AS_clause(), interpret_function_parameter_list(), interval_support(), is_safe_append_member(), is_simple_values(), is_strict_saop(), IsTidEqualAnyClause(), IsTidEqualClause(), IsTransactionExitStmtList(), IsTransactionStmtList(), JsonValueListIsEmpty(), JsonValueListLength(), like_regex_support(), list_deduplicate_oid(), list_delete_last(), list_sort(), list_truncate(), LookupFuncWithArgs(), LookupOperWithArgs(), LookupTypeNameExtended(), make_ands_explicit(), make_jsp_expr_node_args(), make_modifytable(), make_partition_op_expr(), make_partition_pruneinfo(), make_pathtarget_from_tlist(), make_recursive_union(), make_rel_from_joinlist(), make_restrictinfo_internal(), make_row_comparison_op(), make_row_distinct_op(), make_ruledef(), make_setop(), make_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(), merge_clump(), 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_pruning_base_step(), perform_pruning_combine_step(), PerformCursorOpen(), pg_get_function_arg_default(), pg_get_object_address(), pg_get_publication_tables(), pg_listening_channels(), pg_partition_ancestors(), pg_partition_tree(), pgoutput_startup(), plpgsql_parse_cwordrowtype(), plpgsql_parse_cwordtype(), PLy_abort_open_subtransactions(), PLy_procedure_call(), policy_role_list_to_array(), postgresAddForeignUpdateTargets(), postgresBeginDirectModify(), postgresBeginForeignScan(), postgresExplainForeignScan(), predicate_classify(), predicate_implied_by(), predicate_refuted_by(), prepare_sort_from_pathkeys(), PrepareQuery(), PrepareTempTablespaces(), preprocess_groupclause(), preprocess_grouping_sets(), preprocess_minmax_aggregates(), preprocess_targetlist(), print_expr(), print_function_arguments(), ProcedureCreate(), process_duplicate_ors(), process_owned_by(), processIndirection(), processTypesSpec(), prune_append_rel_partitions(), publicationListToArray(), pull_up_constant_function(), pull_up_simple_subquery(), pull_up_simple_union_all(), pull_up_simple_values(), pull_up_sublinks_qual_recurse(), pullup_replace_vars_callback(), query_is_distinct_for(), query_planner(), rebuild_fdw_scan_tlist(), ReceiveCopyBegin(), recheck_cast_function_args(), reconsider_full_join_clause(), reduce_outer_joins_pass2(), refresh_matview_datafill(), regnamespacein(), regrolein(), relation_excluded_by_constraints(), relation_has_unique_index_for(), RelationBuildPartitionDesc(), remap_groupColIdx(), remove_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_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(), 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(), 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 234 of file list.c.

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

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

◆ list_make2_impl()

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

Definition at line 244 of file list.c.

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

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

◆ list_make3_impl()

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

Definition at line 255 of file list.c.

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

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

◆ list_make4_impl()

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

Definition at line 268 of file list.c.

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

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

◆ list_member()

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

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

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

◆ list_member_int()

bool list_member_int ( const List list,
int  datum 
)

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

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

◆ list_member_oid()

bool list_member_oid ( const List list,
Oid  datum 
)

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

676 {
677  const ListCell *cell;
678 
679  Assert(IsOidList(list));
680  check_list_invariants(list);
681 
682  foreach(cell, list)
683  {
684  if (lfirst_oid(cell) == datum)
685  return true;
686  }
687 
688  return false;
689 }
#define check_list_invariants(l)
Definition: list.c:76
#define IsOidList(l)
Definition: list.c:55
#define Assert(condition)
Definition: c.h:733
#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 635 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().

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

◆ list_nth()

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

Definition at line 277 of file pg_list.h.

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

Referenced by add_child_join_rel_equivalences(), add_child_rel_equivalences(), adjust_appendrel_attrs_mutator(), adjust_inherited_tlist(), adjust_partition_tlist(), ATAddForeignKeyConstraint(), consider_index_join_outer_rels(), convert_subquery_pathkeys(), convert_testexpr_mutator(), errorMissingColumn(), eval_const_expressions_mutator(), exec_rt_fetch(), ExecInitAppend(), ExecInitCteScan(), ExecInitMergeAppend(), ExecInitModifyTable(), ExecInitSubPlan(), expand_indexqual_rowcompare(), expandRecordVariable(), expandRTE(), ExplainTargetRel(), finalize_plan(), find_expr_references_walker(), find_hash_columns(), fix_param_node(), flatten_join_alias_vars_mutator(), generate_implied_equalities_for_column(), generate_join_implied_equalities(), get_call_expr_arg_stable(), get_call_expr_argtype(), get_name_for_var_field(), get_rtable_name(), get_rte_attribute_is_dropped(), get_rte_attribute_name(), get_rte_attribute_type(), get_variable(), gimme_tree(), gistfinishsplit(), has_relevant_eclass_joinclause(), have_relevant_eclass_joinclause(), infer_collation_opclass_match(), markRTEForSelectPriv(), markTargetListOrigin(), match_eclasses_to_foreign_key_col(), merge_clump(), MergeAttributes(), pg_get_function_arg_default(), pg_listening_channels(), postgresBeginDirectModify(), postgresBeginForeignModify(), postgresBeginForeignScan(), postgresExplainDirectModify(), postgresExplainForeignModify(), postgresExplainForeignScan(), postgresGetForeignPlan(), postgresPlanDirectModify(), postgresPlanForeignModify(), reorder_grouping_sets(), resolve_special_varno(), set_cte_pathlist(), set_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:576
static ListCell * list_nth_cell(const List *list, int n)
Definition: pg_list.h:265
#define Assert(condition)
Definition: c.h:733
#define lfirst(lc)
Definition: pg_list.h:190
Definition: pg_list.h:50

◆ list_nth_cell()

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

Definition at line 265 of file pg_list.h.

References Assert, List::elements, and NIL.

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

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

◆ 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:576
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:733

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

◆ list_oid_cmp()

int list_oid_cmp ( const ListCell p1,
const ListCell p2 
)

Definition at line 1499 of file list.c.

References lfirst_oid.

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

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

◆ list_second_cell()

static ListCell* list_second_cell ( const List l)
inlinestatic

Definition at line 139 of file pg_list.h.

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

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

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

◆ list_sort()

void list_sort ( List list,
list_sort_comparator  cmp 
)

Definition at line 1482 of file list.c.

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

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

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

◆ list_tail()

static ListCell* list_tail ( const List l)
inlinestatic

Definition at line 132 of file pg_list.h.

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

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

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

◆ list_third_cell()

static ListCell* list_third_cell ( const List l)
inlinestatic

Definition at line 149 of file pg_list.h.

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

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

◆ list_truncate()

List* list_truncate ( List list,
int  new_size 
)

Definition at line 586 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(), list_delete_last(), owningrel_does_not_exist_skipping(), ParseFuncOrColumn(), process_owned_by(), transformAggregateCall(), transformFromClauseItem(), transformSetOperationStmt(), and truncate_useless_pathkeys().

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

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

Referenced by AddRelationNewConstraints(), and process_duplicate_ors().

917 {
918  List *result;
919  const ListCell *cell;
920 
921  Assert(IsPointerList(list1));
922  Assert(IsPointerList(list2));
923 
924  result = list_copy(list1);
925  foreach(cell, list2)
926  {
927  if (!list_member(result, lfirst(cell)))
928  result = lappend(result, lfirst(cell));
929  }
930 
931  check_list_invariants(result);
932  return result;
933 }
#define check_list_invariants(l)
Definition: list.c:76
List * list_copy(const List *oldlist)
Definition: list.c:1404
bool list_member(const List *list, const void *datum)
Definition: list.c:614
#define IsPointerList(l)
Definition: list.c:53
List * lappend(List *list, void *datum)
Definition: list.c:322
#define Assert(condition)
Definition: c.h:733
#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 963 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().

964 {
965  List *result;
966  const ListCell *cell;
967 
968  Assert(IsIntegerList(list1));
969  Assert(IsIntegerList(list2));
970 
971  result = list_copy(list1);
972  foreach(cell, list2)
973  {
974  if (!list_member_int(result, lfirst_int(cell)))
975  result = lappend_int(result,