@@ -124,11 +124,17 @@ gbt_timetz_compress(PG_FUNCTION_ARGS)
124
124
{
125
125
timeKEY * r = (timeKEY * ) palloc (sizeof (timeKEY ));
126
126
TimeTzADT * tz = DatumGetTimeTzADTP (entry -> key );
127
+ TimeADT tmp ;
127
128
128
129
retval = palloc (sizeof (GISTENTRY ));
129
130
130
131
/* We are using the time + zone only to compress */
131
- r -> lower = r -> upper = (tz -> time + tz -> zone );
132
+ #ifdef HAVE_INT64_TIMESTAMP
133
+ tmp = tz -> time + (tz -> zone * INT64CONST (1000000 ));
134
+ #else
135
+ tmp = (tz -> time + tz -> zone );
136
+ #endif
137
+ r -> lower = r -> upper = tmp ;
132
138
gistentryinit (* retval , PointerGetDatum (r ),
133
139
entry -> rel , entry -> page ,
134
140
entry -> offset , sizeof (timeKEY ), FALSE);
@@ -162,10 +168,17 @@ gbt_timetz_consistent(PG_FUNCTION_ARGS)
162
168
{
163
169
GISTENTRY * entry = (GISTENTRY * ) PG_GETARG_POINTER (0 );
164
170
TimeTzADT * query = PG_GETARG_TIMETZADT_P (1 );
165
- TimeADT qqq = query -> time + query -> zone ;
171
+ StrategyNumber strategy = (StrategyNumber ) PG_GETARG_UINT16 (2 );
172
+
166
173
timeKEY * kkk = (timeKEY * ) DatumGetPointer (entry -> key );
174
+ TimeADT qqq ;
167
175
GBT_NUMKEY_R key ;
168
- StrategyNumber strategy = (StrategyNumber ) PG_GETARG_UINT16 (2 );
176
+
177
+ #ifdef HAVE_INT64_TIMESTAMP
178
+ qqq = query -> time + (query -> zone * INT64CONST (1000000 ));
179
+ #else
180
+ qqq = (query -> time + query -> zone );
181
+ #endif
169
182
170
183
key .lower = (GBT_NUMKEY * ) & kkk -> lower ;
171
184
key .upper = (GBT_NUMKEY * ) & kkk -> upper ;
0 commit comments