Your patch has been added to the PostgreSQL unapplied patches list at:

        http://momjian.postgresql.org/cgi-bin/pgpatches

It will be applied as soon as one of the PostgreSQL committers reviews
and approves it.

---------------------------------------------------------------------------


Mark Kirkwood wrote:
> Bruce Momjian wrote:
> > Tom Lane wrote:
> > 
> >>Bruce Momjian <pgman@candle.pha.pa.us> writes:
> >>
> >>>This has been saved for the 8.2 release:
> >>>   http://momjian.postgresql.org/cgi-bin/pgpatches_hold
> >>
> >>Uh, why do we need this at all?  "NOT (tid = tid)" covers the
> >>functionality already.
> > 
> > 
> > tid should be a fully functional type, at least for = and !=.
> > 
> > 
> >>I disagree strongly with renumbering existing hand-assigned OIDs for
> >>this.  There's too much risk of breakage and no benefit.
> > 
> > 
> > Agreed.
> > 
> > 
> >>Also, you forgot to add the negator cross-links between the operators.
> > 
> > 
> > OK.
> > 
> 
> New patch, with no OID renumbering, plus the negators are there now :-)
> Thanks for the critique guys!
> 
> regards
> 
> Mark
> 
> 

> Index: src/backend/utils/adt/tid.c
> ===================================================================
> RCS file: /projects/cvsroot/pgsql/src/backend/utils/adt/tid.c,v
> retrieving revision 1.49
> diff -c -r1.49 tid.c
> *** src/backend/utils/adt/tid.c       27 May 2005 00:57:49 -0000      1.49
> --- src/backend/utils/adt/tid.c       26 Oct 2005 05:07:36 -0000
> ***************
> *** 174,180 ****
>                                  arg1->ip_posid == arg2->ip_posid);
>   }
>   
> - #ifdef NOT_USED
>   Datum
>   tidne(PG_FUNCTION_ARGS)
>   {
> --- 174,179 ----
> ***************
> *** 185,191 ****
>                                  BlockIdGetBlockNumber(&(arg2->ip_blkid)) ||
>                                  arg1->ip_posid != arg2->ip_posid);
>   }
> - #endif
>   
>   /*
>    *  Functions to get latest tid of a specified tuple.
> --- 184,189 ----
> Index: src/include/utils/builtins.h
> ===================================================================
> RCS file: /projects/cvsroot/pgsql/src/include/utils/builtins.h,v
> retrieving revision 1.267
> diff -c -r1.267 builtins.h
> *** src/include/utils/builtins.h      18 Oct 2005 20:38:58 -0000      1.267
> --- src/include/utils/builtins.h      26 Oct 2005 05:07:37 -0000
> ***************
> *** 530,535 ****
> --- 530,536 ----
>   extern Datum tidrecv(PG_FUNCTION_ARGS);
>   extern Datum tidsend(PG_FUNCTION_ARGS);
>   extern Datum tideq(PG_FUNCTION_ARGS);
> + extern Datum tidne(PG_FUNCTION_ARGS);
>   extern Datum currtid_byreloid(PG_FUNCTION_ARGS);
>   extern Datum currtid_byrelname(PG_FUNCTION_ARGS);
>   
> Index: src/include/catalog/pg_proc.h
> ===================================================================
> RCS file: /projects/cvsroot/pgsql/src/include/catalog/pg_proc.h,v
> retrieving revision 1.387
> diff -c -r1.387 pg_proc.h
> *** src/include/catalog/pg_proc.h     15 Oct 2005 02:49:42 -0000      1.387
> --- src/include/catalog/pg_proc.h     26 Oct 2005 05:07:40 -0000
> ***************
> *** 1625,1630 ****
> --- 1625,1632 ----
>   DATA(insert OID = 1291 (  array_length_coerce       PGNSP PGUID 12 f f t f 
> s 3 2277 "2277 23 16" _null_ _null_ _null_ array_length_coerce - _null_ ));
>   DESCR("adjust any array to new element typmod");
>   
> + DATA(insert OID = 2601 ( tidne                         PGNSP PGUID 12 f f t 
> f i 2 16 "27 27" _null_ _null_ _null_ tidne - _null_ ));
> + DESCR("not equal");
>   DATA(insert OID = 1292 ( tideq                         PGNSP PGUID 12 f f t 
> f i 2 16 "27 27" _null_ _null_ _null_ tideq - _null_ ));
>   DESCR("equal");
>   DATA(insert OID = 1293 ( currtid               PGNSP PGUID 12 f f t f v 2 
> 27 "26 27" _null_ _null_ _null_ currtid_byreloid - _null_ ));
> Index: src/include/catalog/pg_operator.h
> ===================================================================
> RCS file: /projects/cvsroot/pgsql/src/include/catalog/pg_operator.h,v
> retrieving revision 1.137
> diff -c -r1.137 pg_operator.h
> *** src/include/catalog/pg_operator.h 15 Oct 2005 02:49:42 -0000      1.137
> --- src/include/catalog/pg_operator.h 26 Oct 2005 05:07:41 -0000
> ***************
> *** 128,135 ****
>   DATA(insert OID = 389 (  "!!"          PGNSP PGUID l f       0      20      
> 1700   0   0   0   0  0   0 numeric_fac - - ));
>   DATA(insert OID = 385 (  "="           PGNSP PGUID b t      29      29      
> 16 385   0       0       0       0       0 cideq eqsel eqjoinsel ));
>   DATA(insert OID = 386 (  "="           PGNSP PGUID b t      22      22      
> 16 386   0       0       0       0       0 int2vectoreq eqsel eqjoinsel ));
> ! DATA(insert OID = 387 (  "="           PGNSP PGUID b f      27      27      
> 16 387   0       0       0       0       0 tideq eqsel eqjoinsel ));
>   #define TIDEqualOperator   387
>   
>   DATA(insert OID = 410 ( "="            PGNSP PGUID b t      20      20      
> 16 410 411 412 412 412 413 int8eq eqsel eqjoinsel ));
>   DATA(insert OID = 411 ( "<>"           PGNSP PGUID b f      20      20      
> 16 411 410 0 0 0 0 int8ne neqsel neqjoinsel ));
> --- 128,136 ----
>   DATA(insert OID = 389 (  "!!"          PGNSP PGUID l f       0      20      
> 1700   0   0   0   0  0   0 numeric_fac - - ));
>   DATA(insert OID = 385 (  "="           PGNSP PGUID b t      29      29      
> 16 385   0       0       0       0       0 cideq eqsel eqjoinsel ));
>   DATA(insert OID = 386 (  "="           PGNSP PGUID b t      22      22      
> 16 386   0       0       0       0       0 int2vectoreq eqsel eqjoinsel ));
> ! DATA(insert OID = 387 (  "="           PGNSP PGUID b f      27      27      
> 16 387   390 0   0       0       0 tideq eqsel eqjoinsel ));
>   #define TIDEqualOperator   387
> + DATA(insert OID = 390 (  "<>"          PGNSP PGUID b f      27      27      
> 16 390   387 0   0       0       0 tidne neqsel neqjoinsel ));
>   
>   DATA(insert OID = 410 ( "="            PGNSP PGUID b t      20      20      
> 16 410 411 412 412 412 413 int8eq eqsel eqjoinsel ));
>   DATA(insert OID = 411 ( "<>"           PGNSP PGUID b f      20      20      
> 16 411 410 0 0 0 0 int8ne neqsel neqjoinsel ));
> 

-- 
  Bruce Momjian   http://candle.pha.pa.us
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to