Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

1/*-------------------------------------------------------------------------
2 *
3 * joinrels.c
4 * Routines to determine which relations should be joined
5 *
6 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
8 *
9 *
10 * IDENTIFICATION
11 * src/backend/optimizer/path/joinrels.c
12 *
…lines 13–2114 unchanged (2102 lines)

After

1/*-------------------------------------------------------------------------
2 *
3 * joinrels.c
4 * Routines to determine which relations should be joined
5 *
6 * Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
8 *
9 *
10 * IDENTIFICATION
11 * src/backend/optimizer/path/joinrels.c
12 *
…lines 13–2114 unchanged (2102 lines)

Before

translation_unit
comment "/*----------------------------------------------------------"...
preproc_include
#include "#include"
string_literal
" "\""
string_content "postgres.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "miscadmin.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "optimizer/appendinfo.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "optimizer/cost.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "optimizer/joininfo.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "optimizer/pathnode.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "optimizer/paths.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "optimizer/planner.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "partitioning/partbounds.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "utils/memutils.h"
" "\""
declaration (+31 nodes collapsed)
declaration (+27 nodes collapsed)
declaration (+21 nodes collapsed)
declaration (+21 nodes collapsed)
declaration (+25 nodes collapsed)
declaration (+45 nodes collapsed)
declaration (+45 nodes collapsed)
declaration (+45 nodes collapsed)
declaration (+31 nodes collapsed)
declaration (+21 nodes collapsed)
declaration (+55 nodes collapsed)
declaration (+49 nodes collapsed)
comment "/*\n * join_search_one_level\n *\t Consider ways to produce jo"...
function_definition (+607 nodes collapsed)
comment "/*\n * make_rels_by_clause_joins\n *\t Build joins between the"...
function_definition (+143 nodes collapsed)
comment "/*\n * make_rels_by_clauseless_joins\n *\t Given a relation 'o"...
function_definition (+110 nodes collapsed)
comment "/*\n * join_is_legal\n *\t Determine whether a proposed join "...
function_definition (+1194 nodes collapsed)
comment "/*\n * init_dummy_sjinfo\n * Populate the given SpecialJoin"...
function_definition (+172 nodes collapsed)
comment "/*\n * make_join_rel\n *\t Find or create a join RelOptInfo t"...
function_definition (+351 nodes collapsed)
comment "/*\n * add_outer_joins_to_relids\n *\t Add relids to input_rel"...
function_definition (+374 nodes collapsed)
comment "/*\n * make_grouped_join_rel\n *\t Build a grouped join relati"...
function_definition (+585 nodes collapsed)
comment "/*\n * populate_joinrel_with_paths\n *\t Add paths to the give"...
function_definition (+851 nodes collapsed)
comment "/*\n * have_join_order_restriction\n *\t\tDetect whether the two"...
function_definition (+445 nodes collapsed)
comment "/*\n * has_join_restriction\n *\t\tDetect whether the specified "...
function_definition (+270 nodes collapsed)
comment "/*\n * has_legal_joinclause\n *\t\tDetect whether the specified "...
function_definition (+194 nodes collapsed)
comment "/*\n * is_dummy_rel --- has relation been proven empty?\n */"
function_definition (+159 nodes collapsed)
comment "/*\n * Mark a relation as proven empty.\n *\n * During GEQO pla"...
function_definition (+140 nodes collapsed)
comment "/*\n * restriction_is_constant_false --- is a restrictlist ju"...
function_definition (+169 nodes collapsed)
comment "/*\n * Assess whether join between given two partitioned rela"...
function_definition (+1128 nodes collapsed)
comment "/*\n * Construct the SpecialJoinInfo for a child-join by tran"...
function_definition (+310 nodes collapsed)
comment "/*\n * free_child_join_sjinfo\n *\t\tFree memory consumed by a S"...
function_definition (+237 nodes collapsed)
comment "/*\n * compute_partition_bounds\n *\t\tCompute the partition bou"...
function_definition (+464 nodes collapsed)
comment "/*\n * get_matching_part_pairs\n *\t\tGenerate pairs of partitio"...
function_definition (+444 nodes collapsed)

After

translation_unit
comment "/*----------------------------------------------------------"...
preproc_include
#include "#include"
string_literal
" "\""
string_content "postgres.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "miscadmin.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "optimizer/appendinfo.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "optimizer/cost.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "optimizer/joininfo.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "optimizer/pathnode.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "optimizer/paths.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "optimizer/planner.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "partitioning/partbounds.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "utils/memutils.h"
" "\""
declaration (+31 nodes collapsed)
declaration (+27 nodes collapsed)
declaration (+21 nodes collapsed)
declaration (+21 nodes collapsed)
declaration (+25 nodes collapsed)
declaration (+45 nodes collapsed)
declaration (+45 nodes collapsed)
declaration (+45 nodes collapsed)
declaration (+31 nodes collapsed)
declaration (+21 nodes collapsed)
declaration (+55 nodes collapsed)
declaration (+49 nodes collapsed)
comment "/*\n * join_search_one_level\n *\t Consider ways to produce jo"...
function_definition (+607 nodes collapsed)
comment "/*\n * make_rels_by_clause_joins\n *\t Build joins between the"...
function_definition (+143 nodes collapsed)
comment "/*\n * make_rels_by_clauseless_joins\n *\t Given a relation 'o"...
function_definition (+110 nodes collapsed)
comment "/*\n * join_is_legal\n *\t Determine whether a proposed join "...
function_definition (+1194 nodes collapsed)
comment "/*\n * init_dummy_sjinfo\n * Populate the given SpecialJoin"...
function_definition (+172 nodes collapsed)
comment "/*\n * make_join_rel\n *\t Find or create a join RelOptInfo t"...
function_definition (+351 nodes collapsed)
comment "/*\n * add_outer_joins_to_relids\n *\t Add relids to input_rel"...
function_definition (+374 nodes collapsed)
comment "/*\n * make_grouped_join_rel\n *\t Build a grouped join relati"...
function_definition (+585 nodes collapsed)
comment "/*\n * populate_joinrel_with_paths\n *\t Add paths to the give"...
function_definition (+851 nodes collapsed)
comment "/*\n * have_join_order_restriction\n *\t\tDetect whether the two"...
function_definition (+445 nodes collapsed)
comment "/*\n * has_join_restriction\n *\t\tDetect whether the specified "...
function_definition (+270 nodes collapsed)
comment "/*\n * has_legal_joinclause\n *\t\tDetect whether the specified "...
function_definition (+194 nodes collapsed)
comment "/*\n * is_dummy_rel --- has relation been proven empty?\n */"
function_definition (+159 nodes collapsed)
comment "/*\n * Mark a relation as proven empty.\n *\n * During GEQO pla"...
function_definition (+140 nodes collapsed)
comment "/*\n * restriction_is_constant_false --- is a restrictlist ju"...
function_definition (+169 nodes collapsed)
comment "/*\n * Assess whether join between given two partitioned rela"...
function_definition (+1128 nodes collapsed)
comment "/*\n * Construct the SpecialJoinInfo for a child-join by tran"...
function_definition (+310 nodes collapsed)
comment "/*\n * free_child_join_sjinfo\n *\t\tFree memory consumed by a S"...
function_definition (+237 nodes collapsed)
comment "/*\n * compute_partition_bounds\n *\t\tCompute the partition bou"...
function_definition (+464 nodes collapsed)
comment "/*\n * get_matching_part_pairs\n *\t\tGenerate pairs of partitio"...
function_definition (+444 nodes collapsed)