[Groonga-commit] pgroonga/pgroonga at 51ed6e4 [master] Extract common code

Back to archive index

Kouhei Sutou null+****@clear*****
Sat Oct 8 22:11:02 JST 2016


Kouhei Sutou	2016-10-08 22:11:02 +0900 (Sat, 08 Oct 2016)

  New Revision: 51ed6e487e289c73d166f009e92466c419f23c36
  https://github.com/pgroonga/pgroonga/commit/51ed6e487e289c73d166f009e92466c419f23c36

  Message:
    Extract common code

  Modified files:
    src/pgroonga.c

  Modified: src/pgroonga.c (+24 -24)
===================================================================
--- src/pgroonga.c    2016-10-07 01:24:55 +0900 (9230c9b)
+++ src/pgroonga.c    2016-10-08 22:11:02 +0900 (22c4031)
@@ -3274,6 +3274,26 @@ PGrnEnsureCursorOpened(IndexScanDesc scan,
 	}
 }
 
+static grn_id
+PGrnScanOpaqueResolveID(PGrnScanOpaque so)
+{
+	grn_id recordID = so->currentID;
+
+	if (so->sorted)
+	{
+		GRN_BULK_REWIND(&(buffers->general));
+		grn_obj_get_value(ctx, so->sorted, recordID, &(buffers->general));
+		recordID = GRN_RECORD_VALUE(&(buffers->general));
+	}
+	if (so->searched)
+	{
+		grn_table_get_key(ctx, so->searched, recordID,
+						  &recordID, sizeof(grn_id));
+	}
+
+	return recordID;
+}
+
 #ifdef PGRN_SUPPORT_INDEX_ONLY_SCAN
 static void
 PGrnGetTupleFillIndexTuple(PGrnScanOpaque so,
@@ -3291,18 +3311,7 @@ PGrnGetTupleFillIndexTuple(PGrnScanOpaque so,
 	values = palloc(sizeof(Datum) * desc->natts);
 	isNulls = palloc(sizeof(bool) * desc->natts);
 
-	recordID = so->currentID;
-	if (so->sorted)
-	{
-		GRN_BULK_REWIND(&(buffers->general));
-		grn_obj_get_value(ctx, so->sorted, recordID, &(buffers->general));
-		recordID = GRN_RECORD_VALUE(&(buffers->general));
-	}
-	if (so->searched)
-	{
-		grn_table_get_key(ctx, so->searched, recordID,
-						  &recordID, sizeof(grn_id));
-	}
+	recordID = PGrnScanOpaqueResolveID(so);
 
 	for (i = 0; i < desc->natts; i++)
 	{
@@ -3338,18 +3347,9 @@ pgroonga_gettuple_raw(IndexScanDesc scan,
 
 	if (scan->kill_prior_tuple && so->currentID != GRN_ID_NIL)
 	{
-		grn_id recordID = so->currentID;
-		if (so->sorted)
-		{
-			GRN_BULK_REWIND(&(buffers->general));
-			grn_obj_get_value(ctx, so->sorted, recordID, &(buffers->general));
-			recordID = GRN_RECORD_VALUE(&(buffers->general));
-		}
-		if (so->searched)
-		{
-			grn_table_get_key(ctx, so->searched, recordID,
-							  &recordID, sizeof(grn_id));
-		}
+		grn_id recordID;
+
+		recordID = PGrnScanOpaqueResolveID(so);
 		grn_table_delete_by_id(ctx, so->sourcesTable, recordID);
 	}
 
-------------- next part --------------
HTML����������������������������...
Download 



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