Use PG_GETARG_TEXT_PP instead of PG_GETARG_TEXT_P in the new
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Tue, 2 Dec 2008 11:30:53 +0000 (11:30 +0000)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Tue, 2 Dec 2008 11:30:53 +0000 (11:30 +0000)
gin_cmp_tslexeme and gin_cmp_prefix functions. Should shave off a few
cycles from GIN operations.

src/backend/utils/adt/tsginidx.c

index a09c92eebea3877b41942c4300d1179573dafef4..087730b2d071846cfddeee7bb55bd0eda1592fe8 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/tsginidx.c,v 1.12 2008/05/16 16:31:01 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/tsginidx.c,v 1.13 2008/12/02 11:30:53 heikki Exp $
  *
  *-------------------------------------------------------------------------
  */
 Datum
 gin_cmp_tslexeme(PG_FUNCTION_ARGS)
 {
-   text    *a = PG_GETARG_TEXT_P(0);
-   text    *b = PG_GETARG_TEXT_P(1);
+   text    *a = PG_GETARG_TEXT_PP(0);
+   text    *b = PG_GETARG_TEXT_PP(1);
    int     cmp;
 
    cmp = tsCompareString(
-                   VARDATA(a), VARSIZE(a) - VARHDRSZ,
-                   VARDATA(b), VARSIZE(b) - VARHDRSZ,
+                   VARDATA_ANY(a), VARSIZE_ANY_EXHDR(a),
+                   VARDATA_ANY(b), VARSIZE_ANY_EXHDR(b),
                    false );
 
    PG_FREE_IF_COPY(a,0);
@@ -39,16 +39,16 @@ gin_cmp_tslexeme(PG_FUNCTION_ARGS)
 Datum
 gin_cmp_prefix(PG_FUNCTION_ARGS)
 {
-   text    *a = PG_GETARG_TEXT_P(0);
-   text    *b = PG_GETARG_TEXT_P(1);
+   text    *a = PG_GETARG_TEXT_PP(0);
+   text    *b = PG_GETARG_TEXT_PP(1);
 #ifdef NOT_USED
    StrategyNumber strategy = PG_GETARG_UINT16(2);
 #endif
    int     cmp;
 
    cmp = tsCompareString(
-                   VARDATA(a), VARSIZE(a) - VARHDRSZ,
-                   VARDATA(b), VARSIZE(b) - VARHDRSZ,
+                   VARDATA_ANY(a), VARSIZE_ANY_EXHDR(a),
+                   VARDATA_ANY(b), VARSIZE_ANY_EXHDR(b),
                    true );
 
    if ( cmp < 0 )