Commit Graph

508 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