| Index: third_party/sqlite/sqlite-src-3080704/ext/misc/compress.c
|
| diff --git a/third_party/sqlite/sqlite-src-3080704/ext/misc/compress.c b/third_party/sqlite/sqlite-src-3080704/ext/misc/compress.c
|
| deleted file mode 100644
|
| index a4059116c9e4c981b1345fca9bb9c0edf35dcb4b..0000000000000000000000000000000000000000
|
| --- a/third_party/sqlite/sqlite-src-3080704/ext/misc/compress.c
|
| +++ /dev/null
|
| @@ -1,107 +0,0 @@
|
| -/*
|
| -** 2014-06-13
|
| -**
|
| -** The author disclaims copyright to this source code. In place of
|
| -** a legal notice, here is a blessing:
|
| -**
|
| -** May you do good and not evil.
|
| -** May you find forgiveness for yourself and forgive others.
|
| -** May you share freely, never taking more than you give.
|
| -**
|
| -******************************************************************************
|
| -**
|
| -** This SQLite extension implements SQL compression functions
|
| -** compress() and uncompress() using ZLIB.
|
| -*/
|
| -#include "sqlite3ext.h"
|
| -SQLITE_EXTENSION_INIT1
|
| -#include <zlib.h>
|
| -
|
| -/*
|
| -** Implementation of the "compress(X)" SQL function. The input X is
|
| -** compressed using zLib and the output is returned.
|
| -**
|
| -** The output is a BLOB that begins with a variable-length integer that
|
| -** is the input size in bytes (the size of X before compression). The
|
| -** variable-length integer is implemented as 1 to 5 bytes. There are
|
| -** seven bits per integer stored in the lower seven bits of each byte.
|
| -** More significant bits occur first. The most significant bit (0x80)
|
| -** is a flag to indicate the end of the integer.
|
| -*/
|
| -static void compressFunc(
|
| - sqlite3_context *context,
|
| - int argc,
|
| - sqlite3_value **argv
|
| -){
|
| - const unsigned char *pIn;
|
| - unsigned char *pOut;
|
| - unsigned int nIn;
|
| - unsigned long int nOut;
|
| - unsigned char x[8];
|
| - int i, j;
|
| -
|
| - pIn = sqlite3_value_blob(argv[0]);
|
| - nIn = sqlite3_value_bytes(argv[0]);
|
| - nOut = 13 + nIn + (nIn+999)/1000;
|
| - pOut = sqlite3_malloc( nOut+5 );
|
| - for(i=4; i>=0; i--){
|
| - x[i] = (nIn >> (7*(4-i)))&0x7f;
|
| - }
|
| - for(i=0; i<4 && x[i]==0; i++){}
|
| - for(j=0; i<=4; i++, j++) pOut[j] = x[i];
|
| - pOut[j-1] |= 0x80;
|
| - compress(&pOut[j], &nOut, pIn, nIn);
|
| - sqlite3_result_blob(context, pOut, nOut+j, sqlite3_free);
|
| -}
|
| -
|
| -/*
|
| -** Implementation of the "uncompress(X)" SQL function. The argument X
|
| -** is a blob which was obtained from compress(Y). The output will be
|
| -** the value Y.
|
| -*/
|
| -static void uncompressFunc(
|
| - sqlite3_context *context,
|
| - int argc,
|
| - sqlite3_value **argv
|
| -){
|
| - const unsigned char *pIn;
|
| - unsigned char *pOut;
|
| - unsigned int nIn;
|
| - unsigned long int nOut;
|
| - int rc;
|
| - int i;
|
| -
|
| - pIn = sqlite3_value_blob(argv[0]);
|
| - nIn = sqlite3_value_bytes(argv[0]);
|
| - nOut = 0;
|
| - for(i=0; i<nIn && i<5; i++){
|
| - nOut = (nOut<<7) | (pIn[i]&0x7f);
|
| - if( (pIn[i]&0x80)!=0 ){ i++; break; }
|
| - }
|
| - pOut = sqlite3_malloc( nOut+1 );
|
| - rc = uncompress(pOut, &nOut, &pIn[i], nIn-i);
|
| - if( rc==Z_OK ){
|
| - sqlite3_result_blob(context, pOut, nOut, sqlite3_free);
|
| - }
|
| -}
|
| -
|
| -
|
| -#ifdef _WIN32
|
| -__declspec(dllexport)
|
| -#endif
|
| -int sqlite3_compress_init(
|
| - sqlite3 *db,
|
| - char **pzErrMsg,
|
| - const sqlite3_api_routines *pApi
|
| -){
|
| - int rc = SQLITE_OK;
|
| - SQLITE_EXTENSION_INIT2(pApi);
|
| - (void)pzErrMsg; /* Unused parameter */
|
| - rc = sqlite3_create_function(db, "compress", 1, SQLITE_UTF8, 0,
|
| - compressFunc, 0, 0);
|
| - if( rc==SQLITE_OK ){
|
| - rc = sqlite3_create_function(db, "uncompress", 1, SQLITE_UTF8, 0,
|
| - uncompressFunc, 0, 0);
|
| - }
|
| - return rc;
|
| -}
|
|
|