summaryrefslogtreecommitdiffstats
path: root/src/util/db2/hash/page.h.patch
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/db2/hash/page.h.patch')
-rw-r--r--src/util/db2/hash/page.h.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/util/db2/hash/page.h.patch b/src/util/db2/hash/page.h.patch
new file mode 100644
index 0000000000..4a0311fea3
--- /dev/null
+++ b/src/util/db2/hash/page.h.patch
@@ -0,0 +1,42 @@
+*** /tmp/,RCSt1a21720 Wed Apr 3 11:49:55 1996
+--- page.h Wed Apr 3 08:42:25 1996
+***************
+*** 158,163
+
+ #define PAIRFITS(P,K,D) ((PAIRSIZE((K),(D))) <= FREESPACE((P)))
+ #define BIGPAIRFITS(P) ((FREESPACE((P)) >= PAIR_OVERHEAD))
+ #define FREESPACE(P) \
+ ((OFFSET((P)) - PAGE_OVERHEAD - (NUM_ENT((P)) * PAIR_OVERHEAD)))
+
+
+--- 158,169 -----
+
+ #define PAIRFITS(P,K,D) ((PAIRSIZE((K),(D))) <= FREESPACE((P)))
+ #define BIGPAIRFITS(P) ((FREESPACE((P)) >= PAIR_OVERHEAD))
++ /*
++ * Since these are all unsigned, we need to guarantee that we never go
++ * negative. Offset values are 0-based and overheads are one based (i.e.
++ * one byte of overhead is 1, not 0), so we need to convert OFFSETs to
++ * 1-based counting before subtraction.
++ */
+ #define FREESPACE(P) \
+ ((OFFSET((P)) + 1 - PAGE_OVERHEAD - (NUM_ENT((P)) * PAIR_OVERHEAD)))
+
+***************
+*** 159,165
+ #define PAIRFITS(P,K,D) ((PAIRSIZE((K),(D))) <= FREESPACE((P)))
+ #define BIGPAIRFITS(P) ((FREESPACE((P)) >= PAIR_OVERHEAD))
+ #define FREESPACE(P) \
+! ((OFFSET((P)) - PAGE_OVERHEAD - (NUM_ENT((P)) * PAIR_OVERHEAD)))
+
+ /*
+ * Overhead on header pages is just one word -- the length of the
+
+--- 165,171 -----
+ * 1-based counting before subtraction.
+ */
+ #define FREESPACE(P) \
+! ((OFFSET((P)) + 1 - PAGE_OVERHEAD - (NUM_ENT((P)) * PAIR_OVERHEAD)))
+
+ /*
+ * Overhead on header pages is just one word -- the length of the