Tom Lane [Mon, 15 Mar 2004 01:13:41 +0000 (01:13 +0000)]
Remove grotty special-case code in coerce_to_target_type() that
implemented casts to varchar and bpchar using a cast-to-text function.
This is a holdover from before we had pg_cast; it now makes more sense
to just list these casts in pg_cast. While at it, add pg_cast entries
for the other direction (casts from varchar/bpchar) where feasible.
Tom Lane [Sun, 14 Mar 2004 23:41:27 +0000 (23:41 +0000)]
Tweak planner so that index expressions and predicates are matched to
queries without regard to whether coercions are stated explicitly or
implicitly. Per suggestion from Stephan Szabo.
Neil Conway [Sun, 14 Mar 2004 05:22:52 +0000 (05:22 +0000)]
Portability fixes and bug fixes for recent floating point input changes.
In particular, don't depend on strtod() to accept 'NaN' and 'Infinity'
inputs (while this is required by C99, not all platforms are compliant
with that yet). Also, don't require glibc's behavior from isinf():
it seems that on a lot of platforms isinf() does not itself distinguish
between negative and positive infinity.
Tom Lane [Sun, 14 Mar 2004 04:25:18 +0000 (04:25 +0000)]
Teach psql to show the location of syntax errors visually, per recent
discussions. Patch by Fabien Coelho and Tom Lane. Still needs to be
taught about multi-screen-column kanji characters; Tatsuo has promised
to provide the needed infrastructure for that.
Tom Lane [Sun, 14 Mar 2004 01:58:41 +0000 (01:58 +0000)]
Arrange to emit a CONTEXT: SQL function "foo" entry in an error
message that is reporting a prechecking error in a SQL function.
This is to cue client-side code that the syntax error position,
if any, is with respect to the function body and not the outer command.
Tom Lane [Sat, 13 Mar 2004 22:09:14 +0000 (22:09 +0000)]
Generate a WARNING when the column types in a foreign key constraint are
incompatible enough to prevent indexscanning the referenced table. Also,
improve the error message that pops out when we can't implement the FK at
all for lack of a usable equality operator. Fabien Coelho, with some review
by Tom Lane.
Tom Lane [Sat, 13 Mar 2004 00:54:10 +0000 (00:54 +0000)]
Repair memory leakage introduced into the non-hashed aggregate case by
7.4 rewrite for hashed aggregate support. If the transition data type
is pass-by-reference, the transValue must be pfreed when starting a new
group boundary, else we have a one-value-per-group leakage. Thanks to
Rae Steining for providing a reproducible test case.
Neil Conway [Fri, 12 Mar 2004 00:25:43 +0000 (00:25 +0000)]
Allow 'Infinity' and '-Infinity' as input to the float4 and float8
types. Update the regression tests and the documentation to reflect
this. Remove the UNSAFE_FLOATS #ifdef.
This is only half the story: we still unconditionally reject
floating point operations that result in +/- infinity. See
recent thread on -hackers for more information.
Neil Conway [Thu, 11 Mar 2004 02:11:14 +0000 (02:11 +0000)]
Revise int2/int4/int8/float4/float8 input routines to allow for
any amount of leading or trailing whitespace (where "whitespace"
is defined by isspace()). This is for SQL conformance, as well
as consistency with other numeric types (e.g. oid, numeric).
Also refactor pg_atoi() to avoid looking at errno where not
necessary, and add a bunch of regression tests for the input
to these types.
Neil Conway [Tue, 9 Mar 2004 16:57:47 +0000 (16:57 +0000)]
Refer to GUC variables using <xref> tags rather than <varname> tags,
where appropriate. Add "id" and "xreflabel" tags to the descriptions
of the GUC variables to facilitate this. Also make a few minor docs
cleanups.
Bruce Momjian [Tue, 9 Mar 2004 05:11:53 +0000 (05:11 +0000)]
Corrects a typo, introduces missing variables, and rearranges the
initialization of stats process under EXEC_BACKEND.
[A cleaner, rationalized approach to stat/backend/SSDataBase child
processes under EXEC_BACKEND is on my TODO list. However this patch
takes care of immediate concerns (ie. stats test now passes under
win32)]
Bruce Momjian [Tue, 9 Mar 2004 05:06:45 +0000 (05:06 +0000)]
Determines the PKGLIBDIR equivalent under win32. Requires pgsql lib and
bin directories to be packaged under the same root directory (eg. <some
path>/pgsql/bin and <some path>/pgsql/lib) for the win32 port, which
does not appear to be an onerous restriction.
Bruce Momjian [Tue, 9 Mar 2004 04:53:37 +0000 (04:53 +0000)]
Make a separate win32 debug DLL along with the non-debug version:
Currently, src/interfaces/libpq/win32.mak builds a statically-linked
library "libpq.lib", a debug dll "libpq.dll", import library for the
debug dll "libpqdll.lib", a release dll "libpq.dll", import library for
the release dll "libpqdll.lib". To avoid naming clashes, I would make
the debug dll and import libraries "libpqd.dll" and "libpqddll.lib".
Basically, the debug build uses the cl flags: "/MDd /D _DEBUG", and the
release build uses the cl flags "/MD /D NDEBUG". Usually the debug
build has a "D" suffix on the file name, so for example:
Bruce Momjian [Tue, 9 Mar 2004 04:43:07 +0000 (04:43 +0000)]
Add:
#log_line_prefix = '' # e.g. '<%u%%%d> '
# %u=user name %d=database name
# %r=remote host and port
# %p=PID %t=timestamp %i=command tag
# %c=session id %l=session line number
# %s=session start timestamp
# %x=stop here in non-session processes
# %%='%'
Bruce Momjian [Tue, 9 Mar 2004 01:59:13 +0000 (01:59 +0000)]
I wanted to submit some changes to the bundled postgres startup
script for Mac OS X. I added calls to utilize the bundled apache
rotatelogs script in the DB startup for log rotation. Also modified
startup parameters file to allow using the "SystemStarter" utility to
start/stop/restart postgres with a rotating log file.
The script credits David Wheeler, 2002. I wrote him a message about
the changes an he suggested I post them here. I explain some of the
changes below.
Not sure how to submit the changes. I have 3 files, "PostgreSQL"
script, "StartupParameters.plist" file, "pg_startupscript.diff" file.
The diff file was run against the original "PostgreSQL" script file.
I'll try attaching them to this message. If they get filtered I can
resend if needed.
Thanks.
Ray A.
------------------------------------
1) Changed the "Provides" parameter in StartupParameters.plist to
"PostgreSQL" from "postgres database" simply for ease of typing. It
seems that the SystemStarter utility uses the "Provides" value if you
want to control the script. This way I did not have to enclose it in
quotes on commandline. The modified StartupParameters.plist is now an
XML document also.
2) For the startup script I added 2 user modifiable variables:
# do you want to rotate the log files, 1=true 0=false
ROTATELOGS=1
# logfile rotate in seconds
ROTATESEC="604800"
I also added a non modifiable variable:
# The apache log rotation utility
LOGUTIL="/usr/sbin/rotatelogs"
I modified the StartService and RestartService functions to execute
the new commands if the user wants log rotation.
Tom Lane [Mon, 8 Mar 2004 17:20:17 +0000 (17:20 +0000)]
Test for whether a previous IN join restricts the current join was too
strict, per discussion with Dennis Haney.
Also, rearrange the preceding tests to avoid redundancy.
Neil Conway [Sun, 7 Mar 2004 20:41:27 +0000 (20:41 +0000)]
contrib/xml2 updates from John Gray:
I have changed the name of the new parse function to xml_valid and fixed
a reference to SortMem which meant that the code as supplied would work
against 7.3 and 7.4 but wouldn't work in CVS.
Tom Lane [Sun, 7 Mar 2004 05:43:53 +0000 (05:43 +0000)]
When testing usability of a partial index, recognize that an index
predicate of the form 'foo IS NOT NULL' is implied by a WHERE clause
that uses 'foo' in any strict operator or function. Per suggestion
and preliminary implementation by John Siracusa; some further hacking
by moi.
Joe Conway [Sun, 7 Mar 2004 02:27:00 +0000 (02:27 +0000)]
Added new versions of dblink, dblink_exec, dblink_open, dblink_close,
and, dblink_fetch -- allows ERROR on remote side of connection to
throw NOTICE locally instead of ERROR. Also removed documentation for
previously deprecated, now removed, functions.
Bruce Momjian [Fri, 5 Mar 2004 03:24:50 +0000 (03:24 +0000)]
Thanks to the generous support of Torchbox (http://www.torchbox.com), I
have been able to significantly improve the contrib/xml XPath
integration code.
New features:
* XPath set-returning function allows multiple results from an several
XPath queries to be used as a virtual table.
* Using libxslt, XSLT transformations (with and without parameters) are
supported. (Caution: This support allows generic URL fetching from
within the backend as well).
I've removed the old code so that it is all libxml based. Rather than
attach as a patch, I've put the tar.gz (10k!) at
http://www.azuli.co.uk/pgxml-1.0.tar.gz
(all files in archive are xml/....).
I think this is worth replacing the contrib version with, even though
the function names have changed (though the same functionality is
there), because it includes a SRF and some SPI usage, in addition to
linking to an external library. And it isn't a big module! Obviously, I
understand that people might prefer to move it elsewhere, or might have
reservations about replacing an existing contrib module with an
incompatible one. I'm open to suggestions.
Tom Lane [Fri, 5 Mar 2004 01:53:59 +0000 (01:53 +0000)]
libpq's query to get the OIDs of large-object support functions was not
schema-safe. Make it so, and improve the internal support for knowledge
of server version.
Neil Conway [Thu, 4 Mar 2004 21:47:18 +0000 (21:47 +0000)]
Emit a warning when an empty string is input to the oid, float4, and
float8 types. This begins the deprecation of this feature: in 7.6,
this input will be rejected.
Also added a new error code for warnings about deprecated features,
and updated the regression tests.
The trim function doc did not say that the second argument could be
be omitted. This patch fixes that. It also fixes a bug where the
type text was not wrapped as <type>text</type>.
Neil Conway [Wed, 3 Mar 2004 22:22:24 +0000 (22:22 +0000)]
Add a few more cross-references where appropriate, add more text about
the FROM clause and an example to the UPDATE reference page, and make
a few other SGML tweaks.
Tom Lane [Wed, 3 Mar 2004 21:28:55 +0000 (21:28 +0000)]
Modify pg_dump so that the preferred dump order is by name within
object types, rather than by OID. This should help ensure consistent
dump output from databases that are logically the same but have different
histories, per recent discussion about 'diffing' databases. The patch
is bulky because of renaming of fields, but not very complicated.
Also, do some tweaking to cause BLOB restoration to be done in a better
order, and clean up pg_restore's textual output to exactly match pg_dump.
Bruce Momjian [Wed, 3 Mar 2004 04:22:47 +0000 (04:22 +0000)]
Adds the -W flag to the pwd call under Win32. This allows directories,
which are munged by sed, such as:
/e/cygwin/opt/diff9c/pgsql/src/test/regress/data/agg.data to be
correctly passed as:
e:/cygwin/opt/diff9c/pgsql/src/test/regress/data/agg.data
Tom Lane [Tue, 2 Mar 2004 22:17:34 +0000 (22:17 +0000)]
Remove useless rebuilding of subPlan list during ExecInitNode. Wouldn't
have been there to start with, except for overly enthusiastic copy-and-
paste ...
Tom Lane [Tue, 2 Mar 2004 21:14:44 +0000 (21:14 +0000)]
Always schema-qualify the name of a function referenced in CREATE CAST.
The former coding failed if the cast function was not in the pg_catalog
schema. How'd this escape detection?
Tom Lane [Tue, 2 Mar 2004 18:56:15 +0000 (18:56 +0000)]
Junkfilter logic to force a projection step during SELECT INTO was too
simplistic; it recognized SELECT * FROM but not SELECT * FROM LIMIT.
Per bug report from Jeff Bohmer.