mirror of
https://github.com/postgres/postgres.git
synced 2025-04-21 12:05:57 +03:00
Add gcj discussion.
This commit is contained in:
parent
62636a3d4b
commit
08dd92cdeb
@ -2244,3 +2244,483 @@ TIP 3: if posting/reading through Usenet, please send an appropriate
|
|||||||
subscribe-nomail command to majordomo@postgresql.org so that your
|
subscribe-nomail command to majordomo@postgresql.org so that your
|
||||||
message can get through to the mailing list cleanly
|
message can get through to the mailing list cleanly
|
||||||
|
|
||||||
|
From pgsql-hackers-owner+M31158@postgresql.org Wed Oct 30 14:31:27 2002
|
||||||
|
Return-path: <pgsql-hackers-owner+M31158@postgresql.org>
|
||||||
|
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||||
|
by candle.pha.pa.us (8.11.6/8.10.1) with ESMTP id g9UJVQU07194
|
||||||
|
for <pgman@candle.pha.pa.us>; Wed, 30 Oct 2002 14:31:26 -0500 (EST)
|
||||||
|
Received: from localhost (postgresql.org [64.49.215.8])
|
||||||
|
by postgresql.org (Postfix) with ESMTP
|
||||||
|
id 353C9476C3C; Wed, 30 Oct 2002 14:30:18 -0500 (EST)
|
||||||
|
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||||
|
by postgresql.org (Postfix) with SMTP
|
||||||
|
id D8787476C72; Wed, 30 Oct 2002 14:30:06 -0500 (EST)
|
||||||
|
Received: from localhost (postgresql.org [64.49.215.8])
|
||||||
|
by postgresql.org (Postfix) with ESMTP id A8D81476C42
|
||||||
|
for <pgsql-hackers@postgreSQL.org>; Wed, 30 Oct 2002 14:29:57 -0500 (EST)
|
||||||
|
Received: from sss.pgh.pa.us (unknown [192.204.191.242])
|
||||||
|
by postgresql.org (Postfix) with ESMTP id 04987476C71
|
||||||
|
for <pgsql-hackers@postgreSQL.org>; Wed, 30 Oct 2002 14:29:57 -0500 (EST)
|
||||||
|
Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
|
||||||
|
by sss.pgh.pa.us (8.12.5/8.12.5) with ESMTP id g9UJTvhR000820
|
||||||
|
for <pgsql-hackers@postgreSQL.org>; Wed, 30 Oct 2002 14:29:57 -0500 (EST)
|
||||||
|
To: pgsql-hackers@postgresql.org
|
||||||
|
Subject: [HACKERS] PG functions in Java: maybe use gcj?
|
||||||
|
Date: Wed, 30 Oct 2002 14:29:57 -0500
|
||||||
|
Message-ID: <819.1036006197@sss.pgh.pa.us>
|
||||||
|
From: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
X-Virus-Scanned: by AMaViS new-20020517
|
||||||
|
Precedence: bulk
|
||||||
|
Sender: pgsql-hackers-owner@postgresql.org
|
||||||
|
X-Virus-Scanned: by AMaViS new-20020517
|
||||||
|
Status: OR
|
||||||
|
|
||||||
|
I had an interesting conversation today with Tom Tromey and Andrew Haley
|
||||||
|
of Red Hat about how to implement "pljava" for Postgres. Rather than
|
||||||
|
futzing with an external JVM, their thought is to use gcj (gcc compiling
|
||||||
|
Java). It sounds like this approach would mostly just work, modulo
|
||||||
|
needing to use a small amount of C++ code to call the defined APIs for
|
||||||
|
gcj.
|
||||||
|
|
||||||
|
This would not be a perfect solution: gcj isn't yet ported everywhere,
|
||||||
|
and it would probably not play nice on machines where the standard C
|
||||||
|
library isn't thread-safe. But it seems a lot more within reach than
|
||||||
|
the approaches we've discussed in the past.
|
||||||
|
|
||||||
|
I'm not volunteering to try to do this, but I wanted to toss the idea
|
||||||
|
up in the air and see if anyone wants to try it. Tom and Andrew
|
||||||
|
indicated they'd be willing to help out with advice etc for anyone
|
||||||
|
who wants to take on the project.
|
||||||
|
|
||||||
|
regards, tom lane
|
||||||
|
|
||||||
|
---------------------------(end of broadcast)---------------------------
|
||||||
|
TIP 2: you can get off all lists at once with the unregister command
|
||||||
|
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
|
||||||
|
|
||||||
|
From pgsql-hackers-owner+M31173@postgresql.org Wed Oct 30 22:51:48 2002
|
||||||
|
Return-path: <pgsql-hackers-owner+M31173@postgresql.org>
|
||||||
|
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||||
|
by candle.pha.pa.us (8.11.6/8.10.1) with ESMTP id g9V3pkU27163
|
||||||
|
for <pgman@candle.pha.pa.us>; Wed, 30 Oct 2002 22:51:46 -0500 (EST)
|
||||||
|
Received: from localhost (postgresql.org [64.49.215.8])
|
||||||
|
by postgresql.org (Postfix) with ESMTP
|
||||||
|
id CC02B476CE9; Wed, 30 Oct 2002 22:51:42 -0500 (EST)
|
||||||
|
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||||
|
by postgresql.org (Postfix) with SMTP
|
||||||
|
id 30D78476087; Wed, 30 Oct 2002 22:51:25 -0500 (EST)
|
||||||
|
Received: from localhost (postgresql.org [64.49.215.8])
|
||||||
|
by postgresql.org (Postfix) with ESMTP id 49189475A1E
|
||||||
|
for <pgsql-hackers@postgresql.org>; Wed, 30 Oct 2002 22:51:18 -0500 (EST)
|
||||||
|
Received: from mail.xythos.com (sdsl-216-36-77-241.dsl.sjc.megapath.net [216.36.77.241])
|
||||||
|
by postgresql.org (Postfix) with ESMTP id B9C5B474E5C
|
||||||
|
for <pgsql-hackers@postgresql.org>; Wed, 30 Oct 2002 22:51:17 -0500 (EST)
|
||||||
|
Received: from ravms by mail.xythos.com with mail-ok (Exim 3.36 #3)
|
||||||
|
id 1876OD-0006U9-00; Thu, 31 Oct 2002 03:53:01 +0000
|
||||||
|
Received: from h-66-166-17-184.snvacaid.covad.net ([66.166.17.184] helo=xythos.com)
|
||||||
|
by mail.xythos.com with asmtp (Exim 3.36 #3)
|
||||||
|
id 1876OC-0006Ty-00; Thu, 31 Oct 2002 03:53:00 +0000
|
||||||
|
Message-ID: <3DC0AA42.4000205@xythos.com>
|
||||||
|
Date: Wed, 30 Oct 2002 19:57:54 -0800
|
||||||
|
From: Barry Lind <blind@xythos.com>
|
||||||
|
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.1) Gecko/20020826
|
||||||
|
X-Accept-Language: en-us, en
|
||||||
|
MIME-Version: 1.0
|
||||||
|
To: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
cc: pgsql-hackers@postgresql.org
|
||||||
|
Subject: Re: [HACKERS] PG functions in Java: maybe use gcj?
|
||||||
|
References: <819.1036006197@sss.pgh.pa.us>
|
||||||
|
Content-Type: text/plain; charset=us-ascii; format=flowed
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
X-Envelope-To: tgl@sss.pgh.pa.us,
|
||||||
|
pgsql-hackers@postgreSQL.org
|
||||||
|
X-Virus-Scanned: by AMaViS new-20020517
|
||||||
|
Precedence: bulk
|
||||||
|
Sender: pgsql-hackers-owner@postgresql.org
|
||||||
|
X-Virus-Scanned: by AMaViS new-20020517
|
||||||
|
Status: OR
|
||||||
|
|
||||||
|
I am not sure I follow. Are you suggesting:
|
||||||
|
|
||||||
|
1) create function takes java source and then calls gcj to compile it
|
||||||
|
to native and build a .so from it that would get called at runtime?
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
2) create function takes java source and just compiles to java .class
|
||||||
|
files and the runtime invokes the gcj java interpreter.
|
||||||
|
|
||||||
|
or I guess you could do both at the same time.
|
||||||
|
|
||||||
|
In either case I am concerned about licensing issues. gcj is not under
|
||||||
|
a BSD style license. Depending on what you need you are either dealing
|
||||||
|
with regular GPL, LGPL, or LGPL with a special java exception.
|
||||||
|
|
||||||
|
I beleive (without giving it too much thought) that doing either 1 or 2
|
||||||
|
above would end up linking GPL code into postgres. This can be worked
|
||||||
|
around by requiring the the necessary gcj libraries be installed
|
||||||
|
separately and detected at configure time (like is done elsewhere). But
|
||||||
|
is does (I think) present a problem for commercial products that would
|
||||||
|
like to redistribute postgres with pljava.
|
||||||
|
|
||||||
|
|
||||||
|
Another challenge here it that the java code is going to want to use the
|
||||||
|
jdbc api when communicating with the database. One difficulty here is
|
||||||
|
getting jdbc to be part of the same transaction as the calling java
|
||||||
|
function. Such that if the java stored procedure selects or updates
|
||||||
|
data it is doing it in the same transaction as the caller of the
|
||||||
|
function. Today the jdbc driver only knows how to communicate via the
|
||||||
|
FE/BE protocol which will end up creating a new process and transaction.
|
||||||
|
The jdbc driver would need to not use the FE/BE protocol but instead
|
||||||
|
probably use jni calls.
|
||||||
|
|
||||||
|
thanks,
|
||||||
|
--Barry
|
||||||
|
|
||||||
|
|
||||||
|
Tom Lane wrote:
|
||||||
|
> I had an interesting conversation today with Tom Tromey and Andrew Haley
|
||||||
|
> of Red Hat about how to implement "pljava" for Postgres. Rather than
|
||||||
|
> futzing with an external JVM, their thought is to use gcj (gcc compiling
|
||||||
|
> Java). It sounds like this approach would mostly just work, modulo
|
||||||
|
> needing to use a small amount of C++ code to call the defined APIs for
|
||||||
|
> gcj.
|
||||||
|
>
|
||||||
|
> This would not be a perfect solution: gcj isn't yet ported everywhere,
|
||||||
|
> and it would probably not play nice on machines where the standard C
|
||||||
|
> library isn't thread-safe. But it seems a lot more within reach than
|
||||||
|
> the approaches we've discussed in the past.
|
||||||
|
>
|
||||||
|
> I'm not volunteering to try to do this, but I wanted to toss the idea
|
||||||
|
> up in the air and see if anyone wants to try it. Tom and Andrew
|
||||||
|
> indicated they'd be willing to help out with advice etc for anyone
|
||||||
|
> who wants to take on the project.
|
||||||
|
>
|
||||||
|
> regards, tom lane
|
||||||
|
>
|
||||||
|
> ---------------------------(end of broadcast)---------------------------
|
||||||
|
> TIP 2: you can get off all lists at once with the unregister command
|
||||||
|
> (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
|
||||||
|
>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
---------------------------(end of broadcast)---------------------------
|
||||||
|
TIP 5: Have you checked our extensive FAQ?
|
||||||
|
|
||||||
|
http://www.postgresql.org/users-lounge/docs/faq.html
|
||||||
|
|
||||||
|
From pgsql-hackers-owner+M31175@postgresql.org Wed Oct 30 23:10:42 2002
|
||||||
|
Return-path: <pgsql-hackers-owner+M31175@postgresql.org>
|
||||||
|
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||||
|
by candle.pha.pa.us (8.11.6/8.10.1) with ESMTP id g9V4AeU28809
|
||||||
|
for <pgman@candle.pha.pa.us>; Wed, 30 Oct 2002 23:10:41 -0500 (EST)
|
||||||
|
Received: from localhost (postgresql.org [64.49.215.8])
|
||||||
|
by postgresql.org (Postfix) with ESMTP
|
||||||
|
id 8C73B476AD5; Wed, 30 Oct 2002 23:10:33 -0500 (EST)
|
||||||
|
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||||
|
by postgresql.org (Postfix) with SMTP
|
||||||
|
id 2E9DC4761DF; Wed, 30 Oct 2002 23:10:31 -0500 (EST)
|
||||||
|
Received: from localhost (postgresql.org [64.49.215.8])
|
||||||
|
by postgresql.org (Postfix) with ESMTP id 1A441475A1E
|
||||||
|
for <pgsql-hackers@postgreSQL.org>; Wed, 30 Oct 2002 23:10:25 -0500 (EST)
|
||||||
|
Received: from sss.pgh.pa.us (unknown [192.204.191.242])
|
||||||
|
by postgresql.org (Postfix) with ESMTP id 7D378474E5C
|
||||||
|
for <pgsql-hackers@postgreSQL.org>; Wed, 30 Oct 2002 23:10:24 -0500 (EST)
|
||||||
|
Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
|
||||||
|
by sss.pgh.pa.us (8.12.5/8.12.5) with ESMTP id g9V4AThR003716;
|
||||||
|
Wed, 30 Oct 2002 23:10:29 -0500 (EST)
|
||||||
|
To: Barry Lind <blind@xythos.com>
|
||||||
|
cc: pgsql-hackers@postgresql.org
|
||||||
|
Subject: Re: [HACKERS] PG functions in Java: maybe use gcj?
|
||||||
|
In-Reply-To: <3DC0AA42.4000205@xythos.com>
|
||||||
|
References: <819.1036006197@sss.pgh.pa.us> <3DC0AA42.4000205@xythos.com>
|
||||||
|
Comments: In-reply-to Barry Lind <blind@xythos.com>
|
||||||
|
message dated "Wed, 30 Oct 2002 19:57:54 -0800"
|
||||||
|
Date: Wed, 30 Oct 2002 23:10:28 -0500
|
||||||
|
Message-ID: <3715.1036037428@sss.pgh.pa.us>
|
||||||
|
From: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
X-Virus-Scanned: by AMaViS new-20020517
|
||||||
|
Precedence: bulk
|
||||||
|
Sender: pgsql-hackers-owner@postgresql.org
|
||||||
|
X-Virus-Scanned: by AMaViS new-20020517
|
||||||
|
Status: OR
|
||||||
|
|
||||||
|
Barry Lind <blind@xythos.com> writes:
|
||||||
|
> I am not sure I follow. Are you suggesting:
|
||||||
|
> 1) create function takes java source and then calls gcj to compile it
|
||||||
|
> to native and build a .so from it that would get called at runtime?
|
||||||
|
> or
|
||||||
|
> 2) create function takes java source and just compiles to java .class
|
||||||
|
> files and the runtime invokes the gcj java interpreter.
|
||||||
|
> or I guess you could do both at the same time.
|
||||||
|
|
||||||
|
The impression I had (after not looking very closely) was that you could
|
||||||
|
expect to compile to bytecodes on the fly and then run the gcj
|
||||||
|
interpreter. But the .so alternative might be a good fallback if that
|
||||||
|
doesn't work.
|
||||||
|
|
||||||
|
> In either case I am concerned about licensing issues. gcj is not under
|
||||||
|
> a BSD style license. Depending on what you need you are either dealing
|
||||||
|
> with regular GPL, LGPL, or LGPL with a special java exception.
|
||||||
|
> I beleive (without giving it too much thought) that doing either 1 or 2
|
||||||
|
> above would end up linking GPL code into postgres. This can be worked
|
||||||
|
> around by requiring the the necessary gcj libraries be installed
|
||||||
|
> separately and detected at configure time (like is done elsewhere). But
|
||||||
|
> is does (I think) present a problem for commercial products that would
|
||||||
|
> like to redistribute postgres with pljava.
|
||||||
|
|
||||||
|
Good point, but unless you want to build a BSD-license Java
|
||||||
|
implementation, there will never be a pljava that doesn't have different
|
||||||
|
licensing restrictions than PG itself does. gcj is at least more free
|
||||||
|
than either Sun's or IBM's JVM ...
|
||||||
|
|
||||||
|
> Another challenge here it that the java code is going to want to use the
|
||||||
|
> jdbc api when communicating with the database.
|
||||||
|
|
||||||
|
Yes. I think we'd need a new implementation of jdbc that sits atop SPI
|
||||||
|
(invoked via jni I guess) rather than a FE/BE connection. How well
|
||||||
|
layered is our jdbc code --- would this mean a large rewrite, or just
|
||||||
|
rolling in a new bottom layer?
|
||||||
|
|
||||||
|
regards, tom lane
|
||||||
|
|
||||||
|
---------------------------(end of broadcast)---------------------------
|
||||||
|
TIP 3: if posting/reading through Usenet, please send an appropriate
|
||||||
|
subscribe-nomail command to majordomo@postgresql.org so that your
|
||||||
|
message can get through to the mailing list cleanly
|
||||||
|
|
||||||
|
From pgsql-hackers-owner+M31202@postgresql.org Thu Oct 31 21:18:38 2002
|
||||||
|
Return-path: <pgsql-hackers-owner+M31202@postgresql.org>
|
||||||
|
Received: from west.navpoint.com (west.navpoint.com [207.106.42.13])
|
||||||
|
by candle.pha.pa.us (8.11.6/8.10.1) with ESMTP id gA12ILU00147
|
||||||
|
for <pgman@candle.pha.pa.us>; Thu, 31 Oct 2002 21:18:37 -0500 (EST)
|
||||||
|
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||||
|
by west.navpoint.com (8.11.6/8.10.1) with ESMTP id g9VHv8h08054
|
||||||
|
for <pgman@candle.pha.pa.us>; Thu, 31 Oct 2002 12:57:08 -0500 (EST)
|
||||||
|
Received: from localhost (postgresql.org [64.49.215.8])
|
||||||
|
by postgresql.org (Postfix) with ESMTP
|
||||||
|
id 5CA844768F1; Thu, 31 Oct 2002 12:54:18 -0500 (EST)
|
||||||
|
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||||
|
by postgresql.org (Postfix) with SMTP
|
||||||
|
id 973E1476060; Thu, 31 Oct 2002 12:54:11 -0500 (EST)
|
||||||
|
Received: from localhost (postgresql.org [64.49.215.8])
|
||||||
|
by postgresql.org (Postfix) with ESMTP id 9A45F47668B
|
||||||
|
for <pgsql-hackers@postgresql.org>; Thu, 31 Oct 2002 12:54:05 -0500 (EST)
|
||||||
|
Received: from mail.xythos.com (sdsl-216-36-77-241.dsl.sjc.megapath.net [216.36.77.241])
|
||||||
|
by postgresql.org (Postfix) with ESMTP id 0D7F5476684
|
||||||
|
for <pgsql-hackers@postgresql.org>; Thu, 31 Oct 2002 12:54:05 -0500 (EST)
|
||||||
|
Received: from ravms by mail.xythos.com with mail-ok (Exim 3.36 #3)
|
||||||
|
id 187JXx-0006Pc-00; Thu, 31 Oct 2002 17:55:57 +0000
|
||||||
|
Received: from sdsl-216-36-77-241.dsl.sjc.megapath.net ([216.36.77.241] helo=xythos.com)
|
||||||
|
by mail.xythos.com with asmtp (Exim 3.36 #3)
|
||||||
|
id 187JXx-0006PR-00; Thu, 31 Oct 2002 17:55:57 +0000
|
||||||
|
Message-ID: <3DC175F7.90901@xythos.com>
|
||||||
|
Date: Thu, 31 Oct 2002 10:27:03 -0800
|
||||||
|
From: Barry Lind <blind@xythos.com>
|
||||||
|
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.1) Gecko/20020826
|
||||||
|
X-Accept-Language: en-us, en
|
||||||
|
MIME-Version: 1.0
|
||||||
|
To: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
cc: pgsql-hackers@postgresql.org
|
||||||
|
Subject: Re: [HACKERS] PG functions in Java: maybe use gcj?
|
||||||
|
References: <819.1036006197@sss.pgh.pa.us> <3DC0AA42.4000205@xythos.com> <3715.1036037428@sss.pgh.pa.us>
|
||||||
|
Content-Type: text/plain; charset=us-ascii; format=flowed
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
X-Envelope-To: tgl@sss.pgh.pa.us,
|
||||||
|
pgsql-hackers@postgreSQL.org
|
||||||
|
X-Virus-Scanned: by AMaViS new-20020517
|
||||||
|
Precedence: bulk
|
||||||
|
Sender: pgsql-hackers-owner@postgresql.org
|
||||||
|
X-Virus-Scanned: by AMaViS new-20020517
|
||||||
|
Status: OR
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Tom Lane wrote:
|
||||||
|
> Barry Lind <blind@xythos.com> writes:
|
||||||
|
>
|
||||||
|
>>In either case I am concerned about licensing issues. gcj is not under
|
||||||
|
>>a BSD style license. Depending on what you need you are either dealing
|
||||||
|
>>with regular GPL, LGPL, or LGPL with a special java exception.
|
||||||
|
>>I beleive (without giving it too much thought) that doing either 1 or 2
|
||||||
|
>>above would end up linking GPL code into postgres. This can be worked
|
||||||
|
>>around by requiring the the necessary gcj libraries be installed
|
||||||
|
>>separately and detected at configure time (like is done elsewhere). But
|
||||||
|
>>is does (I think) present a problem for commercial products that would
|
||||||
|
>>like to redistribute postgres with pljava.
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> Good point, but unless you want to build a BSD-license Java
|
||||||
|
> implementation, there will never be a pljava that doesn't have different
|
||||||
|
> licensing restrictions than PG itself does. gcj is at least more free
|
||||||
|
> than either Sun's or IBM's JVM ...
|
||||||
|
>
|
||||||
|
|
||||||
|
It depends on what you mean by more free. An architecture that
|
||||||
|
interacts with an external jvm would let you use any jvm (free ones as
|
||||||
|
well as others). From a licensing standpoint it is generally easy to
|
||||||
|
redistribute a jvm or expect the user to have one installed (most java
|
||||||
|
based products out there today do this).
|
||||||
|
|
||||||
|
However in the proposal here we are talking about requiring a specific
|
||||||
|
jvm (gcj) and actually linking parts of it into postgres. To the extent
|
||||||
|
that GPL code is linked in the GPL extends to the entire code base. As
|
||||||
|
I said previously there are ways to work around this, but it becomes
|
||||||
|
tricky. Especially when a commercial product wants to bundle postgres
|
||||||
|
and pljava. That resulting bundle is probably entirely under the GPL
|
||||||
|
and then any changes to it are also GPL. So it could be the case that
|
||||||
|
this company would be prevented from submitting improvements they made
|
||||||
|
back to the core product because their improvements are GPLed as a
|
||||||
|
result of pljava.
|
||||||
|
|
||||||
|
Now having said all that, I have been monitoring the progres of gcj for
|
||||||
|
some time because I think there are very interesting possibilities. And
|
||||||
|
I am all for anyone who wants to look into it further and investigate
|
||||||
|
the possiblities. I just want to raise the licensing issue because it
|
||||||
|
can cause problems and it is better to think about them up front than
|
||||||
|
after the fact.
|
||||||
|
|
||||||
|
>
|
||||||
|
>>Another challenge here it that the java code is going to want to use the
|
||||||
|
>>jdbc api when communicating with the database.
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> Yes. I think we'd need a new implementation of jdbc that sits atop SPI
|
||||||
|
> (invoked via jni I guess) rather than a FE/BE connection. How well
|
||||||
|
> layered is our jdbc code --- would this mean a large rewrite, or just
|
||||||
|
> rolling in a new bottom layer?
|
||||||
|
>
|
||||||
|
|
||||||
|
It isn't as well layered as it could be, but it isn't too bad. Overall
|
||||||
|
it shouldn't be too much work, but not a little project either. One
|
||||||
|
area that isn't well layered is the assumption that the raw data from
|
||||||
|
the server is in text format, since that is what the FE/BE protocol
|
||||||
|
provides. So all the conversion functions that convert to/from java
|
||||||
|
datatypes do so in this format. This assumption runs deep into the
|
||||||
|
code. As a first pass it would be easiest to get raw data from SPI
|
||||||
|
convert to text and then convert to java datatypes instead of going
|
||||||
|
directly from the internal SPI format directly to java datatypes. This
|
||||||
|
could be improved upon later.
|
||||||
|
|
||||||
|
> regards, tom lane
|
||||||
|
>
|
||||||
|
|
||||||
|
thanks,
|
||||||
|
--Barry
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
---------------------------(end of broadcast)---------------------------
|
||||||
|
TIP 2: you can get off all lists at once with the unregister command
|
||||||
|
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
|
||||||
|
|
||||||
|
From pgsql-hackers-owner+M31223@postgresql.org Fri Nov 1 07:34:24 2002
|
||||||
|
Return-path: <pgsql-hackers-owner+M31223@postgresql.org>
|
||||||
|
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||||
|
by candle.pha.pa.us (8.11.6/8.10.1) with ESMTP id gA1CYKU23527
|
||||||
|
for <pgman@candle.pha.pa.us>; Fri, 1 Nov 2002 07:34:21 -0500 (EST)
|
||||||
|
Received: from localhost (postgresql.org [64.49.215.8])
|
||||||
|
by postgresql.org (Postfix) with ESMTP
|
||||||
|
id C48C44762EE; Fri, 1 Nov 2002 07:34:13 -0500 (EST)
|
||||||
|
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||||
|
by postgresql.org (Postfix) with SMTP
|
||||||
|
id 1F69C475F34; Fri, 1 Nov 2002 07:34:11 -0500 (EST)
|
||||||
|
Received: from localhost (postgresql.org [64.49.215.8])
|
||||||
|
by postgresql.org (Postfix) with ESMTP id 06581474E53
|
||||||
|
for <pgsql-hackers@postgresql.org>; Fri, 1 Nov 2002 07:34:07 -0500 (EST)
|
||||||
|
Received: from anchor-post-39.mail.demon.net (anchor-post-39.mail.demon.net [194.217.242.80])
|
||||||
|
by postgresql.org (Postfix) with ESMTP id 7D34D474E44
|
||||||
|
for <pgsql-hackers@postgresql.org>; Fri, 1 Nov 2002 07:34:06 -0500 (EST)
|
||||||
|
Received: from lfix.demon.co.uk ([158.152.59.127] helo=linda.lfix.co.uk)
|
||||||
|
by anchor-post-39.mail.demon.net with esmtp (Exim 3.36 #2)
|
||||||
|
id 187b04-0002Pj-0U
|
||||||
|
for pgsql-hackers@postgresql.org; Fri, 01 Nov 2002 12:34:08 +0000
|
||||||
|
Received: from localhost
|
||||||
|
([127.0.0.1] helo=localhost.localdomain ident=olly)
|
||||||
|
by linda.lfix.co.uk with esmtp (Exim 3.36 #1 (Debian))
|
||||||
|
id 187b04-0007zb-00
|
||||||
|
for <pgsql-hackers@postgresql.org>; Fri, 01 Nov 2002 12:34:08 +0000
|
||||||
|
Subject: Re: [HACKERS] PG functions in Java: maybe use gcj?
|
||||||
|
From: Oliver Elphick <olly@lfix.co.uk>
|
||||||
|
To: pgsql-hackers@postgresql.org
|
||||||
|
In-Reply-To: <3DC175F7.90901@xythos.com>
|
||||||
|
References: <819.1036006197@sss.pgh.pa.us> <3DC0AA42.4000205@xythos.com>
|
||||||
|
<3715.1036037428@sss.pgh.pa.us> <3DC175F7.90901@xythos.com>
|
||||||
|
Content-Type: text/plain
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
X-Mailer: Ximian Evolution 1.0.8
|
||||||
|
Date: 01 Nov 2002 12:34:08 +0000
|
||||||
|
Message-ID: <1036154048.7925.73.camel@linda>
|
||||||
|
MIME-Version: 1.0
|
||||||
|
X-Virus-Scanned: by AMaViS new-20020517
|
||||||
|
Precedence: bulk
|
||||||
|
Sender: pgsql-hackers-owner@postgresql.org
|
||||||
|
X-Virus-Scanned: by AMaViS new-20020517
|
||||||
|
Status: OR
|
||||||
|
|
||||||
|
On Thu, 2002-10-31 at 18:27, Barry Lind wrote:
|
||||||
|
|
||||||
|
> However in the proposal here we are talking about requiring a specific
|
||||||
|
> jvm (gcj) and actually linking parts of it into postgres. To the extent
|
||||||
|
> that GPL code is linked in the GPL extends to the entire code base. As
|
||||||
|
> I said previously there are ways to work around this, but it becomes
|
||||||
|
> tricky. Especially when a commercial product wants to bundle postgres
|
||||||
|
> and pljava. That resulting bundle is probably entirely under the GPL
|
||||||
|
> and then any changes to it are also GPL. So it could be the case that
|
||||||
|
> this company would be prevented from submitting improvements they made
|
||||||
|
> back to the core product because their improvements are GPLed as a
|
||||||
|
> result of pljava.
|
||||||
|
|
||||||
|
Nothing that company does can affect the licensing of PostgreSQL itself
|
||||||
|
- it doesn't belong to them, so they cannot change its licence.
|
||||||
|
|
||||||
|
Nothing in the GPL forces them to put GPL copyright on their own
|
||||||
|
alterations.
|
||||||
|
|
||||||
|
What they cannot do is to _distribute_ binary code that links to GPL
|
||||||
|
code while giving fewer rights to their distributees than they
|
||||||
|
themselves received with the GPL code, whether in respect of their own
|
||||||
|
code or the GPL code. Therefore they would be required to make their
|
||||||
|
source changes available to anyone to whom they gave a binary, and they
|
||||||
|
would not be able to restrict the further distribution of those
|
||||||
|
changes. They can contribute those changes to the project under
|
||||||
|
whatever licence they wish that is acceptable to the project.
|
||||||
|
|
||||||
|
Furthermore, gcj is part of the GNU compiler collection, like gcc, and
|
||||||
|
using it does not in itself cause code compiled under it to be subject
|
||||||
|
to the GPL. Linking to its runtime library would normally cause that,
|
||||||
|
but the gcj-3.0 copyright contains the following text:
|
||||||
|
|
||||||
|
========================================================================
|
||||||
|
The libgcj library is licensed under the terms of the GNU General
|
||||||
|
Public License, with this special exception:
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files
|
||||||
|
to produce an executable, this library does not by itself cause
|
||||||
|
the resulting executable to be covered by the GNU General Public
|
||||||
|
License. This exception does not however invalidate any other
|
||||||
|
reasons why the executable file might be covered by the GNU
|
||||||
|
General Public License.
|
||||||
|
========================================================================
|
||||||
|
|
||||||
|
--
|
||||||
|
Oliver Elphick Oliver.Elphick@lfix.co.uk
|
||||||
|
Isle of Wight, UK
|
||||||
|
http://www.lfix.co.uk/oliver
|
||||||
|
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C
|
||||||
|
========================================
|
||||||
|
"But they that wait upon the LORD shall renew their
|
||||||
|
strength; they shall mount up with wings as eagles;
|
||||||
|
they shall run, and not be weary; and they shall walk,
|
||||||
|
and not faint." Isaiah 40:31
|
||||||
|
|
||||||
|
|
||||||
|
---------------------------(end of broadcast)---------------------------
|
||||||
|
TIP 2: you can get off all lists at once with the unregister command
|
||||||
|
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user