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)