a while back I posted a patch for pg_ident, the patch worked but I didn't
diagnose the problem properly.
on my compiler(gcc2.7.2) this compiles with no errors...
char buf[1000]; if(buf != '\0') {
...but it doesn't compare '\0' with the first char of buf.
There is an error in the configure script when using
--with-pgport= that will cause the compiled version of
PostgreSQL to no longer allow connections to the
new port and to treat shared memory improperly.
What happens is that if the port is changed, the configure
script defines DEF_PGPORT as "", which atoi() will return
as 0, which makes the IPC_KEY value 0. This then causes
semaphores to be allocated, but never released. Postgres
eventually returns from semget() with
"no space left on device". The source of this error could
easily be overlooked in version 6.3 since it is possible
to connect via UNIX domain sockets, and having DEF_PGPORT
defined as "0" would not be noticed until TCP was used.
The following patch is to src/interfaces/libpq of postgresql-6.3.
The purpose of the patch is to make the initialization of
const char *pgresStatus[] match the ExecStatusType enum.
6.3 postmaster is supposed to work with pre 6.3 protocol. This is true
for little endian architecture servers. But for big endian machines
such as Sparc the backward compatibility function do not work.
Attached are patches to fix the problem.
For substr() and substring() on the text data type, the relevant code is in
varlena.c. You are right, there is a problem. I have a patch which I will
apply to the source tree soon. The copy enclosed below probably does not
preserve tabs correctly so cannot be applied directly; the relevant change
is simply changing the ">=" to ">"...
It is my hope that the following "patches" to libpgtcl get included
in the next release.
See the update to the README file to get a full description of the changes.
This version of libpgtcl is completely interpreter-safe, implements the
database connection handle as a channel (no events yet, but will make it
a lot easier to do fileevents on it in the future), and supports the SQL
"copy table to stdout" and "copy table from stdin" commands, with the
I/O being from and to the connection handle. The connection and result
handles are formatted in a way to make access to the tables more efficient.
Included are patches intended for allowing PostgreSQL to handle
multi-byte charachter sets such as EUC(Extende Unix Code), Unicode and
Mule internal code. With the MB patch you can use multi-byte character
sets in regexp and LIKE. The encoding system chosen is determined at
the compile time.
To enable the MB extension, you need to define a variable "MB" in
Makefile.global or in Makefile.custom. For further information please
take a look at README.mb under doc directory.
(Note that unlike "jp patch" I do not use modified GNU regexp any
more. I changed Henry Spencer's regexp coming with PostgreSQL.)
Included are patches intended for allowing PostgreSQL to handle
multi-byte charachter sets such as EUC(Extende Unix Code), Unicode and
Mule internal code. With the MB patch you can use multi-byte character
sets in regexp and LIKE. The encoding system chosen is determined at
the compile time.
To enable the MB extension, you need to define a variable "MB" in
Makefile.global or in Makefile.custom. For further information please
take a look at README.mb under doc directory.
(Note that unlike "jp patch" I do not use modified GNU regexp any
more. I changed Henry Spencer's regexp coming with PostgreSQL.)
Ok, this fixes three things:
1. It seems (from tests submitted by two people with JBuilder) that
JBuilder expects a responce from ResultSetMetaData.getPrecision() &
getScale() when used on non numeric types. This patch makes these
methods return 0, instead of throwing an exception.
2. Fixes a small bug where getting the postgresql type name returns null.
3. Fixes a problem with ResultSet.getObject() where getting it's string
value returns null if you case the object as (PGobject), but returns
the value if you case it as it's self.
Patch1:
Postgres thinks dist_pl (dist of a point to a line) is expecting a box (603)
for the right arg, but it really should be a line (628).
Otherwise the left & right args match those of dist_pb (dist of a point to a
box) two lines further down.
Patch2:
Anyways, these two functions take a path (602) whereas in pg_proc.h they are
listed as taking a lseg (601).
1. Make 'all' works without complaint. Don't have to add the .exp
files to the files list. They are made automagically when
making the respective shared lib file.
Only port that actually uses EXPSUFF (from makefiles/Makefile.*)
is Aix, so if this breaks anybody else, let me know, asap.
2. Make 'clean' actually cleans up correctly. Previously, it would
leave the .o files in C-code directory.
3. Changed references to reflect new location of .c files.
4. Added DELETE statements to complex.source so that it tidies up
when done. Previously, it would leave things in pg_amop,
pg_amproc and pg_opclass. Only possible to do this with the
new SUBSELECT code in 6.3. Nice work, fellas...
Not deleting the index entries would cause a non-fatal error if
complex.sql was run again on the same database. Much tidier now.
5. Corrected the README. obj directory hasn't existed since Bryan
redid the make way back when. Also changed the snipet from psql
to match the current version. POSTGRES95?!? I don't think so. :)