correct way to do this. Theoretically you could have a NULL
pointer that isn't represented internally as all 0 bits. This
guarantees that it convert correctly.
Submitted by: darcy@druid.com (D'Arcy J.M. Cain)
NAMEDATALEN
OIDDATALEN
EUROPEAN_DATES
HBA
DEADLOCK_TIMEOUT
OPENLINK_PATCHES
NULL_PATCH
ARRAY_PATCH
Attempting to document and centralize as many of the "defines" as possible...
kinda useless to have defines if nobody knows they exist, eh?
function so I am going to assume that it is such a good idea that no
one sees any point in discussing it. :-) I have made two changes -
I have merged this into pgtclCmds.c and I have taken out any code for
updating tuples after the loop body runs. See comments for discussion
of this.
I have also fixed up the error checking stuff so that break, continue
and syntax errors have the expected result.
Submitted by: D'Arcy Cain
my postmaster 1.07.
It's really simple, the loop dealing with all sockets
can't handle more than one ready socket :-)
A simple logic error dealing with lists.
OR IS THERE ANY REASON FOR SETTING curr TO 0?
Submitted by: Carsten Heyl <Heyl@nads.de>
with some versions of sh, and a bug in the master make file that
causes it to issue the message "postgres has been built" at the wrong
time.
Submitted by: bryanh@giraffe.netgate.net (Bryan Henderson)
To: Postgres95-development <pg95-dev@ki.net>
Subject: [PG95-DEV] postgres.h patch
This removes the parameters from the func_ptr prototype in postgres.h in
2.0.
To: Postgres95-development <pg95-dev@ki.net>
Subject: [PG95-DEV] Makefile.global patch
Can we apply the following patch to make EUROPEAN_DATES consistent with
other parameters?
way one creates a database system. Parts that were in "make install"
are not either in "make all" or initdb. Nothing goes in the PGDATA
directory besides user data. Creating multiple database systems is
easier.
In addition to applying the patch, it is necessary to move the file
libpq/pg_hba to backend/libpq/pg_hba.sample.
Submitted by: Bryan Henderson <bryanh@giraffe.netgate.net>
--- src/backend/storage/file/fd.c Thu Sep 12 17:23:38 1996
***************
*** 262,268 ****
Delete(file);
/* save the seek position */
! fileP->seekPos = lseek(fileP->fd, 0L, SEEK_CUR);
Assert( fileP->seekPos != -1);
/* if we have written to the file, sync it */
--- 262,268 ----
Delete(file);
/* save the seek position */
! fileP->seekPos = (long) lseek(fileP->fd, 0L, SEEK_CUR);
Assert( fileP->seekPos != -1);
/* if we have written to the file, sync it */
Submitted by: Randy Terbush <randy@zyzzyva.com>
- Added the header access/heapam.h.
- Changed all instances of "length" to "data_length" to quiet
the compiler.
- initialized a few variables. The compiler couldn't see that
the code guaranteed that these would be initialized before
being dereferenced. If anyone wants to check my work follow
the usage of these variables and make sure that this true
and wasn't actually a bug in the original code.
- added a missing break statement to a default case. This
was a benign error but bad style.
- layed out heap_sysattrlen differently. I think this way
makes the structure of the code crystal clear. There should
be no actual difference in the actual behaviour of the code.
Submitted by: darcy@druid.druid.com (D'Arcy J.M. Cain)
NOTE: Makefile.custom is commented out, since it isn't there by default.
If you read the section telling you about it to know to create it,
you can uncomment it while you are there ...
current state of development...namely, we are on 2.0
NOTE:
BTW, the is also a check in postmaster which won't let you use an older
version of the database by checking the version number. The version number
of a database is in data/PG_VERSION (a plain ASCII file).
- Andrew
attributes as tcl arrays. The previous code had problems with some chars
used as delimiter by Tcl. The new code should be more robust.
By: Massimo Dal Zotto <dz@cs.unitn.it>
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>
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>
|
|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
|
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>
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>
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
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>
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
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>
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
|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
|
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
---
below my signature, there are a coupls of diffs and files in a shell
archive, which were needed to build postgres95 1.02 on Siemens Nixdorfs
MIPS based SINIX systems. Except for the compiler switches "-W0" and
"-LD-Blargedynsym" these diffs should also apply for other SVR4 based
systems. The changes in "Makefile.global" and "genbki.sh" can probably
be ignored (I needed gawk, to make the script run).
There is one bugfix thou. In "src/backend/parser/sysfunc.c" the
function in this file didn't honor the EUROPEAN_DATES ifdef.
---
Submitted by: Frank Ridderbusch <ridderbusch.pad@sni.de>
Here's a couple more small fixes that I've made to make my runtime
checker happy with the code. More along the lines of those that
I sent in the past, ie, a pointer to an array != the name of
an array. The last patch is that I mailed about yesterday -- I got
two replies of "do it", so it's done. As far as I can tell, however,
the function in question is never called by pg95, so either way
it can't hurt...
From: "Kurt J. Lidl" <lidl@va.pubnix.com>