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