I put some extra checks to make sure a query was a good candidate for
rewrite into a UNION. Besides the existing checks:
1. Make sure the AND/OR tree was rectangular. ( i.e. 3 X 4 or 10 X
3)
2. Only one table.
3. Must have an AND dimension.
4. At least 9 OP expressions total
Bruce Momjian [Thu, 3 Sep 1998 02:14:39 +0000 (02:14 +0000)]
O2. Seems tas() for PPC (storage/buffer/s_lock.c) never works if
compiled with -O0. Included are patches that should fix the problem
(of course I have confirmed -O2 works with this patch).
BTW, here is a platforms/regression test failure(serious one--backend
death) matrix.
Bruce Momjian [Thu, 3 Sep 1998 02:10:56 +0000 (02:10 +0000)]
Attached is a patch to remove the definitions of libpq's internal
structs from libpq-fe.h, as we previously discussed.
There turned out to be sloppy coding practices in more places than
I had realized :-(, but all in all I think it was a well-worth-while
exercise.
I ended up adding several routines to libpq's API in order to respond
to application requirements that were exposed by this work. I owe the
docs crew updates for libpq.sgml to describe these changes. I'm way too
tired to work on the docs tonight, however.
This is the last major change I intend to submit for 6.4. I do want
to see if I can make libpgtcl work with Tcl 8.0 before we go final,
but hopefully that will be a minor bug fix.
Bruce Momjian [Wed, 2 Sep 1998 23:37:13 +0000 (23:37 +0000)]
> David Hartwig wrote:
>
> Please apply this HAVING regression patch.
> > My bad. It is caused by a known bug having to do with GROUP BY.
It ain't$
> > nothing to do with HAVING. For some reason the bug went away for a
while, $
> > script. It must have, because that is how I created the expected
file. :(
> >
> > A patch to the regression will be forthcoming.
>
Types removed from Postgres: oidint2, oidint4, oidname.
Fix example columns in alter_table.out to use datetime and timespan
as a substitute for oidint4 and oidname.
Marc G. Fournier [Sun, 30 Aug 1998 19:41:50 +0000 (19:41 +0000)]
From: Tom Lane <tgl@sss.pgh.pa.us>
We're carrying around a copy of install-sh in case the local system
has no install script. It's wasted baggage, because configure doesn't
know it's there :-(. (Apparently everyone who's used postgres lately
already had an install script somewhere in their path. I happened to
try to run configure with a minimal PATH tonight, and it promptly
gave up for lack of an install program.) Here's the patch.
Marc G. Fournier [Sun, 30 Aug 1998 19:37:51 +0000 (19:37 +0000)]
From: Massimo Dal Zotto <dz@cs.unitn.it>
Here is a tar file the new directories, which substitute the old ones
in contrib. Please remove the old directories array, datetime, miscutil,
string and userlock before unpacking the tar file in contrib.
Note that as the modules are now installed in lib/modules I install all
my sql code in lib/sql. In my opinion also the other contributors should
follow these rules.
Marc G. Fournier [Sun, 30 Aug 1998 19:30:38 +0000 (19:30 +0000)]
From: Massimo Dal Zotto <dz@cs.unitn.it>
After some playing with gdb I found that in printtup() there is a non null
attribute with typeinfo->attrs[i]->atttypid = 0 (invalid oid). Unfortunately
attibutes with invalid type are neither printed nor marked as null, and this
explains why psql doesn't get all the expected data.
Bruce Momjian [Sat, 29 Aug 1998 18:06:57 +0000 (18:06 +0000)]
Ok. BTW Mr. Kataoka who is maintaing Japanese version of PostgreSQL
ODBC driver have found a bug in 6.3.2 pg_dump and have made patches.
I confirmed that the same bug still exists in the current source
tree. So I made up patches based on Kataoka's. Here are some
explanations.
o fmtId() returns pointer to a static memory in it. In the meantime
there is a line where is fmtId() called twice without saving the
first value returned by fmtId(). So second call to fmtId() will
break the first one.
o findTableByName() looks up a table by its name. if a table name
contanins upper letters or non ascii chars, fmtId() will returns
a name quoted in double quotes, which will not what findTableByName()
wants. The result is SEG fault. -- Tatsuo Ishii t-ishii@sra.co.jp
Bruce Momjian [Sat, 29 Aug 1998 04:09:29 +0000 (04:09 +0000)]
This is the first (of hopefully few) AIX port patches. This patch
was tested with Linux/GCC. I still have some issues with with the
snprintf() function.
Bruce Momjian [Sat, 29 Aug 1998 04:05:46 +0000 (04:05 +0000)]
Hello!
Here is a new patch for libpq, to make it work on Win32 again (since
the latest modifications broke it a little).
Please also add the file "libpq.rc" to the interfaces/libpq directory.
This will allow version-stamping of the generated DLL file, so that
automatic install programs (and interested users) can determine
the version of the file. The file is currently set as "prerelease".
Before the release, somebody should change the line "FILEFLAGS
VS_FF_PRERELEASE" to "FILEFLAGS 0". That information should probably
go into toos\RELEASE_CHANGES.
The patch is against the cvs as of ~ 1998-08-26 14:30 CEST.
Marc G. Fournier [Fri, 28 Aug 1998 17:47:53 +0000 (17:47 +0000)]
From: Michael Meskes <meskes@online-club.de>
This one is against the current archive (so it contains the one I send the
other day). It should fix the AIX problems. Andreas, could you please try
it? Thanks.
+ Wed Aug 26 16:17:39 CEST 1998
+
+ - Sync preproc.y with gram.y
+
+ Thu Aug 27 15:32:23 CEST 1998
+
+ - Fix some minor glitches that the AIX compiler complains about
+ - Added patchlevel to library
+
+ Fri Aug 28 15:36:58 CEST 1998
+
+ - Removed one line of code that AIX complains about since it was not
+ needed anyway
+ - Set library version to 2.6.1
Bruce Momjian [Fri, 28 Aug 1998 03:36:31 +0000 (03:36 +0000)]
Hi all,
I don't know if this is really related to the initdb problem
discussion (haven't followed it enough). But seems so because
it fixes a damn problem during index tuple insertion on
CREATE TABLE into pg_attribute_relid_attnum_index.
Anyway - this bug was really hard to find. During startup the
relcache reads in some prepared information about index
strategies from a file and then reinitializes the function
pointers inside the scanKey data. But for sake it assumed
single attribute index tuples (hasn't that changed recently).
Thus not all the strategies scanKey entries where initialized
properly, resulting in invalid addresses for the btree
comparision functions.
With the patch at the end the regression tests passed
excellent except for the sanity_check that crashed at vacuum
and the misc test where the select unique1 from onek2 outputs
the two rows in different order.
Marc G. Fournier [Thu, 27 Aug 1998 13:25:40 +0000 (13:25 +0000)]
From: Magnus Hagander <mha@edu.sollentuna.se>
Ok. Here is a patch to make psql work on Win32 (as a console mode
application, of course).
It requires getopt.c to be in src/utils - works fine with the FreeBSD
version of it.
Also, the file win32.mak should go into src/bin/psql.
Marc G. Fournier [Tue, 25 Aug 1998 21:37:08 +0000 (21:37 +0000)]
From: Massimo Dal Zotto <dz@cs.unitn.it>
> these patches define the UNLISTEN sql command. The code already
> existed but it was unknown to the parser. Now it can be used
> like the listen command.
> You must make clean and delete gram.c and parser.h before make.
Marc G. Fournier [Tue, 25 Aug 1998 21:34:10 +0000 (21:34 +0000)]
From: Massimo Dal Zotto <dz@cs.unitn.it>
> tprintf.patch
>
> tprintf.patch
>
> adds functions and macros which implement a conditional trace package
> with the ability to change flags and numeric options of running
> backends at runtime.
> Options/flags can be specified in the command line and/or read from
> the file pg_options in the data directory.
Marc G. Fournier [Tue, 25 Aug 1998 21:32:10 +0000 (21:32 +0000)]
Massimo Dal Zotto <dz@cs.unitn.it>
> socket-flock.patch
>
> use advisory locks to check if the unix socket can be deleted.
> A running postmaster keeps a lock on that file. A starting
> postmaster exits if the file exists and is locked, otherwise
> it deletes the sockets and proceeds.
> This avoid the need to remove manually the file after a postmaster
> or system crash.
> I don't know if flock is available on any system. If not we could
> define a HAVE_FLOCK set by configure.
Marc G. Fournier [Tue, 25 Aug 1998 21:31:20 +0000 (21:31 +0000)]
From: Massimo Dal Zotto <dz@cs.unitn.it>
> sinval.patch
>
> fixes a problem in SI cache which causes table overflow if some
> backend is idle for a long time while other backends keep adding
> entries.
> It uses the new signal handling implemented in tprintf.patch.
> I have also increacasesed the max number of backends from 32 to 64
> and the table size from 1000 to 5000.
> I don't know if anybody is working on SI, but until another
> solution is found this patch fixes the problem. I have received
> messages from other people reporting the same problem which I
> fixed many months ago.
Marc G. Fournier [Tue, 25 Aug 1998 21:25:46 +0000 (21:25 +0000)]
From: Massimo Dal Zotto <dz@cs.unitn.it>
> sequence.patch
>
> adds the missing setval command to sequences. Owner of sequences
> can now set the last value to any value between min and max
> without recreating the sequence. This is useful after loading
> data from external files.
Marc G. Fournier [Tue, 25 Aug 1998 21:24:12 +0000 (21:24 +0000)]
From: Massimo Dal Zotto <dz@cs.unitn.it>
> ps-status.patch
>
> macros for ps status, used by postgres.c and utility.c.
> Unfortunately ps status is system dependent and the current
> code doesn't work on linux. The use of macros confines system
> dependency to into one file (ps-status.h). Users of other
> operating systems should check this code and submit new macros.
Marc G. Fournier [Tue, 25 Aug 1998 21:20:32 +0000 (21:20 +0000)]
From: Massimo Dal Zotto <dz@cs.unitn.it>
lock.patch
I have rewritten lock.c cleaning up the code and adding better
assert checking I have also added some fields to the lock and
xid tags for better support of user locks. There is also a new
function which returns an array of pids owning a lock.
I'm using this code from over six months and it works fine.