Tom Lane [Sat, 12 May 2001 19:58:28 +0000 (19:58 +0000)]
Modify RelationGetBufferForTuple() so that we only do lseek and lock
when we need to move to a new page; as long as we can insert the new
tuple on the same page as before, we only need LockBuffer and not the
expensive stuff. Also, twiddle bufmgr interfaces to avoid redundant
lseeks in RelationGetBufferForTuple and BufferAlloc. Successive inserts
now require one lseek per page added, rather than one per tuple with
several additional ones at each page boundary as happened before.
Lock contention when multiple backends are inserting in same table
is also greatly reduced.
Peter Eisentraut [Sat, 12 May 2001 17:49:32 +0000 (17:49 +0000)]
PL/Python should build portably now, if you can get over the fact that
there's no shared libpython. Test suite works as well. Also, add some
documentation.
Peter Eisentraut [Sat, 12 May 2001 01:30:30 +0000 (01:30 +0000)]
PL/Python integration: support in create/droplang, add CVS keywords,
remove useless files, beat some sense into Makefile. For me it builds
and sort of runs, so it's a start.
Philip Warner [Sat, 12 May 2001 01:03:59 +0000 (01:03 +0000)]
- Don't dump COMMENTs in data-only dumps
- Fix view dumping SQL for V7.0
- Fix bug when getting view oid with long view names
- Treat SEQUENCE SET TOC entries as data entries rather than schema
entries.
- Make allowance for data entries that did not have a data dumper
routine (eg. SEQUENCE SET)
Tom Lane [Fri, 11 May 2001 05:09:03 +0000 (05:09 +0000)]
Suppress failures in parallel regress tests due to use of same table
name in two different tests. This solution does not meet with universal
approval, so it may get changed later ...
Bruce Momjian [Fri, 11 May 2001 01:46:33 +0000 (01:46 +0000)]
Stamp CVS as 7.2. Update all interface version numbers. This is the
time to do it, not during beta because people are using this stuff in
production sometimes.
Tom Lane [Thu, 10 May 2001 20:38:49 +0000 (20:38 +0000)]
Avoid unnecessary lseek() calls by cleanups in md.c. mdfd_lstbcnt was
not being consulted anywhere, so remove it and remove the _mdnblocks()
calls that were used to set it. Change smgrextend interface to pass in
the target block number (ie, current file length) --- the caller always
knows this already, having already done smgrnblocks(), so it's silly to
do it over again inside mdextend. Net result: extension of a file now
takes one lseek(SEEK_END) and a write(), not three lseeks and a write.
Bruce Momjian [Wed, 9 May 2001 23:00:44 +0000 (23:00 +0000)]
This directory contains a module that implements the "Metaphone" code as
a PostgreSQL user-defined function. The Metaphone system is a method of
matching similar sounding names (or any words) to the same code.
Metaphone was invented by Lawrence Philips as an improvement to the popular
name-hashing routine, Soundex.
This metaphone code is from Michael Kuhn, and is detailed at
http://aspell.sourceforge.net/metaphone/metaphone-kuhn.txt
Bruce Momjian [Wed, 9 May 2001 21:13:35 +0000 (21:13 +0000)]
I have modifed heap.c so that it won't automatically generate duplicate
constraint names.
> > A reasonable interpretation of DROP CONSTRAINT "foo" is to drop *all*
> > constraints named "foo" on the target table.
>
> Then it should probably be a good thing to avoid the automatic
> generation of
> duplicate names? I might take a look at that, actually...
>
Bruce Momjian [Wed, 9 May 2001 21:11:26 +0000 (21:11 +0000)]
that's just me again, here's normal patch for KOI8_U to
jdbc/Connection.java
Andy
P.S. in Connection.java if encoding=="WIN" then dbEncoding is set to
"Cp1252".
What if it's Cyrillic "WIN"? Than it should be "Cp1251". Is there any
way to fix that without making different "WIN" encodings in
PostgreSQL?
Bruce Momjian [Wed, 9 May 2001 21:10:39 +0000 (21:10 +0000)]
This patch should catch cases where the types
in referencing and referenced columns of an fk constraint
aren't comparable using '=' at constraint definition time
rather than insert/update time.
Bruce Momjian [Wed, 9 May 2001 19:28:31 +0000 (19:28 +0000)]
Noticed a small bug in the code. Probably been there for some time. Note
that the original code would consider things like UNIX domain sockets are
regular files.
Bruce Momjian [Wed, 9 May 2001 19:19:00 +0000 (19:19 +0000)]
This patch adds a new configure option --with-pltcl-unknown which
enables pltcl unknown support.
Also it adds substituting of tclsh with tclsh that was by configure in
pltcl_*mod scripts. For example, On freebsd, tclsh can be called
tclsh8.2 or
tclsh8.3 depending on installed version of Tcl.
After patching files
src/pl/tcl/modules/pltcl_listmod
src/pl/tcl/modules/pltcl_loadmod
src/pl/tcl/modules/pltcl_delmod
must be renamed(copied,repocopied) to
src/pl/tcl/modules/pltcl_listmod.in
src/pl/tcl/modules/pltcl_loadmod.in
src/pl/tcl/modules/pltcl_delmod.in
Bruce Momjian [Wed, 9 May 2001 17:29:10 +0000 (17:29 +0000)]
Here's a version of my suggested diffs transplanted to 7.1 beta 5. I'm
still looking at the best way to integrate Tom Vijlbrief's fixes
(insofar as they're still needed); would 7.2 be a suitable time for
incompatible API changes?
Jeroen
Changes:
(*) Introduced bool, true, false (replacing some int, 1, 0)
(*) Made some member functions const
(*) Documented GetIsNull()
(*) Marked DisplayTuples() and PrintTuples() as obsolescent; fixed possible
portability problem (assumed that NULL pointer equals all-zero bit pattern)
(*) PrintTuples(): renamed width parameter to fillAlign to conform with other
usage; fixed memory leak and compile issue w.r.t. field separator (should
also slightly improve performance)
(*) Fixed some minor compilation issues
(*) Moved "using namespace std;" out of headers, where they didn't belong; used
new (temporary) preprocessor macro PGSTD to do this
(*) Made ToString() static, removed unneeded memset(), made buffer size adapt
to sizeof(int)
(*) Made some constructors explicit
(*) Changed some const std::string & parameters to plain std::string
(*) Marked PgCursor::Cursor(std::string) as obsolescent (setter with same name
as getter--bad style)
(*) Renamed some paramaters previously named "string"
(*) Introduced size_type typedef for number of tuples in result set
(*) PgTransaction now supports re-opening after closing, and aborts if not
explicitly committed prior to destruction
Bruce Momjian [Wed, 9 May 2001 13:27:15 +0000 (13:27 +0000)]
If it's true that the ALTER TABLE x ADD CONSTRAINT x CHECK (x) syntax is
supported in 7.1.1, here is a patch to that alter_table.sgml that documents
it.
Tom Lane [Wed, 9 May 2001 00:35:09 +0000 (00:35 +0000)]
Cause planner to make use of average-column-width statistic that is now
collected by ANALYZE. Also, add some modest amount of intelligence to
guesses that are used for varlena columns in the absence of any ANALYZE
statistics. The 'width' reported by EXPLAIN is finally something less
than totally bogus for varlena columns ... and, in consequence, hashjoin
estimating should be a little better ...
Tom Lane [Tue, 8 May 2001 19:47:02 +0000 (19:47 +0000)]
Append and SubqueryScan nodes were not passing changed-parameter signals down
to their children, leading to misbehavior if they had any children that paid
attention to chgParam (most plan node types don't). Append's bug has been
there a long time, but nobody had noticed because it used to be difficult
to create a query where an Append would be used below the top level of a
plan; so there were never any parameters getting passed down. SubqueryScan
is new in 7.1 ... and I'd modeled its behavior on Append :-(
Need to factor out strdup.o for separate treatment since it's in a
different directory. This makes dependency tracking work and copes with
compilers that don't suport -c and -o together.
Bruce Momjian [Tue, 8 May 2001 17:51:30 +0000 (17:51 +0000)]
drop_function.sgml:
===================
In Notes:
Refer to CREATE FUNCTION for information on creating aggregate functions.
^^^^^^^^^^^^^^^^^^^
I assume it must read C function instead.
In Compatibility SQL/PSM:
SQL/PSM is a proposed standard.
We had that before: remove proposed.
drop_index.sgml:
================
<REFNAME>: Removes existing indexes from a database
as far as I can see index should be singular. The command description is
written as if only one index can be removed at a time. Interestingly
enough, in v7.0.2 it was in fact singular. Am I mistaken here?
drop_operator.sgml:
===================
In Outputs the arguments are referred to as type and type2, but the synopsis
and Inputs section these are left_type and right_type, respectively. Also,
oper is used in Outputs versus id in Inputs/Synopsis. In the translation I
follow the replaceables used in the Inputs/Synopsis part.
Bruce Momjian [Tue, 8 May 2001 17:35:57 +0000 (17:35 +0000)]
drop_function.sgml:
===================
In Notes:
Refer to CREATE FUNCTION for information on creating aggregate functions.
^^^^^^^^^^^^^^^^^^^
I assume it must read C function instead.
Tom Lane [Tue, 8 May 2001 01:00:53 +0000 (01:00 +0000)]
Un-break exec_move_row() for case that a NULL tuple and tupdesc are
passed, which occurs when no rows are retrieved by a SELECT.
Mea maxima culpa ... I should have caught this.
Bruce Momjian [Mon, 7 May 2001 17:20:19 +0000 (17:20 +0000)]
> Occasionally and without warning I get this from my daily vacuum
> cronjob:
> NOTICE: RegisterSharedInvalid: SI buffer overflow
> NOTICE: InvalidateSharedInvalid: cache state reset
> I don't understand what these mean. Should I be concerned about them
> and what do they signify?
No real need to worry. Those should've been downgraded to DEBUG-level
messages a release or two back, but nobody bothered...
Tom Lane [Mon, 7 May 2001 00:43:27 +0000 (00:43 +0000)]
Rewrite of planner statistics-gathering code. ANALYZE is now available as
a separate statement (though it can still be invoked as part of VACUUM, too).
pg_statistic redesigned to be more flexible about what statistics are
stored. ANALYZE now collects a list of several of the most common values,
not just one, plus a histogram (not just the min and max values). Random
sampling is used to make the process reasonably fast even on very large
tables. The number of values and histogram bins collected is now
user-settable via an ALTER TABLE command.
There is more still to do; the new stats are not being used everywhere
they could be in the planner. But the remaining changes for this project
should be localized, and the behavior is already better than before.
A not-very-related change is that sorting now makes use of btree comparison
routines if it can find one, rather than invoking '<' twice.