File tree Expand file tree Collapse file tree 3 files changed +10
-12
lines changed Expand file tree Collapse file tree 3 files changed +10
-12
lines changed Original file line number Diff line number Diff line change 1
1
v3.5.0-rc.5 (2019-XX-XX)
2
2
------------------------
3
3
4
+ * Fixed a query abort error with smart joins if both collections were restricted to a
5
+ single shard using the "restrict-to-single-shard" optimizer rule.
6
+
4
7
* Fixed a performance regression of COLLECT WITH COUNT INTO.
5
8
6
9
* Fixed some races in cluster collection creation, which allowed collections with the
Original file line number Diff line number Diff line change @@ -171,8 +171,7 @@ void EngineInfoContainerDBServer::EngineInfo::addNode(ExecutionNode* node) {
171
171
TRI_ASSERT (sourceImpl);
172
172
173
173
if (node->isRestricted ()) {
174
- TRI_ASSERT (sourceImpl->restrictedShard .empty ());
175
- sourceImpl->restrictedShard = node->restrictedShard ();
174
+ sourceImpl->restrictedShards .emplace (node->restrictedShard ());
176
175
}
177
176
};
178
177
@@ -315,10 +314,10 @@ void EngineInfoContainerDBServer::EngineInfo::serializeSnippet(
315
314
bool isResponsibleForInitializeCursor) const {
316
315
auto * collection = boost::get<CollectionSource>(&_source);
317
316
TRI_ASSERT (collection);
318
- auto & restrictedShard = collection->restrictedShard ;
317
+ auto const & restrictedShards = collection->restrictedShards ;
319
318
320
- if (!restrictedShard .empty ()) {
321
- if (id != restrictedShard ) {
319
+ if (!restrictedShards .empty ()) {
320
+ if (restrictedShards. find (id) == restrictedShards. end () ) {
322
321
return ;
323
322
}
324
323
// We only have one shard it has to be responsible!
Original file line number Diff line number Diff line change @@ -88,7 +88,6 @@ class EngineInfoContainerDBServer {
88
88
explicit EngineInfo (size_t idOfRemoteNode) noexcept ;
89
89
EngineInfo (EngineInfo&& other) noexcept ;
90
90
~EngineInfo ();
91
- EngineInfo (EngineInfo&) = delete ;
92
91
EngineInfo (EngineInfo const & other) = delete ;
93
92
94
93
#if (_MSC_VER != 0)
@@ -124,14 +123,11 @@ class EngineInfoContainerDBServer {
124
123
125
124
private:
126
125
struct CollectionSource {
127
- explicit CollectionSource (aql::Collection* collection) noexcept
128
- : collection(collection) {
129
- }
130
- CollectionSource (CollectionSource&&) = default ;
131
- CollectionSource& operator =(CollectionSource&&) = default ;
126
+ explicit CollectionSource (aql::Collection* collection)
127
+ : collection(collection) {}
132
128
133
129
aql::Collection* collection{}; // The collection used to connect to this engine
134
- std::string restrictedShard; // The shard this snippet is restricted to
130
+ std::unordered_set<std:: string> restrictedShards{}; // The shards this snippet is restricted to
135
131
};
136
132
137
133
struct ViewSource {
You can’t perform that action at this time.
0 commit comments