diff options
Diffstat (limited to 'src/include/access/valid.h')
-rw-r--r-- | src/include/access/valid.h | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/src/include/access/valid.h b/src/include/access/valid.h index e710ff415af..d89b3fce187 100644 --- a/src/include/access/valid.h +++ b/src/include/access/valid.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: valid.h,v 1.21 2000/05/28 17:56:14 tgl Exp $ + * $Id: valid.h,v 1.22 2000/05/30 04:24:55 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -33,7 +33,7 @@ do \ macro below */ \ bool __isnull; \ Datum __atp; \ - int __test; \ + Datum __test; \ int __cur_nkeys = (nkeys); \ ScanKey __cur_keys = (keys); \ \ @@ -41,9 +41,9 @@ do \ for (; __cur_nkeys--; __cur_keys++) \ { \ __atp = heap_getattr((tuple), \ - __cur_keys->sk_attno, \ - (tupdesc), \ - &__isnull); \ + __cur_keys->sk_attno, \ + (tupdesc), \ + &__isnull); \ \ if (__isnull) \ { \ @@ -58,16 +58,14 @@ do \ break; \ } \ \ - if (__cur_keys->sk_func.fn_addr == (PGFunction) oideq) /* optimization */ \ - __test = (__cur_keys->sk_argument == __atp); \ - else if (__cur_keys->sk_flags & SK_COMMUTE) \ - __test = (long) FMGR_PTR2(&__cur_keys->sk_func, \ - __cur_keys->sk_argument, __atp); \ + if (__cur_keys->sk_flags & SK_COMMUTE) \ + __test = FunctionCall2(&__cur_keys->sk_func, \ + __cur_keys->sk_argument, __atp); \ else \ - __test = (long) FMGR_PTR2(&__cur_keys->sk_func, \ - __atp, __cur_keys->sk_argument); \ + __test = FunctionCall2(&__cur_keys->sk_func, \ + __atp, __cur_keys->sk_argument); \ \ - if (!__test == !(__cur_keys->sk_flags & SK_NEGATE)) \ + if (DatumGetBool(__test) == !!(__cur_keys->sk_flags & SK_NEGATE)) \ { \ /* XXX eventually should check if SK_ISNULL */ \ (result) = false; \ |