summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--document/src/vespa/document/select/CMakeLists.txt1
-rw-r--r--document/src/vespa/document/select/orderingspecification.cpp27
-rw-r--r--document/src/vespa/document/select/orderingspecification.h43
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/visitor.h1
-rw-r--r--storage/src/vespa/storage/distributor/operations/external/visitororder.h60
-rw-r--r--storage/src/vespa/storage/visiting/visitor.h1
-rw-r--r--storageapi/src/vespa/storageapi/message/visitor.h1
7 files changed, 3 insertions, 131 deletions
diff --git a/document/src/vespa/document/select/CMakeLists.txt b/document/src/vespa/document/select/CMakeLists.txt
index a4536f82c21..81e5d86675c 100644
--- a/document/src/vespa/document/select/CMakeLists.txt
+++ b/document/src/vespa/document/select/CMakeLists.txt
@@ -25,7 +25,6 @@ vespa_add_library(document_select OBJECT
gid_filter.cpp
invalidconstant.cpp
operator.cpp
- orderingspecification.cpp
result.cpp
resultset.cpp
resultlist.cpp
diff --git a/document/src/vespa/document/select/orderingspecification.cpp b/document/src/vespa/document/select/orderingspecification.cpp
deleted file mode 100644
index 60cff313bdb..00000000000
--- a/document/src/vespa/document/select/orderingspecification.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-#include "orderingspecification.h"
-#include <vespa/vespalib/stllike/asciistream.h>
-
-namespace document {
-
-bool
-OrderingSpecification::operator==(const OrderingSpecification& other) const {
- return _order == other._order && _orderingStart == other._orderingStart && _widthBits == other._widthBits && _divisionBits == other._divisionBits;
-}
-
-vespalib::string
-OrderingSpecification::toString() const {
- vespalib::asciistream ost;
- ost << (_order == ASCENDING ? "+" : "-") << "," << _widthBits << "," << _divisionBits << "," << _orderingStart;
- return ost.str();
-}
-
-std::ostream&
-operator<<(std::ostream& out, const OrderingSpecification& o)
-{
- out << o.toString();
- return out;
-}
-
-}
diff --git a/document/src/vespa/document/select/orderingspecification.h b/document/src/vespa/document/select/orderingspecification.h
deleted file mode 100644
index 370197dd8e9..00000000000
--- a/document/src/vespa/document/select/orderingspecification.h
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#pragma once
-
-#include <vespa/fastos/types.h>
-#include <vespa/vespalib/stllike/string.h>
-
-namespace document {
-
-class OrderingSpecification {
-public:
- typedef std::unique_ptr<OrderingSpecification> UP;
-
- enum Order { ASCENDING = 0, DESCENDING };
-
- OrderingSpecification()
- : _order(ASCENDING), _orderingStart(0), _widthBits(0), _divisionBits(0) {};
-
- OrderingSpecification(Order order)
- : _order(order), _orderingStart(0), _widthBits(0), _divisionBits(0) {};
-
- OrderingSpecification(Order order, uint64_t orderingStart, uint16_t widthBits, uint16_t divisionBits)
- : _order(order), _orderingStart(orderingStart), _widthBits(widthBits), _divisionBits(divisionBits) {}
-
- Order getOrder() const { return _order; }
- uint64_t getOrderingStart() const { return _orderingStart; }
- uint16_t getWidthBits() const { return _widthBits; }
- uint16_t getDivisionBits() const { return _divisionBits; }
-
- bool operator==(const OrderingSpecification& other) const;
-
- vespalib::string toString() const;
-
-private:
- Order _order;
- uint64_t _orderingStart;
- uint16_t _widthBits;
- uint16_t _divisionBits;
-};
-
-std::ostream&
-operator<<(std::ostream& out, const OrderingSpecification& o);
-
-}
diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/visitor.h b/documentapi/src/vespa/documentapi/messagebus/messages/visitor.h
index b838fc9d395..b18a4e985f3 100644
--- a/documentapi/src/vespa/documentapi/messagebus/messages/visitor.h
+++ b/documentapi/src/vespa/documentapi/messagebus/messages/visitor.h
@@ -9,7 +9,6 @@
#include <vespa/vdslib/container/visitorstatistics.h>
#include <vespa/document/bucket/bucketid.h>
#include <vespa/documentapi/messagebus/documentprotocol.h>
-#include <vespa/document/select/orderingspecification.h>
#include <vespa/document/fieldvalue/document.h>
diff --git a/storage/src/vespa/storage/distributor/operations/external/visitororder.h b/storage/src/vespa/storage/distributor/operations/external/visitororder.h
index 89a5d9e3734..f33500bfc1f 100644
--- a/storage/src/vespa/storage/distributor/operations/external/visitororder.h
+++ b/storage/src/vespa/storage/distributor/operations/external/visitororder.h
@@ -1,34 +1,13 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <climits>
+#include <vespa/document/bucket/bucketid.h>
namespace storage::distributor {
struct VisitorOrder {
- document::OrderingSpecification _ordering;
- VisitorOrder()
- : _ordering() {}
-
- document::BucketId::Type getOrder(const document::BucketId& bid) {
- int32_t orderBitCount = _ordering.getWidthBits() -
- _ordering.getDivisionBits();
- document::BucketId::Type order = bid.withoutCountBits();
- order >>= 32;
- order <<= 64 - orderBitCount;
- order = document::BucketId::reverse(order);
- return order;
- }
-
- document::BucketId::Type padOnesRight(const document::BucketId::Type& id,
- int32_t count) {
- document::BucketId::Type res = id;
- document::BucketId::Type one = 1;
- for (int32_t i=0; i<count; i++) {
- res |= (one << i);
- }
- return res;
- }
+ VisitorOrder() { }
bool operator()(const document::BucketId& a, const document::BucketId& b) {
if (a == document::BucketId(INT_MAX) ||
@@ -39,40 +18,7 @@ struct VisitorOrder {
b == document::BucketId(INT_MAX)) {
return true; // All after null, non after max
}
- int32_t orderBitCount = _ordering.getWidthBits() -
- _ordering.getDivisionBits();
- int32_t aOrderBitsUsed = std::max((int32_t)a.getUsedBits() - 32, 0);
- int32_t bOrderBitsUsed = std::max((int32_t)b.getUsedBits() - 32, 0);
- if (orderBitCount <= 0 ||
- aOrderBitsUsed == 0 ||
- bOrderBitsUsed == 0) {
- return (a.toKey() < b.toKey()); // Reversed bucket id order
- }
-
- document::BucketId::Type aOrder = getOrder(a);
- document::BucketId::Type bOrder = getOrder(b);
-
- document::BucketId::Type sOrder = _ordering.getOrderingStart();
- sOrder <<= 64 - _ordering.getWidthBits();
- sOrder >>= 64 - orderBitCount;
-
- if (_ordering.getOrder() == document::OrderingSpecification::ASCENDING) {
- aOrder = padOnesRight(aOrder, orderBitCount - aOrderBitsUsed);
- bOrder = padOnesRight(bOrder, orderBitCount - bOrderBitsUsed);
- }
-
- aOrder -= sOrder;
- bOrder -= sOrder;
-
- if (_ordering.getOrder() == document::OrderingSpecification::DESCENDING) {
- aOrder = -aOrder;
- bOrder = -bOrder;
- }
-
- if (aOrder == bOrder) {
- return (a.toKey() < b.toKey()); // Reversed bucket id order
- }
- return (aOrder < bOrder);
+ return (a.toKey() < b.toKey()); // Reversed bucket id order
}
};
diff --git a/storage/src/vespa/storage/visiting/visitor.h b/storage/src/vespa/storage/visiting/visitor.h
index 88f3ad4f3c3..8a1f675a4c5 100644
--- a/storage/src/vespa/storage/visiting/visitor.h
+++ b/storage/src/vespa/storage/visiting/visitor.h
@@ -15,7 +15,6 @@
#include "memory_bounded_trace.h"
#include <vespa/storageapi/messageapi/storagemessage.h>
#include <vespa/storageapi/message/visitor.h>
-#include <vespa/document/select/orderingspecification.h>
#include <vespa/storage/common/storagecomponent.h>
#include <vespa/storage/common/visitorfactory.h>
#include <vespa/documentapi/messagebus/messages/documentmessage.h>
diff --git a/storageapi/src/vespa/storageapi/message/visitor.h b/storageapi/src/vespa/storageapi/message/visitor.h
index 4475e1c5614..f7dcaa63b20 100644
--- a/storageapi/src/vespa/storageapi/message/visitor.h
+++ b/storageapi/src/vespa/storageapi/message/visitor.h
@@ -13,7 +13,6 @@
#include <vespa/vdslib/container/visitorstatistics.h>
#include <vespa/storageapi/messageapi/storagecommand.h>
#include <vespa/storageapi/messageapi/storagereply.h>
-#include <vespa/document/select/orderingspecification.h>
namespace storage::api {