aboutsummaryrefslogtreecommitdiff
path: root/contrib/btree_gist/btree_gist.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2001-08-23 15:07:41 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2001-08-23 15:07:41 +0000
commit07f6c02eac2d4606a13566fca455f88dcc545de6 (patch)
treeafaff5b9c2bb7d6f1c1a3d0d7eb86193f3845650 /contrib/btree_gist/btree_gist.c
parent839c7924ec799a0cc44e1a842e2b1e95d7709451 (diff)
downloadpostgresql-07f6c02eac2d4606a13566fca455f88dcc545de6.tar.gz
postgresql-07f6c02eac2d4606a13566fca455f88dcc545de6.zip
tskey_cmp() should use timestamp_cmp() instead of doing its own
interval arithmetic. From Teodor Sigaev.
Diffstat (limited to 'contrib/btree_gist/btree_gist.c')
-rw-r--r--contrib/btree_gist/btree_gist.c22
1 files changed, 7 insertions, 15 deletions
diff --git a/contrib/btree_gist/btree_gist.c b/contrib/btree_gist/btree_gist.c
index 687610ebfcc..999d199ff20 100644
--- a/contrib/btree_gist/btree_gist.c
+++ b/contrib/btree_gist/btree_gist.c
@@ -447,21 +447,13 @@ gts_binary_union(Datum *r1, char *r2)
static int
tskey_cmp(const void *a, const void *b) {
- Interval *intr;
- float result;
-
- intr = DatumGetIntervalP( DirectFunctionCall2(
- timestamp_mi,
- TimestampGetDatum( ((TSKEY*)(((RIX*)a)->r))->lower ),
- TimestampGetDatum( ((TSKEY*)(((RIX*)b)->r))->lower )) );
-
- /* see interval_larger */
- result = intr->time+intr->month * (30.0 * 86400);
- pfree( intr );
- if ( result == 0.0 )
- return 0;
- else
- return ( result>0 ) ? 1 : 0;
+ return DatumGetInt32(
+ DirectFunctionCall2(
+ timestamp_cmp,
+ TimestampGetDatum( ((TSKEY*)(((RIX*)a)->r))->lower ),
+ TimestampGetDatum( ((TSKEY*)(((RIX*)b)->r))->lower )
+ )
+ );
}
/**************************************************