summaryrefslogtreecommitdiff
path: root/contrib/btree_gist/btree_gist.c
diff options
context:
space:
mode:
authorTom Lane2001-08-23 15:07:41 +0000
committerTom Lane2001-08-23 15:07:41 +0000
commitf098cb988ed087b612bb2bcc74018bc375d22823 (patch)
tree5e7488e957738052e97bb7837294ffaa6e78eaed /contrib/btree_gist/btree_gist.c
parent7fe700b5168bd4349eba65e53b5c8a6a18c4b312 (diff)
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 687610ebfc..999d199ff2 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 )
+ )
+ );
}
/**************************************************