Commit Graph

16221 Commits

Author SHA1 Message Date
Marc G. Fournier
33dccad831 enable PQ_NOTIFY_PATCH in config.h 1996-09-16 05:52:51 +00:00
Marc G. Fournier
bbebcb125e Fixes:
Async notifies received while a backend is in the middle of a begin/end
transaction block are lost by libpq when the final end command is issued.

The bug is in the routine PQexec of libpq. The routine throws away any
message from the backend when a message of type 'C' is received. This
type of message is sent when the result of a portal query command with
no tuples is returned. Unfortunately this is the case of the end command.
As all async notification are sent only when the transaction is finished,
if they are received in the middle of a transaction they are lost in the
libpq library. I added some tracing code to PQexec and this is the output:

Submitted by: Massimo Dal Zotto <dz@cs.unitn.it>
1996-09-16 05:50:46 +00:00
Marc G. Fournier
e3b41d40fa More code cleanups from "Kurt J. Lidl" <lidl@va.pubnix.com> 1996-09-16 05:40:31 +00:00
Marc G. Fournier
df6ca83a5b Enable FUNC_UTIL_PATCH by default 1996-09-16 05:39:04 +00:00
Marc G. Fournier
906651f663 There is a bug in the function executor. The backend crashes while trying to
execute an sql function containing an utility command (create, notify, ...).
The bug is part in the planner, which returns a number of plans different
than the number of commands if there are utility commands in the query, and
in part in the function executor which assumes that all commands are normal
query commands and causes a SIGSEGV trying to execute commands without plan.

Submitted by: Massimo Dal Zotto <dz@cs.unitn.it>
1996-09-16 05:36:38 +00:00
Marc G. Fournier
475493130d |Subject: Postgres patch: Assert attribute type match
|
|Here's a patch for Version 2 only.  It just adds an Assert to catch some
|inconsistencies in the catalog classes.
|
|--
|Bryan Henderson                                    Phone 408-227-6803
|San Jose, California
|
1996-09-16 05:33:20 +00:00
Marc G. Fournier
c5dd292007 Add use of INDEXSCAN_PATCH to config.h instead of putting it in Makefile.global 1996-09-10 06:51:28 +00:00
Marc G. Fournier
796f78998e Fixes:
The problem is that the function arguments are not considered as possible key
candidates for index scan and so only a sequential scan is possible inside
the body of a function.  I have therefore made some patches to the optimizer
so that indices are now used also by functions.  I have also moved the plan
debug message from pg_eval to pg_plan so that it is printed also for plans
genereated for function execution.  I had also to add an index rescan to the
executor because it ignored the parameters set in the execution state, they
were flagged as runtime variables in ExecInitIndexScan but then never used
by the executor so that the scan were always done with any key=1. Very odd.
This means that an index rescan is now done twice for each function execution
which uses an index, the first time when the index scan is initialized and
the second when the actual function arguments are finally available for the
execution.  I don't know what is the cost of an double index scan but I
suppose it is anyway less than the cost of a full sequential scan, at leat
for large tables. This is my patch, you must also add -DINDEXSCAN_PATCH in
Makefile.global to enable the changes.

Submitted by: Massimo Dal Zotto <dz@cs.unitn.it>
1996-09-10 06:48:52 +00:00
Marc G. Fournier
f2f53aee0f Fixes:
The comparison routines for text and char data type give incorrect results
if the input data contains characters greater than 127.  As these routines
perform the comparison using signed char variables all character codes
greater than 127 are interpreted as less than 0.  These codes are used to
encode the iso8859 char sets.
The other text-like data types seem to work as expected as they use unsigned
chars in comparisons.


Submitted by: Massimo Dal Zotto <dz@cs.unitn.it>
1996-09-10 06:41:38 +00:00
Marc G. Fournier
1ba34d91fc Cleaned up a spurious '-' ...
Pointed out by: ernst.molitor@uni-bonn.de
1996-09-10 06:23:46 +00:00
Marc G. Fournier
28fad34c7b modifications required to reflect centralized include files 1996-08-28 23:02:43 +00:00
Marc G. Fournier
4978d3f4bb modifications required to reflect centralized include files 1996-08-28 22:50:24 +00:00
Marc G. Fournier
870be9fa8e Clean up th ecompile process by centralizing the include files
- code compile tested, but due to a yet unresolved problem with
          parse.h's creation, compile not completed...
1996-08-28 07:27:54 +00:00
Marc G. Fournier
907c884fe8 Went back one directory too far for the -I include 1996-08-28 02:18:00 +00:00
Marc G. Fournier
f634c14c9e Path to pg_proc.h to create fmgrtab.c change to include/catalog 1996-08-28 02:13:10 +00:00
Marc G. Fournier
1054097464 More cleanups of the include files
- centralizing to simplify the -I's required to compile
1996-08-28 01:59:28 +00:00
Marc G. Fournier
ca405ae4bf Moved the include files to src/include/regex 1996-08-28 01:55:44 +00:00
Marc G. Fournier
5c0d6ccdbf Redundant -I pointer to port/<portname> 1996-08-28 01:50:01 +00:00
Marc G. Fournier
ad5a3141a2 c.h is included in postgres.h already 1996-08-28 01:23:59 +00:00
Marc G. Fournier
b8a0bb68c9 Should finish cleaning out the machine.h includes 1996-08-27 22:21:34 +00:00
Marc G. Fournier
6196646291 Remove include of machine.h 1996-08-27 22:20:28 +00:00
Marc G. Fournier
3c0f8ed4ae Remove all traces of machine.h and redundant calls to c.h where
postgres.h already pulled in (postgres.h includes c.h)
1996-08-27 22:15:17 +00:00
Marc G. Fournier
a88b72ea39 #ifndef the include file like the rest, so that it doesn't get pulled
in twice...
1996-08-27 22:09:10 +00:00
Marc G. Fournier
54223de000 Oops, win32 does have one more thing in its machine.h...move that
define to config.h
1996-08-27 22:07:59 +00:00
Marc G. Fournier
3a606407c7 We have a machine.h for each platform just because of BLCKSZ, and every
platform with a machine.h has the same BLCKSZ?

Consolidate machine.h into config.h
1996-08-27 22:06:30 +00:00
Marc G. Fournier
eadf5dc754 #include "postgres.h" exists in most .c files in system, so adding
#include "config.h" here will (should?) ensure that any platform
dependencies defined in config.h should be reflected in all .c files...
1996-08-27 22:00:21 +00:00
Marc G. Fournier
5a8820efcd Moved from backend/access to include/access 1996-08-27 21:50:29 +00:00
Marc G. Fournier
9247b29228 The use of include files is a mess...alot of redundancy, it seems...
First Step: Centralize them under on src/include hierarchy
1996-08-27 21:49:14 +00:00
Marc G. Fournier
e1f31a2bb6 added #include "config.h" for ESCAPE_PATCH define 1996-08-27 07:42:29 +00:00
Marc G. Fournier
43eeb64688 Removed -DESCAPE_PATCH ... moved to include/config.h 1996-08-27 07:41:17 +00:00
Marc G. Fournier
321b8c80fd At this rate, maybe next year sometime I'll get this done...
Goals: reduce the difficulty of porting from platform to platform,
       release to release, but moving as much as possible into config.h
1996-08-27 07:32:33 +00:00
Marc G. Fournier
e733befeed One file at a time, one directory after the other...this is going
to be one helluva chore to clean up...
1996-08-27 07:30:55 +00:00
Marc G. Fournier
849292a188 first attempt at centralizing config information for ports 1996-08-27 06:56:08 +00:00
Marc G. Fournier
c028568217 first pass...move some of the "Port" dependencies to src/include/config.h 1996-08-27 06:55:28 +00:00
Marc G. Fournier
672aec6ce3 Reduce -DPORTNAME_$(PORTNAME) down to just -D$(PORTNAME) 1996-08-27 06:52:34 +00:00
Marc G. Fournier
1da12ffb12 Its a start... 1996-08-27 06:14:29 +00:00
Marc G. Fournier
51b3f2d371 Create support for a "common" include directory for the source
tree, instead of having include files all over the place...

Immediate goal...a 'config.h' file so that we can make #ifdef's
being used throughout the code more a rarity as far as porting
is concerned
1996-08-27 06:10:50 +00:00
Marc G. Fournier
bfc308d196 Damn, we really need to clean up this "include file" dilemna...
include files *everywhere* ;(
1996-08-26 23:04:07 +00:00
Marc G. Fournier
491b9b89c4 The patch that is applied at the end of the email makes sure that these
conditions are always met. The patch can be applied to any version
of Postgres95 from 1.02 to 1.05. After applying the patch, queries
using indices on bpchar and varchar fields should (hopefully ;-) )
always return the same tuple set regardless to the fact whether
indices are used or not.

Submitted by: Gerhard Reithofer <tbr_laa@AON.AT>
1996-08-26 20:38:52 +00:00
Marc G. Fournier
e78fe652f4 Oops, thanks to Dan McGuirk for pointing out that I missed part of
the commit :(

Here's the rest of the GiST code thta was missing...
1996-08-26 20:02:12 +00:00
Marc G. Fournier
2fd6061e1c Quick fix of the PG-GiST import pointed out by Dan 1996-08-26 19:59:15 +00:00
Marc G. Fournier
a2740a455f There, now we support GiST...now what? :) 1996-08-26 06:32:06 +00:00
Marc G. Fournier
fe87dbb140 Roll in patch that fixes problem with sed 3.0
submitted by: Dan McGuirk
1996-08-26 06:04:49 +00:00
Marc G. Fournier
c449668d3e Fix prototype for dumpClasses 1996-08-26 05:46:39 +00:00
Marc G. Fournier
61eaefe9a6 This patch for Versions 1 and 2 corrects the following bug:
In a catalog class that has a "name" type attribute, UPDATEing of an
instance of that class may destroy all of the attributes of that
instance that are stored as or after the "name" attribute.

This is caused by the alignment value of the "name" type being set to
"double" in Class pg_type, but "integer" in Class pg_attribute.
Postgres constructs a tuple using double alignment, but interprets it
using integer alignment.

The fix is to change the alignment to integer in pg_type.

Note that this corrects the problem for new Postgres systems.  Existing
databases already contain the error and it can't easily be repaired because
this very bug prevents updating the class that contains it.

--
Bryan Henderson                                    Phone 408-227-6803
San Jose, California
1996-08-24 20:56:16 +00:00
Marc G. Fournier
208a30f23d The patch does several things:
It adds a WITH OIDS option to the copy command, which allows
dumping and loading of oids.

        If a copy command tried to load in an oid that is greater than
its current system max oid, the system max oid is incremented.  No
checking is done to see if other backends are running and have cached
oids.

        pg_dump as its first step when using the -o (oid) option, will
copy in a dummy row to set the system max oid value so as rows are
loaded in, they are certain to be lower than the system oid.

        pg_dump now creates indexes at the end to speed loading


Submitted by:  Bruce Momjian <maillist@candle.pha.pa.us>
1996-08-24 20:49:41 +00:00
Marc G. Fournier
2adb6d703b Here's the fix for the problem that Evan Champion reported today.
This presumably corrects a problem of initdb failing on systems that have
an awk that is sensitive to this.

--
Bryan Henderson                                    Phone 408-227-6803
San Jose, California
1996-08-24 20:38:56 +00:00
Marc G. Fournier
e2c9fd8e87 |May I suggest to add access to the oid of an inserted
|record, by a small patch to libpq++? At least until the
|feature that will allow dumped oid's to be re-loaded into
|a database becomes available, I need access to the oids
|of newly created records... To this end, I have written a
|three-line wrapper for the PQoidStatus function in libpq and
|named this wrapper OidStatus() (I'd appreciate suggestions for
|a name that would better fit into the general naming scheme).
|
|Regards,
|
|Ernst
|
1996-08-21 04:32:09 +00:00
Marc G. Fournier
5e773a4f70 Here's a patch for Versions 1 and 2 that fixes the following bug:
When you try to do any UPDATE of the catalog class pg_class, such as
to change ownership of a class, the backend crashes.

This is really two serial bugs: 1) there is a hardcoded copy of the
schema of pg_class in the postgres program, and it doesn't match the
actual class that initdb creates in the database; 2) Parts of postgres
determine whether to pass an attribute value by value or by reference
based on the attbyval attribute of the attribute in class
pg_attribute.  Other parts of postgres have it hardcoded.  For the
relacl[] attribute in class pg_class, attbyval does not match the
hardcoded expectation.

The fix is to correct the hardcoded schema for pg_attribute and to
change the fetchatt macro so it ignores attbyval for all variable
length attributes.  The fix also adds a bunch of logic documentation and
extends genbki.sh so it allows source files to contain such documentation.

--
Bryan Henderson                                    Phone 408-227-6803
San Jose, California
1996-08-21 04:25:49 +00:00
Marc G. Fournier
93ad36fdc2 USE_TCL should default to false, ntot true... 1996-08-21 04:08:17 +00:00