diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2001-08-23 15:07:41 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2001-08-23 15:07:41 +0000 |
commit | 07f6c02eac2d4606a13566fca455f88dcc545de6 (patch) | |
tree | afaff5b9c2bb7d6f1c1a3d0d7eb86193f3845650 /contrib/btree_gist/btree_gist.c | |
parent | 839c7924ec799a0cc44e1a842e2b1e95d7709451 (diff) | |
download | postgresql-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.c | 22 |
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 ) + ) + ); } /************************************************** |