From: Jan Wieck Date: Wed, 29 Sep 1999 21:13:31 +0000 (+0000) Subject: Added nbtree operator class for NUMERIC X-Git-Tag: REL9_0_0~24728 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=b5c4b772836e4072de9790c080af6781d3b22d0f;p=pg-rex%2Fsyncrep.git Added nbtree operator class for NUMERIC Jan --- diff --git a/src/backend/utils/adt/numeric.c b/src/backend/utils/adt/numeric.c index 97a03d23b8..6df2299557 100644 --- a/src/backend/utils/adt/numeric.c +++ b/src/backend/utils/adt/numeric.c @@ -5,7 +5,7 @@ * * 1998 Jan Wieck * - * $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.19 1999/07/17 20:17:58 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.20 1999/09/29 21:13:25 wieck Exp $ * * ---------- */ @@ -690,6 +690,34 @@ numeric_floor(Numeric num) */ +int32 +numeric_cmp(Numeric num1, Numeric num2) +{ + int result; + NumericVar arg1; + NumericVar arg2; + + if (num1 == NULL || num2 == NULL) + return (int32)0; + + if (NUMERIC_IS_NAN(num1) || NUMERIC_IS_NAN(num2)) + return (int32)0; + + init_var(&arg1); + init_var(&arg2); + + set_var_from_num(num1, &arg1); + set_var_from_num(num2, &arg2); + + result = cmp_var(&arg1, &arg2); + + free_var(&arg1); + free_var(&arg2); + + return (int32)((result == 0) ? 0 : ((result < 0) ? -1 : 1)); +} + + bool numeric_eq(Numeric num1, Numeric num2) { diff --git a/src/include/catalog/pg_amop.h b/src/include/catalog/pg_amop.h index d85b7539c4..0cbaac5322 100644 --- a/src/include/catalog/pg_amop.h +++ b/src/include/catalog/pg_amop.h @@ -7,7 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_amop.h,v 1.23 1999/04/03 18:07:47 tgl Exp $ + * $Id: pg_amop.h,v 1.24 1999/09/29 21:13:30 wieck Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -339,6 +339,16 @@ DATA(insert OID = 0 ( 403 652 825 4 btreesel btreenpage )); DATA(insert OID = 0 ( 403 652 824 5 btreesel btreenpage )); /* + * nbtree numeric + */ + +DATA(insert OID = 0 ( 403 1768 1754 1 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 1768 1755 2 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 1768 1752 3 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 1768 1757 4 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 1768 1756 5 btreesel btreenpage )); + +/* * hash table _ops */ diff --git a/src/include/catalog/pg_amproc.h b/src/include/catalog/pg_amproc.h index eb74e18dcc..45d1b28587 100644 --- a/src/include/catalog/pg_amproc.h +++ b/src/include/catalog/pg_amproc.h @@ -9,7 +9,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_amproc.h,v 1.14 1999/03/26 07:32:41 tgl Exp $ + * $Id: pg_amproc.h,v 1.15 1999/09/29 21:13:30 wieck Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -96,6 +96,7 @@ DATA(insert OID = 0 (403 1312 1314 1)); DATA(insert OID = 0 (403 1313 1315 1)); DATA(insert OID = 0 (403 810 836 1)); DATA(insert OID = 0 (403 935 926 1)); +DATA(insert OID = 0 (403 1768 1769 1)); /* hash */ diff --git a/src/include/catalog/pg_opclass.h b/src/include/catalog/pg_opclass.h index 591021fbb4..267c19775c 100644 --- a/src/include/catalog/pg_opclass.h +++ b/src/include/catalog/pg_opclass.h @@ -7,7 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_opclass.h,v 1.19 1999/05/25 16:13:45 momjian Exp $ + * $Id: pg_opclass.h,v 1.20 1999/09/29 21:13:30 wieck Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -115,5 +115,7 @@ DATA(insert OID = 935 ( network_ops 869 )); DESCR(""); DATA(insert OID = 652 ( network_ops 650 )); DESCR(""); +DATA(insert OID = 1768 ( numeric_ops 1700 )); +DESCR(""); #endif /* PG_OPCLASS_H */ diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h index cc5f1e3d61..1f560064e6 100644 --- a/src/include/catalog/pg_proc.h +++ b/src/include/catalog/pg_proc.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_proc.h,v 1.102 1999/09/26 02:28:38 tgl Exp $ + * $Id: pg_proc.h,v 1.103 1999/09/29 21:13:30 wieck Exp $ * * NOTES * The script catalog/genbki.sh reads this file and generates .bki @@ -2306,6 +2306,8 @@ DATA(insert OID = 1766 ( numeric_smaller PGUID 11 f t t 2 f 1700 "1700 1700" 10 DESCR("smaller of two numbers"); DATA(insert OID = 1767 ( numeric_larger PGUID 11 f t t 2 f 1700 "1700 1700" 100 0 0 100 numeric_larger - )); DESCR("larger of two numbers"); +DATA(insert OID = 1769 ( numeric_cmp PGUID 11 f t t 2 f 23 "1700 1700" 100 0 0 100 numeric_cmp - )); +DESCR("compare two numbers"); /* diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h index dfe1897cbe..b0bd050e9b 100644 --- a/src/include/utils/builtins.h +++ b/src/include/utils/builtins.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: builtins.h,v 1.85 1999/08/01 04:54:20 tgl Exp $ + * $Id: builtins.h,v 1.86 1999/09/29 21:13:31 wieck Exp $ * * NOTES * This should normally only be included by fmgr.h. @@ -572,6 +572,7 @@ Numeric numeric_round(Numeric num, int32 scale); Numeric numeric_trunc(Numeric num, int32 scale); Numeric numeric_ceil(Numeric num); Numeric numeric_floor(Numeric num); +int32 numeric_cmp(Numeric num1, Numeric num2); bool numeric_eq(Numeric num1, Numeric num2); bool numeric_ne(Numeric num1, Numeric num2); bool numeric_gt(Numeric num1, Numeric num2);