Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[YSQL] Simplify ybc_pggate API #23513

Closed
1 task done
d-uspenskiy opened this issue Aug 15, 2024 · 0 comments
Closed
1 task done

[YSQL] Simplify ybc_pggate API #23513

d-uspenskiy opened this issue Aug 15, 2024 · 0 comments
Assignees
Labels
area/ysql Yugabyte SQL (YSQL) kind/enhancement This is an enhancement of an existing feature priority/medium Medium priority issue

Comments

@d-uspenskiy
Copy link
Contributor

d-uspenskiy commented Aug 15, 2024

Jira Link: DB-12433

Description

Some of the functions in ybc_pggate.cc doesn't use pgapi object. Such as:

  • YBCPgGetType
  • YBCPgAllowForPrimaryKey

It is not necessary to have them in ybc_pggate.

Some other functions return status and use out argument. But it is possible to return value directly.

  • YBCGetPgggateCurrentAllocatedBytes
  • YbGetActualHeapSizeBytes

Issue Type

kind/enhancement

Warning: Please confirm that this issue does not contain any sensitive information

  • I confirm this issue does not contain any sensitive information.
@d-uspenskiy d-uspenskiy added area/ysql Yugabyte SQL (YSQL) status/awaiting-triage Issue awaiting triage labels Aug 15, 2024
@d-uspenskiy d-uspenskiy self-assigned this Aug 15, 2024
@yugabyte-ci yugabyte-ci added kind/enhancement This is an enhancement of an existing feature priority/medium Medium priority issue labels Aug 15, 2024
d-uspenskiy added a commit that referenced this issue Aug 21, 2024
Summary:
Some of the functions in `ybc_pggate.cc` doesn't use `pgapi` object and C++ code. Such as:
- `YBCPgGetType`
- `YBCPgAllowForPrimaryKey`

It is not necessary to have them in ybc_pggate.

Some other functions return status and use out argument. But it is possible to return value directly:
- `YBCGetPgggateCurrentAllocatedBytes`
- `YbGetActualHeapSizeBytes`

Unused function was removed:
- `YBCPgInvalidateTableCacheByRelfileNodeId`
Jira: DB-12433

Test Plan: Jenkins

Reviewers: telgersma, amartsinchyk, pjain

Reviewed By: amartsinchyk

Subscribers: ybase, yql

Tags: #jenkins-ready

Differential Revision: https://phorge.dev.yugabyte.com/D37357
jasonyb pushed a commit that referenced this issue Aug 22, 2024
Summary:
 0fa2b24 Fix table layout to utilize maximum available space (#23564)
 336d00d [PLAT-14981]Increase default slow  query length
 e5127f8 [DOC-445] TA-22935: Potential Issues with Server-side Sequence Caching in Multi-Database Clusters (#23520)
 b3389ff [#23493] xCluster: code for ensuring there's an update for every sequence in WAL
 cb26a09 [#23548] Tools: Clean-up sys-catalog-tool code
 28025f6 [docs] Visualize migration assessment updates (#23358)
 9c0de5d [#23257] YSQL: Change conflict error string for RC transactions
 507432b [#23523] docdb: retryable requests instrumentation
 e4645e5 [DOC-431] Added a note for GKE cluster docs (#23349)
 d1576c4 [PLAT-12905] Add HA Metrics Page
 02da1f0 [PLAT-14869][PLAT-14986][PLAT-14998][PLAT-15003] - ui improvements and fixes
 c149f26 [#23556] hnsw_tool command-line tool for testing HNSW index implementations
 7725f15 Add operator mode & task info to diagnostics
 e193fc6 Revert "[#23064] YSQL: pg_partman: disable p_retention_schema parameter"
 8178372 [#23513] YSQL: Simplify several functions in ybc_pggate
 22657da [#23394] CDCSDK: Prevent tserver crash on concurrent Getchanges call on same producer tablet
 90554b0 [#23179] CDCSDK: Refactor TestPgReplicationSlot for dynamic data types

Test Plan: Jenkins: rebase: pg15-cherrypicks

Reviewers: jason, tfoucher

Differential Revision: https://phorge.dev.yugabyte.com/D37453
@github-project-automation github-project-automation bot moved this to Backlog in YSQL Aug 28, 2024
@sushantrmishra sushantrmishra removed the status/awaiting-triage Issue awaiting triage label Sep 1, 2024
d-uspenskiy added a commit that referenced this issue Sep 18, 2024
…Memory unit test

Summary: Signature of the `YBCGetPgggateCurrentAllocatedBytes` function was changed in the https://phorge.dev.yugabyte.com/D37357 diff. But the usage of the function was not updated properly.

Test Plan: Jenkins

Reviewers: jason

Reviewed By: jason

Subscribers: yql

Tags: #jenkins-ready

Differential Revision: https://phorge.dev.yugabyte.com/D38120
jasonyb pushed a commit that referenced this issue Sep 19, 2024
Summary:
 84f3fab [PLAT-15322] Make sure build files have fresh last_modified date to make sure Play Framework assets caching works as expected
 c7af74d [PLAT-15288] Use set_dbs endpoint when editing table selection for db scoped DR configs
 8faeca6 [PLAT-15300] Update task progress poller logic
 e4f5943 [doc][ybm] VictoriaMetrics (#23819)
 70aa7d7 [doc][ybm] Tablet peer alert (#23942)
 2f70696 [doc] Smart driver clarification (#23933)
 1525ced [docs] fix for a yb version not rendering (#23944)
 e9f3ec2 [#23843] YSQL: Fix flaky test testSchemaMismatchRetry in TestPgBatch
 89b69cf [#23943]: YSQL: Fix Bitmap Scan crash in fastdebug GCC11
 27446e2 [DOC-470] Include SSL Connectivity within the source database tabs. (#23878)
 def0fac [#23879] docdb: Improve rpc metrics test.
 87a936a [PLAT-15353] Consistency checks testing hooks
 0c41023 [#23956] YSQL: Fix org.yb.pgsql.TestYsqlMetrics#testMetricRows
 388e045 [#21625,#21627] Docdb: Clear stale meta-cache entries at the end of clone
 Excluded: 5523770 [#23547] YSQL: fix pg_hint_plan crash with pg_hint_plan.enable_hint_table enabled
 5951e18 [#23881] docdb: Update the hint to advisory_locks
 10b5009 Minorfixes (#23986)
 3d33b3e [PLAt-15133][PLAT-15332] Fix the preflight check for disk mount
 9d8366b [PLAT-15345] Set  755 permissions on node-agent service file
 d298d44 [#22135] YSQL: Avoid read restart errors with ANALYZE
 240e8f0 [PLAT-15355] Fix Node Addition Precheck logic to work correctly in case provider_id is missing
 2a40433 [PLAT-15262]Add more checks for non-namespace scope supported universes
 f957dda [Docs] Minor fixes to docs pages around transactions (#23926)
 e4a8548 [PLAT-15326] Proper error handling in DDL atomicity check
 10a629e [PLAT-13998][PLAT-15215]Support Image bundle creation and updation in provider requests
 5f95ff9 [#23905] DocDB: Persistence for Master side Table/Object locks
 d4103e8 [#23513]  YSQL: Fix broken org.yb.pgsql.TestYsqlMetrics#testExplainMaxMemory unit test

Merge:
- yb_pg_dbms_alert_session_A.out:
  - "advisory locks are not yet implemented": YB master
    5951e18 changes the hint message
    for test queries added by YB pg15.  Update the hint message.
- yb_pg_dbms_alert_session_B.out: (same)
- yb_pg_dbms_alert_session_C.out: (same)
- yb_pg_dbms_pipe_session_A.out: (same)
- yb_pg_dbms_pipe_session_B.out: (same)

Test Plan: Jenkins: rebase: pg15-cherrypicks

Reviewers: jason, tfoucher, qhu

Reviewed By: qhu

Subscribers: qhu

Differential Revision: https://phorge.dev.yugabyte.com/D38163
jasonyb pushed a commit that referenced this issue Sep 21, 2024
…ter-merge

Merge YB master commit d4103e8 titled

    [#23513]  YSQL: Fix broken org.yb.pgsql.TestYsqlMetrics#testExplainMaxMemory unit test

and committed 2024-09-18T13:24:18+03:00 into YB pg15.

YB pg15 initial merge refers to
55782d5.

- yb_lsm.c:
  - ybcinbuildCallback: adjacent conflict between YB pg15
    b263910 changing ybcinbuildCallback
    signature and YB master f0a5db7
    adding new function doAssignForIdxUpdate.
- tablecmds.c:
  - declarations:
    - ATExecAddIndexConstraint: YB master
      2ac2e98 adds a new parameter
      yb_wqueue to this function that upstream PG
      8255c7a5eeba8f1a38b7a431c04909bde4f5e67d changes the indentation
      for.  Trivial merge.
    - ATPrepSetTableSpace: YB master
      06baaf0 introduces a new
      parameter to this function that upstream PG changes indentation
      for.  Trivial merge.
  - ATRewriteTable: after YB master
    24a5af0, ALTER TABLE VALIDATE
    CONSTRAINT is supported.  Upstream PG commit
    f1fcf2d3b2e00b3d7ad3e0d2b1d26b77f5a48413 delays constraint
    validation for ALTER TABLE VALIDATE CONSTRAINT to phase 3 of alter
    table.  So it shares the code paths for constraint validation with a
    regular ADD CONSTRAINT operation.  YB has added logic to
    ATExecDropConstraint in case of constraint failure.  This is only
    intended for ADD CONSTRAINT, but now that code paths are shared,
    this also affects VALIDATE CONSTRAINT incorrectly.  The original
    logic also could use !YbDdlRollbackEnabled to avoid
    ATExecDropConstraint in case DDL atomicity is enabled.  This is
    orthogonal to the issue, but it at least helps get the tests to pass
    for now since DDL atomicity is enabled by default.  Do that
    improvement here, and add a todo to fix the condition properly.
- execIndexing.c:
  - includes: YB master f0a5db7
    includes catalog/pg_am_d.h.  YB pg15 initial merge touches the same
    area.
  - YbExecDoInsertIndexTuple: (see ExecInsertIndexTuples)
  - ExecInsertIndexTuples:
    - for loop variable declarations: YB master
      f0a5db7 moves three variable
      declarations into new YbExecDoInsertIndexTuple and moves skip
      index logic into new YbExecUpdateIndexTuples.  Upstream PG
      9dc718bdf2b1a574481a45624d42b674332e2903 adds indexUnchanged
      variable declaration among the three variable declarations.  Move
      that to the new location as well.
    - for loop after check for partial index: YB master
      f0a5db7 moves code into new
      YbExecDoInsertIndexTuple.  YB pg15 initial merge and
      b263910 modify this moved code
      (add indexUnchanged computation and modify two satisfiesConstraint
      assignments).  Apply the modifications to the new location.  (This
      also involves forwarding local variable "update" and "tupleid" as
      opposed to "tuple".  And also copying local variables
      "heapRelation" and "isYBRelation".)
  - YbExecDoDeleteIndexTuple: (see ExecDeleteIndexTuples)
  - ExecDeleteIndexTuples: YB master
    f0a5db7 moves code into new
    YbExecDoDeleteIndexTuple.  YB pg15 initial merge touches this code
    (renaming index_delete to yb_index_delete).  Apply the modification
    to the new location.  (This also involves copying local variable
    "heapRelation".)
  - YbExecUpdateIndexTuples:
    YB master f0a5db7 adds this
    function:
    - signature:
      - Upstream PG 1375422c7826a2bf387be29895e961614f69de4b changes
        ResultRelInfo to be passed around directly rather than deriving
        it from EState.  Add it as a parameter and remove the invalid
        code trying to derive it from estate.
      - Change "tuple" to "tupleid" similar to YbExecDoInsertIndexTuple.
    - MakeSingleTupleTableSlot: upstream PG adds additional param to
      this function.  Pass &TTSOpsHeapTuple.
    - ybamcanupdatetupleinplace: upstream PG
      346ed70b0ad7efc574711a97812692dab4542712 renames rd_amroutine to
      rd_indam.  Change it for this new usage as well.
    - YbExecDoInsertIndexTuple: (see YbExecUpdateIndexTuples signature)
- nodeModifyTable.c:
  - ExecUpdate: YB master f0a5db7
    replaces ExecDeleteIndexTuplesOptimized +
    ExecInsertIndexTuplesOptimized with YbExecUpdateIndexTuples and
    passes yb_cols_marked_for_update to that call.  YB
    pg15 initial merge moves this code to ExecUpdateEpilogue (also note
    the functions were renamed to not have "Optimized"), and YB pg15
    6d46032 moves the
    yb_cols_marked_for_update code into YBExecUpdateAct.  To resolve
    this, there are two main things:
    - Replace the delete + insert with update in the new location
      ExecUpdateEpilogue.
    - Pass around variables across the functions that need it,
      particularly yb_cols_marked_for_update but also yb_is_pk_updated.
      This also involves changing the lifetime of the variables.
  - YBExecUpdateAct: (see ExecUpdate)
  - ExecUpdateEpilogue:
    - signature: (see ExecUpdate)
    - YbExecUpdateIndexTuples: YB master
      f0a5db7 adds this function call.
      Adapt to signature changes mentioned above and change planSlot to
      context->planSlot and estate to context->estate.
  - ExecMergeMatched: this function is introduced by upstream PG and
    calls ExecUpdateEpilogue.  The signature of ExecUpdateEpilogue is
    changed by YB master f0a5db7.
    Populate the new parameters with default/fake values and add a todo
    because MERGE is not supported yet.
- nodeYbSeqscan.c:
  - YbSeqNext: YB master 7f59bd8
    touches code where YB pg15 71dc8d0
    changes scandesc->ybscan to ybScan.  Trivial merge.
- costsize.c:
  - yb_get_bitmap_index_quals: YB master
    a913524 makes changes that are not
    relevant to pg15.  Discard the master changes.
- gram.y:
  - "ALTER TABLE <name> SET TABLESPACE <tablespacename>": adjacent
    conflict between YB master 06baaf0
    adding n->yb_cascade = false and upstream PG
    30ed71e423ee63b263730b86326da2a629a29f84 changing style of adjacent
    line.
- guc.c:
  - yb_plpgsql_disable_prefetch_in_for_query: adjacent lines conflict
    between YB pg15 91a265a touching
    GUC yb_plpgsql_disable_prefetch_in_for_query (QUERY_TUNING to
    QUERY_TUNING_METHOD) and YB master
    063dbe5 adding GUC
    yb_make_next_ddl_statement_nonincrementing above that.
- amapi.h:
  - struct IndexAmRoutine: adjacent lines conflict between YB master
    f0a5db7 adding
    ybamcanupdatetupleinplace and upstream PG
    4d8a8d0c738410ec02aab46b1ebe1835365ad384 adding
    amusemaintenanceworkmem and amparallelvacuumoptions in the same
    location.
- genam.h:
  - yb_index_update: adjacent lines conflict between YB master
    f0a5db7 adding this function and YB
    pg15 initial merge renaming index_delete to yb_index_delete.
- executor.h:
  - YbExecUpdateIndexTuples: adjacent lines conflict between YB master
    f0a5db7 adding this function and
    various YB pg15 commits touching surrounding code, the most relevant
    being YB pg15 initial merge moving ExecDeleteIndexTuples declaration
    lower.  Position the new YbExecUpdateIndexTuples below that.
    Furthermore, update the signature according as mentioned above in
    execIndexing.c.
- ybcModifyTable.h:
  - YBCExecuteUpdateIndex: YB master
    f0a5db7 adds this function where YB
    pg15 473ebf8 incorrectly removes a
    line, causing merge conflict.  Bring back the line.
- relcache.h:
  - CheckUpdateExprOrPred: YB master
    f0a5db7 adds this function below
    CheckIndexForUpdate.  YB pg15 moves CheckIndexForUpdate lower, and
    upstream PG e7eea52b2d61917fbbdac7f3f895e4ef636e935b adds new
    function RelationGetIdentityKeyBitmap in the original area.  Add
    this function to the new location.  (Note both Check* functions are
    YB functions despite not having YB prefix.)
- yb_pg_foreign_data.out:
  - "ALTER TABLE fd_pt1 VALIDATE CONSTRAINT fd_pt1chk3": YB master
    24a5af0 no longer expects this
    command to fail.  YB pg15 1b1b3a0
    makes minor changes in this area.  Take master's version.  This
    involves removing YB comment saying the output differs with upstream
    since it no longer differs.
  - a little below that: YB master
    24a5af0 updates output for queries
    that are deleted by YB pg15 1b1b3a0
    because WITH OIDS is no longer supported.  Drop the master changes.
- yb_pg_index_including.out:
  - "CREATE TABLE tbl_include_box": both YB master
    2ac2e98 and YB pg15
    9690419 uncomment some tests.
    These tests were ported, modified to change the box column to int,
    and commented out.  Likely what happened is that, at the time,
    include index using box column was not supported.  YB pg15's
    uncommenting reverts this back to using the box column, so it is
    superior.  Take YB pg15's version, but keep YB master's expectation
    that ALTER TABLE succeeds.
- yb_pg_select.out:
  - YB master a913524 makes changes
    that are not relevant to pg15.  Discard the master changes.
- yb_pg_index_including.sql: (see yb_pg_index_including.out)
- pg_hint_plan.c:
  - YB master 5523770 modifies
    get_query_string which no longer exists.  Disregard the master
    change.  See the YB master commit message's pg15 note for more
    detail.
- pg_hint_plan/yb_schedule:
  - YB master 5523770 adds new test
    yb_hint_table at the end.  YB pg15
    4c9db48 changes the other tests
    greatly.  Do both.
- indexam.c:
  - yb_index_update: YB master f0a5db7
    adds this function containing usage of rd_amroutine.  Upstream PG
    346ed70b0ad7efc574711a97812692dab4542712 renames rd_amroutine to
    rd_indam.  Change it for this new usage as well.
- yb_alter_table.out:
  - YB master 24a5af0 adds tests.
    Update constraint violation error messages according to upstream PG
    05f18c6b6b6e4b44302ee20a042cedc664532aa2.
- yb_alter_table_rewrite.out:
  - YB master 2ac2e98 adds tests.
    Update various error messages according to upstream PG
    8e599897ca20fe31cb58fad0b401d7e317235024 and
    05f18c6b6b6e4b44302ee20a042cedc664532aa2.
- yb_pg_alter_table.out: (same as yb_alter_table.out)
- yb_pg_create_index.out:
  - YB master 2ac2e98 adds tests.  YB
    pg15 5e40db0 makes this test run
    with yb_use_hash_splitting_by_default=false, so update \d output
    accordingly.
- yb_pg_foreign_data.sql:
  - Remove the comment "\\ -- YB: output differs with the original test
    due to failed ALTER TABLE above" (see yb_pg_foreign_data.out
    explanation).
- yb_pg_dbms_alert_session_A.out:
  - "advisory locks are not yet implemented": YB master
    5951e18 changes the hint message
    for test queries added by YB pg15.  Update the hint message.
- yb_pg_dbms_alert_session_B.out: (same)
- yb_pg_dbms_alert_session_C.out: (same)
- yb_pg_dbms_pipe_session_A.out: (same)
- yb_pg_dbms_pipe_session_B.out: (same)
- pg15_tests/passing_tests.tsv:
  - XClusterOutboundReplicationGroupParameterized: rename
    XClusterOutboundReplicationGroupTest tests to parameterized
    XClusterOutboundReplicationGroupParameterized due to YB master
    f157e2e.
jasonyb pushed a commit that referenced this issue Sep 21, 2024
…' into pg15

Summary:
Merge YB master commit d4103e8 titled

    [#23513]  YSQL: Fix broken org.yb.pgsql.TestYsqlMetrics#testExplainMaxMemory unit test

and committed 2024-09-18T13:24:18+03:00 into YB pg15.

YB pg15 initial merge refers to
55782d5.

- yb_lsm.c:
  - ybcinbuildCallback: adjacent conflict between YB pg15
    b263910 changing ybcinbuildCallback
    signature and YB master f0a5db7
    adding new function doAssignForIdxUpdate.
- tablecmds.c:
  - declarations:
    - ATExecAddIndexConstraint: YB master
      2ac2e98 adds a new parameter
      yb_wqueue to this function that upstream PG
      8255c7a5eeba8f1a38b7a431c04909bde4f5e67d changes the indentation
      for.  Trivial merge.
    - ATPrepSetTableSpace: YB master
      06baaf0 introduces a new
      parameter to this function that upstream PG changes indentation
      for.  Trivial merge.
  - ATRewriteTable: after YB master
    24a5af0, ALTER TABLE VALIDATE
    CONSTRAINT is supported.  Upstream PG commit
    f1fcf2d3b2e00b3d7ad3e0d2b1d26b77f5a48413 delays constraint
    validation for ALTER TABLE VALIDATE CONSTRAINT to phase 3 of alter
    table.  So it shares the code paths for constraint validation with a
    regular ADD CONSTRAINT operation.  YB has added logic to
    ATExecDropConstraint in case of constraint failure.  This is only
    intended for ADD CONSTRAINT, but now that code paths are shared,
    this also affects VALIDATE CONSTRAINT incorrectly.  The original
    logic also could use !YbDdlRollbackEnabled to avoid
    ATExecDropConstraint in case DDL atomicity is enabled.  This is
    orthogonal to the issue, but it at least helps get the tests to pass
    for now since DDL atomicity is enabled by default.  Do that
    improvement here, and add a todo to fix the condition properly.
- execIndexing.c:
  - includes: YB master f0a5db7
    includes catalog/pg_am_d.h.  YB pg15 initial merge touches the same
    area.
  - YbExecDoInsertIndexTuple: (see ExecInsertIndexTuples)
  - ExecInsertIndexTuples:
    - for loop variable declarations: YB master
      f0a5db7 moves three variable
      declarations into new YbExecDoInsertIndexTuple and moves skip
      index logic into new YbExecUpdateIndexTuples.  Upstream PG
      9dc718bdf2b1a574481a45624d42b674332e2903 adds indexUnchanged
      variable declaration among the three variable declarations.  Move
      that to the new location as well.
    - for loop after check for partial index: YB master
      f0a5db7 moves code into new
      YbExecDoInsertIndexTuple.  YB pg15 initial merge and
      b263910 modify this moved code
      (add indexUnchanged computation and modify two satisfiesConstraint
      assignments).  Apply the modifications to the new location.  (This
      also involves forwarding local variable "update" and "tupleid" as
      opposed to "tuple".  And also copying local variables
      "heapRelation" and "isYBRelation".)
  - YbExecDoDeleteIndexTuple: (see ExecDeleteIndexTuples)
  - ExecDeleteIndexTuples: YB master
    f0a5db7 moves code into new
    YbExecDoDeleteIndexTuple.  YB pg15 initial merge touches this code
    (renaming index_delete to yb_index_delete).  Apply the modification
    to the new location.  (This also involves copying local variable
    "heapRelation".)
  - YbExecUpdateIndexTuples:
    YB master f0a5db7 adds this
    function:
    - signature:
      - Upstream PG 1375422c7826a2bf387be29895e961614f69de4b changes
        ResultRelInfo to be passed around directly rather than deriving
        it from EState.  Add it as a parameter and remove the invalid
        code trying to derive it from estate.
      - Change "tuple" to "tupleid" similar to YbExecDoInsertIndexTuple.
    - MakeSingleTupleTableSlot: upstream PG adds additional param to
      this function.  Pass &TTSOpsHeapTuple.
    - ybamcanupdatetupleinplace: upstream PG
      346ed70b0ad7efc574711a97812692dab4542712 renames rd_amroutine to
      rd_indam.  Change it for this new usage as well.
    - YbExecDoInsertIndexTuple: (see YbExecUpdateIndexTuples signature)
- nodeModifyTable.c:
  - ExecUpdate: YB master f0a5db7
    replaces ExecDeleteIndexTuplesOptimized +
    ExecInsertIndexTuplesOptimized with YbExecUpdateIndexTuples and
    passes yb_cols_marked_for_update to that call.  YB
    pg15 initial merge moves this code to ExecUpdateEpilogue (also note
    the functions were renamed to not have "Optimized"), and YB pg15
    6d46032 moves the
    yb_cols_marked_for_update code into YBExecUpdateAct.  To resolve
    this, there are two main things:
    - Replace the delete + insert with update in the new location
      ExecUpdateEpilogue.
    - Pass around variables across the functions that need it,
      particularly yb_cols_marked_for_update but also yb_is_pk_updated.
      This also involves changing the lifetime of the variables.
  - YBExecUpdateAct: (see ExecUpdate)
  - ExecUpdateEpilogue:
    - signature: (see ExecUpdate)
    - YbExecUpdateIndexTuples: YB master
      f0a5db7 adds this function call.
      Adapt to signature changes mentioned above and change planSlot to
      context->planSlot and estate to context->estate.
  - ExecMergeMatched: this function is introduced by upstream PG and
    calls ExecUpdateEpilogue.  The signature of ExecUpdateEpilogue is
    changed by YB master f0a5db7.
    Populate the new parameters with default/fake values and add a todo
    because MERGE is not supported yet.
- nodeYbSeqscan.c:
  - YbSeqNext: YB master 7f59bd8
    touches code where YB pg15 71dc8d0
    changes scandesc->ybscan to ybScan.  Trivial merge.
- costsize.c:
  - yb_get_bitmap_index_quals: YB master
    a913524 makes changes that are not
    relevant to pg15.  Discard the master changes.
- gram.y:
  - "ALTER TABLE <name> SET TABLESPACE <tablespacename>": adjacent
    conflict between YB master 06baaf0
    adding n->yb_cascade = false and upstream PG
    30ed71e423ee63b263730b86326da2a629a29f84 changing style of adjacent
    line.
- guc.c:
  - yb_plpgsql_disable_prefetch_in_for_query: adjacent lines conflict
    between YB pg15 91a265a touching
    GUC yb_plpgsql_disable_prefetch_in_for_query (QUERY_TUNING to
    QUERY_TUNING_METHOD) and YB master
    063dbe5 adding GUC
    yb_make_next_ddl_statement_nonincrementing above that.
- amapi.h:
  - struct IndexAmRoutine: adjacent lines conflict between YB master
    f0a5db7 adding
    ybamcanupdatetupleinplace and upstream PG
    4d8a8d0c738410ec02aab46b1ebe1835365ad384 adding
    amusemaintenanceworkmem and amparallelvacuumoptions in the same
    location.
- genam.h:
  - yb_index_update: adjacent lines conflict between YB master
    f0a5db7 adding this function and YB
    pg15 initial merge renaming index_delete to yb_index_delete.
- executor.h:
  - YbExecUpdateIndexTuples: adjacent lines conflict between YB master
    f0a5db7 adding this function and
    various YB pg15 commits touching surrounding code, the most relevant
    being YB pg15 initial merge moving ExecDeleteIndexTuples declaration
    lower.  Position the new YbExecUpdateIndexTuples below that.
    Furthermore, update the signature according as mentioned above in
    execIndexing.c.
- ybcModifyTable.h:
  - YBCExecuteUpdateIndex: YB master
    f0a5db7 adds this function where YB
    pg15 473ebf8 incorrectly removes a
    line, causing merge conflict.  Bring back the line.
- relcache.h:
  - CheckUpdateExprOrPred: YB master
    f0a5db7 adds this function below
    CheckIndexForUpdate.  YB pg15 moves CheckIndexForUpdate lower, and
    upstream PG e7eea52b2d61917fbbdac7f3f895e4ef636e935b adds new
    function RelationGetIdentityKeyBitmap in the original area.  Add
    this function to the new location.  (Note both Check* functions are
    YB functions despite not having YB prefix.)
- yb_pg_foreign_data.out:
  - "ALTER TABLE fd_pt1 VALIDATE CONSTRAINT fd_pt1chk3": YB master
    24a5af0 no longer expects this
    command to fail.  YB pg15 1b1b3a0
    makes minor changes in this area.  Take master's version.  This
    involves removing YB comment saying the output differs with upstream
    since it no longer differs.
  - a little below that: YB master
    24a5af0 updates output for queries
    that are deleted by YB pg15 1b1b3a0
    because WITH OIDS is no longer supported.  Drop the master changes.
- yb_pg_index_including.out:
  - "CREATE TABLE tbl_include_box": both YB master
    2ac2e98 and YB pg15
    9690419 uncomment some tests.
    These tests were ported, modified to change the box column to int,
    and commented out.  Likely what happened is that, at the time,
    include index using box column was not supported.  YB pg15's
    uncommenting reverts this back to using the box column, so it is
    superior.  Take YB pg15's version, but keep YB master's expectation
    that ALTER TABLE succeeds.
- yb_pg_select.out:
  - YB master a913524 makes changes
    that are not relevant to pg15.  Discard the master changes.
- yb_pg_index_including.sql: (see yb_pg_index_including.out)
- pg_hint_plan.c:
  - YB master 5523770 modifies
    get_query_string which no longer exists.  Disregard the master
    change.  See the YB master commit message's pg15 note for more
    detail.
- pg_hint_plan/yb_schedule:
  - YB master 5523770 adds new test
    yb_hint_table at the end.  YB pg15
    4c9db48 changes the other tests
    greatly.  Do both.
- indexam.c:
  - yb_index_update: YB master f0a5db7
    adds this function containing usage of rd_amroutine.  Upstream PG
    346ed70b0ad7efc574711a97812692dab4542712 renames rd_amroutine to
    rd_indam.  Change it for this new usage as well.
- yb_alter_table.out:
  - YB master 24a5af0 adds tests.
    Update constraint violation error messages according to upstream PG
    05f18c6b6b6e4b44302ee20a042cedc664532aa2.
- yb_alter_table_rewrite.out:
  - YB master 2ac2e98 adds tests.
    Update various error messages according to upstream PG
    8e599897ca20fe31cb58fad0b401d7e317235024 and
    05f18c6b6b6e4b44302ee20a042cedc664532aa2.
- yb_pg_alter_table.out: (same as yb_alter_table.out)
- yb_pg_create_index.out:
  - YB master 2ac2e98 adds tests.  YB
    pg15 5e40db0 makes this test run
    with yb_use_hash_splitting_by_default=false, so update \d output
    accordingly.
- yb_pg_foreign_data.sql:
  - Remove the comment "\\ -- YB: output differs with the original test
    due to failed ALTER TABLE above" (see yb_pg_foreign_data.out
    explanation).
- yb_pg_dbms_alert_session_A.out:
  - "advisory locks are not yet implemented": YB master
    5951e18 changes the hint message
    for test queries added by YB pg15.  Update the hint message.
- yb_pg_dbms_alert_session_B.out: (same)
- yb_pg_dbms_alert_session_C.out: (same)
- yb_pg_dbms_pipe_session_A.out: (same)
- yb_pg_dbms_pipe_session_B.out: (same)
- pg15_tests/passing_tests.tsv:
  - XClusterOutboundReplicationGroupParameterized: rename
    XClusterOutboundReplicationGroupTest tests to parameterized
    XClusterOutboundReplicationGroupParameterized due to YB master
    f157e2e.

Test Plan:
pg15_tests are in bad shape:

- some tests have been check failing: this will likely be fixed by
  future YB master 8d228a8.  Tests
  include
  - org.yb.pgsql.TestAlterTableWithConcurrentTxn
  - org.yb.pgsql.TestPgRegressPgIndex
- org.yb.pgsql.TestPgRegressTablespaces is removed from
  passing_tests.tsv by YB pg15 d528e86.
- org.yb.pgsql.TestPgBatch fails altogether but not when tests are run
  individually.

In the interest of time, don't deal with them for now.

Jenkins: rebase: pg15

Reviewers: tfoucher

Reviewed By: tfoucher

Subscribers: yql

Differential Revision: https://phorge.dev.yugabyte.com/D38252
@github-project-automation github-project-automation bot moved this from Backlog to Done in YSQL Nov 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/ysql Yugabyte SQL (YSQL) kind/enhancement This is an enhancement of an existing feature priority/medium Medium priority issue
Projects
Status: Done
Development

No branches or pull requests

3 participants