Commit Graph

22398 Commits

Author SHA1 Message Date
Tom Lane
a43974c6ba Code review for contrib/pg_freespacemap. Add a storedpages column to
pg_freespacemap_relations --- while one could theoretically get that
number by counting rows in pg_freespacemap_pages, it's surely the hard
way to do it.  Avoid expensive and inconvenient conversion to and from
text format.  Minor code and docs cleanup.
2006-05-04 20:39:34 +00:00
Tom Lane
46287bd660 Simplify relcache startup sequence. With the new design of InitPostgres
it's not necessary to have three separate calls anymore.  This patch also
fixes things so we don't try to read pg_internal.init until after we've
obtained lock on the target database; which was fairly harmless, but it's
certainly cleaner this way.
2006-05-04 18:51:36 +00:00
Tom Lane
52667d56a3 Rethink the locking mechanisms used for CREATE/DROP/RENAME DATABASE.
The former approach used ExclusiveLock on pg_database, which being a
cluster-wide lock meant only one of these operations could proceed at
a time; worse, it also blocked all incoming connections in ReverifyMyDatabase.
Now that we have LockSharedObject(), we can use locks of different types
applied to databases considered as objects.  This allows much more
flexible management of the interlocking: two CREATE DATABASEs need not
block each other, and need not block connections except to the template
database being used.  Similarly DROP DATABASE doesn't block unrelated
operations.  The locking used in flatfiles.c is also much narrower in
scope than before.  Per recent proposal.
2006-05-04 16:07:29 +00:00
Tom Lane
cb98e6fb8f Create a syscache for pg_database-indexed-by-oid, and make use of it
in various places that were previously doing ad hoc pg_database searches.
This may speed up database-related privilege checks a little bit, but
the main motivation is to eliminate the performance reason for having
ReverifyMyDatabase do such a lot of stuff (viz, avoiding repeat scans
of pg_database during backend startup).  The locking reason for having
that routine is about to go away, and it'd be good to have the option
to break it up.
2006-05-03 22:45:26 +00:00
Teodor Sigaev
5320c6cf6b Make GIN opclass worked with intarray extensions 2006-05-03 16:31:07 +00:00
Teodor Sigaev
2a58f3bff6 Fix typo noticed by Alvaro Herrera 2006-05-03 06:56:47 +00:00
Tom Lane
f4923880b3 Fix calculation of plan node extParams to account for the possibility that one
initPlan sets a parameter for another.  This could not (I think) happen before
8.1, but it's possible now because the initPlans generated by MIN/MAX
optimization might themselves use initPlans.  We attach those initPlans as
siblings of the MIN/MAX ones, not children, to avoid duplicate computation
when multiple MIN/MAX aggregates are present; so this leads to the case of an
initPlan needing the result of a sibling initPlan, which is not possible with
ordinary query nesting.  Hadn't been noticed because in most contexts having
too much stuff listed in extParam is fairly harmless.  Fixes "plan should not
reference subplan's variable" bug reported by Catalin Pitis.
2006-05-03 00:24:56 +00:00
Tom Lane
e57345975c Clean up API for ambulkdelete/amvacuumcleanup as per today's discussion.
This formulation requires every AM to provide amvacuumcleanup, unlike before,
but it's surely a whole lot cleaner.  Also, add an 'amstorage' column to
pg_am so that we can get rid of hardwired knowledge in DefineOpClass().
2006-05-02 22:25:10 +00:00
Tom Lane
d3171dd64b Fix broken markup. 2006-05-02 18:07:51 +00:00
Tom Lane
67030eec1e Suppress some gcc warnings. 2006-05-02 15:48:11 +00:00
Tom Lane
2610a1fd5e Fix grammar of new error message. 2006-05-02 15:45:37 +00:00
Teodor Sigaev
2bee77e600 Add GIN opclases for another types 2006-05-02 15:23:16 +00:00
Teodor Sigaev
8a3631f8d8 GIN: Generalized Inverted iNdex.
text[], int4[], Tsearch2 support for GIN.
2006-05-02 11:28:56 +00:00
Tom Lane
427c6b5b98 Avoid assuming that statistics for a parent relation reflect the properties of
the union of its child relations as well.  This might have been a good idea
when it was originally coded, but it's a fatally bad idea when inheritance is
being used for partitioning.  It's better to have no stats at all than
completely misleading stats.  Per report from Mark Liberman.

The bug arguably exists all the way back, but I've only patched HEAD and 8.1
because we weren't particularly trying to support partitioning before 8.1.

Eventually we ought to look at deriving union statistics instead of just
punting, but for now the drop kick looks good.
2006-05-02 04:34:18 +00:00
Tom Lane
a65a49429f Provide a namespace.c function for lookup of an operator with exact
input datatypes given, and use this before trying OpernameGetCandidates.
This is faster than the old method when there's an exact match, and it
does not seem materially slower when there's not.  And it definitely
makes some of the callers cleaner, because they didn't really want to
know about a list of candidates anyway.  Per discussion with Atsushi Ogawa.
2006-05-01 23:22:43 +00:00
Tom Lane
82a2881c5b Code review for GRANT CONNECT patch. Spell the privilege as CONNECT not
CONNECTION, fix a number of places that were missed (eg pg_dump support),
avoid executing an extra search of pg_database during startup.
2006-04-30 21:15:33 +00:00
Tom Lane
986085a7f0 Improve the representation of FOR UPDATE/FOR SHARE so that we can
support both FOR UPDATE and FOR SHARE in one command, as well as both
NOWAIT and normal WAIT behavior.  The more general code is actually
simpler and cleaner.
2006-04-30 18:30:40 +00:00
Bruce Momjian
931bfc9664 Done:
> 	o -Allow per-database permissions to be set via GRANT
2006-04-30 02:10:41 +00:00
Bruce Momjian
4899aaf2d5 Add GRANT CONNECTION ON DATABASE, to be used in addition to pg_hba.conf.
Gevik Babakhani
2006-04-30 02:09:07 +00:00
Bruce Momjian
87db3ad078 Add question mark:
> * %Disallow changing default expression of a SERIAL column?
2006-04-30 01:45:26 +00:00
Bruce Momjian
782df58a1c Revert patch pending more discussion:
Disallow changing DEFAULT expression of a SERIAL column.
2006-04-30 01:08:07 +00:00
Tom Lane
366682fb66 Remove sema.c, superseded by win32_sema.c. 2006-04-29 20:52:56 +00:00
Tom Lane
f0df096785 Rearrange some configure.in comments for better readability.
Commit configure and pg_config.h.in, missed in last configure.in
update.
2006-04-29 20:47:31 +00:00
Tom Lane
de762468aa We only need to add thread.c on non-WIN32 platforms, since get_home_path
doesn't use pqGetpwuid on WIN32.  Rather than try to figure out why it
won't build on WIN32, just remove it.
2006-04-29 20:13:07 +00:00
Bruce Momjian
c6ef426f67 Done:
> * -Disallow changing default expression of a SERIAL column
2006-04-29 16:44:31 +00:00
Bruce Momjian
a0a0512182 Disallow changing DEFAULT expression of a SERIAL column.
Dhanaraj M
2006-04-29 16:43:54 +00:00
Bruce Momjian
908f317b73 Add Win32 semaphore implementation, rather than mimicking SysV
semaphores.

Qingqing Zhou
2006-04-29 16:34:41 +00:00
Bruce Momjian
291724dfa8 Solaris tas() uses 'int' now.
Theo Schlossnagle
2006-04-29 11:55:19 +00:00
Bruce Momjian
61091ec267 Intel compiler has a bug/misoptimization in checking for division by NAN
(NaN == 0), -mp1 fixes it, so add it to the CFLAGS.  Autoconf run.

Jeremy Drake
2006-04-29 00:51:41 +00:00
Bruce Momjian
a1ee621589 Fix s_lock_test to use tas.o file, if needed. 2006-04-28 22:54:31 +00:00
Tom Lane
53ee9f52ce Remove the restriction originally coded into optimize_minmax_aggregates() that
MIN/MAX not be converted to use an index if the query WHERE clause contains
any volatile functions or subplans.

I had originally feared that the conversion might alter the behavior of such a
query with respect to a volatile function.  Well, so it might, but only in the
sense that the function would get evaluated at a subset of the table rows
rather than all of them --- and we have never made any such guarantee anyway.
(For instance, we don't refuse to use an index for an ordinary non-aggregate
query when one of the non-indexable filter conditions contains a volatile
function.)

The prohibition against subplans was because of worry that that case wasn't
adequately tested, which it wasn't, but it turns out to be possible to make
8.1 fail anyway:

regression=# select o.ten, (select max(unique2) from tenk1 i where ten = o.ten
or ten = (select f1 from int4_tbl limit 1)) from tenk1 o;
ERROR:  direct correlated subquery unsupported as initplan

This is due to bogus code in SS_make_initplan_from_plan (it's an initplan,
ergo it can't have any parParams).  Having fixed that, we might as well allow
subplans as well as initplans.
2006-04-28 20:57:49 +00:00
Bruce Momjian
4c5eb2c2cb Modify Solaris compiler build rules to use the cpp preprocessor, the the
x86 file.
2006-04-28 17:09:16 +00:00
Bruce Momjian
83b692d9bb Darin -> Darwin. 2006-04-28 04:39:41 +00:00
Bruce Momjian
e81b7b1dac Remove extra 'else' in solaris compiler code. 2006-04-28 04:32:10 +00:00
Bruce Momjian
dfec2b070d Remove "volatile" from tas function, per TOm. 2006-04-28 03:43:19 +00:00
Bruce Momjian
9fc69d669e Update list of platforms that have a list of exported symbols. 2006-04-28 02:59:11 +00:00
Tom Lane
1e7bb2da57 Arrange to strip libpq.so of symbols that aren't officially supposed to
be exported on Linux and Darwin.  We already did this on Windows but
that's not enough, as evidenced by the fact that libecpg had an unexpected
dependency on one such symbol.  We should try to do it on more platforms.
Fix ecpg's oversight, and bump libpq's major .so version number to reflect
the unwanted but nonetheless real ABI break.
2006-04-28 02:53:20 +00:00
Bruce Momjian
35a0601d0a Add info on pgport linking requirements. 2006-04-28 02:52:57 +00:00
Bruce Momjian
128bed948f Rewrite Solaris compiler tas() assembly routines, merge i386 and x86_64
assembler files, renamed as solaris_x86.s.

Theo Schlossnagle
2006-04-27 22:28:42 +00:00
Tom Lane
4ade4fe422 Fix ltreeparentsel so it actually works ... 2006-04-27 18:24:35 +00:00
Tom Lane
0f0a33099c Generalize mcv_selectivity() to support both VAR OP CONST and CONST OP VAR
cases.  This was not needed in the existing uses within selfuncs.c, but if
we're gonna export it for general use, the extra generality seems helpful.
Motivated by looking at ltree example.
2006-04-27 17:52:40 +00:00
Bruce Momjian
afab814a18 Change log message about vacuuming database name from LOG to DEBUG1.
Prevents duplicate meaningless log messsages.
2006-04-27 15:57:10 +00:00
Bruce Momjian
87f00a4694 Add to item log_min_error_messages item:
>   Another idea is to allow separate configuration files for each module,
>   or allow arbitrary SET commands to be passed to them.
2006-04-27 15:56:17 +00:00
Bruce Momjian
2fddd23b56 On second thought, keep SSL CRL as a log, and wait for feedback from 8.2. 2006-04-27 15:35:15 +00:00
Bruce Momjian
d440c5b49d Downgrade SSL CRL file missing message from LOG to DEBUG1. 2006-04-27 15:25:04 +00:00
Bruce Momjian
0a6990e4dc Turn off strict aliasing when using AIX xlc compiler.
autoconf run.
2006-04-27 14:27:04 +00:00
Bruce Momjian
203592dd88 Revert patch, causing plpython regression failues:
> >> >> > 1) named parameters additionally to args[]
> >> >> > 2) return composite-types from plpython as dictionary
> >> >> > 3) return result-set from plpython as list, iterator or generator
2006-04-27 14:18:07 +00:00
Bruce Momjian
8f10768feb Tab alignment cleanup. 2006-04-27 14:02:36 +00:00
Bruce Momjian
317ce6269a Add underscores to SSL CERT macro names, for clarity and consistency
with be-secure.c.
2006-04-27 14:01:46 +00:00
Bruce Momjian
2882241c23 Add SSL include needed for psql, after libpq adjustments. 2006-04-27 02:58:08 +00:00