[Groonga-commit] pgroonga/pgroonga at b7341b4 [master] Use zlib if LZ4 isn't available but zlib is available

Back to archive index

Kouhei Sutou null+****@clear*****
Mon Nov 7 23:03:16 JST 2016


Kouhei Sutou	2016-11-07 23:03:16 +0900 (Mon, 07 Nov 2016)

  New Revision: b7341b46e01c56a52b31d0ce9c8d9b84126a40ea
  https://github.com/pgroonga/pgroonga/commit/b7341b46e01c56a52b31d0ce9c8d9b84126a40ea

  Message:
    Use zlib if LZ4 isn't available but zlib is available

  Modified files:
    src/pgrn_create.c
    src/pgrn_groonga.c
    src/pgrn_groonga.h
    src/pgrn_jsonb.c

  Modified: src/pgrn_create.c (+9 -2)
===================================================================
--- src/pgrn_create.c    2016-11-07 22:57:38 +0900 (a2ae35e)
+++ src/pgrn_create.c    2016-11-07 23:03:16 +0900 (c0ee4f8)
@@ -63,14 +63,21 @@ PGrnCreateDataColumn(PGrnCreateData *data)
 	{
 		flags |= GRN_OBJ_COLUMN_SCALAR;
 
-		if (PGrnIsLZ4Available)
+		if (PGrnIsLZ4Available || PGrnIsZLIBAvailable)
 		{
 			switch (rangeID)
 			{
 			case GRN_DB_SHORT_TEXT:
 			case GRN_DB_TEXT:
 			case GRN_DB_LONG_TEXT:
-				flags |= GRN_OBJ_COMPRESS_LZ4;
+				if (PGrnIsLZ4Available)
+				{
+					flags |= GRN_OBJ_COMPRESS_LZ4;
+				}
+				else if (PGrnIsZLIBAvailable)
+				{
+					flags |= GRN_OBJ_COMPRESS_ZLIB;
+				}
 				break;
 			}
 		}

  Modified: src/pgrn_groonga.c (+8 -0)
===================================================================
--- src/pgrn_groonga.c    2016-11-07 22:57:38 +0900 (ce3e855)
+++ src/pgrn_groonga.c    2016-11-07 23:03:16 +0900 (4e4f87b)
@@ -9,6 +9,7 @@
 #include <miscadmin.h>
 
 bool PGrnIsLZ4Available;
+bool PGrnIsZLIBAvailable;
 
 static grn_ctx *ctx = &PGrnContext;
 static struct PGrnBuffers *buffers = &PGrnBuffers;
@@ -19,8 +20,15 @@ PGrnInitializeGroongaInformation(void)
 	grn_obj grnIsSupported;
 
 	GRN_BOOL_INIT(&grnIsSupported, 0);
+
+	GRN_BULK_REWIND(&grnIsSupported);
 	grn_obj_get_info(ctx, NULL, GRN_INFO_SUPPORT_LZ4, &grnIsSupported);
 	PGrnIsLZ4Available = (GRN_BOOL_VALUE(&grnIsSupported));
+
+	GRN_BULK_REWIND(&grnIsSupported);
+	grn_obj_get_info(ctx, NULL, GRN_INFO_SUPPORT_ZLIB, &grnIsSupported);
+	PGrnIsZLIBAvailable = (GRN_BOOL_VALUE(&grnIsSupported));
+
 	GRN_OBJ_FIN(ctx, &grnIsSupported);
 }
 

  Modified: src/pgrn_groonga.h (+1 -0)
===================================================================
--- src/pgrn_groonga.h    2016-11-07 22:57:38 +0900 (ffc7a96)
+++ src/pgrn_groonga.h    2016-11-07 23:03:16 +0900 (afc22bb)
@@ -6,6 +6,7 @@
 #include <groonga.h>
 
 bool PGrnIsLZ4Available;
+bool PGrnIsZLIBAvailable;
 
 void PGrnInitializeGroongaInformation(void);
 

  Modified: src/pgrn_jsonb.c (+6 -0)
===================================================================
--- src/pgrn_jsonb.c    2016-11-07 22:57:38 +0900 (c72e9af)
+++ src/pgrn_jsonb.c    2016-11-07 23:03:16 +0900 (ecb1c29)
@@ -219,7 +219,13 @@ PGrnJSONBCreateDataColumns(Relation index,
 	{
 		grn_column_flags flags = 0;
 		if (PGrnIsLZ4Available)
+		{
 			flags |= GRN_OBJ_COMPRESS_LZ4;
+		}
+		else if (PGrnIsZLIBAvailable)
+		{
+			flags |= GRN_OBJ_COMPRESS_ZLIB;
+		}
 		PGrnCreateColumn(index,
 						 jsonbData->valuesTable,
 						 "string",
-------------- next part --------------
HTML����������������������������...
Download 



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