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_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(), 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_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(), 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(), 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(), 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(), AtSubAbort_Notify(), AtSubCommit_Notify(), 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(), readTimeLineHistory(), recordDependencyOnExpr(), recordDependencyOnSingleRelExpr(), regoperout(), regprocout(), remove_useless_results_recurse(), replace_empty_jointree(), resolve_unique_index_expr(), selectColorTrigrams(), set_baserel_partition_key_exprs(), split_pathtarget_at_srfs(), sql_fn_post_column_ref(), standard_ProcessUtility(), test_rls_hooks_permissive(), test_rls_hooks_restrictive(), TidQualFromRestrictInfo(), transformAExprDistinct(), transformAExprIn(), transformAlterTableStmt(), transformAssignmentIndirection(), transformColumnDefinition(), transformColumnRef(), transformCurrentOfExpr(), transformFromClauseItem(), transformGroupClause(), transformIndexConstraints(), transformIndirection(), transformRangeFunction(), transformRuleStmt(), transformSubLink(), transformValuesClause(), transformXmlSerialize(), and WaitForLockers().

◆ list_make1_int

◆ list_make1_oid

◆ list_make2

◆ list_make2_int

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

Definition at line 240 of file pg_list.h.

◆ list_make2_oid

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

Definition at line 251 of file pg_list.h.

◆ list_make3

#define list_make3 (   x1,
  x2,
  x3 
)

◆ list_make3_int

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

Definition at line 242 of file pg_list.h.

◆ list_make3_oid

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

Definition at line 253 of file pg_list.h.

◆ list_make4

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

Definition at line 234 of file pg_list.h.

Referenced by postgresPlanDirectModify(), and postgresPlanForeignModify().

◆ list_make4_int

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

Definition at line 245 of file pg_list.h.

◆ list_make4_oid

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

Definition at line 256 of file pg_list.h.

◆ list_make_int_cell

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

Definition at line 224 of file pg_list.h.

◆ list_make_oid_cell

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

Definition at line 225 of file pg_list.h.

◆ list_make_ptr_cell

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

Definition at line 223 of file pg_list.h.

◆ list_nth_node

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

◆ llast

◆ llast_int

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

Definition at line 216 of file pg_list.h.

◆ llast_node

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

Definition at line 218 of file pg_list.h.

Referenced by apply_scanjoin_target_to_paths().

◆ llast_oid

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

Definition at line 217 of file pg_list.h.

Referenced by pg_partition_root().

◆ lsecond

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

Definition at line 200 of file pg_list.h.

Referenced by arrayconst_startup_fn(), arrayexpr_next_fn(), arrayexpr_startup_fn(), btcostestimate(), clause_is_strict_for(), clauselist_selectivity_simple(), commute_restrictinfo(), CommuteOpExpr(), compute_semijoin_info(), convert_EXISTS_to_ANY(), ConvertTriggerToFK(), cost_qual_eval_walker(), cost_tidscan(), 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(), Async_Unlisten(), Async_UnlistenAll(), asyncQueueUnregister(), AtAbort_Notify(), ATAddCheckConstraint(), ATAddForeignKeyConstraint(), AtCommit_Notify(), ATController(), AtEOXact_Snapshot(), ATExecAddColumn(), ATExecAddConstraint(), ATExecAlterColumnGenericOptions(), ATExecAlterConstraint(), ATExecColumnDefault(), ATExecDropConstraint(), ATExecGenericOptions(), ATExecReplicaIdentity(), ATExecSetRelOptions(), ATExecSetTableSpace(), ATExecValidateConstraint(), ATPostAlterTypeParse(), ATPrepAlterColumnType(), ATRewriteCatalogs(), ATRewriteTable(), ATRewriteTables(), AtSubStart_Notify(), autovacuum_do_vac_analyze(), BeginCopy(), binary_upgrade_create_empty_extension(), bitmap_and_cost_est(), bitmap_scan_cost_est(), bms_overlap_list(), btcostestimate(), btvalidate(), build_base_rel_tlists(), build_child_join_rel(), build_expression_pathkey(), build_index_pathkeys(), build_index_paths(), build_index_tlist(), build_join_pathkeys(), build_join_rel(), build_joinrel_joinlist(), build_joinrel_partition_info(), build_joinrel_restrictlist(), build_minmax_path(), build_partition_pathkeys(), build_path_tlist(), build_paths_for_OR(), build_pertrans_for_aggref(), build_physical_tlist(), build_remote_returning(), build_simple_rel(), build_subplan(), build_tlist_to_deparse(), BuildCachedPlan(), BuildOnConflictExcludedTargetlist(), buildRelationAliases(), CachedPlanGetTargetList(), calc_joinrel_size_estimate(), can_partial_agg(), CatalogIndexInsert(), check_agglevels_and_constraints(), check_equivalence_delay(), check_index_predicates(), check_outerjoin_delay(), check_selective_binary_conversion(), check_sql_fn_retval(), CheckAttributeNamesTypes(), CheckIndexCompatible(), checkInsertTargets(), CheckSelectLocking(), checkSharedDependencies(), checkWellFormedRecursion(), checkWellFormedRecursionWalker(), choose_bitmap_and(), choose_hashed_setop(), ChooseIndexColumnNames(), ChooseIndexName(), ChoosePortalStrategy(), classify_index_clause_usage(), classifyConditions(), clauselist_selectivity(), ClearPendingActionsAndNotifies(), CloneFkReferenced(), CloneFkReferencing(), CloneRowTriggersToPartition(), coerce_record_to_complex(), CommandIsReadOnly(), commute_restrictinfo(), CompareIndexInfo(), compile_plperl_function(), compute_function_attributes(), compute_index_stats(), compute_return_type(), compute_semi_anti_join_factors(), compute_semijoin_info(), consider_groupingsets_paths(), consider_index_join_clauses(), consider_new_or_clause(), ConstructTupleDescriptor(), contain_dml_walker(), convert_ANY_sublink_to_join(), convert_combining_aggrefs(), convert_EXISTS_sublink_to_join(), convert_EXISTS_to_ANY(), convert_prep_stmt_params(), convert_subquery_pathkeys(), ConvertTriggerToFK(), copy_table(), CopyFrom(), CopyGetAttnums(), CopyMultiInsertBufferFlush(), CopyMultiInsertInfoInit(), cost_append(), cost_subplan(), create_agg_path(), create_agg_plan(), create_append_path(), create_append_plan(), create_bitmap_and_path(), create_bitmap_heap_path(), create_bitmap_or_path(), create_bitmap_scan_plan(), create_bitmap_subplan(), create_ctas_internal(), create_ctas_nodata(), create_ctescan_path(), create_customscan_plan(), create_degenerate_grouping_paths(), create_distinct_paths(), create_gather_merge_plan(), create_gather_path(), create_gather_plan(), create_group_result_path(), create_grouping_paths(), create_groupingsets_path(), create_groupingsets_plan(), create_hashjoin_path(), create_hashjoin_plan(), create_index_paths(), create_indexscan_plan(), create_join_plan(), create_list_bounds(), create_lockrows_path(), create_logical_replication_slot(), create_merge_append_plan(), create_mergejoin_plan(), create_minmaxagg_path(), create_minmaxagg_plan(), create_modifytable_path(), create_modifytable_plan(), create_namedtuplestorescan_path(), create_nestloop_path(), create_nestloop_plan(), create_ordered_paths(), create_ordinary_grouping_paths(), create_partial_grouping_paths(), create_partitionwise_grouping_paths(), create_plan(), create_recursiveunion_path(), create_resultscan_path(), create_samplescan_path(), create_scan_plan(), create_seqscan_path(), create_setop_path(), create_tablefuncscan_path(), create_tidscan_path(), create_tidscan_plan(), create_toast_table(), create_unique_path(), create_unique_plan(), create_valuesscan_path(), create_worktablescan_path(), CreateCachedPlan(), CreateCommandTag(), CreateExecutorState(), CreateExtension(), CreateExtensionInternal(), CreateFKCheckTrigger(), createForeignKeyActionTriggers(), CreateFunction(), CreateInitDecodingContext(), CreateLockFile(), CreateOneShotCachedPlan(), CreateProceduralLanguage(), CreateReplicationSlot(), CreateRole(), CreateTrigger(), current_schema(), database_to_xmlschema_internal(), dccref_deletion_callback(), deconstruct_jointree(), deconstruct_recurse(), defGetQualifiedName(), DefineAggregate(), DefineCompositeType(), DefineDomain(), DefineIndex(), DefineOpClass(), DefineOperator(), DefineQueryRewrite(), DefineRange(), DefineRelation(), DefineSequence(), DefineTSDictionary(), DefineType(), DefineView(), DefineVirtualRelation(), deparse_context_for(), deparse_context_for_plan_rtable(), deparse_expression_pretty(), deparseAggref(), deparseAnalyzeSql(), deparseArrayExpr(), deparseDeleteSql(), deparseDirectDeleteSql(), deparseDirectUpdateSql(), deparseExplicitTargetList(), deparseFromExpr(), deparseFromExprForRel(), deparseRangeTblRef(), deparseReturningList(), deparseTargetList(), deserialize_deflist(), determineRecursiveColTypes(), DiscardAll(), do_analyze_rel(), do_autovacuum(), DoCopy(), domainAddConstraint(), dump_dynexecute(), dump_dynfors(), dump_if(), dump_open(), dump_return_query(), EnableSyncRequestForwarding(), estimate_expression_value(), estimate_multivariate_ndistinct(), estimate_num_groups(), estimate_path_cost_size(), eval_const_expressions(), eval_const_expressions_mutator(), EvalPlanQualBegin(), 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(), 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(), test_rls_hooks_permissive(), test_rls_hooks_restrictive(), textarray_to_stringlist(), textarray_to_strvaluelist(), textToQualifiedNameList(), TidExprListCreate(), TidQualFromRestrictInfo(), TidQualFromRestrictInfoList(), to_regproc(), to_regprocedure(), toast_open_indexes(), tokenize_file(), transformAExprBetween(), transformAExprIn(), transformAggregateCall(), transformAlterTableStmt(), transformArrayExpr(), transformAssignmentIndirection(), transformAssignmentSubscripts(), transformBoolExpr(), transformCallStmt(), transformCaseExpr(), transformCheckConstraints(), transformCoalesceExpr(), transformColumnDefinition(), transformContainerSubscripts(), transformCreateSchemaStmt(), transformCreateStmt(), transformDeclareCursorStmt(), transformDeleteStmt(), transformDistinctClause(), transformDistinctOnClause(), transformExpressionList(), transformFKConstraints(), transformFkeyGetPrimaryKey(), transformFromClauseItem(), transformFuncCall(), transformGraph(), transformGroupClause(), transformGroupClauseList(), transformGroupingFunc(), transformGroupingSet(), transformIndexConstraint(), transformIndexConstraints(), transformIndirection(), transformInsertRow(), transformInsertStmt(), transformJoinUsingClause(), transformLockingClause(), transformMinMaxExpr(), transformMultiAssignRef(), transformOfType(), transformOnConflictArbiter(), transformOnConflictClause(), transformPartitionBound(), transformPartitionRangeBounds(), transformPartitionSpec(), transformRangeFunction(), transformRangeTableFunc(), transformRangeTableSample(), transformRelOptions(), transformReturningList(), transformRowExpr(), transformRuleStmt(), transformSelectStmt(), transformSetOperationStmt(), transformSetOperationTree(), transformSortClause(), transformSubLink(), transformTableLikeClause(), transformTargetList(), transformUpdateTargetList(), transformValuesClause(), transformWindowDefinitions(), transformWindowFuncCall(), transformWithClause(), transformXmlExpr(), translate_sub_tlist(), trim_mergeclauses_for_inner_pathkeys(), trivial_subqueryscan(), truncate_useless_pathkeys(), try_hashjoin_path(), try_mergejoin_path(), try_partial_hashjoin_path(), try_partial_mergejoin_path(), TryReuseForeignKey(), ts_headline_byid_opt(), ts_headline_json_byid_opt(), ts_headline_jsonb_byid_opt(), TypeGetTupleDesc(), typeInheritsFrom(), typenameTypeMod(), typeStringToTypeName(), unique_key_recheck(), UnlinkLockFiles(), untransformRelOptions(), update_mergeclause_eclasses(), UpdateDomainConstraintRef(), UpdateIndexRelation(), UpdateLogicalMappings(), UpdateRangeTableOfViewParse(), use_physical_tlist(), vacuum(), ValuesNext(), view_query_is_auto_updatable(), WaitForLockersMultiple(), XactHasExportedSnapshots(), and xmlelement().

Typedef Documentation

◆ ForBothCellState

◆ ForBothState

◆ ForEachState

◆ ForFiveState

◆ ForFourState

◆ ForThreeState

◆ List

typedef struct List List

◆ list_sort_comparator

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

Definition at line 574 of file pg_list.h.

◆ ListCell

Function Documentation

◆ for_both_cell_setup()

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

Definition at line 450 of file pg_list.h.

References list_cell_number(), and list_length().

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

◆ for_each_cell_setup()

static ForEachState for_each_cell_setup ( List lst,
ListCell initcell 
)
inlinestatic

Definition at line 399 of file pg_list.h.

References list_cell_number(), and list_length().

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

◆ lappend()

List* lappend ( List list,
void *  datum 
)

Definition at line 321 of file list.c.

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

Referenced by _SPI_make_plan_non_temp(), _SPI_prepare_oneshot_plan(), _SPI_prepare_plan(), _SPI_save_plan(), accumulate_append_subpath(), AcquireRewriteLocks(), add_column_to_pathtarget(), add_dummy_return(), add_eq_member(), add_join_clause_to_rels(), add_join_rel(), add_paths_to_append_rel(), add_placeholders_to_base_rels(), add_placeholders_to_joinrel(), add_rte_to_flat_rtable(), add_security_quals(), add_to_flat_tlist(), add_unique_group_var(), add_vars_to_targetlist(), add_with_check_options(), addArc(), 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(), 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().

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

◆ lappend_int()

List* lappend_int ( List list,
int  datum 
)

Definition at line 339 of file list.c.

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

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

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

◆ lappend_oid()

List* lappend_oid ( List list,
Oid  datum 
)

Definition at line 357 of file list.c.

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

Referenced by add_rte_to_flat_rtable(), addRangeTableEntryForENR(), addRangeTableEntryForFunction(), AfterTriggerSetState(), AlterTableMoveAll(), analyzeCTETargetList(), apply_handle_truncate(), ApplyExtensionUpdates(), assign_collations_walker(), assign_param_for_placeholdervar(), assign_param_for_var(), assign_special_exec_param(), binary_upgrade_create_empty_extension(), check_functional_grouping(), 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().

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

◆ lcons()

List* lcons ( void *  datum,
List list 
)

Definition at line 453 of file list.c.

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

Referenced by AtSubStart_Notify(), 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().

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

◆ lcons_int()

List* lcons_int ( int  datum,
List list 
)

Definition at line 471 of file list.c.

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

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

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

◆ lcons_oid()

List* lcons_oid ( Oid  datum,
List list 
)

Definition at line 489 of file list.c.

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

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

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

◆ list_append_unique()

List* list_append_unique ( List list,
void *  datum 
)

Definition at line 1177 of file list.c.

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

Referenced by add_security_quals(), and add_with_check_options().

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

◆ list_append_unique_int()

List* list_append_unique_int ( List list,
int  datum 
)

Definition at line 1202 of file list.c.

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

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

◆ list_append_unique_oid()

List* list_append_unique_oid ( List list,
Oid  datum 
)

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

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

◆ list_append_unique_ptr()

List* list_append_unique_ptr ( List list,
void *  datum 
)

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

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

◆ list_cell_number()

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

Definition at line 311 of file pg_list.h.

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

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

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

◆ list_concat()

List* list_concat ( List list1,
const List list2 
)

Definition at line 515 of file list.c.

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

Referenced by accumulate_append_subpath(), add_paths_to_append_rel(), add_predicate_to_index_quals(), addRangeTableEntryForJoin(), addRangeTableEntryForTableFunc(), AtEOSubXact_ApplyLauncher(), ATExecAttachPartition(), 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().

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

◆ list_concat_copy()

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

Definition at line 552 of file list.c.

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

Referenced by add_function_defaults(), build_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().

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

◆ list_concat_unique()

List* list_concat_unique ( List list1,
const List list2 
)

Definition at line 1234 of file list.c.

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

Referenced by create_bitmap_subplan(), and select_active_windows().

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

◆ list_concat_unique_int()

List* list_concat_unique_int ( List list1,
const List list2 
)

Definition at line 1277 of file list.c.

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

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

◆ list_concat_unique_oid()

List* list_concat_unique_oid ( List list1,
const List list2 
)

Definition at line 1298 of file list.c.

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

Referenced by GetRelationPublicationActions().

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

◆ list_concat_unique_ptr()

List* list_concat_unique_ptr ( List list1,
const List list2 
)

Definition at line 1256 of file list.c.

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

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

◆ list_copy()

List* list_copy ( const List list)

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

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

◆ list_copy_deep()

List* list_copy_deep ( const List oldlist)

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

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

◆ list_copy_tail()

List* list_copy_tail ( const List list,
int  nskip 
)

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

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

◆ list_deduplicate_oid()

void list_deduplicate_oid ( List list)

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

1323 {
1324  int len;
1325 
1326  Assert(IsOidList(list));
1327  len = list_length(list);
1328  if (len > 1)
1329  {
1330  ListCell *elements = list->elements;
1331  int i = 0;
1332 
1333  for (int j = 1; j < len; j++)
1334  {
1335  if (elements[i].oid_value != elements[j].oid_value)
1336  elements[++i].oid_value = elements[j].oid_value;
1337  }
1338  list->length = i + 1;
1339  }
1340  check_list_invariants(list);
1341 }
#define check_list_invariants(l)
Definition: list.c:75
ListCell * elements
Definition: pg_list.h:55
#define IsOidList(l)
Definition: list.c:54
#define Assert(condition)
Definition: c.h:732
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 774 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().

775 {
776  ListCell *cell;
777 
778  Assert(IsPointerList(list));
779  check_list_invariants(list);
780 
781  foreach(cell, list)
782  {
783  if (equal(lfirst(cell), datum))
784  return list_delete_cell(list, cell);
785  }
786 
787  /* Didn't find a match: return the list unmodified */
788  return list;
789 }
bool equal(const void *a, const void *b)
Definition: equalfuncs.c:3008
#define check_list_invariants(l)
Definition: list.c:75
#define IsPointerList(l)
Definition: list.c:52
List * list_delete_cell(List *list, ListCell *cell)
Definition: list.c:764
#define Assert(condition)
Definition: c.h:732
#define lfirst(lc)
Definition: pg_list.h:190

◆ list_delete_cell()

List* list_delete_cell ( List list,
ListCell cell 
)

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

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

◆ list_delete_first()

◆ list_delete_int()

List* list_delete_int ( List list,
int  datum 
)

Definition at line 812 of file list.c.

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

Referenced by reorder_grouping_sets().

813 {
814  ListCell *cell;
815 
816  Assert(IsIntegerList(list));
817  check_list_invariants(list);
818 
819  foreach(cell, list)
820  {
821  if (lfirst_int(cell) == datum)
822  return list_delete_cell(list, cell);
823  }
824 
825  /* Didn't find a match: return the list unmodified */
826  return list;
827 }
#define check_list_invariants(l)
Definition: list.c:75
#define IsIntegerList(l)
Definition: list.c:53
#define lfirst_int(lc)
Definition: pg_list.h:191
List * list_delete_cell(List *list, ListCell *cell)
Definition: list.c:764
#define Assert(condition)
Definition: c.h:732

◆ list_delete_last()

List* list_delete_last ( List list)

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

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

◆ list_delete_nth_cell()

List* list_delete_nth_cell ( List list,
int  n 
)

Definition at line 696 of file list.c.

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

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

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

◆ list_delete_oid()

List* list_delete_oid ( List list,
Oid  datum 
)

Definition at line 831 of file list.c.

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

Referenced by RemoveReindexPending().

832 {
833  ListCell *cell;
834 
835  Assert(IsOidList(list));
836  check_list_invariants(list);
837 
838  foreach(cell, list)
839  {
840  if (lfirst_oid(cell) == datum)
841  return list_delete_cell(list, cell);
842  }
843 
844  /* Didn't find a match: return the list unmodified */
845  return list;
846 }
#define check_list_invariants(l)
Definition: list.c:75
List * list_delete_cell(List *list, ListCell *cell)
Definition: list.c:764
#define IsOidList(l)
Definition: list.c:54
#define Assert(condition)
Definition: c.h:732
#define lfirst_oid(lc)
Definition: pg_list.h:192

◆ list_delete_ptr()

List* list_delete_ptr ( List list,
void *  datum 
)

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

794 {
795  ListCell *cell;
796 
797  Assert(IsPointerList(list));
798  check_list_invariants(list);
799 
800  foreach(cell, list)
801  {
802  if (lfirst(cell) == datum)
803  return list_delete_cell(list, cell);
804  }
805 
806  /* Didn't find a match: return the list unmodified */
807  return list;
808 }
#define check_list_invariants(l)
Definition: list.c:75
#define IsPointerList(l)
Definition: list.c:52
List * list_delete_cell(List *list, ListCell *cell)
Definition: list.c:764
#define Assert(condition)
Definition: c.h:732
#define lfirst(lc)
Definition: pg_list.h:190

◆ list_difference()

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

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

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

◆ list_difference_int()

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

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

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

◆ list_difference_oid()

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

Definition at line 1149 of file list.c.

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

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

◆ list_difference_ptr()

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

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

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

◆ list_fourth_cell()

static ListCell* list_fourth_cell ( const List l)
inlinestatic

Definition at line 159 of file pg_list.h.

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

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

◆ list_free()

void list_free ( List list)

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

1374 {
1375  list_free_private(list, false);
1376 }
static void list_free_private(List *list, bool deep)
Definition: list.c:1347

◆ list_free_deep()

void list_free_deep ( List list)

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

1388 {
1389  /*
1390  * A "deep" free operation only makes sense on a list of pointers.
1391  */
1392  Assert(IsPointerList(list));
1393  list_free_private(list, true);
1394 }
#define IsPointerList(l)
Definition: list.c:52
#define Assert(condition)
Definition: c.h:732
static void list_free_private(List *list, bool deep)
Definition: list.c:1347

◆ 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(), 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 400 of file list.c.

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

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

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

◆ list_insert_nth_int()

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

Definition at line 414 of file list.c.

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

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

◆ list_insert_nth_oid()

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

Definition at line 428 of file list.c.

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

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

◆ list_intersection()

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

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

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

◆ list_intersection_int()

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

Definition at line 1041 of file list.c.

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

Referenced by parseCheckAggregates().

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

◆ list_length()

static int list_length ( const List l)
inlinestatic

Definition at line 169 of file pg_list.h.

References List::length.

Referenced by _copyMergeJoin(), _outForeignKeyOptInfo(), _outMergeJoin(), _outPathTarget(), _readMergeJoin(), acquire_inherited_sample_rows(), add_child_rel_equivalences(), add_column_to_pathtarget(), add_function_defaults(), add_paths_to_append_rel(), add_rte_to_flat_rtable(), add_security_quals(), add_sp_item_to_pathtarget(), add_to_flat_tlist(), add_with_check_options(), 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(), AtSubAbort_Notify(), AtSubCommit_Notify(), AtSubStart_Notify(), AttachPartitionEnsureIndexes(), BeginCopy(), BeginCopyFrom(), btvalidate(), build_pertrans_for_aggref(), build_remote_returning(), build_simple_rel(), build_subplan(), build_tlist_index(), build_tlist_index_other_vars(), BuildDescForRelation(), BuildDescFromLists(), buildRelationAliases(), buildSubPlanHash(), cached_plan_cost(), check_hashjoinable(), check_mergejoinable(), check_selective_binary_conversion(), check_temp_tablespaces(), check_ungrouped_columns_walker(), CheckIndexCompatible(), CheckRADIUSAuth(), choose_bitmap_and(), choose_hashed_setop(), ChoosePortalStrategy(), classify_index_clause_usage(), clause_is_strict_for(), clauselist_selectivity_simple(), cmp_list_len_asc(), common_prefix_cmp(), commute_restrictinfo(), CommuteOpExpr(), compute_semijoin_info(), ComputeIndexAttrs(), connect_pg_server(), consider_groupingsets_paths(), consider_index_join_clauses(), consider_index_join_outer_rels(), convert_ANY_sublink_to_join(), convert_EXISTS_sublink_to_join(), convert_requires_to_datum(), convert_subquery_pathkeys(), convert_testexpr_mutator(), cookConstraint(), copy_pathtarget(), CopyMultiInsertInfoFlush(), CopyOneRowTo(), CopyTo(), count_rowexpr_columns(), create_agg_path(), create_agg_plan(), create_append_path(), create_append_plan(), create_bitmap_subplan(), create_ctescan_plan(), create_degenerate_grouping_paths(), create_distinct_paths(), create_foreign_modify(), create_group_path(), create_group_plan(), create_groupingsets_path(), create_groupingsets_plan(), create_hashjoin_plan(), create_indexscan_plan(), create_list_bounds(), create_merge_append_path(), create_merge_append_plan(), create_mergejoin_plan(), create_modifytable_path(), create_setop_path(), create_tidscan_plan(), create_unique_path(), create_unique_plan(), create_windowagg_path(), create_windowagg_plan(), CreateExtensionInternal(), CreateFunction(), CreatePublication(), CreateStatistics(), CreateTrigger(), current_schemas(), currtid_for_view(), deconstruct_recurse(), DeconstructQualifiedName(), DefineAggregate(), DefineCollation(), DefineDomain(), DefineIndex(), DefineQueryRewrite(), DefineRelation(), DefineVirtualRelation(), DelRoleMems(), deparseDistinctExpr(), deparseOpExpr(), deparseRangeTblRef(), deparseScalarArrayOpExpr(), dependencies_clauselist_selectivity(), dependency_is_compatible_clause(), do_analyze_rel(), does_not_exist_skipping(), domainAddConstraint(), eclass_useful_for_merging(), EnumValuesCreate(), equalRSDesc(), estimate_array_length(), estimate_num_groups(), estimate_path_cost_size(), EstimateReindexStateSpace(), eval_const_expressions_mutator(), EvalPlanQualBegin(), EvalPlanQualStart(), EvaluateParams(), EventTriggerAlterTableEnd(), examine_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_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 233 of file list.c.

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

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

◆ list_make2_impl()

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

Definition at line 243 of file list.c.

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

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

◆ list_make3_impl()

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

Definition at line 254 of file list.c.

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

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

◆ list_make4_impl()

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

Definition at line 267 of file list.c.

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

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

◆ list_member()

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

Definition at line 613 of file list.c.

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

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

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

◆ list_member_int()

bool list_member_int ( const List list,
int  datum 
)

Definition at line 654 of file list.c.

References Assert, check_list_invariants, IsIntegerList, and lfirst_int.

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

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

◆ list_member_oid()

bool list_member_oid ( const List list,
Oid  datum 
)

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

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

◆ list_member_ptr()

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

Definition at line 634 of file list.c.

References Assert, check_list_invariants, IsPointerList, and lfirst.

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

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

◆ list_nth()

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

Definition at line 277 of file pg_list.h.

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

Referenced by add_child_rel_equivalences(), adjust_appendrel_attrs_mutator(), adjust_inherited_tlist(), adjust_partition_tlist(), ATAddForeignKeyConstraint(), consider_index_join_outer_rels(), convert_subquery_pathkeys(), convert_testexpr_mutator(), errorMissingColumn(), eval_const_expressions_mutator(), 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:732
#define lfirst(lc)
Definition: pg_list.h:190
Definition: pg_list.h:50

◆ list_nth_cell()

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

Definition at line 265 of file pg_list.h.

References Assert, List::elements, and NIL.

Referenced by build_subplan(), expandTupleDesc(), find_all_inheritors(), inheritance_planner(), list_nth(), list_nth_int(), list_nth_oid(), ProcedureCreate(), split_pathtarget_at_srfs(), 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:732

◆ list_nth_int()

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

Definition at line 288 of file pg_list.h.

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

Referenced by create_ctescan_plan(), get_rte_attribute_type(), and set_cte_pathlist().

289 {
290  Assert(IsA(list, IntList));
291  return lfirst_int(list_nth_cell(list, n));
292 }
#define IsA(nodeptr, _type_)
Definition: nodes.h: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:732

◆ list_nth_oid()

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

Definition at line 299 of file pg_list.h.

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

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

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

◆ list_oid_cmp()

int list_oid_cmp ( const ListCell p1,
const ListCell p2 
)

Definition at line 1495 of file list.c.

References lfirst_oid.

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

1496 {
1497  Oid v1 = lfirst_oid(p1);
1498  Oid v2 = lfirst_oid(p2);
1499 
1500  if (v1 < v2)
1501  return -1;
1502  if (v1 > v2)
1503  return 1;
1504  return 0;
1505 }
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 1478 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().

1479 {
1480  typedef int (*qsort_comparator) (const void *a, const void *b);
1481  int len;
1482 
1483  check_list_invariants(list);
1484 
1485  /* Nothing to do if there's less than two elements */
1486  len = list_length(list);
1487  if (len > 1)
1488  qsort(list->elements, len, sizeof(ListCell), (qsort_comparator) cmp);
1489 }
#define check_list_invariants(l)
Definition: list.c:75
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 585 of file list.c.

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

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

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

◆ list_union()

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

Definition at line 912 of file list.c.

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

Referenced by AddRelationNewConstraints(), and process_duplicate_ors().

913 {
914  List *result;
915  const ListCell *cell;
916 
917  Assert(IsPointerList(list1));
918  Assert(IsPointerList(list2));
919 
920  result = list_copy(list1);
921  foreach(cell, list2)
922  {
923  if (!list_member(result, lfirst(cell)))
924  result = lappend(result, lfirst(cell));
925  }
926 
927  check_list_invariants(result);
928  return result;
929 }
#define check_list_invariants(l)
Definition: list.c:75
List * list_copy(const List *oldlist)
Definition: list.c:1400
bool list_member(const List *list, const void *datum)
Definition: list.c:613
#define IsPointerList(l)
Definition: list.c:52
List * lappend(List *list, void *datum)
Definition: list.c:321
#define Assert(condition)
Definition: c.h:732
#define lfirst(lc)
Definition: pg_list.h:190
Definition: pg_list.h:50

◆ list_union_int()

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

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

960 {
961  List *result;
962  const ListCell