Commit Graph

26662 Commits

Author SHA1 Message Date
Bruce Momjian
a464dc07fe Update URLs for dead space map. 2008-04-11 19:14:57 +00:00
Bruce Momjian
3fa352da28 Fix main README typo.
Brendan Jurd
2008-04-11 16:09:33 +00:00
Tom Lane
4e82a95476 Replace "amgetmulti" AM functions with "amgetbitmap", in which the whole
indexscan always occurs in one call, and the results are returned in a
TIDBitmap instead of a limited-size array of TIDs.  This should improve
speed a little by reducing AM entry/exit overhead, and it is necessary
infrastructure if we are ever to support bitmap indexes.

In an only slightly related change, add support for TIDBitmaps to preserve
(somewhat lossily) the knowledge that particular TIDs reported by an index
need to have their quals rechecked when the heap is visited.  This facility
is not really used yet; we'll need to extend the forced-recheck feature to
plain indexscans before it's useful, and that hasn't been coded yet.
The intent is to use it to clean up 8.3's horrid @@@ kluge for text search
with weighted queries.  There might be other uses in future, but that one
alone is sufficient reason.

Heikki Linnakangas, with some adjustments by me.
2008-04-10 22:25:26 +00:00
Bruce Momjian
f260edb144 Add TODO URLs moved from open items queue:
>   http://archives.postgresql.org/pgsql-hackers/2007-03/msg00265.php
>   http://archives.postgresql.org/pgsql-hackers/2007-03/msg01214.php
>   http://archives.postgresql.org/pgsql-patches/2007-05/msg00013.php
>   http://archives.postgresql.org/pgsql-hackers/2007-07/msg00741.php
>   http://archives.postgresql.org/pgsql-hackers/2007-08/msg00014.php
>   http://archives.postgresql.org/pgsql-hackers/2007-08/msg00487.php
> * Allow index scans to return matching index keys
>
>   http://archives.postgresql.org/pgsql-hackers/2007-03/msg01079.php
>
>   http://archives.postgresql.org/pgsql-patches/2007-10/msg00166.php
>   http://archives.postgresql.org/pgsql-patches/2008-01/msg00049.php
2008-04-10 18:58:15 +00:00
Magnus Hagander
47a19a495d Create wrapper pgwin32_safestat() and redefine stat() to it
on win32, because the stat() function in the runtime cannot
be trusted to always update the st_size field.

Per report and research by Sergey Zubkovsky.
2008-04-10 16:58:51 +00:00
Magnus Hagander
a57a1e61a1 Make parameters in implementation have same const:ness as the ones in
the prototype. Silences msvc build warning.
2008-04-10 15:20:52 +00:00
Alvaro Herrera
e863951a59 Remove mention of DBD::PgSPI, which is unmaintained and generally unnecessary. 2008-04-10 15:16:46 +00:00
Alvaro Herrera
66782364a1 Mention pg_backend_pid() in the system information section in addition
to the monitoring section.

Jim Nasby
2008-04-10 13:34:33 +00:00
Michael Meskes
02b2bc7907 PGTYPEStimestamp_sub should use the values and not the pointers to substract. 2008-04-10 10:43:35 +00:00
Bruce Momjian
d44523638a Document that continuous archiving backup can be used for cases where
you can't get a simultaneous snapshot.
2008-04-09 02:52:04 +00:00
Bruce Momjian
2662e03b64 Update text FAQ. 2008-04-09 01:04:08 +00:00
Bruce Momjian
91509e6a87 Small wording improvements for source code READMEs. 2008-04-09 01:00:46 +00:00
Bruce Momjian
4d048b7b8b Revert README cleanups. 2008-04-09 00:59:24 +00:00
Bruce Momjian
8cb3ad9f52 Revert sentence removal from nickname in FAQ. 2008-04-09 00:55:30 +00:00
Bruce Momjian
20c5542c8b Remove mention of the Berkeley origins of the alias "Postgres" ---
seems unnecessary to mention in the FAQ, per discussion on IRC.
2008-04-09 00:44:07 +00:00
Tom Lane
635aaab278 Fix tsvector_update_trigger() to be domain-friendly: it needs to allow all
the columns it works with to be domains over the expected type, not just
exactly the expected type.  In passing, fix ts_stat() the same way.
Per report from Markus Wollny.
2008-04-08 18:20:29 +00:00
Peter Eisentraut
db5f60cb18 On cygwin and win32, don't override the shlib name when building a module.
Should fix regression test failures on those platforms.
2008-04-08 09:50:29 +00:00
Magnus Hagander
bb6f1eb9df Make integer_datetimes the default on msvc as well, to have the same
default as other platforms.
2008-04-08 07:50:41 +00:00
Peter Eisentraut
64e31b4f82 Always define stlib, since some platforms need it for building modules.
Should fix build failures on AIX.
2008-04-07 23:08:15 +00:00
Peter Eisentraut
46e76373ec Implement a few changes to how shared libraries and dynamically loadable
modules are built.  Foremost, it creates a solid distinction between these two
types of targets based on what had already been implemented and duplicated in
ad hoc ways before.  Specifically,

- Dynamically loadable modules no longer get a soname.  The numbers previously
set in the makefiles were dummy numbers anyway, and the presence of a soname
upset a few packaging tools, so it is nicer not to have one.

- The cumbersome detour taken on installation (build a libfoo.so.0.0.0 and
then override the rule to install foo.so instead) is removed.

- Lots of duplicated code simplified.
2008-04-07 14:15:58 +00:00
Bruce Momjian
8deafd6fdf Add to TODO:
>
> 	o Add ability to obfuscate function bodies
>
> 	  http://archives.postgresql.org/pgsql-patches/2008-01/msg00125.php
2008-04-07 02:14:14 +00:00
Bruce Momjian
a84171b078 Add documentation clarification for IS [NOT] NULL and row-valued
expressions.
2008-04-07 00:51:27 +00:00
Tom Lane
347dd6a1cf Make plpgsql support FOR over a query specified by a cursor declaration,
for improved compatibility with Oracle.

Pavel Stehule, with some fixes by me.
2008-04-06 23:43:29 +00:00
Tom Lane
2604359251 Improve hash_any() to use word-wide fetches when hashing suitably aligned
data.  This makes for a significant speedup at the cost that the results
now vary between little-endian and big-endian machines; which forces us
to add explicit ORDER BYs in a couple of regression tests to preserve
machine-independent comparison results.  Also, force initdb by bumping
catversion, since the contents of hash indexes will change (at least on
big-endian machines).

Kenneth Marshall and Tom Lane, based on work from Bob Jenkins.  This commit
does not adopt Bob's new faster mix() algorithm, however, since we still need
to convince ourselves that that doesn't degrade the quality of the hashing.
2008-04-06 16:54:49 +00:00
Tom Lane
d785b39fbf A small visit from the portability and localization police. 2008-04-05 03:40:15 +00:00
Bruce Momjian
470b2dc35d Make dblink_current_query() reference pg_catalog.current_query(), per Tom. 2008-04-05 02:44:42 +00:00
Bruce Momjian
67fe107554 Re-add dblink_current_query() for backward compatibility. 2008-04-05 02:26:14 +00:00
Tom Lane
ceb5db69d4 Defend against JOINs having more than 32K columns altogether. We cannot
currently support this because we must be able to build Vars referencing
join columns, and varattno is only 16 bits wide.  Perhaps this should be
improved in future, but considering that it never came up before, I'm not
sure the problem is worth much effort.  Per bug #4070 from Marcello
Ceschia.

The problem seems largely academic in 8.0 and 7.4, because they have
(different) O(N^2) performance issues with such wide joins, but
back-patch all the way anyway.
2008-04-05 01:58:20 +00:00
Bruce Momjian
2a1cf97c22 Have pg_stop_backup() wait for all archive files to be sent, rather than
returing right away.  This guarantees that when pg_stop_backup()
returns, you have a valid backup.

Simon Riggs
2008-04-05 01:34:06 +00:00
Tom Lane
a0fad9762a Re-implement division for numeric values using the traditional "schoolbook"
algorithm.  This is a good deal slower than our old roundoff-error-prone
code for long inputs, so we keep the old code for use in the transcendental
functions, where everything is approximate anyway.  Also create a
user-accessible function div(numeric, numeric) to provide access to the
exact result of trunc(x/y) --- since the regular numeric / operator will
round off its result, simply computing that expression in SQL doesn't
reliably give the desired answer.  This fixes bug #3387 and various related
corner cases, and improves the usefulness of PG for high-precision integer
arithmetic.
2008-04-04 18:45:36 +00:00
Bruce Momjian
b6f0ad4b0e Have psql command 'help' suggest the use of \?, updated version.
Greg Sabino Mullane
2008-04-04 18:00:25 +00:00
Bruce Momjian
dc565af454 Allow 'help' in psql to show \? help, for novice assistance.
Greg Sabino Mullane
2008-04-04 17:42:43 +00:00
Tom Lane
a051ab0a80 Remove no-longer-used function assign_backslash_quote() 2008-04-04 17:25:23 +00:00
Bruce Momjian
4f22db501e Remove unneed #include now that current_query() has moved to the backend. 2008-04-04 17:02:56 +00:00
Bruce Momjian
f96928fde9 Implement current_query(), that shows the currently executing query.
At the same time remove dblink/dblink_current_query() as it is no longer
necessary
*BACKWARD COMPATIBILITY ISSUE* for dblink

Tomas Doran
2008-04-04 16:57:21 +00:00
Magnus Hagander
cfaf8b6b67 Oops, change should go in scan.l to survive a clean checkout and not just
a make clean...
2008-04-04 12:44:36 +00:00
Magnus Hagander
2288d646a6 Convert backslash_quote guc to use enum. 2008-04-04 11:47:19 +00:00
Magnus Hagander
d672ea6ffa Turn xmlbinary and xmloption GUC variables into enumsTurn xmlbinary and
xmloption GUC variables into enums..
2008-04-04 08:33:15 +00:00
Tom Lane
55f6e5f689 Add a variant of the Levenshtein string-distance function that lets the user
specify the cost values to use, instead of always using 1's.
Volkan Yazici

In passing, remove fuzzystrmatch.h, which contained a bunch of stuff that had
no business being in a .h file; fold it into its only user, fuzzystrmatch.c.
2008-04-03 21:13:07 +00:00
Bruce Momjian
bbe48195ab Add Wiki URLs for:
< * Allow encoding on a per-column basis optionally using the ICU library

>   http://wiki.postgresql.org/wiki/Todo:Collate
>   http://wiki.postgresql.org/wiki/Todo:ICU
2008-04-03 18:14:02 +00:00
Tom Lane
b03271590e Remove heap_release_fetch, which is no longer used anywhere; this simplifies
heap_fetch a little.
2008-04-03 17:12:27 +00:00
Bruce Momjian
d3bf8c7097 Add to TODO:
> * Improve how ANALYZE computes in-doubt tuples
>
>   http://archives.postgresql.org/pgsql-hackers/2007-11/msg00771.php
>
2008-04-03 16:37:07 +00:00
Tom Lane
51e1445f10 Teach ANALYZE to distinguish dead and in-doubt tuples, which it formerly
classed all as "dead"; also get it to count DEAD item pointers as dead rows,
instead of ignoring them as before.  Also improve matters so that tuples
previously inserted or deleted by our own transaction are handled nicely:
the stats collector's live-tuple and dead-tuple counts will end up correct
after our transaction ends, regardless of whether we end in commit or abort.

While there's more work that could be done to improve the counting of in-doubt
tuples in both VACUUM and ANALYZE, this commit is enough to alleviate some
known bad behaviors in 8.3; and the other stuff that's been discussed seems
like research projects anyway.

Pavan Deolasee and Tom Lane
2008-04-03 16:27:25 +00:00
Magnus Hagander
f1e0d5a8ca Oops, add proper #ifdef for systems without support for syslog.
Per buildfarm member mastodon.
2008-04-03 13:25:02 +00:00
Peter Eisentraut
ec0be6073a Remove -C from rsync call, because it omits directories named "core". 2008-04-03 09:52:03 +00:00
Magnus Hagander
409e386be0 Convert syslog_facility guc to enum type. 2008-04-03 09:21:15 +00:00
Bruce Momjian
b011c5ff6a Add URLs for:
* Add SQL:2003 WITH RECURSIVE (hierarchical) queries to SELECT

>   http://archives.postgresql.org/pgsql-patches/2008-01/msg00105.php
>   http://archives.postgresql.org/pgsql-patches/2008-03/msg00327.php
2008-04-03 01:56:04 +00:00
Tom Lane
1591fcbec7 Revert my bad decision of about a year ago to make PortalDefineQuery
responsible for copying the query string into the new Portal.  Such copying
is unnecessary in the common code path through exec_simple_query, and in
this case it can be enormously expensive because the string might contain
a large number of individual commands; we were copying the entire, long
string for each command, resulting in O(N^2) behavior for N commands.
(This is the cause of bug #4079.)  A second problem with it is that
PortalDefineQuery really can't risk error, because if it elog's before
having set up the Portal, we will leak the plancache refcount that the
caller is trying to hand off to the portal.  So go back to the design in
which the caller is responsible for making sure everything is copied into
the portal if necessary.
2008-04-02 18:31:50 +00:00
Magnus Hagander
ad6bf716ba Convert three more guc settings to enum type:
default_transaction_isolation, session_replication_role and regex_flavor.
2008-04-02 14:42:56 +00:00
Bruce Momjian
afa2a9ec9c Remove due to survey/discussion:
<
< * Prefix command-line utilities like createuser with 'pg_'
<
<   http://archives.postgresql.org/pgsql-hackers/2007-06/msg00025.php
<
2008-04-02 02:11:47 +00:00