Received: from cook.onecert.fr (cook.onecert.fr [134.212.189.43]) by hub.org (8.8.8/8.7.5) with SMTP id KAA23234 for ; Mon, 24 Aug 1998 10:56:37 -0400 (EDT) Received: (qmail 4130 invoked by uid 501); 24 Aug 1998 14:54:47 -0000 Sender: ecm@cook.onecert.fr To: pgsql-interfaces@postgreSQL.org, pgsql-hackers@postgreSQL.org Cc: Zeev Suraski , Jouni Ahto Subject: Re: [INTERFACES] Convert PGconn, PGresult to opaque types? References: <23263.903968555@sss.pgh.pa.us> X-Eric-Conspiracy: there is no conspiracy. X-Attribution: ecm X-Home-Page: http://www.chez.com/emarsden/ Reply-To: emarsden@mail.dotcom.fr From: Eric Marsden Date: 24 Aug 1998 16:54:46 +0200 In-Reply-To: Tom Lane's message of "Mon, 24 Aug 1998 10:22:35 -0400" Message-ID: Lines: 39 X-Mailer: Gnus v5.6.22/Emacs 19.34 >>>>> "TL" == Tom Lane writes: (sorry, attributions are lost here) >>>>> Basically this would force applications to use the accessor functions >>>>> as recommended in the documentation, and not touch fields of a PGconn >>>>> object directly. (Ditto for PGresult.) >>> >>> I am scared about external stuff like php. If they use it, and we >>> release something that doesn't work with their stuff, we are cooked >>> until they upgrade. TL> TL> But if they are using any direct references to fields of the PGconn TL> struct, their stuff *already* won't work with 6.4. Admittedly it'd TL> most likely only take a recompile to fix, and not code changes TL> (however trivial). But if they'd been using only the documented API, TL> ie using the accessor functions and not directly touching the struct, TL> then a new shared library or DLL could be plopped right in without even TL> a recompile of calling applications. TL> TL> Is the PHP source code available? It wouldn't take much work to check TL> whether it will compile without a definition for struct pg_conn. The PHP source is available from http://www.php.net/. From a quick look through it, it does access the PGconn structure directly. Stuff like (this is from the file php3.0.2a/functions/pgsql.c): lo_read((PGconn *)pgsql->conn, pgsql->lofd, buf, 8192)) However, the whole PostgreSQL-specific stuff is only 1400 lines worth, and the PHP guys are reputed to very active, so I don't think a change should pose too much of a problem if they are forewarned. [I have CCed the PHP/PostgreSQL module developers] -- Eric Marsden emarsden @ mail.dotcom.fr It's elephants all the way down