Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
322ee8b
Fix and run gp_exttable_fdw tests
andr-sokolov Dec 30, 2025
debf83e
Cherry-pick pg14.5 commit: Fix incorrect permissions-checking code fo…
reshke Jan 28, 2026
576358e
Devops: Remove pxf_fdw from default build (#1549)
ostinru Jan 29, 2026
cf534a3
CI: Add Rocky8 workflow with test matrix support
tuhaihe Dec 31, 2025
ea0fdff
Fix: make motion_socket test Python 3.6 compatible
tuhaihe Jan 20, 2026
2f6ee15
Fix: pgcrypto regression test failures on Rocky 8
tuhaihe Jan 20, 2026
32d236b
CI: remove pxf_fdw from CI workflow
tuhaihe Jan 31, 2026
60ce20a
Cherry-pick of CVE fix: Fix privilege checks in pg_stats_ext and pg_s…
reshke Feb 4, 2026
e1120fb
Movable DataBase Locales for Cloudberry (#1363)
leborchuk Feb 4, 2026
36421b1
CI: add ASF-release support under macOS
tuhaihe Feb 5, 2026
8444cf6
Fix data inconsistency between publisher and subscriber.
Jun 16, 2022
9b5e0eb
Fix partition table's REPLICA IDENTITY checking on the subscriber.
Jun 21, 2022
0fa2cc5
Fix stale values in partition map entries on subscribers.
Jun 21, 2022
f6546ad
Fix SPI's handling of errors during transaction commit.
tglsfdc Jun 22, 2022
80c9ca9
doc: clarify wording about phantom reads
bmomjian Jun 22, 2022
e2e1cae
doc: improve wording of plpgsql RAISE format text
bmomjian Jun 22, 2022
8ff25a6
Fix memory leak due to LogicalRepRelMapEntry.attrmap.
Jun 23, 2022
804295c
For PostgreSQL::Test compatibility, alias entire package symbol tables.
nmisch Jun 25, 2022
816906d
Fix DEB packaging to support multi-arch builds
tuhaihe Feb 13, 2026
73f419e
Backport: Ban role pg_signal_backend from more superuser backend type…
reshke Feb 17, 2026
dd43aa1
Fix PostgreSQL::Test aliasing for Perl v5.10.1.
nmisch Jun 25, 2022
50ef1c6
Don't trust signalfd() on illumos.
macdice Jun 25, 2022
e0a79db
Fix visibility check when XID is committed in CLOG but not in procarray.
hlinnaka Jun 27, 2022
ccdda2f
ecpglib: call newlocale() once per process.
nmisch Jul 2, 2022
54550f7
Fix previous commit's ecpg_clocale for ppc Darwin.
nmisch Jul 3, 2022
16fd3a8
libpq: Improve idle state handling in pipeline mode
alvherre Jul 5, 2022
6031c37
Fix pg_upgrade to detect non-upgradable anyarray usages.
tglsfdc Jul 5, 2022
9f662fb
Tighten pg_upgrade's new check for non-upgradable anyarray usages.
tglsfdc Jul 5, 2022
c89c05a
fix ecpglib patch
reshke Feb 7, 2026
b51429f
doc: add examples for array_length() and jsonb_array_length()
bmomjian Jul 9, 2022
9968bd1
doc: Fix inconsistent quotes in some jsonb fields
michaelpq Jul 11, 2022
53964dc
CREATE INDEX: use the original userid for more ACL checks.
nmisch Jun 25, 2022
4fd1a96
Fix for ace9973867c to work in MPP
reshke Feb 15, 2026
968c2ce
ORCA: Fix window function cost model producing zero local cost when n…
yjhjstz Feb 24, 2026
886c4eb
Remove bogus loop in single-iteration code (#1580)
reshke Feb 25, 2026
360517e
Invent qsort_interruptible().
tglsfdc Jul 12, 2022
0f549b5
Plug memory leak
alvherre Jul 13, 2022
916e037
doc: mention the pg_locks lock names in parentheses
bmomjian Jul 14, 2022
f666f25
doc: mention that INSERT can block because of unique indexes
bmomjian Jul 14, 2022
6af9b77
doc: clarify that "excluded" ON CONFLICT is a single row
bmomjian Jul 14, 2022
b100f8e
doc: clarify the behavior of identically-named savepoints
bmomjian Jul 14, 2022
33352dd
doc: add documentation about ecpg Oracle-compatibility mode
bmomjian Jul 14, 2022
c101d30
pg_upgrade doc: mention that replication slots must be recreated
bmomjian Jul 14, 2022
0115fb1
doc: clarify how dropping of extensions affects dependent objs.
bmomjian Jul 14, 2022
e224e96
docs: make monitoring "phases" table titles consistent
bmomjian Jul 15, 2022
23c5bbb
Clarify that pg_dump takes ACCESS SHARE lock
j-naylor Jul 1, 2022
84f965f
Fix omissions in support for the "regcollation" type.
tglsfdc Jul 17, 2022
684e9a7
pg_upgrade: Adjust quoting style in message to match guidelines
petere Jul 18, 2022
3755ab0
Re-add SPICleanup for ABI compatibility in stable branch
petere Jul 18, 2022
4fdcaec
Fix ruleutils issues with dropped cols in functions-returning-composite.
tglsfdc Jul 21, 2022
c127659
doc: clarify that auth. names are lower case and case-sensitive
bmomjian Jul 21, 2022
69434d1
doc: use wording "restore" instead of "reload" of dumps
bmomjian Jul 21, 2022
7c95d9c
postgres_fdw: Fix bug in checking of return value of PQsendQuery().
MasaoFujii Jul 21, 2022
3229efe
Fix get_dirent_type() for Windows junction points.
macdice Jul 22, 2022
f5243a7
Doc: improve documentation about random().
tglsfdc Jul 23, 2022
7c80eed
Fix ReadRecentBuffer for local buffers.
hlinnaka Jul 25, 2022
941346e
Allow "in place" tablespaces.
alvherre Jul 27, 2022
fd5a0ee
Fix get_dirent_type() for symlinks on MinGW/MSYS.
macdice Jul 28, 2022
437008b
place allow_in_place_tablespaces in sync_guc_name
reshke Feb 21, 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
1,909 changes: 1,909 additions & 0 deletions .github/workflows/build-cloudberry-rocky8.yml

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions .github/workflows/build-cloudberry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -309,10 +309,10 @@ jobs:
},
{"test":"ic-gpcontrib",
"make_configs":["gpcontrib/orafce:installcheck",
"gpcontrib/pxf_fdw:installcheck",
"gpcontrib/zstd:installcheck",
"gpcontrib/gp_sparse_vector:installcheck",
"gpcontrib/gp_toolkit:installcheck"]
"gpcontrib/gp_toolkit:installcheck",
"gpcontrib/gp_exttable_fdw:installcheck"]
},
{"test":"ic-fixme",
"make_configs":["src/test/regress:installcheck-fixme"],
Expand Down
12 changes: 9 additions & 3 deletions .github/workflows/build-deb-cloudberry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,6 @@ jobs:
},
{"test":"ic-deb-gpcontrib",
"make_configs":["gpcontrib/orafce:installcheck",
"gpcontrib/pxf_fdw:installcheck",
"gpcontrib/zstd:installcheck",
"gpcontrib/gp_sparse_vector:installcheck",
"gpcontrib/gp_toolkit:installcheck"]
Expand Down Expand Up @@ -555,8 +554,15 @@ jobs:
exit 1
fi

ARCH="amd64"
CBDB_PKG_VERSION=${CBDB_VERSION}-${BUILD_NUMBER}-$(git --git-dir=.git rev-list HEAD --count).$(git --git-dir=.git rev-parse --short HEAD)
ARCH=$(dpkg --print-architecture)
# Detect OS distribution (e.g., ubuntu22.04, debian12)
if [ -f /etc/os-release ]; then
. /etc/os-release
OS_DISTRO=$(echo "${ID}${VERSION_ID}" | tr '[:upper:]' '[:lower:]')
else
OS_DISTRO="unknown"
fi
CBDB_PKG_VERSION=${CBDB_VERSION}-${BUILD_NUMBER}-${OS_DISTRO}

echo "Produced artifacts"
ls -l ../
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ config.status.lineno
autom4te.cache
configure.lineno
Debug
Release
pgsql.sln
cscope.*
build.sh
Expand Down
97 changes: 96 additions & 1 deletion configure
Original file line number Diff line number Diff line change
Expand Up @@ -698,6 +698,7 @@ BISON
MKDIR_P
LN_S
TAR
USE_MDBLOCALES
install_bin
INSTALL_DATA
INSTALL_SCRIPT
Expand Down Expand Up @@ -946,6 +947,7 @@ with_rt
with_libcurl
with_apr_config
with_gnu_ld
with_mdblocales
with_ssl
with_openssl
enable_openssl_redirect
Expand Down Expand Up @@ -1705,6 +1707,7 @@ Optional Packages:
--without-libcurl do not use libcurl
--with-apr-config=PATH path to apr-1-config utility
--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 @@ -2921,7 +2924,6 @@ PG_PACKAGE_VERSION=14.4




ac_aux_dir=
for ac_dir in config "$srcdir"/config; do
if test -f "$ac_dir/install-sh"; then
Expand Down Expand Up @@ -12220,6 +12222,38 @@ 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=no

fi




if test -z "$TAR"; then
for ac_prog in tar
do
Expand Down Expand Up @@ -12856,6 +12890,56 @@ $as_echo "${python_libspec} ${python_additional_libs}" >&6; }



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 x"$cross_compiling" = x"yes" && test -z "$with_system_tzdata"; then
Expand Down Expand Up @@ -17077,6 +17161,17 @@ fi

done

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
17 changes: 17 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -1462,6 +1462,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 @@ -1620,6 +1628,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_external_fts" = yes; then
AC_CHECK_LIB(jansson, jansson_version_str, [],
[AC_MSG_ERROR([jansson library not found or version is too old, version must >= 2.13])])
Expand Down Expand Up @@ -1999,6 +2012,10 @@ if test "$with_lz4" = yes; then
AC_CHECK_HEADERS(lz4.h, [], [AC_MSG_ERROR([lz4.h header file is required for LZ4])])
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/citext/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ DATA = citext--1.4.sql \
citext--1.0--1.1.sql
PGFILEDESC = "citext - case-insensitive character string data type"

REGRESS = citext
REGRESS = create_index_acl citext
REGRESS_OPTS += --init-file=$(top_srcdir)/src/test/regress/init_file

ifdef USE_PGXS
Expand Down
80 changes: 80 additions & 0 deletions contrib/citext/expected/create_index_acl.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
-- Each DefineIndex() ACL check uses either the original userid or the table
-- owner userid; see its header comment. Here, confirm that DefineIndex()
-- uses its original userid where necessary. The test works by creating
-- indexes that refer to as many sorts of objects as possible, with the table
-- owner having as few applicable privileges as possible. (The privileges.sql
-- regress_sro_user tests look for the opposite defect; they confirm that
-- DefineIndex() uses the table owner userid where necessary.)
-- Don't override tablespaces; this version lacks allow_in_place_tablespaces.
BEGIN;
SET allow_segment_DML TO true;
CREATE ROLE regress_minimal;
NOTICE: resource queue required -- using default resource queue "pg_default"
CREATE SCHEMA s;
CREATE EXTENSION citext SCHEMA s;
-- Revoke all conceivably-relevant ACLs within the extension. The system
-- doesn't check all these ACLs, but this will provide some coverage if that
-- ever changes.
REVOKE ALL ON TYPE s.citext FROM PUBLIC;
REVOKE ALL ON FUNCTION s.citext_pattern_lt FROM PUBLIC;
REVOKE ALL ON FUNCTION s.citext_pattern_le FROM PUBLIC;
REVOKE ALL ON FUNCTION s.citext_eq FROM PUBLIC;
REVOKE ALL ON FUNCTION s.citext_pattern_ge FROM PUBLIC;
REVOKE ALL ON FUNCTION s.citext_pattern_gt FROM PUBLIC;
REVOKE ALL ON FUNCTION s.citext_pattern_cmp FROM PUBLIC;
-- Functions sufficient for making an index column that has the side effect of
-- changing search_path at expression planning time.
CREATE FUNCTION public.setter() RETURNS bool VOLATILE
LANGUAGE SQL AS $$SET search_path = s; SELECT true$$;
CREATE FUNCTION s.const() RETURNS bool IMMUTABLE
LANGUAGE SQL AS $$SELECT public.setter()$$;
CREATE FUNCTION s.index_this_expr(s.citext, bool) RETURNS s.citext IMMUTABLE
LANGUAGE SQL AS $$SELECT $1$$;
REVOKE ALL ON FUNCTION public.setter FROM PUBLIC;
REVOKE ALL ON FUNCTION s.const FROM PUBLIC;
REVOKE ALL ON FUNCTION s.index_this_expr FROM PUBLIC;
-- Even for an empty table, expression planning calls s.const & public.setter.
GRANT EXECUTE ON FUNCTION public.setter TO regress_minimal;
GRANT EXECUTE ON FUNCTION s.const TO regress_minimal;
-- Function for index predicate.
CREATE FUNCTION s.index_row_if(s.citext) RETURNS bool IMMUTABLE
LANGUAGE SQL AS $$SELECT $1 IS NOT NULL$$;
REVOKE ALL ON FUNCTION s.index_row_if FROM PUBLIC;
-- Even for an empty table, CREATE INDEX checks ii_Predicate permissions.
GRANT EXECUTE ON FUNCTION s.index_row_if TO regress_minimal;
-- Non-extension, non-function objects.
CREATE COLLATION s.coll (LOCALE="C");
CREATE TABLE s.x (y s.citext) DISTRIBUTED REPLICATED;
ALTER TABLE s.x OWNER TO regress_minimal;
-- Empty-table DefineIndex()
CREATE UNIQUE INDEX u0rows ON s.x USING btree
((s.index_this_expr(y, s.const())) COLLATE s.coll s.citext_pattern_ops)
WHERE s.index_row_if(y);
ALTER TABLE s.x ADD CONSTRAINT e0rows EXCLUDE USING btree
((s.index_this_expr(y, s.const())) COLLATE s.coll WITH s.=)
WHERE (s.index_row_if(y));
-- Make the table nonempty.
INSERT INTO s.x VALUES ('foo'), ('bar');
-- If the INSERT runs the planner on index expressions, a search_path change
-- survives. As of 2022-06, the INSERT reuses a cached plan. It does so even
-- under debug_discard_caches, since each index is new-in-transaction. If
-- future work changes a cache lifecycle, this RESET may become necessary.
RESET search_path;
-- For a nonempty table, owner needs permissions throughout ii_Expressions.
GRANT EXECUTE ON FUNCTION s.index_this_expr TO regress_minimal;
CREATE UNIQUE INDEX u2rows ON s.x USING btree
((s.index_this_expr(y, s.const())) COLLATE s.coll s.citext_pattern_ops)
WHERE s.index_row_if(y);
ALTER TABLE s.x ADD CONSTRAINT e2rows EXCLUDE USING btree
((s.index_this_expr(y, s.const())) COLLATE s.coll WITH s.=)
WHERE (s.index_row_if(y));
-- Shall not find s.coll via search_path, despite the s.const->public.setter
-- call having set search_path=s during expression planning. Suppress the
-- message itself, which depends on the database encoding.
\set VERBOSITY sqlstate
ALTER TABLE s.x ADD CONSTRAINT underqualified EXCLUDE USING btree
((s.index_this_expr(y, s.const())) COLLATE coll WITH s.=)
WHERE (s.index_row_if(y));
ERROR: 42704
\set VERBOSITY default
ROLLBACK;
Loading
Loading