mirror of
https://github.com/postgres/postgres.git
synced 2025-12-22 17:42:17 +03:00
This enhances the numeric type input function, adding support for
hexadecimal, octal, and binary integers of any size, up to the limits
of the numeric type.
Since 6fcda9aba8, such non-decimal integers have been accepted by the
parser as integer literals and passed through to numeric_in(). This
commit gives numeric_in() the ability to handle them.
While at it, simplify the handling of NaN and infinities, reducing the
number of calls to pg_strncasecmp(), and arrange for pg_strncasecmp()
to not be called at all for regular numbers. This gives a significant
performance improvement for decimal inputs, more than offsetting the
small performance hit of checking for non-decimal input.
Discussion: https://postgr.es/m/CAEZATCV8XShnmT9HZy25C%2Bo78CVOFmUN5EM9FRAZ5xvYTggPMg%40mail.gmail.com
# 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.