Bruce Momjian [Sat, 14 Oct 2000 23:56:59 +0000 (23:56 +0000)]
The configure script fails to find <netinet/tcp.h>.
As a result, backend/libpq/pqcomm.c and interfaces/libpq/fe-connect.c
fail to compile.
The <netinet/tcp.h> header needs to be preceded by <netinet/in.h>, at
least on IRIX, Solaris and AIX. The simple configure test fails.
(That header on Linux is idempotent.)
The basic problem is that <netinet/tcp.h> is a BSD header. The
correct header for TCP internals such as TCP_NODELAY on a UNIX system
is <xti.h>. By UNIX I mean UNIX95 (aka XPG4v2 or SUSv1) or later.
The current UNIX standard (UNIX98 aka SUSv2) is available online at
<http://www.opengroup.org/onlinepubs/7908799/>.
The fix is to add header support for <xti.h> into configure.in and
config.h.in.
The 2 files which conditionally include <netinet/tcp.h> need also to
conditionally include <xti.h>.
Bruce Momjian [Sat, 14 Oct 2000 23:55:58 +0000 (23:55 +0000)]
Here is a patch for resultmap and the results file.
I have counted 9 differences in the least significant digit compared
with geometry-positive-zeros.out. It would be wise for someone else
to double check.
Peter Eisentraut [Tue, 10 Oct 2000 21:22:29 +0000 (21:22 +0000)]
Unify solaris_i386 and solaris_sparc templates. They were almost identical
anyway, the rest being due to them not being kept in sync. Add configure
test for lorder and use it (on Solaris) when found.
Bruce Momjian [Tue, 10 Oct 2000 17:13:30 +0000 (17:13 +0000)]
This is a stupid garden variety bug and I'm not sure why I didn't catch
it previously. The patch included is against fairly current sources, but
it may apply cleanly against 7.0.2 as well.
On Fri, 6 Oct 2000, Vilson farias wrote:
> I found a irregular behavior with constraints.
>
> I can only set a referencial integrity between these tables when there are
> no data, even if there are no change to referential integrity violation.
Philip Warner [Tue, 10 Oct 2000 13:55:28 +0000 (13:55 +0000)]
- Be more paranoid when getting views
- Support for 'isstrict' procedure attribute.
- Disable --blobs and --table
(replaced prior to attempting to fix sequence dump problems)
Bruce Momjian [Mon, 9 Oct 2000 03:49:42 +0000 (03:49 +0000)]
I have compiled and tested PostgreSQL 7.1devel on UnixWare 7.1. During the
process, the need for changes to the FAQ_SCO document was uncovered. The
attach patch file implements thost changes.
Bruce Momjian [Sun, 8 Oct 2000 19:37:56 +0000 (19:37 +0000)]
Okay, I have some new code in place that hopefully should work better. I
couldn't produce a full patch using cvs diff -c this time since I have
created new files and anonymous cvs usage doesn't allow you to
adds. I'm supplying the modified src/interfaces/jdbc as a tarball at :
http://www.candleweb.no/~gunnar/projects/pgsql/postgres-jdbc-2000-10-05.tgz
There is now a global static pool of free byte arrays and used byte arrays
connected to a statement object. This is the role of the new PGStatement
class. Access to the global free array is synchronized, while we rely on
the PG_Stream synchronization for the used array.
My measurements show that the perfomance boost on this code is not quite as
big as my last shot, but it is still an improvement. Maybe some of the
difference is due to the new synchronization on the global array. I think I
will look into choosing between on a connection level and global level.
I have also started experimented with improving the performance of the
various conversions. The problem here is ofcourse related handle the
various encodings. One thing I found to speed up ResultSet.getInt() a lot
was to do custom conversion on the byte array into int instead of going
through the getString() to do the conversion. But I'm unsure if this is
portable, can we assume that a digit never can be represented by more than
one byte ? It works fine in my iso-latin-8859-1 environment, but what about
other environments ? Maybe we could provide different ResultSet
implementations depending on the encoding used or delegate some methods of
the result set to an "converter class".
Check the org/postgresql/jdbc2/FastResultSet.java in the tarball above to
see the modified getInt() method.
Bruce Momjian [Sun, 8 Oct 2000 13:49:47 +0000 (13:49 +0000)]
This removes the LDFLAGS from the template and adds an autoconf check
for the library. not sure if this will cause problems on other
platforms, but if it does it can be easily fixed. Also remove the
references to the GeekGadgets includes as the majority of users don't
have them installed and they foul the build process. We can document
that adding them if you have them installed is a good idea.
Bruce Momjian [Sun, 8 Oct 2000 04:38:21 +0000 (04:38 +0000)]
Tom Lane wrote:
> > For a while I though it might be because we are using an alpha TAS in
> > the spinlock rather than the old semaphore. I replaced our spinlock
> > with the standard one and it made no difference. We have been running
> > with our spinlock implementation for nearly 2 months on a production
> > database now without a hitch, so I think it is ok. Did I ever submit
> > any patches for the Alpha spinlock?
>
> Not that I recall. We did get some advice from some Alpha gurus at DEC
> who seemed to think the existing TAS code is OK. What was it that you
> felt needed to be improved?
The current code uses semaphores, which has the advantage that it works
well even on multi-processor machines, but the disadvantage that it is not
the fastest way possible. Writing a spinlock on Alpha for SMP machines is
very difficult, as you need to deal with memory barriers. A real mess. But
then one of the people at Compaq pointed out to us that there is a
ready-made routine on Alpha. We implemented it with the two patches below.
I ran tests with lots of parallel back-ends and got around a 10% speed
increase. I include the two patches. Perhaps some of the other people
running Tru64 can have a look at these as well.
Bruce Momjian [Sun, 8 Oct 2000 03:53:15 +0000 (03:53 +0000)]
Back out:
> this is patch v 0.4 to support transactions with BLOBs.
> All BLOBs are in one table. You need to make initdb.
>
> --
> Sincerely Yours,
> Denis Perchine
To create a temporary installation, the regression test driver should use
the make program that was used to build itself. This seems more correct
than guessing around for some gmake.
Bruce Momjian [Sat, 7 Oct 2000 14:39:21 +0000 (14:39 +0000)]
The beos port in the source tree doesn't even compile. and even
after that dynamic loading isn't working and shared memory handling is
broken.
Attached with this message, there is a Zip file which contain :
* beos.diff = patch file generated with difforig
* beos = folder with beos support files which need to be moved in /
src/backend/port
* expected = foler with three file for message and precision
difference in regression test
* regression.diff = rule problem (need to kill the backend manualy)
* dynloader = dynloader files (they are also in the pacth files,
but there is so much modification that I have join full files)
Everything works except a problem in 'rules' Is there some problems
with rules in the current tree ? It used to works with last week tree.
Tom Lane [Sat, 7 Oct 2000 00:58:23 +0000 (00:58 +0000)]
Arrange that no database accesses are attempted during parser() --- this
took some rejiggering of typename and ACL parsing, as well as moving
parse_analyze call out of parser(). Restructure postgres.c processing
so that parse analysis and rewrite are skipped when in abort-transaction
state. Only COMMIT and ABORT statements will be processed beyond the raw
parser() phase. This addresses problem of parser failing with database access
errors while in aborted state (see pghackers discussions around 7/28/00).
Also fix some bugs with COMMIT/ABORT statements appearing in the middle of
a single query input string.
Function, operator, and aggregate arguments/results can now use full
TypeName production, in particular foo[] for array types.
DROP OPERATOR and COMMENT ON OPERATOR were broken for unary operators.
Allow CREATE AGGREGATE to accept unquoted numeric constants for initcond.