summaryrefslogtreecommitdiffstats
path: root/include/shard
diff options
context:
space:
mode:
Diffstat (limited to 'include/shard')
-rw-r--r--include/shard/MemISAM.h7
-rw-r--r--include/shard/PGM.h6
-rw-r--r--include/shard/TrieSpline.h6
-rw-r--r--include/shard/WIRS.h6
-rw-r--r--include/shard/WSS.h6
5 files changed, 25 insertions, 6 deletions
diff --git a/include/shard/MemISAM.h b/include/shard/MemISAM.h
index 96c404e..5815fd7 100644
--- a/include/shard/MemISAM.h
+++ b/include/shard/MemISAM.h
@@ -107,8 +107,11 @@ public:
continue;
}
- //Masking off the ts.
- base->header &= 1;
+ // FIXME: this shouldn't be necessary, but the tagged record
+ // bypass doesn't seem to be working on this code-path, so this
+ // ensures that tagged records from the buffer are able to be
+ // dropped, eventually. It should only need to be &= 1
+ base->header &= 3;
m_data[m_reccnt++] = *base;
if (m_bf && base->is_tombstone()) {
++m_tombstone_cnt;
diff --git a/include/shard/PGM.h b/include/shard/PGM.h
index 8b0bd69..3d680e7 100644
--- a/include/shard/PGM.h
+++ b/include/shard/PGM.h
@@ -95,7 +95,11 @@ public:
continue;
}
- base->header &= 1;
+ // FIXME: this shouldn't be necessary, but the tagged record
+ // bypass doesn't seem to be working on this code-path, so this
+ // ensures that tagged records from the buffer are able to be
+ // dropped, eventually. It should only need to be &= 1
+ base->header &= 3;
m_data[m_reccnt++] = *base;
keys.emplace_back(base->rec.key);
diff --git a/include/shard/TrieSpline.h b/include/shard/TrieSpline.h
index 2341751..349f41a 100644
--- a/include/shard/TrieSpline.h
+++ b/include/shard/TrieSpline.h
@@ -106,7 +106,11 @@ public:
m_min_key = base->rec.key;
}
- base->header &= 1;
+ // FIXME: this shouldn't be necessary, but the tagged record
+ // bypass doesn't seem to be working on this code-path, so this
+ // ensures that tagged records from the buffer are able to be
+ // dropped, eventually. It should only need to be &= 1
+ base->header &= 3;
m_data[m_reccnt++] = *base;
bldr.AddKey(base->rec.key);
diff --git a/include/shard/WIRS.h b/include/shard/WIRS.h
index 5c651af..163311e 100644
--- a/include/shard/WIRS.h
+++ b/include/shard/WIRS.h
@@ -123,7 +123,11 @@ public:
continue;
}
- base->header &= 1;
+ // FIXME: this shouldn't be necessary, but the tagged record
+ // bypass doesn't seem to be working on this code-path, so this
+ // ensures that tagged records from the buffer are able to be
+ // dropped, eventually. It should only need to be &= 1
+ base->header &= 3;
m_data[m_reccnt++] = *base;
m_total_weight+= base->rec.weight;
diff --git a/include/shard/WSS.h b/include/shard/WSS.h
index aa6ebf0..15c8b2e 100644
--- a/include/shard/WSS.h
+++ b/include/shard/WSS.h
@@ -106,7 +106,11 @@ public:
continue;
}
- base->header &= 1;
+ // FIXME: this shouldn't be necessary, but the tagged record
+ // bypass doesn't seem to be working on this code-path, so this
+ // ensures that tagged records from the buffer are able to be
+ // dropped, eventually. It should only need to be &= 1
+ base->header &= 3;
m_data[m_reccnt++] = *base;
m_total_weight+= base->rec.weight;
weights.push_back(base->rec.weight);