Tom Lane [Fri, 26 Aug 2005 03:08:15 +0000 (03:08 +0000)]
Arrange for indexes and toast tables to inherit their ownership from
the parent table, even if the command that creates them is executed by
someone else (such as a superuser or a member of the owning role).
Per gripe from Michael Fuhr.
Tom Lane [Thu, 25 Aug 2005 05:01:43 +0000 (05:01 +0000)]
Factor out the common subexpression month_remainder * DAYS_PER_MONTH
in interval_mul and interval_div. This avoids an optimization bug
in A Certain Company's compiler (and given their explanation, I wouldn't
be surprised if other compilers blow it too). Besides the code seems
more clear this way --- in the original formulation, you had to mentally
recognize the common subexpression in order to understand what was going
on.
Tom Lane [Thu, 25 Aug 2005 02:22:59 +0000 (02:22 +0000)]
Original assumption that our own getaddrinfo routine would never support
IPv6 is obsoleted by recent Windows patch. Perform the runtime test
whenever HAVE_IPV6 is set. This should be OK since initdb can get
getaddrinfo from libpgport if needed.
Tom Lane [Wed, 24 Aug 2005 22:13:23 +0000 (22:13 +0000)]
Add code to use Windows getaddrinfo and friends if they exist. This
has to be tested dynamically if we want to make portable executables.
Chuck McDevitt and Andrew Dunstan.
Tom Lane [Wed, 24 Aug 2005 20:20:38 +0000 (20:20 +0000)]
Back off allow_nonpic_in_shlib for FreeBSD builds: only set it on i386.
This might be overly conservative, but we know it does not work on amd64.
Per buildfarm results.
Bruce Momjian [Wed, 24 Aug 2005 19:43:26 +0000 (19:43 +0000)]
Update:
< Currently, if a variable is commented out, it keeps the
< previous uncommented value until a server restarted.
> Currently, if a variable is commented out, it keeps the
> previous uncommented value until a server restarted.
> Logically, a reload should set the same values as a
> server restart.
Tom Lane [Wed, 24 Aug 2005 18:16:58 +0000 (18:16 +0000)]
Fix up plperl 'use_strict' so that it can be enabled or disabled on the
fly. Fix problem with incompletely duplicated setup code. Andrew Dunstan,
from an idea of Michael Fuhr's.
Tom Lane [Wed, 24 Aug 2005 17:50:00 +0000 (17:50 +0000)]
Add small hack to support use of Unicode-based locales on WIN32. This
is not adequately tested yet, but let's get it into beta1 so it can be
tested. Magnus Hagander and Tom Lane.
Tom Lane [Wed, 24 Aug 2005 17:38:35 +0000 (17:38 +0000)]
Fix ExecBRDeleteTriggers so that deletion is not suppressed when delete
triggers exist but are all disabled. Problem noted by Gavin Sherry in
original discussion of enable/disable trigger patch, but was never
addressed.
Michael Meskes [Wed, 24 Aug 2005 10:34:19 +0000 (10:34 +0000)]
- Check for NULL before checking whether argument is an array.
- Remove stary character from string quoting.
- Fixed check to report missing varchar pointer implementation.
Bruce Momjian [Tue, 23 Aug 2005 23:51:18 +0000 (23:51 +0000)]
Mark item as complete, add another:
< * Allow triggers to be disabled [trigger]
> * -Allow triggers to be disabled [trigger]
> * Allow triggers to be disabled in only the current session.
< Currently the only way to disable triggers is to modify the system
< tables.
> This is currently possible by starting a multi-statement transaction,
> modifying the system tables, performing the desired SQL, restoring the
> system tables, and committing the transaction. ALTER TABLE ...
> TRIGGER requires a table lock so it is not idea for this usage.
Tom Lane [Tue, 23 Aug 2005 22:40:47 +0000 (22:40 +0000)]
Add ALTER TABLE ENABLE/DISABLE TRIGGER commands. Change pg_dump to
use these instead of its previous hack of changing pg_class.reltriggers.
Documentation is lacking, will add that later.
Patch by Satoshi Nagayasu, review and some extra work by Tom Lane.
Bruce Momjian [Tue, 23 Aug 2005 21:02:05 +0000 (21:02 +0000)]
The attached patch updates the thread test program to run stand-alone on
Windows. The test itself is bypassed in configure as discussed, and
libpq has been updated appropriately to allow it to build in thread-safe
mode.
Tom Lane [Tue, 23 Aug 2005 20:49:47 +0000 (20:49 +0000)]
Clean up some very old and crufty code for TID scan planning. Not much
functional difference really, but make use of stuff added to the planner
since this code was touched last.
Tom Lane [Mon, 22 Aug 2005 23:59:04 +0000 (23:59 +0000)]
Rewrite gather-write patch into something less obviously bolted on
after the fact. Fix bug with incorrect test for whether we are at end
of logfile segment. Arrange for writes triggered by XLogInsert's
is-cache-more-than-half-full test to synchronize with the cache boundaries,
so that in long transactions we tend to write alternating halves of the
cache rather than randomly chosen portions of it; this saves one more
write syscall per cache load.
Tom Lane [Mon, 22 Aug 2005 19:40:37 +0000 (19:40 +0000)]
Cause ALTER INDEX OWNER to generate a warning and do nothing, rather than
erroring out as it has done for the last couple weeks. Document that this
form is now ignored because indexes can't usefully have different owners
from their parent tables. Fix pg_dump to not generate ALTER OWNER commands
for indexes.
Tom Lane [Mon, 22 Aug 2005 17:38:20 +0000 (17:38 +0000)]
Fix unwanted denial of ALTER OWNER rights to superusers. There was some
discussion of getting around this by relaxing the checks made for regular
users, but I'm disinclined to toy with the security model right now,
so just special-case it for superusers where needed.
Bruce Momjian [Mon, 22 Aug 2005 16:59:47 +0000 (16:59 +0000)]
Improve xid wraparound message (the server isn't really shut down, just
not accepting queries).
errmsg("database is not accepting queries to avoid
wraparound data loss in database \"%s\"",
errhint("Stop the postmaster and use a standalone
backend to VACUUM database \"%s\".",
Tom Lane [Mon, 22 Aug 2005 16:27:36 +0000 (16:27 +0000)]
Use an initdb-time test to see if the local version of getaddrinfo()
chokes on IPv6 addresses, and comment out the IPv6 entry in the default
pg_hba.conf if so. Per Andrew Dunstan.
Tom Lane [Mon, 22 Aug 2005 00:41:28 +0000 (00:41 +0000)]
Fix some inconsistent choices of datatypes in xlog.c. Make buffer
indexes all be int, rather than variously int, uint16 and uint32;
add some casts where necessary to support large buffer arrays.
Tom Lane [Sun, 21 Aug 2005 03:39:37 +0000 (03:39 +0000)]
Minor GUC cleanups: document krb_server_hostname and custom_variable_classes
in postgresql.conf.sample, mark custom_variable_classes as SIGHUP not
POSTMASTER to agree with the documentation (I can't see a reason it has
to be POSTMASTER so I think the docs are right).
Tom Lane [Sat, 20 Aug 2005 23:26:37 +0000 (23:26 +0000)]
Convert the arithmetic for shared memory size calculation from 'int'
to 'Size' (that is, size_t), and install overflow detection checks in it.
This allows us to remove the former arbitrary restrictions on NBuffers
etc. It won't make any difference in a 32-bit machine, but in a 64-bit
machine you could theoretically have terabytes of shared buffers.
(How efficiently we could manage 'em remains to be seen.) Similarly,
num_temp_buffers, work_mem, and maintenance_work_mem can be set above
2Gb on a 64-bit machine. Original patch from Koichi Suzuki, additional
work by moi.
Tom Lane [Sat, 20 Aug 2005 19:19:21 +0000 (19:19 +0000)]
Invoke mksafefunc and mkunsafefunc with :: decoration. This seems a good
idea on consistency grounds, whether or not it really fixes bug #1831.
Michael Fuhr
Tom Lane [Sat, 20 Aug 2005 00:40:32 +0000 (00:40 +0000)]
Repair problems with VACUUM destroying t_ctid chains too soon, and with
insufficient paranoia in code that follows t_ctid links. (We must do both
because even with VACUUM doing it properly, the intermediate state with
a dangling t_ctid link is visible concurrently during lazy VACUUM, and
could be seen afterwards if either type of VACUUM crashes partway through.)
Also try to improve documentation about what's going on. Patch is a bit
bulky because passing the XMAX information around required changing the
APIs of some low-level heapam.c routines, but it's not conceptually very
complicated. Per trouble report from Teodor and subsequent analysis.
This needs to be back-patched, but I'll do that after 8.1 beta is out.
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.
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.
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.