]> granicus.if.org Git - postgresql/log
postgresql
18 years agoFix up LIMIT/OFFSET planning so that we cope with non-constant LIMIT
Tom Lane [Thu, 18 Aug 2005 17:51:12 +0000 (17:51 +0000)]
Fix up LIMIT/OFFSET planning so that we cope with non-constant LIMIT
or OFFSET clauses by using estimate_expression_value().  The main advantage
of this is that if the expression is a Param and we have a value for the
Param, we'll use that value rather than defaulting.  Also, fix some
thinkos in the logic for combining LIMIT/OFFSET with an externally
supplied tuple fraction (this covers cases like EXISTS(...LIMIT...)).
And make sure the results of all this are shown by EXPLAIN.  Per a
gripe from Merlin Moncure.

18 years agoAdd:
Bruce Momjian [Thu, 18 Aug 2005 14:14:31 +0000 (14:14 +0000)]
Add:

>  o Remove unnecessary abstractions in pg_dump source code

18 years agoAdd hint for to_char(interval) invalid format specifications.
Bruce Momjian [Thu, 18 Aug 2005 13:43:08 +0000 (13:43 +0000)]
Add hint for to_char(interval) invalid format specifications.

18 years agoDone:
Bruce Momjian [Thu, 18 Aug 2005 04:42:41 +0000 (04:42 +0000)]
Done:

> * -Prevent to_char() on interval from returning meaningless values

18 years agoFix to_char(interval) to return proper year and century values.
Bruce Momjian [Thu, 18 Aug 2005 04:37:08 +0000 (04:37 +0000)]
Fix to_char(interval) to return proper year and century values.
Fix to_char(interval) to return large year/month/day/hour values that
are larger than possible timestamp values.
Prevent to_char(interval) format specifications that make no sense, like
Month.
Clean up formatting.c code to more logically handle return lengths.

18 years agoAvoid an Assert failure if OuterUserId hasn't been set yet during
Tom Lane [Wed, 17 Aug 2005 22:14:34 +0000 (22:14 +0000)]
Avoid an Assert failure if OuterUserId hasn't been set yet during
AbortTransaction.  This can happen if a backend's InitPostgres transaction
fails (eg, because the given username is invalid).  Per Alvaro.

18 years agoMore formatting.c cleanups.
Bruce Momjian [Wed, 17 Aug 2005 22:06:53 +0000 (22:06 +0000)]
More formatting.c cleanups.

18 years agoSmall cleanup.
Bruce Momjian [Wed, 17 Aug 2005 21:54:50 +0000 (21:54 +0000)]
Small cleanup.

18 years agoAdjust to_char/from_char code to use boolean "is_to_char" rather than
Bruce Momjian [Wed, 17 Aug 2005 21:47:55 +0000 (21:47 +0000)]
Adjust to_char/from_char code to use boolean "is_to_char" rather than
integer with flags.

18 years agoRemove unnecessary configure test for inet_ntop(), per Andrew Dunstan.
Tom Lane [Wed, 17 Aug 2005 20:20:10 +0000 (20:20 +0000)]
Remove unnecessary configure test for inet_ntop(), per Andrew Dunstan.

18 years agoFix declaration of dumpacl, per Alvaro.
Tom Lane [Wed, 17 Aug 2005 19:45:51 +0000 (19:45 +0000)]
Fix declaration of dumpacl, per Alvaro.

18 years agoFix FSM warning to mention increasing max_fsm_pages. Was incorrectly
Bruce Momjian [Wed, 17 Aug 2005 03:50:59 +0000 (03:50 +0000)]
Fix FSM warning to mention increasing max_fsm_pages.  Was incorrectly
max_fsm_relations.

18 years agoMinor cleanup.
Bruce Momjian [Wed, 17 Aug 2005 01:45:20 +0000 (01:45 +0000)]
Minor cleanup.

18 years agoUpdate comments.
Bruce Momjian [Tue, 16 Aug 2005 19:29:38 +0000 (19:29 +0000)]
Update comments.

18 years agoImprove comment.
Bruce Momjian [Tue, 16 Aug 2005 19:23:31 +0000 (19:23 +0000)]
Improve comment.

18 years agoUpdate pgcvslog comment on how to find branch start time.
Bruce Momjian [Tue, 16 Aug 2005 17:46:57 +0000 (17:46 +0000)]
Update pgcvslog comment on how to find branch start time.

Run autoconf/autoheader in case someone forgot in the past.

18 years agoReject operator names >= NAMEDATALEN characters. These will not work
Tom Lane [Tue, 16 Aug 2005 00:48:12 +0000 (00:48 +0000)]
Reject operator names >= NAMEDATALEN characters.  These will not work
anyway, and in assert-enabled builds you are likely to get an assertion
failure.  Backpatch as far as 7.3; 7.2 seems not to have the problem.

18 years agoRename pg_stat_file columns to be more consistent. Split apart change
Bruce Momjian [Mon, 15 Aug 2005 23:00:14 +0000 (23:00 +0000)]
Rename pg_stat_file columns to be more consistent.  Split apart change
and creation columns to behave for Unix or Win32.

18 years agoClean up recent patch for PL handler functions in pg_catalog: the patch
Tom Lane [Mon, 15 Aug 2005 21:50:15 +0000 (21:50 +0000)]
Clean up recent patch for PL handler functions in pg_catalog: the patch
caused PL languages and handlers to be dumped ALWAYS, even in the face
of contrary --schema or --table switches.  Adopt a slightly saner
definition.

18 years agoMake createlang and droplang proof against weird search_path settings
Tom Lane [Mon, 15 Aug 2005 21:02:26 +0000 (21:02 +0000)]
Make createlang and droplang proof against weird search_path settings
by forcing search_path to be just pg_catalog.

18 years agoarray_in() and array_recv() need to be more paranoid about validating
Tom Lane [Mon, 15 Aug 2005 19:40:20 +0000 (19:40 +0000)]
array_in() and array_recv() need to be more paranoid about validating
their OID parameter.  It was possible to crash the backend with
select array_in('{123}',0,0); because that would bypass the needed step
of initializing the workspace.  These seem to be the only two places
with a problem, though (record_in and record_recv don't have the issue,
and the other array functions aren't depending on user-supplied input).
Back-patch as far as 7.4; 7.3 does not have the bug.

18 years agoint_array_enum function should be using fcinfo->flinfo->fn_extra for
Tom Lane [Mon, 15 Aug 2005 19:05:16 +0000 (19:05 +0000)]
int_array_enum function should be using fcinfo->flinfo->fn_extra for
working state, not fcinfo->context.  Silly oversight on my part in last
go-round of fixes.

18 years agoAllow the pgstat views to show toast tables as well as regular tables
Tom Lane [Mon, 15 Aug 2005 16:25:19 +0000 (16:25 +0000)]
Allow the pgstat views to show toast tables as well as regular tables
(the stats system has always collected this info, but the views were
filtering it out).  Modify autovacuum so that over-threshold activity
in a toast table can trigger a VACUUM of the parent table, even if the
parent didn't appear to need vacuuming itself.  Per discussion a month
or so back about "short, wide tables".

18 years agoClean up some stray remaining references to pg_shadow, pg_user, pg_group.
Tom Lane [Mon, 15 Aug 2005 02:40:36 +0000 (02:40 +0000)]
Clean up some stray remaining references to pg_shadow, pg_user, pg_group.

18 years agoChange pg_dump to use pg_roles instead of pg_user on 8.1 and up,
Tom Lane [Mon, 15 Aug 2005 02:36:30 +0000 (02:36 +0000)]
Change pg_dump to use pg_roles instead of pg_user on 8.1 and up,
so that it will correctly dump owners of objects owned by non-login roles.

18 years agoUpdate administrator's guide chapters for ROLEs patch.
Tom Lane [Sun, 14 Aug 2005 23:35:38 +0000 (23:35 +0000)]
Update administrator's guide chapters for ROLEs patch.

18 years agoChange standard_compliant_strings to standard_conforming_strings.
Peter Eisentraut [Sun, 14 Aug 2005 22:19:50 +0000 (22:19 +0000)]
Change standard_compliant_strings to standard_conforming_strings.

18 years agoUpdate the createuser utility for the ROLEs world. Alvaro Herrera
Tom Lane [Sun, 14 Aug 2005 20:16:03 +0000 (20:16 +0000)]
Update the createuser utility for the ROLEs world.  Alvaro Herrera

18 years agoFix psql's \d commands to use pg_roles instead of pg_user, so that
Tom Lane [Sun, 14 Aug 2005 19:20:45 +0000 (19:20 +0000)]
Fix psql's \d commands to use pg_roles instead of pg_user, so that
they don't miss owners that are NOLOGIN.

18 years agoFix up tab completion for ROLEs and add some more completion logic for
Tom Lane [Sun, 14 Aug 2005 18:49:30 +0000 (18:49 +0000)]
Fix up tab completion for ROLEs and add some more completion logic for
other stuff; change \du and \dg to be role-aware (Stefan Kaltenbrunner).
Also make tab completion fetch the list of GUC variables from pg_settings
instead of having a hard-wired copy of the list (Tom Lane).

18 years agoTweak catalog cache management algorithms to reduce cost of
Tom Lane [Sat, 13 Aug 2005 22:18:07 +0000 (22:18 +0000)]
Tweak catalog cache management algorithms to reduce cost of
SearchCatCacheList and ReleaseCatCacheList.  Previously, we incremented
and decremented the refcounts of list member tuples along with the list
itself, but that's unnecessary, and very expensive when the list is big.
It's cheaper to change only the list refcount.  When we are considering
deleting a cache entry, we have to check not only its own refcount but
its parent list's ... but it's easy to arrange the code so that this
check is not made in any commonly-used paths, so the cost is really nil.
The bigger gain though is to refrain from DLMoveToFront'ing each individual
member tuple each time the list is referenced.  To keep some semblance
of fair space management, lists are just marked as used or not since the
last cache cleanout search, and we do a MoveToFront pass only when about
to run a cleanout.  In combination, these changes reduce the costs of
SearchCatCacheList and ReleaseCatCacheList from about 4.5% of pgbench
runtime to under 1%, according to my gprof results.

18 years agoMake pg_stat_file() use OUT parameters so that the user doesn't have to
Tom Lane [Sat, 13 Aug 2005 19:02:34 +0000 (19:02 +0000)]
Make pg_stat_file() use OUT parameters so that the user doesn't have to
remember the output parameter set for himself.  It's a bit of a kluge
but fixing array_in to work in bootstrap mode looks worse.
I removed the separate pg_file_length() function, as it no longer has any
real notational advantage --- you can write (pg_stat_file(...)).length.

18 years agoRemove API file.
Bruce Momjian [Sat, 13 Aug 2005 15:27:41 +0000 (15:27 +0000)]
Remove API file.

Marko Kreen

18 years agoCREATE TABLE has optional column names, so change {} to [].
Bruce Momjian [Sat, 13 Aug 2005 02:48:18 +0000 (02:48 +0000)]
CREATE TABLE has optional column names, so change {} to [].

Alvaro.

18 years agoThe large one adds support for RSA keys and reorganizes
Bruce Momjian [Sat, 13 Aug 2005 02:06:21 +0000 (02:06 +0000)]
The large one adds support for RSA keys and reorganizes
the pubkey functions a bit.  The actual RSA-specific code
there is tiny, most of the patch consists of reorg of the
pubkey code, as lots of it was written as elgamal-only.

---------------------------------------------------------------------------

The SHLIB section was copy-pasted from somewhere and contains
several unnecessary libs.  This cleans it up a bit.

 -lcrypt
   we don't use system crypt()

 -lssl, -lssleay32
   no SSL here

 -lz in win32 section
   already added on previous line

 -ldes
   The chance anybody has it is pretty low.
   And the chance pgcrypto works with it is even lower.

Also trim the win32 section.

---------------------------------------------------------------------------

It is already disabled in Makefile, remove code too.

---------------------------------------------------------------------------

I was bit hasty making the random exponent 'k' a prime.  Further researh
shows that Elgamal encryption has no specific needs in respect to k,
any random number is fine.

It is bit different for signing, there it needs to be 'relatively prime'
to p - 1,  that means GCD(k, p-1) == 1, which is also a lot lighter than
full primality.  As we don't do signing, this can be ignored.

This brings major speedup to Elgamal encryption.

---------------------------------------------------------------------------

o  pgp_mpi_free: Accept NULLs
o  pgp_mpi_cksum: result should be 16bit
o  Remove function name from error messages - to be similar to other
   SQL functions, and it does not match anyway the called function
o  remove couple junk lines

---------------------------------------------------------------------------

o  Support for RSA encryption
o  Big reorg to better separate generic and algorithm-specific code.
o  Regression tests for RSA.

---------------------------------------------------------------------------

o  Tom stuck a CVS id into file.  I doubt the usefulness of it,
   but if it needs to be in the file then rather at the end.
   Also tag it as comment for asciidoc.
o  Mention bytea vs. text difference
o  Couple clarifications

---------------------------------------------------------------------------

There is a choice whether to update it with pgp functions or
remove it.  I decided to remove it, updating is pointless.

I've tried to keep the core of pgcrypto relatively independent
from main PostgreSQL, to make it easy to use externally if needed,
and that is good.  Eg. that made development of PGP functions much
nicer.

But I have no plans to release it as generic library, so keeping such
doc
up-to-date is waste of time.  If anyone is interested in using it in
other products, he can probably bother to read the source too.

Commented source is another thing - I'll try to make another pass
over code to see if there is anything non-obvious that would need
more comments.

---------------------------------------------------------------------------

Marko Kreen

18 years agoAdd documentation:
Bruce Momjian [Sat, 13 Aug 2005 01:55:41 +0000 (01:55 +0000)]
Add documentation:

>>>I think a more accurate description would be "permissions not
>>>inherited by children," and that isn't necessarily a bug.
>>
>>I agree it may not be a bug - but it's more than the permissions not
>>being inherited: the parent is affected.
>
>
> Not really, once you understand what's happening.  Unless you use
> FROM ONLY, selecting from the parent selects from the parent *and*
> its children.  The parent itself isn't affected, as queries with
> FROM ONLY should demonstrate.  I understand what you're saying --
> that there's an apparent effect on the parent -- but there really
> isn't.

Sean Burlington

18 years agoDisable strtoul() ERANGE check on Win32, because it isn't thread safe,
Bruce Momjian [Sat, 13 Aug 2005 01:34:30 +0000 (01:34 +0000)]
Disable strtoul() ERANGE check on Win32, because it isn't thread safe,
and it isn't really required.

18 years agoReverse out Assert addition.
Bruce Momjian [Fri, 12 Aug 2005 23:13:54 +0000 (23:13 +0000)]
Reverse out Assert addition.

18 years agoPass the type OID as the typioparam for all non-array types, rather than
Tom Lane [Fri, 12 Aug 2005 21:49:47 +0000 (21:49 +0000)]
Pass the type OID as the typioparam for all non-array types, rather than
only composite types as we did in 8.0.  Per discussion with Martijn
van Oosterhout.

18 years agoBack out plpython makefile change.
Bruce Momjian [Fri, 12 Aug 2005 21:44:51 +0000 (21:44 +0000)]
Back out plpython makefile change.

18 years agoImprove documention on loading large data sets into plperl.
Bruce Momjian [Fri, 12 Aug 2005 21:42:53 +0000 (21:42 +0000)]
Improve documention on loading large data sets into plperl.

David Fetter

18 years agoThis patch fixes the event type used to log output from the
Bruce Momjian [Fri, 12 Aug 2005 21:36:59 +0000 (21:36 +0000)]
This patch fixes the event type used to log output from the
stderr-in-service or output-from-syslogger-in-service code. Previously
everything was flagged as ERRORs there, which caused all instances to
log "LOG: logger shutting down" as error...

Please apply for 8.1. I'd also like it considered for 8.0 since logging
non-errors as errors can be cause for alarm amongst people who actually
look at their logs...

Magnus Hagander

18 years agoUn-break plperl for non-set case.
Tom Lane [Fri, 12 Aug 2005 21:26:32 +0000 (21:26 +0000)]
Un-break plperl for non-set case.

18 years ago[ backpatched to 8.0.X.]
Bruce Momjian [Fri, 12 Aug 2005 21:23:10 +0000 (21:23 +0000)]
[ backpatched to 8.0.X.]

> >> 3) I restarted the postmaster both times. I got this error
> both times.
> >> :25: ERROR:  could not load library "C:/Program
> >> Files/PostgreSQL/8.0/lib/testtrigfuncs.dll": dynamic load error
>
> > Yes. We really need to look at fixing that error message. I had
> > forgotten it completely :-(
>
> > Bruce, you think we can sneak that in after feature freeze? I would
> > call it a bugfix :-)
>
> Me too.  That's been on the radar for awhile --- please do
> send in a patch.

Here we go, that wasn't too hard :-)

Apart from adding the error handling, it does one more thing: it changes
the errormode when loading the DLLs. Previously if a DLL was broken, or
referenced other DLLs that couldn't be found, a popup dialog box would
appear on the screen. Which had to be clicked before the backend could
continue. This patch also disables the popup error message for DLL
loads.

I think this is something we should consider doing for the entire
backend - disable those popups, and say we deal with it ourselves. What
do you other win32 hackers thinnk about this?

In the meantime, this patch fixes the error msgs. Please apply for 8.1
and please consider a backpatch to 8.0.

Magnus Hagander

18 years ago> Gavin Sherry <swm@linuxworld.com.au> writes:
Bruce Momjian [Fri, 12 Aug 2005 21:20:24 +0000 (21:20 +0000)]
> Gavin Sherry <swm@linuxworld.com.au> writes:
> > I ran across this yesterday on HEAD:
>
> > template1=# grant select on foo, foo to swm;
> > ERROR:  tuple already updated by self
>
> Seems to fail similarly in every version back to 7.2; probably further,
> but that's all I have running at the moment.
>
> > We could do away with the error by producing a unique list of object names
> > -- but that would impose an extra cost on the common case.
>
> CommandCounterIncrement in the GRANT loop would be easier, likely.
> I'm having a hard time getting excited about it though...

Yeah, its not that exciting but that error message would throw your
average user.

I've attached a patch which calls CommandCounterIncrement() in each of the
grant loops.

Gavin Sherry

18 years agoMore rsi assignment line too.
Bruce Momjian [Fri, 12 Aug 2005 21:09:34 +0000 (21:09 +0000)]
More rsi assignment line too.

18 years agoFix up canonicalize_path to do the right thing in all cases (I think ...
Tom Lane [Fri, 12 Aug 2005 21:07:53 +0000 (21:07 +0000)]
Fix up canonicalize_path to do the right thing in all cases (I think ...
this was harder than it seemed at first glance).  Also push code for
checking for ".." in file names into path.c where it belongs.

18 years agoFix this:
Bruce Momjian [Fri, 12 Aug 2005 21:02:25 +0000 (21:02 +0000)]
Fix this:

$ ./configure --without-docdir
..
$ cd contrib/pgstattuple/
$ make install
mkdir -p -- /contrib
mkdir: cannot create directory `/contrib': Permission denied
make: *** [installdirs] Error 1

ISHIDA Akio

18 years agoCleanups for FreeBSD linking (PIC) and plpython compiles.
Bruce Momjian [Fri, 12 Aug 2005 20:57:11 +0000 (20:57 +0000)]
Cleanups for FreeBSD linking (PIC) and plpython compiles.

FreeBSD ports, supplied by Jim C. Nasby

18 years ago> The attached patch moves a plperl sanity check into the correct
Bruce Momjian [Fri, 12 Aug 2005 20:48:03 +0000 (20:48 +0000)]
> The attached patch moves a plperl sanity check into the correct
> position. Performing the check in the existing position allows the call
> to go through to perl first, possibly resulting in a SEGV.

Andrew Dunstan

18 years agoNo server version of snprintf needed, so remove Makefile rule.
Bruce Momjian [Fri, 12 Aug 2005 19:45:14 +0000 (19:45 +0000)]
No server version of snprintf needed, so remove Makefile rule.

18 years agoReverse out changes to canonicalize_path(), per suggestion from Tom.
Bruce Momjian [Fri, 12 Aug 2005 19:43:32 +0000 (19:43 +0000)]
Reverse out changes to canonicalize_path(), per suggestion from Tom.

18 years agoModify canonicalize_path() so if we would return a trailing "..", throw
Bruce Momjian [Fri, 12 Aug 2005 19:42:45 +0000 (19:42 +0000)]
Modify canonicalize_path() so if we would return a trailing "..", throw
an error instead.

18 years agoCode & docs review for server instrumentation patch. File timestamps
Tom Lane [Fri, 12 Aug 2005 18:23:56 +0000 (18:23 +0000)]
Code & docs review for server instrumentation patch.  File timestamps
should surely be timestamptz not timestamp; fix some but not all of the
holes in check_and_make_absolute(); other minor cleanup.  Also put in
the missed catversion bump.

18 years agoAdd markup for GUC mention in docs.
Bruce Momjian [Fri, 12 Aug 2005 15:57:48 +0000 (15:57 +0000)]
Add markup for GUC mention in docs.

18 years agoChange a couple of "can't happen" error messages to be a shade more
Tom Lane [Fri, 12 Aug 2005 14:34:14 +0000 (14:34 +0000)]
Change a couple of "can't happen" error messages to be a shade more
verbose when they do happen.  The "left link changed unexpectedly"
one in particular has been seen more than once in the field.

18 years agoRemove BufferBlockPointers array in favor of a base + (bufnum) * BLCKSZ
Tom Lane [Fri, 12 Aug 2005 05:05:51 +0000 (05:05 +0000)]
Remove BufferBlockPointers array in favor of a base + (bufnum) * BLCKSZ
computation.  On modern machines this is as fast if not faster, and we
don't have to clog the CPU's L2 cache with a tens-of-KB pointer array.
If we ever decide to adopt a more dynamic allocation method for shared
buffers, we'll probably have to revert this patch, but in the meantime
we might as well save a few bytes and nanoseconds.  Per Qingqing Zhou.

18 years agoAdd files to do read I/O on the cluster directory:
Bruce Momjian [Fri, 12 Aug 2005 03:25:13 +0000 (03:25 +0000)]
Add files to do read I/O on the cluster directory:

pg_stat_file()
pg_read_file()
pg_ls_dir()
pg_reload_conf()
pg_rotate_logfile()

Dave Page
Andreas Pflug

18 years agoUpdate comments.
Bruce Momjian [Fri, 12 Aug 2005 03:07:45 +0000 (03:07 +0000)]
Update comments.

18 years agoDocument why we only handle trailing "..".
Bruce Momjian [Fri, 12 Aug 2005 02:48:37 +0000 (02:48 +0000)]
Document why we only handle trailing "..".

18 years agoSolve the problem of OID collisions by probing for duplicate OIDs
Tom Lane [Fri, 12 Aug 2005 01:36:05 +0000 (01:36 +0000)]
Solve the problem of OID collisions by probing for duplicate OIDs
whenever we generate a new OID.  This prevents occasional duplicate-OID
errors that can otherwise occur once the OID counter has wrapped around.
Duplicate relfilenode values are also checked for when creating new
physical files.  Per my recent proposal.

18 years agoFix BSD fseeko to seek from the end of the file.
Bruce Momjian [Thu, 11 Aug 2005 23:05:14 +0000 (23:05 +0000)]
Fix BSD fseeko to seek from the end of the file.

18 years agoEINTR return from connect() should be treated exactly the same as
Tom Lane [Thu, 11 Aug 2005 22:53:41 +0000 (22:53 +0000)]
EINTR return from connect() should be treated exactly the same as
EINPROGRESS, according to Florian Hars.  I'm not completely convinced
but the spec does seem to read that way.

18 years agoAutovacuum loose end mop-up. Provide autovacuum-specific vacuum cost
Tom Lane [Thu, 11 Aug 2005 21:11:50 +0000 (21:11 +0000)]
Autovacuum loose end mop-up.  Provide autovacuum-specific vacuum cost
delay and limit, both as global GUCs and as table-specific entries in
pg_autovacuum.  stats_reset_on_server_start is now OFF by default,
but a reset is forced if we did WAL replay.  XID-wrap vacuums do not
ANALYZE, but do FREEZE if it's a template database.  Alvaro Herrera

18 years agoUpdate for new CVS homepage.
Bruce Momjian [Thu, 11 Aug 2005 13:52:33 +0000 (13:52 +0000)]
Update for new CVS homepage.

18 years agoMention MD5 function index for indexing long values.
Bruce Momjian [Thu, 11 Aug 2005 13:22:33 +0000 (13:22 +0000)]
Mention MD5 function index for indexing long values.

18 years agoUpdate MD5 mention for long values.
Bruce Momjian [Thu, 11 Aug 2005 13:22:07 +0000 (13:22 +0000)]
Update MD5 mention for long values.

18 years agoFix canonicalize_path so "../.." isn't stripped off and ignored.
Bruce Momjian [Thu, 11 Aug 2005 03:53:25 +0000 (03:53 +0000)]
Fix canonicalize_path so "../.." isn't stripped off and ignored.

18 years agoMake new hints follow style guide.
Tom Lane [Wed, 10 Aug 2005 22:39:00 +0000 (22:39 +0000)]
Make new hints follow style guide.

18 years agoAdd hints to cases where indexes fail because of values that are too long.
Bruce Momjian [Wed, 10 Aug 2005 21:36:46 +0000 (21:36 +0000)]
Add hints to cases where indexes fail because of values that are too long.

18 years agoDocument why Win32 loops over rename/unlink are necessary.
Bruce Momjian [Wed, 10 Aug 2005 19:52:37 +0000 (19:52 +0000)]
Document why Win32 loops over rename/unlink are necessary.

18 years agoAdd new FAQ information.
Bruce Momjian [Wed, 10 Aug 2005 19:30:05 +0000 (19:30 +0000)]
Add new FAQ information.

Martijn van Oosterhout

18 years agoExtend pg_config to be able to report the build-time values of CC,
Tom Lane [Tue, 9 Aug 2005 22:47:03 +0000 (22:47 +0000)]
Extend pg_config to be able to report the build-time values of CC,
CPPFLAGS, CFLAGS, CFLAGS_SL, LDFLAGS, LDFLAGS_SL, and LIBS.  Change it
so that invoking pg_config with no arguments reports all available
information, rather than just giving an error message.  Per discussion.

18 years agoMake backends that are reading the pgstats file verify each backend PID
Tom Lane [Tue, 9 Aug 2005 21:14:55 +0000 (21:14 +0000)]
Make backends that are reading the pgstats file verify each backend PID
against the PGPROC array.  Anything in the file that isn't in PGPROC
gets rejected as being a stale entry.  This should solve complaints about
stale entries in pg_stat_activity after a BETERM message has been dropped
due to overload.

18 years agoCombine entries:
Bruce Momjian [Tue, 9 Aug 2005 20:24:31 +0000 (20:24 +0000)]
Combine entries:

<   inheritance
< * Allow enable_constraint_exclusion to work for UPDATE and DELETE queries
>   inheritance, and allow it to work for UPDATE and DELETE queries

18 years agoDone:
Bruce Momjian [Tue, 9 Aug 2005 17:14:48 +0000 (17:14 +0000)]
Done:

> * -Add C code on Unix to copy directories for use in creating new databases

18 years agoUpdate postgresql.conf to show default ordering for wal_sync_method.
Bruce Momjian [Tue, 9 Aug 2005 05:43:52 +0000 (05:43 +0000)]
Update postgresql.conf to show default ordering for wal_sync_method.

18 years agoRemove unintended file change.
Bruce Momjian [Tue, 9 Aug 2005 05:14:26 +0000 (05:14 +0000)]
Remove unintended file change.

18 years agoFix ordering of default sync options to match code.
Bruce Momjian [Tue, 9 Aug 2005 05:01:10 +0000 (05:01 +0000)]
Fix ordering of default sync options to match code.

18 years agoUpdate patches queue URL, description.
Bruce Momjian [Tue, 9 Aug 2005 04:56:58 +0000 (04:56 +0000)]
Update patches queue URL, description.

18 years agoDone:
Bruce Momjian [Tue, 9 Aug 2005 04:51:18 +0000 (04:51 +0000)]
Done:

> * -Allow multiple blocks to be written to WAL with one write()

18 years agoClarify wal_sync_method options in documentation.
Bruce Momjian [Tue, 9 Aug 2005 04:50:44 +0000 (04:50 +0000)]
Clarify wal_sync_method options in documentation.

18 years agoFix crash when reading 'timezone = unknown' from postgresql.conf during
Tom Lane [Mon, 8 Aug 2005 23:39:01 +0000 (23:39 +0000)]
Fix crash when reading 'timezone = unknown' from postgresql.conf during
SIGHUP; it's not OK for an assign_hook to return a non-malloc'd string.
Problem was introduced during timezone library rewrite.

18 years agoDone:
Bruce Momjian [Mon, 8 Aug 2005 20:26:53 +0000 (20:26 +0000)]
Done:

>  o -Allow FOR UPDATE queries to do NOWAIT locks

18 years agoAvoid useless loop overhead in AtEOXact routines when the backend is
Tom Lane [Mon, 8 Aug 2005 19:44:22 +0000 (19:44 +0000)]
Avoid useless loop overhead in AtEOXact routines when the backend is
compiled with USE_ASSERT_CHECKING but is running with assert_enabled false.

18 years agoModify AtEOXact_CatCache and AtEOXact_RelationCache to assume that the
Tom Lane [Mon, 8 Aug 2005 19:17:23 +0000 (19:17 +0000)]
Modify AtEOXact_CatCache and AtEOXact_RelationCache to assume that the
ResourceOwner mechanism already released all reference counts for the
cache entries; therefore, we do not need to scan the catcache or relcache
at transaction end, unless we want to do it as a debugging crosscheck.
Do the crosscheck only in Assert mode.  This is the same logic we had
previously installed in AtEOXact_Buffers to avoid overhead with large
numbers of shared buffers.  I thought it'd be a good idea to do it here
too, in view of Kari Lavikka's recent report showing a real-world case
where AtEOXact_CatCache is taking a significant fraction of runtime.

18 years agoCygwin no longer needs to hack SHLIB_LINK, now that Rocco Altier
Tom Lane [Mon, 8 Aug 2005 03:35:13 +0000 (03:35 +0000)]
Cygwin no longer needs to hack SHLIB_LINK, now that Rocco Altier
fixed the contrib library inclusions properly.

18 years agoCause ShutdownPostgres to do a normal transaction abort during backend
Tom Lane [Mon, 8 Aug 2005 03:12:16 +0000 (03:12 +0000)]
Cause ShutdownPostgres to do a normal transaction abort during backend
exit, instead of trying to take shortcuts.  Introduce some additional
shutdown callback routines to eliminate kluges like having ProcKill
be responsible for shutting down the buffer manager.  Ensure that the
order of operations during shutdown is predictable and what you would
expect given the module layering.

18 years agoSet shlib naming convention on Cygwin to 'cygFOO.dll', which appears
Tom Lane [Sun, 7 Aug 2005 19:02:08 +0000 (19:02 +0000)]
Set shlib naming convention on Cygwin to 'cygFOO.dll', which appears
to be the platform standard.  This should fix recursive-rule breakage
due to recent Makefile changes.  Per discussion.

18 years agoFix count_usable_fds() to stop trying to open files once it reaches
Tom Lane [Sun, 7 Aug 2005 18:47:19 +0000 (18:47 +0000)]
Fix count_usable_fds() to stop trying to open files once it reaches
max_files_per_process.  Going further than that is just a waste of
cycles, and it seems that current Cygwin does not cope gracefully
with deliberately running the system out of FDs.  Per Andrew Dunstan.

18 years agoCOPY performance improvements. Avoid calling CopyGetData for each input
Tom Lane [Sat, 6 Aug 2005 20:41:58 +0000 (20:41 +0000)]
COPY performance improvements.  Avoid calling CopyGetData for each input
character, tighten the inner loops of CopyReadLine and CopyReadAttribute,
arrange to parse out all the attributes of a line in just one call instead
of one CopyReadAttribute call per attribute, be smarter about which client
encodings require slow pg_encoding_mblen() loops.  Also, clean up the
mishmash of static variables and overly-long parameter lists in favor of
passing around a single CopyState struct containing all the state data.
Original patch by Alon Goldshuv, reworked by Tom Lane.

18 years agoActually, this macro had worse problems than a bogus name ...
Tom Lane [Fri, 5 Aug 2005 15:01:48 +0000 (15:01 +0000)]
Actually, this macro had worse problems than a bogus name ...

18 years agoFix misspelled macro name. Doesn't appear to be used anywhere yet,
Tom Lane [Fri, 5 Aug 2005 14:36:43 +0000 (14:36 +0000)]
Fix misspelled macro name.  Doesn't appear to be used anywhere yet,
so no one noticed.

18 years agoALTER TABLE OWNER must change the ownership of the table's rowtype too.
Tom Lane [Thu, 4 Aug 2005 01:09:29 +0000 (01:09 +0000)]
ALTER TABLE OWNER must change the ownership of the table's rowtype too.
This was not especially critical before, but it is now that we track
ownership dependencies --- the dependency for the rowtype *must* shift
to the new owner.  Spotted by Bernd Helmle.
Also fix a problem introduced by recent change to allow non-superusers
to do ALTER OWNER in some cases: if the table had a toast table, ALTER
OWNER failed *even for superusers*, because the test being applied would
conclude that the new would-be owner had no create rights on pg_toast.
A side-effect of the fix is to disallow changing the ownership of indexes
or toast tables separately from their parent table, which seems a good
idea on the whole.

18 years agoDone:
Bruce Momjian [Wed, 3 Aug 2005 01:46:25 +0000 (01:46 +0000)]
Done:

< * Prevent inherited tables from expanding temporary subtables of other
> * -Prevent inherited tables from expanding temporary subtables of other

18 years agoTweak BgBufferSync() so that a persistent write error on a dirty buffer
Tom Lane [Tue, 2 Aug 2005 20:52:08 +0000 (20:52 +0000)]
Tweak BgBufferSync() so that a persistent write error on a dirty buffer
doesn't block the bgwriter from making progress writing out other buffers.
This was a hard problem in the context of the ARC/2Q design, but it's
trivial in the context of clock sweep ... just advance the sweep counter
before we try to write not after.

18 years agoPrevent planner from including temp tables of other backends when expanding
Tom Lane [Tue, 2 Aug 2005 20:27:45 +0000 (20:27 +0000)]
Prevent planner from including temp tables of other backends when expanding
an inheritance tree.  Per recent discussions.

18 years agoClean up CREATE DATABASE processing to make it more robust and get rid
Tom Lane [Tue, 2 Aug 2005 19:02:32 +0000 (19:02 +0000)]
Clean up CREATE DATABASE processing to make it more robust and get rid
of special case for Windows port.  Put a PG_TRY around most of createdb()
to ensure that we remove copied subdirectories on failure, even if the
failure happens while creating the pg_database row.  (I think this explains
Oliver Siegmar's recent report.)  Having done that, there's no need for
the fragile assumption that copydir() mustn't ereport(ERROR), so simplify
its API.  Eliminate the old code that used system("cp ...") to copy
subdirectories, in favor of using copydir() on all platforms.  This not
only should allow much better error reporting, but allows us to fsync
the created files before trusting that the copy has succeeded.

18 years agoCode and docs review for pg_column_size() patch.
Tom Lane [Tue, 2 Aug 2005 16:11:57 +0000 (16:11 +0000)]
Code and docs review for pg_column_size() patch.

18 years agoUse ReadDir() not readdir() so as to have some modicum of error checking.
Tom Lane [Tue, 2 Aug 2005 15:17:24 +0000 (15:17 +0000)]
Use ReadDir() not readdir() so as to have some modicum of error checking.