diff options
author | Teodor Sigaev <teodor@sigaev.ru> | 2004-06-03 12:26:10 +0000 |
---|---|---|
committer | Teodor Sigaev <teodor@sigaev.ru> | 2004-06-03 12:26:10 +0000 |
commit | 7b81988f9b5275e2cdf7bbb0ca0620a24f1afc82 (patch) | |
tree | a21263073a48e6b7f9e6949734a3f0724a799579 /contrib/btree_gist/btree_ts.c | |
parent | 921d749bd4c34c3349f1c254d5faa2f1cec03911 (diff) | |
download | postgresql-7b81988f9b5275e2cdf7bbb0ca0620a24f1afc82.tar.gz postgresql-7b81988f9b5275e2cdf7bbb0ca0620a24f1afc82.zip |
- Add aligment of variable data types
- Add aligment for interval data types
- Avoid floating point overflow in penalty functions
Janko Richter <jankorichter@yahoo.de> and teodor
Diffstat (limited to 'contrib/btree_gist/btree_ts.c')
-rw-r--r-- | contrib/btree_gist/btree_ts.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/contrib/btree_gist/btree_ts.c b/contrib/btree_gist/btree_ts.c index 3c73a7b83cc..97f209ed74a 100644 --- a/contrib/btree_gist/btree_ts.c +++ b/contrib/btree_gist/btree_ts.c @@ -140,7 +140,7 @@ gbt_tstz_compress(PG_FUNCTION_ARGS) if (entry->leafkey) { tsKEY *r = (tsKEY *) palloc(sizeof(tsKEY)); - + TimestampTz ts = *(TimestampTz *) DatumGetPointer(entry->key); Timestamp gmt ; @@ -167,6 +167,7 @@ gbt_ts_consistent(PG_FUNCTION_ARGS) tsKEY *kkk = (tsKEY *) DatumGetPointer(entry->key); GBT_NUMKEY_R key ; StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + key.lower = (GBT_NUMKEY*) &kkk->lower ; key.upper = (GBT_NUMKEY*) &kkk->upper ; @@ -180,12 +181,13 @@ gbt_tstz_consistent(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); TimestampTz *query = (Timestamp *) PG_GETARG_POINTER(1); - tsKEY *kkk = (tsKEY *) DatumGetPointer(entry->key); + char *kkk = (char *) DatumGetPointer(entry->key); GBT_NUMKEY_R key ; StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); Timestamp qqq ; - key.lower = (GBT_NUMKEY*) &kkk->lower ; - key.upper = (GBT_NUMKEY*) &kkk->upper ; + + key.lower = (GBT_NUMKEY*) &kkk[0]; + key.upper = (GBT_NUMKEY*) &kkk[MAXALIGN(tinfo.size)]; tstz_to_ts_gmt ( &qqq, query ); PG_RETURN_BOOL( |