Commit Graph

558 Commits

Author SHA1 Message Date
Marc G. Fournier
a5494a2d92 Various patches for nextstep by GregorHoffleit
Replaced NEED_STRDUP by !HAVE_STRDUP
1997-02-13 08:32:20 +00:00
Marc G. Fournier
809ae06ab2 Patch for:
The following patch to src/backend/libpq/pqpacket.c provides additional
checking for bad packet length data. It was tested with the Linux telnet
client, with netcat using the numbers.txt and by dumping random numbers
into the port.

Patch by: Alvaro Martinez Echevarria <alvaro@lander.es>
1997-02-13 08:06:36 +00:00
Marc G. Fournier
fb70587c1d Patch from Massimo Dal Zotto <dz@cs.unitn.it>
The following patches add to the backend a new debugging flag -K which prints
a debug trace of all locking operations on user relations (those with oid
greater than 20000). The code is compiled only if LOCK_MGR_DEBUG is defined,
so the patch should be harmless if not explicitly enabled.
I'm using the code to trace deadlock conditions caused by application queries
using the command "$POSTMASTER -D $PGDATA -o '-d 1 -K 1'.
The patches are for version 6.0 dated 970126.
1997-02-12 05:25:13 +00:00
Marc G. Fournier
5d9f146c64 What looks like some *major* improvements to btree indexing...
Patches from: aoki@CS.Berkeley.EDU (Paul M. Aoki)

i gave jolly my btree bulkload code a long, long time ago but never
gave him a bunch of my bugfixes.  here's a diff against the 6.0
baseline.

for some reason, this code has slowed down somewhat relative to the
insertion-build code on very small tables.  don't know why -- it used
to be within about 10%.  anyway, here are some (highly unscientific!)
timings on a dec 3000/300 for synthetic tables with 10k, 100k and
1000k tuples (basically, 1mb, 10mb and 100mb heaps).  'c' means
clustered (pre-sorted) inputs and 'u' means unclustered (randomly
ordered) inputs.  the 10k table basically fits in the buffer pool, but
the 100k and 1000k tables don't.  as you can see, insertion build is
fine if you've sorted your heaps on your index key or if your heap
fits in core, but is absolutely horrible on unordered data (yes,
that's 7.5 hours to index 100mb of data...) because of the zillions of
random i/os.

if it doesn't work for you for whatever reason, you can always turn it
back off by flipping the FastBuild flag in nbtree.c.  i don't have
time to maintain it.

good luck!

baseline code:

time psql -c 'create index c10 on k10 using btree (c int4_ops)' bttest
real   8.6
time psql -c 'create index u10 on k10 using btree (b int4_ops)' bttest
real   9.1
time psql -c 'create index c100 on k100 using btree (c int4_ops)' bttest
real   59.2
time psql -c 'create index u100 on k100 using btree (b int4_ops)' bttest
real   652.4
time psql -c 'create index c1000 on k1000 using btree (c int4_ops)' bttest
real   636.1
time psql -c 'create index u1000 on k1000 using btree (b int4_ops)' bttest
real   26772.9

bulkloading code:

time psql -c 'create index c10 on k10 using btree (c int4_ops)' bttest
real   11.3
time psql -c 'create index u10 on k10 using btree (b int4_ops)' bttest
real   10.4
time psql -c 'create index c100 on k100 using btree (c int4_ops)' bttest
real   59.5
time psql -c 'create index u100 on k100 using btree (b int4_ops)' bttest
real   63.5
time psql -c 'create index c1000 on k1000 using btree (c int4_ops)' bttest
real   636.9
time psql -c 'create index u1000 on k1000 using btree (b int4_ops)' bttest
real   701.0
1997-02-12 05:04:52 +00:00
Bruce Momjian
d5a3f52d62 Assign priorities when creating jobs in lock queue. 1997-02-11 23:05:38 +00:00
Marc G. Fournier
86c28441b4 Remove machine.h, since it wasn't doing anything that config.h wasn't
already doing

Removed only reference to a machine.h I could find in c.h, to win32/machine.h
1997-02-09 04:50:25 +00:00
Bruce Momjian
2300ac0dc4 Add attribute optimization statistics. 1997-02-07 16:24:12 +00:00
Bruce Momjian
89868af425 Remove extra paren in ifdef. 1997-02-06 19:27:22 +00:00
Marc G. Fournier
2c9dbc57e5 Various changes to improve/support Mklinux
Submitted by: Tatsuo Ishii
1997-02-06 08:40:16 +00:00
Marc G. Fournier
a7257ff41f autoconf test for and set HAVE_VFORK 1997-02-06 06:15:49 +00:00
Marc G. Fournier
b78a3de9a1 Get in there... 1997-02-05 21:27:04 +00:00
Marc G. Fournier
50b618a049 Test for existence of inet_aton on the system, and only include inet_aton.c if
required

Pointed out by Brian E. Gallew
1997-02-04 22:36:30 +00:00
Marc G. Fournier
9cabea224c Change references to NEED_RUSAGE to HAVE_RUSAGE
Pointed out by:" Tatsuo Ishii <t-ishii@sra.co.jp>
1997-02-03 04:43:31 +00:00
Vadim B. Mikheev
daf75276d4 New func _vc_scanoneind: scan one index relation to update statistic
in pg_class if no one page was reapped by vacuum.
1997-01-29 02:59:03 +00:00
Marc G. Fournier
6ab9db7b78 Apply usage patches for European Dates patch from Keith 1997-01-27 22:37:52 +00:00
Marc G. Fournier
8d3d5d2e2f Slight change to nabstime.c so that configure is able to handle a system
whereby timezone isn't an int, but tzset() exists...

This isn't a definitive fix, as there is probably an easier way of
fixing the bug...
1997-01-27 01:51:26 +00:00
Marc G. Fournier
a246e87d12 Convert MISSING_SYSCONF to !HAVE_SYSCONF for autoconf
From: Keith Parks
1997-01-27 00:09:47 +00:00
Bruce Momjian
197c7f5486 More removals for next/nextstep. Fix IPC lib for them. 1997-01-26 20:22:33 +00:00
Bruce Momjian
1836ce2c81 Change next to nextstep where missed. 1997-01-26 20:15:26 +00:00
Marc G. Fournier
427a964c30 |From: Keith Parks <emkxp01@mtcc.demon.co.uk>
|Subject: [PATCH] adding SYS_TIME just for fun.
|
|Hi,
|
|Whilst I was playing round with the European dates patch I noticed the sysfunc()
|that allows you to do :-
|
|create table test ( da date);
|insert into test values (SYS_DATE);
|
|and have the current system date inserted.
|
|So I thought it would be nice to have the SYS_TIME facility too.
|
|I've cloned the function and changed a few things and there you have it,
|you can now do:
|
|create table test2 ( ti time);
|insert into test2 values (SYS_TIME);
1997-01-26 17:28:48 +00:00
Marc G. Fournier
d90a426e35 Linux defines MAXINT in values.h, which causes an error when compiling.
Wrap it in an #ifndef to prevent this
1997-01-26 16:06:42 +00:00
Marc G. Fournier
632c44d829 Bring in a patch from Keith Parks to move the use of European dates
from a #define to a run-time option '-e'

Man page was updated to reflect new option
1997-01-26 15:32:28 +00:00
Bruce Momjian
ac3c926c42 Fix typo in struct name. 1997-01-26 00:45:25 +00:00
Bruce Momjian
311c521d96 would you mind committing the following changes for me? (the first
bug causes compilation to fail on alpha, the second causes a compiler
in this environment
1997-01-25 21:09:20 +00:00
Bruce Momjian
4eadf2d6cd More autosize structure error checks. 1997-01-25 21:01:16 +00:00
Marc G. Fournier
37e8621623 The check should be for getrusage(), not rusage() ... change the defines
to reflect what configure is going to define when the time comes
1997-01-25 19:29:47 +00:00
Marc G. Fournier
b1fd1f6998 remove asm/bitops.h, as its causing more problems then it fixes. 1997-01-25 19:22:27 +00:00
Marc G. Fournier
60265ee651 Switch over NEED_RUSAGE to HAVE_RUSAGE for configure 1997-01-24 23:48:32 +00:00
Marc G. Fournier
c19b247aec Change NEED_SIG_JMP to HAVE_SIGSETJMP in preparation for configure 1997-01-24 22:42:35 +00:00
Marc G. Fournier
f12c5f898c Another switch for configure: NEED_SYS_SELECT_H to HAVE_SYS_SELECT_H 1997-01-24 18:27:32 +00:00
Marc G. Fournier
0a16069901 Convert NEED_{RINT,CBRT,ISINF} to HAVE_* in prepration for configure... 1997-01-24 18:17:37 +00:00
Marc G. Fournier
3ffd5694dd Replace occurances of USE_{LIMITS,VALUES}_H with HAVE_* in preparation
for switch over to configure
1997-01-24 18:00:48 +00:00
Marc G. Fournier
37a8bdba43 The second patch adds a more explicative error message to BufferPoolCheckLeak.
It should be completely harmless.

Submitted by: Massimo Dal Zotto <dz@cs.unitn.it>
1997-01-23 19:43:23 +00:00
Marc G. Fournier
1e5755cf73 Patch from Massimo Dal Zotto <dz@cs.unitn.it>
The first patch changes the behavior of aclcheck for groups. Currently an user
can access a table only if he has the required permission for ALL the groups
defined for that table. With my patch he can access a table if he has the
permission for ONE of the groups, which seems to me a more useful thing.
If you think this should be the correct behavior of the acl group check feel
free to remove the #ifdef, if not please add a commented line to config.h.
1997-01-23 19:33:31 +00:00
Bruce Momjian
fa937b5e6b Remove SB_PAD. Compute padding at compile time. 1997-01-23 18:15:29 +00:00
Marc G. Fournier
e1e8301cdf Small fixes for SVR4 port by Frank Ridderbusch 1997-01-23 15:58:34 +00:00
Bruce Momjian
94515e3522 Removed unlinked patch that is not neede now that Vadim has properly fixed it. 1997-01-23 05:59:47 +00:00
Vadim B. Mikheev
fb24bfa3ce INDEXSCAN_PATCH changes: should work for (Param OP VAR) too
(but I didn't test FUNC OP PARAM and PARAM OP FUNC - no time)
1997-01-22 06:30:57 +00:00
Vadim B. Mikheev
1aa1827d64 1. INDEXSCAN_PATCH changes: (op Param Var) should work too
2. IndexScanableOperand now uses match_indexkey_operand
instead of equal_indexkey_var (if we have some index on attribute X
then we shouldn't use it for 'where some_func(X) OP CONST').
1997-01-22 06:25:42 +00:00
Vadim B. Mikheev
8e90978146 Fixing bug in INDEXSCAN_PATCH:
ExecInitIndexScan now works with operands of Param type and
(!!!) postquel_execute() now substitutes param values
before calling postquel_start().
1997-01-22 05:26:50 +00:00
Marc G. Fournier
6850a96933 Another change from /usr/include/machine/limits.h to just limits.h 1997-01-22 04:56:34 +00:00
Marc G. Fournier
c1392c57cf Another one that should be including limits.h vs machine/limits.h 1997-01-22 04:45:45 +00:00
Marc G. Fournier
f504e5a253 Taking a chance here. Under both Solaris and FreeBSD, there is a
/usr/include/limits.h (which quiets the costsize.c warnings)...under
FreeBSD, /usr/include/limits.h *includes* machine/limits.h, while under
Solaris, there is no such things as /usr/include/machine...

Problem with Solaris pointed out by Mark Wahl
1997-01-22 04:41:45 +00:00
Marc G. Fournier
0aa4cfca5d the i386_solaris port requires inet_aton.o
Pointed out by Mark Wahl
1997-01-22 04:15:53 +00:00
Bruce Momjian
84876289cc Cast constants to the type of the other binary operand.
Invalidate vacuum relation cache to use new row counts from vacuum.
1997-01-22 01:44:02 +00:00
Vadim B. Mikheev
9ff69034b2 Fixing possible losing data changes:
1. New flag - BM_JUST_DIRTIED - added for BufferDesc;
2. All data "dirtiers" (WriteBuffer and WriteNoReleaseBuffer)
   set this flag (and BM_DIRTY too);
3. All data "flushers" (FlushBuffer, BufferSync and BufferReplace)
   turn this flag off just before calling smgr[blind]write/smgrflush
   and check this flag after flushing buffer: if it turned ON then
   BM_DIRTY will stay ON.
1997-01-20 04:36:48 +00:00
Vadim B. Mikheev
9d1879388f 1. Setting rdesc->rd_tmpunlinked to FALSE in heap_creatr () just after
smgrcreate ().
2. Checking rdesc->rd_tmpunlinked in heap_destroy () & heap_destroyr ()
   before calling smgrunlink ().
1997-01-20 04:01:50 +00:00
Bruce Momjian
6ffae202a9 Add missing #. 1997-01-18 17:36:02 +00:00
Bruce Momjian
5fefb9f8e7 Add include files needed for stat(). 1997-01-18 16:14:04 +00:00
Bruce Momjian
bc18c38d1a Prevent UNIQUE indexes for non-btree access methods. 1997-01-18 05:48:07 +00:00
Marc G. Fournier
64836996f9 Minor change to file point out by Andrew 1997-01-16 16:13:40 +00:00
Bruce Momjian
3a02ccfa1d Change EXPLAIN options to just use VERBOSE. 1997-01-16 14:56:59 +00:00
Vadim B. Mikheev
b00c2c1d3f FlushLocalBuffer () releases buffer only if required
by caller.
1997-01-16 08:13:14 +00:00
Vadim B. Mikheev
eb08b3ce4f No more LateWrite, but there is WriteMode;
SetBufferWriteMode () added;
FlushBuffer () fixed: now directly calls smgrflush () and
	releases buffer only if required by caller.
1997-01-16 08:11:41 +00:00
Vadim B. Mikheev
1c297d429e No more LateWrite. 1997-01-16 08:04:30 +00:00
Vadim B. Mikheev
cbc7af81f3 VariableRelationPutNextXid () now flushes variable relation
after writing next free XID.
1997-01-16 07:59:11 +00:00
Bryan Henderson
9e41af2e74 Add inet_aton() prototype. 1997-01-16 06:32:17 +00:00
Vadim B. Mikheev
3677e86f7f textin fixed: no more zero-byte (thanks, Erich) 1997-01-16 03:53:51 +00:00
Marc G. Fournier
f02bd93350 Added postgres.h include to quiet down the HPUX ports...
POinted out by: Martin S. Utesch <utesch@aut.tu-freiberg.de>
1997-01-15 08:21:14 +00:00
Bryan Henderson
05b0f22900 Eliminate dupliclate definition of external variables reldesc and DataDir.
Some compilers recognize this error.
1997-01-14 08:05:36 +00:00
Vadim B. Mikheev
2ca05fe45d ReleaseTmpRelBuffers is ReleaseRelationBuffers now. 1997-01-14 05:40:45 +00:00
Vadim B. Mikheev
791e9973ab heap_destroy () releases dirty buffers of a relation to be
destroyed.
1997-01-14 05:38:23 +00:00
Bruce Momjian
3a646df4c0 Remove CFLAGS_SL from lib/Makefile 1997-01-14 02:35:34 +00:00
Bruce Momjian
42efa28cf7 There are two prototypes for inet_aton, one in include/inet_aton.h, and
another one in Solaris' port-protos.h.

The following patch will bring inet_aton's prototype into scope for
Ultrix to silence a compilation warning.

If the intention is to have inet_aton's prototype in its own header
filer, the declaration in Solaris' port-protos.h should be removed.
If the declaration in port-protos.h is deemed to be the correct
place, a declaration should be added in Ultrix' port-protos.h

regards
Erik Bertelsen
1997-01-14 01:56:44 +00:00
Bruce Momjian
e3c4ac15d3 Another compilation error has surfaced on Ultrix. In spin.c, sem.h must be
included after storage/ipc.h like other similar cases that were changed
recently.

This one has popped up during the last few days.

My sources are sup'ed today, 13. jan 1996.

regards
Erik Bertelsen.
1997-01-14 01:53:11 +00:00
Bruce Momjian
ed3db60321 Fix typo in findstring use. 1997-01-13 16:47:52 +00:00
Bryan Henderson
6ece8a8d0b Part of patch to make a working nextstep port. 1997-01-13 03:54:48 +00:00
Bruce Momjian
0d3bf78e0b Added VERBOSE option to vacuum command. 1997-01-13 03:45:33 +00:00
Bryan Henderson
2de3d96f69 Add nextstep port, courtesy of Ovidiu Predescu. 1997-01-13 01:26:29 +00:00
Marc G. Fournier
ef228cb170 From: Keith Parks <emkxp01@mtcc.demon.co.uk>
OK, The votes are in for the NOFILES limit.

With the exception of Next, for which I've not yet heard, all supported platforms
seem to have the sysconf() call.


port           supported	default	Source.
aix            yes		2000	darrenk@insightdist.com
alpha          yes		4096	mjl@wwx.vip.at
BSD44_derived  yes		64	scrappy@hub.org
bsdi           yes		???	maillist@candle.pha.pa.us
dgux           yes		???	geek@andrew.cmu.edu
hpux           yes		60	emkxp01@mtcc.demon.co.uk
i386_solaris   yes		64	emkxp01@mtcc.demon.co.uk
irix5          yes		200	martin@biochem.uc.ac.uk
linux          yes		256	emkxp01@mtcc.demon.co.uk
next           ????		???
sparc_solaris  yes		64	emkxp01@mtcc.demon.co.uk
sunos4         yes		64	emkxp01@mtcc.demon.co.uk
svr4           yes		64	chicks@chicks.net
ultrix4        yes		64	erik@sockdev.uni-c.dk

So here's a patch that I think will do the job.
(I assume Next will have sysconf() but if not just add MISSING_SYSCONF to
 the config.h file )

Thanks,
Keith.
1997-01-13 01:25:29 +00:00
Bruce Momjian
2595785b9b Shared library cleanup for -fpic. 1997-01-12 04:25:23 +00:00
Bruce Momjian
a5dd06f763 include sem.h added, include string.h neede, from Erik Bertelsen for Ultrix 1997-01-10 20:19:49 +00:00
Bruce Momjian
63b22d8aa9 cleanup for LINUX_ELF 1997-01-10 18:55:24 +00:00
Bruce Momjian
37c168f6ba timeb.h only used when not using POSIX_TIME 1997-01-10 18:22:41 +00:00
Bruce Momjian
59dcac1e5d Makefile's -fpic only for gcc 1997-01-10 18:19:02 +00:00
Bruce Momjian
a0d9bdd99b Massimo fix for non-existant file copy error. 1997-01-10 17:46:33 +00:00
Bruce Momjian
90ff767d14 I found the following bugs in the version 6.0 (dated 961229).
At least the first two should be fixed before the final release of 6.0.

1)      There is a mismatch between the type declared in the catalog for
        the input/output attributes of pg_type and the actual type of
        values stored in the table.  The type of typinput, typoutput,
        typsend and typreceive are declared oid (26) while the values are
        regproc (24).  The error was there also in previous versions but
        nobody noticed it until an Assert has been added in ExecEvalVar.
        The effect is that it is now impossible to replace the typoutput
        of existing data types with new procs.

2)      The identd hba fails after the first time because the data read
        from the identd socket is not zero-terminated and strlen reports
        an incorrect length if the stack contains garbage, which usually
        happens after the first connection has been made.

3)      The new initdb wants to create itself the data directory. This
        implies that the parent directory must be writable by postgres and
        this may not always be desirable.  A better solution would be to
        allow the directory to be created by root and then filled by initdb.
        It would also nice to have some reasonable default for PGLIB and
        PGDATA like the previous version did.  This applies also to the
        postmaster executable.
1997-01-10 17:40:07 +00:00
Vadim B. Mikheev
daec84f09d Fixed (I hope) unique btree index implementation. 1997-01-10 10:06:20 +00:00
Vadim B. Mikheev
c6a605705c index_insert has now HeapRelation as last param (for unique index
implementation).
1997-01-10 10:00:39 +00:00
Vadim B. Mikheev
f48936e8ef index_insert has now HeapRelation as last param (for unique index
implementation).
1997-01-10 09:51:40 +00:00
Vadim B. Mikheev
675457d6ab index_insert has now HeapRelation as last param (for
unique index implementation).
1997-01-10 09:46:33 +00:00
Vadim B. Mikheev
f91b26a5da #include <postgres.h> moved upper 1997-01-09 03:38:14 +00:00
Vadim B. Mikheev
ce5009f99b #include "postgres.h"
moved upper.
1997-01-08 10:33:46 +00:00
Bryan Henderson
3c4b21493d Use proper types so it compiles on DEC C89. Thanks Erik Bertelson. 1997-01-08 08:39:10 +00:00
Bryan Henderson
5e98c40129 Change the way ipc.h is included because sys/ipc.h on Ultrix is broken. 1997-01-08 08:33:07 +00:00
Bryan Henderson
e5ff0b930a Add include of port-protos.h so it works on Ultrix. Thanks Erik Bertelson. 1997-01-08 08:31:07 +00:00
Marc G. Fournier
151d484ca5 Minor changes for NeXT compile
Submitted by: Ovidiu Predescu <ovidiu@bx.logicnet.ro>
1997-01-06 00:20:13 +00:00
Marc G. Fournier
3d53b87369 More config.h syncing for limits.h 1997-01-06 00:15:26 +00:00
Marc G. Fournier
8ec5bd06b7 Add NeXT port submitted by: Ovidiu Predescu <ovidiu@bx.logicnet.ro> 1997-01-06 00:12:34 +00:00
Marc G. Fournier
1321fe1a81 Clean up 'if defined()' for header files... 1997-01-06 00:08:31 +00:00
Marc G. Fournier
8251ce7d10 final fix for shared library under BSD44_derived
Submitted by: "Martin J. Laubach" <mjl@wwx.vip.at>
1997-01-05 23:53:57 +00:00
Marc G. Fournier
3bfbe9a7fd Fixes:
First, this is because of dlopen() and dlsym() having a char *
in the system prototype.

Submitted by: "Martin J. Laubach" <mjl@wwx.vip.at>
1997-01-05 23:43:58 +00:00
Marc G. Fournier
d57d3626cb Just reviewed what I changed as far a dlopen/etc are concerned, and determined
that the "fix" is wrong...
1997-01-05 23:41:43 +00:00
Bryan Henderson
227015b08e Standardize all LDADD to LD_ADD. 1997-01-05 21:17:45 +00:00
Vadim B. Mikheev
068a4c53af Closing opened indices. 1997-01-05 10:58:15 +00:00
Vadim B. Mikheev
8fa5394c49 Releasing empty root page in _bt_endpoint () to avoid
buffer leak.
1997-01-05 10:56:36 +00:00
Marc G. Fournier
4f8db3eb4c FreeBSD doesn't require the dl{open,close,sym,error} functions, as they are
already included in the system libraries.

Used if !defined(__FreeBSD__) to single FreeBSD out from the other BSD44
derived OSs
1997-01-03 04:59:01 +00:00
Bruce Momjian
1a395b7256 ALTER TABLE (text) fix 1997-01-02 06:18:25 +00:00
Bruce Momjian
6da0055274 Fix for SELECT INTO ... GROUP/ORDER BY where table already exists unlink error. 1997-01-01 06:01:16 +00:00
Vadim B. Mikheev
7266928e77 Fixed realloc for increasing tempRels list. 1996-12-31 06:58:27 +00:00