Received: from u1.abs.net (root@u1.abs.net [207.114.0.131]) by hub.org (8.8.8/8.7.5) with ESMTP id KAA27884 for ; Fri, 12 Jun 1998 10:00:36 -0400 (EDT) Received: from insightdist.com (nobody@localhost) by u1.abs.net (8.9.0/8.9.0) with UUCP id JAA03442 for pgsql-interfaces@postgreSQL.org; Fri, 12 Jun 1998 09:57:46 -0400 (EDT) X-Authentication-Warning: u1.abs.net: nobody set sender to insightdist.com!daveh using -f Received: from ceodev by insightdist.com (AIX 3.2/UCB 5.64/4.03) id AA28696; Fri, 12 Jun 1998 09:53:05 -0400 Received: from daveh by ceodev (AIX 4.1/UCB 5.64/4.03) id AA70434; Fri, 12 Jun 1998 09:53:05 -0400 Message-Id: <35813143.7703ABDD@insightdist.com> Date: Fri, 12 Jun 1998 09:46:43 -0400 From: David Hartwig Organization: Insight Distribution Systems X-Mailer: Mozilla 4.05 [en] (Win95; I) Mime-Version: 1.0 To: "Jose' Soares Da Silva" Cc: Byron Nikolaidis , interfaces postgres Subject: Re: [INTERFACES] Re: M$-Access'97 and TIMESTAMPs References: Content-Type: multipart/mixed; boundary="------------540242479A354EF5780AA18F" This is a multi-part message in MIME format. --------------540242479A354EF5780AA18F Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Here is is what you will need. I hope you know how to compile a shared lib for your platform. This can be an adventure if you have not done it before. You will have to adjust the path in the CREATE FUNCTION statement to your lib dir. Run the SQL after you compile and install the shared lib. To test, do something like: SELECT * FROM foo WHERE xmin = {some_constant} I plan to submit a patch to make this a part of the 6.4 base release. Jose' Soares Da Silva wrote: > On Thu, 11 Jun 1998, Byron Nikolaidis wrote: > > > Jose', > > > > I got row versioning working with the "xmin" field. Since it is a system column, and > > automatically updates, you would not need triggers all over the place on every table. > > I made it a datasource option called "Row Versioning". > > > > It works well with Access except for two minor caveats: > > > > 1) The driver has to report the 'xmin' field in SQLColumns. There is no way around > > that I can see. Access, thus displays it. Users can of course hide the column if they > > hate looking at it. And Access won't let you type into this field which is good. > > > > 2) You have to create an '=' operator for the xid type on the postgres side since one > > does not already exist. I have the code to do it if you are interested (it is very > > small). For 6.4, we would make sure this operator is added. > > > Ok Byron, I think this is a good solution. > In this way we don't need to add a TIMESTAMP to every table there's already a > XMIN present. > In any way, what's happen with TIMESTAMPs ? May we have Access recognize it as > DATETIME or we can't because Access beleaves that's a ROWVER ? > I would like to try it. Please Byron may you send me the code for '=' operator > for xid type. > Jose' --------------540242479A354EF5780AA18F Content-Type: text/plain; charset=us-ascii; name="xidint4.c" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="xidint4.c" /* Insight Distribution Systems - System V - Apr 1998 */ static char accntnum_c[] = "@(#)accntnum.c 1.1 /sccs/sql/extend/s.accntnum.c 4/28/98 09:06:54"; #include /* for sprintf() */ #include #include "postgres.h" #include "utils/palloc.h" bool xidint4_eq(int32 arg1, int32 arg2) { return (arg1 == arg2); } --------------540242479A354EF5780AA18F Content-Type: text/plain; charset=us-ascii; name="xidint4.sql" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="xidint4.sql" -- Insight Distribution Systems - System V - Apr 1998 -- %W% :%P% %G% %U%" create function xidint4_eq(xid,int4) returns bool as '/ceo/pgsql/lib/xidint4.so' language 'c'; create operator = ( leftarg=xid, rightarg=int4, procedure=xidint4_eq, commutator='=', negator='<>', restrict=eqsel, join=eqjoinsel ); --------------540242479A354EF5780AA18F--