OSDN Git Service
Michael Meskes [Fri, 12 Jan 2007 11:27:28 +0000 (11:27 +0000)]
also adjust MinGW expected file to new setup
create expected file with correct port number
Michael Meskes [Fri, 12 Jan 2007 10:00:14 +0000 (10:00 +0000)]
Simplified regression handling
Added patch by Joachim to work around OpenBSD bug in regression suite.
Tom Lane [Thu, 11 Jan 2007 23:06:03 +0000 (23:06 +0000)]
Fix a performance problem in databases with large numbers of tables
(or other types of pg_class entry): the function pgstat_vacuum_tabstat,
invoked during VACUUM startup, had runtime proportional to the number of
stats table entries times the number of pg_class rows; in other words
O(N^2) if the stats collector's information is reasonably complete.
Replace list searching with a hash table to bring it back to O(N)
behavior. Per report from kim at myemma.com.
Back-patch as far as 8.1; 8.0 and before use different coding here.
Bruce Momjian [Thu, 11 Jan 2007 20:04:50 +0000 (20:04 +0000)]
Update UNION/INTERSECT/EXCEPT ORDER BY error wording for
expressions/functions.
Bruce Momjian [Thu, 11 Jan 2007 18:44:53 +0000 (18:44 +0000)]
Improve error wording of ORDER BY in UNION that uses new expressions in
ORDER BY.
Tom Lane [Thu, 11 Jan 2007 17:19:13 +0000 (17:19 +0000)]
Teach nodeMergejoin how to handle DESC and/or NULLS FIRST sort orders.
So far only tested by hacking the planner ...
Michael Meskes [Thu, 11 Jan 2007 15:47:34 +0000 (15:47 +0000)]
Applied Joachim's patch for a --regression option.
Made this option mark the .c files, so the environment variable is no longer needed.
Created a special MinGW file with the special error message.
Do not print port into log file when running regression tests.
Bruce Momjian [Thu, 11 Jan 2007 04:49:01 +0000 (04:49 +0000)]
Add URL item for psql -c changes:
> http://archives.postgresql.org/pgsql-hackers/2007-01/msg00291.php
Bruce Momjian [Thu, 11 Jan 2007 04:48:03 +0000 (04:48 +0000)]
Add:
> o Fix transaction restriction checks for CREATE DATABASE and
> other commands
>
> http://archives.postgresql.org/pgsql-hackers/2007-01/msg00133.php
Bruce Momjian [Thu, 11 Jan 2007 04:42:02 +0000 (04:42 +0000)]
Add URL for PQexec() for disallowing multiple queries:
> http://archives.postgresql.org/pgsql-hackers/2007-01/msg00184.php
Bruce Momjian [Thu, 11 Jan 2007 04:27:29 +0000 (04:27 +0000)]
Add:
> o Extend timezone code to allow 64-bit values so we can
> represent years beyond 2038
>
> http://archives.postgresql.org/pgsql-hackers/2006-09/msg01363.php
>
Bruce Momjian [Thu, 11 Jan 2007 03:01:01 +0000 (03:01 +0000)]
Add:
> * Move NAMEDATALEN from postgres_ext.h to pg_config_manual.h and
> consider making it more configurable in future releases
Bruce Momjian [Thu, 11 Jan 2007 02:42:31 +0000 (02:42 +0000)]
Allow Borland CC to compile libpq and psql.
Backpatch to 8.2.X.
L Bayuk
Bruce Momjian [Thu, 11 Jan 2007 02:39:52 +0000 (02:39 +0000)]
Allow Borland CC to compile libpq and psql.
L Bayuk
Bruce Momjian [Thu, 11 Jan 2007 02:30:01 +0000 (02:30 +0000)]
For pg_ctl -w, add reference to additional environment variables and pgpass.
Bruce Momjian [Thu, 11 Jan 2007 00:02:39 +0000 (00:02 +0000)]
Remove SGML makefile .SECONDARY tag so html rules will work properly;
Documentation/comment improvements.
Peter Eisentraut [Wed, 10 Jan 2007 20:33:54 +0000 (20:33 +0000)]
Use libxml's xmlwriter API for producing XML elements, instead of doing
our own printing dance. This does a better job of quoting and escaping the
values.
Bruce Momjian [Wed, 10 Jan 2007 19:06:04 +0000 (19:06 +0000)]
Improve SGML build rules for non-HTML output, per Peter.
Tom Lane [Wed, 10 Jan 2007 18:22:50 +0000 (18:22 +0000)]
Make sure BYTE_ORDER gets defined in 64-bit builds on Solaris,
per Stefan Kaltenbrunner.
Tom Lane [Wed, 10 Jan 2007 18:06:05 +0000 (18:06 +0000)]
Change the planner-to-executor API so that the planner tells the executor
which comparison operators to use for plan nodes involving tuple comparison
(Agg, Group, Unique, SetOp). Formerly the executor looked up the default
equality operator for the datatype, which was really pretty shaky, since it's
possible that the data being fed to the node is sorted according to some
nondefault operator class that could have an incompatible idea of equality.
The planner knows what it has sorted by and therefore can provide the right
equality operator to use. Also, this change moves a couple of catalog lookups
out of the executor and into the planner, which should help startup time for
pre-planned queries by some small amount. Modify the planner to remove some
other cavalier assumptions about always being able to use the default
operators. Also add "nulls first/last" info to the Plan node for a mergejoin
--- neither the executor nor the planner can cope yet, but at least the API is
in place.
Neil Conway [Wed, 10 Jan 2007 04:02:05 +0000 (04:02 +0000)]
Attached patch fixes two problems:
1) gendef works from inside visual studio - use a tempfile instead of
redirection, because for some reason you can't redirect dumpbin from
inside (patch from Joachim Wieland)
2) gendef must process only *.obj, or you get weird errors in some build
scenarios when it tries to process a logfile
Magnus Hagander
Neil Conway [Wed, 10 Jan 2007 03:54:35 +0000 (03:54 +0000)]
This patch enables verbose output when building all projects. This is
the same output level that was used when building a single project
before, and really needed to get reasonable information about what
happens (non-verbose just says "starting build of foo" and "done
building foo", more or less).
Magnus Hagander
Bruce Momjian [Wed, 10 Jan 2007 02:41:28 +0000 (02:41 +0000)]
Update copyright script to allow spaces around dash.
Bruce Momjian [Wed, 10 Jan 2007 01:57:15 +0000 (01:57 +0000)]
In SGML Makefile, set proper targets for recursive calls.
Tatsuo Ishii [Wed, 10 Jan 2007 01:18:40 +0000 (01:18 +0000)]
Update copyright year
Bruce Momjian [Tue, 9 Jan 2007 22:43:31 +0000 (22:43 +0000)]
Add:
>
> * Improve merge join performance by allowing mark/restore of
> tuple sources
>
> http://archives.postgresql.org/pgsql-hackers/2007-01/msg00096.php
>
Bruce Momjian [Tue, 9 Jan 2007 22:22:55 +0000 (22:22 +0000)]
Update the UTF-8 RFC reference. RFC 2044 was obsoleted by RFC 2279,
which was obsoleted by RFC 3629.
Michael Fuhr
Bruce Momjian [Tue, 9 Jan 2007 22:19:36 +0000 (22:19 +0000)]
Build SGML documention output several times if necessary to have proper
indexes; add 'draft' option to disable it.
Bruce Momjian [Tue, 9 Jan 2007 22:16:46 +0000 (22:16 +0000)]
Have log_temp_files be in kilobytes, remove trace call.
Bruce Momjian [Tue, 9 Jan 2007 22:03:51 +0000 (22:03 +0000)]
Remove trace macro call from new log_temp_files, until it gets more
research.
Bruce Momjian [Tue, 9 Jan 2007 22:01:00 +0000 (22:01 +0000)]
Enable another five tuple status bits by using the high bits of the
nattr field, and rename the field.
Heikki Linnakangas
Bruce Momjian [Tue, 9 Jan 2007 21:33:24 +0000 (21:33 +0000)]
Done:
> * -Add ability to monitor the use of temporary sort files
Bruce Momjian [Tue, 9 Jan 2007 21:31:17 +0000 (21:31 +0000)]
Add GUC log_temp_files to log the use of temporary files.
Bill Moran
Tom Lane [Tue, 9 Jan 2007 16:59:20 +0000 (16:59 +0000)]
Marginal tweaks in the documentation for ORDER BY; in particular point
out the common error that ORDER BY x, y DESC does not mean the same as
ORDER BY x DESC, y DESC.
Tom Lane [Tue, 9 Jan 2007 07:30:49 +0000 (07:30 +0000)]
Add a citation to Seltzer and Yigit's Usenix '91 paper about hash table
management. The paper clearly describes many of the ideas embodied in
our current hashing code, but as far as I could find out there is not
a direct code heritage. (Mike Olsen recalls discussion of this paper
at Postgres meetings but believes it "informed the Postgres implementation
probably just at the design level". Margo herself says she wasn't
involved with Postgres' hash code.) Credit where credit is due 'n all
that, even if fifteen years after the fact.
Tom Lane [Tue, 9 Jan 2007 06:00:43 +0000 (06:00 +0000)]
Fix vcbuild to allow building without OpenSSL and/or zlib. Magnus
Tom Lane [Tue, 9 Jan 2007 05:56:49 +0000 (05:56 +0000)]
vcbuild documentation from Magnus and Dave.
Bruce Momjian [Tue, 9 Jan 2007 03:43:32 +0000 (03:43 +0000)]
Done:
< * Allow the creation of indexes with mixed ascending/descending
> * -Allow the creation of indexes with mixed ascending/descending
<
< This is possible now by creating an operator class with reversed sort
< operators. One complexity is that NULLs would then appear at the start
< of the result set, and this might affect certain sort types, like
< merge join.
<
Tom Lane [Tue, 9 Jan 2007 03:13:38 +0000 (03:13 +0000)]
pltcl regression test needs to actually create an opclass, not just one operator.
Tom Lane [Tue, 9 Jan 2007 02:14:16 +0000 (02:14 +0000)]
Support ORDER BY ... NULLS FIRST/LAST, and add ASC/DESC/NULLS FIRST/NULLS LAST
per-column options for btree indexes. The planner's support for this is still
pretty rudimentary; it does not yet know how to plan mergejoins with
nondefault ordering options. The documentation is pretty rudimentary, too.
I'll work on improving that stuff later.
Note incompatible change from prior behavior: ORDER BY ... USING will now be
rejected if the operator is not a less-than or greater-than member of some
btree opclass. This prevents less-than-sane behavior if an operator that
doesn't actually define a proper sort ordering is selected.
Peter Eisentraut [Mon, 8 Jan 2007 23:41:57 +0000 (23:41 +0000)]
Prevent duplicate attribute names in XMLELEMENT.
Tom Lane [Mon, 8 Jan 2007 16:47:30 +0000 (16:47 +0000)]
Tweak joinlist creation to avoid generating useless one-element subproblems
when collapsing of JOIN trees is stopped by join_collapse_limit. For instance
a list of 11 LEFT JOINs with limit 8 now produces something like
((1 2 3 4 5 6 7 8) 9 10 11 12)
instead of
(((1 2 3 4 5 6 7 8) (9)) 10 11 12)
The latter structure is really only required for a FULL JOIN.
Noted while studying an example from Shane Ambler.
Tom Lane [Mon, 8 Jan 2007 16:09:22 +0000 (16:09 +0000)]
Remove cost_hashjoin's very ancient hack to discourage (once, entirely forbid)
hash joins with the estimated-larger relation on the inside. There are
several cases where doing that makes perfect sense, and in cases where it
doesn't, the regular cost computation really ought to be able to figure that
out. Make some marginal tweaks in said computation to try to get results
approximating reality a bit better. Per an example from Shane Ambler.
Also, fix an oversight in the original patch to add seq_page_cost: the costs
of spilling a hash join to disk should be scaled by seq_page_cost.
Peter Eisentraut [Sun, 7 Jan 2007 22:49:56 +0000 (22:49 +0000)]
Some fine-tuning of xmlpi in corner cases:
- correct error codes
- do syntax checks in correct order
- strip leading spaces of argument
Peter Eisentraut [Sun, 7 Jan 2007 21:10:41 +0000 (21:10 +0000)]
Check and document minimum required version of libxml.
Peter Eisentraut [Sun, 7 Jan 2007 08:49:31 +0000 (08:49 +0000)]
Indent comments in makefiles better so they don't appear in the output.
Peter Eisentraut [Sun, 7 Jan 2007 00:13:55 +0000 (00:13 +0000)]
Allow XML fragment to contain a XML declaration. For that, we need a small
hand-crafted parser for the XML declaration, because libxml doesn't seem
to allow this.
Bruce Momjian [Sat, 6 Jan 2007 22:55:09 +0000 (22:55 +0000)]
Remove:
< * %Allow the identifier length to be increased via a configure option
Bruce Momjian [Sat, 6 Jan 2007 22:24:16 +0000 (22:24 +0000)]
Updates for MONEY data type:
< * Improve the MONEY data type
> * -Make 64-bit version of the MONEY data type
> * Add locale-aware MONEY type, and support multiple currencies
< Change the MONEY data type to use DECIMAL internally, with special
< locale-aware output formatting.
< http://archives.postgresql.org/pgsql-hackers/2006-09/msg01107.php
Bruce Momjian [Sat, 6 Jan 2007 22:19:46 +0000 (22:19 +0000)]
Done:
> * -Allow user-defined types to accept 'typmod' parameters
Bruce Momjian [Sat, 6 Jan 2007 22:18:24 +0000 (22:18 +0000)]
Add:
>
> * Make consistent use of long/short command options --- pg_ctl needs
> long ones, pg_config doesn't have short ones, postgres doesn't have
> enough long ones, etc.
Bruce Momjian [Sat, 6 Jan 2007 21:58:22 +0000 (21:58 +0000)]
Add:
> o Consider parsing the -c string into individual queries so each
> is run in its own transaction
>
> o Consider disallowing multiple queries in PQexec() as an
> additional barrier to SQL injection attacks
Bruce Momjian [Sat, 6 Jan 2007 20:21:29 +0000 (20:21 +0000)]
Apply fix so pow() and exp() ERANGE is used only if result is not 0.
Bruce Momjian [Sat, 6 Jan 2007 20:00:53 +0000 (20:00 +0000)]
Already done in 8.2:
< * Allow CREATE INDEX to take an additional parameter for use with
< special index types
Bruce Momjian [Sat, 6 Jan 2007 20:00:10 +0000 (20:00 +0000)]
Move INDEX inheritance out into a separate section:
< * Allow inherited tables to inherit index, UNIQUE constraint, and primary
< key, foreign key
< * UNIQUE INDEX on base column not honored on INSERTs/UPDATEs from
< inherited table: INSERT INTO inherit_table (unique_index_col) VALUES
< (dup) should fail
<
< The main difficulty with this item is the problem of creating an index
< that can span more than one table.
<
< * Allow SELECT ... FOR UPDATE on inherited tables
> * Inheritance
>
> o Allow inherited tables to inherit indexes, UNIQUE constraints,
> and primary/foreign keys
> o Honor UNIQUE INDEX on base column in INSERTs/UPDATEs
> on inherited table, e.g. INSERT INTO inherit_table
> (unique_index_col) VALUES (dup) should fail
>
> The main difficulty with this item is the problem of
> creating an index that can span multiple tables.
>
> o Allow SELECT ... FOR UPDATE on inherited tables
>
>
>
Bruce Momjian [Sat, 6 Jan 2007 19:41:23 +0000 (19:41 +0000)]
Done:
> * -Allow the pg_xlog directory location to be specified during initdb
Bruce Momjian [Sat, 6 Jan 2007 19:40:00 +0000 (19:40 +0000)]
Allow initdb to specify the pg_xlog directory.
Euler Taveira de Oliveira
Peter Eisentraut [Sat, 6 Jan 2007 19:18:36 +0000 (19:18 +0000)]
Replace xmlroot with a properly functioning version that parses the value,
sets the items, and serializes the value back (rather than adding an
arbitrary number of XML preambles as before).
The libxml memory management via palloc had to be disabled because it
crashes when libxml tries to access memory that was helpfully freed
earlier by PostgreSQL. This needs further thought.
Tom Lane [Sat, 6 Jan 2007 19:14:17 +0000 (19:14 +0000)]
Fix filtered_base_yylex() to save and restore base_yylval and base_yylloc
properly when doing a lookahead. The lack of this was causing various
interesting misbehaviors when one tries to use "with" as a plain identifier.
Bruce Momjian [Sat, 6 Jan 2007 15:19:45 +0000 (15:19 +0000)]
Document problems with release links in early branches.
Bruce Momjian [Sat, 6 Jan 2007 15:18:03 +0000 (15:18 +0000)]
Check for ERANGE in exp() as well.
Improve release docs for ecpg regression tests.
Bruce Momjian [Sat, 6 Jan 2007 04:14:55 +0000 (04:14 +0000)]
Improve dpow() check for ERANGE overflow for HPPA.
Tom Lane [Sat, 6 Jan 2007 02:28:38 +0000 (02:28 +0000)]
Put back ERANGE test in dpow(). There are platforms that need this,
like my HPPA ...
Bruce Momjian [Sat, 6 Jan 2007 00:25:11 +0000 (00:25 +0000)]
Document that we need to update the ecpg regression files when we update
the library version number.
Bruce Momjian [Fri, 5 Jan 2007 22:43:17 +0000 (22:43 +0000)]
Update ecpg regresison output for new library version number.
Tom Lane [Fri, 5 Jan 2007 22:34:35 +0000 (22:34 +0000)]
Minor copy-editing for release note updates.
Bruce Momjian [Fri, 5 Jan 2007 22:20:05 +0000 (22:20 +0000)]
Update CVS HEAD for 2007 copyright. Back branches are typically not
back-stamped for this.
Bruce Momjian [Fri, 5 Jan 2007 21:29:20 +0000 (21:29 +0000)]
Update copyright script, report year used
Bruce Momjian [Fri, 5 Jan 2007 21:09:53 +0000 (21:09 +0000)]
Modify copyright script to pull current year from `date`.
Bruce Momjian [Fri, 5 Jan 2007 20:56:56 +0000 (20:56 +0000)]
Update Japanese FAQ.
Bruce Momjian [Fri, 5 Jan 2007 20:54:43 +0000 (20:54 +0000)]
Stamp major release 8.3.0, and increment library version numbers.
Bruce Momjian [Fri, 5 Jan 2007 20:40:30 +0000 (20:40 +0000)]
Update for release 8.2.1.
Bruce Momjian [Fri, 5 Jan 2007 20:05:02 +0000 (20:05 +0000)]
Create release notes for all back-branch relases on 2007-01-08.
Andrew Dunstan [Fri, 5 Jan 2007 16:17:55 +0000 (16:17 +0000)]
Call setrlimit if possible in pg_regress to allow core file generation, and provide a switch for similar behaviour in pg_ctl.
Bruce Momjian [Fri, 5 Jan 2007 03:19:26 +0000 (03:19 +0000)]
Update float dpow() comment about whick platforms had issues with Nan.
Stefan Kaltenbrunner
Tom Lane [Fri, 5 Jan 2007 01:18:59 +0000 (01:18 +0000)]
Add missing reference to pg_shdescription. Greg Mullane
Bruce Momjian [Thu, 4 Jan 2007 21:00:14 +0000 (21:00 +0000)]
Fix tab to space mention in FAQ_DEV.
Tom Lane [Thu, 4 Jan 2007 17:58:19 +0000 (17:58 +0000)]
Fix AddDefine to handle quotes properly. Magnus
Tom Lane [Thu, 4 Jan 2007 17:49:37 +0000 (17:49 +0000)]
Tweak pg_dumpall to add GRANT CONNECT ON DATABASE ... TO PUBLIC when dumping
database privileges from a pre-8.2 server. This ensures that the reloaded
database will maintain the same behavior it had in the previous installation,
ie, everybody has connect privilege. Per gripe from L Bayuk.
Tom Lane [Thu, 4 Jan 2007 16:29:42 +0000 (16:29 +0000)]
Fix some small typos in comments. Greg Stark
Bruce Momjian [Thu, 4 Jan 2007 05:18:39 +0000 (05:18 +0000)]
Simplify assignment of Inf for pow Nan (don't worry about the sign).
Tom Lane [Thu, 4 Jan 2007 00:57:51 +0000 (00:57 +0000)]
Fix erroneous implementation of -s in postc (the switch doesn't take
an optarg). Add some comments noting that code in three different files has
to be kept in sync. Fix erroneous description of -S switch (it sets work_mem
not silent_mode), and do some light copy-editing elsewhere in postgres-ref.
Tom Lane [Wed, 3 Jan 2007 22:39:26 +0000 (22:39 +0000)]
Fix regex_fixed_prefix() to cope reasonably well with regex patterns of the
form '^(foo)$'. Before, these could never be optimized into indexscans.
The recent changes to make psql and pg_dump generate such patterns (for \d
commands and -t and related switches, respectively) therefore represented
a big performance hit for people with large pg_class catalogs, as seen in
recent gripe from Erik Jones. While at it, be more paranoid about
case-sensitivity checking in multibyte encodings, and fix some other
corner cases in which a regex might be interpreted too liberally.
Bruce Momjian [Wed, 3 Jan 2007 22:05:00 +0000 (22:05 +0000)]
Update pow() tests to check for both errno==EDOM _and_ result==Nan, and
document why this happens. Remove exp() errno check because not needed.
Tom Lane [Wed, 3 Jan 2007 19:34:23 +0000 (19:34 +0000)]
Fix erroneous error tests in pow/exp.
Tom Lane [Wed, 3 Jan 2007 18:57:19 +0000 (18:57 +0000)]
Fix btree_gist for new larger money type.
Tom Lane [Wed, 3 Jan 2007 18:11:01 +0000 (18:11 +0000)]
Clean up smgr.c/md.c APIs as per discussion a couple months ago. Instead of
having md.c return a success/failure boolean to smgr.c, which was just going
to elog anyway, let md.c issue the elog messages itself. This allows better
error reporting, particularly in cases such as "short read" or "short write"
which Peter was complaining of. Also, remove the kluge of allowing mdread()
to return zeroes from a read-beyond-EOF: this is now an error condition
except when InRecovery or zero_damaged_pages = true. (Hash indexes used to
require that behavior, but no more.) Also, enforce that mdwrite() is to be
used for rewriting existing blocks while mdextend() is to be used for
extending the relation EOF. This restriction lets us get rid of the old
ad-hoc defense against creating huge files by an accidental reference to
a bogus block number: we'll only create new segments in mdextend() not
mdwrite() or mdread(). (Again, when InRecovery we allow it anyway, since
we need to allow updates of blocks that were later truncated away.)
Also, clean up the original makeshift patch for bug #2737: move the
responsibility for padding relation segments to full length into md.c.
Bruce Momjian [Wed, 3 Jan 2007 14:35:24 +0000 (14:35 +0000)]
Attempt to return proper overflow/underflow messages for platforms that
only return Nan and set errno for pow/exp overflow/underflow.
Bruce Momjian [Wed, 3 Jan 2007 04:21:47 +0000 (04:21 +0000)]
For float4/8, remove errno checks for pow() and exp() because only some
platforms set errno, and we already have a check macro that detects
under/overflow, so there is no reason for platform-specific code
anymore.
D'Arcy J.M. Cain [Wed, 3 Jan 2007 01:19:51 +0000 (01:19 +0000)]
Widen the money type to 64 bits.
Bruce Momjian [Tue, 2 Jan 2007 23:38:42 +0000 (23:38 +0000)]
Update expected result for new inet error message wording.
Bruce Momjian [Tue, 2 Jan 2007 22:21:08 +0000 (22:21 +0000)]
Adjust network errmsg("result is out of range") message to be consistent
with other places.
Bruce Momjian [Tue, 2 Jan 2007 22:19:42 +0000 (22:19 +0000)]
Some platforms set errno on pow(), exp() overflow, some do not, so if
isinf(), fall through to our own infinity checks.
Tom Lane [Tue, 2 Jan 2007 21:43:36 +0000 (21:43 +0000)]
Add a regression test for ALTER SET TABLESPACE; this is a whole separate
code path in tablecmds.c that wasn't exercised at all before.
Bruce Momjian [Tue, 2 Jan 2007 21:25:50 +0000 (21:25 +0000)]
finite() no longer used; remove finite() platform-specific
infrastructure.
Bruce Momjian [Tue, 2 Jan 2007 20:59:32 +0000 (20:59 +0000)]
Add n_live_tuples and n_dead_tuples to pg_stat_all_tables.
The purpose is to allow autovacuum-esq conditional vacuuming and
clustering using SQL to discover the required stats.
No documentation updates required. Catalog version updated.
Glen Parker
Bruce Momjian [Tue, 2 Jan 2007 20:50:35 +0000 (20:50 +0000)]
Add #include <float.h> for platforms that still need it.
Bruce Momjian [Tue, 2 Jan 2007 20:00:50 +0000 (20:00 +0000)]
Fix float4/8 to handle Infinity and Nan consistently, e.g. Infinity is a
valid result from a computation if one of the input values was infinity.
The previous code assumed an operation that returned infinity was an
overflow.
Handle underflow/overflow consistently, and add checks for aggregate
overflow.
Consistently prevent Inf/Nan from being cast to integer data types.
Fix INT_MIN % -1 to prevent overflow.
Update regression results for new error text.
Per report from Roman Kononov.
Tom Lane [Sun, 31 Dec 2006 20:32:04 +0000 (20:32 +0000)]
Found the problem with my operator-family changes: by fetching from
pg_opclass during LookupOpclassInfo(), I'd turned pg_opclass_oid_index
into a critical system index. However the problem could only manifest
during a backend's first attempt to load opclass data, and then only
if it had successfully loaded pg_internal.init and subsequently received
a relcache flush; which made it impossible to reproduce in sequential
tests and darn hard even in parallel tests. Memo to self: when
exercising cache flush scenarios, must disable LookupOpclassInfo's
internal cache too.
Tom Lane [Sat, 30 Dec 2006 21:21:56 +0000 (21:21 +0000)]
Support type modifiers for user-defined types, and pull most knowledge
about typmod representation for standard types out into type-specific
typmod I/O functions. Teodor Sigaev, with some editorialization by
Tom Lane.