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����������������������������...下载