Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
b2fee8f
Custom user shared invalidation message
akorotkov Dec 12, 2021
6fe62c5
CacheInvalidateRelcacheByDbidRelid()
akorotkov Dec 12, 2021
8ee8ad0
CommitSeqNo data type
akorotkov Dec 12, 2021
d8a01c1
Custom TOAST
akorotkov Dec 12, 2021
89bc978
Allow locking updated tuples in tuple_update() and tuple_delete()
akorotkov Mar 22, 2023
c1c7ad1
Add EvalPlanQual delete returning isolation test
anarazel Mar 22, 2023
e6e7641
Improvements to TableAM API
akorotkov Dec 12, 2021
31af806
Hook for custom error cleanup
akorotkov Dec 12, 2021
23411cb
Snapshot extension and hooks
akorotkov Dec 12, 2021
0b65b44
Hooks for builtin functions and datatypes and orioledb recovery
akorotkov Dec 12, 2021
da88dff
Recovery and checkpointer hooks
akorotkov Dec 12, 2021
bb527c1
Allow skipping logging for AccessExclusiveLock
akorotkov Dec 12, 2021
78a7176
Add convenience functions
akorotkov Dec 12, 2021
68cdff1
PERFORM_DELETION_OF_RELATION flag for object hooks
akorotkov Dec 12, 2021
20a6aee
Expose existing planning funcs and structs
akorotkov Dec 12, 2021
87b2e10
Allow locks in checkpointer
akorotkov Dec 12, 2021
5cee34e
Add base_init_startup_hook and HandleStartupProcInterrupts_hook
akorotkov Dec 13, 2021
9d658f1
Don't cancel recovery processes because of deadlocks
akorotkov Dec 13, 2021
97bf0e2
set_plain_rel_pathlist_hook
akorotkov Dec 13, 2021
769fbd6
Let locker tolerate being removed from the waiting queue without obta…
akorotkov Dec 13, 2021
d99e7b5
Count extension wait events in pg_isolation_test_session_is_blocked()
akorotkov Feb 17, 2022
593faf3
Support for custom table AM in pgbench
akorotkov Feb 24, 2022
09efc76
Support for outline atomics on aarch64
akorotkov Mar 2, 2022
adb3177
OrioleDB specific CI
akorotkov Feb 17, 2022
efcee4f
Close indices in AttachPartitionEnsureIndexes() before DefineIndex()
akorotkov Apr 8, 2023
8431645
New BGWORKER_CLASS_SYSTEM bgworkers class
akorotkov Jun 29, 2023
781e736
Add pg_newlocale_from_collation_hook to perform stricter collation ch…
homper Sep 7, 2023
c78ff60
Archive preload callback
akorotkov Jul 12, 2023
80c019b
Remove pthread_is_threaded_np() call
akorotkov Feb 18, 2024
6cf63d6
Added option to pg_rewind to perform extension specific rewind
homper Dec 8, 2023
c27dfa9
Index scan and index only scan with rowid
homper May 3, 2024
8519b24
Remove primary index am check
homper May 8, 2024
cc366f9
Passing tupleid to insert now
homper May 13, 2024
148564f
Methods for index update and delete
homper May 16, 2024
35b0a22
Hook to override index AM routine
akorotkov Aug 12, 2024
f2db6da
Always building child/root maps for relations with ROW_REF_ROWID
homper Sep 4, 2024
02266cc
Don't run internal btree _bt_getrootheight on non-btree in get_relati…
homper Aug 20, 2024
cb43ac9
Fix handling tupleid in logical replication
akorotkov Sep 16, 2024
47b9587
New csn snapshot format
homper Sep 27, 2024
6e00d96
expose functions that became private in PG17 due to ReourceOwner and …
pashkinelfe Oct 7, 2024
991a24c
New CSN snapshot format
homper Sep 27, 2024
f38baff
Restart archiver during PM_SHUTDOWN postmaster stage
akorotkov Oct 3, 2024
f9f7a96
Add handling of CSN snapshot in some places of snapbuild.c
akorotkov Oct 8, 2024
79016de
Move CheckPoint_hook() call after CheckPointBuffers()
akorotkov Oct 14, 2024
290dacb
Restore GetIndexAmRoutine signature for compatibility with other callers
pashkinelfe Oct 15, 2024
6941b49
Make index insert compatible with outside callers
pashkinelfe Oct 16, 2024
ebd8030
Fix warning in pg_rewind
pashkinelfe Oct 18, 2024
df3dc4f
Fix active snapshot checks
pashkinelfe Oct 22, 2024
6d4f317
Transform OR-clauses to SAOP's during index matching
akorotkov Sep 23, 2024
05b2ffe
Teach bitmap path generation about transforming OR-clauses to SAOP's
akorotkov Sep 23, 2024
942e9d1
Remove the wrong assertion from match_orclause_to_indexcol()
akorotkov Nov 25, 2024
cb8754a
Skip not SOAP-supported indexes while transforming an OR clause into …
akorotkov Nov 28, 2024
6ed55bb
Update SnapshotData: split row-level and page-level undo locations
akorotkov Feb 5, 2025
40d2d66
Added hint bits horizon
homper Apr 3, 2025
d051cd9
Regress check with orioledb storage engine
e-ivkov Apr 15, 2025
b023fb5
Use Ubuntu 24.04 image
za-arthur Apr 28, 2025
ef0f5a3
Add wait event for rewind worker
pashkinelfe Apr 4, 2025
80bcd60
Add VacuumHorizonHook instead of just hint bits horizon
akorotkov May 21, 2025
4a65d45
Modify CountOtherDBBackends/TerminateOtherDBBackends to process whole…
pashkinelfe May 22, 2025
e5862d3
Disable assert in clog
pashkinelfe May 26, 2025
536329d
Use VacuumHorizonHook in more places
akorotkov Jun 29, 2025
b4865e9
Serialize reftype for RTE_RELATION
homper May 28, 2025
2fa8c59
Issue #487: Add TableSupportsBackwardScan() and TableAmRoutine->amcan…
za-arthur Aug 22, 2025
67e50a5
Extend tableam->relation_size() functionality to use different calcul…
pashkinelfe Aug 4, 2025
095ab11
fix pg_rewind docs
angaz Dec 18, 2024
82a1717
Fix copying datum in ExecModifyTable()
akorotkov Sep 23, 2025
2e2473f
Add GetReplayXlogPtrHook allowing extensions to adjust replay LSN
akorotkov Sep 30, 2025
6cd0ba4
Rework handling of running transactions by extensions.
akorotkov Oct 5, 2025
0d957ec
TableAM: add relation_reindex
e-ivkov Oct 6, 2025
15fcb04
IndexAM: Add amreuse
e-ivkov Oct 10, 2025
879c00f
Revert "Merge pull request #25 from e-ivkov/truncate-reindex"
homper Oct 22, 2025
25a6187
Correctly extract ORIOLEDB_PATCHSET_VERSION from git
akorotkov Oct 25, 2025
51b68ba
Allow skipping transactions for ReorderBufferAbortOld()
akorotkov Oct 25, 2025
24e40b2
Enable running subscription tests with oriole
e-ivkov Oct 20, 2025
12f7c11
Fix warning: resource was not closed: cache pg_am
e-ivkov Nov 5, 2025
1d7f740
Fix formatting for amreuse call
e-ivkov Nov 5, 2025
2300d75
Add RecoveryStopsHook for extensions to handle custom WAL records
za-arthur Nov 4, 2025
61a413c
Enable subscription test 004_sync.pl
e-ivkov Nov 24, 2025
439eccd
Add missing SHAREDINVALUSERCACHE_ID to standby_desc_invalidations
za-arthur Dec 16, 2025
09968c4
Added support for bytea* tupleid for exclusion constraints
homper Aug 25, 2025
5f506af
Add row_ref_equals hook for check_exclusion_or_unique_constraint to w…
homper Aug 26, 2025
0bdd308
Fix for after update trigger and unique defferrable constraints
homper Nov 5, 2025
ce03c0c
Pass indexUnchanged to index_update method
homper Nov 25, 2025
7080d7d
pass indexRel to table_index_fetch_begin to detect index bridging for…
homper Dec 4, 2025
e8562da
Fixed unique_key_recheck for postgres relations
homper Dec 10, 2025
3683aae
passing is_rowid to index_fetch_tuple for bridged btrees to work
homper Dec 21, 2025
67e0480
allow invalid rowid in check_exclusion_or_unique_constraint
homper Dec 26, 2025
c3f65e2
properly process conflictTid for rowid
homper Dec 26, 2025
c68bbb5
Disable pg_column_toast_chunk_id() function for OrioleDB TOAST
pashkinelfe Jan 15, 2026
59f2ab2
Use release_rd_amcache() within RelationInvalidateRelation()
za-arthur Jan 21, 2026
1c27ba4
Add missing CustomErrorCleanup
za-arthur Jan 22, 2026
f0d7795
Fix merge with 5db6df0c0117
pashkinelfe Feb 5, 2026
636d7a6
Use TABLE_MODIFY_LOCK_UPDATED in ExecMergeMatched()
akorotkov Feb 16, 2026
9ffab2b
Fix recognizing extension StopEvents in isolation tester
akorotkov Feb 17, 2026
d70e7a5
Modify the way ExecMergeMatched() detects moved partitions
akorotkov Feb 18, 2026
360228a
Allow pre-initialized catalog cache in single-user mode; fix missing …
Serge-sudo Feb 27, 2026
4009248
Enable more regress tests for Oriole
GremSnoort Feb 27, 2026
53d964e
Bump version of actions/checkout to v6
za-arthur Mar 3, 2026
ac602d0
Add alter table tests to oriole vanila regress
ereutt Jan 16, 2026
e04106d
Enable regular create_index test
homper Jan 21, 2026
933f81f
Call xact_redo_hook on replaying transaction about
akorotkov Mar 9, 2026
294c42c
Add database_size hook
pashkinelfe Mar 5, 2026
baf36a7
Enable more regress tests for Oriole (2)
vvtrunov Mar 5, 2026
2c21d4d
Fix loss of root/meta blkno after self-invalidation; defer invalidati…
Serge-sudo Mar 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: build

on:
push:
pull_request:

jobs:
test:
runs-on:
- ubuntu-24.04
strategy:
fail-fast: false
matrix:
compiler: [clang, gcc]
check_type: [normal, debug]
env:
LLVM_VER: 19
COMPILER: ${{ matrix.compiler }}
CHECK_TYPE: ${{ matrix.check_type }}
steps:
- name: Checkout code into workspace directory
uses: actions/checkout@v6
- name: Setup prerequisites
run: bash ./ci/prerequisites.sh
- name: Build
run: bash ./ci/build.sh
- name: Check
run: bash ./ci/check.sh
- name: Check output
run: bash ./ci/check_output.sh
if: ${{ success() || failure() }}
21 changes: 21 additions & 0 deletions ci/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash

set -eu

if [ $COMPILER = "clang" ]; then
export CC=clang-$LLVM_VER
else
export CC=gcc
fi

# configure & build
if [ $CHECK_TYPE = "debug" ]; then
CFLAGS="-O0" ./configure --enable-debug --enable-cassert --enable-tap-tests --with-icu
else
./configure --disable-debug --disable-cassert --enable-tap-tests --with-icu
fi

make -sj4
cd contrib
make -sj4
cd ..
11 changes: 11 additions & 0 deletions ci/check.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/bash

set -eu

# unsets limit for coredumps size
ulimit -c unlimited -S
# sets a coredump file pattern
mkdir -p /tmp/cores-$GITHUB_SHA-$TIMESTAMP
sudo sh -c "echo \"/tmp/cores-$GITHUB_SHA-$TIMESTAMP/%t_%p_%s.core\" > /proc/sys/kernel/core_pattern"

make check-world -j4
30 changes: 30 additions & 0 deletions ci/check_output.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/bash

set -eu

status=0

# show diff if it exists
for f in ` find . -name regression.diffs ` ; do
echo "========= Contents of $f"
cat $f
status=1
done

# check core dumps if any
cores=$(find /tmp/cores-$GITHUB_SHA-$TIMESTAMP/ -name '*.core' 2>/dev/null)

if [ -n "$cores" ]; then
for corefile in $cores ; do
if [[ $corefile != *_3.core ]]; then
binary=$(gdb -quiet -core $corefile -batch -ex 'info auxv' | grep AT_EXECFN | perl -pe "s/^.*\"(.*)\"\$/\$1/g")
echo dumping $corefile for $binary
gdb --batch --quiet -ex "thread apply all bt full" -ex "quit" $binary $corefile
status=1
fi
done
fi

rm -rf /tmp/cores-$GITHUB_SHA-$TIMESTAMP

exit $status
22 changes: 22 additions & 0 deletions ci/prerequisites.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/bash

set -eu

# print the hostname to be able to identify runner by logs
echo "HOSTNAME=`hostname`"
TIMESTAMP=$(date +%s)
echo "TIMESTAMP=$TIMESTAMP" >> $GITHUB_ENV
echo "TIMESTAMP=$TIMESTAMP"

sudo apt-get -y install -qq wget ca-certificates

sudo apt-get update -qq

apt_packages="build-essential flex bison pkg-config libreadline-dev make gdb libipc-run-perl libicu-dev python3 python3-dev python3-pip python3-setuptools python3-testresources"

if [ $COMPILER = "clang" ]; then
apt_packages="$apt_packages llvm-$LLVM_VER clang-$LLVM_VER clang-tools-$LLVM_VER"
fi

# install required packages
sudo apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" -y install -qq $apt_packages
100 changes: 99 additions & 1 deletion configure
Original file line number Diff line number Diff line change
Expand Up @@ -628,6 +628,7 @@ ac_includes_default="\
ac_subst_vars='LTLIBOBJS
vpath_build
PG_SYSROOT
ORIOLEDB_PATCHSET_VERSION
PG_VERSION_NUM
LDFLAGS_EX_BE
PROVE
Expand Down Expand Up @@ -6663,6 +6664,99 @@ fi
if test -n "$NOT_THE_CFLAGS"; then
CFLAGS="$CFLAGS -Wno-cast-function-type-strict"
fi
if test x"$host_cpu" == x"aarch64"; then

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC} supports -moutline-atomics, for CFLAGS" >&5
$as_echo_n "checking whether ${CC} supports -moutline-atomics, for CFLAGS... " >&6; }
if ${pgac_cv_prog_CC_cflags__moutline_atomics+:} false; then :
$as_echo_n "(cached) " >&6
else
pgac_save_CFLAGS=$CFLAGS
pgac_save_CC=$CC
CC=${CC}
CFLAGS="${CFLAGS} -moutline-atomics"
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */

int
main ()
{

;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
pgac_cv_prog_CC_cflags__moutline_atomics=yes
else
pgac_cv_prog_CC_cflags__moutline_atomics=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="$pgac_save_CFLAGS"
CC="$pgac_save_CC"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_prog_CC_cflags__moutline_atomics" >&5
$as_echo "$pgac_cv_prog_CC_cflags__moutline_atomics" >&6; }
if test x"$pgac_cv_prog_CC_cflags__moutline_atomics" = x"yes"; then
CFLAGS="${CFLAGS} -moutline-atomics"
fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} supports -moutline-atomics, for CXXFLAGS" >&5
$as_echo_n "checking whether ${CXX} supports -moutline-atomics, for CXXFLAGS... " >&6; }
if ${pgac_cv_prog_CXX_cxxflags__moutline_atomics+:} false; then :
$as_echo_n "(cached) " >&6
else
pgac_save_CXXFLAGS=$CXXFLAGS
pgac_save_CXX=$CXX
CXX=${CXX}
CXXFLAGS="${CXXFLAGS} -moutline-atomics"
ac_save_cxx_werror_flag=$ac_cxx_werror_flag
ac_cxx_werror_flag=yes
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu

cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */

int
main ()
{

;
return 0;
}
_ACEOF
if ac_fn_cxx_try_compile "$LINENO"; then :
pgac_cv_prog_CXX_cxxflags__moutline_atomics=yes
else
pgac_cv_prog_CXX_cxxflags__moutline_atomics=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu

ac_cxx_werror_flag=$ac_save_cxx_werror_flag
CXXFLAGS="$pgac_save_CXXFLAGS"
CXX="$pgac_save_CXX"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_prog_CXX_cxxflags__moutline_atomics" >&5
$as_echo "$pgac_cv_prog_CXX_cxxflags__moutline_atomics" >&6; }
if test x"$pgac_cv_prog_CXX_cxxflags__moutline_atomics" = x"yes"; then
CXXFLAGS="${CXXFLAGS} -moutline-atomics"
fi


fi
elif test "$ICC" = yes; then
# Intel's compiler has a bug/misoptimization in checking for
# division by NAN (NaN == 0), -mp1 fixes it, so add it to the CFLAGS.
Expand Down Expand Up @@ -15272,7 +15366,7 @@ fi
LIBS_including_readline="$LIBS"
LIBS=`echo "$LIBS" | sed -e 's/-ledit//g' -e 's/-lreadline//g'`

for ac_func in backtrace_symbols copyfile copy_file_range getifaddrs getpeerucred inet_pton kqueue mbstowcs_l posix_fallocate ppoll pthread_is_threaded_np setproctitle setproctitle_fast strsignal syncfs sync_file_range uselocale wcstombs_l
for ac_func in backtrace_symbols copyfile copy_file_range getifaddrs getpeerucred inet_pton kqueue mbstowcs_l posix_fallocate ppoll setproctitle setproctitle_fast strsignal syncfs sync_file_range uselocale wcstombs_l
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
Expand Down Expand Up @@ -19283,6 +19377,10 @@ _ACEOF



# Needed to check postgresql patches git tag during orioledb extension build
ORIOLEDB_PATCHSET_VERSION=`tag=$(git describe --tags --exact-match 2>/dev/null) && echo "$tag" | cut -d'_' -f2 || git rev-parse HEAD`


# If we are inserting PG_SYSROOT into CPPFLAGS, do so symbolically not
# literally, so that it's possible to override it at build time using
# a command like "make ... PG_SYSROOT=path". This has to be done after
Expand Down
9 changes: 8 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -580,6 +580,10 @@ if test "$GCC" = yes -a "$ICC" = no; then
if test -n "$NOT_THE_CFLAGS"; then
CFLAGS="$CFLAGS -Wno-cast-function-type-strict"
fi
if test x"$host_cpu" == x"aarch64"; then
PGAC_PROG_CC_CFLAGS_OPT([-moutline-atomics])
PGAC_PROG_CXX_CFLAGS_OPT([-moutline-atomics])
fi
elif test "$ICC" = yes; then
# Intel's compiler has a bug/misoptimization in checking for
# division by NAN (NaN == 0), -mp1 fixes it, so add it to the CFLAGS.
Expand Down Expand Up @@ -1759,7 +1763,6 @@ AC_CHECK_FUNCS(m4_normalize([
mbstowcs_l
posix_fallocate
ppoll
pthread_is_threaded_np
setproctitle
setproctitle_fast
strsignal
Expand Down Expand Up @@ -2457,6 +2460,10 @@ $AWK '{printf "%d%04d", $1, $2}'`"]
AC_DEFINE_UNQUOTED(PG_VERSION_NUM, $PG_VERSION_NUM, [PostgreSQL version as a number])
AC_SUBST(PG_VERSION_NUM)

# Needed to check postgresql patches git tag during orioledb extension build
[ORIOLEDB_PATCHSET_VERSION=`tag=$(git describe --tags --exact-match 2>/dev/null) && echo "$tag" | cut -d'_' -f2 || git rev-parse HEAD`]
AC_SUBST(ORIOLEDB_PATCHSET_VERSION)

# If we are inserting PG_SYSROOT into CPPFLAGS, do so symbolically not
# literally, so that it's possible to override it at build time using
# a command like "make ... PG_SYSROOT=path". This has to be done after
Expand Down
2 changes: 1 addition & 1 deletion contrib/amcheck/verify_nbtree.c
Original file line number Diff line number Diff line change
Expand Up @@ -994,7 +994,7 @@ heap_entry_is_visible(BtreeCheckState *state, ItemPointer tid)
TupleTableSlot *slot = table_slot_create(state->heaprel, NULL);

tid_visible = table_tuple_fetch_row_version(state->heaprel,
tid, state->snapshot, slot);
PointerGetDatum(tid), state->snapshot, slot);
if (slot != NULL)
ExecDropSingleTupleTableSlot(slot);

Expand Down
3 changes: 2 additions & 1 deletion contrib/bloom/blinsert.c
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ blbuildempty(Relation index)
*/
bool
blinsert(Relation index, Datum *values, bool *isnull,
ItemPointer ht_ctid, Relation heapRel,
Datum tupleid, Relation heapRel,
IndexUniqueCheck checkUnique,
bool indexUnchanged,
IndexInfo *indexInfo)
Expand All @@ -189,6 +189,7 @@ blinsert(Relation index, Datum *values, bool *isnull,
BlockNumber blkno = InvalidBlockNumber;
OffsetNumber nStart;
GenericXLogState *state;
ItemPointer ht_ctid = DatumGetItemPointer(tupleid);

insertCtx = AllocSetContextCreate(CurrentMemoryContext,
"Bloom insert temporary context",
Expand Down
2 changes: 1 addition & 1 deletion contrib/bloom/bloom.h
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ extern bool blvalidate(Oid opclassoid);

/* index access method interface functions */
extern bool blinsert(Relation index, Datum *values, bool *isnull,
ItemPointer ht_ctid, Relation heapRel,
Datum tupleid, Relation heapRel,
IndexUniqueCheck checkUnique,
bool indexUnchanged,
struct IndexInfo *indexInfo);
Expand Down
4 changes: 3 additions & 1 deletion contrib/bloom/blutils.c
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,10 @@ blhandler(PG_FUNCTION_ARGS)
amroutine->amkeytype = InvalidOid;

amroutine->ambuild = blbuild;
amroutine->amreuse = NULL;
amroutine->ambuildempty = blbuildempty;
amroutine->aminsert = blinsert;
amroutine->aminsert = NULL;
amroutine->aminsertextended = blinsert;
amroutine->aminsertcleanup = NULL;
amroutine->ambulkdelete = blbulkdelete;
amroutine->amvacuumcleanup = blvacuumcleanup;
Expand Down
1 change: 1 addition & 0 deletions contrib/pageinspect/heapfuncs.c
Original file line number Diff line number Diff line change
Expand Up @@ -377,6 +377,7 @@ tuple_data_split_internal(Oid relid, char *tupdata,
*/
if (VARATT_IS_EXTERNAL(tupdata + off) &&
!VARATT_IS_EXTERNAL_ONDISK(tupdata + off) &&
!VARATT_IS_EXTERNAL_ORIOLEDB(tupdata + off) &&
!VARATT_IS_EXTERNAL_INDIRECT(tupdata + off))
ereport(ERROR,
(errcode(ERRCODE_DATA_CORRUPTED),
Expand Down
2 changes: 1 addition & 1 deletion contrib/test_decoding/test_decoding.c
Original file line number Diff line number Diff line change
Expand Up @@ -578,7 +578,7 @@ tuple_to_stringinfo(StringInfo s, TupleDesc tupdesc, HeapTuple tuple, bool skip_
/* print data */
if (isnull)
appendStringInfoString(s, "null");
else if (typisvarlena && VARATT_IS_EXTERNAL_ONDISK(origval))
else if (typisvarlena && (VARATT_IS_EXTERNAL_ONDISK(origval) || VARATT_IS_EXTERNAL_ORIOLEDB(origval)))
appendStringInfoString(s, "unchanged-toast-datum");
else if (!typisvarlena)
print_literal(s, typid,
Expand Down
1 change: 1 addition & 0 deletions doc/src/sgml/indexam.sgml
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ typedef struct IndexAmRoutine
ambuild_function ambuild;
ambuildempty_function ambuildempty;
aminsert_function aminsert;
aminsert_extended_function aminsertextended;
aminsertcleanup_function aminsertcleanup; /* can be NULL */
ambulkdelete_function ambulkdelete;
amvacuumcleanup_function amvacuumcleanup;
Expand Down
13 changes: 13 additions & 0 deletions doc/src/sgml/ref/pg_rewind.sgml
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,19 @@ PostgreSQL documentation
</listitem>
</varlistentry>

<varlistentry>
<term><option>-e <replaceable class="parameter">path</replaceable></option></term>
<term><option>--extension=<replaceable class="parameter">path</replaceable></option></term>
<listitem>
<para>
Load shared library that performs custom rewind for postgres extension.
The <replaceable class="parameter">path</replaceable> may be full or
relative to PKGLIBDIR. File extension is optional. Multiple extensions
can be selected by multiple <option>-e</option> switches.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><option>-V</option></term>
<term><option>--version</option></term>
Expand Down
2 changes: 1 addition & 1 deletion meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ cdata.set('PG_VERSION_NUM', pg_version_num)
# PG_VERSION_STR is built later, it depends on compiler test results
cdata.set_quoted('CONFIGURE_ARGS', '')

orioledb_patchset_version = '22'


###############################################################
Expand Down Expand Up @@ -2734,7 +2735,6 @@ func_checks = [
['posix_fallocate'],
['ppoll'],
['pthread_barrier_wait', {'dependencies': [thread_dep]}],
['pthread_is_threaded_np', {'dependencies': [thread_dep]}],
['sem_init', {'dependencies': [rt_dep, thread_dep], 'skip': sema_kind != 'unnamed_posix', 'define': false}],
['setproctitle', {'dependencies': [util_dep]}],
['setproctitle_fast'],
Expand Down
Loading