Skip to content

Commit 096fa86

Browse files
committed
revert b2ef47c8eb72dd44048ca363a91a4488bea65859 to have natural oredering
1 parent cac93d3 commit 096fa86

File tree

2 files changed

+15
-36
lines changed

2 files changed

+15
-36
lines changed

rum--1.0.sql

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,6 @@ CREATE OPERATOR |=> (
104104

105105
-- timestamp operator class
106106

107-
CREATE FUNCTION rum_timestamp_cmp(timestamp,timestamp)
108-
RETURNS int
109-
AS 'MODULE_PATHNAME'
110-
LANGUAGE C STRICT IMMUTABLE;
111-
112107
CREATE FUNCTION rum_timestamp_extract_value(timestamp,internal,internal,internal,internal)
113108
RETURNS internal
114109
AS 'MODULE_PATHNAME'
@@ -148,7 +143,7 @@ AS
148143
OPERATOR 4 >=,
149144
OPERATOR 5 >,
150145
--support
151-
FUNCTION 1 rum_timestamp_cmp(timestamp,timestamp),
146+
FUNCTION 1 timestamp_cmp(timestamp,timestamp),
152147
FUNCTION 2 rum_timestamp_extract_value(timestamp,internal,internal,internal,internal),
153148
FUNCTION 3 rum_timestamp_extract_query(timestamp,internal,smallint,internal,internal,internal,internal),
154149
FUNCTION 4 rum_timestamp_consistent(internal,smallint,timestamp,int,internal,internal,internal,internal),

rum_timestamp.c

Lines changed: 14 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,14 @@ rum_timestamp_extract_query(PG_FUNCTION_ARGS)
5555

5656
switch (strategy)
5757
{
58-
case BTGreaterEqualStrategyNumber:
59-
case BTGreaterStrategyNumber:
60-
entries[0] = TimestampGetDatum(DT_NOEND); /* leftmost */
61-
*ptr_partialmatch = true;
62-
break;
63-
6458
case BTLessStrategyNumber:
6559
case BTLessEqualStrategyNumber:
60+
entries[0] = TimestampGetDatum(DT_NOBEGIN); /* leftmost */
61+
*ptr_partialmatch = true;
62+
break;
63+
case BTGreaterEqualStrategyNumber:
64+
case BTGreaterStrategyNumber:
6665
*ptr_partialmatch = true;
67-
6866
case BTEqualStrategyNumber:
6967
case RUM_TMST_DISTANCE:
7068
case RUM_TMST_LEFT_DISTANCE:
@@ -78,20 +76,6 @@ rum_timestamp_extract_query(PG_FUNCTION_ARGS)
7876
PG_RETURN_POINTER(entries);
7977
}
8078

81-
PG_FUNCTION_INFO_V1(rum_timestamp_cmp);
82-
Datum
83-
rum_timestamp_cmp(PG_FUNCTION_ARGS)
84-
{
85-
Datum a = PG_GETARG_DATUM(0);
86-
Datum b = PG_GETARG_DATUM(1);
87-
int32 cmp;
88-
89-
cmp = -DatumGetInt32(DirectFunctionCall2Coll(timestamp_cmp,
90-
PG_GET_COLLATION(),
91-
a, b));
92-
PG_RETURN_INT32(cmp);
93-
}
94-
9579
PG_FUNCTION_INFO_V1(rum_timestamp_compare_prefix);
9680
Datum
9781
rum_timestamp_compare_prefix(PG_FUNCTION_ARGS)
@@ -102,22 +86,22 @@ rum_timestamp_compare_prefix(PG_FUNCTION_ARGS)
10286
int32 res,
10387
cmp;
10488

105-
cmp = DatumGetInt32(DirectFunctionCall2Coll(rum_timestamp_cmp,
89+
cmp = DatumGetInt32(DirectFunctionCall2Coll(timestamp_cmp,
10690
PG_GET_COLLATION(),
107-
(data->strategy == BTGreaterStrategyNumber ||
108-
data->strategy == BTGreaterEqualStrategyNumber)
91+
(data->strategy == BTLessStrategyNumber ||
92+
data->strategy == BTLessEqualStrategyNumber)
10993
? data->datum : a, b));
11094

11195
switch (data->strategy)
11296
{
113-
case BTGreaterStrategyNumber:
97+
case BTLessStrategyNumber:
11498
/* If original datum > indexed one then return match */
11599
if (cmp > 0)
116100
res = 0;
117101
else
118102
res = 1;
119103
break;
120-
case BTGreaterEqualStrategyNumber:
104+
case BTLessEqualStrategyNumber:
121105
/* The same except equality */
122106
if (cmp >= 0)
123107
res = 0;
@@ -130,14 +114,14 @@ rum_timestamp_compare_prefix(PG_FUNCTION_ARGS)
130114
else
131115
res = 0;
132116
break;
133-
case BTLessEqualStrategyNumber:
117+
case BTGreaterEqualStrategyNumber:
134118
/* If original datum <= indexed one then return match */
135119
if (cmp <= 0)
136120
res = 0;
137121
else
138122
res = 1;
139123
break;
140-
case BTLessStrategyNumber:
124+
case BTGreaterStrategyNumber:
141125
/* If original datum <= indexed one then return match */
142126
/* If original datum == indexed one then continue scan */
143127
if (cmp < 0)
@@ -281,10 +265,10 @@ rum_timestamp_config(PG_FUNCTION_ARGS)
281265
config->addInfoTypeOid = InvalidOid;
282266

283267
config->strategyInfo[0].strategy = RUM_TMST_LEFT_DISTANCE;
284-
config->strategyInfo[0].direction = ForwardScanDirection;
268+
config->strategyInfo[0].direction = BackwardScanDirection;
285269

286270
config->strategyInfo[1].strategy = RUM_TMST_RIGHT_DISTANCE;
287-
config->strategyInfo[1].direction = BackwardScanDirection;
271+
config->strategyInfo[1].direction = ForwardScanDirection;
288272

289273
config->strategyInfo[2].strategy = InvalidStrategy;
290274

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy