Skip to content

Commit b5c4b77

Browse files
Jan WieckJan Wieck
authored andcommitted
Added nbtree operator class for NUMERIC
Jan
1 parent a6528e0 commit b5c4b77

File tree

6 files changed

+50
-6
lines changed

6 files changed

+50
-6
lines changed

src/backend/utils/adt/numeric.c

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*
66
* 1998 Jan Wieck
77
*
8-
* $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.19 1999/07/17 20:17:58 momjian Exp $
8+
* $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.20 1999/09/29 21:13:25 wieck Exp $
99
*
1010
* ----------
1111
*/
@@ -690,6 +690,34 @@ numeric_floor(Numeric num)
690690
*/
691691

692692

693+
int32
694+
numeric_cmp(Numeric num1, Numeric num2)
695+
{
696+
int result;
697+
NumericVar arg1;
698+
NumericVar arg2;
699+
700+
if (num1 == NULL || num2 == NULL)
701+
return (int32)0;
702+
703+
if (NUMERIC_IS_NAN(num1) || NUMERIC_IS_NAN(num2))
704+
return (int32)0;
705+
706+
init_var(&arg1);
707+
init_var(&arg2);
708+
709+
set_var_from_num(num1, &arg1);
710+
set_var_from_num(num2, &arg2);
711+
712+
result = cmp_var(&arg1, &arg2);
713+
714+
free_var(&arg1);
715+
free_var(&arg2);
716+
717+
return (int32)((result == 0) ? 0 : ((result < 0) ? -1 : 1));
718+
}
719+
720+
693721
bool
694722
numeric_eq(Numeric num1, Numeric num2)
695723
{

src/include/catalog/pg_amop.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* Copyright (c) 1994, Regents of the University of California
99
*
10-
* $Id: pg_amop.h,v 1.23 1999/04/03 18:07:47 tgl Exp $
10+
* $Id: pg_amop.h,v 1.24 1999/09/29 21:13:30 wieck Exp $
1111
*
1212
* NOTES
1313
* the genbki.sh script reads this file and generates .bki
@@ -338,6 +338,16 @@ DATA(insert OID = 0 ( 403 652 820 3 btreesel btreenpage ));
338338
DATA(insert OID = 0 ( 403 652 825 4 btreesel btreenpage ));
339339
DATA(insert OID = 0 ( 403 652 824 5 btreesel btreenpage ));
340340

341+
/*
342+
* nbtree numeric
343+
*/
344+
345+
DATA(insert OID = 0 ( 403 1768 1754 1 btreesel btreenpage ));
346+
DATA(insert OID = 0 ( 403 1768 1755 2 btreesel btreenpage ));
347+
DATA(insert OID = 0 ( 403 1768 1752 3 btreesel btreenpage ));
348+
DATA(insert OID = 0 ( 403 1768 1757 4 btreesel btreenpage ));
349+
DATA(insert OID = 0 ( 403 1768 1756 5 btreesel btreenpage ));
350+
341351
/*
342352
* hash table _ops
343353
*/

src/include/catalog/pg_amproc.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
* Copyright (c) 1994, Regents of the University of California
1111
*
12-
* $Id: pg_amproc.h,v 1.14 1999/03/26 07:32:41 tgl Exp $
12+
* $Id: pg_amproc.h,v 1.15 1999/09/29 21:13:30 wieck Exp $
1313
*
1414
* NOTES
1515
* the genbki.sh script reads this file and generates .bki
@@ -96,6 +96,7 @@ DATA(insert OID = 0 (403 1312 1314 1));
9696
DATA(insert OID = 0 (403 1313 1315 1));
9797
DATA(insert OID = 0 (403 810 836 1));
9898
DATA(insert OID = 0 (403 935 926 1));
99+
DATA(insert OID = 0 (403 1768 1769 1));
99100

100101

101102
/* hash */

src/include/catalog/pg_opclass.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* Copyright (c) 1994, Regents of the University of California
99
*
10-
* $Id: pg_opclass.h,v 1.19 1999/05/25 16:13:45 momjian Exp $
10+
* $Id: pg_opclass.h,v 1.20 1999/09/29 21:13:30 wieck Exp $
1111
*
1212
* NOTES
1313
* the genbki.sh script reads this file and generates .bki
@@ -115,5 +115,7 @@ DATA(insert OID = 935 ( network_ops 869 ));
115115
DESCR("");
116116
DATA(insert OID = 652 ( network_ops 650 ));
117117
DESCR("");
118+
DATA(insert OID = 1768 ( numeric_ops 1700 ));
119+
DESCR("");
118120

119121
#endif /* PG_OPCLASS_H */

src/include/catalog/pg_proc.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*
77
* Copyright (c) 1994, Regents of the University of California
88
*
9-
* $Id: pg_proc.h,v 1.102 1999/09/26 02:28:38 tgl Exp $
9+
* $Id: pg_proc.h,v 1.103 1999/09/29 21:13:30 wieck Exp $
1010
*
1111
* NOTES
1212
* 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
23062306
DESCR("smaller of two numbers");
23072307
DATA(insert OID = 1767 ( numeric_larger PGUID 11 f t t 2 f 1700 "1700 1700" 100 0 0 100 numeric_larger - ));
23082308
DESCR("larger of two numbers");
2309+
DATA(insert OID = 1769 ( numeric_cmp PGUID 11 f t t 2 f 23 "1700 1700" 100 0 0 100 numeric_cmp - ));
2310+
DESCR("compare two numbers");
23092311

23102312

23112313
/*

src/include/utils/builtins.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*
77
* Copyright (c) 1994, Regents of the University of California
88
*
9-
* $Id: builtins.h,v 1.85 1999/08/01 04:54:20 tgl Exp $
9+
* $Id: builtins.h,v 1.86 1999/09/29 21:13:31 wieck Exp $
1010
*
1111
* NOTES
1212
* This should normally only be included by fmgr.h.
@@ -572,6 +572,7 @@ Numeric numeric_round(Numeric num, int32 scale);
572572
Numeric numeric_trunc(Numeric num, int32 scale);
573573
Numeric numeric_ceil(Numeric num);
574574
Numeric numeric_floor(Numeric num);
575+
int32 numeric_cmp(Numeric num1, Numeric num2);
575576
bool numeric_eq(Numeric num1, Numeric num2);
576577
bool numeric_ne(Numeric num1, Numeric num2);
577578
bool numeric_gt(Numeric num1, Numeric num2);

0 commit comments

Comments
 (0)