Re: [INTERFACES] Re: M$-Access'97 and TIMESTAMPs
От | David Hartwig |
---|---|
Тема | Re: [INTERFACES] Re: M$-Access'97 and TIMESTAMPs |
Дата | |
Msg-id | 35813D7F.2E097E35@insightdist.com обсуждение исходный текст |
Ответ на | Re: [INTERFACES] Re: M$-Access'97 and TIMESTAMPs ("Jose' Soares Da Silva" <sferac@bo.nettuno.it>) |
Список | pgsql-interfaces |
Oops! Here's a better way without the shared module. -- Overload int4eq create function int4eq(xid,int4) returns bool as '' language 'internal'; create operator = ( leftarg=xid, rightarg=int4, procedure=int4eq, commutator='=', negator='<>', restrict=eqsel, join=eqjoinsel ); David Hartwig wrote: > 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' > > ------------------------------------------------------------------------ > /* 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 <stdio.h> /* for sprintf() */ > #include <string.h> > #include "postgres.h" > #include "utils/palloc.h" > > bool > xidint4_eq(int32 arg1, int32 arg2) > { > return (arg1 == arg2); > } > > ------------------------------------------------------------------------ > -- 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 > );
В списке pgsql-interfaces по дате отправления:
Следующее
От: "Jose' Soares Da Silva"Дата:
Сообщение: Re: [INTERFACES] Re: M$-Access'97 and TIMESTAMPs