postgresql/src/backend/utils
Tom Lane d8aa826207 Remove unnecessary type violation in tsvectorrecv().
compareentry() is declared to work on WordEntryIN structs, but
tsvectorrecv() is using it in two places to work on WordEntry
structs.  This is almost okay, since WordEntry is the first
field of WordEntryIN.  But on machines with 8-byte pointers,
WordEntryIN will have a larger alignment spec than WordEntry,
and it's at least theoretically possible that the compiler
could generate code that depends on the larger alignment.

Given the lack of field reports, this may be just a hypothetical bug
that upsets nothing except sanitizer tools.  Or it may be real on
certain hardware but nobody's tried to use tsvectorrecv() on such
hardware.  In any case we should fix it, and the fix is trivial:
just change compareentry() so that it works on WordEntry without any
mention of WordEntryIN.  We can also get rid of the quite-useless
intermediate function WordEntryCMP.

Bug: #18875
Reported-by: Alexander Lakhin <exclusion@gmail.com>
Author: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/18875-07a29c49c825a608@postgresql.org
Backpatch-through: 13
2025-04-02 16:18:03 -04:00
..
activity Improve comment about dropped entries in pgstat.c 2024-12-09 14:35:48 +09:00
adt Remove unnecessary type violation in tsvectorrecv(). 2025-04-02 16:18:03 -04:00
cache Fix catcache invalidation of a list entry that's being built 2025-01-14 14:29:11 +02:00
error Fix Y2038 issues with MyStartTime. 2024-10-07 13:51:03 -05:00
fmgr Fix type-checking of RECORD-returning functions in FROM, redux. 2024-04-15 12:56:56 -04:00
hash Update copyright for 2022 2022-01-07 19:04:57 -05:00
init Exclude parallel workers from connection privilege/limit checks. 2024-12-28 16:08:50 -05:00
mb Update copyright for 2022 2022-01-07 19:04:57 -05:00
misc Mention jsonlog in description of logging_collector in GUC table 2025-02-02 11:31:31 +09:00
mmgr Ignore not-yet-defined Portals in pg_cursors view. 2024-10-06 16:03:48 -04:00
resowner Remove extraneous blank lines before block-closing braces 2022-04-13 19:16:02 +02:00
sort Clarify comment for LogicalTapeSetBlocks(). 2024-03-25 12:00:42 -07:00
time Update TransactionXmin when MyProc->xmin is updated 2024-12-21 23:42:57 +02:00
.gitignore Rearrange makefile rules for running Gen_fmgrtab.pl. 2018-05-03 17:54:18 -04:00
errcodes.txt Add another SQL/JSON error code 2022-07-18 14:27:53 +02:00
Gen_dummy_probes.pl Update copyright for 2022 2022-01-07 19:04:57 -05:00
Gen_dummy_probes.pl.prolog Update copyright for 2022 2022-01-07 19:04:57 -05:00
Gen_dummy_probes.sed Update copyright for 2022 2022-01-07 19:04:57 -05:00
Gen_fmgrtab.pl Update copyright for 2022 2022-01-07 19:04:57 -05:00
generate-errcodes.pl Update copyright for 2022 2022-01-07 19:04:57 -05:00
Makefile Correct Makefile dependencies for catalog scripts 2022-02-14 09:07:09 +07:00
probes.d Update copyright for 2022 2022-01-07 19:04:57 -05:00
README.Gen_dummy_probes Tweak generation of Gen_dummy_probes.pl 2021-05-11 20:02:02 -04:00

# Generating dummy probes

If Postgres isn't configured with dtrace enabled, we need to generate
dummy probes for the entries in probes.d, that do nothing.

This is accomplished in Unix via the sed script `Gen_dummy_probes.sed`. We
used to use this in MSVC builds using the perl utility `psed`, which mimicked
sed. However, that utility disappeared from Windows perl distributions and so
we converted the sed script to a perl script to be used in MSVC builds.

We still keep the sed script as the authoritative source for generating
these dummy probes because except on Windows perl is not a hard requirement
when building from a tarball.

So, if you need to change the way dummy probes are generated, first change
the sed script, and when it's working generate the perl script. This can
be accomplished by using the perl utility s2p.

s2p is no longer part of the perl core, so it might not be on your system,
but it is available on CPAN and also in many package systems. e.g.
on Fedora it can be installed using `cpan App::s2p` or
`dnf install perl-App-s2p`.

The Makefile contains a recipe for regenerating Gen_dummy_probes.pl, so all
you need to do is once you have s2p installed is `make Gen_dummy_probes.pl`
Note that in a VPATH build this will generate the file in the vpath tree,
not the source tree.