Marc G. Fournier [Fri, 12 Jan 2001 00:16:26 +0000 (00:16 +0000)]
commit Oleg and Teodor's RD-tree implementation ... this provides the
regression tests for the GiST changes ... this should be integrated into
the regular regression tests similar to Vadim's SPI contrib stuff ...
Marc G. Fournier [Fri, 12 Jan 2001 00:12:58 +0000 (00:12 +0000)]
New feature:
1. Support of variable size keys - new algorithm of insertion to tree
(GLI - gist layrered insertion). Previous algorithm was implemented
as described in paper by Joseph M. Hellerstein et.al
"Generalized Search Trees for Database Systems". This (old)
algorithm was not suitable for variable size keys and could be
not effective ( walking up-down ) in case of multiple levels split
Bug fixed:
1. fixed bug in gistPageAddItem - key values were written to disk
uncompressed. This caused failure if decompression function
does real job.
2. NULLs handling - we keep NULLs in tree. Right way is to remove them,
but we don't know how to inform vacuum about index statistics. This is
just cosmetic warning message (like in case with R-Tree),
but I'm not sure how to recognize real problem if we remove NULLs
and suppress this warning as Tom suggested.
3. various memory leaks
This work was done by Teodor Sigaev (teodor@stack.net) and
Oleg Bartunov (oleg@sai.msu.su).
Bruce Momjian [Tue, 9 Jan 2001 16:07:14 +0000 (16:07 +0000)]
The KAME files md5.* and sha1.* have the following changelog
entry:
----------------------------
revision 1.2
date: 2000/12/04 01:20:38; author: tgl; state: Exp; lines:
+18 -18
Eliminate some of the more blatant platform-dependencies ... it
builds here now, anyway ...
----------------------------
Which basically changes u_int*_t -> uint*_t, so now it does not
compile neither under Debian 2.2 nor under NetBSD 1.5 which
is platform independent<B8> all right. Also it replaces $KAME$
with $Id$ which is Bad Thing. PostgreSQL Id should be added as a
separate line so the file history could be seen.
So here is patch:
* changes uint*_t -> uint*. I guess that was the original
intention
* adds uint64 type to include/c.h because its needed
[somebody should check if I did it right]
* adds back KAME Id, because KAME is the master repository
* removes stupid c++ comments in pgcrypto.c
* removes <sys/types.h> from the code, its not needed
Bruce Momjian [Tue, 9 Jan 2001 14:23:40 +0000 (14:23 +0000)]
Approaching the current documentation from a position of ignorance, I
find it ambiguous. I propose something along the lines of the
following patch to clarify it. Thanks.
(Alternatively, perhaps the code could maintain a count of nested
calls to SPI_connect/SPI_finish. But I didn't try to write that
patch.)
jump version to beta3 ... beta2 was created and pulled due to a couple of
large-ish bugs that Tom and Vadim were able to fix, but to avoid any
confusion, beta2 was removed ... and for tag'ng purposes, beta3 is being
created ...
1. Checkpoint.undo may be after checkpoint itself:
- no more elog(STOP) in StartupXLOG();
- both checkpoint' undo & redo are used to define
oldest on-line log file.
2. Ability to pre-allocate a few log files at checkpoint time
(wal_files option). Off by default.
Tom Lane [Tue, 9 Jan 2001 03:48:51 +0000 (03:48 +0000)]
Fix oversight in planning of GROUP queries: when an expression is used
as both a GROUP BY item and an output expression, the top-level Group
node should just copy up the evaluated expression value from its input,
rather than re-evaluating the expression. Aside from any performance
benefit this might offer, this avoids a crash when there is a sub-SELECT
in said expression.
Tom Lane [Mon, 8 Jan 2001 22:07:47 +0000 (22:07 +0000)]
Document the system attributes ctid and tableoid, which for some reason
were never yet mentioned anywhere in our documentation. Improve
explanations of the other system attributes, too.
Tom Lane [Sun, 7 Jan 2001 22:14:31 +0000 (22:14 +0000)]
Correct nasty error in heap_update: it was releasing the buffer refcount
before calling RelationInvalidateHeapTuple(), which is bad because the
latter needs to look at the tuple data, which is in the shared disk
buffer. If another backend manages to recycle the buffer while this
is going on, we will compute the wrong hashindex for the tuple or
maybe even crash outright. Must hold buffer refcount until afterwards.
(This bug is not in 7.0.*; seems to be have introduced during WAL changes.)
Tom Lane [Sun, 7 Jan 2001 01:08:48 +0000 (01:08 +0000)]
Modify readfuncs so that recursive use of stringToNode will not crash
and burn. Just for added luck, change reading of CONST nodes so that
we do not need to consult pg_type rows while reading them; this means
that no database access occurs during stringToNode. This requires
changing the order in which const-node fields are written, which means
an initdb is forced.
Tom Lane [Sun, 7 Jan 2001 00:05:22 +0000 (00:05 +0000)]
Clean up checking of relkind for ALTER TABLE and LOCK TABLE commands.
Disallow cases like adding constraints to sequences :-(, and eliminate
now-unnecessary search of pg_rewrite to decide if a relation is a view.
Tom Lane [Sat, 6 Jan 2001 21:53:18 +0000 (21:53 +0000)]
Fix memory leak in relcache handling of rules: allocate rule parsetrees
in per-entry sub-memory-context, where they were supposed to go, rather
than in CacheMemoryContext where the code was putting them. Must've
suffered a severe brain fade when I wrote this :-(
Simplify the rules that explicitly allowed TYPE as a type name (which is
no longer the case). Add AND and TRAILING to ColLabel. All key words
except AS are now at least ColLabel's.
Tatsuo Ishii [Sat, 6 Jan 2001 03:33:17 +0000 (03:33 +0000)]
Fix copy to make it more robust against unexpected character
sequences. This is done by disabling multi-byte awareness when it's
not necessary. This is kind of a workaround, not a perfect solution.
However, there is no ideal way to parse broken multi-byte character
sequences. So I guess this is the best way what we could do right
now...
Tom Lane [Fri, 5 Jan 2001 22:54:37 +0000 (22:54 +0000)]
Rename and document some invalidation routines to make it clearer that
they don't themselves flush any cache entries, only add to to-do lists
that will be processed later.
Tom Lane [Fri, 5 Jan 2001 06:34:23 +0000 (06:34 +0000)]
Remove not-really-standard implementation of CREATE TABLE's UNDER clause,
and revert documentation to describe the existing INHERITS clause
instead, per recent discussion in pghackers. Also fix implementation
of SQL_inheritance SET variable: it is not cool to look at this var
during the initial parsing phase, only during parse_analyze(). See
recent bug report concerning misinterpretation of date constants just
after a SET TIMEZONE command. gram.y really has to be an invariant
transformation of the query string to a raw parsetree; anything that
can vary with time must be done during parse analysis.
Tom Lane [Thu, 4 Jan 2001 01:23:47 +0000 (01:23 +0000)]
pg_dump failed to handle backslashes embedded in function definitions
(and most other places where it needed to output a string literal, too,
except for data INSERT statements). Per bug report from Easter, 12/1/00.
Repair always-broken date_part('quarter',timestamp).
Previous result did not have correct month boundaries so anything near edge
cases was suspect (e.g. April was in Q1 and July, August were lumped into
Q2).
Thanks to Denis Osadchy <osadchy@turbo.nsk.su> for the report.
Bruce Momjian [Wed, 3 Jan 2001 06:56:52 +0000 (06:56 +0000)]
Update TODO list.
Index: TODO
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/TODO,v
retrieving revision 1.311
diff -r1.311 TODO
3c3
< Last updated: Tue Jan 2 21:23:11 EST 2001
---
> Last updated: Wed Jan 3 01:56:41 EST 2001
10c10
< A dash(-) marks changes that will appear in the upcoming 7.1 release.
---
> A dash (-) marks changes that will appear in the upcoming 7.1 release.
23c23
< * -Creating index of TIMESTAMP & RELTIME fails, or rename to DATETIME(Thomas)
---
> * -Creating index of TIMESTAMP & RELTIME fails, or rename to DATETIME (Thomas)
35c35
< * -Views containing aggregates sometimes fail(Jan)
---
> * -Views containing aggregates sometimes fail (Jan)
37,38c37,38
< duplicates(inherit)
< * -Disallow LOCK on view(Mark Hollomon)
---
> duplicates (inherit)
> * -Disallow LOCK on view (Mark Hollomon)
58,60c58,60
< * -Add OUTER joins, left and right[outer](Tom, Thomas)
< * -Allow long tuples by chaining or auto-storing outside db (TOAST)(Jan)
< * Fix memory leak for expressions[memory](Tom?)
---
> * -Add OUTER joins, left and right[outer] (Tom, Thomas)
> * -Allow long tuples by chaining or auto-storing outside db (TOAST) (Jan)
> * Fix memory leak for expressions[memory] (Tom?)
70c70
< * Allow row re-use without vacuum(Vadim)
---
> * Allow row re-use without vacuum (Vadim)
74c74
< * More access control over who can create tables and use locks(Karel)
---
> * More access control over who can create tables and use locks (Karel)
92c92
< o -Fix large object mapping scheme, own typeid or reltype(Peter)
---
> o -Fix large object mapping scheme, own typeid or reltype (Peter)
97c97
< * Fix improper masking of some inet/cidr types [cidr]
---
> * -Fix improper masking of some inet/cidr types [cidr] 113c113
< * Get BIT type working
---
> * -Get BIT type working 119c119
< * Update macaddr manufacturer numbers, or remove the function macaddr_manuf()
---
> * -Update macaddr manufacturer numbers, or remove the function macaddr_manuf() 147c147
< * -Add ALTER TABLE ALTER COLUMN feature(Peter E)
---
> * -Add ALTER TABLE ALTER COLUMN feature (Peter E) 157c157
< * Auto-destroy sequence on DROP of table with SERIAL(Ryan)
---
> * Auto-destroy sequence on DROP of table with SERIAL (Ryan) 166a167
> * Allow INSERT INTO tab (col1, ..) VALUES (val1, ..), (val2, ..) 172d172
< * Allow INSERT INTO tab (col1, ..) VALUES (val1, ..), (val2, ..) 176c176
< * Make NULL's come out at the beginning or end depending on the
---
> * Make NULL's come out at the beginning or end depending on the 220c220
< * Certain indexes will not shrink, i.e. oid indexes with many inserts(Vadim)
---
> * Certain indexes will not shrink, i.e. oid indexes with many inserts (Vadim) 226c226
< with after-row images(Vadim) [logging](Vadim)
---
> with after-row images (Vadim) [logging] 232c232
< * -Redesign the function call interface to handle NULLs better[function](Tom)
---
> * -Redesign the function call interface to handle NULLs better[function] (Tom) 239c239
< * Encrpyt passwords in pg_shadow table using MD5(Vince)
---
> * Encrpyt passwords in pg_shadow table using MD5 (Vince) 298a299,300
> * Create a transaction processor to aid in persistent connections and
> connection pooling 307c309
< * Remove SET KSQO option now that OR processing is improved(Tom)
---
> * Remove SET KSQO option now that OR processing is improved (Tom)
Bruce Momjian [Wed, 3 Jan 2001 02:23:22 +0000 (02:23 +0000)]
Update TODO list.
Index: TODO
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/TODO,v
retrieving revision 1.310
diff -r1.310 TODO
3c3
< Last updated: Wed Dec 27 00:44:44 EST 2000
---
> Last updated: Tue Jan 2 21:23:11 EST 2001 310a311
> * Allow libedit to be used in place of libreadline
Bruce Momjian [Tue, 2 Jan 2001 22:03:02 +0000 (22:03 +0000)]
I've found a memory leak in libecpg of PostgreSQL 7.0.3.
The leak is caused by the memory allocation in
src/interfaces/ecpg/lib/execute.c in line 669 which is never freed.
Adding a "free(array_query);" after PQexec in line 671 seems to fix the
leak.
Tom Lane [Tue, 2 Jan 2001 04:33:24 +0000 (04:33 +0000)]
Clean up non-reentrant interface for hash_seq/HashTableWalk, so that
starting a new hashtable search no longer clobbers any other search
active anywhere in the system. Fix RelationCacheInvalidate() so that
it will not crash or go into an infinite loop if invoked recursively,
as for example by a second SI Reset message arriving while we are still
processing a prior one.
Tom Lane [Sun, 31 Dec 2000 18:38:44 +0000 (18:38 +0000)]
Don't say 'export PGHOST' or 'export PGPORT' unless we actually define
those variables. Some shells will invent an empty-string definition in
this case, which is not what we want.