Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
0c46955
Disallow cancelation of syncronous commit V1
x4m Oct 27, 2020
4d53a32
Extend multixact SLRU
x4m Dec 6, 2020
a50a580
Use fadvise to prefetch WAL in xlogrecovery
Jun 23, 2022
cc2ef92
Mdb-admin patch and regression tests
x4m Apr 13, 2021
db360eb
MDB replication role patch and regression tests
x4m Dec 6, 2020
2b5b1f3
Role mdb_superuser: feature and regress testsing
reshke Feb 21, 2023
ab6b137
provide [mdb -postgresql] restict grant roles in YC[MDB-16990]
reshke Feb 22, 2022
3d8b129
MDB-16955 : disallow to kill repl mon in cloud
Jun 1, 2022
35003a2
Demonstrate and fix lock of all SQL queries by pg_stat_statements
Sep 12, 2022
15766bd
MDB-21297: forbit usage of COPY TO PROGRAMM and COPY FROM PROGRAMM to…
reshke Jan 18, 2023
37cf579
Implement mdb-locales patch
usernamedt Feb 13, 2023
88a73ae
MDB-23247: startup param for auth passthrough under unpriviledged user
reshke May 11, 2023
521212f
Untrust all contrib
Dec 26, 2023
c84c7cf
add debian for postgresql 15
Jun 1, 2022
c8a9192
Pull request #134: MDB-24221: added support for jammy
fedusia Jul 17, 2023
66b4ae9
Mdb locales deps
Dec 28, 2023
5005452
Skip wal test
Dec 29, 2023
4300d55
Skip pg upgrade tests in debian patches
Dec 30, 2023
8b41c3f
Restrict DROP DATABASE to superuser only
May 28, 2024
4c04166
[MDB-28474] Increate readaheadchunk for XlogPageReader()
x4m Jul 8, 2024
6d19953
parameter max_log_size to truncate logs
diPhantxm Sep 9, 2024
8d9f1e4
Add tests for MDB copy restriction
reshke Jan 18, 2023
7d94131
Pull request #197: bump llvm to 18
Oct 29, 2024
be2f52b
Indeed remove stop version from prerm
Nov 13, 2024
9b8ff55
truncate query to be logged in simple query
diPhantxm Nov 12, 2024
8b8fa4d
Support FORCE option in analyze command
diPhantxm Aug 26, 2024
567538d
Use fadvise in walsender
x4m Nov 12, 2024
e3860ee
GUCify NUM_BUFFER_PARTITIONS
x4m Nov 13, 2024
b443392
Add CI
reshke Jan 16, 2025
3ae402f
MDB-32132: fix grantor selection for mdb_superuser (#4)
reshke Jan 17, 2025
cd5f39b
Do not use schema public in mdb_superuser regression tests (#9)
reshke Jan 21, 2025
46a8701
Rewrite Dockerfile logic
EinKrebs Jan 24, 2025
eaee890
check-world in workflows in PG15 (#18)
EinKrebs Jan 24, 2025
5df2e47
Introduce mdb_read_all_data/mdb_write_all_data
reshke Feb 7, 2025
8f4b499
Add check for mdb_service_auth role
reshke Apr 26, 2025
ebe898e
Fix CI && fast CI circuit (#24)
reshke Apr 26, 2025
272eeab
Allow usage on schema for mdb_read_all_data (#23)
reshke Apr 26, 2025
aa8dab6
Use mirror apt repo (#36)
EinKrebs May 30, 2025
7c1c6c5
Refactor regress Dockerfile
EinKrebs Jun 2, 2025
0b295dd
Fix
EinKrebs Jun 2, 2025
8a30aa2
Update Dockerfile: try
reshke Aug 17, 2025
5d4e2e4
pg_stat_statements.c: cancelable qtext_load_file
rkhapov Oct 1, 2025
6f8a2e0
MDB-40410: Allow to kill backends which have application_name startin…
vicpopov Dec 1, 2025
34f9da7
Add TAP test for MDB-kill feature
reshke Dec 8, 2025
322a237
v6 of bt_page_items pretty-print
reshke Jan 18, 2026
fd31c04
Add archive_mode=shared for coordinated WAL archiving
x4m Feb 10, 2026
2537a6c
Mark ancestor timeline WAL segments as archived
x4m Feb 10, 2026
c4e770c
Optimize ProcessArchivalReport to avoid directory scans
x4m Feb 11, 2026
b385285
Fuse shared archive with ycmdb.shared_archive
x4m Feb 12, 2026
56a6824
[PATCH] REASSIGN OWNED: ignore subscriptions in other databases
Apr 14, 2026
60d171f
Introduce transaction_timeout
akorotkov Feb 15, 2024
d0719ac
Fix two bugs in archive_mode=shared on standby
x4m Apr 17, 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
29 changes: 29 additions & 0 deletions .github/workflows/regress.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Docker Image CI

on:
push:
branches: [ "MDB_*" ]
pull_request:
branches: [ "MDB_*" ]

jobs:

check:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Build the Docker image
run: docker build . --file docker/regress/Dockerfile --tag regress_test:1234 && docker run --entrypoint /home/build-user/docker/regress/run_tests_f.sh regress_test:1234

check-world:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Build the Docker image
run: docker build . --file docker/regress/Dockerfile --tag regress_test:1234 && docker run --entrypoint /home/build-user/docker/regress/run_tests.sh regress_test:1234


55 changes: 55 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
ARG codename
FROM ubuntu:${codename:-bionic}

ARG codename
ENV CODE_NAME=${codename:-bionic}

ARG pgdg
ENV PGDG_VER=${pgdg:-242-2-pgdg18.04+1+yandex220}

ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Moskow
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN sed -i 's/archive.ubuntu.com/mirror.yandex.ru/g' /etc/apt/sources.list &&\
apt-get update && apt-get install -y --no-install-recommends \
sudo build-essential \
gcc lsb-release libssl-dev gnupg openssl \
gdb git curl

RUN echo "deb http://dist.yandex.ru/mdb-${CODE_NAME}-secure stable/all/" >> /etc/apt/sources.list
RUN echo "deb http://dist.yandex.ru/mdb-${CODE_NAME}-secure stable/\$(ARCH)/" >> /etc/apt/sources.list

RUN curl -s 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xafc3ce0d00e3c45a357e9e637fcd11186050cd1a' | \
gpg --dearmour -o /etc/apt/trusted.gpg.d/yandex.gpg

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FF5F4D0E27393420

RUN apt-get update && apt-get install -y --no-install-recommends \
sudo build-essential \
gcc lsb-release libssl-dev gnupg openssl \
gdb git \
libpam0g-dev \
debhelper debootstrap devscripts make equivs debhelper-compat \
libz-dev flex libicu-dev libio-pty-perl libipc-run-perl libkrb5-dev \
libldap2-dev liblz4-dev liblz4-tool zstd libperl-dev libreadline-dev libselinux1-dev llvm-18-dev \
libsystemd-dev libxml2-dev libxml2-utils libxslt1-dev \
pkg-config python3-dev systemtap-sdt-dev tcl-dev uuid-dev xsltproc zlib1g-dev \
bison dh-exec docbook-xml docbook-xsl

RUN apt-get install -y \
libmdblocales1 libmdblocales-dev \
postgresql-client-common=${PGDG_VER} \
postgresql-common=${PGDG_VER}

RUN groupadd -g 999 build-user && \
useradd -r -u 999 -g build-user build-user

COPY . /home/build-user
RUN chown build-user:build-user /home -R && usermod -aG sudo build-user

RUN echo 'build-user ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

USER build-user

ENTRYPOINT ["/home/build-user/docker/entrypoint.sh"]
124 changes: 117 additions & 7 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -685,6 +685,7 @@ BISON
MKDIR_P
LN_S
TAR
USE_MDBLOCALES
install_bin
INSTALL_DATA
INSTALL_SCRIPT
Expand Down Expand Up @@ -806,6 +807,7 @@ infodir
docdir
oldincludedir
includedir
runstatedir
localstatedir
sharedstatedir
sysconfdir
Expand Down Expand Up @@ -876,6 +878,7 @@ with_zlib
with_lz4
with_zstd
with_gnu_ld
with_mdblocales
with_ssl
with_openssl
enable_largefile
Expand Down Expand Up @@ -950,6 +953,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
Expand Down Expand Up @@ -1202,6 +1206,15 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;

-runstatedir | --runstatedir | --runstatedi | --runstated \
| --runstate | --runstat | --runsta | --runst | --runs \
| --run | --ru | --r)
ac_prev=runstatedir ;;
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
| --run=* | --ru=* | --r=*)
runstatedir=$ac_optarg ;;

-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
Expand Down Expand Up @@ -1339,7 +1352,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir
libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
Expand Down Expand Up @@ -1492,6 +1505,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
Expand Down Expand Up @@ -1587,6 +1601,7 @@ Optional Packages:
--with-lz4 build with LZ4 support
--with-zstd build with ZSTD support
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--without-mdblocales build without MDB locales
--with-ssl=LIB use LIB for SSL/TLS support (openssl)
--with-openssl obsolete spelling of --with-ssl=openssl

Expand Down Expand Up @@ -2795,7 +2810,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu




ac_aux_dir=
for ac_dir in config "$srcdir"/config; do
if test -f "$ac_dir/install-sh"; then
Expand Down Expand Up @@ -2826,6 +2840,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.



ac_configure_args=$(echo "$ac_configure_args" | sed -e "s/ -f\(debug\|file\)-prefix-map=[^' ]*//g")

cat >>confdefs.h <<_ACEOF
#define CONFIGURE_ARGS "$ac_configure_args"
Expand Down Expand Up @@ -10394,6 +10409,40 @@ case $INSTALL in
esac


#
# MDB locales
#




# Check whether --with-mdblocales was given.
if test "${with_mdblocales+set}" = set; then :
withval=$with_mdblocales;
case $withval in
yes)

$as_echo "#define USE_MDBLOCALES 1" >>confdefs.h

;;
no)
:
;;
*)
as_fn_error $? "no argument expected for --with-mdblocales option" "$LINENO" 5
;;
esac

else
with_mdblocales=yes

$as_echo "#define USE_MDBLOCALES 1" >>confdefs.h

fi




if test -z "$TAR"; then
for ac_prog in tar
do
Expand Down Expand Up @@ -13086,6 +13135,56 @@ fi

fi

if test "$with_mdblocales" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for mdb_setlocale in -lmdblocales" >&5
$as_echo_n "checking for mdb_setlocale in -lmdblocales... " >&6; }
if ${ac_cv_lib_mdblocales_mdb_setlocale+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lmdblocales $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */

/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char mdb_setlocale ();
int
main ()
{
return mdb_setlocale ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_mdblocales_mdb_setlocale=yes
else
ac_cv_lib_mdblocales_mdb_setlocale=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mdblocales_mdb_setlocale" >&5
$as_echo "$ac_cv_lib_mdblocales_mdb_setlocale" >&6; }
if test "x$ac_cv_lib_mdblocales_mdb_setlocale" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBMDBLOCALES 1
_ACEOF

LIBS="-lmdblocales $LIBS"

else
as_fn_error $? "mdblocales library not found" "$LINENO" 5
fi

fi

if test "$enable_spinlocks" = yes; then

$as_echo "#define HAVE_SPINLOCKS 1" >>confdefs.h
Expand Down Expand Up @@ -14512,6 +14611,17 @@ else
fi


fi

if test "$with_mdblocales" = yes; then
ac_fn_c_check_header_mongrel "$LINENO" "mdblocales.h" "ac_cv_header_mdblocales_h" "$ac_includes_default"
if test "x$ac_cv_header_mdblocales_h" = xyes; then :

else
as_fn_error $? "mdblocales header not found." "$LINENO" 5
fi


fi

if test "$with_gssapi" = yes ; then
Expand Down Expand Up @@ -16007,7 +16117,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
Expand Down Expand Up @@ -16053,7 +16163,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
Expand All @@ -16077,7 +16187,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
Expand Down Expand Up @@ -16122,7 +16232,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
Expand All @@ -16146,7 +16256,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
Expand Down
22 changes: 18 additions & 4 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,11 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros

AC_INIT([PostgreSQL], [15.17], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/])

m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
Untested combinations of 'autoconf' and PostgreSQL versions are not
recommended. You can remove the check from 'configure.ac' but it is then
your responsibility whether the result works or not.])])
AC_COPYRIGHT([Copyright (c) 1996-2022, PostgreSQL Global Development Group])
AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
AC_CONFIG_AUX_DIR(config)
AC_PREFIX_DEFAULT(/usr/local/pgsql)
[ac_configure_args=$(echo "$ac_configure_args" | sed -e "s/ -f\(debug\|file\)-prefix-map=[^' ]*//g")]
AC_DEFINE_UNQUOTED(CONFIGURE_ARGS, ["$ac_configure_args"], [Saved arguments from configure])

[PG_MAJORVERSION=`expr "$PACKAGE_VERSION" : '\([0-9][0-9]*\)'`]
Expand Down Expand Up @@ -1167,6 +1164,14 @@ case $INSTALL in
esac
AC_SUBST(install_bin)

#
# MDB locales
#

PGAC_ARG_BOOL(with, mdblocales, yes, [build without MDB locales],
[AC_DEFINE([USE_MDBLOCALES], 1, [Define to 1 to build with MDB locales. (--with-mdblocales)])])
AC_SUBST(USE_MDBLOCALES)

PGAC_PATH_PROGS(TAR, tar)
AC_PROG_LN_S
AC_PROG_MKDIR_P
Expand Down Expand Up @@ -1324,6 +1329,11 @@ failure. It is possible the compiler isn't looking in the proper directory.
Use --without-zlib to disable zlib support.])])
fi

if test "$with_mdblocales" = yes; then
AC_CHECK_LIB(mdblocales, mdb_setlocale, [],
[AC_MSG_ERROR([mdblocales library not found])])
fi

if test "$enable_spinlocks" = yes; then
AC_DEFINE(HAVE_SPINLOCKS, 1, [Define to 1 if you have spinlocks.])
else
Expand Down Expand Up @@ -1589,6 +1599,10 @@ if test "$with_zstd" = yes; then
AC_CHECK_HEADER(zstd.h, [], [AC_MSG_ERROR([zstd.h header file is required for ZSTD])])
fi

if test "$with_mdblocales" = yes; then
AC_CHECK_HEADER(mdblocales.h, [], [AC_MSG_ERROR([mdblocales header not found.])])
fi

if test "$with_gssapi" = yes ; then
AC_CHECK_HEADERS(gssapi/gssapi.h, [],
[AC_CHECK_HEADERS(gssapi.h, [], [AC_MSG_ERROR([gssapi.h header file is required for GSSAPI])])])
Expand Down
2 changes: 1 addition & 1 deletion contrib/bool_plperl/bool_plperl.control
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ comment = 'transform between bool and plperl'
default_version = '1.0'
module_pathname = '$libdir/bool_plperl'
relocatable = true
trusted = true
trusted = false
requires = 'plperl'
Loading
Loading