Tom Lane [Mon, 14 May 2001 20:25:00 +0000 (20:25 +0000)]
Current implementation of FOR UPDATE has no hope of working correctly
for relations on the nullable side of an OUTER JOIN. For now I think
we'd better refuse such queries.
Bruce Momjian [Sun, 13 May 2001 02:17:09 +0000 (02:17 +0000)]
> I've been experimenting with pgcrypto 0.3 (distributed with
> Postgres 7.1.0), and I think I've found a bug.
>
> I compiled Pgcrypto with OpenSSL, using gcc 2.95.4 and
> OpenSSL 0.9.6a (the latest Debian 'unstable' packages).
> web=> select encode(digest('blah', 'sha1'), 'base64');
> FATAL 1: pg_encode: overflow, encode estimate too small
> pqReadData() -- backend closed the channel unexpectedly.
> This probably means the backend terminated abnormally
> before or while processing the request.
> The connection to the server was lost. Attempting reset: Succeeded.
Tom Lane [Sat, 12 May 2001 23:36:03 +0000 (23:36 +0000)]
proisstrict must be assumed FALSE when dumping from a 7.0 database,
not TRUE. Otherwise we break pl call handler functions. fmgr_oldstyle
will take care of making sure the semantics are the same for C functions.
Clean up some slightly grotty coding in 7.0 pg_class reading, also.
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.