[Groonga-commit] groonga/grnxx at d283fc7 [master] Add RecordSet::subset().

Back to archive index

susumu.yata null+****@clear*****
Thu Jun 12 17:22:22 JST 2014


susumu.yata	2014-06-12 17:22:22 +0900 (Thu, 12 Jun 2014)

  New Revision: d283fc77b9359cf73e749f356ab0c22efa74b4c4
  https://github.com/groonga/grnxx/commit/d283fc77b9359cf73e749f356ab0c22efa74b4c4

  Message:
    Add RecordSet::subset().

  Modified files:
    new-interface/expression.hpp
    new-interface/record-set.hpp
    new-interface/types.hpp

  Modified: new-interface/expression.hpp (+2 -6)
===================================================================
--- new-interface/expression.hpp    2014-06-12 16:26:58 +0900 (c5e7b59)
+++ new-interface/expression.hpp    2014-06-12 17:22:22 +0900 (183b19a)
@@ -37,8 +37,7 @@ class Expression {
   //  - NaN が発生する.
   //   - TODO: これらの取り扱いについては検討の余地がある.
   virtual int64_t filter(Error *error,
-                         RecordSet *record_set,
-                         int64_t offset) = 0;
+                         RecordSet *record_set) = 0;
 
   // スコアを調整する.
   // 成功すれば true を返す.
@@ -60,8 +59,7 @@ class Expression {
   //  - NaN が発生する.
   //   - TODO: これらの取り扱いについては検討の余地がある.
   virtual bool adjust(Error *error,
-                      RecordSet *record_set,
-                      int64_t offset) = 0;
+                      RecordSet *record_set) = 0;
 
   // 行の一覧に対する評価結果を取得する.
   // 成功すれば true を返す.
@@ -76,8 +74,6 @@ class Expression {
   // - リソースが確保できない.
   virtual bool evaluate(Error *error,
                         const RecordSet &record_set,
-                        int64_t offset,
-                        int64_t limit,
                         Data *values) = 0;
 };
 

  Modified: new-interface/record-set.hpp (+20 -6)
===================================================================
--- new-interface/record-set.hpp    2014-06-12 16:26:58 +0900 (1eb4eba)
+++ new-interface/record-set.hpp    2014-06-12 17:22:22 +0900 (2e8ec07)
@@ -5,6 +5,11 @@
 
 namespace grnxx {
 
+struct Record {
+  RowID row_id;
+  double score;
+};
+
 class RecordSet {
  public:
   RecordSet();
@@ -12,15 +17,24 @@ class RecordSet {
 
   // 所属するテーブルを取得する.
   Table *table() const;
-  // レコード ID の最小値を取得する.
-  RecordID min_record_id() const;
-  // レコード ID の最大値を取得する.
-  RecordID max_record_id() const;
+  // レコード数を取得する.
+  int64_t num_records() const;
+
+  // レコードを取得する.
+  // 不正なレコード ID を指定したときの動作は未定義である.
+  Record get(int64_t i) const;
 
   // 行 ID を取得する.
-  RowID get_row_id(RecordID record_id) const;
+  // 不正なレコード ID を指定したときの動作は未定義である.
+  RowID get_row_id(int64_t i) const;
+
   // スコアを取得する.
-  double get_score(RecordID record_id) const;
+  // 不正なレコード ID を指定したときの動作は未定義である.
+  double get_score(int64_t i) const;
+
+  // 一部を取得する.
+  // 不正な範囲を指定したときの動作は未定義である.
+  RecordSet subset(int64_t offset, int64_t count) const;
 
   // スコアを正規化する.
   // 成功すれば true を返す.

  Modified: new-interface/types.hpp (+0 -1)
===================================================================
--- new-interface/types.hpp    2014-06-12 16:26:58 +0900 (438a81a)
+++ new-interface/types.hpp    2014-06-12 17:22:22 +0900 (9ff7ce1)
@@ -31,7 +31,6 @@ using TableID  = int64_t;
 using ColumnID = int64_t;
 using IndexID  = int64_t;
 using RowID    = int64_t;
-using RecordID = int64_t;
 
 constexpr RowID NULL_ROW_ID = RowID(0);
 constexpr RowID MIN_ROW_ID  = RowID(1);
-------------- next part --------------
HTML����������������������������...
Télécharger 



More information about the Groonga-commit mailing list
Back to archive index