Tom Lane [Sat, 14 Feb 2004 20:16:18 +0000 (20:16 +0000)]
Create crosstype comparison operators for date vs. timestamp and date
vs. timestamptz. This allows use of indexes for expressions like
datecol >= date 'today' - interval '1 month'
which were formerly not indexable without casting the righthand side
down from timestamp to date.
Tom Lane [Fri, 13 Feb 2004 22:26:30 +0000 (22:26 +0000)]
Repair optimization bug I introduced in a moment of brain fade back in
Nov 2002: when constant-expression simplification removes all the
aggregate function calls from a query, that doesn't mean we can act as
though there never were any aggregates. Per bug report from Gabor Szucs.
Tom Lane [Fri, 13 Feb 2004 06:39:49 +0000 (06:39 +0000)]
After further thought about support for gathering stats on functional
indexes, it seems like we ought to put another layer of indirection
between the compute_stats functions and the actual data storage. This
would allow us to compute the values on-the-fly, for example.
Bruce Momjian [Fri, 13 Feb 2004 04:40:06 +0000 (04:40 +0000)]
Tom Lane wrote:
> momjian@svr1.postgresql.org (Bruce Momjian) writes:
>> someone asked me about the FK deadlock fix, mentioned in the 7.3.3
>> release notes as 3rd change:
>> http://www.postgresql.org/docs/current/static/release-7-3-3.html
>> Actually, that fix was available with 7.4, not 7.3. Don't know if we can
>> retroactively change the release-notes though.
>
> This is completely erroneous, please undo it.
>
> 2003-05-21 14:14 tgl
>
> * src/: backend/utils/adt/ri_triggers.c,
> test/regress/expected/foreign_key.out (REL7_3_STABLE): Back-patch
> Jan's fix to avoid primary key lookup (and lock) if foreign key
> does not change on UPDATE.
Oh ... didn't know that you did a backpatch. Sorry
Tom Lane [Thu, 12 Feb 2004 23:41:04 +0000 (23:41 +0000)]
Add hooks for type-specific calculation of ANALYZE statistics. Idea and
coding by Mark Cave-Ayland, some kibitzing by Tom Lane. initdb forced
due to new column in pg_type.
Bruce Momjian [Thu, 12 Feb 2004 18:09:43 +0000 (18:09 +0000)]
File not needed:
.< * Improve speed with indexes (perhaps recreate index instead) [vacuum]
> * Improve speed with indexes (perhaps recreate index instead) 369c369
< lock and truncate table [vacuum]
> lock and truncate table 371c371
< rather than in /contrib [vacuum]
> rather than in /contrib
Bruce Momjian [Thu, 12 Feb 2004 16:38:04 +0000 (16:38 +0000)]
Fix typo:
On Mon, 2004-01-26 at 21:28, Peter Eisentraut wrote:
> Christophe Combelles wrote:
> > At the bottom of this doc file :
> > file:///usr/share/doc/postgresql-doc/html/tutorial-createdb.html
> > "and it also happens that that user always has permission"
> > ---- x2
> The first "that" serves as a conjuction, the second one serves as an
> article. Looks correct to me.
A better workaround for the sentence would be something like:
"and it also happens that the user always has permission"
Jan Wieck [Thu, 12 Feb 2004 15:06:56 +0000 (15:06 +0000)]
Fixed bug where FlushRelationBuffers() did call StrategyInvalidateBuffer()
for already empty buffers because their buffer tag was not cleard out
when the buffers have been invalidated before.
Also removed the misnamed BM_FREE bufhdr flag and replaced the checks,
which effectively ask if the buffer is unpinned, with checks against the
refcount field.
Tom Lane [Wed, 11 Feb 2004 22:55:26 +0000 (22:55 +0000)]
Commit the reasonably uncontroversial parts of J.R. Nield's PITR patch, to
wit: Add a header record to each WAL segment file so that it can be reliably
identified. Avoid splitting WAL records across segment files (this is not
strictly necessary, but makes it simpler to incorporate the header records).
Make WAL entries for file creation, deletion, and truncation (as foreseen but
never implemented by Vadim). Also, add support for making XLOG_SEG_SIZE
configurable at compile time, similarly to BLCKSZ. Fix a couple bugs I
introduced in WAL replay during recent smgr API changes. initdb is forced
due to changes in pg_control contents.
Tom Lane [Wed, 11 Feb 2004 22:25:02 +0000 (22:25 +0000)]
Repair some problems in bgwriter start/stop logic. In particular, don't
allow the bgwriter to start before the startup subprocess has finished
... it tends to crash otherwise. (The same problem may have existed for
the checkpointer, I'm not entirely sure.) Remove some code that was
redundant because the bgwriter is handled as a member of the backend list.
Tom Lane [Tue, 10 Feb 2004 03:42:45 +0000 (03:42 +0000)]
Centralize implementation of delay code by creating a pg_usleep()
subroutine in src/port/pgsleep.c. Remove platform dependencies from
miscadmin.h and put them in port.h where they belong. Extend recent
vacuum cost-based-delay patch to apply to VACUUM FULL, ANALYZE, and
non-btree index vacuuming.
By the way, where is the documentation for the cost-based-delay patch?
Tom Lane [Tue, 10 Feb 2004 01:55:27 +0000 (01:55 +0000)]
Restructure smgr API as per recent proposal. smgr no longer depends on
the relcache, and so the notion of 'blind write' is gone. This should
improve efficiency in bgwriter and background checkpoint processes.
Internal restructuring in md.c to remove the not-very-useful array of
MdfdVec objects --- might as well just use pointers.
Also remove the long-dead 'persistent main memory' storage manager (mm.c),
since it seems quite unlikely to ever get resurrected.
Neil Conway [Wed, 4 Feb 2004 01:11:47 +0000 (01:11 +0000)]
Use memmove() rather than memcpy() in set_var_from_var(). If this function
is asked to assign a variable to itself, it will result in doing a
memcpy() on an entirely-overlapping memory range, which results in
undefined behavior according to ANSI C. That said, it is unlikely to
actually do anything bad on any sane libc, but this keeps valgrind quiet.
Tom Lane [Tue, 3 Feb 2004 17:34:04 +0000 (17:34 +0000)]
Rename SortMem and VacuumMem to work_mem and maintenance_work_mem.
Make btree index creation and initial validation of foreign-key constraints
use maintenance_work_mem rather than work_mem as their memory limit.
Add some code to guc.c to allow these variables to be referenced by their
old names in SHOW and SET commands, for backwards compatibility.
Joe Conway [Tue, 3 Feb 2004 08:29:57 +0000 (08:29 +0000)]
Add function (actually an int4 and an int8 version) that generates
a series of numbers, optionally using an explicit step size other
than the default value (one). Use function in the information_schema
to replace hard-wired knowledge of INDEX_MAX_KEYS. initdb forced due
to pg_proc change. Documentation update still needed -- will be
committed separately.
Neil Conway [Mon, 2 Feb 2004 16:58:30 +0000 (16:58 +0000)]
Fix a read of uninitialized memory in next_token() of hba.c, spotted via
valgrind: a buffer passed to strncmp() had to be NUL-terminated. Original
report and patch from Dennis Bjorkland, some cleanup by Andrew Dunstan,
and finally some editorializing from Neil Conway.
Neil Conway [Mon, 2 Feb 2004 00:35:08 +0000 (00:35 +0000)]
Use Tcl_PutEnv() in place of putenv() in libpgtcl, as the latter can
apparently corrupt the Tcl runtime. Per suggestion from Michael
Brusser <michael@synchronicity.com>
Bruce Momjian [Mon, 2 Feb 2004 00:11:31 +0000 (00:11 +0000)]
Briefly,
* configure + Makefile changes
* shared memory attaching in EXEC_BACKEND case (+ minor fix for apparent
cygwin bug under cygwin/EXEC_BACKEND case only)
* PATH env var separator differences
* missing win32 rand functions added
* placeholder replacements for sync etc under port.h
To those who are really interested, and there are a few of you: the attached
patch + file will allow the source base to be compiled (and, for some
definition, "run") under MingW, with the following caveats (I wanted to
first properly fix all but the last of these, but y'all won't quit asking
for a patch :-):
* child death: SIGCHLD not yet sent, so as a minimum, you'll need to
put in some sort of delay after StartupDatabase, and handle setting
StartupPID to 0 etc (ie. the stuff the reaper() signal function is supposed
to do)
* dirmod.c: comment out the elog calls
* dfmgr.c: some hackage required to substitute_libpath_macro
* slru/xact.c: comment out the errno checking after the readdir
(fixed by next version of MingW)
Again, this is only if you *really* want to see postgres compile and start,
and is a nice leg-up for working on the other Win32 TODO list items. Just
don't expect too much else from it at this point...
Tom Lane [Sun, 1 Feb 2004 06:27:48 +0000 (06:27 +0000)]
Make length() disregard trailing spaces in char(n) values, per discussion
some time ago and recent patch from Gavin Sherry. Update documentation
to point out that trailing spaces are insignificant in char(n).
Tom Lane [Sat, 31 Jan 2004 00:45:21 +0000 (00:45 +0000)]
Fix text_position to not scan past end of source string in multibyte
case, per report from Korea PostgreSQL Users' Group. Also do some
cosmetic cleanup in nearby code.
Tom Lane [Wed, 28 Jan 2004 22:14:04 +0000 (22:14 +0000)]
Make USING and WITH optional to bring the syntax of \copy into exact
agreement with what the backend grammar actually accepts (which is a
bit looser than what its documentation claims). Per report from Bill
Moran, though I did not use his patch since it removed all the
undocumented flexibility that the code historically had and the backend
still has.
Tom Lane [Wed, 28 Jan 2004 21:02:40 +0000 (21:02 +0000)]
Review uses of IsUnderPostmaster, change some tests to look at
whereToSendOutput instead because they are really inquiring about
the correct client communication protocol. Update some comments.
This is pointing towards supporting regular FE/BE client protocol
in a standalone backend, per discussion a month or so back.
Michael Meskes [Wed, 28 Jan 2004 09:52:14 +0000 (09:52 +0000)]
- Issue a warning if a cursor is declared but not opened.
- Fixed prototype for ECPGprepared_statement to not moan about "const char"
- Fixed parsing of nested structures.
- Added option to parse header files.
Tom Lane [Wed, 28 Jan 2004 07:46:44 +0000 (07:46 +0000)]
Fix oversight in check_ungrouped_columns optimization that avoids
unnecessary checks for complex grouping expressions: we cannot check
whether the expressions are simple Vars until after we apply
flatten_join_alias_vars, because in the case of FULL JOIN that routine
can introduce non-Var expressions. Per example from Joel Knight.
Tom Lane [Wed, 28 Jan 2004 00:05:04 +0000 (00:05 +0000)]
simplify_function() mustn't try to evaluate functions that return
composite types, because TupleTableSlots aren't Datums and can't be
stored in Const nodes. We can remove this restriction if we ever
adopt a cleaner runtime representation for whole-tuple results, but
at the moment it's broken. Per example from Thomas Hallgren.
Tom Lane [Tue, 27 Jan 2004 00:50:33 +0000 (00:50 +0000)]
Run stats test separately, not as part of a parallel group, to avoid
possible failures due to stats collector not updating fast enough under
heavy load. Per report from Jeremy Yoder.