Skip to content

Releases: indiff/indiff

20251103_1548_pg

03 Nov 07:48
e08dc8d

Choose a tag to compare

你好Mon Nov 3 15:48:53 CST 2025 postgres

Tom Lane Change "long" numGroups fields to be Cardinality (i.e., double).

We've been nibbling away at removing uses of "long" for a long time,
since its width is platform-dependent. Here's one more: change the
remaining "long" fields in Plan nodes to Cardinality, since the three
surviving examples all represent group-count estimates. The upstream
planner code was converted to Cardinality some time ago; for example
the corresponding fields in Path nodes are type Cardinality, as are
the arguments of the make_foo_path functions. Downstream in the
executor, it turns out that these all feed to the table-size argument
of BuildTupleHashTable. Change that to "double" as well, and fix it
so that it safely clamps out-of-range values to the uint32 limit of
simplehash.h, as was not being done before.

Essentially, this is removing all the artificial datatype-dependent
limitations on these values from upstream processing, and applying
just one clamp at the moment where we're forced to do so by the
datatype choices of simplehash.h.

Also, remove BuildTupleHashTable's misguided attempt to enforce
work_mem/hash_mem_limit. It doesn't have enough information
(particularly not the expected tuple width) to do that accurately,
and it has no real business second-guessing the caller's choice.
For all these plan types, it's really the planner's responsibility
to not choose a hashed implementation if the hashtable is expected
to exceed hash_mem_limit. The previous patch improved the
accuracy of those estimates, and even if BuildTupleHashTable had
more information it should arrive at the same conclusions.

Reported-by: Jeff Janes [email protected]
Author: Tom Lane [email protected]
Reviewed-by: David Rowley [email protected]
Discussion: https://postgr.es/m/CAMkU=1zia0JfW_QR8L5xA2vpa0oqVuiapm78h=WpNsHH13_9uw@mail.gmail.com 2025-11-02T21:57:43Z

Proxy download:

curl -#Lo /opt/pg.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251103_1548_pg/pg-indiff-centos7-x86_64-20251103_1547.xz"

Direct download:

curl -#Lo /opt/pg.zip "https://github.com/indiff/indiff/releases/download/20251103_1548_pg/pg-indiff-centos7-x86_64-20251103_1547.xz"

20251102_1542_pg

02 Nov 07:42
e08dc8d

Choose a tag to compare

你好Sun Nov 2 15:42:33 CST 2025 postgres

Tom Lane Remove unused variable in recovery/t/006_logical_decoding.pl.

Author: Daniil Davydov [email protected]
Reviewed-by: Daniel Gustafsson [email protected]
Discussion: https://postgr.es/m/CAJDiXggmZWew8+SY_9o0atpmaJmPTL25wdz07MrDoqCkp4D1ug@mail.gmail.com 2025-11-01T18:01:52Z

Proxy download:

curl -#Lo /opt/pg.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251102_1542_pg/pg-indiff-centos7-x86_64-20251102_1541.xz"

Direct download:

curl -#Lo /opt/pg.zip "https://github.com/indiff/indiff/releases/download/20251102_1542_pg/pg-indiff-centos7-x86_64-20251102_1541.xz"

20251101_1541_pg

01 Nov 07:41
e08dc8d

Choose a tag to compare

你好Sat Nov 1 15:41:45 CST 2025 postgres

Álvaro Herrera pg_createsubscriber: reword dry-run log messages

The original messages were confusing in dry-run mode in that they state
that something is being done, when in reality it isn't. Use alternative
wording in that case, to make the distinction clear.

Author: Peter Smith [email protected]
Reviewed-by: Chao Li [email protected]
Reviewed-by: Euler Taveira [email protected]
Backpatch-through: 18
Discussion: https://postgr.es/m/CAHut+PsvQJQnQO0KT0S2oegenkvJ8FUuY-QS5syyqmT24R2xFQ@mail.gmail.com 2025-10-31T17:49:50Z

Proxy download:

curl -#Lo /opt/pg.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251101_1541_pg/pg-indiff-centos7-x86_64-20251101_1540.xz"

Direct download:

curl -#Lo /opt/pg.zip "https://github.com/indiff/indiff/releases/download/20251101_1541_pg/pg-indiff-centos7-x86_64-20251101_1540.xz"

20251031_1543_pg

31 Oct 07:43
e08dc8d

Choose a tag to compare

你好Fri Oct 31 15:43:35 CST 2025 postgres

Peter Eisentraut formatting.c cleanup: Rename DCH_S_* to DCH_SUFFIX_*

For clarity. Also rename several related macros and turn them into
inline functions.

Reviewed-by: Chao Li [email protected]
Discussion: https://www.postgresql.org/message-id/flat/6dd9d208-a3ed-49b5-b03d-8617261da973%40eisentraut.org 2025-10-31T07:05:33Z

Proxy download:

curl -#Lo /opt/pg.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251031_1543_pg/pg-indiff-centos7-x86_64-20251031_1542.xz"

Direct download:

curl -#Lo /opt/pg.zip "https://github.com/indiff/indiff/releases/download/20251031_1543_pg/pg-indiff-centos7-x86_64-20251031_1542.xz"

20251030_1546_pg

30 Oct 07:48
e08dc8d

Choose a tag to compare

你好Thu Oct 30 15:48:31 CST 2025 postgres

Peter Eisentraut formatting.c cleanup: Improve formatting of some struct declarations

This makes future editing easier.

Reviewed-by: Chao Li [email protected]
Discussion: https://www.postgresql.org/message-id/flat/6dd9d208-a3ed-49b5-b03d-8617261da973%40eisentraut.org 2025-10-30T07:18:34Z

Proxy download:

curl -#Lo /opt/pg.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251030_1546_pg/pg-indiff-centos7-x86_64-20251030_1545.xz"

Direct download:

curl -#Lo /opt/pg.zip "https://github.com/indiff/indiff/releases/download/20251030_1546_pg/pg-indiff-centos7-x86_64-20251030_1545.xz"

20251029_2125_mysql

29 Oct 13:28
e08dc8d

Choose a tag to compare

你好Wed Oct 29 21:27:47 CST 2025 percona

Przemyslaw Skibinski PS-10247 [8.0]: Move default MTR test lists from Jenkins job to PS code

Introduce mysql-test/suites-groups.sh with set_suites() function
which sets WORKER_x_MTR_SUITES for x=1..8 (different sets for Debug,
RelWithDebInfo, and Valgrind).

Jenkins will try to download mysql-test/suites-groups.sh and call
set_suites() function before it will use the default split defined in
https://github.com/Percona-Lab/ps-build/blob/8.0/jenkins/suites-groups.sh 2025-10-21T18:00:21Z

mariadb

Dave Gosselin MDEV-37260 Implicitly named query blocks, CREATE VIEW AS supports hints

Query blocks have implicit names, such as select#1, formulated
by appending their select number to the string select#. This patch
allows hints to scope their applicability by implicit query block
name. For example,
SELECT /*+ JOIN_ORDER(@select#2 t1, t2) */ ...
@select#2 is an implicit query block name. Users can control hint
applicability per query block without first naming the blocks with
QB_NAME().

Hints may now be specified within VIEWs during their creation and
they are applied locally within that VIEW's scope. For example,
CREATE VIEW v1 AS
SELECT /*+ IGNORE_INDEX(t1 idx1) */ FROM t1 ... GROUP BY ... HAVING ...
In many cases and for some parts of the VIEW, the query plan
doesn't really depend on how the VIEW is used, so it makes sense
to control a part of the query plan from the VIEW definition.

Implicit names are not yet supported in VIEWs. Attempting to create
a VIEW with an implicit name reference will cause the server to create
the VIEW, but it will emit a warning and exclude that hint from the query. 2025-07-24T19:05:46Z

Proxy download:

curl -#Lo /opt/percona80.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251029_2125_mysql/percona80-centos7-x86_64-20251029_1848.xz"
curl -#Lo /opt/mariadb.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251029_2125_mysql/mariadb-centos7-x86_64-20251029_1703.xz"
curl -#Lo /opt/percona80.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251029_2125_mysql/percona80-ubuntu-x86_64-20251029_0824.xz"
curl -#Lo /opt/fbmysql.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251029_2125_mysql/fbmysql-centos7-x86_64-20251029_2122.xz"
curl -#Lo /opt/omysql.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251029_2125_mysql/omysql-centos7-x86_64-20251029_2118.xz"

Direct download:

curl -#Lo /opt/percona80.zip "https://github.com/indiff/indiff/releases/download/20251029_2125_mysql/percona80-centos7-x86_64-20251029_1848.xz"
curl -#Lo /opt/mariadb.zip "https://github.com/indiff/indiff/releases/download/20251029_2125_mysql/mariadb-centos7-x86_64-20251029_1703.xz"
curl -#Lo /opt/percona80.zip "https://github.com/indiff/indiff/releases/download/20251029_2125_mysql/percona80-ubuntu-x86_64-20251029_0824.xz"

20251029_1549_pg

29 Oct 07:51
e08dc8d

Choose a tag to compare

你好Wed Oct 29 15:51:30 CST 2025 postgres

Peter Eisentraut Replace pg_restrict by standard restrict

MSVC in C11 mode supports the standard restrict qualifier, so we don't
need the workaround naming pg_restrict anymore.

Even though restrict is in C99 and should be supported by all
supported compilers, we keep the configure test and the hardcoded
redirection to __restrict, because that will also work in C++ in all
supported compilers. (restrict is not part of the C++ standard.)

For backward compatibility for extensions, we keep a #define of
pg_restrict around, but our own code doesn't use it anymore.

Reviewed-by: Tom Lane [email protected]
Discussion: https://www.postgresql.org/message-id/flat/0e3d8644-c01d-4374-86ea-9f0a987981f0%40eisentraut.org 2025-10-29T06:36:46Z

Proxy download:

curl -#Lo /opt/pg.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251029_1549_pg/pg-indiff-centos7-x86_64-20251029_1548.xz"

Direct download:

curl -#Lo /opt/pg.zip "https://github.com/indiff/indiff/releases/download/20251029_1549_pg/pg-indiff-centos7-x86_64-20251029_1548.xz"

20251028_1544_pg

28 Oct 07:46
e08dc8d

Choose a tag to compare

你好Tue Oct 28 15:46:36 CST 2025 postgres

Michael Paquier Add wal_fpi_bytes to pg_stat_wal and pg_stat_get_backend_wal()

This new counter, called "wal_fpi_bytes", tracks the total amount in
bytes of full page images (FPIs) generated in WAL. This data becomes
available globally via pg_stat_wal, and for backend statistics via
pg_stat_get_backend_wal().

Previously, this information could only be retrieved with pg_waldump or
pg_walinspect, which may not be available depending on the environment,
and are expensive to execute. It offers hints about how much FPIs
impact the WAL generated, which could be a large percentage for some
workloads, as well as the effects of wal_compression or page holes.

Bump catalog version.
Bump PGSTAT_FILE_FORMAT_ID, due to the addition of wal_fpi_bytes in
PgStat_WalCounters.

Author: Shinya Kato [email protected]
Reviewed-by: Michael Paquier [email protected]
Discussion: https://postgr.es/m/CAOzEurQtZEAfg6P0kU3Wa-f9BWQOi0RzJEMPN56wNTOmJLmfaQ@mail.gmail.com 2025-10-28T07:21:51Z

Proxy download:

curl -#Lo /opt/pg.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251028_1544_pg/pg-indiff-centos7-x86_64-20251028_1543.xz"

Direct download:

curl -#Lo /opt/pg.zip "https://github.com/indiff/indiff/releases/download/20251028_1544_pg/pg-indiff-centos7-x86_64-20251028_1543.xz"

20251027_1545_pg

27 Oct 07:47
e08dc8d

Choose a tag to compare

你好Mon Oct 27 15:47:52 CST 2025 postgres

Amit Kapila Fix GUC check_hook validation for synchronized_standby_slots.

Previously, the check_hook for synchronized_standby_slots attempted to
validate that each specified slot existed and was physical. However, these
checks were not performed during server startup. As a result, if users
configured non-existent slots before startup, the misconfiguration would
go undetected initially. This could later cause parallel query failures,
as newly launched workers would detect the issue and raise an ERROR.

This patch improves the check_hook by validating the syntax and format of
slot names. Validation of slot existence and type is deferred to the WAL
sender process, aligning with the behavior of the check_hook for
primary_slot_name.

Reported-by: Fabrice Chapuis [email protected]
Author: Shlok Kyal [email protected]
Reviewed-by: Hayato Kuroda [email protected]
Reviewed-by: Amit Kapila [email protected]
Reviewed-by: Ashutosh Sharma [email protected]
Reviewed-by: Rahila Syed [email protected]
Backpatch-through: 17, where it was introduced
Discussion: https://postgr.es/m/CAA5-nLCeO4MQzWipCXH58qf0arruiw0OeUc1+Q=Z=4GM+=v1NQ@mail.gmail.com 2025-10-27T06:48:32Z

Proxy download:

curl -#Lo /opt/pg.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251027_1545_pg/pg-indiff-centos7-x86_64-20251027_1544.xz"

Direct download:

curl -#Lo /opt/pg.zip "https://github.com/indiff/indiff/releases/download/20251027_1545_pg/pg-indiff-centos7-x86_64-20251027_1544.xz"

20251026_2116_mysql

26 Oct 13:23
e08dc8d

Choose a tag to compare

你好Sun Oct 26 21:22:55 CST 2025 percona

Przemyslaw Skibinski PS-10247 [8.0]: Move default MTR test lists from Jenkins job to PS code

Introduce mysql-test/suites-groups.sh with set_suites() function
which sets WORKER_x_MTR_SUITES for x=1..8 (different sets for Debug,
RelWithDebInfo, and Valgrind).

Jenkins will try to download mysql-test/suites-groups.sh and call
set_suites() function before it will use the default split defined in
https://github.com/Percona-Lab/ps-build/blob/8.0/jenkins/suites-groups.sh 2025-10-21T18:00:21Z

mariadb

Dave Gosselin MDEV-36125 [NO_]INDEX_MERGE Hint

Introduces NO_INDEX_MERGE and INDEX_MERGE, which control whether or
not index merge strategies are used during query optimization. Here
is an example query from the tests:

SET optimizer_switch='index_merge_intersection=off';
EXPLAIN SELECT /*+ INDEX_MERGE(t1 f4, f2) / COUNT() FROM t1
WHERE f4 = 'h' AND f2 = 2;

with the hint in place, the query plan will employ the index_merge
intersect strategy (abbreviated EXPLAIN output):

type Extra
index_merge Using intersect(f2,f4); Using where; Using index

The presence of the [NO_]INDEX_MERGE hint overrides the optimizer's
choice of keys during the index merge optimization. As we see in
the above example, keys f2 and f4 and given and the optimizer will
consider only those keys for this query.

When the hint is given without any particular keys, as in
INDEX_MERGE(table), then all keys are considered. In this case, the
cheapest index merge among the keys should be used. When
NO_INDEX_MERGE(table) is given, then index merge is disabled for
that table.

When the hint is given with one or more keys, then only those keys
are considered. In the case of NO_INDEX_MERGE, those keys are
excluded. This can lead to no merged indexes at all, because
there may not be sufficient row-ordered read columns available for
consideration.

The index merge strategies of intersection, union, and sort union
cannot themselves be directly controlled via the hints. In combination
with the optimizer switches for the same, the strategy may be
indirectly controlled but this is not guaranteed.

When the hint directs the optimizer such that insufficient ROR scans
are available, thus leading to a situation where the INDEX_MERGE hint
cannot be honored, the server will emit a warning to that effect.

In the hints module (opt_hints*{cc,h}), this commit adds some
index merge-specific functionality to make interpreting hint state
at callsites in the optimizer cleaner and more intuitive.
Particularly, we add a bit field to the table hints class which
indicates the keys that are marked by an [NO_]INDEX_MERGE hint, if
present. A new function, index_merge_hint (and associated new
helper functions) relies on this field when interpreting index merge
hint state for the optimizer.

If there are no index merges available prior to attemping to find
a suitable union/sort union, then the optimizer will not attempt
it. This change results in optimizer trace output which does not
include the 'analyzing_index_merge_union' block when there are no
merges.

Parts of this implementation based on MySQL commit
ebcb981807e3d91a64782e89d48e1a25622eafea 2025-05-02T18:38:46Z

Proxy download:

curl -#Lo /opt/percona80.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251026_2116_mysql/percona80-centos7-x86_64-20251026_1842.xz"
curl -#Lo /opt/mariadb.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251026_2116_mysql/mariadb-centos7-x86_64-20251026_1714.xz"
curl -#Lo /opt/percona80.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251026_2116_mysql/percona80-ubuntu-x86_64-20251026_0823.xz"
curl -#Lo /opt/fbmysql.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251026_2116_mysql/fbmysql-centos7-x86_64-20251026_2112.xz"
curl -#Lo /opt/omysql.zip "https://ghproxy.cfd/https://github.com/indiff/indiff/releases/download/20251026_2116_mysql/omysql-centos7-x86_64-20251026_2111.xz"

Direct download:

curl -#Lo /opt/percona80.zip "https://github.com/indiff/indiff/releases/download/20251026_2116_mysql/percona80-centos7-x86_64-20251026_1842.xz"
curl -#Lo /opt/mariadb.zip "https://github.com/indiff/indiff/releases/download/20251026_2116_mysql/mariadb-centos7-x86_64-20251026_1714.xz"
curl -#Lo /opt/percona80.zip "https://github.com/indiff/indiff/releases/download/20251026_2116_mysql/percona80-ubuntu-x86_64-20251026_0823.xz"