[Groonga-commit] pgroonga/pgroonga at 2fe14a8 [master] Support Zstandard

Back to archive index

Kouhei Sutou null+****@clear*****
Thu Nov 24 00:00:20 JST 2016


Kouhei Sutou	2016-11-24 00:00:20 +0900 (Thu, 24 Nov 2016)

  New Revision: 2fe14a81dc6f7efaa5f7714142367b7e0104f6b7
  https://github.com/pgroonga/pgroonga/commit/2fe14a81dc6f7efaa5f7714142367b7e0104f6b7

  Message:
    Support Zstandard
    
    Priority: Zstandard -> LZ4 -> zlib

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

  Modified: src/pgrn_create.c (+8 -2)
===================================================================
--- src/pgrn_create.c    2016-11-23 22:23:44 +0900 (91dab78)
+++ src/pgrn_create.c    2016-11-24 00:00:20 +0900 (d43504f)
@@ -63,14 +63,20 @@ PGrnCreateDataColumn(PGrnCreateData *data)
 	{
 		flags |= GRN_OBJ_COLUMN_SCALAR;
 
-		if (PGrnIsLZ4Available || PGrnIsZlibAvailable)
+		if (PGrnIsLZ4Available || PGrnIsZlibAvailable || PGrnIsZstdAvailable)
 		{
 			switch (rangeID)
 			{
 			case GRN_DB_SHORT_TEXT:
 			case GRN_DB_TEXT:
 			case GRN_DB_LONG_TEXT:
-				if (PGrnIsLZ4Available)
+				if (PGrnIsZstdAvailable)
+				{
+#ifdef GRN_OBJ_COMPRESS_ZSTD
+					flags |= GRN_OBJ_COMPRESS_ZSTD;
+#endif
+				}
+				else if (PGrnIsLZ4Available)
 				{
 					flags |= GRN_OBJ_COMPRESS_LZ4;
 				}

  Modified: src/pgrn_groonga.c (+9 -0)
===================================================================
--- src/pgrn_groonga.c    2016-11-23 22:23:44 +0900 (bb4aa87)
+++ src/pgrn_groonga.c    2016-11-24 00:00:20 +0900 (bd23731)
@@ -10,6 +10,7 @@
 
 bool PGrnIsLZ4Available;
 bool PGrnIsZlibAvailable;
+bool PGrnIsZstdAvailable;
 
 static grn_ctx *ctx = &PGrnContext;
 static struct PGrnBuffers *buffers = &PGrnBuffers;
@@ -29,6 +30,14 @@ PGrnInitializeGroongaInformation(void)
 	grn_obj_get_info(ctx, NULL, GRN_INFO_SUPPORT_ZLIB, &grnIsSupported);
 	PGrnIsZlibAvailable = (GRN_BOOL_VALUE(&grnIsSupported));
 
+#ifdef GRN_OBJ_COMPRESS_ZSTD
+	GRN_BULK_REWIND(&grnIsSupported);
+	grn_obj_get_info(ctx, NULL, GRN_INFO_SUPPORT_ZSTD, &grnIsSupported);
+	PGrnIsZstdAvailable = (GRN_BOOL_VALUE(&grnIsSupported));
+#else
+	PGrnIsZstdAvailable = false;
+#endif
+
 	GRN_OBJ_FIN(ctx, &grnIsSupported);
 }
 

  Modified: src/pgrn_groonga.h (+1 -0)
===================================================================
--- src/pgrn_groonga.h    2016-11-23 22:23:44 +0900 (c5b88dc)
+++ src/pgrn_groonga.h    2016-11-24 00:00:20 +0900 (325100c)
@@ -7,6 +7,7 @@
 
 bool PGrnIsLZ4Available;
 bool PGrnIsZlibAvailable;
+bool PGrnIsZstdAvailable;
 
 void PGrnInitializeGroongaInformation(void);
 

  Modified: src/pgrn_jsonb.c (+7 -1)
===================================================================
--- src/pgrn_jsonb.c    2016-11-23 22:23:44 +0900 (1ac3c25)
+++ src/pgrn_jsonb.c    2016-11-24 00:00:20 +0900 (c23b903)
@@ -218,7 +218,13 @@ PGrnJSONBCreateDataColumns(Relation index,
 					 jsonbData->pathsTable);
 	{
 		grn_column_flags flags = 0;
-		if (PGrnIsLZ4Available)
+		if (PGrnIsZstdAvailable)
+		{
+#ifdef GRN_OBJ_COMPRESS_ZSTD
+			flags |= GRN_OBJ_COMPRESS_ZSTD;
+#endif
+		}
+		else if (PGrnIsLZ4Available)
 		{
 			flags |= GRN_OBJ_COMPRESS_LZ4;
 		}
-------------- next part --------------
HTML����������������������������...
下载 



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