mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-15 08:56:58 +02:00
dev-db/sqlite: Sync with Gentoo
It's from Gentoo commit c19184d3fa2b7d6b2a0da7631085d2b46c14f1a6.
This commit is contained in:
parent
991ae27a1f
commit
63117857c6
@ -1,14 +1,10 @@
|
|||||||
DIST sqlite-doc-3330000.zip 9834159 BLAKE2B f67155a8ce8e46c2fbc0a4e35722d1fcad86e905a15230adc70732cee267b6b2002c7499883b938129aaa908b99634e4214360e9d1dbdae333b09060de24530e SHA512 14a3cccb4ff6af57738990eeadd37a1b827f89c9c1b16201c62ca5bb9301d39223d48677b9c269ce332210e5c9ae3f42aa0f9de7d79b38acb9809c732d038368
|
DIST sqlite-doc-3380000.zip 10603776 BLAKE2B f196b00cce01672dc1a27a64d70669ff87c26eacbdb97c76c3c45702cc2c9509507ddcc50180b3a4479afe2991a94dc3a8def59a984d917ad09fba5cbb63da94 SHA512 8e1f77504a1057cd23a8a6c2a285d63c5df50ceaf6ab84054a6f5422286dd868bdb3d5bd9be180b7834caba2b65ca185ffff60455bb504df30801157b62a62ef
|
||||||
DIST sqlite-doc-3340000.zip 10069888 BLAKE2B 343df62bc8b75d57dffe69c779cceb856d9e94a5b2a77c3a972761eedd8b4b0f5f8849102ec271652c3aa4039df75d7f2e503fd04b0547be03e024fdfbd894ac SHA512 1bdf20030e656ec4ce38a264c8ef7a95c9f2731cd7d756a44b35b6c68827e8aba92018007139ee09d1c27b34bcd72bff1a201dc3f30aa13e96120af5d58e835e
|
DIST sqlite-doc-3380100.zip 10615296 BLAKE2B fa3df2458b9c15d5f7ce8abb02eb050dddb618c6e87cd79e1979612649be53de4ed26d2bb3e1230e43d7fb1293e1d5bfa870d211195a9b7c2a11a97d417d1ab6 SHA512 ccdfee3d07f2c43b6dda52a2240fd3e72ada38be5a644d097b23116e1b0c2e21f539bf56afbae30fc4275b9b4a954393f95b0a5272bcf18c98e1538d190ff6bc
|
||||||
DIST sqlite-doc-3340100.zip 10074559 BLAKE2B 66aa999d87b7f3c994c289eda320d6a4e371b0a6a2ab8bcebde540aa955f3bdf4f00b739ca32aa913685cd35a88ee83bebd7fa43a0c148614e9086a1d3f5652a SHA512 20cbb9f05cd329bf7aa2877431781e46192544806042f4104e4eb0e87d84cd2dfc02c7ff226d4bef9bb2c6a69cc612201844d116abe99b0cfed9602adf243a60
|
DIST sqlite-doc-3380200.zip 10620764 BLAKE2B 81f7e7b9aef37bdae133c4d7dc517d2040d8202a7e0cdf00180d3abe3fb677c80dbc1987e437f0d0f34f47c61f09a7c9d664ba42af976ecfb24555590bb22087 SHA512 b54372ff788aa42b2138c6de91c42c4f6a6440623de3679f08b0519c5c20d9d865c60fa63223c60f4374ff5badb800d6f209e75abb280b9815902757424faf0b
|
||||||
DIST sqlite-doc-3350000.zip 10165959 BLAKE2B e24ae04764617d07fafc82f4c27d96b853df77de2a945109c2ff28abd3b61f8bdd318756d14b8d20e22a0dff05fcca26c9a8c9972f600af0a996cd8e13478c9d SHA512 f6b92cf1a087a97071c55605e85676c4d76b9435a1a433e4663ff3d7937557d72e4fb99931a14abda9ab3dece654da09d10f7ca2560ca3e0972e4b7690997132
|
DIST sqlite-doc-3380300.zip 10626490 BLAKE2B 7f1c2ff11ed4ba4748c35fcd72bedec5ce1ca68d87d00839f0a5f512c7309cf1c60678c0a0d8aecf07dc521c2240acdf1262f47ff3000b95e4953e095f2ec8f2 SHA512 4c30860b6ff0ba8c9455ea037cdda642bab2c1070e8726411ee51046b442f333623ce9c810d1d028a49ce571e6cc4afe363c643e90ba59463e84bb39298c4ad3
|
||||||
DIST sqlite-doc-3350100.zip 10175402 BLAKE2B c8ac8814837dc88320ae0f6973b5ec0b815a4fbfefae26ea2b5365485decb33e9e4add9097865819a5facb2568198535166dd8c492cb621ec845d8bfc2056721 SHA512 4843d8186f4cc98fc9ad5459a1b987d4512e72ceeeb985372c22d44f35856e33ee41ab0fa4372c273cfa4730f9461dc3f359ba50f26e53a0c7abd87e70cdfe86
|
DIST sqlite-doc-3380500.zip 10640188 BLAKE2B d831b672879a07e700c4d19bb97435cfc3aabc2371fd1b7f9e2257d1d53edaba72d974816d509fa60dbc7feaddf4b4f64c6bc061da4945aecab7be463951cb0c SHA512 1f8520e8b06cac97a3cd532d105be847b864d4d51ff2d8ab92c62b369e2e662aa477808e566e334a9103e31b84c119050b92ab6f0ef6d5d68db4d49bf2dd8182
|
||||||
DIST sqlite-doc-3350200.zip 10182547 BLAKE2B f50b04495aa79eca1ce935c8a96fe83d0a415f15ec55fda0cd982d02b4473ba8f5175c97d9816de2b79526787bc958b3be5e1234994e5f00d8ee1b432627391e SHA512 7ef973b804d059cf00c759a0ae001b7714df0472398e7cd55e34f59222df816a36511cefd15fa99abf67dec4291ee6babbc12bd87855194608ff556a5c1182ae
|
DIST sqlite-src-3380000.zip 13236840 BLAKE2B f303e39a9d913994f0756f986de9d316322b2278b8d2aeb505eb37d1c370c2edbb91f6f56e95b73938137a72b0c22a82fc8a2ceb19ab03271c38f653b66f66ea SHA512 9f4d3c406df5e6290f3f0b5e24b568723ab54bb085cb8cd7621ab42b0b8cd4f76e9784a4a29b42ea8cb0d1b7d759267c3cd980913d490d08e7172df05949131d
|
||||||
DIST sqlite-doc-3350300.zip 10197905 BLAKE2B ffe3e800fa7c9066c6f180a5989cceb89dfff81729258278256901eee717872ef6993a8bb30ebb6c1de5a66c128009c21494ec9bf0011accdd6f8beef712213a SHA512 260981abaf54f452777e37e99474d100010ec2340c740f78445b7794fa17bcbb814e90f004f870d929a9ccab1d89417ee3d65ffe3b65dbf511ca1de7b6a6a4c8
|
DIST sqlite-src-3380100.zip 13241298 BLAKE2B 9dbccd5942f146da4c40d6208c491473c191752a74ee18ce131f3dea533976732440974e97906aead460daee39c7d6085ffa0f093d8f17e8f64c813bbb2409ad SHA512 df200916789c15e010a8e62dd8257833f34d4cf3496080a72fdc2330a530c193cda055e3c9ed39a404b87c8001c83a4b187491525ca95b5c5a1dbdd2f41cc222
|
||||||
DIST sqlite-src-3330000.zip 12591089 BLAKE2B 14888bca229683e97c4666f8efb535be5bd3e322de0089f0175ba15e038016be3a3cc00b5bfa8c111538116914cf6d8439839ca5d1e20339b184e547ddf260a4 SHA512 3260e3e03ee2f6a4ff2bc4ea4bada5a1497afeca33878c155a8005824970c6c1eb8a2db58eb3023cab084af475fadb81d1c3c9892ae92c07f884881e6602e173
|
DIST sqlite-src-3380200.zip 13242285 BLAKE2B a07f895f57c355e2ec1c96fc857b63d774ff52f7e49c22b1c936b260e6e7787ec656059c02cc6d38845c4368507067d86dac493559541fbb914a3da9cbc67cce SHA512 fd457602db4577b31bc6053fd3cceb220337275e3fd26976f4270fb8a7da4fa047ca23dd18e2795cdfd894d05bad4c53954a81391d71507d359fb224995e420a
|
||||||
DIST sqlite-src-3340000.zip 12623425 BLAKE2B 548293cf0166407727cd068804eb5e1ce62f654533c88a87b71a6ff62da37eb2af21b89b8d63ee677777ca917e0d685ddcf9b8d5c3c8b2a2b787d71da8e5a161 SHA512 520fbca59da02452e2861a140bde891aedfc8254eafaa6894e8d845369d60d6a921595a411efb2611c0f7b0cadd69a713dcdaaeaad1e4254e9fd9a6efde07f91
|
DIST sqlite-src-3380300.zip 13244116 BLAKE2B d28c26a72729b49fac009e835068a15cb14b13bcef5e2d45a94929f22329002cbbf09ff9926a7cb041d1bcbd6fb9ebac784cce06196d29a9b9bf56f97645553e SHA512 d0605148931db62d167080e384d058e87452409fcb3ce366603e6eec8e2f68754259ce217c26e641401d5b0ae7714efd45fc4a881671db37597f2f027cd7da51
|
||||||
DIST sqlite-src-3340100.zip 12623711 BLAKE2B 08c98d0c56d46fe909f449f322002ae4d69fd952930d2f04514988a939b31744a13aea85935d84bc05db52faca1aad6a70d7c31e7da0e396bb649685a49699bb SHA512 5ed02fe609b3d08c3297cc43b21e6ee3f56fb51a6616ac391a0e50cd1677dbad03c6bf9bf9c8409cf94b83b16fe6b6e4a112640b18c7d4fd95328066da3c3943
|
DIST sqlite-src-3380500.zip 13245057 BLAKE2B d2deefbc918ab593146950c21047dbd94168d09150ffe00da20e4ee6b02f69516b496b14e1925b00ace8a4148b87bfb263a97d75ab48990e29e12796387fee5f SHA512 d91f060165354ff4b32a72627c16b6d2310d478768794a49eef57229d7199d83f951444fdc0725acf8d2565ef61a9c7921e9c965f429b018b6fd23d129b6e630
|
||||||
DIST sqlite-src-3350000.zip 12814378 BLAKE2B f77880bfb335da078623841f9d9d9fc690085630757d8d8e3d40d42646902f809febf8dcc5048d38be0e2d74c0114c35f09789bc261e51d49f9685201f6d1297 SHA512 4b77d963092a6aed61b50e59450edf2af187f16b185b05ca54d81c3eecf71b1cb9bc2883a8aadeb971fcebe343fa430ea788aedb77e3712c8b39d4892c93a797
|
|
||||||
DIST sqlite-src-3350100.zip 12814875 BLAKE2B bc4f6913ce93c32e1c6fbd39f45666a14476096b09f7534047aee56cbb18e949bf5225c080c813281a0abae9198a35165161393db39df0c2af2a92138b4604d9 SHA512 004bcca9c2ae883b05d8f15c8bf28a12fd2fdf9527d1560d137f8e2570c153d14ea5405c500d0e79966a3881a516df4d9ed07be751712f1584df411e86c60977
|
|
||||||
DIST sqlite-src-3350200.zip 12815298 BLAKE2B a65034fc59c32e950b5337ef4fe1b2476190fe6f1272494b12f9e1d048aac759ac31e7c0f252774c850b0f313bf44b34a97fc563c049e30d2a896f262b199dce SHA512 d5382bf31d812bc51533d28a583c78d3f389b1ecbe1f9f30cc755059f2867f832c0529e9f97b090be5c5bc855c45611b220b8c29b5648c451490566a70cc5122
|
|
||||||
DIST sqlite-src-3350300.zip 12817388 BLAKE2B 5b07d15ec5ed934ffa776ae4e079d4b4a3d9c91c526577683c7eea4f95ba62738d82b6fd26f1c10560a6f87fd02b070e5786bcc45e908a338a316071009e5b92 SHA512 5b994833e37e5f7579f4e3eefbbadd5b2a3d691b5f662b7d3dc2bbf80ff1cdaf89262ce5612513fcb2daa0a7d1db3de871dfc462f9d162c954593ff7f4ad90fd
|
|
||||||
|
@ -1,413 +0,0 @@
|
|||||||
Add initialization functions for internal usage in libsqlite3.so.
|
|
||||||
|
|
||||||
--- /ext/misc/amatch.c
|
|
||||||
+++ /ext/misc/amatch.c
|
|
||||||
@@ -1480,9 +1480,18 @@
|
|
||||||
|
|
||||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
|
|
||||||
+int sqlite3AmatchInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
+ rc = sqlite3_create_module(db, "approximate_match", &amatchModule, 0);
|
|
||||||
+#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
** Register the amatch virtual table
|
|
||||||
*/
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -1491,11 +1500,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Not used */
|
|
||||||
-#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
- rc = sqlite3_create_module(db, "approximate_match", &amatchModule, 0);
|
|
||||||
-#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3AmatchInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/carray.c
|
|
||||||
+++ /ext/misc/carray.c
|
|
||||||
@@ -383,16 +383,8 @@
|
|
||||||
|
|
||||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_carray_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3CarrayInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
rc = sqlite3_create_module(db, "carray", &carrayModule, 0);
|
|
||||||
#ifdef SQLITE_TEST
|
|
||||||
@@ -404,3 +396,18 @@
|
|
||||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_carray_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3CarrayInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/completion.c
|
|
||||||
+++ /ext/misc/completion.c
|
|
||||||
@@ -483,12 +483,13 @@
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
int sqlite3_completion_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
@@ -499,3 +500,4 @@
|
|
||||||
#endif
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/csv.c
|
|
||||||
+++ /ext/misc/csv.c
|
|
||||||
@@ -928,6 +928,22 @@
|
|
||||||
#endif /* !defined(SQLITE_OMIT_VIRTUALTABLE) */
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3CsvInit(sqlite3 *db){
|
|
||||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
+ int rc;
|
|
||||||
+ rc = sqlite3_create_module(db, "csv", &CsvModule, 0);
|
|
||||||
+#ifdef SQLITE_TEST
|
|
||||||
+ if( rc==SQLITE_OK ){
|
|
||||||
+ rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0);
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+ return rc;
|
|
||||||
+#else
|
|
||||||
+ return SQLITE_OK;
|
|
||||||
+#endif
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -941,17 +957,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
-#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
- int rc;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- rc = sqlite3_create_module(db, "csv", &CsvModule, 0);
|
|
||||||
-#ifdef SQLITE_TEST
|
|
||||||
- if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0);
|
|
||||||
- }
|
|
||||||
-#endif
|
|
||||||
- return rc;
|
|
||||||
-#else
|
|
||||||
- return SQLITE_OK;
|
|
||||||
-#endif
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3CsvInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/dbdata.c
|
|
||||||
+++ /ext/misc/dbdata.c
|
|
||||||
@@ -803,7 +803,7 @@
|
|
||||||
/*
|
|
||||||
** Invoke this routine to register the "sqlite_dbdata" virtual table module
|
|
||||||
*/
|
|
||||||
-static int sqlite3DbdataRegister(sqlite3 *db){
|
|
||||||
+int sqlite3DbdataRegister(sqlite3 *db){
|
|
||||||
static sqlite3_module dbdata_module = {
|
|
||||||
0, /* iVersion */
|
|
||||||
0, /* xCreate */
|
|
||||||
@@ -838,6 +838,7 @@
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -849,3 +850,4 @@
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
return sqlite3DbdataRegister(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/decimal.c
|
|
||||||
+++ /ext/misc/decimal.c
|
|
||||||
@@ -590,14 +590,7 @@
|
|
||||||
decimal_free(pB);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_decimal_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3DecimalInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
static const struct {
|
|
||||||
const char *zFuncName;
|
|
||||||
@@ -611,10 +604,6 @@
|
|
||||||
{ "decimal_mul", 2, decimalMulFunc },
|
|
||||||
};
|
|
||||||
unsigned int i;
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
-
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
-
|
|
||||||
for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){
|
|
||||||
rc = sqlite3_create_function(db, aFunc[i].zFuncName, aFunc[i].nArg,
|
|
||||||
SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_DETERMINISTIC,
|
|
||||||
@@ -632,3 +621,20 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_decimal_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+
|
|
||||||
+ return sqlite3DecimalInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/eval.c
|
|
||||||
+++ /ext/misc/eval.c
|
|
||||||
@@ -102,6 +102,20 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3EvalInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "eval", 1,
|
|
||||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
+ sqlEvalFunc, 0, 0);
|
|
||||||
+ if( rc==SQLITE_OK ){
|
|
||||||
+ rc = sqlite3_create_function(db, "eval", 2,
|
|
||||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
+ sqlEvalFunc, 0, 0);
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -110,16 +124,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "eval", 1,
|
|
||||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
- sqlEvalFunc, 0, 0);
|
|
||||||
- if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_function(db, "eval", 2,
|
|
||||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
- sqlEvalFunc, 0, 0);
|
|
||||||
- }
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3EvalInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/fileio.c
|
|
||||||
+++ /ext/misc/fileio.c
|
|
||||||
@@ -340,7 +340,7 @@
|
|
||||||
** This function does the work for the writefile() UDF. Refer to
|
|
||||||
** header comments at the top of this file for details.
|
|
||||||
*/
|
|
||||||
-static int writeFile(
|
|
||||||
+static int writeFileContents(
|
|
||||||
sqlite3_context *pCtx, /* Context to return bytes written in */
|
|
||||||
const char *zFile, /* File to write */
|
|
||||||
sqlite3_value *pData, /* Data to write */
|
|
||||||
@@ -480,10 +480,10 @@
|
|
||||||
mtime = sqlite3_value_int64(argv[3]);
|
|
||||||
}
|
|
||||||
|
|
||||||
- res = writeFile(context, zFile, argv[1], mode, mtime);
|
|
||||||
+ res = writeFileContents(context, zFile, argv[1], mode, mtime);
|
|
||||||
if( res==1 && errno==ENOENT ){
|
|
||||||
if( makeDirectory(zFile)==SQLITE_OK ){
|
|
||||||
- res = writeFile(context, zFile, argv[1], mode, mtime);
|
|
||||||
+ res = writeFileContents(context, zFile, argv[1], mode, mtime);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -970,18 +970,9 @@
|
|
||||||
# define fsdirRegister(x) SQLITE_OK
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_fileio_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3FileioInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "readfile", 1,
|
|
||||||
+ rc = sqlite3_create_function(db, "readfile", 1,
|
|
||||||
SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
readfileFunc, 0, 0);
|
|
||||||
if( rc==SQLITE_OK ){
|
|
||||||
@@ -998,3 +989,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_fileio_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3FileioInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/ieee754.c
|
|
||||||
+++ /ext/misc/ieee754.c
|
|
||||||
@@ -245,14 +245,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_ieee_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3IeeeInit(sqlite3 *db){
|
|
||||||
static const struct {
|
|
||||||
char *zFName;
|
|
||||||
int nArg;
|
|
||||||
@@ -269,13 +262,26 @@
|
|
||||||
};
|
|
||||||
unsigned int i;
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){
|
|
||||||
- rc = sqlite3_create_function(db, aFunc[i].zFName, aFunc[i].nArg,
|
|
||||||
+ rc = sqlite3_create_function(db, aFunc[i].zFName, aFunc[i].nArg,
|
|
||||||
SQLITE_UTF8|SQLITE_INNOCUOUS,
|
|
||||||
(void*)&aFunc[i].iAux,
|
|
||||||
aFunc[i].xFunc, 0, 0);
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_ieee_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3IeeeInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/nextchar.c
|
|
||||||
+++ /ext/misc/nextchar.c
|
|
||||||
@@ -286,17 +286,8 @@
|
|
||||||
sqlite3_free(c.aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_nextchar_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3NextcharInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
rc = sqlite3_create_function(db, "next_char", 3,
|
|
||||||
SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
nextCharFunc, 0, 0);
|
|
||||||
@@ -312,3 +303,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_nextchar_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3NextcharInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
@ -1,422 +0,0 @@
|
|||||||
Add initialization functions for internal usage in libsqlite3.so.
|
|
||||||
|
|
||||||
--- /ext/misc/percentile.c
|
|
||||||
+++ /ext/misc/percentile.c
|
|
||||||
@@ -202,6 +202,15 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3PercentileInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "percentile", 2,
|
|
||||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
+ 0, percentStep, percentFinal);
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -210,11 +219,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "percentile", 2,
|
|
||||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
- 0, percentStep, percentFinal);
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3PercentileInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/regexp.c
|
|
||||||
+++ /ext/misc/regexp.c
|
|
||||||
@@ -740,10 +740,18 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+int sqlite3RegexpInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "regexp", 2, SQLITE_UTF8|SQLITE_INNOCUOUS,
|
|
||||||
+ 0, re_sql_func, 0, 0);
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
** Invoke this routine to register the regexp() function with the
|
|
||||||
** SQLite database connection.
|
|
||||||
*/
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -752,9 +760,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- rc = sqlite3_create_function(db, "regexp", 2, SQLITE_UTF8|SQLITE_INNOCUOUS,
|
|
||||||
- 0, re_sql_func, 0, 0);
|
|
||||||
- return rc;
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3RegexpInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/sha1.c
|
|
||||||
+++ /ext/misc/sha1.c
|
|
||||||
@@ -175,7 +175,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Compute a string using sqlite3_vsnprintf() and hash it */
|
|
||||||
-static void hash_step_vformat(
|
|
||||||
+static void sha1_hash_step_vformat(
|
|
||||||
SHA1Context *p, /* Add content to this context */
|
|
||||||
const char *zFormat,
|
|
||||||
...
|
|
||||||
@@ -306,7 +306,7 @@
|
|
||||||
nCol = sqlite3_column_count(pStmt);
|
|
||||||
z = sqlite3_sql(pStmt);
|
|
||||||
n = (int)strlen(z);
|
|
||||||
- hash_step_vformat(&cx,"S%d:",n);
|
|
||||||
+ sha1_hash_step_vformat(&cx,"S%d:",n);
|
|
||||||
hash_step(&cx,(unsigned char*)z,n);
|
|
||||||
|
|
||||||
/* Compute a hash over the result of the query */
|
|
||||||
@@ -349,14 +349,14 @@
|
|
||||||
case SQLITE_TEXT: {
|
|
||||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
|
||||||
const unsigned char *z2 = sqlite3_column_text(pStmt, i);
|
|
||||||
- hash_step_vformat(&cx,"T%d:",n2);
|
|
||||||
+ sha1_hash_step_vformat(&cx,"T%d:",n2);
|
|
||||||
hash_step(&cx, z2, n2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SQLITE_BLOB: {
|
|
||||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
|
||||||
const unsigned char *z2 = sqlite3_column_blob(pStmt, i);
|
|
||||||
- hash_step_vformat(&cx,"B%d:",n2);
|
|
||||||
+ sha1_hash_step_vformat(&cx,"B%d:",n2);
|
|
||||||
hash_step(&cx, z2, n2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
@@ -370,6 +370,20 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3ShaInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "sha1", 1,
|
|
||||||
+ SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
|
||||||
+ 0, sha1Func, 0, 0);
|
|
||||||
+ if( rc==SQLITE_OK ){
|
|
||||||
+ rc = sqlite3_create_function(db, "sha1_query", 1,
|
|
||||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
+ sha1QueryFunc, 0, 0);
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -378,16 +392,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "sha1", 1,
|
|
||||||
- SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
|
||||||
- 0, sha1Func, 0, 0);
|
|
||||||
- if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_function(db, "sha1_query", 1,
|
|
||||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
- sha1QueryFunc, 0, 0);
|
|
||||||
- }
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3ShaInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/shathree.c
|
|
||||||
+++ /ext/misc/shathree.c
|
|
||||||
@@ -527,7 +527,7 @@
|
|
||||||
/* Compute a string using sqlite3_vsnprintf() with a maximum length
|
|
||||||
** of 50 bytes and add it to the hash.
|
|
||||||
*/
|
|
||||||
-static void hash_step_vformat(
|
|
||||||
+static void sha3_hash_step_vformat(
|
|
||||||
SHA3Context *p, /* Add content to this context */
|
|
||||||
const char *zFormat,
|
|
||||||
...
|
|
||||||
@@ -622,7 +622,7 @@
|
|
||||||
nCol = sqlite3_column_count(pStmt);
|
|
||||||
z = sqlite3_sql(pStmt);
|
|
||||||
n = (int)strlen(z);
|
|
||||||
- hash_step_vformat(&cx,"S%d:",n);
|
|
||||||
+ sha3_hash_step_vformat(&cx,"S%d:",n);
|
|
||||||
SHA3Update(&cx,(unsigned char*)z,n);
|
|
||||||
|
|
||||||
/* Compute a hash over the result of the query */
|
|
||||||
@@ -665,14 +665,14 @@
|
|
||||||
case SQLITE_TEXT: {
|
|
||||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
|
||||||
const unsigned char *z2 = sqlite3_column_text(pStmt, i);
|
|
||||||
- hash_step_vformat(&cx,"T%d:",n2);
|
|
||||||
+ sha3_hash_step_vformat(&cx,"T%d:",n2);
|
|
||||||
SHA3Update(&cx, z2, n2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SQLITE_BLOB: {
|
|
||||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
|
||||||
const unsigned char *z2 = sqlite3_column_blob(pStmt, i);
|
|
||||||
- hash_step_vformat(&cx,"B%d:",n2);
|
|
||||||
+ sha3_hash_step_vformat(&cx,"B%d:",n2);
|
|
||||||
SHA3Update(&cx, z2, n2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
@@ -685,17 +685,8 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_shathree_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3ShathreeInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
rc = sqlite3_create_function(db, "sha3", 1,
|
|
||||||
SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
|
||||||
0, sha3Func, 0, 0);
|
|
||||||
@@ -716,3 +707,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_shathree_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3ShathreeInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/sqlar.c
|
|
||||||
+++ /ext/misc/sqlar.c
|
|
||||||
@@ -14,6 +14,8 @@
|
|
||||||
** for working with sqlar archives and used by the shell tool's built-in
|
|
||||||
** sqlar support.
|
|
||||||
*/
|
|
||||||
+#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
+
|
|
||||||
#include "sqlite3ext.h"
|
|
||||||
SQLITE_EXTENSION_INIT1
|
|
||||||
#include <zlib.h>
|
|
||||||
@@ -101,6 +103,20 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3SqlarInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "sqlar_compress", 1,
|
|
||||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
+ sqlarCompressFunc, 0, 0);
|
|
||||||
+ if( rc==SQLITE_OK ){
|
|
||||||
+ rc = sqlite3_create_function(db, "sqlar_uncompress", 2,
|
|
||||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
+ sqlarUncompressFunc, 0, 0);
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -109,16 +125,10 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "sqlar_compress", 1,
|
|
||||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
- sqlarCompressFunc, 0, 0);
|
|
||||||
- if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_function(db, "sqlar_uncompress", 2,
|
|
||||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
- sqlarUncompressFunc, 0, 0);
|
|
||||||
- }
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3SqlarInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
+
|
|
||||||
+#endif /* SQLITE_HAVE_ZLIB */
|
|
||||||
--- /ext/misc/totype.c
|
|
||||||
+++ /ext/misc/totype.c
|
|
||||||
@@ -491,17 +491,8 @@
|
|
||||||
#pragma warning(default: 4748)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_totype_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3TotypeInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
rc = sqlite3_create_function(db, "tointeger", 1,
|
|
||||||
SQLITE_UTF8 | SQLITE_DETERMINISTIC | SQLITE_INNOCUOUS, 0,
|
|
||||||
tointegerFunc, 0, 0);
|
|
||||||
@@ -512,3 +503,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_totype_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3TotypeInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/uint.c
|
|
||||||
+++ /ext/misc/uint.c
|
|
||||||
@@ -78,6 +78,11 @@
|
|
||||||
return (nKey1 - i) - (nKey2 - j);
|
|
||||||
}
|
|
||||||
|
|
||||||
+int sqlite3UintInit(sqlite3 *db){
|
|
||||||
+ return sqlite3_create_collation(db, "UINT", SQLITE_UTF8, 0, uintCollFunc);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -88,5 +93,6 @@
|
|
||||||
){
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- return sqlite3_create_collation(db, "uint", SQLITE_UTF8, 0, uintCollFunc);
|
|
||||||
+ return sqlite3UintInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/uuid.c
|
|
||||||
+++ /ext/misc/uuid.c
|
|
||||||
@@ -206,21 +206,12 @@
|
|
||||||
sqlite3_result_blob(context, pBlob, 16, SQLITE_TRANSIENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_uuid_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3UuidInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
rc = sqlite3_create_function(db, "uuid", 0, SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
sqlite3UuidFunc, 0, 0);
|
|
||||||
if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_function(db, "uuid_str", 1,
|
|
||||||
+ rc = sqlite3_create_function(db, "uuid_str", 1,
|
|
||||||
SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_DETERMINISTIC,
|
|
||||||
0, sqlite3UuidStrFunc, 0, 0);
|
|
||||||
}
|
|
||||||
@@ -231,3 +222,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_uuid_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3UuidInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/zipfile.c
|
|
||||||
+++ /ext/misc/zipfile.c
|
|
||||||
@@ -24,6 +24,8 @@
|
|
||||||
** * No support for zip64 extensions
|
|
||||||
** * Only the "inflate/deflate" (zlib) compression method is supported
|
|
||||||
*/
|
|
||||||
+#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
+
|
|
||||||
#include "sqlite3ext.h"
|
|
||||||
SQLITE_EXTENSION_INIT1
|
|
||||||
#include <stdio.h>
|
|
||||||
@@ -2137,7 +2139,7 @@
|
|
||||||
/*
|
|
||||||
** Register the "zipfile" virtual table.
|
|
||||||
*/
|
|
||||||
-static int zipfileRegister(sqlite3 *db){
|
|
||||||
+int sqlite3ZipfileInit(sqlite3 *db){
|
|
||||||
static sqlite3_module zipfileModule = {
|
|
||||||
1, /* iVersion */
|
|
||||||
zipfileConnect, /* xCreate */
|
|
||||||
@@ -2171,9 +2173,10 @@
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
#else /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
-# define zipfileRegister(x) SQLITE_OK
|
|
||||||
+# define sqlite3ZipfileInit(x) SQLITE_OK
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -2184,5 +2187,8 @@
|
|
||||||
){
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- return zipfileRegister(db);
|
|
||||||
+ return sqlite3ZipfileInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
+
|
|
||||||
+#endif /* SQLITE_HAVE_ZLIB */
|
|
@ -1,286 +0,0 @@
|
|||||||
Move some code to libsqlite3.so to avoid duplication.
|
|
||||||
Link executables against libsqlite3.so.
|
|
||||||
Increase timeout for fuzzcheck.
|
|
||||||
Update list of optionally available functions.
|
|
||||||
Fix building with dlopen() not available.
|
|
||||||
|
|
||||||
--- /Makefile.in
|
|
||||||
+++ /Makefile.in
|
|
||||||
@@ -313,6 +313,9 @@
|
|
||||||
# Source code for extensions
|
|
||||||
#
|
|
||||||
SRC += \
|
|
||||||
+ $(TOP)/ext/expert/sqlite3expert.c \
|
|
||||||
+ $(TOP)/ext/expert/sqlite3expert.h
|
|
||||||
+SRC += \
|
|
||||||
$(TOP)/ext/fts1/fts1.c \
|
|
||||||
$(TOP)/ext/fts1/fts1.h \
|
|
||||||
$(TOP)/ext/fts1/fts1_hash.c \
|
|
||||||
@@ -365,8 +368,28 @@
|
|
||||||
$(TOP)/ext/rbu/sqlite3rbu.h \
|
|
||||||
$(TOP)/ext/rbu/sqlite3rbu.c
|
|
||||||
SRC += \
|
|
||||||
+ $(TOP)/ext/misc/amatch.c \
|
|
||||||
+ $(TOP)/ext/misc/appendvfs.c \
|
|
||||||
+ $(TOP)/ext/misc/carray.c \
|
|
||||||
+ $(TOP)/ext/misc/completion.c \
|
|
||||||
+ $(TOP)/ext/misc/csv.c \
|
|
||||||
+ $(TOP)/ext/misc/dbdata.c \
|
|
||||||
+ $(TOP)/ext/misc/decimal.c \
|
|
||||||
+ $(TOP)/ext/misc/eval.c \
|
|
||||||
+ $(TOP)/ext/misc/fileio.c \
|
|
||||||
+ $(TOP)/ext/misc/ieee754.c \
|
|
||||||
$(TOP)/ext/misc/json1.c \
|
|
||||||
- $(TOP)/ext/misc/stmt.c
|
|
||||||
+ $(TOP)/ext/misc/nextchar.c \
|
|
||||||
+ $(TOP)/ext/misc/percentile.c \
|
|
||||||
+ $(TOP)/ext/misc/regexp.c \
|
|
||||||
+ $(TOP)/ext/misc/sha1.c \
|
|
||||||
+ $(TOP)/ext/misc/shathree.c \
|
|
||||||
+ $(TOP)/ext/misc/sqlar.c \
|
|
||||||
+ $(TOP)/ext/misc/stmt.c \
|
|
||||||
+ $(TOP)/ext/misc/totype.c \
|
|
||||||
+ $(TOP)/ext/misc/uint.c \
|
|
||||||
+ $(TOP)/ext/misc/uuid.c \
|
|
||||||
+ $(TOP)/ext/misc/zipfile.c
|
|
||||||
|
|
||||||
# Generated source code files
|
|
||||||
#
|
|
||||||
@@ -437,34 +460,21 @@
|
|
||||||
# Statically linked extensions
|
|
||||||
#
|
|
||||||
TESTSRC += \
|
|
||||||
- $(TOP)/ext/expert/sqlite3expert.c \
|
|
||||||
$(TOP)/ext/expert/test_expert.c \
|
|
||||||
- $(TOP)/ext/misc/amatch.c \
|
|
||||||
- $(TOP)/ext/misc/carray.c \
|
|
||||||
$(TOP)/ext/misc/closure.c \
|
|
||||||
- $(TOP)/ext/misc/csv.c \
|
|
||||||
- $(TOP)/ext/misc/decimal.c \
|
|
||||||
- $(TOP)/ext/misc/eval.c \
|
|
||||||
$(TOP)/ext/misc/explain.c \
|
|
||||||
- $(TOP)/ext/misc/fileio.c \
|
|
||||||
$(TOP)/ext/misc/fuzzer.c \
|
|
||||||
$(TOP)/ext/fts5/fts5_tcl.c \
|
|
||||||
$(TOP)/ext/fts5/fts5_test_mi.c \
|
|
||||||
$(TOP)/ext/fts5/fts5_test_tok.c \
|
|
||||||
- $(TOP)/ext/misc/ieee754.c \
|
|
||||||
$(TOP)/ext/misc/mmapwarm.c \
|
|
||||||
- $(TOP)/ext/misc/nextchar.c \
|
|
||||||
$(TOP)/ext/misc/normalize.c \
|
|
||||||
- $(TOP)/ext/misc/percentile.c \
|
|
||||||
$(TOP)/ext/misc/prefixes.c \
|
|
||||||
- $(TOP)/ext/misc/regexp.c \
|
|
||||||
$(TOP)/ext/misc/remember.c \
|
|
||||||
$(TOP)/ext/misc/series.c \
|
|
||||||
$(TOP)/ext/misc/spellfix.c \
|
|
||||||
- $(TOP)/ext/misc/totype.c \
|
|
||||||
$(TOP)/ext/misc/unionvtab.c \
|
|
||||||
$(TOP)/ext/misc/wholenumber.c \
|
|
||||||
- $(TOP)/ext/misc/zipfile.c \
|
|
||||||
$(TOP)/ext/userauth/userauth.c
|
|
||||||
|
|
||||||
# Source code to the library files needed by the test fixture
|
|
||||||
@@ -646,25 +656,25 @@
|
|
||||||
|
|
||||||
libtclsqlite3.la: tclsqlite.lo libsqlite3.la
|
|
||||||
$(LTLINK) -no-undefined -o $@ tclsqlite.lo \
|
|
||||||
- libsqlite3.la @TCL_STUB_LIB_SPEC@ $(TLIBS) \
|
|
||||||
+ libsqlite3.la @TCL_STUB_LIB_SPEC@ \
|
|
||||||
-rpath "$(TCLLIBDIR)" \
|
|
||||||
-version-info "8:6:8" \
|
|
||||||
-avoid-version
|
|
||||||
|
|
||||||
-sqlite3$(TEXE): shell.c sqlite3.c
|
|
||||||
- $(LTLINK) $(READLINE_FLAGS) $(SHELL_OPT) -o $@ \
|
|
||||||
- shell.c sqlite3.c \
|
|
||||||
- $(LIBREADLINE) $(TLIBS) -rpath "$(libdir)"
|
|
||||||
+sqlite3$(TEXE): shell.c libsqlite3.la
|
|
||||||
+ $(LTLINK) $(READLINE_FLAGS) -o $@ \
|
|
||||||
+ shell.c libsqlite3.la \
|
|
||||||
+ $(LIBREADLINE)
|
|
||||||
|
|
||||||
-sqldiff$(TEXE): $(TOP)/tool/sqldiff.c sqlite3.lo sqlite3.h
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c sqlite3.lo $(TLIBS)
|
|
||||||
+sqldiff$(TEXE): $(TOP)/tool/sqldiff.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c libsqlite3.la
|
|
||||||
|
|
||||||
-dbhash$(TEXE): $(TOP)/tool/dbhash.c sqlite3.lo sqlite3.h
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/dbhash.c sqlite3.lo $(TLIBS)
|
|
||||||
+dbhash$(TEXE): $(TOP)/tool/dbhash.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/dbhash.c libsqlite3.la
|
|
||||||
|
|
||||||
-scrub$(TEXE): $(TOP)/ext/misc/scrub.c sqlite3.lo
|
|
||||||
+scrub$(TEXE): $(TOP)/ext/misc/scrub.c libsqlite3.la
|
|
||||||
$(LTLINK) -o $@ -I. -DSCRUB_STANDALONE \
|
|
||||||
- $(TOP)/ext/misc/scrub.c sqlite3.lo $(TLIBS)
|
|
||||||
+ $(TOP)/ext/misc/scrub.c libsqlite3.la
|
|
||||||
|
|
||||||
srcck1$(BEXE): $(TOP)/tool/srcck1.c
|
|
||||||
$(BCC) -o srcck1$(BEXE) $(TOP)/tool/srcck1.c
|
|
||||||
@@ -775,7 +785,7 @@
|
|
||||||
# Rule to build the amalgamation
|
|
||||||
#
|
|
||||||
sqlite3.lo: sqlite3.c
|
|
||||||
- $(LTCOMPILE) $(TEMP_STORE) -c sqlite3.c
|
|
||||||
+ $(LTCOMPILE) $(SHELL_OPT) $(TEMP_STORE) -c sqlite3.c
|
|
||||||
|
|
||||||
# Rules to build the LEMON compiler generator
|
|
||||||
#
|
|
||||||
@@ -1081,17 +1091,6 @@
|
|
||||||
# Source files that go into making shell.c
|
|
||||||
SHELL_SRC = \
|
|
||||||
$(TOP)/src/shell.c.in \
|
|
||||||
- $(TOP)/ext/misc/appendvfs.c \
|
|
||||||
- $(TOP)/ext/misc/completion.c \
|
|
||||||
- $(TOP)/ext/misc/decimal.c \
|
|
||||||
- $(TOP)/ext/misc/fileio.c \
|
|
||||||
- $(TOP)/ext/misc/ieee754.c \
|
|
||||||
- $(TOP)/ext/misc/shathree.c \
|
|
||||||
- $(TOP)/ext/misc/sqlar.c \
|
|
||||||
- $(TOP)/ext/misc/uint.c \
|
|
||||||
- $(TOP)/ext/expert/sqlite3expert.c \
|
|
||||||
- $(TOP)/ext/expert/sqlite3expert.h \
|
|
||||||
- $(TOP)/ext/misc/zipfile.c \
|
|
||||||
$(TOP)/ext/misc/memtrace.c \
|
|
||||||
$(TOP)/src/test_windirent.c
|
|
||||||
|
|
||||||
@@ -1260,11 +1259,11 @@
|
|
||||||
|
|
||||||
# Fuzz testing
|
|
||||||
fuzztest: fuzzcheck$(TEXE) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
|
|
||||||
- ./fuzzcheck$(TEXE) $(FUZZDATA)
|
|
||||||
+ ./fuzzcheck$(TEXE) --timeout 3600 $(FUZZDATA)
|
|
||||||
./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
|
|
||||||
|
|
||||||
valgrindfuzz: fuzzcheck$(TEXT) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
|
|
||||||
- valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 600 $(FUZZDATA)
|
|
||||||
+ valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 3600 $(FUZZDATA)
|
|
||||||
valgrind ./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
|
|
||||||
|
|
||||||
# The veryquick.test TCL tests.
|
|
||||||
@@ -1298,24 +1297,23 @@
|
|
||||||
shelltest: $(TESTPROGS)
|
|
||||||
./testfixture$(TEXT) $(TOP)/test/permutations.test shell
|
|
||||||
|
|
||||||
-sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
|
|
||||||
+sqlite3_analyzer.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
|
|
||||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in >sqlite3_analyzer.c
|
|
||||||
|
|
||||||
-sqlite3_analyzer$(TEXE): sqlite3_analyzer.c
|
|
||||||
- $(LTLINK) sqlite3_analyzer.c -o $@ $(LIBTCL) $(TLIBS)
|
|
||||||
+sqlite3_analyzer$(TEXE): sqlite3_analyzer.c libsqlite3.la
|
|
||||||
+ $(LTLINK) sqlite3_analyzer.c -o $@ libsqlite3.la $(LIBTCL)
|
|
||||||
|
|
||||||
-sqltclsh.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/ext/misc/appendvfs.c $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
|
|
||||||
+sqltclsh.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
|
|
||||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in >sqltclsh.c
|
|
||||||
|
|
||||||
-sqltclsh$(TEXE): sqltclsh.c
|
|
||||||
- $(LTLINK) sqltclsh.c -o $@ $(LIBTCL) $(TLIBS)
|
|
||||||
+sqltclsh$(TEXE): sqltclsh.c libsqlite3.la
|
|
||||||
+ $(LTLINK) sqltclsh.c -o $@ libsqlite3.la $(LIBTCL)
|
|
||||||
|
|
||||||
-sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c
|
|
||||||
- $(LTLINK) $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c -o sqlite3_expert $(TLIBS)
|
|
||||||
+sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/expert.c libsqlite3.la
|
|
||||||
+ $(LTLINK) $(TOP)/ext/expert/expert.c -o sqlite3_expert libsqlite3.la
|
|
||||||
|
|
||||||
CHECKER_DEPS =\
|
|
||||||
$(TOP)/tool/mkccode.tcl \
|
|
||||||
- sqlite3.c \
|
|
||||||
$(TOP)/src/tclsqlite.c \
|
|
||||||
$(TOP)/ext/repair/sqlite3_checker.tcl \
|
|
||||||
$(TOP)/ext/repair/checkindex.c \
|
|
||||||
@@ -1326,36 +1324,36 @@
|
|
||||||
sqlite3_checker.c: $(CHECKER_DEPS)
|
|
||||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/ext/repair/sqlite3_checker.c.in >$@
|
|
||||||
|
|
||||||
-sqlite3_checker$(TEXE): sqlite3_checker.c
|
|
||||||
- $(LTLINK) sqlite3_checker.c -o $@ $(LIBTCL) $(TLIBS)
|
|
||||||
+sqlite3_checker$(TEXE): sqlite3_checker.c libsqlite3.la
|
|
||||||
+ $(LTLINK) sqlite3_checker.c -o $@ libsqlite3.la $(LIBTCL)
|
|
||||||
|
|
||||||
-dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c sqlite3.lo
|
|
||||||
+dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c libsqlite3.la
|
|
||||||
$(LTLINK) -DDBDUMP_STANDALONE -o $@ \
|
|
||||||
- $(TOP)/ext/misc/dbdump.c sqlite3.lo $(TLIBS)
|
|
||||||
+ $(TOP)/ext/misc/dbdump.c libsqlite3.la
|
|
||||||
|
|
||||||
-dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
|
|
||||||
- $(LTLINK)-o $@ $(TOP)/tool/dbtotxt.c
|
|
||||||
+dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/dbtotxt.c
|
|
||||||
|
|
||||||
-showdb$(TEXE): $(TOP)/tool/showdb.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/showdb.c sqlite3.lo $(TLIBS)
|
|
||||||
+showdb$(TEXE): $(TOP)/tool/showdb.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/showdb.c libsqlite3.la
|
|
||||||
|
|
||||||
-showstat4$(TEXE): $(TOP)/tool/showstat4.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/showstat4.c sqlite3.lo $(TLIBS)
|
|
||||||
+showstat4$(TEXE): $(TOP)/tool/showstat4.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/showstat4.c libsqlite3.la
|
|
||||||
|
|
||||||
-showjournal$(TEXE): $(TOP)/tool/showjournal.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/showjournal.c sqlite3.lo $(TLIBS)
|
|
||||||
+showjournal$(TEXE): $(TOP)/tool/showjournal.c
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/showjournal.c
|
|
||||||
|
|
||||||
-showwal$(TEXE): $(TOP)/tool/showwal.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/showwal.c sqlite3.lo $(TLIBS)
|
|
||||||
+showwal$(TEXE): $(TOP)/tool/showwal.c
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/showwal.c
|
|
||||||
|
|
||||||
showshm$(TEXE): $(TOP)/tool/showshm.c
|
|
||||||
$(LTLINK) -o $@ $(TOP)/tool/showshm.c
|
|
||||||
|
|
||||||
-index_usage$(TEXE): $(TOP)/tool/index_usage.c sqlite3.lo
|
|
||||||
- $(LTLINK) $(SHELL_OPT) -o $@ $(TOP)/tool/index_usage.c sqlite3.lo $(TLIBS)
|
|
||||||
+index_usage$(TEXE): $(TOP)/tool/index_usage.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/index_usage.c libsqlite3.la
|
|
||||||
|
|
||||||
-changeset$(TEXE): $(TOP)/ext/session/changeset.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c sqlite3.lo $(TLIBS)
|
|
||||||
+changeset$(TEXE): $(TOP)/ext/session/changeset.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c libsqlite3.la
|
|
||||||
|
|
||||||
changesetfuzz$(TEXE): $(TOP)/ext/session/changesetfuzz.c sqlite3.lo
|
|
||||||
$(LTLINK) -o $@ $(TOP)/ext/session/changesetfuzz.c sqlite3.lo $(TLIBS)
|
|
||||||
@@ -1380,11 +1378,11 @@
|
|
||||||
kvtest$(TEXE): $(TOP)/test/kvtest.c sqlite3.c
|
|
||||||
$(LTLINK) $(KV_OPT) -o $@ $(TOP)/test/kvtest.c sqlite3.c $(TLIBS)
|
|
||||||
|
|
||||||
-rbu$(EXE): $(TOP)/ext/rbu/rbu.c $(TOP)/ext/rbu/sqlite3rbu.c sqlite3.lo
|
|
||||||
- $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c sqlite3.lo $(TLIBS)
|
|
||||||
+rbu$(EXE): $(TOP)/ext/rbu/rbu.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c libsqlite3.la
|
|
||||||
|
|
||||||
-loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
|
|
||||||
- $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@ $(TLIBS)
|
|
||||||
+loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
|
|
||||||
+ $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@
|
|
||||||
|
|
||||||
# This target will fail if the SQLite amalgamation contains any exported
|
|
||||||
# symbols that do not begin with "sqlite3_". It is run as part of the
|
|
||||||
--- /configure.ac
|
|
||||||
+++ /configure.ac
|
|
||||||
@@ -108,7 +108,7 @@
|
|
||||||
#########
|
|
||||||
# Figure out whether or not we have these functions
|
|
||||||
#
|
|
||||||
-AC_CHECK_FUNCS([fdatasync gmtime_r isnan localtime_r localtime_s malloc_usable_size strchrnul usleep utime pread pread64 pwrite pwrite64])
|
|
||||||
+AC_CHECK_FUNCS([fdatasync fullfsync gmtime_r isnan localtime_r localtime_s malloc_usable_size posix_fallocate pread pread64 pwrite pwrite64 strchrnul usleep utime])
|
|
||||||
|
|
||||||
#########
|
|
||||||
# By default, we use the amalgamation (this may be changed below...)
|
|
||||||
@@ -587,6 +587,9 @@
|
|
||||||
if test "${enable_load_extension}" = "yes" ; then
|
|
||||||
OPT_FEATURE_FLAGS=""
|
|
||||||
AC_SEARCH_LIBS(dlopen, dl)
|
|
||||||
+ if test "${ac_cv_search_dlopen}" = "no" ; then
|
|
||||||
+ OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
|
|
||||||
+ fi
|
|
||||||
else
|
|
||||||
OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
|
|
||||||
fi
|
|
@ -1,434 +0,0 @@
|
|||||||
Move some code to libsqlite3.so to avoid duplication.
|
|
||||||
Initialize some extensions in libsqlite3.so.
|
|
||||||
Update test suite.
|
|
||||||
|
|
||||||
--- /ext/repair/sqlite3_checker.c.in
|
|
||||||
+++ /ext/repair/sqlite3_checker.c.in
|
|
||||||
@@ -2,6 +2,7 @@
|
|
||||||
** Read an SQLite database file and analyze its space utilization. Generate
|
|
||||||
** text on standard output.
|
|
||||||
*/
|
|
||||||
+#define SQLITE_CORE 1
|
|
||||||
#define TCLSH_INIT_PROC sqlite3_checker_init_proc
|
|
||||||
#define SQLITE_ENABLE_DBPAGE_VTAB 1
|
|
||||||
#define SQLITE_ENABLE_JSON1 1
|
|
||||||
@@ -14,7 +15,7 @@
|
|
||||||
#define SQLITE_OMIT_SHARED_CACHE 1
|
|
||||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
|
||||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
|
||||||
-INCLUDE sqlite3.c
|
|
||||||
+#include "sqlite3.h"
|
|
||||||
INCLUDE $ROOT/src/tclsqlite.c
|
|
||||||
INCLUDE $ROOT/ext/misc/btreeinfo.c
|
|
||||||
INCLUDE $ROOT/ext/repair/checkindex.c
|
|
||||||
--- /src/main.c
|
|
||||||
+++ /src/main.c
|
|
||||||
@@ -50,12 +50,35 @@
|
|
||||||
#ifdef SQLITE_ENABLE_FTS5
|
|
||||||
int sqlite3Fts5Init(sqlite3*);
|
|
||||||
#endif
|
|
||||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
|
||||||
+int sqlite3DbdataRegister(sqlite3*);
|
|
||||||
+#endif
|
|
||||||
#ifdef SQLITE_ENABLE_JSON1
|
|
||||||
int sqlite3Json1Init(sqlite3*);
|
|
||||||
#endif
|
|
||||||
#ifdef SQLITE_ENABLE_STMTVTAB
|
|
||||||
int sqlite3StmtVtabInit(sqlite3*);
|
|
||||||
#endif
|
|
||||||
+int sqlite3AmatchInit(sqlite3*);
|
|
||||||
+int sqlite3CarrayInit(sqlite3*);
|
|
||||||
+int sqlite3CompletionVtabInit(sqlite3*);
|
|
||||||
+int sqlite3CsvInit(sqlite3*);
|
|
||||||
+int sqlite3DecimalInit(sqlite3*);
|
|
||||||
+int sqlite3EvalInit(sqlite3*);
|
|
||||||
+int sqlite3FileioInit(sqlite3*);
|
|
||||||
+int sqlite3IeeeInit(sqlite3*);
|
|
||||||
+int sqlite3NextcharInit(sqlite3*);
|
|
||||||
+int sqlite3PercentileInit(sqlite3*);
|
|
||||||
+int sqlite3RegexpInit(sqlite3*);
|
|
||||||
+int sqlite3ShaInit(sqlite3*);
|
|
||||||
+int sqlite3ShathreeInit(sqlite3*);
|
|
||||||
+int sqlite3TotypeInit(sqlite3*);
|
|
||||||
+int sqlite3UintInit(sqlite3*);
|
|
||||||
+int sqlite3UuidInit(sqlite3*);
|
|
||||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_HAVE_ZLIB)
|
|
||||||
+int sqlite3ZipfileInit(sqlite3*);
|
|
||||||
+int sqlite3SqlarInit(sqlite3*);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
** An array of pointers to extension initializer functions for
|
|
||||||
@@ -83,6 +106,9 @@
|
|
||||||
#ifdef SQLITE_ENABLE_DBPAGE_VTAB
|
|
||||||
sqlite3DbpageRegister,
|
|
||||||
#endif
|
|
||||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
|
||||||
+ sqlite3DbdataRegister,
|
|
||||||
+#endif
|
|
||||||
#ifdef SQLITE_ENABLE_DBSTAT_VTAB
|
|
||||||
sqlite3DbstatRegister,
|
|
||||||
#endif
|
|
||||||
@@ -96,6 +122,26 @@
|
|
||||||
#ifdef SQLITE_ENABLE_BYTECODE_VTAB
|
|
||||||
sqlite3VdbeBytecodeVtabInit,
|
|
||||||
#endif
|
|
||||||
+ sqlite3AmatchInit,
|
|
||||||
+ sqlite3CarrayInit,
|
|
||||||
+ sqlite3CompletionVtabInit,
|
|
||||||
+ sqlite3CsvInit,
|
|
||||||
+ sqlite3DecimalInit,
|
|
||||||
+ sqlite3EvalInit,
|
|
||||||
+ sqlite3FileioInit,
|
|
||||||
+ sqlite3IeeeInit,
|
|
||||||
+ sqlite3NextcharInit,
|
|
||||||
+ sqlite3PercentileInit,
|
|
||||||
+ sqlite3RegexpInit,
|
|
||||||
+ sqlite3ShaInit,
|
|
||||||
+ sqlite3ShathreeInit,
|
|
||||||
+ sqlite3TotypeInit,
|
|
||||||
+ sqlite3UintInit,
|
|
||||||
+ sqlite3UuidInit,
|
|
||||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_HAVE_ZLIB)
|
|
||||||
+ sqlite3ZipfileInit,
|
|
||||||
+ sqlite3SqlarInit,
|
|
||||||
+#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifndef SQLITE_AMALGAMATION
|
|
||||||
--- /src/shell.c.in
|
|
||||||
+++ /src/shell.c.in
|
|
||||||
@@ -69,6 +69,7 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <assert.h>
|
|
||||||
#include "sqlite3.h"
|
|
||||||
+#include "ext/expert/sqlite3expert.h"
|
|
||||||
typedef sqlite3_int64 i64;
|
|
||||||
typedef sqlite3_uint64 u64;
|
|
||||||
typedef unsigned char u8;
|
|
||||||
@@ -135,6 +136,10 @@
|
|
||||||
# define SHELL_USE_LOCAL_GETLINE 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
+#include <zlib.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
|
|
||||||
#if defined(_WIN32) || defined(WIN32)
|
|
||||||
# if SQLITE_OS_WINRT
|
|
||||||
@@ -1020,24 +1025,7 @@
|
|
||||||
INCLUDE test_windirent.c
|
|
||||||
#define dirent DIRENT
|
|
||||||
#endif
|
|
||||||
-INCLUDE ../ext/misc/shathree.c
|
|
||||||
-INCLUDE ../ext/misc/fileio.c
|
|
||||||
-INCLUDE ../ext/misc/completion.c
|
|
||||||
-INCLUDE ../ext/misc/appendvfs.c
|
|
||||||
INCLUDE ../ext/misc/memtrace.c
|
|
||||||
-INCLUDE ../ext/misc/uint.c
|
|
||||||
-INCLUDE ../ext/misc/decimal.c
|
|
||||||
-INCLUDE ../ext/misc/ieee754.c
|
|
||||||
-#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
-INCLUDE ../ext/misc/zipfile.c
|
|
||||||
-INCLUDE ../ext/misc/sqlar.c
|
|
||||||
-#endif
|
|
||||||
-INCLUDE ../ext/expert/sqlite3expert.h
|
|
||||||
-INCLUDE ../ext/expert/sqlite3expert.c
|
|
||||||
-
|
|
||||||
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
|
||||||
-INCLUDE ../ext/misc/dbdata.c
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
#if defined(SQLITE_ENABLE_SESSION)
|
|
||||||
/*
|
|
||||||
@@ -4584,19 +4572,6 @@
|
|
||||||
#ifndef SQLITE_OMIT_LOAD_EXTENSION
|
|
||||||
sqlite3_enable_load_extension(p->db, 1);
|
|
||||||
#endif
|
|
||||||
- sqlite3_fileio_init(p->db, 0, 0);
|
|
||||||
- sqlite3_shathree_init(p->db, 0, 0);
|
|
||||||
- sqlite3_completion_init(p->db, 0, 0);
|
|
||||||
- sqlite3_uint_init(p->db, 0, 0);
|
|
||||||
- sqlite3_decimal_init(p->db, 0, 0);
|
|
||||||
- sqlite3_ieee_init(p->db, 0, 0);
|
|
||||||
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
|
||||||
- sqlite3_dbdata_init(p->db, 0, 0);
|
|
||||||
-#endif
|
|
||||||
-#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
- sqlite3_zipfile_init(p->db, 0, 0);
|
|
||||||
- sqlite3_sqlar_init(p->db, 0, 0);
|
|
||||||
-#endif
|
|
||||||
sqlite3_create_function(p->db, "shell_add_schema", 3, SQLITE_UTF8, 0,
|
|
||||||
shellAddSchemaName, 0, 0);
|
|
||||||
sqlite3_create_function(p->db, "shell_module_schema", 1, SQLITE_UTF8, 0,
|
|
||||||
@@ -6617,8 +6592,6 @@
|
|
||||||
);
|
|
||||||
goto end_ar_command;
|
|
||||||
}
|
|
||||||
- sqlite3_fileio_init(cmd.db, 0, 0);
|
|
||||||
- sqlite3_sqlar_init(cmd.db, 0, 0);
|
|
||||||
sqlite3_create_function(cmd.db, "shell_putsnl", 1, SQLITE_UTF8, cmd.p,
|
|
||||||
shellPutsFunc, 0, 0);
|
|
||||||
|
|
||||||
@@ -10981,6 +10954,7 @@
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
data.out = stdout;
|
|
||||||
+ extern int sqlite3_appendvfs_init(sqlite3 *, char **, const sqlite3_api_routines *);
|
|
||||||
sqlite3_appendvfs_init(0,0,0);
|
|
||||||
|
|
||||||
/* Go ahead and open the database file if it already exists. If the
|
|
||||||
--- /src/test_config.c
|
|
||||||
+++ /src/test_config.c
|
|
||||||
@@ -353,6 +353,8 @@
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "datetime", "1", TCL_GLOBAL_ONLY);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ Tcl_SetVar2(interp, "sqlite_options", "decimal", "1", TCL_GLOBAL_ONLY);
|
|
||||||
+
|
|
||||||
#ifdef SQLITE_OMIT_DECLTYPE
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "decltype", "0", TCL_GLOBAL_ONLY);
|
|
||||||
#else
|
|
||||||
@@ -540,6 +542,8 @@
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "progress", "1", TCL_GLOBAL_ONLY);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ Tcl_SetVar2(interp, "sqlite_options", "regexp", "1", TCL_GLOBAL_ONLY);
|
|
||||||
+
|
|
||||||
#ifdef SQLITE_OMIT_REINDEX
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "reindex", "0", TCL_GLOBAL_ONLY);
|
|
||||||
#else
|
|
||||||
@@ -662,6 +666,8 @@
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "truncate_opt", "1", TCL_GLOBAL_ONLY);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ Tcl_SetVar2(interp, "sqlite_options", "uint", "1", TCL_GLOBAL_ONLY);
|
|
||||||
+
|
|
||||||
#ifdef SQLITE_OMIT_UTF16
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "utf16", "0", TCL_GLOBAL_ONLY);
|
|
||||||
#else
|
|
||||||
--- /test/e_expr.test
|
|
||||||
+++ /test/e_expr.test
|
|
||||||
@@ -1078,7 +1078,7 @@
|
|
||||||
#
|
|
||||||
# There is a regexp function if ICU is enabled though.
|
|
||||||
#
|
|
||||||
-ifcapable !icu {
|
|
||||||
+ifcapable !icu&&!regexp {
|
|
||||||
do_catchsql_test e_expr-18.1.1 {
|
|
||||||
SELECT regexp('abc', 'def')
|
|
||||||
} {1 {no such function: regexp}}
|
|
||||||
--- /test/icu.test
|
|
||||||
+++ /test/icu.test
|
|
||||||
@@ -41,7 +41,7 @@
|
|
||||||
#
|
|
||||||
test_expr icu-1.1 {i1='hello'} {i1 REGEXP 'hello'} 1
|
|
||||||
test_expr icu-1.2 {i1='hello'} {i1 REGEXP '.ello'} 1
|
|
||||||
- test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell'} 0
|
|
||||||
+ test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell$'} 0
|
|
||||||
test_expr icu-1.4 {i1='hello'} {i1 REGEXP '.ell.*'} 1
|
|
||||||
test_expr icu-1.5 {i1=NULL} {i1 REGEXP '.ell.*'} {}
|
|
||||||
|
|
||||||
--- /test/pragma.test
|
|
||||||
+++ /test/pragma.test
|
|
||||||
@@ -1370,17 +1370,62 @@
|
|
||||||
} ;# ifcapable trigger
|
|
||||||
|
|
||||||
ifcapable schema_pragmas {
|
|
||||||
- do_test pragma-11.1 {
|
|
||||||
- execsql2 {
|
|
||||||
- pragma collation_list;
|
|
||||||
+ ifcapable decimal {
|
|
||||||
+ ifcapable uint {
|
|
||||||
+ do_test pragma-11.1 {
|
|
||||||
+ execsql2 {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {seq 0 name UINT seq 1 name decimal seq 2 name RTRIM seq 3 name NOCASE seq 4 name BINARY}
|
|
||||||
+ do_test pragma-11.2 {
|
|
||||||
+ db collate New_Collation blah...
|
|
||||||
+ execsql {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {0 New_Collation 1 UINT 2 decimal 3 RTRIM 4 NOCASE 5 BINARY}
|
|
||||||
}
|
|
||||||
- } {seq 0 name RTRIM seq 1 name NOCASE seq 2 name BINARY}
|
|
||||||
- do_test pragma-11.2 {
|
|
||||||
- db collate New_Collation blah...
|
|
||||||
- execsql {
|
|
||||||
- pragma collation_list;
|
|
||||||
+ ifcapable !uint {
|
|
||||||
+ do_test pragma-11.1 {
|
|
||||||
+ execsql2 {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {seq 0 name decimal seq 1 name RTRIM seq 2 name NOCASE seq 3 name BINARY}
|
|
||||||
+ do_test pragma-11.2 {
|
|
||||||
+ db collate New_Collation blah...
|
|
||||||
+ execsql {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {0 New_Collation 1 decimal 2 RTRIM 3 NOCASE 4 BINARY}
|
|
||||||
}
|
|
||||||
- } {0 New_Collation 1 RTRIM 2 NOCASE 3 BINARY}
|
|
||||||
+ }
|
|
||||||
+ ifcapable !decimal {
|
|
||||||
+ ifcapable uint {
|
|
||||||
+ do_test pragma-11.1 {
|
|
||||||
+ execsql2 {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {seq 0 name UINT seq 1 name RTRIM seq 2 name NOCASE seq 3 name BINARY}
|
|
||||||
+ do_test pragma-11.2 {
|
|
||||||
+ db collate New_Collation blah...
|
|
||||||
+ execsql {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {0 New_Collation 1 UINT 2 RTRIM 3 NOCASE 4 BINARY}
|
|
||||||
+ }
|
|
||||||
+ ifcapable !uint {
|
|
||||||
+ do_test pragma-11.1 {
|
|
||||||
+ execsql2 {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {seq 0 name RTRIM seq 1 name NOCASE seq 2 name BINARY}
|
|
||||||
+ do_test pragma-11.2 {
|
|
||||||
+ db collate New_Collation blah...
|
|
||||||
+ execsql {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {0 New_Collation 1 RTRIM 2 NOCASE 3 BINARY}
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
ifcapable schema_pragmas&&tempdb {
|
|
||||||
--- /test/sessionfuzz.c
|
|
||||||
+++ /test/sessionfuzz.c
|
|
||||||
@@ -698,49 +698,6 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <assert.h>
|
|
||||||
-#ifndef OMIT_ZLIB
|
|
||||||
-#include "zlib.h"
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-/*
|
|
||||||
-** Implementation of the "sqlar_uncompress(X,SZ)" SQL function
|
|
||||||
-**
|
|
||||||
-** Parameter SZ is interpreted as an integer. If it is less than or
|
|
||||||
-** equal to zero, then this function returns a copy of X. Or, if
|
|
||||||
-** SZ is equal to the size of X when interpreted as a blob, also
|
|
||||||
-** return a copy of X. Otherwise, decompress blob X using zlib
|
|
||||||
-** utility function uncompress() and return the results (another
|
|
||||||
-** blob).
|
|
||||||
-*/
|
|
||||||
-static void sqlarUncompressFunc(
|
|
||||||
- sqlite3_context *context,
|
|
||||||
- int argc,
|
|
||||||
- sqlite3_value **argv
|
|
||||||
-){
|
|
||||||
-#ifdef OMIT_ZLIB
|
|
||||||
- sqlite3_result_value(context, argv[0]);
|
|
||||||
-#else
|
|
||||||
- uLong nData;
|
|
||||||
- uLongf sz;
|
|
||||||
-
|
|
||||||
- assert( argc==2 );
|
|
||||||
- sz = sqlite3_value_int(argv[1]);
|
|
||||||
-
|
|
||||||
- if( sz<=0 || sz==(nData = sqlite3_value_bytes(argv[0])) ){
|
|
||||||
- sqlite3_result_value(context, argv[0]);
|
|
||||||
- }else{
|
|
||||||
- const Bytef *pData= sqlite3_value_blob(argv[0]);
|
|
||||||
- Bytef *pOut = sqlite3_malloc(sz);
|
|
||||||
- if( Z_OK!=uncompress(pOut, &sz, pData, nData) ){
|
|
||||||
- sqlite3_result_error(context, "error in uncompress()", -1);
|
|
||||||
- }else{
|
|
||||||
- sqlite3_result_blob(context, pOut, sz, SQLITE_TRANSIENT);
|
|
||||||
- }
|
|
||||||
- sqlite3_free(pOut);
|
|
||||||
- }
|
|
||||||
-#endif
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
|
|
||||||
/* Run a chunk of SQL. If any errors happen, print an error message
|
|
||||||
** and exit.
|
|
||||||
--- /tool/mksqlite3c.tcl
|
|
||||||
+++ /tool/mksqlite3c.tcl
|
|
||||||
@@ -117,6 +117,7 @@
|
|
||||||
rtree.h
|
|
||||||
sqlite3session.h
|
|
||||||
sqlite3.h
|
|
||||||
+ sqlite3expert.h
|
|
||||||
sqlite3ext.h
|
|
||||||
sqlite3rbu.h
|
|
||||||
sqliteicu.h
|
|
||||||
@@ -404,6 +405,27 @@
|
|
||||||
sqlite3session.c
|
|
||||||
fts5.c
|
|
||||||
stmt.c
|
|
||||||
+ amatch.c
|
|
||||||
+ appendvfs.c
|
|
||||||
+ carray.c
|
|
||||||
+ completion.c
|
|
||||||
+ csv.c
|
|
||||||
+ dbdata.c
|
|
||||||
+ decimal.c
|
|
||||||
+ eval.c
|
|
||||||
+ fileio.c
|
|
||||||
+ ieee754.c
|
|
||||||
+ nextchar.c
|
|
||||||
+ percentile.c
|
|
||||||
+ regexp.c
|
|
||||||
+ sha1.c
|
|
||||||
+ shathree.c
|
|
||||||
+ sqlar.c
|
|
||||||
+ sqlite3expert.c
|
|
||||||
+ totype.c
|
|
||||||
+ uint.c
|
|
||||||
+ uuid.c
|
|
||||||
+ zipfile.c
|
|
||||||
} {
|
|
||||||
copy_file tsrc/$file
|
|
||||||
}
|
|
||||||
--- /tool/sqlite3_analyzer.c.in
|
|
||||||
+++ /tool/sqlite3_analyzer.c.in
|
|
||||||
@@ -14,9 +14,6 @@
|
|
||||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
|
||||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
|
||||||
#define SQLITE_OMIT_LOAD_EXTENSION 1
|
|
||||||
-#ifndef USE_EXTERNAL_SQLITE
|
|
||||||
-INCLUDE sqlite3.c
|
|
||||||
-#endif
|
|
||||||
INCLUDE $ROOT/src/tclsqlite.c
|
|
||||||
|
|
||||||
const char *sqlite3_analyzer_init_proc(Tcl_Interp *interp){
|
|
||||||
--- /tool/sqltclsh.c.in
|
|
||||||
+++ /tool/sqltclsh.c.in
|
|
||||||
@@ -27,21 +27,13 @@
|
|
||||||
#define SQLITE_OMIT_SHARED_CACHE 1
|
|
||||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
|
||||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
|
||||||
-INCLUDE sqlite3.c
|
|
||||||
-INCLUDE $ROOT/ext/misc/appendvfs.c
|
|
||||||
-#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
-INCLUDE $ROOT/ext/misc/zipfile.c
|
|
||||||
-INCLUDE $ROOT/ext/misc/sqlar.c
|
|
||||||
-#endif
|
|
||||||
+#include "sqlite3.h"
|
|
||||||
INCLUDE $ROOT/src/tclsqlite.c
|
|
||||||
|
|
||||||
const char *sqlite3_tclapp_init_proc(Tcl_Interp *interp){
|
|
||||||
(void)interp;
|
|
||||||
+ extern int sqlite3_appendvfs_init(sqlite3 *,char **, const sqlite3_api_routines *);
|
|
||||||
sqlite3_appendvfs_init(0,0,0);
|
|
||||||
-#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
- sqlite3_auto_extension((void(*)(void))sqlite3_sqlar_init);
|
|
||||||
- sqlite3_auto_extension((void(*)(void))sqlite3_zipfile_init);
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
return
|
|
||||||
BEGIN_STRING
|
|
@ -1,375 +0,0 @@
|
|||||||
Add initialization functions for internal usage in libsqlite3.so.
|
|
||||||
|
|
||||||
SQLite revision: a26b6597e3ae272231b96f9982c3bcc17ddec2f2b6eb4df06a224b91089fed5b
|
|
||||||
|
|
||||||
--- /ext/misc/amatch.c
|
|
||||||
+++ /ext/misc/amatch.c
|
|
||||||
@@ -1480,9 +1480,18 @@
|
|
||||||
|
|
||||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
|
|
||||||
+int sqlite3AmatchInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
+ rc = sqlite3_create_module(db, "approximate_match", &amatchModule, 0);
|
|
||||||
+#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
** Register the amatch virtual table
|
|
||||||
*/
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -1491,11 +1500,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Not used */
|
|
||||||
-#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
- rc = sqlite3_create_module(db, "approximate_match", &amatchModule, 0);
|
|
||||||
-#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3AmatchInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/carray.c
|
|
||||||
+++ /ext/misc/carray.c
|
|
||||||
@@ -498,16 +498,8 @@
|
|
||||||
|
|
||||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_carray_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3CarrayInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
rc = sqlite3_create_module(db, "carray", &carrayModule, 0);
|
|
||||||
#ifdef SQLITE_TEST
|
|
||||||
@@ -519,3 +511,18 @@
|
|
||||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_carray_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3CarrayInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/completion.c
|
|
||||||
+++ /ext/misc/completion.c
|
|
||||||
@@ -483,12 +483,13 @@
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
int sqlite3_completion_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
@@ -499,3 +500,4 @@
|
|
||||||
#endif
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/csv.c
|
|
||||||
+++ /ext/misc/csv.c
|
|
||||||
@@ -928,6 +928,22 @@
|
|
||||||
#endif /* !defined(SQLITE_OMIT_VIRTUALTABLE) */
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3CsvInit(sqlite3 *db){
|
|
||||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
+ int rc;
|
|
||||||
+ rc = sqlite3_create_module(db, "csv", &CsvModule, 0);
|
|
||||||
+#ifdef SQLITE_TEST
|
|
||||||
+ if( rc==SQLITE_OK ){
|
|
||||||
+ rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0);
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+ return rc;
|
|
||||||
+#else
|
|
||||||
+ return SQLITE_OK;
|
|
||||||
+#endif
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -941,17 +957,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
-#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
- int rc;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- rc = sqlite3_create_module(db, "csv", &CsvModule, 0);
|
|
||||||
-#ifdef SQLITE_TEST
|
|
||||||
- if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0);
|
|
||||||
- }
|
|
||||||
-#endif
|
|
||||||
- return rc;
|
|
||||||
-#else
|
|
||||||
- return SQLITE_OK;
|
|
||||||
-#endif
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3CsvInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/dbdata.c
|
|
||||||
+++ /ext/misc/dbdata.c
|
|
||||||
@@ -803,7 +803,7 @@
|
|
||||||
/*
|
|
||||||
** Invoke this routine to register the "sqlite_dbdata" virtual table module
|
|
||||||
*/
|
|
||||||
-static int sqlite3DbdataRegister(sqlite3 *db){
|
|
||||||
+int sqlite3DbdataRegister(sqlite3 *db){
|
|
||||||
static sqlite3_module dbdata_module = {
|
|
||||||
0, /* iVersion */
|
|
||||||
0, /* xCreate */
|
|
||||||
@@ -838,6 +838,7 @@
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -849,3 +850,4 @@
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
return sqlite3DbdataRegister(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/decimal.c
|
|
||||||
+++ /ext/misc/decimal.c
|
|
||||||
@@ -590,14 +590,7 @@
|
|
||||||
decimal_free(pB);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_decimal_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3DecimalInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
static const struct {
|
|
||||||
const char *zFuncName;
|
|
||||||
@@ -611,10 +604,6 @@
|
|
||||||
{ "decimal_mul", 2, decimalMulFunc },
|
|
||||||
};
|
|
||||||
unsigned int i;
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
-
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
-
|
|
||||||
for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){
|
|
||||||
rc = sqlite3_create_function(db, aFunc[i].zFuncName, aFunc[i].nArg,
|
|
||||||
SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_DETERMINISTIC,
|
|
||||||
@@ -632,3 +621,20 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_decimal_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+
|
|
||||||
+ return sqlite3DecimalInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/eval.c
|
|
||||||
+++ /ext/misc/eval.c
|
|
||||||
@@ -102,6 +102,20 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3EvalInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "eval", 1,
|
|
||||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
+ sqlEvalFunc, 0, 0);
|
|
||||||
+ if( rc==SQLITE_OK ){
|
|
||||||
+ rc = sqlite3_create_function(db, "eval", 2,
|
|
||||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
+ sqlEvalFunc, 0, 0);
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -110,16 +124,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "eval", 1,
|
|
||||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
- sqlEvalFunc, 0, 0);
|
|
||||||
- if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_function(db, "eval", 2,
|
|
||||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
- sqlEvalFunc, 0, 0);
|
|
||||||
- }
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3EvalInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/fileio.c
|
|
||||||
+++ /ext/misc/fileio.c
|
|
||||||
@@ -340,7 +340,7 @@
|
|
||||||
** This function does the work for the writefile() UDF. Refer to
|
|
||||||
** header comments at the top of this file for details.
|
|
||||||
*/
|
|
||||||
-static int writeFile(
|
|
||||||
+static int writeFileContents(
|
|
||||||
sqlite3_context *pCtx, /* Context to return bytes written in */
|
|
||||||
const char *zFile, /* File to write */
|
|
||||||
sqlite3_value *pData, /* Data to write */
|
|
||||||
@@ -480,10 +480,10 @@
|
|
||||||
mtime = sqlite3_value_int64(argv[3]);
|
|
||||||
}
|
|
||||||
|
|
||||||
- res = writeFile(context, zFile, argv[1], mode, mtime);
|
|
||||||
+ res = writeFileContents(context, zFile, argv[1], mode, mtime);
|
|
||||||
if( res==1 && errno==ENOENT ){
|
|
||||||
if( makeDirectory(zFile)==SQLITE_OK ){
|
|
||||||
- res = writeFile(context, zFile, argv[1], mode, mtime);
|
|
||||||
+ res = writeFileContents(context, zFile, argv[1], mode, mtime);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -970,18 +970,9 @@
|
|
||||||
# define fsdirRegister(x) SQLITE_OK
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_fileio_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3FileioInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "readfile", 1,
|
|
||||||
+ rc = sqlite3_create_function(db, "readfile", 1,
|
|
||||||
SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
readfileFunc, 0, 0);
|
|
||||||
if( rc==SQLITE_OK ){
|
|
||||||
@@ -998,3 +989,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_fileio_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3FileioInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/ieee754.c
|
|
||||||
+++ /ext/misc/ieee754.c
|
|
||||||
@@ -245,14 +245,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_ieee_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3IeeeInit(sqlite3 *db){
|
|
||||||
static const struct {
|
|
||||||
char *zFName;
|
|
||||||
int nArg;
|
|
||||||
@@ -269,13 +262,26 @@
|
|
||||||
};
|
|
||||||
unsigned int i;
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){
|
|
||||||
- rc = sqlite3_create_function(db, aFunc[i].zFName, aFunc[i].nArg,
|
|
||||||
+ rc = sqlite3_create_function(db, aFunc[i].zFName, aFunc[i].nArg,
|
|
||||||
SQLITE_UTF8|SQLITE_INNOCUOUS,
|
|
||||||
(void*)&aFunc[i].iAux,
|
|
||||||
aFunc[i].xFunc, 0, 0);
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_ieee_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3IeeeInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
@ -1,500 +0,0 @@
|
|||||||
Add initialization functions for internal usage in libsqlite3.so.
|
|
||||||
|
|
||||||
SQLite revision: a26b6597e3ae272231b96f9982c3bcc17ddec2f2b6eb4df06a224b91089fed5b
|
|
||||||
|
|
||||||
--- /ext/misc/nextchar.c
|
|
||||||
+++ /ext/misc/nextchar.c
|
|
||||||
@@ -286,17 +286,8 @@
|
|
||||||
sqlite3_free(c.aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_nextchar_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3NextcharInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
rc = sqlite3_create_function(db, "next_char", 3,
|
|
||||||
SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
nextCharFunc, 0, 0);
|
|
||||||
@@ -312,3 +303,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_nextchar_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3NextcharInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/percentile.c
|
|
||||||
+++ /ext/misc/percentile.c
|
|
||||||
@@ -202,6 +202,15 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3PercentileInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "percentile", 2,
|
|
||||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
+ 0, percentStep, percentFinal);
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -210,11 +219,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "percentile", 2,
|
|
||||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
- 0, percentStep, percentFinal);
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3PercentileInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/regexp.c
|
|
||||||
+++ /ext/misc/regexp.c
|
|
||||||
@@ -740,10 +740,18 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+int sqlite3RegexpInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "regexp", 2, SQLITE_UTF8|SQLITE_INNOCUOUS,
|
|
||||||
+ 0, re_sql_func, 0, 0);
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
** Invoke this routine to register the regexp() function with the
|
|
||||||
** SQLite database connection.
|
|
||||||
*/
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -752,9 +760,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- rc = sqlite3_create_function(db, "regexp", 2, SQLITE_UTF8|SQLITE_INNOCUOUS,
|
|
||||||
- 0, re_sql_func, 0, 0);
|
|
||||||
- return rc;
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3RegexpInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/series.c
|
|
||||||
+++ /ext/misc/series.c
|
|
||||||
@@ -413,6 +413,15 @@
|
|
||||||
|
|
||||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
|
|
||||||
+int sqlite3SeriesInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
+ rc = sqlite3_create_module(db, "generate_series", &seriesModule, 0);
|
|
||||||
+#endif
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -421,7 +430,6 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
if( sqlite3_libversion_number()<3008012 ){
|
|
||||||
@@ -429,7 +437,7 @@
|
|
||||||
"generate_series() requires SQLite 3.8.12 or later");
|
|
||||||
return SQLITE_ERROR;
|
|
||||||
}
|
|
||||||
- rc = sqlite3_create_module(db, "generate_series", &seriesModule, 0);
|
|
||||||
#endif
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3SeriesInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/sha1.c
|
|
||||||
+++ /ext/misc/sha1.c
|
|
||||||
@@ -175,7 +175,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Compute a string using sqlite3_vsnprintf() and hash it */
|
|
||||||
-static void hash_step_vformat(
|
|
||||||
+static void sha1_hash_step_vformat(
|
|
||||||
SHA1Context *p, /* Add content to this context */
|
|
||||||
const char *zFormat,
|
|
||||||
...
|
|
||||||
@@ -306,7 +306,7 @@
|
|
||||||
nCol = sqlite3_column_count(pStmt);
|
|
||||||
z = sqlite3_sql(pStmt);
|
|
||||||
n = (int)strlen(z);
|
|
||||||
- hash_step_vformat(&cx,"S%d:",n);
|
|
||||||
+ sha1_hash_step_vformat(&cx,"S%d:",n);
|
|
||||||
hash_step(&cx,(unsigned char*)z,n);
|
|
||||||
|
|
||||||
/* Compute a hash over the result of the query */
|
|
||||||
@@ -349,14 +349,14 @@
|
|
||||||
case SQLITE_TEXT: {
|
|
||||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
|
||||||
const unsigned char *z2 = sqlite3_column_text(pStmt, i);
|
|
||||||
- hash_step_vformat(&cx,"T%d:",n2);
|
|
||||||
+ sha1_hash_step_vformat(&cx,"T%d:",n2);
|
|
||||||
hash_step(&cx, z2, n2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SQLITE_BLOB: {
|
|
||||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
|
||||||
const unsigned char *z2 = sqlite3_column_blob(pStmt, i);
|
|
||||||
- hash_step_vformat(&cx,"B%d:",n2);
|
|
||||||
+ sha1_hash_step_vformat(&cx,"B%d:",n2);
|
|
||||||
hash_step(&cx, z2, n2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
@@ -370,6 +370,20 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3ShaInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "sha1", 1,
|
|
||||||
+ SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
|
||||||
+ 0, sha1Func, 0, 0);
|
|
||||||
+ if( rc==SQLITE_OK ){
|
|
||||||
+ rc = sqlite3_create_function(db, "sha1_query", 1,
|
|
||||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
+ sha1QueryFunc, 0, 0);
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -378,16 +392,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "sha1", 1,
|
|
||||||
- SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
|
||||||
- 0, sha1Func, 0, 0);
|
|
||||||
- if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_function(db, "sha1_query", 1,
|
|
||||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
- sha1QueryFunc, 0, 0);
|
|
||||||
- }
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3ShaInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/shathree.c
|
|
||||||
+++ /ext/misc/shathree.c
|
|
||||||
@@ -527,7 +527,7 @@
|
|
||||||
/* Compute a string using sqlite3_vsnprintf() with a maximum length
|
|
||||||
** of 50 bytes and add it to the hash.
|
|
||||||
*/
|
|
||||||
-static void hash_step_vformat(
|
|
||||||
+static void sha3_hash_step_vformat(
|
|
||||||
SHA3Context *p, /* Add content to this context */
|
|
||||||
const char *zFormat,
|
|
||||||
...
|
|
||||||
@@ -622,7 +622,7 @@
|
|
||||||
nCol = sqlite3_column_count(pStmt);
|
|
||||||
z = sqlite3_sql(pStmt);
|
|
||||||
n = (int)strlen(z);
|
|
||||||
- hash_step_vformat(&cx,"S%d:",n);
|
|
||||||
+ sha3_hash_step_vformat(&cx,"S%d:",n);
|
|
||||||
SHA3Update(&cx,(unsigned char*)z,n);
|
|
||||||
|
|
||||||
/* Compute a hash over the result of the query */
|
|
||||||
@@ -665,14 +665,14 @@
|
|
||||||
case SQLITE_TEXT: {
|
|
||||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
|
||||||
const unsigned char *z2 = sqlite3_column_text(pStmt, i);
|
|
||||||
- hash_step_vformat(&cx,"T%d:",n2);
|
|
||||||
+ sha3_hash_step_vformat(&cx,"T%d:",n2);
|
|
||||||
SHA3Update(&cx, z2, n2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SQLITE_BLOB: {
|
|
||||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
|
||||||
const unsigned char *z2 = sqlite3_column_blob(pStmt, i);
|
|
||||||
- hash_step_vformat(&cx,"B%d:",n2);
|
|
||||||
+ sha3_hash_step_vformat(&cx,"B%d:",n2);
|
|
||||||
SHA3Update(&cx, z2, n2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
@@ -685,17 +685,8 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_shathree_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3ShathreeInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
rc = sqlite3_create_function(db, "sha3", 1,
|
|
||||||
SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
|
||||||
0, sha3Func, 0, 0);
|
|
||||||
@@ -716,3 +707,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_shathree_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3ShathreeInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/sqlar.c
|
|
||||||
+++ /ext/misc/sqlar.c
|
|
||||||
@@ -14,6 +14,8 @@
|
|
||||||
** for working with sqlar archives and used by the shell tool's built-in
|
|
||||||
** sqlar support.
|
|
||||||
*/
|
|
||||||
+#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
+
|
|
||||||
#include "sqlite3ext.h"
|
|
||||||
SQLITE_EXTENSION_INIT1
|
|
||||||
#include <zlib.h>
|
|
||||||
@@ -101,6 +103,20 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3SqlarInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "sqlar_compress", 1,
|
|
||||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
+ sqlarCompressFunc, 0, 0);
|
|
||||||
+ if( rc==SQLITE_OK ){
|
|
||||||
+ rc = sqlite3_create_function(db, "sqlar_uncompress", 2,
|
|
||||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
+ sqlarUncompressFunc, 0, 0);
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -109,16 +125,10 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "sqlar_compress", 1,
|
|
||||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
- sqlarCompressFunc, 0, 0);
|
|
||||||
- if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_function(db, "sqlar_uncompress", 2,
|
|
||||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
- sqlarUncompressFunc, 0, 0);
|
|
||||||
- }
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3SqlarInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
+
|
|
||||||
+#endif /* SQLITE_HAVE_ZLIB */
|
|
||||||
--- /ext/misc/totype.c
|
|
||||||
+++ /ext/misc/totype.c
|
|
||||||
@@ -491,17 +491,8 @@
|
|
||||||
#pragma warning(default: 4748)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_totype_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3TotypeInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
rc = sqlite3_create_function(db, "tointeger", 1,
|
|
||||||
SQLITE_UTF8 | SQLITE_DETERMINISTIC | SQLITE_INNOCUOUS, 0,
|
|
||||||
tointegerFunc, 0, 0);
|
|
||||||
@@ -512,3 +503,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_totype_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3TotypeInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/uint.c
|
|
||||||
+++ /ext/misc/uint.c
|
|
||||||
@@ -78,6 +78,11 @@
|
|
||||||
return (nKey1 - i) - (nKey2 - j);
|
|
||||||
}
|
|
||||||
|
|
||||||
+int sqlite3UintInit(sqlite3 *db){
|
|
||||||
+ return sqlite3_create_collation(db, "UINT", SQLITE_UTF8, 0, uintCollFunc);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -88,5 +93,6 @@
|
|
||||||
){
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- return sqlite3_create_collation(db, "uint", SQLITE_UTF8, 0, uintCollFunc);
|
|
||||||
+ return sqlite3UintInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/uuid.c
|
|
||||||
+++ /ext/misc/uuid.c
|
|
||||||
@@ -206,21 +206,12 @@
|
|
||||||
sqlite3_result_blob(context, pBlob, 16, SQLITE_TRANSIENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_uuid_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3UuidInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
rc = sqlite3_create_function(db, "uuid", 0, SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
sqlite3UuidFunc, 0, 0);
|
|
||||||
if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_function(db, "uuid_str", 1,
|
|
||||||
+ rc = sqlite3_create_function(db, "uuid_str", 1,
|
|
||||||
SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_DETERMINISTIC,
|
|
||||||
0, sqlite3UuidStrFunc, 0, 0);
|
|
||||||
}
|
|
||||||
@@ -231,3 +222,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_uuid_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3UuidInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/zipfile.c
|
|
||||||
+++ /ext/misc/zipfile.c
|
|
||||||
@@ -24,6 +24,8 @@
|
|
||||||
** * No support for zip64 extensions
|
|
||||||
** * Only the "inflate/deflate" (zlib) compression method is supported
|
|
||||||
*/
|
|
||||||
+#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
+
|
|
||||||
#include "sqlite3ext.h"
|
|
||||||
SQLITE_EXTENSION_INIT1
|
|
||||||
#include <stdio.h>
|
|
||||||
@@ -2139,7 +2141,7 @@
|
|
||||||
/*
|
|
||||||
** Register the "zipfile" virtual table.
|
|
||||||
*/
|
|
||||||
-static int zipfileRegister(sqlite3 *db){
|
|
||||||
+int sqlite3ZipfileInit(sqlite3 *db){
|
|
||||||
static sqlite3_module zipfileModule = {
|
|
||||||
1, /* iVersion */
|
|
||||||
zipfileConnect, /* xCreate */
|
|
||||||
@@ -2173,9 +2175,10 @@
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
#else /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
-# define zipfileRegister(x) SQLITE_OK
|
|
||||||
+# define sqlite3ZipfileInit(x) SQLITE_OK
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -2186,5 +2189,8 @@
|
|
||||||
){
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- return zipfileRegister(db);
|
|
||||||
+ return sqlite3ZipfileInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
+
|
|
||||||
+#endif /* SQLITE_HAVE_ZLIB */
|
|
@ -1,291 +0,0 @@
|
|||||||
Move some code to libsqlite3.so to avoid duplication.
|
|
||||||
Link executables against libsqlite3.so.
|
|
||||||
Increase timeout for fuzzcheck.
|
|
||||||
Update list of optionally available functions.
|
|
||||||
Fix building with dlopen() not available.
|
|
||||||
|
|
||||||
SQLite revision: a26b6597e3ae272231b96f9982c3bcc17ddec2f2b6eb4df06a224b91089fed5b
|
|
||||||
|
|
||||||
--- /Makefile.in
|
|
||||||
+++ /Makefile.in
|
|
||||||
@@ -313,6 +313,9 @@
|
|
||||||
# Source code for extensions
|
|
||||||
#
|
|
||||||
SRC += \
|
|
||||||
+ $(TOP)/ext/expert/sqlite3expert.c \
|
|
||||||
+ $(TOP)/ext/expert/sqlite3expert.h
|
|
||||||
+SRC += \
|
|
||||||
$(TOP)/ext/fts1/fts1.c \
|
|
||||||
$(TOP)/ext/fts1/fts1.h \
|
|
||||||
$(TOP)/ext/fts1/fts1_hash.c \
|
|
||||||
@@ -365,8 +368,29 @@
|
|
||||||
$(TOP)/ext/rbu/sqlite3rbu.h \
|
|
||||||
$(TOP)/ext/rbu/sqlite3rbu.c
|
|
||||||
SRC += \
|
|
||||||
+ $(TOP)/ext/misc/amatch.c \
|
|
||||||
+ $(TOP)/ext/misc/appendvfs.c \
|
|
||||||
+ $(TOP)/ext/misc/carray.c \
|
|
||||||
+ $(TOP)/ext/misc/completion.c \
|
|
||||||
+ $(TOP)/ext/misc/csv.c \
|
|
||||||
+ $(TOP)/ext/misc/dbdata.c \
|
|
||||||
+ $(TOP)/ext/misc/decimal.c \
|
|
||||||
+ $(TOP)/ext/misc/eval.c \
|
|
||||||
+ $(TOP)/ext/misc/fileio.c \
|
|
||||||
+ $(TOP)/ext/misc/ieee754.c \
|
|
||||||
$(TOP)/ext/misc/json1.c \
|
|
||||||
- $(TOP)/ext/misc/stmt.c
|
|
||||||
+ $(TOP)/ext/misc/nextchar.c \
|
|
||||||
+ $(TOP)/ext/misc/percentile.c \
|
|
||||||
+ $(TOP)/ext/misc/regexp.c \
|
|
||||||
+ $(TOP)/ext/misc/series.c \
|
|
||||||
+ $(TOP)/ext/misc/sha1.c \
|
|
||||||
+ $(TOP)/ext/misc/shathree.c \
|
|
||||||
+ $(TOP)/ext/misc/sqlar.c \
|
|
||||||
+ $(TOP)/ext/misc/stmt.c \
|
|
||||||
+ $(TOP)/ext/misc/totype.c \
|
|
||||||
+ $(TOP)/ext/misc/uint.c \
|
|
||||||
+ $(TOP)/ext/misc/uuid.c \
|
|
||||||
+ $(TOP)/ext/misc/zipfile.c
|
|
||||||
|
|
||||||
# Generated source code files
|
|
||||||
#
|
|
||||||
@@ -437,35 +461,21 @@
|
|
||||||
# Statically linked extensions
|
|
||||||
#
|
|
||||||
TESTSRC += \
|
|
||||||
- $(TOP)/ext/expert/sqlite3expert.c \
|
|
||||||
$(TOP)/ext/expert/test_expert.c \
|
|
||||||
- $(TOP)/ext/misc/amatch.c \
|
|
||||||
- $(TOP)/ext/misc/carray.c \
|
|
||||||
$(TOP)/ext/misc/cksumvfs.c \
|
|
||||||
$(TOP)/ext/misc/closure.c \
|
|
||||||
- $(TOP)/ext/misc/csv.c \
|
|
||||||
- $(TOP)/ext/misc/decimal.c \
|
|
||||||
- $(TOP)/ext/misc/eval.c \
|
|
||||||
$(TOP)/ext/misc/explain.c \
|
|
||||||
- $(TOP)/ext/misc/fileio.c \
|
|
||||||
$(TOP)/ext/misc/fuzzer.c \
|
|
||||||
$(TOP)/ext/fts5/fts5_tcl.c \
|
|
||||||
$(TOP)/ext/fts5/fts5_test_mi.c \
|
|
||||||
$(TOP)/ext/fts5/fts5_test_tok.c \
|
|
||||||
- $(TOP)/ext/misc/ieee754.c \
|
|
||||||
$(TOP)/ext/misc/mmapwarm.c \
|
|
||||||
- $(TOP)/ext/misc/nextchar.c \
|
|
||||||
$(TOP)/ext/misc/normalize.c \
|
|
||||||
- $(TOP)/ext/misc/percentile.c \
|
|
||||||
$(TOP)/ext/misc/prefixes.c \
|
|
||||||
- $(TOP)/ext/misc/regexp.c \
|
|
||||||
$(TOP)/ext/misc/remember.c \
|
|
||||||
- $(TOP)/ext/misc/series.c \
|
|
||||||
$(TOP)/ext/misc/spellfix.c \
|
|
||||||
- $(TOP)/ext/misc/totype.c \
|
|
||||||
$(TOP)/ext/misc/unionvtab.c \
|
|
||||||
$(TOP)/ext/misc/wholenumber.c \
|
|
||||||
- $(TOP)/ext/misc/zipfile.c \
|
|
||||||
$(TOP)/ext/userauth/userauth.c
|
|
||||||
|
|
||||||
# Source code to the library files needed by the test fixture
|
|
||||||
@@ -647,25 +657,25 @@
|
|
||||||
|
|
||||||
libtclsqlite3.la: tclsqlite.lo libsqlite3.la
|
|
||||||
$(LTLINK) -no-undefined -o $@ tclsqlite.lo \
|
|
||||||
- libsqlite3.la @TCL_STUB_LIB_SPEC@ $(TLIBS) \
|
|
||||||
+ libsqlite3.la @TCL_STUB_LIB_SPEC@ \
|
|
||||||
-rpath "$(TCLLIBDIR)" \
|
|
||||||
-version-info "8:6:8" \
|
|
||||||
-avoid-version
|
|
||||||
|
|
||||||
-sqlite3$(TEXE): shell.c sqlite3.c
|
|
||||||
- $(LTLINK) $(READLINE_FLAGS) $(SHELL_OPT) -o $@ \
|
|
||||||
- shell.c sqlite3.c \
|
|
||||||
- $(LIBREADLINE) $(TLIBS) -rpath "$(libdir)"
|
|
||||||
+sqlite3$(TEXE): shell.c libsqlite3.la
|
|
||||||
+ $(LTLINK) $(READLINE_FLAGS) -o $@ \
|
|
||||||
+ shell.c libsqlite3.la \
|
|
||||||
+ $(LIBREADLINE)
|
|
||||||
|
|
||||||
-sqldiff$(TEXE): $(TOP)/tool/sqldiff.c sqlite3.lo sqlite3.h
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c sqlite3.lo $(TLIBS)
|
|
||||||
+sqldiff$(TEXE): $(TOP)/tool/sqldiff.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c libsqlite3.la
|
|
||||||
|
|
||||||
-dbhash$(TEXE): $(TOP)/tool/dbhash.c sqlite3.lo sqlite3.h
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/dbhash.c sqlite3.lo $(TLIBS)
|
|
||||||
+dbhash$(TEXE): $(TOP)/tool/dbhash.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/dbhash.c libsqlite3.la
|
|
||||||
|
|
||||||
-scrub$(TEXE): $(TOP)/ext/misc/scrub.c sqlite3.lo
|
|
||||||
+scrub$(TEXE): $(TOP)/ext/misc/scrub.c libsqlite3.la
|
|
||||||
$(LTLINK) -o $@ -I. -DSCRUB_STANDALONE \
|
|
||||||
- $(TOP)/ext/misc/scrub.c sqlite3.lo $(TLIBS)
|
|
||||||
+ $(TOP)/ext/misc/scrub.c libsqlite3.la
|
|
||||||
|
|
||||||
srcck1$(BEXE): $(TOP)/tool/srcck1.c
|
|
||||||
$(BCC) -o srcck1$(BEXE) $(TOP)/tool/srcck1.c
|
|
||||||
@@ -776,7 +786,7 @@
|
|
||||||
# Rule to build the amalgamation
|
|
||||||
#
|
|
||||||
sqlite3.lo: sqlite3.c
|
|
||||||
- $(LTCOMPILE) $(TEMP_STORE) -c sqlite3.c
|
|
||||||
+ $(LTCOMPILE) $(SHELL_OPT) $(TEMP_STORE) -c sqlite3.c
|
|
||||||
|
|
||||||
# Rules to build the LEMON compiler generator
|
|
||||||
#
|
|
||||||
@@ -1082,18 +1092,6 @@
|
|
||||||
# Source files that go into making shell.c
|
|
||||||
SHELL_SRC = \
|
|
||||||
$(TOP)/src/shell.c.in \
|
|
||||||
- $(TOP)/ext/misc/appendvfs.c \
|
|
||||||
- $(TOP)/ext/misc/completion.c \
|
|
||||||
- $(TOP)/ext/misc/decimal.c \
|
|
||||||
- $(TOP)/ext/misc/fileio.c \
|
|
||||||
- $(TOP)/ext/misc/ieee754.c \
|
|
||||||
- $(TOP)/ext/misc/series.c \
|
|
||||||
- $(TOP)/ext/misc/shathree.c \
|
|
||||||
- $(TOP)/ext/misc/sqlar.c \
|
|
||||||
- $(TOP)/ext/misc/uint.c \
|
|
||||||
- $(TOP)/ext/expert/sqlite3expert.c \
|
|
||||||
- $(TOP)/ext/expert/sqlite3expert.h \
|
|
||||||
- $(TOP)/ext/misc/zipfile.c \
|
|
||||||
$(TOP)/ext/misc/memtrace.c \
|
|
||||||
$(TOP)/src/test_windirent.c
|
|
||||||
|
|
||||||
@@ -1263,11 +1261,11 @@
|
|
||||||
|
|
||||||
# Fuzz testing
|
|
||||||
fuzztest: fuzzcheck$(TEXE) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
|
|
||||||
- ./fuzzcheck$(TEXE) $(FUZZDATA)
|
|
||||||
+ ./fuzzcheck$(TEXE) --timeout 3600 $(FUZZDATA)
|
|
||||||
./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
|
|
||||||
|
|
||||||
valgrindfuzz: fuzzcheck$(TEXT) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
|
|
||||||
- valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 600 $(FUZZDATA)
|
|
||||||
+ valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 3600 $(FUZZDATA)
|
|
||||||
valgrind ./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
|
|
||||||
|
|
||||||
# The veryquick.test TCL tests.
|
|
||||||
@@ -1301,24 +1299,23 @@
|
|
||||||
shelltest: $(TESTPROGS)
|
|
||||||
./testfixture$(TEXT) $(TOP)/test/permutations.test shell
|
|
||||||
|
|
||||||
-sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
|
|
||||||
+sqlite3_analyzer.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
|
|
||||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in >sqlite3_analyzer.c
|
|
||||||
|
|
||||||
-sqlite3_analyzer$(TEXE): sqlite3_analyzer.c
|
|
||||||
- $(LTLINK) sqlite3_analyzer.c -o $@ $(LIBTCL) $(TLIBS)
|
|
||||||
+sqlite3_analyzer$(TEXE): sqlite3_analyzer.c libsqlite3.la
|
|
||||||
+ $(LTLINK) sqlite3_analyzer.c -o $@ libsqlite3.la $(LIBTCL)
|
|
||||||
|
|
||||||
-sqltclsh.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/ext/misc/appendvfs.c $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
|
|
||||||
+sqltclsh.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
|
|
||||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in >sqltclsh.c
|
|
||||||
|
|
||||||
-sqltclsh$(TEXE): sqltclsh.c
|
|
||||||
- $(LTLINK) sqltclsh.c -o $@ $(LIBTCL) $(TLIBS)
|
|
||||||
+sqltclsh$(TEXE): sqltclsh.c libsqlite3.la
|
|
||||||
+ $(LTLINK) sqltclsh.c -o $@ libsqlite3.la $(LIBTCL)
|
|
||||||
|
|
||||||
-sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c
|
|
||||||
- $(LTLINK) $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c -o sqlite3_expert $(TLIBS)
|
|
||||||
+sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/expert.c libsqlite3.la
|
|
||||||
+ $(LTLINK) $(TOP)/ext/expert/expert.c -o sqlite3_expert libsqlite3.la
|
|
||||||
|
|
||||||
CHECKER_DEPS =\
|
|
||||||
$(TOP)/tool/mkccode.tcl \
|
|
||||||
- sqlite3.c \
|
|
||||||
$(TOP)/src/tclsqlite.c \
|
|
||||||
$(TOP)/ext/repair/sqlite3_checker.tcl \
|
|
||||||
$(TOP)/ext/repair/checkindex.c \
|
|
||||||
@@ -1329,36 +1326,36 @@
|
|
||||||
sqlite3_checker.c: $(CHECKER_DEPS)
|
|
||||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/ext/repair/sqlite3_checker.c.in >$@
|
|
||||||
|
|
||||||
-sqlite3_checker$(TEXE): sqlite3_checker.c
|
|
||||||
- $(LTLINK) sqlite3_checker.c -o $@ $(LIBTCL) $(TLIBS)
|
|
||||||
+sqlite3_checker$(TEXE): sqlite3_checker.c libsqlite3.la
|
|
||||||
+ $(LTLINK) sqlite3_checker.c -o $@ libsqlite3.la $(LIBTCL)
|
|
||||||
|
|
||||||
-dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c sqlite3.lo
|
|
||||||
+dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c libsqlite3.la
|
|
||||||
$(LTLINK) -DDBDUMP_STANDALONE -o $@ \
|
|
||||||
- $(TOP)/ext/misc/dbdump.c sqlite3.lo $(TLIBS)
|
|
||||||
+ $(TOP)/ext/misc/dbdump.c libsqlite3.la
|
|
||||||
|
|
||||||
-dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
|
|
||||||
- $(LTLINK)-o $@ $(TOP)/tool/dbtotxt.c
|
|
||||||
+dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/dbtotxt.c
|
|
||||||
|
|
||||||
-showdb$(TEXE): $(TOP)/tool/showdb.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/showdb.c sqlite3.lo $(TLIBS)
|
|
||||||
+showdb$(TEXE): $(TOP)/tool/showdb.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/showdb.c libsqlite3.la
|
|
||||||
|
|
||||||
-showstat4$(TEXE): $(TOP)/tool/showstat4.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/showstat4.c sqlite3.lo $(TLIBS)
|
|
||||||
+showstat4$(TEXE): $(TOP)/tool/showstat4.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/showstat4.c libsqlite3.la
|
|
||||||
|
|
||||||
-showjournal$(TEXE): $(TOP)/tool/showjournal.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/showjournal.c sqlite3.lo $(TLIBS)
|
|
||||||
+showjournal$(TEXE): $(TOP)/tool/showjournal.c
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/showjournal.c
|
|
||||||
|
|
||||||
-showwal$(TEXE): $(TOP)/tool/showwal.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/showwal.c sqlite3.lo $(TLIBS)
|
|
||||||
+showwal$(TEXE): $(TOP)/tool/showwal.c
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/showwal.c
|
|
||||||
|
|
||||||
showshm$(TEXE): $(TOP)/tool/showshm.c
|
|
||||||
$(LTLINK) -o $@ $(TOP)/tool/showshm.c
|
|
||||||
|
|
||||||
-index_usage$(TEXE): $(TOP)/tool/index_usage.c sqlite3.lo
|
|
||||||
- $(LTLINK) $(SHELL_OPT) -o $@ $(TOP)/tool/index_usage.c sqlite3.lo $(TLIBS)
|
|
||||||
+index_usage$(TEXE): $(TOP)/tool/index_usage.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/index_usage.c libsqlite3.la
|
|
||||||
|
|
||||||
-changeset$(TEXE): $(TOP)/ext/session/changeset.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c sqlite3.lo $(TLIBS)
|
|
||||||
+changeset$(TEXE): $(TOP)/ext/session/changeset.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c libsqlite3.la
|
|
||||||
|
|
||||||
changesetfuzz$(TEXE): $(TOP)/ext/session/changesetfuzz.c sqlite3.lo
|
|
||||||
$(LTLINK) -o $@ $(TOP)/ext/session/changesetfuzz.c sqlite3.lo $(TLIBS)
|
|
||||||
@@ -1383,11 +1380,11 @@
|
|
||||||
kvtest$(TEXE): $(TOP)/test/kvtest.c sqlite3.c
|
|
||||||
$(LTLINK) $(KV_OPT) -o $@ $(TOP)/test/kvtest.c sqlite3.c $(TLIBS)
|
|
||||||
|
|
||||||
-rbu$(EXE): $(TOP)/ext/rbu/rbu.c $(TOP)/ext/rbu/sqlite3rbu.c sqlite3.lo
|
|
||||||
- $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c sqlite3.lo $(TLIBS)
|
|
||||||
+rbu$(EXE): $(TOP)/ext/rbu/rbu.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c libsqlite3.la
|
|
||||||
|
|
||||||
-loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
|
|
||||||
- $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@ $(TLIBS)
|
|
||||||
+loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
|
|
||||||
+ $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@
|
|
||||||
|
|
||||||
# This target will fail if the SQLite amalgamation contains any exported
|
|
||||||
# symbols that do not begin with "sqlite3_". It is run as part of the
|
|
||||||
--- /configure.ac
|
|
||||||
+++ /configure.ac
|
|
||||||
@@ -108,7 +108,7 @@
|
|
||||||
#########
|
|
||||||
# Figure out whether or not we have these functions
|
|
||||||
#
|
|
||||||
-AC_CHECK_FUNCS([fdatasync gmtime_r isnan localtime_r localtime_s malloc_usable_size strchrnul usleep utime pread pread64 pwrite pwrite64])
|
|
||||||
+AC_CHECK_FUNCS([fdatasync fullfsync gmtime_r isnan localtime_r localtime_s malloc_usable_size posix_fallocate pread pread64 pwrite pwrite64 strchrnul usleep utime])
|
|
||||||
|
|
||||||
#########
|
|
||||||
# By default, we use the amalgamation (this may be changed below...)
|
|
||||||
@@ -582,6 +582,9 @@
|
|
||||||
if test "${enable_load_extension}" = "yes" ; then
|
|
||||||
OPT_FEATURE_FLAGS=""
|
|
||||||
AC_SEARCH_LIBS(dlopen, dl)
|
|
||||||
+ if test "${ac_cv_search_dlopen}" = "no" ; then
|
|
||||||
+ OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
|
|
||||||
+ fi
|
|
||||||
else
|
|
||||||
OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
|
|
||||||
fi
|
|
@ -1,441 +0,0 @@
|
|||||||
Move some code to libsqlite3.so to avoid duplication.
|
|
||||||
Initialize some extensions in libsqlite3.so.
|
|
||||||
Update test suite.
|
|
||||||
|
|
||||||
SQLite revision: a26b6597e3ae272231b96f9982c3bcc17ddec2f2b6eb4df06a224b91089fed5b
|
|
||||||
|
|
||||||
--- /ext/repair/sqlite3_checker.c.in
|
|
||||||
+++ /ext/repair/sqlite3_checker.c.in
|
|
||||||
@@ -2,6 +2,7 @@
|
|
||||||
** Read an SQLite database file and analyze its space utilization. Generate
|
|
||||||
** text on standard output.
|
|
||||||
*/
|
|
||||||
+#define SQLITE_CORE 1
|
|
||||||
#define TCLSH_INIT_PROC sqlite3_checker_init_proc
|
|
||||||
#define SQLITE_ENABLE_DBPAGE_VTAB 1
|
|
||||||
#define SQLITE_ENABLE_JSON1 1
|
|
||||||
@@ -14,7 +15,7 @@
|
|
||||||
#define SQLITE_OMIT_SHARED_CACHE 1
|
|
||||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
|
||||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
|
||||||
-INCLUDE sqlite3.c
|
|
||||||
+#include "sqlite3.h"
|
|
||||||
INCLUDE $ROOT/src/tclsqlite.c
|
|
||||||
INCLUDE $ROOT/ext/misc/btreeinfo.c
|
|
||||||
INCLUDE $ROOT/ext/repair/checkindex.c
|
|
||||||
--- /src/main.c
|
|
||||||
+++ /src/main.c
|
|
||||||
@@ -50,12 +50,36 @@
|
|
||||||
#ifdef SQLITE_ENABLE_FTS5
|
|
||||||
int sqlite3Fts5Init(sqlite3*);
|
|
||||||
#endif
|
|
||||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
|
||||||
+int sqlite3DbdataRegister(sqlite3*);
|
|
||||||
+#endif
|
|
||||||
#ifdef SQLITE_ENABLE_JSON1
|
|
||||||
int sqlite3Json1Init(sqlite3*);
|
|
||||||
#endif
|
|
||||||
#ifdef SQLITE_ENABLE_STMTVTAB
|
|
||||||
int sqlite3StmtVtabInit(sqlite3*);
|
|
||||||
#endif
|
|
||||||
+int sqlite3AmatchInit(sqlite3*);
|
|
||||||
+int sqlite3CarrayInit(sqlite3*);
|
|
||||||
+int sqlite3CompletionVtabInit(sqlite3*);
|
|
||||||
+int sqlite3CsvInit(sqlite3*);
|
|
||||||
+int sqlite3DecimalInit(sqlite3*);
|
|
||||||
+int sqlite3EvalInit(sqlite3*);
|
|
||||||
+int sqlite3FileioInit(sqlite3*);
|
|
||||||
+int sqlite3IeeeInit(sqlite3*);
|
|
||||||
+int sqlite3NextcharInit(sqlite3*);
|
|
||||||
+int sqlite3PercentileInit(sqlite3*);
|
|
||||||
+int sqlite3RegexpInit(sqlite3*);
|
|
||||||
+int sqlite3SeriesInit(sqlite3*);
|
|
||||||
+int sqlite3ShaInit(sqlite3*);
|
|
||||||
+int sqlite3ShathreeInit(sqlite3*);
|
|
||||||
+int sqlite3TotypeInit(sqlite3*);
|
|
||||||
+int sqlite3UintInit(sqlite3*);
|
|
||||||
+int sqlite3UuidInit(sqlite3*);
|
|
||||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_HAVE_ZLIB)
|
|
||||||
+int sqlite3ZipfileInit(sqlite3*);
|
|
||||||
+int sqlite3SqlarInit(sqlite3*);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
** An array of pointers to extension initializer functions for
|
|
||||||
@@ -83,6 +107,9 @@
|
|
||||||
#ifdef SQLITE_ENABLE_DBPAGE_VTAB
|
|
||||||
sqlite3DbpageRegister,
|
|
||||||
#endif
|
|
||||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
|
||||||
+ sqlite3DbdataRegister,
|
|
||||||
+#endif
|
|
||||||
#ifdef SQLITE_ENABLE_DBSTAT_VTAB
|
|
||||||
sqlite3DbstatRegister,
|
|
||||||
#endif
|
|
||||||
@@ -96,6 +123,27 @@
|
|
||||||
#ifdef SQLITE_ENABLE_BYTECODE_VTAB
|
|
||||||
sqlite3VdbeBytecodeVtabInit,
|
|
||||||
#endif
|
|
||||||
+ sqlite3AmatchInit,
|
|
||||||
+ sqlite3CarrayInit,
|
|
||||||
+ sqlite3CompletionVtabInit,
|
|
||||||
+ sqlite3CsvInit,
|
|
||||||
+ sqlite3DecimalInit,
|
|
||||||
+ sqlite3EvalInit,
|
|
||||||
+ sqlite3FileioInit,
|
|
||||||
+ sqlite3IeeeInit,
|
|
||||||
+ sqlite3NextcharInit,
|
|
||||||
+ sqlite3PercentileInit,
|
|
||||||
+ sqlite3RegexpInit,
|
|
||||||
+ sqlite3SeriesInit,
|
|
||||||
+ sqlite3ShaInit,
|
|
||||||
+ sqlite3ShathreeInit,
|
|
||||||
+ sqlite3TotypeInit,
|
|
||||||
+ sqlite3UintInit,
|
|
||||||
+ sqlite3UuidInit,
|
|
||||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_HAVE_ZLIB)
|
|
||||||
+ sqlite3ZipfileInit,
|
|
||||||
+ sqlite3SqlarInit,
|
|
||||||
+#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifndef SQLITE_AMALGAMATION
|
|
||||||
--- /src/shell.c.in
|
|
||||||
+++ /src/shell.c.in
|
|
||||||
@@ -69,6 +69,7 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <assert.h>
|
|
||||||
#include "sqlite3.h"
|
|
||||||
+#include "ext/expert/sqlite3expert.h"
|
|
||||||
typedef sqlite3_int64 i64;
|
|
||||||
typedef sqlite3_uint64 u64;
|
|
||||||
typedef unsigned char u8;
|
|
||||||
@@ -135,6 +136,10 @@
|
|
||||||
# define SHELL_USE_LOCAL_GETLINE 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
+#include <zlib.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
|
|
||||||
#if defined(_WIN32) || defined(WIN32)
|
|
||||||
# if SQLITE_OS_WINRT
|
|
||||||
@@ -1018,25 +1023,7 @@
|
|
||||||
INCLUDE test_windirent.c
|
|
||||||
#define dirent DIRENT
|
|
||||||
#endif
|
|
||||||
-INCLUDE ../ext/misc/shathree.c
|
|
||||||
-INCLUDE ../ext/misc/fileio.c
|
|
||||||
-INCLUDE ../ext/misc/completion.c
|
|
||||||
-INCLUDE ../ext/misc/appendvfs.c
|
|
||||||
INCLUDE ../ext/misc/memtrace.c
|
|
||||||
-INCLUDE ../ext/misc/uint.c
|
|
||||||
-INCLUDE ../ext/misc/decimal.c
|
|
||||||
-INCLUDE ../ext/misc/ieee754.c
|
|
||||||
-INCLUDE ../ext/misc/series.c
|
|
||||||
-#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
-INCLUDE ../ext/misc/zipfile.c
|
|
||||||
-INCLUDE ../ext/misc/sqlar.c
|
|
||||||
-#endif
|
|
||||||
-INCLUDE ../ext/expert/sqlite3expert.h
|
|
||||||
-INCLUDE ../ext/expert/sqlite3expert.c
|
|
||||||
-
|
|
||||||
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
|
||||||
-INCLUDE ../ext/misc/dbdata.c
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
#if defined(SQLITE_ENABLE_SESSION)
|
|
||||||
/*
|
|
||||||
@@ -4608,20 +4595,6 @@
|
|
||||||
#ifndef SQLITE_OMIT_LOAD_EXTENSION
|
|
||||||
sqlite3_enable_load_extension(p->db, 1);
|
|
||||||
#endif
|
|
||||||
- sqlite3_fileio_init(p->db, 0, 0);
|
|
||||||
- sqlite3_shathree_init(p->db, 0, 0);
|
|
||||||
- sqlite3_completion_init(p->db, 0, 0);
|
|
||||||
- sqlite3_uint_init(p->db, 0, 0);
|
|
||||||
- sqlite3_decimal_init(p->db, 0, 0);
|
|
||||||
- sqlite3_ieee_init(p->db, 0, 0);
|
|
||||||
- sqlite3_series_init(p->db, 0, 0);
|
|
||||||
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
|
||||||
- sqlite3_dbdata_init(p->db, 0, 0);
|
|
||||||
-#endif
|
|
||||||
-#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
- sqlite3_zipfile_init(p->db, 0, 0);
|
|
||||||
- sqlite3_sqlar_init(p->db, 0, 0);
|
|
||||||
-#endif
|
|
||||||
sqlite3_create_function(p->db, "shell_add_schema", 3, SQLITE_UTF8, 0,
|
|
||||||
shellAddSchemaName, 0, 0);
|
|
||||||
sqlite3_create_function(p->db, "shell_module_schema", 1, SQLITE_UTF8, 0,
|
|
||||||
@@ -6644,8 +6617,6 @@
|
|
||||||
);
|
|
||||||
goto end_ar_command;
|
|
||||||
}
|
|
||||||
- sqlite3_fileio_init(cmd.db, 0, 0);
|
|
||||||
- sqlite3_sqlar_init(cmd.db, 0, 0);
|
|
||||||
sqlite3_create_function(cmd.db, "shell_putsnl", 1, SQLITE_UTF8, cmd.p,
|
|
||||||
shellPutsFunc, 0, 0);
|
|
||||||
|
|
||||||
@@ -11076,6 +11047,7 @@
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
data.out = stdout;
|
|
||||||
+ extern int sqlite3_appendvfs_init(sqlite3 *, char **, const sqlite3_api_routines *);
|
|
||||||
sqlite3_appendvfs_init(0,0,0);
|
|
||||||
|
|
||||||
/* Go ahead and open the database file if it already exists. If the
|
|
||||||
--- /src/test_config.c
|
|
||||||
+++ /src/test_config.c
|
|
||||||
@@ -353,6 +353,8 @@
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "datetime", "1", TCL_GLOBAL_ONLY);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ Tcl_SetVar2(interp, "sqlite_options", "decimal", "1", TCL_GLOBAL_ONLY);
|
|
||||||
+
|
|
||||||
#ifdef SQLITE_OMIT_DECLTYPE
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "decltype", "0", TCL_GLOBAL_ONLY);
|
|
||||||
#else
|
|
||||||
@@ -540,6 +542,8 @@
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "progress", "1", TCL_GLOBAL_ONLY);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ Tcl_SetVar2(interp, "sqlite_options", "regexp", "1", TCL_GLOBAL_ONLY);
|
|
||||||
+
|
|
||||||
#ifdef SQLITE_OMIT_REINDEX
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "reindex", "0", TCL_GLOBAL_ONLY);
|
|
||||||
#else
|
|
||||||
@@ -662,6 +666,8 @@
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "truncate_opt", "1", TCL_GLOBAL_ONLY);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ Tcl_SetVar2(interp, "sqlite_options", "uint", "1", TCL_GLOBAL_ONLY);
|
|
||||||
+
|
|
||||||
#ifdef SQLITE_OMIT_UTF16
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "utf16", "0", TCL_GLOBAL_ONLY);
|
|
||||||
#else
|
|
||||||
--- /test/e_expr.test
|
|
||||||
+++ /test/e_expr.test
|
|
||||||
@@ -1079,7 +1079,7 @@
|
|
||||||
#
|
|
||||||
# There is a regexp function if ICU is enabled though.
|
|
||||||
#
|
|
||||||
-ifcapable !icu {
|
|
||||||
+ifcapable !icu&&!regexp {
|
|
||||||
do_catchsql_test e_expr-18.1.1 {
|
|
||||||
SELECT regexp('abc', 'def')
|
|
||||||
} {1 {no such function: regexp}}
|
|
||||||
--- /test/icu.test
|
|
||||||
+++ /test/icu.test
|
|
||||||
@@ -41,7 +41,7 @@
|
|
||||||
#
|
|
||||||
test_expr icu-1.1 {i1='hello'} {i1 REGEXP 'hello'} 1
|
|
||||||
test_expr icu-1.2 {i1='hello'} {i1 REGEXP '.ello'} 1
|
|
||||||
- test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell'} 0
|
|
||||||
+ test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell$'} 0
|
|
||||||
test_expr icu-1.4 {i1='hello'} {i1 REGEXP '.ell.*'} 1
|
|
||||||
test_expr icu-1.5 {i1=NULL} {i1 REGEXP '.ell.*'} {}
|
|
||||||
|
|
||||||
--- /test/pragma.test
|
|
||||||
+++ /test/pragma.test
|
|
||||||
@@ -1370,17 +1370,62 @@
|
|
||||||
} ;# ifcapable trigger
|
|
||||||
|
|
||||||
ifcapable schema_pragmas {
|
|
||||||
- do_test pragma-11.1 {
|
|
||||||
- execsql2 {
|
|
||||||
- pragma collation_list;
|
|
||||||
+ ifcapable decimal {
|
|
||||||
+ ifcapable uint {
|
|
||||||
+ do_test pragma-11.1 {
|
|
||||||
+ execsql2 {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {seq 0 name UINT seq 1 name decimal seq 2 name RTRIM seq 3 name NOCASE seq 4 name BINARY}
|
|
||||||
+ do_test pragma-11.2 {
|
|
||||||
+ db collate New_Collation blah...
|
|
||||||
+ execsql {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {0 New_Collation 1 UINT 2 decimal 3 RTRIM 4 NOCASE 5 BINARY}
|
|
||||||
}
|
|
||||||
- } {seq 0 name RTRIM seq 1 name NOCASE seq 2 name BINARY}
|
|
||||||
- do_test pragma-11.2 {
|
|
||||||
- db collate New_Collation blah...
|
|
||||||
- execsql {
|
|
||||||
- pragma collation_list;
|
|
||||||
+ ifcapable !uint {
|
|
||||||
+ do_test pragma-11.1 {
|
|
||||||
+ execsql2 {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {seq 0 name decimal seq 1 name RTRIM seq 2 name NOCASE seq 3 name BINARY}
|
|
||||||
+ do_test pragma-11.2 {
|
|
||||||
+ db collate New_Collation blah...
|
|
||||||
+ execsql {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {0 New_Collation 1 decimal 2 RTRIM 3 NOCASE 4 BINARY}
|
|
||||||
}
|
|
||||||
- } {0 New_Collation 1 RTRIM 2 NOCASE 3 BINARY}
|
|
||||||
+ }
|
|
||||||
+ ifcapable !decimal {
|
|
||||||
+ ifcapable uint {
|
|
||||||
+ do_test pragma-11.1 {
|
|
||||||
+ execsql2 {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {seq 0 name UINT seq 1 name RTRIM seq 2 name NOCASE seq 3 name BINARY}
|
|
||||||
+ do_test pragma-11.2 {
|
|
||||||
+ db collate New_Collation blah...
|
|
||||||
+ execsql {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {0 New_Collation 1 UINT 2 RTRIM 3 NOCASE 4 BINARY}
|
|
||||||
+ }
|
|
||||||
+ ifcapable !uint {
|
|
||||||
+ do_test pragma-11.1 {
|
|
||||||
+ execsql2 {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {seq 0 name RTRIM seq 1 name NOCASE seq 2 name BINARY}
|
|
||||||
+ do_test pragma-11.2 {
|
|
||||||
+ db collate New_Collation blah...
|
|
||||||
+ execsql {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {0 New_Collation 1 RTRIM 2 NOCASE 3 BINARY}
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
ifcapable schema_pragmas&&tempdb {
|
|
||||||
--- /test/sessionfuzz.c
|
|
||||||
+++ /test/sessionfuzz.c
|
|
||||||
@@ -698,49 +698,6 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <assert.h>
|
|
||||||
-#ifndef OMIT_ZLIB
|
|
||||||
-#include "zlib.h"
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-/*
|
|
||||||
-** Implementation of the "sqlar_uncompress(X,SZ)" SQL function
|
|
||||||
-**
|
|
||||||
-** Parameter SZ is interpreted as an integer. If it is less than or
|
|
||||||
-** equal to zero, then this function returns a copy of X. Or, if
|
|
||||||
-** SZ is equal to the size of X when interpreted as a blob, also
|
|
||||||
-** return a copy of X. Otherwise, decompress blob X using zlib
|
|
||||||
-** utility function uncompress() and return the results (another
|
|
||||||
-** blob).
|
|
||||||
-*/
|
|
||||||
-static void sqlarUncompressFunc(
|
|
||||||
- sqlite3_context *context,
|
|
||||||
- int argc,
|
|
||||||
- sqlite3_value **argv
|
|
||||||
-){
|
|
||||||
-#ifdef OMIT_ZLIB
|
|
||||||
- sqlite3_result_value(context, argv[0]);
|
|
||||||
-#else
|
|
||||||
- uLong nData;
|
|
||||||
- uLongf sz;
|
|
||||||
-
|
|
||||||
- assert( argc==2 );
|
|
||||||
- sz = sqlite3_value_int(argv[1]);
|
|
||||||
-
|
|
||||||
- if( sz<=0 || sz==(nData = sqlite3_value_bytes(argv[0])) ){
|
|
||||||
- sqlite3_result_value(context, argv[0]);
|
|
||||||
- }else{
|
|
||||||
- const Bytef *pData= sqlite3_value_blob(argv[0]);
|
|
||||||
- Bytef *pOut = sqlite3_malloc(sz);
|
|
||||||
- if( Z_OK!=uncompress(pOut, &sz, pData, nData) ){
|
|
||||||
- sqlite3_result_error(context, "error in uncompress()", -1);
|
|
||||||
- }else{
|
|
||||||
- sqlite3_result_blob(context, pOut, sz, SQLITE_TRANSIENT);
|
|
||||||
- }
|
|
||||||
- sqlite3_free(pOut);
|
|
||||||
- }
|
|
||||||
-#endif
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
|
|
||||||
/* Run a chunk of SQL. If any errors happen, print an error message
|
|
||||||
** and exit.
|
|
||||||
--- /tool/mksqlite3c.tcl
|
|
||||||
+++ /tool/mksqlite3c.tcl
|
|
||||||
@@ -129,6 +129,7 @@
|
|
||||||
rtree.h
|
|
||||||
sqlite3session.h
|
|
||||||
sqlite3.h
|
|
||||||
+ sqlite3expert.h
|
|
||||||
sqlite3ext.h
|
|
||||||
sqlite3rbu.h
|
|
||||||
sqliteicu.h
|
|
||||||
@@ -416,6 +417,28 @@
|
|
||||||
sqlite3session.c
|
|
||||||
fts5.c
|
|
||||||
stmt.c
|
|
||||||
+ amatch.c
|
|
||||||
+ appendvfs.c
|
|
||||||
+ carray.c
|
|
||||||
+ completion.c
|
|
||||||
+ csv.c
|
|
||||||
+ dbdata.c
|
|
||||||
+ decimal.c
|
|
||||||
+ eval.c
|
|
||||||
+ fileio.c
|
|
||||||
+ ieee754.c
|
|
||||||
+ nextchar.c
|
|
||||||
+ percentile.c
|
|
||||||
+ regexp.c
|
|
||||||
+ series.c
|
|
||||||
+ sha1.c
|
|
||||||
+ shathree.c
|
|
||||||
+ sqlar.c
|
|
||||||
+ sqlite3expert.c
|
|
||||||
+ totype.c
|
|
||||||
+ uint.c
|
|
||||||
+ uuid.c
|
|
||||||
+ zipfile.c
|
|
||||||
} {
|
|
||||||
copy_file tsrc/$file
|
|
||||||
}
|
|
||||||
--- /tool/sqlite3_analyzer.c.in
|
|
||||||
+++ /tool/sqlite3_analyzer.c.in
|
|
||||||
@@ -14,9 +14,6 @@
|
|
||||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
|
||||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
|
||||||
#define SQLITE_OMIT_LOAD_EXTENSION 1
|
|
||||||
-#ifndef USE_EXTERNAL_SQLITE
|
|
||||||
-INCLUDE sqlite3.c
|
|
||||||
-#endif
|
|
||||||
INCLUDE $ROOT/src/tclsqlite.c
|
|
||||||
|
|
||||||
const char *sqlite3_analyzer_init_proc(Tcl_Interp *interp){
|
|
||||||
--- /tool/sqltclsh.c.in
|
|
||||||
+++ /tool/sqltclsh.c.in
|
|
||||||
@@ -27,21 +27,13 @@
|
|
||||||
#define SQLITE_OMIT_SHARED_CACHE 1
|
|
||||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
|
||||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
|
||||||
-INCLUDE sqlite3.c
|
|
||||||
-INCLUDE $ROOT/ext/misc/appendvfs.c
|
|
||||||
-#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
-INCLUDE $ROOT/ext/misc/zipfile.c
|
|
||||||
-INCLUDE $ROOT/ext/misc/sqlar.c
|
|
||||||
-#endif
|
|
||||||
+#include "sqlite3.h"
|
|
||||||
INCLUDE $ROOT/src/tclsqlite.c
|
|
||||||
|
|
||||||
const char *sqlite3_tclapp_init_proc(Tcl_Interp *interp){
|
|
||||||
(void)interp;
|
|
||||||
+ extern int sqlite3_appendvfs_init(sqlite3 *,char **, const sqlite3_api_routines *);
|
|
||||||
sqlite3_appendvfs_init(0,0,0);
|
|
||||||
-#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
- sqlite3_auto_extension((void(*)(void))sqlite3_sqlar_init);
|
|
||||||
- sqlite3_auto_extension((void(*)(void))sqlite3_zipfile_init);
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
return
|
|
||||||
BEGIN_STRING
|
|
@ -1,375 +0,0 @@
|
|||||||
Add initialization functions for internal usage in libsqlite3.so.
|
|
||||||
|
|
||||||
SQLite revision: 10e20c0b43500cfb9bbc0eaa061c57514f715d87238f4d835880cd846b9ebd1f
|
|
||||||
|
|
||||||
--- /ext/misc/amatch.c
|
|
||||||
+++ /ext/misc/amatch.c
|
|
||||||
@@ -1480,9 +1480,18 @@
|
|
||||||
|
|
||||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
|
|
||||||
+int sqlite3AmatchInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
+ rc = sqlite3_create_module(db, "approximate_match", &amatchModule, 0);
|
|
||||||
+#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
** Register the amatch virtual table
|
|
||||||
*/
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -1491,11 +1500,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Not used */
|
|
||||||
-#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
- rc = sqlite3_create_module(db, "approximate_match", &amatchModule, 0);
|
|
||||||
-#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3AmatchInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/carray.c
|
|
||||||
+++ /ext/misc/carray.c
|
|
||||||
@@ -498,16 +498,8 @@
|
|
||||||
|
|
||||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_carray_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3CarrayInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
rc = sqlite3_create_module(db, "carray", &carrayModule, 0);
|
|
||||||
#ifdef SQLITE_TEST
|
|
||||||
@@ -519,3 +511,18 @@
|
|
||||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_carray_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3CarrayInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/completion.c
|
|
||||||
+++ /ext/misc/completion.c
|
|
||||||
@@ -483,12 +483,13 @@
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
int sqlite3_completion_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
@@ -499,3 +500,4 @@
|
|
||||||
#endif
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/csv.c
|
|
||||||
+++ /ext/misc/csv.c
|
|
||||||
@@ -928,6 +928,22 @@
|
|
||||||
#endif /* !defined(SQLITE_OMIT_VIRTUALTABLE) */
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3CsvInit(sqlite3 *db){
|
|
||||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
+ int rc;
|
|
||||||
+ rc = sqlite3_create_module(db, "csv", &CsvModule, 0);
|
|
||||||
+#ifdef SQLITE_TEST
|
|
||||||
+ if( rc==SQLITE_OK ){
|
|
||||||
+ rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0);
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+ return rc;
|
|
||||||
+#else
|
|
||||||
+ return SQLITE_OK;
|
|
||||||
+#endif
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -941,17 +957,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
-#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
- int rc;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- rc = sqlite3_create_module(db, "csv", &CsvModule, 0);
|
|
||||||
-#ifdef SQLITE_TEST
|
|
||||||
- if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0);
|
|
||||||
- }
|
|
||||||
-#endif
|
|
||||||
- return rc;
|
|
||||||
-#else
|
|
||||||
- return SQLITE_OK;
|
|
||||||
-#endif
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3CsvInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/dbdata.c
|
|
||||||
+++ /ext/misc/dbdata.c
|
|
||||||
@@ -803,7 +803,7 @@
|
|
||||||
/*
|
|
||||||
** Invoke this routine to register the "sqlite_dbdata" virtual table module
|
|
||||||
*/
|
|
||||||
-static int sqlite3DbdataRegister(sqlite3 *db){
|
|
||||||
+int sqlite3DbdataRegister(sqlite3 *db){
|
|
||||||
static sqlite3_module dbdata_module = {
|
|
||||||
0, /* iVersion */
|
|
||||||
0, /* xCreate */
|
|
||||||
@@ -838,6 +838,7 @@
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -849,3 +850,4 @@
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
return sqlite3DbdataRegister(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/decimal.c
|
|
||||||
+++ /ext/misc/decimal.c
|
|
||||||
@@ -590,14 +590,7 @@
|
|
||||||
decimal_free(pB);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_decimal_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3DecimalInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
static const struct {
|
|
||||||
const char *zFuncName;
|
|
||||||
@@ -611,10 +604,6 @@
|
|
||||||
{ "decimal_mul", 2, decimalMulFunc },
|
|
||||||
};
|
|
||||||
unsigned int i;
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
-
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
-
|
|
||||||
for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){
|
|
||||||
rc = sqlite3_create_function(db, aFunc[i].zFuncName, aFunc[i].nArg,
|
|
||||||
SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_DETERMINISTIC,
|
|
||||||
@@ -632,3 +621,20 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_decimal_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+
|
|
||||||
+ return sqlite3DecimalInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/eval.c
|
|
||||||
+++ /ext/misc/eval.c
|
|
||||||
@@ -102,6 +102,20 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3EvalInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "eval", 1,
|
|
||||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
+ sqlEvalFunc, 0, 0);
|
|
||||||
+ if( rc==SQLITE_OK ){
|
|
||||||
+ rc = sqlite3_create_function(db, "eval", 2,
|
|
||||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
+ sqlEvalFunc, 0, 0);
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -110,16 +124,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "eval", 1,
|
|
||||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
- sqlEvalFunc, 0, 0);
|
|
||||||
- if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_function(db, "eval", 2,
|
|
||||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
- sqlEvalFunc, 0, 0);
|
|
||||||
- }
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3EvalInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/fileio.c
|
|
||||||
+++ /ext/misc/fileio.c
|
|
||||||
@@ -340,7 +340,7 @@
|
|
||||||
** This function does the work for the writefile() UDF. Refer to
|
|
||||||
** header comments at the top of this file for details.
|
|
||||||
*/
|
|
||||||
-static int writeFile(
|
|
||||||
+static int writeFileContents(
|
|
||||||
sqlite3_context *pCtx, /* Context to return bytes written in */
|
|
||||||
const char *zFile, /* File to write */
|
|
||||||
sqlite3_value *pData, /* Data to write */
|
|
||||||
@@ -480,10 +480,10 @@
|
|
||||||
mtime = sqlite3_value_int64(argv[3]);
|
|
||||||
}
|
|
||||||
|
|
||||||
- res = writeFile(context, zFile, argv[1], mode, mtime);
|
|
||||||
+ res = writeFileContents(context, zFile, argv[1], mode, mtime);
|
|
||||||
if( res==1 && errno==ENOENT ){
|
|
||||||
if( makeDirectory(zFile)==SQLITE_OK ){
|
|
||||||
- res = writeFile(context, zFile, argv[1], mode, mtime);
|
|
||||||
+ res = writeFileContents(context, zFile, argv[1], mode, mtime);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -970,18 +970,9 @@
|
|
||||||
# define fsdirRegister(x) SQLITE_OK
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_fileio_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3FileioInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "readfile", 1,
|
|
||||||
+ rc = sqlite3_create_function(db, "readfile", 1,
|
|
||||||
SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
readfileFunc, 0, 0);
|
|
||||||
if( rc==SQLITE_OK ){
|
|
||||||
@@ -998,3 +989,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_fileio_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3FileioInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/ieee754.c
|
|
||||||
+++ /ext/misc/ieee754.c
|
|
||||||
@@ -245,14 +245,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_ieee_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3IeeeInit(sqlite3 *db){
|
|
||||||
static const struct {
|
|
||||||
char *zFName;
|
|
||||||
int nArg;
|
|
||||||
@@ -269,13 +262,26 @@
|
|
||||||
};
|
|
||||||
unsigned int i;
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){
|
|
||||||
- rc = sqlite3_create_function(db, aFunc[i].zFName, aFunc[i].nArg,
|
|
||||||
+ rc = sqlite3_create_function(db, aFunc[i].zFName, aFunc[i].nArg,
|
|
||||||
SQLITE_UTF8|SQLITE_INNOCUOUS,
|
|
||||||
(void*)&aFunc[i].iAux,
|
|
||||||
aFunc[i].xFunc, 0, 0);
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_ieee_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3IeeeInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
@ -1,500 +0,0 @@
|
|||||||
Add initialization functions for internal usage in libsqlite3.so.
|
|
||||||
|
|
||||||
SQLite revision: 10e20c0b43500cfb9bbc0eaa061c57514f715d87238f4d835880cd846b9ebd1f
|
|
||||||
|
|
||||||
--- /ext/misc/nextchar.c
|
|
||||||
+++ /ext/misc/nextchar.c
|
|
||||||
@@ -286,17 +286,8 @@
|
|
||||||
sqlite3_free(c.aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_nextchar_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3NextcharInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
rc = sqlite3_create_function(db, "next_char", 3,
|
|
||||||
SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
nextCharFunc, 0, 0);
|
|
||||||
@@ -312,3 +303,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_nextchar_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3NextcharInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/percentile.c
|
|
||||||
+++ /ext/misc/percentile.c
|
|
||||||
@@ -202,6 +202,15 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3PercentileInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "percentile", 2,
|
|
||||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
+ 0, percentStep, percentFinal);
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -210,11 +219,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "percentile", 2,
|
|
||||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
- 0, percentStep, percentFinal);
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3PercentileInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/regexp.c
|
|
||||||
+++ /ext/misc/regexp.c
|
|
||||||
@@ -740,10 +740,18 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+int sqlite3RegexpInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "regexp", 2, SQLITE_UTF8|SQLITE_INNOCUOUS,
|
|
||||||
+ 0, re_sql_func, 0, 0);
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
** Invoke this routine to register the regexp() function with the
|
|
||||||
** SQLite database connection.
|
|
||||||
*/
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -752,9 +760,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- rc = sqlite3_create_function(db, "regexp", 2, SQLITE_UTF8|SQLITE_INNOCUOUS,
|
|
||||||
- 0, re_sql_func, 0, 0);
|
|
||||||
- return rc;
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3RegexpInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/series.c
|
|
||||||
+++ /ext/misc/series.c
|
|
||||||
@@ -413,6 +413,15 @@
|
|
||||||
|
|
||||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
|
|
||||||
+int sqlite3SeriesInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
+ rc = sqlite3_create_module(db, "generate_series", &seriesModule, 0);
|
|
||||||
+#endif
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -421,7 +430,6 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
if( sqlite3_libversion_number()<3008012 ){
|
|
||||||
@@ -429,7 +437,7 @@
|
|
||||||
"generate_series() requires SQLite 3.8.12 or later");
|
|
||||||
return SQLITE_ERROR;
|
|
||||||
}
|
|
||||||
- rc = sqlite3_create_module(db, "generate_series", &seriesModule, 0);
|
|
||||||
#endif
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3SeriesInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/sha1.c
|
|
||||||
+++ /ext/misc/sha1.c
|
|
||||||
@@ -175,7 +175,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Compute a string using sqlite3_vsnprintf() and hash it */
|
|
||||||
-static void hash_step_vformat(
|
|
||||||
+static void sha1_hash_step_vformat(
|
|
||||||
SHA1Context *p, /* Add content to this context */
|
|
||||||
const char *zFormat,
|
|
||||||
...
|
|
||||||
@@ -306,7 +306,7 @@
|
|
||||||
nCol = sqlite3_column_count(pStmt);
|
|
||||||
z = sqlite3_sql(pStmt);
|
|
||||||
n = (int)strlen(z);
|
|
||||||
- hash_step_vformat(&cx,"S%d:",n);
|
|
||||||
+ sha1_hash_step_vformat(&cx,"S%d:",n);
|
|
||||||
hash_step(&cx,(unsigned char*)z,n);
|
|
||||||
|
|
||||||
/* Compute a hash over the result of the query */
|
|
||||||
@@ -349,14 +349,14 @@
|
|
||||||
case SQLITE_TEXT: {
|
|
||||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
|
||||||
const unsigned char *z2 = sqlite3_column_text(pStmt, i);
|
|
||||||
- hash_step_vformat(&cx,"T%d:",n2);
|
|
||||||
+ sha1_hash_step_vformat(&cx,"T%d:",n2);
|
|
||||||
hash_step(&cx, z2, n2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SQLITE_BLOB: {
|
|
||||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
|
||||||
const unsigned char *z2 = sqlite3_column_blob(pStmt, i);
|
|
||||||
- hash_step_vformat(&cx,"B%d:",n2);
|
|
||||||
+ sha1_hash_step_vformat(&cx,"B%d:",n2);
|
|
||||||
hash_step(&cx, z2, n2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
@@ -370,6 +370,20 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3ShaInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "sha1", 1,
|
|
||||||
+ SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
|
||||||
+ 0, sha1Func, 0, 0);
|
|
||||||
+ if( rc==SQLITE_OK ){
|
|
||||||
+ rc = sqlite3_create_function(db, "sha1_query", 1,
|
|
||||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
+ sha1QueryFunc, 0, 0);
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -378,16 +392,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "sha1", 1,
|
|
||||||
- SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
|
||||||
- 0, sha1Func, 0, 0);
|
|
||||||
- if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_function(db, "sha1_query", 1,
|
|
||||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
- sha1QueryFunc, 0, 0);
|
|
||||||
- }
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3ShaInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/shathree.c
|
|
||||||
+++ /ext/misc/shathree.c
|
|
||||||
@@ -527,7 +527,7 @@
|
|
||||||
/* Compute a string using sqlite3_vsnprintf() with a maximum length
|
|
||||||
** of 50 bytes and add it to the hash.
|
|
||||||
*/
|
|
||||||
-static void hash_step_vformat(
|
|
||||||
+static void sha3_hash_step_vformat(
|
|
||||||
SHA3Context *p, /* Add content to this context */
|
|
||||||
const char *zFormat,
|
|
||||||
...
|
|
||||||
@@ -623,7 +623,7 @@
|
|
||||||
z = sqlite3_sql(pStmt);
|
|
||||||
if( z ){
|
|
||||||
n = (int)strlen(z);
|
|
||||||
- hash_step_vformat(&cx,"S%d:",n);
|
|
||||||
+ sha3_hash_step_vformat(&cx,"S%d:",n);
|
|
||||||
SHA3Update(&cx,(unsigned char*)z,n);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -667,14 +667,14 @@
|
|
||||||
case SQLITE_TEXT: {
|
|
||||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
|
||||||
const unsigned char *z2 = sqlite3_column_text(pStmt, i);
|
|
||||||
- hash_step_vformat(&cx,"T%d:",n2);
|
|
||||||
+ sha3_hash_step_vformat(&cx,"T%d:",n2);
|
|
||||||
SHA3Update(&cx, z2, n2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SQLITE_BLOB: {
|
|
||||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
|
||||||
const unsigned char *z2 = sqlite3_column_blob(pStmt, i);
|
|
||||||
- hash_step_vformat(&cx,"B%d:",n2);
|
|
||||||
+ sha3_hash_step_vformat(&cx,"B%d:",n2);
|
|
||||||
SHA3Update(&cx, z2, n2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
@@ -687,17 +687,8 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_shathree_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3ShathreeInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
rc = sqlite3_create_function(db, "sha3", 1,
|
|
||||||
SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
|
||||||
0, sha3Func, 0, 0);
|
|
||||||
@@ -718,3 +709,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_shathree_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3ShathreeInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/sqlar.c
|
|
||||||
+++ /ext/misc/sqlar.c
|
|
||||||
@@ -14,6 +14,8 @@
|
|
||||||
** for working with sqlar archives and used by the shell tool's built-in
|
|
||||||
** sqlar support.
|
|
||||||
*/
|
|
||||||
+#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
+
|
|
||||||
#include "sqlite3ext.h"
|
|
||||||
SQLITE_EXTENSION_INIT1
|
|
||||||
#include <zlib.h>
|
|
||||||
@@ -101,6 +103,20 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3SqlarInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "sqlar_compress", 1,
|
|
||||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
+ sqlarCompressFunc, 0, 0);
|
|
||||||
+ if( rc==SQLITE_OK ){
|
|
||||||
+ rc = sqlite3_create_function(db, "sqlar_uncompress", 2,
|
|
||||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
+ sqlarUncompressFunc, 0, 0);
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -109,16 +125,10 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "sqlar_compress", 1,
|
|
||||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
- sqlarCompressFunc, 0, 0);
|
|
||||||
- if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_function(db, "sqlar_uncompress", 2,
|
|
||||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
- sqlarUncompressFunc, 0, 0);
|
|
||||||
- }
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3SqlarInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
+
|
|
||||||
+#endif /* SQLITE_HAVE_ZLIB */
|
|
||||||
--- /ext/misc/totype.c
|
|
||||||
+++ /ext/misc/totype.c
|
|
||||||
@@ -491,17 +491,8 @@
|
|
||||||
#pragma warning(default: 4748)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_totype_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3TotypeInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
rc = sqlite3_create_function(db, "tointeger", 1,
|
|
||||||
SQLITE_UTF8 | SQLITE_DETERMINISTIC | SQLITE_INNOCUOUS, 0,
|
|
||||||
tointegerFunc, 0, 0);
|
|
||||||
@@ -512,3 +503,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_totype_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3TotypeInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/uint.c
|
|
||||||
+++ /ext/misc/uint.c
|
|
||||||
@@ -78,6 +78,11 @@
|
|
||||||
return (nKey1 - i) - (nKey2 - j);
|
|
||||||
}
|
|
||||||
|
|
||||||
+int sqlite3UintInit(sqlite3 *db){
|
|
||||||
+ return sqlite3_create_collation(db, "UINT", SQLITE_UTF8, 0, uintCollFunc);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -88,5 +93,6 @@
|
|
||||||
){
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- return sqlite3_create_collation(db, "uint", SQLITE_UTF8, 0, uintCollFunc);
|
|
||||||
+ return sqlite3UintInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/uuid.c
|
|
||||||
+++ /ext/misc/uuid.c
|
|
||||||
@@ -206,21 +206,12 @@
|
|
||||||
sqlite3_result_blob(context, pBlob, 16, SQLITE_TRANSIENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_uuid_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3UuidInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
rc = sqlite3_create_function(db, "uuid", 0, SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
sqlite3UuidFunc, 0, 0);
|
|
||||||
if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_function(db, "uuid_str", 1,
|
|
||||||
+ rc = sqlite3_create_function(db, "uuid_str", 1,
|
|
||||||
SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_DETERMINISTIC,
|
|
||||||
0, sqlite3UuidStrFunc, 0, 0);
|
|
||||||
}
|
|
||||||
@@ -231,3 +222,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_uuid_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3UuidInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/zipfile.c
|
|
||||||
+++ /ext/misc/zipfile.c
|
|
||||||
@@ -24,6 +24,8 @@
|
|
||||||
** * No support for zip64 extensions
|
|
||||||
** * Only the "inflate/deflate" (zlib) compression method is supported
|
|
||||||
*/
|
|
||||||
+#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
+
|
|
||||||
#include "sqlite3ext.h"
|
|
||||||
SQLITE_EXTENSION_INIT1
|
|
||||||
#include <stdio.h>
|
|
||||||
@@ -2139,7 +2141,7 @@
|
|
||||||
/*
|
|
||||||
** Register the "zipfile" virtual table.
|
|
||||||
*/
|
|
||||||
-static int zipfileRegister(sqlite3 *db){
|
|
||||||
+int sqlite3ZipfileInit(sqlite3 *db){
|
|
||||||
static sqlite3_module zipfileModule = {
|
|
||||||
1, /* iVersion */
|
|
||||||
zipfileConnect, /* xCreate */
|
|
||||||
@@ -2173,9 +2175,10 @@
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
#else /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
-# define zipfileRegister(x) SQLITE_OK
|
|
||||||
+# define sqlite3ZipfileInit(x) SQLITE_OK
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -2186,5 +2189,8 @@
|
|
||||||
){
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- return zipfileRegister(db);
|
|
||||||
+ return sqlite3ZipfileInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
+
|
|
||||||
+#endif /* SQLITE_HAVE_ZLIB */
|
|
@ -1,291 +0,0 @@
|
|||||||
Move some code to libsqlite3.so to avoid duplication.
|
|
||||||
Link executables against libsqlite3.so.
|
|
||||||
Increase timeout for fuzzcheck.
|
|
||||||
Update list of optionally available functions.
|
|
||||||
Fix building with dlopen() not available.
|
|
||||||
|
|
||||||
SQLite revision: 10e20c0b43500cfb9bbc0eaa061c57514f715d87238f4d835880cd846b9ebd1f
|
|
||||||
|
|
||||||
--- /Makefile.in
|
|
||||||
+++ /Makefile.in
|
|
||||||
@@ -313,6 +313,9 @@
|
|
||||||
# Source code for extensions
|
|
||||||
#
|
|
||||||
SRC += \
|
|
||||||
+ $(TOP)/ext/expert/sqlite3expert.c \
|
|
||||||
+ $(TOP)/ext/expert/sqlite3expert.h
|
|
||||||
+SRC += \
|
|
||||||
$(TOP)/ext/fts1/fts1.c \
|
|
||||||
$(TOP)/ext/fts1/fts1.h \
|
|
||||||
$(TOP)/ext/fts1/fts1_hash.c \
|
|
||||||
@@ -365,8 +368,29 @@
|
|
||||||
$(TOP)/ext/rbu/sqlite3rbu.h \
|
|
||||||
$(TOP)/ext/rbu/sqlite3rbu.c
|
|
||||||
SRC += \
|
|
||||||
+ $(TOP)/ext/misc/amatch.c \
|
|
||||||
+ $(TOP)/ext/misc/appendvfs.c \
|
|
||||||
+ $(TOP)/ext/misc/carray.c \
|
|
||||||
+ $(TOP)/ext/misc/completion.c \
|
|
||||||
+ $(TOP)/ext/misc/csv.c \
|
|
||||||
+ $(TOP)/ext/misc/dbdata.c \
|
|
||||||
+ $(TOP)/ext/misc/decimal.c \
|
|
||||||
+ $(TOP)/ext/misc/eval.c \
|
|
||||||
+ $(TOP)/ext/misc/fileio.c \
|
|
||||||
+ $(TOP)/ext/misc/ieee754.c \
|
|
||||||
$(TOP)/ext/misc/json1.c \
|
|
||||||
- $(TOP)/ext/misc/stmt.c
|
|
||||||
+ $(TOP)/ext/misc/nextchar.c \
|
|
||||||
+ $(TOP)/ext/misc/percentile.c \
|
|
||||||
+ $(TOP)/ext/misc/regexp.c \
|
|
||||||
+ $(TOP)/ext/misc/series.c \
|
|
||||||
+ $(TOP)/ext/misc/sha1.c \
|
|
||||||
+ $(TOP)/ext/misc/shathree.c \
|
|
||||||
+ $(TOP)/ext/misc/sqlar.c \
|
|
||||||
+ $(TOP)/ext/misc/stmt.c \
|
|
||||||
+ $(TOP)/ext/misc/totype.c \
|
|
||||||
+ $(TOP)/ext/misc/uint.c \
|
|
||||||
+ $(TOP)/ext/misc/uuid.c \
|
|
||||||
+ $(TOP)/ext/misc/zipfile.c
|
|
||||||
|
|
||||||
# Generated source code files
|
|
||||||
#
|
|
||||||
@@ -437,35 +461,21 @@
|
|
||||||
# Statically linked extensions
|
|
||||||
#
|
|
||||||
TESTSRC += \
|
|
||||||
- $(TOP)/ext/expert/sqlite3expert.c \
|
|
||||||
$(TOP)/ext/expert/test_expert.c \
|
|
||||||
- $(TOP)/ext/misc/amatch.c \
|
|
||||||
- $(TOP)/ext/misc/carray.c \
|
|
||||||
$(TOP)/ext/misc/cksumvfs.c \
|
|
||||||
$(TOP)/ext/misc/closure.c \
|
|
||||||
- $(TOP)/ext/misc/csv.c \
|
|
||||||
- $(TOP)/ext/misc/decimal.c \
|
|
||||||
- $(TOP)/ext/misc/eval.c \
|
|
||||||
$(TOP)/ext/misc/explain.c \
|
|
||||||
- $(TOP)/ext/misc/fileio.c \
|
|
||||||
$(TOP)/ext/misc/fuzzer.c \
|
|
||||||
$(TOP)/ext/fts5/fts5_tcl.c \
|
|
||||||
$(TOP)/ext/fts5/fts5_test_mi.c \
|
|
||||||
$(TOP)/ext/fts5/fts5_test_tok.c \
|
|
||||||
- $(TOP)/ext/misc/ieee754.c \
|
|
||||||
$(TOP)/ext/misc/mmapwarm.c \
|
|
||||||
- $(TOP)/ext/misc/nextchar.c \
|
|
||||||
$(TOP)/ext/misc/normalize.c \
|
|
||||||
- $(TOP)/ext/misc/percentile.c \
|
|
||||||
$(TOP)/ext/misc/prefixes.c \
|
|
||||||
- $(TOP)/ext/misc/regexp.c \
|
|
||||||
$(TOP)/ext/misc/remember.c \
|
|
||||||
- $(TOP)/ext/misc/series.c \
|
|
||||||
$(TOP)/ext/misc/spellfix.c \
|
|
||||||
- $(TOP)/ext/misc/totype.c \
|
|
||||||
$(TOP)/ext/misc/unionvtab.c \
|
|
||||||
$(TOP)/ext/misc/wholenumber.c \
|
|
||||||
- $(TOP)/ext/misc/zipfile.c \
|
|
||||||
$(TOP)/ext/userauth/userauth.c
|
|
||||||
|
|
||||||
# Source code to the library files needed by the test fixture
|
|
||||||
@@ -647,25 +657,25 @@
|
|
||||||
|
|
||||||
libtclsqlite3.la: tclsqlite.lo libsqlite3.la
|
|
||||||
$(LTLINK) -no-undefined -o $@ tclsqlite.lo \
|
|
||||||
- libsqlite3.la @TCL_STUB_LIB_SPEC@ $(TLIBS) \
|
|
||||||
+ libsqlite3.la @TCL_STUB_LIB_SPEC@ \
|
|
||||||
-rpath "$(TCLLIBDIR)" \
|
|
||||||
-version-info "8:6:8" \
|
|
||||||
-avoid-version
|
|
||||||
|
|
||||||
-sqlite3$(TEXE): shell.c sqlite3.c
|
|
||||||
- $(LTLINK) $(READLINE_FLAGS) $(SHELL_OPT) -o $@ \
|
|
||||||
- shell.c sqlite3.c \
|
|
||||||
- $(LIBREADLINE) $(TLIBS) -rpath "$(libdir)"
|
|
||||||
+sqlite3$(TEXE): shell.c libsqlite3.la
|
|
||||||
+ $(LTLINK) $(READLINE_FLAGS) -o $@ \
|
|
||||||
+ shell.c libsqlite3.la \
|
|
||||||
+ $(LIBREADLINE)
|
|
||||||
|
|
||||||
-sqldiff$(TEXE): $(TOP)/tool/sqldiff.c sqlite3.lo sqlite3.h
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c sqlite3.lo $(TLIBS)
|
|
||||||
+sqldiff$(TEXE): $(TOP)/tool/sqldiff.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c libsqlite3.la
|
|
||||||
|
|
||||||
-dbhash$(TEXE): $(TOP)/tool/dbhash.c sqlite3.lo sqlite3.h
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/dbhash.c sqlite3.lo $(TLIBS)
|
|
||||||
+dbhash$(TEXE): $(TOP)/tool/dbhash.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/dbhash.c libsqlite3.la
|
|
||||||
|
|
||||||
-scrub$(TEXE): $(TOP)/ext/misc/scrub.c sqlite3.lo
|
|
||||||
+scrub$(TEXE): $(TOP)/ext/misc/scrub.c libsqlite3.la
|
|
||||||
$(LTLINK) -o $@ -I. -DSCRUB_STANDALONE \
|
|
||||||
- $(TOP)/ext/misc/scrub.c sqlite3.lo $(TLIBS)
|
|
||||||
+ $(TOP)/ext/misc/scrub.c libsqlite3.la
|
|
||||||
|
|
||||||
srcck1$(BEXE): $(TOP)/tool/srcck1.c
|
|
||||||
$(BCC) -o srcck1$(BEXE) $(TOP)/tool/srcck1.c
|
|
||||||
@@ -776,7 +786,7 @@
|
|
||||||
# Rule to build the amalgamation
|
|
||||||
#
|
|
||||||
sqlite3.lo: sqlite3.c
|
|
||||||
- $(LTCOMPILE) $(TEMP_STORE) -c sqlite3.c
|
|
||||||
+ $(LTCOMPILE) $(SHELL_OPT) $(TEMP_STORE) -c sqlite3.c
|
|
||||||
|
|
||||||
# Rules to build the LEMON compiler generator
|
|
||||||
#
|
|
||||||
@@ -1082,18 +1092,6 @@
|
|
||||||
# Source files that go into making shell.c
|
|
||||||
SHELL_SRC = \
|
|
||||||
$(TOP)/src/shell.c.in \
|
|
||||||
- $(TOP)/ext/misc/appendvfs.c \
|
|
||||||
- $(TOP)/ext/misc/completion.c \
|
|
||||||
- $(TOP)/ext/misc/decimal.c \
|
|
||||||
- $(TOP)/ext/misc/fileio.c \
|
|
||||||
- $(TOP)/ext/misc/ieee754.c \
|
|
||||||
- $(TOP)/ext/misc/series.c \
|
|
||||||
- $(TOP)/ext/misc/shathree.c \
|
|
||||||
- $(TOP)/ext/misc/sqlar.c \
|
|
||||||
- $(TOP)/ext/misc/uint.c \
|
|
||||||
- $(TOP)/ext/expert/sqlite3expert.c \
|
|
||||||
- $(TOP)/ext/expert/sqlite3expert.h \
|
|
||||||
- $(TOP)/ext/misc/zipfile.c \
|
|
||||||
$(TOP)/ext/misc/memtrace.c \
|
|
||||||
$(TOP)/src/test_windirent.c
|
|
||||||
|
|
||||||
@@ -1263,11 +1261,11 @@
|
|
||||||
|
|
||||||
# Fuzz testing
|
|
||||||
fuzztest: fuzzcheck$(TEXE) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
|
|
||||||
- ./fuzzcheck$(TEXE) $(FUZZDATA)
|
|
||||||
+ ./fuzzcheck$(TEXE) --timeout 3600 $(FUZZDATA)
|
|
||||||
./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
|
|
||||||
|
|
||||||
valgrindfuzz: fuzzcheck$(TEXT) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
|
|
||||||
- valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 600 $(FUZZDATA)
|
|
||||||
+ valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 3600 $(FUZZDATA)
|
|
||||||
valgrind ./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
|
|
||||||
|
|
||||||
# The veryquick.test TCL tests.
|
|
||||||
@@ -1301,24 +1299,23 @@
|
|
||||||
shelltest: $(TESTPROGS)
|
|
||||||
./testfixture$(TEXT) $(TOP)/test/permutations.test shell
|
|
||||||
|
|
||||||
-sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
|
|
||||||
+sqlite3_analyzer.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
|
|
||||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in >sqlite3_analyzer.c
|
|
||||||
|
|
||||||
-sqlite3_analyzer$(TEXE): sqlite3_analyzer.c
|
|
||||||
- $(LTLINK) sqlite3_analyzer.c -o $@ $(LIBTCL) $(TLIBS)
|
|
||||||
+sqlite3_analyzer$(TEXE): sqlite3_analyzer.c libsqlite3.la
|
|
||||||
+ $(LTLINK) sqlite3_analyzer.c -o $@ libsqlite3.la $(LIBTCL)
|
|
||||||
|
|
||||||
-sqltclsh.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/ext/misc/appendvfs.c $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
|
|
||||||
+sqltclsh.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
|
|
||||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in >sqltclsh.c
|
|
||||||
|
|
||||||
-sqltclsh$(TEXE): sqltclsh.c
|
|
||||||
- $(LTLINK) sqltclsh.c -o $@ $(LIBTCL) $(TLIBS)
|
|
||||||
+sqltclsh$(TEXE): sqltclsh.c libsqlite3.la
|
|
||||||
+ $(LTLINK) sqltclsh.c -o $@ libsqlite3.la $(LIBTCL)
|
|
||||||
|
|
||||||
-sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c
|
|
||||||
- $(LTLINK) $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c -o sqlite3_expert $(TLIBS)
|
|
||||||
+sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/expert.c libsqlite3.la
|
|
||||||
+ $(LTLINK) $(TOP)/ext/expert/expert.c -o sqlite3_expert libsqlite3.la
|
|
||||||
|
|
||||||
CHECKER_DEPS =\
|
|
||||||
$(TOP)/tool/mkccode.tcl \
|
|
||||||
- sqlite3.c \
|
|
||||||
$(TOP)/src/tclsqlite.c \
|
|
||||||
$(TOP)/ext/repair/sqlite3_checker.tcl \
|
|
||||||
$(TOP)/ext/repair/checkindex.c \
|
|
||||||
@@ -1329,36 +1326,36 @@
|
|
||||||
sqlite3_checker.c: $(CHECKER_DEPS)
|
|
||||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/ext/repair/sqlite3_checker.c.in >$@
|
|
||||||
|
|
||||||
-sqlite3_checker$(TEXE): sqlite3_checker.c
|
|
||||||
- $(LTLINK) sqlite3_checker.c -o $@ $(LIBTCL) $(TLIBS)
|
|
||||||
+sqlite3_checker$(TEXE): sqlite3_checker.c libsqlite3.la
|
|
||||||
+ $(LTLINK) sqlite3_checker.c -o $@ libsqlite3.la $(LIBTCL)
|
|
||||||
|
|
||||||
-dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c sqlite3.lo
|
|
||||||
+dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c libsqlite3.la
|
|
||||||
$(LTLINK) -DDBDUMP_STANDALONE -o $@ \
|
|
||||||
- $(TOP)/ext/misc/dbdump.c sqlite3.lo $(TLIBS)
|
|
||||||
+ $(TOP)/ext/misc/dbdump.c libsqlite3.la
|
|
||||||
|
|
||||||
-dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
|
|
||||||
- $(LTLINK)-o $@ $(TOP)/tool/dbtotxt.c
|
|
||||||
+dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/dbtotxt.c
|
|
||||||
|
|
||||||
-showdb$(TEXE): $(TOP)/tool/showdb.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/showdb.c sqlite3.lo $(TLIBS)
|
|
||||||
+showdb$(TEXE): $(TOP)/tool/showdb.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/showdb.c libsqlite3.la
|
|
||||||
|
|
||||||
-showstat4$(TEXE): $(TOP)/tool/showstat4.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/showstat4.c sqlite3.lo $(TLIBS)
|
|
||||||
+showstat4$(TEXE): $(TOP)/tool/showstat4.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/showstat4.c libsqlite3.la
|
|
||||||
|
|
||||||
-showjournal$(TEXE): $(TOP)/tool/showjournal.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/showjournal.c sqlite3.lo $(TLIBS)
|
|
||||||
+showjournal$(TEXE): $(TOP)/tool/showjournal.c
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/showjournal.c
|
|
||||||
|
|
||||||
-showwal$(TEXE): $(TOP)/tool/showwal.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/showwal.c sqlite3.lo $(TLIBS)
|
|
||||||
+showwal$(TEXE): $(TOP)/tool/showwal.c
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/showwal.c
|
|
||||||
|
|
||||||
showshm$(TEXE): $(TOP)/tool/showshm.c
|
|
||||||
$(LTLINK) -o $@ $(TOP)/tool/showshm.c
|
|
||||||
|
|
||||||
-index_usage$(TEXE): $(TOP)/tool/index_usage.c sqlite3.lo
|
|
||||||
- $(LTLINK) $(SHELL_OPT) -o $@ $(TOP)/tool/index_usage.c sqlite3.lo $(TLIBS)
|
|
||||||
+index_usage$(TEXE): $(TOP)/tool/index_usage.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/index_usage.c libsqlite3.la
|
|
||||||
|
|
||||||
-changeset$(TEXE): $(TOP)/ext/session/changeset.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c sqlite3.lo $(TLIBS)
|
|
||||||
+changeset$(TEXE): $(TOP)/ext/session/changeset.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c libsqlite3.la
|
|
||||||
|
|
||||||
changesetfuzz$(TEXE): $(TOP)/ext/session/changesetfuzz.c sqlite3.lo
|
|
||||||
$(LTLINK) -o $@ $(TOP)/ext/session/changesetfuzz.c sqlite3.lo $(TLIBS)
|
|
||||||
@@ -1383,11 +1380,11 @@
|
|
||||||
kvtest$(TEXE): $(TOP)/test/kvtest.c sqlite3.c
|
|
||||||
$(LTLINK) $(KV_OPT) -o $@ $(TOP)/test/kvtest.c sqlite3.c $(TLIBS)
|
|
||||||
|
|
||||||
-rbu$(EXE): $(TOP)/ext/rbu/rbu.c $(TOP)/ext/rbu/sqlite3rbu.c sqlite3.lo
|
|
||||||
- $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c sqlite3.lo $(TLIBS)
|
|
||||||
+rbu$(EXE): $(TOP)/ext/rbu/rbu.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c libsqlite3.la
|
|
||||||
|
|
||||||
-loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
|
|
||||||
- $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@ $(TLIBS)
|
|
||||||
+loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
|
|
||||||
+ $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@
|
|
||||||
|
|
||||||
# This target will fail if the SQLite amalgamation contains any exported
|
|
||||||
# symbols that do not begin with "sqlite3_". It is run as part of the
|
|
||||||
--- /configure.ac
|
|
||||||
+++ /configure.ac
|
|
||||||
@@ -108,7 +108,7 @@
|
|
||||||
#########
|
|
||||||
# Figure out whether or not we have these functions
|
|
||||||
#
|
|
||||||
-AC_CHECK_FUNCS([fdatasync gmtime_r isnan localtime_r localtime_s malloc_usable_size strchrnul usleep utime pread pread64 pwrite pwrite64])
|
|
||||||
+AC_CHECK_FUNCS([fdatasync fullfsync gmtime_r isnan localtime_r localtime_s malloc_usable_size posix_fallocate pread pread64 pwrite pwrite64 strchrnul usleep utime])
|
|
||||||
|
|
||||||
#########
|
|
||||||
# By default, we use the amalgamation (this may be changed below...)
|
|
||||||
@@ -582,6 +582,9 @@
|
|
||||||
if test "${enable_load_extension}" = "yes" ; then
|
|
||||||
OPT_FEATURE_FLAGS=""
|
|
||||||
AC_SEARCH_LIBS(dlopen, dl)
|
|
||||||
+ if test "${ac_cv_search_dlopen}" = "no" ; then
|
|
||||||
+ OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
|
|
||||||
+ fi
|
|
||||||
else
|
|
||||||
OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
|
|
||||||
fi
|
|
@ -1,441 +0,0 @@
|
|||||||
Move some code to libsqlite3.so to avoid duplication.
|
|
||||||
Initialize some extensions in libsqlite3.so.
|
|
||||||
Update test suite.
|
|
||||||
|
|
||||||
SQLite revision: 10e20c0b43500cfb9bbc0eaa061c57514f715d87238f4d835880cd846b9ebd1f
|
|
||||||
|
|
||||||
--- /ext/repair/sqlite3_checker.c.in
|
|
||||||
+++ /ext/repair/sqlite3_checker.c.in
|
|
||||||
@@ -2,6 +2,7 @@
|
|
||||||
** Read an SQLite database file and analyze its space utilization. Generate
|
|
||||||
** text on standard output.
|
|
||||||
*/
|
|
||||||
+#define SQLITE_CORE 1
|
|
||||||
#define TCLSH_INIT_PROC sqlite3_checker_init_proc
|
|
||||||
#define SQLITE_ENABLE_DBPAGE_VTAB 1
|
|
||||||
#define SQLITE_ENABLE_JSON1 1
|
|
||||||
@@ -14,7 +15,7 @@
|
|
||||||
#define SQLITE_OMIT_SHARED_CACHE 1
|
|
||||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
|
||||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
|
||||||
-INCLUDE sqlite3.c
|
|
||||||
+#include "sqlite3.h"
|
|
||||||
INCLUDE $ROOT/src/tclsqlite.c
|
|
||||||
INCLUDE $ROOT/ext/misc/btreeinfo.c
|
|
||||||
INCLUDE $ROOT/ext/repair/checkindex.c
|
|
||||||
--- /src/main.c
|
|
||||||
+++ /src/main.c
|
|
||||||
@@ -50,12 +50,36 @@
|
|
||||||
#ifdef SQLITE_ENABLE_FTS5
|
|
||||||
int sqlite3Fts5Init(sqlite3*);
|
|
||||||
#endif
|
|
||||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
|
||||||
+int sqlite3DbdataRegister(sqlite3*);
|
|
||||||
+#endif
|
|
||||||
#ifdef SQLITE_ENABLE_JSON1
|
|
||||||
int sqlite3Json1Init(sqlite3*);
|
|
||||||
#endif
|
|
||||||
#ifdef SQLITE_ENABLE_STMTVTAB
|
|
||||||
int sqlite3StmtVtabInit(sqlite3*);
|
|
||||||
#endif
|
|
||||||
+int sqlite3AmatchInit(sqlite3*);
|
|
||||||
+int sqlite3CarrayInit(sqlite3*);
|
|
||||||
+int sqlite3CompletionVtabInit(sqlite3*);
|
|
||||||
+int sqlite3CsvInit(sqlite3*);
|
|
||||||
+int sqlite3DecimalInit(sqlite3*);
|
|
||||||
+int sqlite3EvalInit(sqlite3*);
|
|
||||||
+int sqlite3FileioInit(sqlite3*);
|
|
||||||
+int sqlite3IeeeInit(sqlite3*);
|
|
||||||
+int sqlite3NextcharInit(sqlite3*);
|
|
||||||
+int sqlite3PercentileInit(sqlite3*);
|
|
||||||
+int sqlite3RegexpInit(sqlite3*);
|
|
||||||
+int sqlite3SeriesInit(sqlite3*);
|
|
||||||
+int sqlite3ShaInit(sqlite3*);
|
|
||||||
+int sqlite3ShathreeInit(sqlite3*);
|
|
||||||
+int sqlite3TotypeInit(sqlite3*);
|
|
||||||
+int sqlite3UintInit(sqlite3*);
|
|
||||||
+int sqlite3UuidInit(sqlite3*);
|
|
||||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_HAVE_ZLIB)
|
|
||||||
+int sqlite3ZipfileInit(sqlite3*);
|
|
||||||
+int sqlite3SqlarInit(sqlite3*);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
** An array of pointers to extension initializer functions for
|
|
||||||
@@ -83,6 +107,9 @@
|
|
||||||
#ifdef SQLITE_ENABLE_DBPAGE_VTAB
|
|
||||||
sqlite3DbpageRegister,
|
|
||||||
#endif
|
|
||||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
|
||||||
+ sqlite3DbdataRegister,
|
|
||||||
+#endif
|
|
||||||
#ifdef SQLITE_ENABLE_DBSTAT_VTAB
|
|
||||||
sqlite3DbstatRegister,
|
|
||||||
#endif
|
|
||||||
@@ -96,6 +123,27 @@
|
|
||||||
#ifdef SQLITE_ENABLE_BYTECODE_VTAB
|
|
||||||
sqlite3VdbeBytecodeVtabInit,
|
|
||||||
#endif
|
|
||||||
+ sqlite3AmatchInit,
|
|
||||||
+ sqlite3CarrayInit,
|
|
||||||
+ sqlite3CompletionVtabInit,
|
|
||||||
+ sqlite3CsvInit,
|
|
||||||
+ sqlite3DecimalInit,
|
|
||||||
+ sqlite3EvalInit,
|
|
||||||
+ sqlite3FileioInit,
|
|
||||||
+ sqlite3IeeeInit,
|
|
||||||
+ sqlite3NextcharInit,
|
|
||||||
+ sqlite3PercentileInit,
|
|
||||||
+ sqlite3RegexpInit,
|
|
||||||
+ sqlite3SeriesInit,
|
|
||||||
+ sqlite3ShaInit,
|
|
||||||
+ sqlite3ShathreeInit,
|
|
||||||
+ sqlite3TotypeInit,
|
|
||||||
+ sqlite3UintInit,
|
|
||||||
+ sqlite3UuidInit,
|
|
||||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_HAVE_ZLIB)
|
|
||||||
+ sqlite3ZipfileInit,
|
|
||||||
+ sqlite3SqlarInit,
|
|
||||||
+#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifndef SQLITE_AMALGAMATION
|
|
||||||
--- /src/shell.c.in
|
|
||||||
+++ /src/shell.c.in
|
|
||||||
@@ -69,6 +69,7 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <assert.h>
|
|
||||||
#include "sqlite3.h"
|
|
||||||
+#include "ext/expert/sqlite3expert.h"
|
|
||||||
typedef sqlite3_int64 i64;
|
|
||||||
typedef sqlite3_uint64 u64;
|
|
||||||
typedef unsigned char u8;
|
|
||||||
@@ -135,6 +136,10 @@
|
|
||||||
# define SHELL_USE_LOCAL_GETLINE 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
+#include <zlib.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
|
|
||||||
#if defined(_WIN32) || defined(WIN32)
|
|
||||||
# if SQLITE_OS_WINRT
|
|
||||||
@@ -1018,25 +1023,7 @@
|
|
||||||
INCLUDE test_windirent.c
|
|
||||||
#define dirent DIRENT
|
|
||||||
#endif
|
|
||||||
-INCLUDE ../ext/misc/shathree.c
|
|
||||||
-INCLUDE ../ext/misc/fileio.c
|
|
||||||
-INCLUDE ../ext/misc/completion.c
|
|
||||||
-INCLUDE ../ext/misc/appendvfs.c
|
|
||||||
INCLUDE ../ext/misc/memtrace.c
|
|
||||||
-INCLUDE ../ext/misc/uint.c
|
|
||||||
-INCLUDE ../ext/misc/decimal.c
|
|
||||||
-INCLUDE ../ext/misc/ieee754.c
|
|
||||||
-INCLUDE ../ext/misc/series.c
|
|
||||||
-#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
-INCLUDE ../ext/misc/zipfile.c
|
|
||||||
-INCLUDE ../ext/misc/sqlar.c
|
|
||||||
-#endif
|
|
||||||
-INCLUDE ../ext/expert/sqlite3expert.h
|
|
||||||
-INCLUDE ../ext/expert/sqlite3expert.c
|
|
||||||
-
|
|
||||||
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
|
||||||
-INCLUDE ../ext/misc/dbdata.c
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
#if defined(SQLITE_ENABLE_SESSION)
|
|
||||||
/*
|
|
||||||
@@ -4608,20 +4595,6 @@
|
|
||||||
#ifndef SQLITE_OMIT_LOAD_EXTENSION
|
|
||||||
sqlite3_enable_load_extension(p->db, 1);
|
|
||||||
#endif
|
|
||||||
- sqlite3_fileio_init(p->db, 0, 0);
|
|
||||||
- sqlite3_shathree_init(p->db, 0, 0);
|
|
||||||
- sqlite3_completion_init(p->db, 0, 0);
|
|
||||||
- sqlite3_uint_init(p->db, 0, 0);
|
|
||||||
- sqlite3_decimal_init(p->db, 0, 0);
|
|
||||||
- sqlite3_ieee_init(p->db, 0, 0);
|
|
||||||
- sqlite3_series_init(p->db, 0, 0);
|
|
||||||
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
|
||||||
- sqlite3_dbdata_init(p->db, 0, 0);
|
|
||||||
-#endif
|
|
||||||
-#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
- sqlite3_zipfile_init(p->db, 0, 0);
|
|
||||||
- sqlite3_sqlar_init(p->db, 0, 0);
|
|
||||||
-#endif
|
|
||||||
sqlite3_create_function(p->db, "shell_add_schema", 3, SQLITE_UTF8, 0,
|
|
||||||
shellAddSchemaName, 0, 0);
|
|
||||||
sqlite3_create_function(p->db, "shell_module_schema", 1, SQLITE_UTF8, 0,
|
|
||||||
@@ -6644,8 +6617,6 @@
|
|
||||||
);
|
|
||||||
goto end_ar_command;
|
|
||||||
}
|
|
||||||
- sqlite3_fileio_init(cmd.db, 0, 0);
|
|
||||||
- sqlite3_sqlar_init(cmd.db, 0, 0);
|
|
||||||
sqlite3_create_function(cmd.db, "shell_putsnl", 1, SQLITE_UTF8, cmd.p,
|
|
||||||
shellPutsFunc, 0, 0);
|
|
||||||
|
|
||||||
@@ -11076,6 +11047,7 @@
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
data.out = stdout;
|
|
||||||
+ extern int sqlite3_appendvfs_init(sqlite3 *, char **, const sqlite3_api_routines *);
|
|
||||||
sqlite3_appendvfs_init(0,0,0);
|
|
||||||
|
|
||||||
/* Go ahead and open the database file if it already exists. If the
|
|
||||||
--- /src/test_config.c
|
|
||||||
+++ /src/test_config.c
|
|
||||||
@@ -353,6 +353,8 @@
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "datetime", "1", TCL_GLOBAL_ONLY);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ Tcl_SetVar2(interp, "sqlite_options", "decimal", "1", TCL_GLOBAL_ONLY);
|
|
||||||
+
|
|
||||||
#ifdef SQLITE_OMIT_DECLTYPE
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "decltype", "0", TCL_GLOBAL_ONLY);
|
|
||||||
#else
|
|
||||||
@@ -540,6 +542,8 @@
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "progress", "1", TCL_GLOBAL_ONLY);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ Tcl_SetVar2(interp, "sqlite_options", "regexp", "1", TCL_GLOBAL_ONLY);
|
|
||||||
+
|
|
||||||
#ifdef SQLITE_OMIT_REINDEX
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "reindex", "0", TCL_GLOBAL_ONLY);
|
|
||||||
#else
|
|
||||||
@@ -662,6 +666,8 @@
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "truncate_opt", "1", TCL_GLOBAL_ONLY);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ Tcl_SetVar2(interp, "sqlite_options", "uint", "1", TCL_GLOBAL_ONLY);
|
|
||||||
+
|
|
||||||
#ifdef SQLITE_OMIT_UTF16
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "utf16", "0", TCL_GLOBAL_ONLY);
|
|
||||||
#else
|
|
||||||
--- /test/e_expr.test
|
|
||||||
+++ /test/e_expr.test
|
|
||||||
@@ -1079,7 +1079,7 @@
|
|
||||||
#
|
|
||||||
# There is a regexp function if ICU is enabled though.
|
|
||||||
#
|
|
||||||
-ifcapable !icu {
|
|
||||||
+ifcapable !icu&&!regexp {
|
|
||||||
do_catchsql_test e_expr-18.1.1 {
|
|
||||||
SELECT regexp('abc', 'def')
|
|
||||||
} {1 {no such function: regexp}}
|
|
||||||
--- /test/icu.test
|
|
||||||
+++ /test/icu.test
|
|
||||||
@@ -41,7 +41,7 @@
|
|
||||||
#
|
|
||||||
test_expr icu-1.1 {i1='hello'} {i1 REGEXP 'hello'} 1
|
|
||||||
test_expr icu-1.2 {i1='hello'} {i1 REGEXP '.ello'} 1
|
|
||||||
- test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell'} 0
|
|
||||||
+ test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell$'} 0
|
|
||||||
test_expr icu-1.4 {i1='hello'} {i1 REGEXP '.ell.*'} 1
|
|
||||||
test_expr icu-1.5 {i1=NULL} {i1 REGEXP '.ell.*'} {}
|
|
||||||
|
|
||||||
--- /test/pragma.test
|
|
||||||
+++ /test/pragma.test
|
|
||||||
@@ -1370,17 +1370,62 @@
|
|
||||||
} ;# ifcapable trigger
|
|
||||||
|
|
||||||
ifcapable schema_pragmas {
|
|
||||||
- do_test pragma-11.1 {
|
|
||||||
- execsql2 {
|
|
||||||
- pragma collation_list;
|
|
||||||
+ ifcapable decimal {
|
|
||||||
+ ifcapable uint {
|
|
||||||
+ do_test pragma-11.1 {
|
|
||||||
+ execsql2 {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {seq 0 name UINT seq 1 name decimal seq 2 name RTRIM seq 3 name NOCASE seq 4 name BINARY}
|
|
||||||
+ do_test pragma-11.2 {
|
|
||||||
+ db collate New_Collation blah...
|
|
||||||
+ execsql {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {0 New_Collation 1 UINT 2 decimal 3 RTRIM 4 NOCASE 5 BINARY}
|
|
||||||
}
|
|
||||||
- } {seq 0 name RTRIM seq 1 name NOCASE seq 2 name BINARY}
|
|
||||||
- do_test pragma-11.2 {
|
|
||||||
- db collate New_Collation blah...
|
|
||||||
- execsql {
|
|
||||||
- pragma collation_list;
|
|
||||||
+ ifcapable !uint {
|
|
||||||
+ do_test pragma-11.1 {
|
|
||||||
+ execsql2 {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {seq 0 name decimal seq 1 name RTRIM seq 2 name NOCASE seq 3 name BINARY}
|
|
||||||
+ do_test pragma-11.2 {
|
|
||||||
+ db collate New_Collation blah...
|
|
||||||
+ execsql {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {0 New_Collation 1 decimal 2 RTRIM 3 NOCASE 4 BINARY}
|
|
||||||
}
|
|
||||||
- } {0 New_Collation 1 RTRIM 2 NOCASE 3 BINARY}
|
|
||||||
+ }
|
|
||||||
+ ifcapable !decimal {
|
|
||||||
+ ifcapable uint {
|
|
||||||
+ do_test pragma-11.1 {
|
|
||||||
+ execsql2 {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {seq 0 name UINT seq 1 name RTRIM seq 2 name NOCASE seq 3 name BINARY}
|
|
||||||
+ do_test pragma-11.2 {
|
|
||||||
+ db collate New_Collation blah...
|
|
||||||
+ execsql {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {0 New_Collation 1 UINT 2 RTRIM 3 NOCASE 4 BINARY}
|
|
||||||
+ }
|
|
||||||
+ ifcapable !uint {
|
|
||||||
+ do_test pragma-11.1 {
|
|
||||||
+ execsql2 {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {seq 0 name RTRIM seq 1 name NOCASE seq 2 name BINARY}
|
|
||||||
+ do_test pragma-11.2 {
|
|
||||||
+ db collate New_Collation blah...
|
|
||||||
+ execsql {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {0 New_Collation 1 RTRIM 2 NOCASE 3 BINARY}
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
ifcapable schema_pragmas&&tempdb {
|
|
||||||
--- /test/sessionfuzz.c
|
|
||||||
+++ /test/sessionfuzz.c
|
|
||||||
@@ -698,49 +698,6 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <assert.h>
|
|
||||||
-#ifndef OMIT_ZLIB
|
|
||||||
-#include "zlib.h"
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-/*
|
|
||||||
-** Implementation of the "sqlar_uncompress(X,SZ)" SQL function
|
|
||||||
-**
|
|
||||||
-** Parameter SZ is interpreted as an integer. If it is less than or
|
|
||||||
-** equal to zero, then this function returns a copy of X. Or, if
|
|
||||||
-** SZ is equal to the size of X when interpreted as a blob, also
|
|
||||||
-** return a copy of X. Otherwise, decompress blob X using zlib
|
|
||||||
-** utility function uncompress() and return the results (another
|
|
||||||
-** blob).
|
|
||||||
-*/
|
|
||||||
-static void sqlarUncompressFunc(
|
|
||||||
- sqlite3_context *context,
|
|
||||||
- int argc,
|
|
||||||
- sqlite3_value **argv
|
|
||||||
-){
|
|
||||||
-#ifdef OMIT_ZLIB
|
|
||||||
- sqlite3_result_value(context, argv[0]);
|
|
||||||
-#else
|
|
||||||
- uLong nData;
|
|
||||||
- uLongf sz;
|
|
||||||
-
|
|
||||||
- assert( argc==2 );
|
|
||||||
- sz = sqlite3_value_int(argv[1]);
|
|
||||||
-
|
|
||||||
- if( sz<=0 || sz==(nData = sqlite3_value_bytes(argv[0])) ){
|
|
||||||
- sqlite3_result_value(context, argv[0]);
|
|
||||||
- }else{
|
|
||||||
- const Bytef *pData= sqlite3_value_blob(argv[0]);
|
|
||||||
- Bytef *pOut = sqlite3_malloc(sz);
|
|
||||||
- if( Z_OK!=uncompress(pOut, &sz, pData, nData) ){
|
|
||||||
- sqlite3_result_error(context, "error in uncompress()", -1);
|
|
||||||
- }else{
|
|
||||||
- sqlite3_result_blob(context, pOut, sz, SQLITE_TRANSIENT);
|
|
||||||
- }
|
|
||||||
- sqlite3_free(pOut);
|
|
||||||
- }
|
|
||||||
-#endif
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
|
|
||||||
/* Run a chunk of SQL. If any errors happen, print an error message
|
|
||||||
** and exit.
|
|
||||||
--- /tool/mksqlite3c.tcl
|
|
||||||
+++ /tool/mksqlite3c.tcl
|
|
||||||
@@ -129,6 +129,7 @@
|
|
||||||
rtree.h
|
|
||||||
sqlite3session.h
|
|
||||||
sqlite3.h
|
|
||||||
+ sqlite3expert.h
|
|
||||||
sqlite3ext.h
|
|
||||||
sqlite3rbu.h
|
|
||||||
sqliteicu.h
|
|
||||||
@@ -416,6 +417,28 @@
|
|
||||||
sqlite3session.c
|
|
||||||
fts5.c
|
|
||||||
stmt.c
|
|
||||||
+ amatch.c
|
|
||||||
+ appendvfs.c
|
|
||||||
+ carray.c
|
|
||||||
+ completion.c
|
|
||||||
+ csv.c
|
|
||||||
+ dbdata.c
|
|
||||||
+ decimal.c
|
|
||||||
+ eval.c
|
|
||||||
+ fileio.c
|
|
||||||
+ ieee754.c
|
|
||||||
+ nextchar.c
|
|
||||||
+ percentile.c
|
|
||||||
+ regexp.c
|
|
||||||
+ series.c
|
|
||||||
+ sha1.c
|
|
||||||
+ shathree.c
|
|
||||||
+ sqlar.c
|
|
||||||
+ sqlite3expert.c
|
|
||||||
+ totype.c
|
|
||||||
+ uint.c
|
|
||||||
+ uuid.c
|
|
||||||
+ zipfile.c
|
|
||||||
} {
|
|
||||||
copy_file tsrc/$file
|
|
||||||
}
|
|
||||||
--- /tool/sqlite3_analyzer.c.in
|
|
||||||
+++ /tool/sqlite3_analyzer.c.in
|
|
||||||
@@ -14,9 +14,6 @@
|
|
||||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
|
||||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
|
||||||
#define SQLITE_OMIT_LOAD_EXTENSION 1
|
|
||||||
-#ifndef USE_EXTERNAL_SQLITE
|
|
||||||
-INCLUDE sqlite3.c
|
|
||||||
-#endif
|
|
||||||
INCLUDE $ROOT/src/tclsqlite.c
|
|
||||||
|
|
||||||
const char *sqlite3_analyzer_init_proc(Tcl_Interp *interp){
|
|
||||||
--- /tool/sqltclsh.c.in
|
|
||||||
+++ /tool/sqltclsh.c.in
|
|
||||||
@@ -27,21 +27,13 @@
|
|
||||||
#define SQLITE_OMIT_SHARED_CACHE 1
|
|
||||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
|
||||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
|
||||||
-INCLUDE sqlite3.c
|
|
||||||
-INCLUDE $ROOT/ext/misc/appendvfs.c
|
|
||||||
-#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
-INCLUDE $ROOT/ext/misc/zipfile.c
|
|
||||||
-INCLUDE $ROOT/ext/misc/sqlar.c
|
|
||||||
-#endif
|
|
||||||
+#include "sqlite3.h"
|
|
||||||
INCLUDE $ROOT/src/tclsqlite.c
|
|
||||||
|
|
||||||
const char *sqlite3_tclapp_init_proc(Tcl_Interp *interp){
|
|
||||||
(void)interp;
|
|
||||||
+ extern int sqlite3_appendvfs_init(sqlite3 *,char **, const sqlite3_api_routines *);
|
|
||||||
sqlite3_appendvfs_init(0,0,0);
|
|
||||||
-#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
- sqlite3_auto_extension((void(*)(void))sqlite3_sqlar_init);
|
|
||||||
- sqlite3_auto_extension((void(*)(void))sqlite3_zipfile_init);
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
return
|
|
||||||
BEGIN_STRING
|
|
@ -1,375 +0,0 @@
|
|||||||
Add initialization functions for internal usage in libsqlite3.so.
|
|
||||||
|
|
||||||
SQLite revision: acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b
|
|
||||||
|
|
||||||
--- /ext/misc/amatch.c
|
|
||||||
+++ /ext/misc/amatch.c
|
|
||||||
@@ -1480,9 +1480,18 @@
|
|
||||||
|
|
||||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
|
|
||||||
+int sqlite3AmatchInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
+ rc = sqlite3_create_module(db, "approximate_match", &amatchModule, 0);
|
|
||||||
+#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
** Register the amatch virtual table
|
|
||||||
*/
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -1491,11 +1500,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Not used */
|
|
||||||
-#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
- rc = sqlite3_create_module(db, "approximate_match", &amatchModule, 0);
|
|
||||||
-#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3AmatchInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/carray.c
|
|
||||||
+++ /ext/misc/carray.c
|
|
||||||
@@ -498,16 +498,8 @@
|
|
||||||
|
|
||||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_carray_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3CarrayInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
rc = sqlite3_create_module(db, "carray", &carrayModule, 0);
|
|
||||||
#ifdef SQLITE_TEST
|
|
||||||
@@ -519,3 +511,18 @@
|
|
||||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_carray_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3CarrayInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/completion.c
|
|
||||||
+++ /ext/misc/completion.c
|
|
||||||
@@ -483,12 +483,13 @@
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
int sqlite3_completion_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
@@ -499,3 +500,4 @@
|
|
||||||
#endif
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/csv.c
|
|
||||||
+++ /ext/misc/csv.c
|
|
||||||
@@ -928,6 +928,22 @@
|
|
||||||
#endif /* !defined(SQLITE_OMIT_VIRTUALTABLE) */
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3CsvInit(sqlite3 *db){
|
|
||||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
+ int rc;
|
|
||||||
+ rc = sqlite3_create_module(db, "csv", &CsvModule, 0);
|
|
||||||
+#ifdef SQLITE_TEST
|
|
||||||
+ if( rc==SQLITE_OK ){
|
|
||||||
+ rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0);
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+ return rc;
|
|
||||||
+#else
|
|
||||||
+ return SQLITE_OK;
|
|
||||||
+#endif
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -941,17 +957,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
-#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
- int rc;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- rc = sqlite3_create_module(db, "csv", &CsvModule, 0);
|
|
||||||
-#ifdef SQLITE_TEST
|
|
||||||
- if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0);
|
|
||||||
- }
|
|
||||||
-#endif
|
|
||||||
- return rc;
|
|
||||||
-#else
|
|
||||||
- return SQLITE_OK;
|
|
||||||
-#endif
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3CsvInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/dbdata.c
|
|
||||||
+++ /ext/misc/dbdata.c
|
|
||||||
@@ -803,7 +803,7 @@
|
|
||||||
/*
|
|
||||||
** Invoke this routine to register the "sqlite_dbdata" virtual table module
|
|
||||||
*/
|
|
||||||
-static int sqlite3DbdataRegister(sqlite3 *db){
|
|
||||||
+int sqlite3DbdataRegister(sqlite3 *db){
|
|
||||||
static sqlite3_module dbdata_module = {
|
|
||||||
0, /* iVersion */
|
|
||||||
0, /* xCreate */
|
|
||||||
@@ -838,6 +838,7 @@
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -849,3 +850,4 @@
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
return sqlite3DbdataRegister(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/decimal.c
|
|
||||||
+++ /ext/misc/decimal.c
|
|
||||||
@@ -590,14 +590,7 @@
|
|
||||||
decimal_free(pB);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_decimal_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3DecimalInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
static const struct {
|
|
||||||
const char *zFuncName;
|
|
||||||
@@ -611,10 +604,6 @@
|
|
||||||
{ "decimal_mul", 2, decimalMulFunc },
|
|
||||||
};
|
|
||||||
unsigned int i;
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
-
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
-
|
|
||||||
for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){
|
|
||||||
rc = sqlite3_create_function(db, aFunc[i].zFuncName, aFunc[i].nArg,
|
|
||||||
SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_DETERMINISTIC,
|
|
||||||
@@ -632,3 +621,20 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_decimal_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+
|
|
||||||
+ return sqlite3DecimalInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/eval.c
|
|
||||||
+++ /ext/misc/eval.c
|
|
||||||
@@ -102,6 +102,20 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3EvalInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "eval", 1,
|
|
||||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
+ sqlEvalFunc, 0, 0);
|
|
||||||
+ if( rc==SQLITE_OK ){
|
|
||||||
+ rc = sqlite3_create_function(db, "eval", 2,
|
|
||||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
+ sqlEvalFunc, 0, 0);
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -110,16 +124,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "eval", 1,
|
|
||||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
- sqlEvalFunc, 0, 0);
|
|
||||||
- if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_function(db, "eval", 2,
|
|
||||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
- sqlEvalFunc, 0, 0);
|
|
||||||
- }
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3EvalInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/fileio.c
|
|
||||||
+++ /ext/misc/fileio.c
|
|
||||||
@@ -340,7 +340,7 @@
|
|
||||||
** This function does the work for the writefile() UDF. Refer to
|
|
||||||
** header comments at the top of this file for details.
|
|
||||||
*/
|
|
||||||
-static int writeFile(
|
|
||||||
+static int writeFileContents(
|
|
||||||
sqlite3_context *pCtx, /* Context to return bytes written in */
|
|
||||||
const char *zFile, /* File to write */
|
|
||||||
sqlite3_value *pData, /* Data to write */
|
|
||||||
@@ -480,10 +480,10 @@
|
|
||||||
mtime = sqlite3_value_int64(argv[3]);
|
|
||||||
}
|
|
||||||
|
|
||||||
- res = writeFile(context, zFile, argv[1], mode, mtime);
|
|
||||||
+ res = writeFileContents(context, zFile, argv[1], mode, mtime);
|
|
||||||
if( res==1 && errno==ENOENT ){
|
|
||||||
if( makeDirectory(zFile)==SQLITE_OK ){
|
|
||||||
- res = writeFile(context, zFile, argv[1], mode, mtime);
|
|
||||||
+ res = writeFileContents(context, zFile, argv[1], mode, mtime);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -970,18 +970,9 @@
|
|
||||||
# define fsdirRegister(x) SQLITE_OK
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_fileio_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3FileioInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "readfile", 1,
|
|
||||||
+ rc = sqlite3_create_function(db, "readfile", 1,
|
|
||||||
SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
readfileFunc, 0, 0);
|
|
||||||
if( rc==SQLITE_OK ){
|
|
||||||
@@ -998,3 +989,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_fileio_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3FileioInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/ieee754.c
|
|
||||||
+++ /ext/misc/ieee754.c
|
|
||||||
@@ -253,14 +253,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_ieee_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3IeeeInit(sqlite3 *db){
|
|
||||||
static const struct {
|
|
||||||
char *zFName;
|
|
||||||
int nArg;
|
|
||||||
@@ -277,13 +270,26 @@
|
|
||||||
};
|
|
||||||
unsigned int i;
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){
|
|
||||||
- rc = sqlite3_create_function(db, aFunc[i].zFName, aFunc[i].nArg,
|
|
||||||
+ rc = sqlite3_create_function(db, aFunc[i].zFName, aFunc[i].nArg,
|
|
||||||
SQLITE_UTF8|SQLITE_INNOCUOUS,
|
|
||||||
(void*)&aFunc[i].iAux,
|
|
||||||
aFunc[i].xFunc, 0, 0);
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_ieee_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3IeeeInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
@ -1,500 +0,0 @@
|
|||||||
Add initialization functions for internal usage in libsqlite3.so.
|
|
||||||
|
|
||||||
SQLite revision: acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b
|
|
||||||
|
|
||||||
--- /ext/misc/nextchar.c
|
|
||||||
+++ /ext/misc/nextchar.c
|
|
||||||
@@ -286,17 +286,8 @@
|
|
||||||
sqlite3_free(c.aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_nextchar_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3NextcharInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
rc = sqlite3_create_function(db, "next_char", 3,
|
|
||||||
SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
nextCharFunc, 0, 0);
|
|
||||||
@@ -312,3 +303,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_nextchar_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3NextcharInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/percentile.c
|
|
||||||
+++ /ext/misc/percentile.c
|
|
||||||
@@ -202,6 +202,15 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3PercentileInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "percentile", 2,
|
|
||||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
+ 0, percentStep, percentFinal);
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -210,11 +219,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "percentile", 2,
|
|
||||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
- 0, percentStep, percentFinal);
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3PercentileInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/regexp.c
|
|
||||||
+++ /ext/misc/regexp.c
|
|
||||||
@@ -740,10 +740,18 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+int sqlite3RegexpInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "regexp", 2, SQLITE_UTF8|SQLITE_INNOCUOUS,
|
|
||||||
+ 0, re_sql_func, 0, 0);
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
** Invoke this routine to register the regexp() function with the
|
|
||||||
** SQLite database connection.
|
|
||||||
*/
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -752,9 +760,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- rc = sqlite3_create_function(db, "regexp", 2, SQLITE_UTF8|SQLITE_INNOCUOUS,
|
|
||||||
- 0, re_sql_func, 0, 0);
|
|
||||||
- return rc;
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3RegexpInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/series.c
|
|
||||||
+++ /ext/misc/series.c
|
|
||||||
@@ -423,6 +423,15 @@
|
|
||||||
|
|
||||||
#endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
|
|
||||||
+int sqlite3SeriesInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
+ rc = sqlite3_create_module(db, "generate_series", &seriesModule, 0);
|
|
||||||
+#endif
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -431,7 +440,6 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
|
||||||
if( sqlite3_libversion_number()<3008012 ){
|
|
||||||
@@ -439,7 +447,7 @@
|
|
||||||
"generate_series() requires SQLite 3.8.12 or later");
|
|
||||||
return SQLITE_ERROR;
|
|
||||||
}
|
|
||||||
- rc = sqlite3_create_module(db, "generate_series", &seriesModule, 0);
|
|
||||||
#endif
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3SeriesInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/sha1.c
|
|
||||||
+++ /ext/misc/sha1.c
|
|
||||||
@@ -175,7 +175,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Compute a string using sqlite3_vsnprintf() and hash it */
|
|
||||||
-static void hash_step_vformat(
|
|
||||||
+static void sha1_hash_step_vformat(
|
|
||||||
SHA1Context *p, /* Add content to this context */
|
|
||||||
const char *zFormat,
|
|
||||||
...
|
|
||||||
@@ -306,7 +306,7 @@
|
|
||||||
nCol = sqlite3_column_count(pStmt);
|
|
||||||
z = sqlite3_sql(pStmt);
|
|
||||||
n = (int)strlen(z);
|
|
||||||
- hash_step_vformat(&cx,"S%d:",n);
|
|
||||||
+ sha1_hash_step_vformat(&cx,"S%d:",n);
|
|
||||||
hash_step(&cx,(unsigned char*)z,n);
|
|
||||||
|
|
||||||
/* Compute a hash over the result of the query */
|
|
||||||
@@ -349,14 +349,14 @@
|
|
||||||
case SQLITE_TEXT: {
|
|
||||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
|
||||||
const unsigned char *z2 = sqlite3_column_text(pStmt, i);
|
|
||||||
- hash_step_vformat(&cx,"T%d:",n2);
|
|
||||||
+ sha1_hash_step_vformat(&cx,"T%d:",n2);
|
|
||||||
hash_step(&cx, z2, n2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SQLITE_BLOB: {
|
|
||||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
|
||||||
const unsigned char *z2 = sqlite3_column_blob(pStmt, i);
|
|
||||||
- hash_step_vformat(&cx,"B%d:",n2);
|
|
||||||
+ sha1_hash_step_vformat(&cx,"B%d:",n2);
|
|
||||||
hash_step(&cx, z2, n2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
@@ -370,6 +370,20 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3ShaInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "sha1", 1,
|
|
||||||
+ SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
|
||||||
+ 0, sha1Func, 0, 0);
|
|
||||||
+ if( rc==SQLITE_OK ){
|
|
||||||
+ rc = sqlite3_create_function(db, "sha1_query", 1,
|
|
||||||
+ SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
+ sha1QueryFunc, 0, 0);
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -378,16 +392,8 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "sha1", 1,
|
|
||||||
- SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
|
||||||
- 0, sha1Func, 0, 0);
|
|
||||||
- if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_function(db, "sha1_query", 1,
|
|
||||||
- SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
|
||||||
- sha1QueryFunc, 0, 0);
|
|
||||||
- }
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3ShaInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/shathree.c
|
|
||||||
+++ /ext/misc/shathree.c
|
|
||||||
@@ -530,7 +530,7 @@
|
|
||||||
/* Compute a string using sqlite3_vsnprintf() with a maximum length
|
|
||||||
** of 50 bytes and add it to the hash.
|
|
||||||
*/
|
|
||||||
-static void hash_step_vformat(
|
|
||||||
+static void sha3_hash_step_vformat(
|
|
||||||
SHA3Context *p, /* Add content to this context */
|
|
||||||
const char *zFormat,
|
|
||||||
...
|
|
||||||
@@ -626,7 +626,7 @@
|
|
||||||
z = sqlite3_sql(pStmt);
|
|
||||||
if( z ){
|
|
||||||
n = (int)strlen(z);
|
|
||||||
- hash_step_vformat(&cx,"S%d:",n);
|
|
||||||
+ sha3_hash_step_vformat(&cx,"S%d:",n);
|
|
||||||
SHA3Update(&cx,(unsigned char*)z,n);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -670,14 +670,14 @@
|
|
||||||
case SQLITE_TEXT: {
|
|
||||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
|
||||||
const unsigned char *z2 = sqlite3_column_text(pStmt, i);
|
|
||||||
- hash_step_vformat(&cx,"T%d:",n2);
|
|
||||||
+ sha3_hash_step_vformat(&cx,"T%d:",n2);
|
|
||||||
SHA3Update(&cx, z2, n2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SQLITE_BLOB: {
|
|
||||||
int n2 = sqlite3_column_bytes(pStmt, i);
|
|
||||||
const unsigned char *z2 = sqlite3_column_blob(pStmt, i);
|
|
||||||
- hash_step_vformat(&cx,"B%d:",n2);
|
|
||||||
+ sha3_hash_step_vformat(&cx,"B%d:",n2);
|
|
||||||
SHA3Update(&cx, z2, n2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
@@ -690,17 +690,8 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_shathree_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3ShathreeInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
rc = sqlite3_create_function(db, "sha3", 1,
|
|
||||||
SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC,
|
|
||||||
0, sha3Func, 0, 0);
|
|
||||||
@@ -721,3 +712,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_shathree_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3ShathreeInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/sqlar.c
|
|
||||||
+++ /ext/misc/sqlar.c
|
|
||||||
@@ -14,6 +14,8 @@
|
|
||||||
** for working with sqlar archives and used by the shell tool's built-in
|
|
||||||
** sqlar support.
|
|
||||||
*/
|
|
||||||
+#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
+
|
|
||||||
#include "sqlite3ext.h"
|
|
||||||
SQLITE_EXTENSION_INIT1
|
|
||||||
#include <zlib.h>
|
|
||||||
@@ -101,6 +103,20 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+int sqlite3SqlarInit(sqlite3 *db){
|
|
||||||
+ int rc = SQLITE_OK;
|
|
||||||
+ rc = sqlite3_create_function(db, "sqlar_compress", 1,
|
|
||||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
+ sqlarCompressFunc, 0, 0);
|
|
||||||
+ if( rc==SQLITE_OK ){
|
|
||||||
+ rc = sqlite3_create_function(db, "sqlar_uncompress", 2,
|
|
||||||
+ SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
+ sqlarUncompressFunc, 0, 0);
|
|
||||||
+ }
|
|
||||||
+ return rc;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -109,16 +125,10 @@
|
|
||||||
char **pzErrMsg,
|
|
||||||
const sqlite3_api_routines *pApi
|
|
||||||
){
|
|
||||||
- int rc = SQLITE_OK;
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- rc = sqlite3_create_function(db, "sqlar_compress", 1,
|
|
||||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
- sqlarCompressFunc, 0, 0);
|
|
||||||
- if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_function(db, "sqlar_uncompress", 2,
|
|
||||||
- SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
- sqlarUncompressFunc, 0, 0);
|
|
||||||
- }
|
|
||||||
- return rc;
|
|
||||||
+ return sqlite3SqlarInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
+
|
|
||||||
+#endif /* SQLITE_HAVE_ZLIB */
|
|
||||||
--- /ext/misc/totype.c
|
|
||||||
+++ /ext/misc/totype.c
|
|
||||||
@@ -491,17 +491,8 @@
|
|
||||||
#pragma warning(default: 4748)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_totype_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3TotypeInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
rc = sqlite3_create_function(db, "tointeger", 1,
|
|
||||||
SQLITE_UTF8 | SQLITE_DETERMINISTIC | SQLITE_INNOCUOUS, 0,
|
|
||||||
tointegerFunc, 0, 0);
|
|
||||||
@@ -512,3 +503,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_totype_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3TotypeInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/uint.c
|
|
||||||
+++ /ext/misc/uint.c
|
|
||||||
@@ -78,6 +78,11 @@
|
|
||||||
return (nKey1 - i) - (nKey2 - j);
|
|
||||||
}
|
|
||||||
|
|
||||||
+int sqlite3UintInit(sqlite3 *db){
|
|
||||||
+ return sqlite3_create_collation(db, "UINT", SQLITE_UTF8, 0, uintCollFunc);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -88,5 +93,6 @@
|
|
||||||
){
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- return sqlite3_create_collation(db, "uint", SQLITE_UTF8, 0, uintCollFunc);
|
|
||||||
+ return sqlite3UintInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/uuid.c
|
|
||||||
+++ /ext/misc/uuid.c
|
|
||||||
@@ -206,21 +206,12 @@
|
|
||||||
sqlite3_result_blob(context, pBlob, 16, SQLITE_TRANSIENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#ifdef _WIN32
|
|
||||||
-__declspec(dllexport)
|
|
||||||
-#endif
|
|
||||||
-int sqlite3_uuid_init(
|
|
||||||
- sqlite3 *db,
|
|
||||||
- char **pzErrMsg,
|
|
||||||
- const sqlite3_api_routines *pApi
|
|
||||||
-){
|
|
||||||
+int sqlite3UuidInit(sqlite3 *db){
|
|
||||||
int rc = SQLITE_OK;
|
|
||||||
- SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
- (void)pzErrMsg; /* Unused parameter */
|
|
||||||
rc = sqlite3_create_function(db, "uuid", 0, SQLITE_UTF8|SQLITE_INNOCUOUS, 0,
|
|
||||||
sqlite3UuidFunc, 0, 0);
|
|
||||||
if( rc==SQLITE_OK ){
|
|
||||||
- rc = sqlite3_create_function(db, "uuid_str", 1,
|
|
||||||
+ rc = sqlite3_create_function(db, "uuid_str", 1,
|
|
||||||
SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_DETERMINISTIC,
|
|
||||||
0, sqlite3UuidStrFunc, 0, 0);
|
|
||||||
}
|
|
||||||
@@ -231,3 +222,18 @@
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
+#ifdef _WIN32
|
|
||||||
+__declspec(dllexport)
|
|
||||||
+#endif
|
|
||||||
+int sqlite3_uuid_init(
|
|
||||||
+ sqlite3 *db,
|
|
||||||
+ char **pzErrMsg,
|
|
||||||
+ const sqlite3_api_routines *pApi
|
|
||||||
+){
|
|
||||||
+ SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
+ (void)pzErrMsg; /* Unused parameter */
|
|
||||||
+ return sqlite3UuidInit(db);
|
|
||||||
+}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
--- /ext/misc/zipfile.c
|
|
||||||
+++ /ext/misc/zipfile.c
|
|
||||||
@@ -24,6 +24,8 @@
|
|
||||||
** * No support for zip64 extensions
|
|
||||||
** * Only the "inflate/deflate" (zlib) compression method is supported
|
|
||||||
*/
|
|
||||||
+#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
+
|
|
||||||
#include "sqlite3ext.h"
|
|
||||||
SQLITE_EXTENSION_INIT1
|
|
||||||
#include <stdio.h>
|
|
||||||
@@ -2139,7 +2141,7 @@
|
|
||||||
/*
|
|
||||||
** Register the "zipfile" virtual table.
|
|
||||||
*/
|
|
||||||
-static int zipfileRegister(sqlite3 *db){
|
|
||||||
+int sqlite3ZipfileInit(sqlite3 *db){
|
|
||||||
static sqlite3_module zipfileModule = {
|
|
||||||
1, /* iVersion */
|
|
||||||
zipfileConnect, /* xCreate */
|
|
||||||
@@ -2173,9 +2175,10 @@
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
#else /* SQLITE_OMIT_VIRTUALTABLE */
|
|
||||||
-# define zipfileRegister(x) SQLITE_OK
|
|
||||||
+# define sqlite3ZipfileInit(x) SQLITE_OK
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#if !defined(SQLITE_CORE) || defined(SQLITE_TEST)
|
|
||||||
#ifdef _WIN32
|
|
||||||
__declspec(dllexport)
|
|
||||||
#endif
|
|
||||||
@@ -2186,5 +2189,8 @@
|
|
||||||
){
|
|
||||||
SQLITE_EXTENSION_INIT2(pApi);
|
|
||||||
(void)pzErrMsg; /* Unused parameter */
|
|
||||||
- return zipfileRegister(db);
|
|
||||||
+ return sqlite3ZipfileInit(db);
|
|
||||||
}
|
|
||||||
+#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */
|
|
||||||
+
|
|
||||||
+#endif /* SQLITE_HAVE_ZLIB */
|
|
@ -1,292 +0,0 @@
|
|||||||
Move some code to libsqlite3.so to avoid duplication.
|
|
||||||
Link executables against libsqlite3.so.
|
|
||||||
Increase timeout for fuzzcheck.
|
|
||||||
Update list of optionally available functions.
|
|
||||||
Fix building with dlopen() not available.
|
|
||||||
|
|
||||||
SQLite revision: acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b
|
|
||||||
|
|
||||||
--- /Makefile.in
|
|
||||||
+++ /Makefile.in
|
|
||||||
@@ -313,6 +313,9 @@
|
|
||||||
# Source code for extensions
|
|
||||||
#
|
|
||||||
SRC += \
|
|
||||||
+ $(TOP)/ext/expert/sqlite3expert.c \
|
|
||||||
+ $(TOP)/ext/expert/sqlite3expert.h
|
|
||||||
+SRC += \
|
|
||||||
$(TOP)/ext/fts1/fts1.c \
|
|
||||||
$(TOP)/ext/fts1/fts1.h \
|
|
||||||
$(TOP)/ext/fts1/fts1_hash.c \
|
|
||||||
@@ -365,8 +368,29 @@
|
|
||||||
$(TOP)/ext/rbu/sqlite3rbu.h \
|
|
||||||
$(TOP)/ext/rbu/sqlite3rbu.c
|
|
||||||
SRC += \
|
|
||||||
+ $(TOP)/ext/misc/amatch.c \
|
|
||||||
+ $(TOP)/ext/misc/appendvfs.c \
|
|
||||||
+ $(TOP)/ext/misc/carray.c \
|
|
||||||
+ $(TOP)/ext/misc/completion.c \
|
|
||||||
+ $(TOP)/ext/misc/csv.c \
|
|
||||||
+ $(TOP)/ext/misc/dbdata.c \
|
|
||||||
+ $(TOP)/ext/misc/decimal.c \
|
|
||||||
+ $(TOP)/ext/misc/eval.c \
|
|
||||||
+ $(TOP)/ext/misc/fileio.c \
|
|
||||||
+ $(TOP)/ext/misc/ieee754.c \
|
|
||||||
$(TOP)/ext/misc/json1.c \
|
|
||||||
- $(TOP)/ext/misc/stmt.c
|
|
||||||
+ $(TOP)/ext/misc/nextchar.c \
|
|
||||||
+ $(TOP)/ext/misc/percentile.c \
|
|
||||||
+ $(TOP)/ext/misc/regexp.c \
|
|
||||||
+ $(TOP)/ext/misc/series.c \
|
|
||||||
+ $(TOP)/ext/misc/sha1.c \
|
|
||||||
+ $(TOP)/ext/misc/shathree.c \
|
|
||||||
+ $(TOP)/ext/misc/sqlar.c \
|
|
||||||
+ $(TOP)/ext/misc/stmt.c \
|
|
||||||
+ $(TOP)/ext/misc/totype.c \
|
|
||||||
+ $(TOP)/ext/misc/uint.c \
|
|
||||||
+ $(TOP)/ext/misc/uuid.c \
|
|
||||||
+ $(TOP)/ext/misc/zipfile.c
|
|
||||||
|
|
||||||
# Generated source code files
|
|
||||||
#
|
|
||||||
@@ -437,36 +461,21 @@
|
|
||||||
# Statically linked extensions
|
|
||||||
#
|
|
||||||
TESTSRC += \
|
|
||||||
- $(TOP)/ext/expert/sqlite3expert.c \
|
|
||||||
$(TOP)/ext/expert/test_expert.c \
|
|
||||||
- $(TOP)/ext/misc/amatch.c \
|
|
||||||
- $(TOP)/ext/misc/appendvfs.c \
|
|
||||||
- $(TOP)/ext/misc/carray.c \
|
|
||||||
$(TOP)/ext/misc/cksumvfs.c \
|
|
||||||
$(TOP)/ext/misc/closure.c \
|
|
||||||
- $(TOP)/ext/misc/csv.c \
|
|
||||||
- $(TOP)/ext/misc/decimal.c \
|
|
||||||
- $(TOP)/ext/misc/eval.c \
|
|
||||||
$(TOP)/ext/misc/explain.c \
|
|
||||||
- $(TOP)/ext/misc/fileio.c \
|
|
||||||
$(TOP)/ext/misc/fuzzer.c \
|
|
||||||
$(TOP)/ext/fts5/fts5_tcl.c \
|
|
||||||
$(TOP)/ext/fts5/fts5_test_mi.c \
|
|
||||||
$(TOP)/ext/fts5/fts5_test_tok.c \
|
|
||||||
- $(TOP)/ext/misc/ieee754.c \
|
|
||||||
$(TOP)/ext/misc/mmapwarm.c \
|
|
||||||
- $(TOP)/ext/misc/nextchar.c \
|
|
||||||
$(TOP)/ext/misc/normalize.c \
|
|
||||||
- $(TOP)/ext/misc/percentile.c \
|
|
||||||
$(TOP)/ext/misc/prefixes.c \
|
|
||||||
- $(TOP)/ext/misc/regexp.c \
|
|
||||||
$(TOP)/ext/misc/remember.c \
|
|
||||||
- $(TOP)/ext/misc/series.c \
|
|
||||||
$(TOP)/ext/misc/spellfix.c \
|
|
||||||
- $(TOP)/ext/misc/totype.c \
|
|
||||||
$(TOP)/ext/misc/unionvtab.c \
|
|
||||||
$(TOP)/ext/misc/wholenumber.c \
|
|
||||||
- $(TOP)/ext/misc/zipfile.c \
|
|
||||||
$(TOP)/ext/userauth/userauth.c
|
|
||||||
|
|
||||||
# Source code to the library files needed by the test fixture
|
|
||||||
@@ -648,25 +657,25 @@
|
|
||||||
|
|
||||||
libtclsqlite3.la: tclsqlite.lo libsqlite3.la
|
|
||||||
$(LTLINK) -no-undefined -o $@ tclsqlite.lo \
|
|
||||||
- libsqlite3.la @TCL_STUB_LIB_SPEC@ $(TLIBS) \
|
|
||||||
+ libsqlite3.la @TCL_STUB_LIB_SPEC@ \
|
|
||||||
-rpath "$(TCLLIBDIR)" \
|
|
||||||
-version-info "8:6:8" \
|
|
||||||
-avoid-version
|
|
||||||
|
|
||||||
-sqlite3$(TEXE): shell.c sqlite3.c
|
|
||||||
- $(LTLINK) $(READLINE_FLAGS) $(SHELL_OPT) -o $@ \
|
|
||||||
- shell.c sqlite3.c \
|
|
||||||
- $(LIBREADLINE) $(TLIBS) -rpath "$(libdir)"
|
|
||||||
+sqlite3$(TEXE): shell.c libsqlite3.la
|
|
||||||
+ $(LTLINK) $(READLINE_FLAGS) -o $@ \
|
|
||||||
+ shell.c libsqlite3.la \
|
|
||||||
+ $(LIBREADLINE)
|
|
||||||
|
|
||||||
-sqldiff$(TEXE): $(TOP)/tool/sqldiff.c sqlite3.lo sqlite3.h
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c sqlite3.lo $(TLIBS)
|
|
||||||
+sqldiff$(TEXE): $(TOP)/tool/sqldiff.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c libsqlite3.la
|
|
||||||
|
|
||||||
-dbhash$(TEXE): $(TOP)/tool/dbhash.c sqlite3.lo sqlite3.h
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/dbhash.c sqlite3.lo $(TLIBS)
|
|
||||||
+dbhash$(TEXE): $(TOP)/tool/dbhash.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/dbhash.c libsqlite3.la
|
|
||||||
|
|
||||||
-scrub$(TEXE): $(TOP)/ext/misc/scrub.c sqlite3.lo
|
|
||||||
+scrub$(TEXE): $(TOP)/ext/misc/scrub.c libsqlite3.la
|
|
||||||
$(LTLINK) -o $@ -I. -DSCRUB_STANDALONE \
|
|
||||||
- $(TOP)/ext/misc/scrub.c sqlite3.lo $(TLIBS)
|
|
||||||
+ $(TOP)/ext/misc/scrub.c libsqlite3.la
|
|
||||||
|
|
||||||
srcck1$(BEXE): $(TOP)/tool/srcck1.c
|
|
||||||
$(BCC) -o srcck1$(BEXE) $(TOP)/tool/srcck1.c
|
|
||||||
@@ -777,7 +786,7 @@
|
|
||||||
# Rule to build the amalgamation
|
|
||||||
#
|
|
||||||
sqlite3.lo: sqlite3.c
|
|
||||||
- $(LTCOMPILE) $(TEMP_STORE) -c sqlite3.c
|
|
||||||
+ $(LTCOMPILE) $(SHELL_OPT) $(TEMP_STORE) -c sqlite3.c
|
|
||||||
|
|
||||||
# Rules to build the LEMON compiler generator
|
|
||||||
#
|
|
||||||
@@ -1083,18 +1092,6 @@
|
|
||||||
# Source files that go into making shell.c
|
|
||||||
SHELL_SRC = \
|
|
||||||
$(TOP)/src/shell.c.in \
|
|
||||||
- $(TOP)/ext/misc/appendvfs.c \
|
|
||||||
- $(TOP)/ext/misc/completion.c \
|
|
||||||
- $(TOP)/ext/misc/decimal.c \
|
|
||||||
- $(TOP)/ext/misc/fileio.c \
|
|
||||||
- $(TOP)/ext/misc/ieee754.c \
|
|
||||||
- $(TOP)/ext/misc/series.c \
|
|
||||||
- $(TOP)/ext/misc/shathree.c \
|
|
||||||
- $(TOP)/ext/misc/sqlar.c \
|
|
||||||
- $(TOP)/ext/misc/uint.c \
|
|
||||||
- $(TOP)/ext/expert/sqlite3expert.c \
|
|
||||||
- $(TOP)/ext/expert/sqlite3expert.h \
|
|
||||||
- $(TOP)/ext/misc/zipfile.c \
|
|
||||||
$(TOP)/ext/misc/memtrace.c \
|
|
||||||
$(TOP)/src/test_windirent.c
|
|
||||||
|
|
||||||
@@ -1264,11 +1261,11 @@
|
|
||||||
|
|
||||||
# Fuzz testing
|
|
||||||
fuzztest: fuzzcheck$(TEXE) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
|
|
||||||
- ./fuzzcheck$(TEXE) $(FUZZDATA)
|
|
||||||
+ ./fuzzcheck$(TEXE) --timeout 3600 $(FUZZDATA)
|
|
||||||
./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
|
|
||||||
|
|
||||||
valgrindfuzz: fuzzcheck$(TEXT) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
|
|
||||||
- valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M $(FUZZDATA)
|
|
||||||
+ valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 3600 $(FUZZDATA)
|
|
||||||
valgrind ./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
|
|
||||||
|
|
||||||
# The veryquick.test TCL tests.
|
|
||||||
@@ -1302,24 +1299,23 @@
|
|
||||||
shelltest: $(TESTPROGS)
|
|
||||||
./testfixture$(TEXT) $(TOP)/test/permutations.test shell
|
|
||||||
|
|
||||||
-sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
|
|
||||||
+sqlite3_analyzer.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
|
|
||||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in >sqlite3_analyzer.c
|
|
||||||
|
|
||||||
-sqlite3_analyzer$(TEXE): sqlite3_analyzer.c
|
|
||||||
- $(LTLINK) sqlite3_analyzer.c -o $@ $(LIBTCL) $(TLIBS)
|
|
||||||
+sqlite3_analyzer$(TEXE): sqlite3_analyzer.c libsqlite3.la
|
|
||||||
+ $(LTLINK) sqlite3_analyzer.c -o $@ libsqlite3.la $(LIBTCL)
|
|
||||||
|
|
||||||
-sqltclsh.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/ext/misc/appendvfs.c $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
|
|
||||||
+sqltclsh.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
|
|
||||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in >sqltclsh.c
|
|
||||||
|
|
||||||
-sqltclsh$(TEXE): sqltclsh.c
|
|
||||||
- $(LTLINK) sqltclsh.c -o $@ $(LIBTCL) $(TLIBS)
|
|
||||||
+sqltclsh$(TEXE): sqltclsh.c libsqlite3.la
|
|
||||||
+ $(LTLINK) sqltclsh.c -o $@ libsqlite3.la $(LIBTCL)
|
|
||||||
|
|
||||||
-sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c
|
|
||||||
- $(LTLINK) $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c -o sqlite3_expert $(TLIBS)
|
|
||||||
+sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/expert.c libsqlite3.la
|
|
||||||
+ $(LTLINK) $(TOP)/ext/expert/expert.c -o sqlite3_expert libsqlite3.la
|
|
||||||
|
|
||||||
CHECKER_DEPS =\
|
|
||||||
$(TOP)/tool/mkccode.tcl \
|
|
||||||
- sqlite3.c \
|
|
||||||
$(TOP)/src/tclsqlite.c \
|
|
||||||
$(TOP)/ext/repair/sqlite3_checker.tcl \
|
|
||||||
$(TOP)/ext/repair/checkindex.c \
|
|
||||||
@@ -1330,36 +1326,36 @@
|
|
||||||
sqlite3_checker.c: $(CHECKER_DEPS)
|
|
||||||
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/ext/repair/sqlite3_checker.c.in >$@
|
|
||||||
|
|
||||||
-sqlite3_checker$(TEXE): sqlite3_checker.c
|
|
||||||
- $(LTLINK) sqlite3_checker.c -o $@ $(LIBTCL) $(TLIBS)
|
|
||||||
+sqlite3_checker$(TEXE): sqlite3_checker.c libsqlite3.la
|
|
||||||
+ $(LTLINK) sqlite3_checker.c -o $@ libsqlite3.la $(LIBTCL)
|
|
||||||
|
|
||||||
-dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c sqlite3.lo
|
|
||||||
+dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c libsqlite3.la
|
|
||||||
$(LTLINK) -DDBDUMP_STANDALONE -o $@ \
|
|
||||||
- $(TOP)/ext/misc/dbdump.c sqlite3.lo $(TLIBS)
|
|
||||||
+ $(TOP)/ext/misc/dbdump.c libsqlite3.la
|
|
||||||
|
|
||||||
-dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
|
|
||||||
- $(LTLINK)-o $@ $(TOP)/tool/dbtotxt.c
|
|
||||||
+dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/dbtotxt.c
|
|
||||||
|
|
||||||
-showdb$(TEXE): $(TOP)/tool/showdb.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/showdb.c sqlite3.lo $(TLIBS)
|
|
||||||
+showdb$(TEXE): $(TOP)/tool/showdb.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/showdb.c libsqlite3.la
|
|
||||||
|
|
||||||
-showstat4$(TEXE): $(TOP)/tool/showstat4.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/showstat4.c sqlite3.lo $(TLIBS)
|
|
||||||
+showstat4$(TEXE): $(TOP)/tool/showstat4.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/showstat4.c libsqlite3.la
|
|
||||||
|
|
||||||
-showjournal$(TEXE): $(TOP)/tool/showjournal.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/showjournal.c sqlite3.lo $(TLIBS)
|
|
||||||
+showjournal$(TEXE): $(TOP)/tool/showjournal.c
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/showjournal.c
|
|
||||||
|
|
||||||
-showwal$(TEXE): $(TOP)/tool/showwal.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/tool/showwal.c sqlite3.lo $(TLIBS)
|
|
||||||
+showwal$(TEXE): $(TOP)/tool/showwal.c
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/showwal.c
|
|
||||||
|
|
||||||
showshm$(TEXE): $(TOP)/tool/showshm.c
|
|
||||||
$(LTLINK) -o $@ $(TOP)/tool/showshm.c
|
|
||||||
|
|
||||||
-index_usage$(TEXE): $(TOP)/tool/index_usage.c sqlite3.lo
|
|
||||||
- $(LTLINK) $(SHELL_OPT) -o $@ $(TOP)/tool/index_usage.c sqlite3.lo $(TLIBS)
|
|
||||||
+index_usage$(TEXE): $(TOP)/tool/index_usage.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/tool/index_usage.c libsqlite3.la
|
|
||||||
|
|
||||||
-changeset$(TEXE): $(TOP)/ext/session/changeset.c sqlite3.lo
|
|
||||||
- $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c sqlite3.lo $(TLIBS)
|
|
||||||
+changeset$(TEXE): $(TOP)/ext/session/changeset.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c libsqlite3.la
|
|
||||||
|
|
||||||
changesetfuzz$(TEXE): $(TOP)/ext/session/changesetfuzz.c sqlite3.lo
|
|
||||||
$(LTLINK) -o $@ $(TOP)/ext/session/changesetfuzz.c sqlite3.lo $(TLIBS)
|
|
||||||
@@ -1387,11 +1383,11 @@
|
|
||||||
kvtest$(TEXE): $(TOP)/test/kvtest.c sqlite3.c
|
|
||||||
$(LTLINK) $(KV_OPT) -o $@ $(TOP)/test/kvtest.c sqlite3.c $(TLIBS)
|
|
||||||
|
|
||||||
-rbu$(EXE): $(TOP)/ext/rbu/rbu.c $(TOP)/ext/rbu/sqlite3rbu.c sqlite3.lo
|
|
||||||
- $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c sqlite3.lo $(TLIBS)
|
|
||||||
+rbu$(EXE): $(TOP)/ext/rbu/rbu.c libsqlite3.la
|
|
||||||
+ $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c libsqlite3.la
|
|
||||||
|
|
||||||
-loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
|
|
||||||
- $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@ $(TLIBS)
|
|
||||||
+loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
|
|
||||||
+ $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@
|
|
||||||
|
|
||||||
# This target will fail if the SQLite amalgamation contains any exported
|
|
||||||
# symbols that do not begin with "sqlite3_". It is run as part of the
|
|
||||||
--- /configure.ac
|
|
||||||
+++ /configure.ac
|
|
||||||
@@ -108,7 +108,7 @@
|
|
||||||
#########
|
|
||||||
# Figure out whether or not we have these functions
|
|
||||||
#
|
|
||||||
-AC_CHECK_FUNCS([fdatasync gmtime_r isnan localtime_r localtime_s malloc_usable_size strchrnul usleep utime pread pread64 pwrite pwrite64])
|
|
||||||
+AC_CHECK_FUNCS([fdatasync fullfsync gmtime_r isnan localtime_r localtime_s malloc_usable_size posix_fallocate pread pread64 pwrite pwrite64 strchrnul usleep utime])
|
|
||||||
|
|
||||||
#########
|
|
||||||
# By default, we use the amalgamation (this may be changed below...)
|
|
||||||
@@ -587,6 +587,9 @@
|
|
||||||
if test "${enable_load_extension}" = "yes" ; then
|
|
||||||
OPT_FEATURE_FLAGS=""
|
|
||||||
AC_SEARCH_LIBS(dlopen, dl)
|
|
||||||
+ if test "${ac_cv_search_dlopen}" = "no" ; then
|
|
||||||
+ OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
|
|
||||||
+ fi
|
|
||||||
else
|
|
||||||
OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
|
|
||||||
fi
|
|
@ -1,441 +0,0 @@
|
|||||||
Move some code to libsqlite3.so to avoid duplication.
|
|
||||||
Initialize some extensions in libsqlite3.so.
|
|
||||||
Update test suite.
|
|
||||||
|
|
||||||
SQLite revision: acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b
|
|
||||||
|
|
||||||
--- /ext/repair/sqlite3_checker.c.in
|
|
||||||
+++ /ext/repair/sqlite3_checker.c.in
|
|
||||||
@@ -2,6 +2,7 @@
|
|
||||||
** Read an SQLite database file and analyze its space utilization. Generate
|
|
||||||
** text on standard output.
|
|
||||||
*/
|
|
||||||
+#define SQLITE_CORE 1
|
|
||||||
#define TCLSH_INIT_PROC sqlite3_checker_init_proc
|
|
||||||
#define SQLITE_ENABLE_DBPAGE_VTAB 1
|
|
||||||
#define SQLITE_ENABLE_JSON1 1
|
|
||||||
@@ -14,7 +15,7 @@
|
|
||||||
#define SQLITE_OMIT_SHARED_CACHE 1
|
|
||||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
|
||||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
|
||||||
-INCLUDE sqlite3.c
|
|
||||||
+#include "sqlite3.h"
|
|
||||||
INCLUDE $ROOT/src/tclsqlite.c
|
|
||||||
INCLUDE $ROOT/ext/misc/btreeinfo.c
|
|
||||||
INCLUDE $ROOT/ext/repair/checkindex.c
|
|
||||||
--- /src/main.c
|
|
||||||
+++ /src/main.c
|
|
||||||
@@ -50,12 +50,36 @@
|
|
||||||
#ifdef SQLITE_ENABLE_FTS5
|
|
||||||
int sqlite3Fts5Init(sqlite3*);
|
|
||||||
#endif
|
|
||||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
|
||||||
+int sqlite3DbdataRegister(sqlite3*);
|
|
||||||
+#endif
|
|
||||||
#ifdef SQLITE_ENABLE_JSON1
|
|
||||||
int sqlite3Json1Init(sqlite3*);
|
|
||||||
#endif
|
|
||||||
#ifdef SQLITE_ENABLE_STMTVTAB
|
|
||||||
int sqlite3StmtVtabInit(sqlite3*);
|
|
||||||
#endif
|
|
||||||
+int sqlite3AmatchInit(sqlite3*);
|
|
||||||
+int sqlite3CarrayInit(sqlite3*);
|
|
||||||
+int sqlite3CompletionVtabInit(sqlite3*);
|
|
||||||
+int sqlite3CsvInit(sqlite3*);
|
|
||||||
+int sqlite3DecimalInit(sqlite3*);
|
|
||||||
+int sqlite3EvalInit(sqlite3*);
|
|
||||||
+int sqlite3FileioInit(sqlite3*);
|
|
||||||
+int sqlite3IeeeInit(sqlite3*);
|
|
||||||
+int sqlite3NextcharInit(sqlite3*);
|
|
||||||
+int sqlite3PercentileInit(sqlite3*);
|
|
||||||
+int sqlite3RegexpInit(sqlite3*);
|
|
||||||
+int sqlite3SeriesInit(sqlite3*);
|
|
||||||
+int sqlite3ShaInit(sqlite3*);
|
|
||||||
+int sqlite3ShathreeInit(sqlite3*);
|
|
||||||
+int sqlite3TotypeInit(sqlite3*);
|
|
||||||
+int sqlite3UintInit(sqlite3*);
|
|
||||||
+int sqlite3UuidInit(sqlite3*);
|
|
||||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_HAVE_ZLIB)
|
|
||||||
+int sqlite3ZipfileInit(sqlite3*);
|
|
||||||
+int sqlite3SqlarInit(sqlite3*);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
** An array of pointers to extension initializer functions for
|
|
||||||
@@ -83,6 +107,9 @@
|
|
||||||
#ifdef SQLITE_ENABLE_DBPAGE_VTAB
|
|
||||||
sqlite3DbpageRegister,
|
|
||||||
#endif
|
|
||||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
|
||||||
+ sqlite3DbdataRegister,
|
|
||||||
+#endif
|
|
||||||
#ifdef SQLITE_ENABLE_DBSTAT_VTAB
|
|
||||||
sqlite3DbstatRegister,
|
|
||||||
#endif
|
|
||||||
@@ -96,6 +123,27 @@
|
|
||||||
#ifdef SQLITE_ENABLE_BYTECODE_VTAB
|
|
||||||
sqlite3VdbeBytecodeVtabInit,
|
|
||||||
#endif
|
|
||||||
+ sqlite3AmatchInit,
|
|
||||||
+ sqlite3CarrayInit,
|
|
||||||
+ sqlite3CompletionVtabInit,
|
|
||||||
+ sqlite3CsvInit,
|
|
||||||
+ sqlite3DecimalInit,
|
|
||||||
+ sqlite3EvalInit,
|
|
||||||
+ sqlite3FileioInit,
|
|
||||||
+ sqlite3IeeeInit,
|
|
||||||
+ sqlite3NextcharInit,
|
|
||||||
+ sqlite3PercentileInit,
|
|
||||||
+ sqlite3RegexpInit,
|
|
||||||
+ sqlite3SeriesInit,
|
|
||||||
+ sqlite3ShaInit,
|
|
||||||
+ sqlite3ShathreeInit,
|
|
||||||
+ sqlite3TotypeInit,
|
|
||||||
+ sqlite3UintInit,
|
|
||||||
+ sqlite3UuidInit,
|
|
||||||
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_HAVE_ZLIB)
|
|
||||||
+ sqlite3ZipfileInit,
|
|
||||||
+ sqlite3SqlarInit,
|
|
||||||
+#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifndef SQLITE_AMALGAMATION
|
|
||||||
--- /src/shell.c.in
|
|
||||||
+++ /src/shell.c.in
|
|
||||||
@@ -69,6 +69,7 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <assert.h>
|
|
||||||
#include "sqlite3.h"
|
|
||||||
+#include "ext/expert/sqlite3expert.h"
|
|
||||||
typedef sqlite3_int64 i64;
|
|
||||||
typedef sqlite3_uint64 u64;
|
|
||||||
typedef unsigned char u8;
|
|
||||||
@@ -135,6 +136,10 @@
|
|
||||||
# define SHELL_USE_LOCAL_GETLINE 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
+#include <zlib.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
|
|
||||||
#if defined(_WIN32) || defined(WIN32)
|
|
||||||
# if SQLITE_OS_WINRT
|
|
||||||
@@ -1018,25 +1023,7 @@
|
|
||||||
INCLUDE test_windirent.c
|
|
||||||
#define dirent DIRENT
|
|
||||||
#endif
|
|
||||||
-INCLUDE ../ext/misc/shathree.c
|
|
||||||
-INCLUDE ../ext/misc/fileio.c
|
|
||||||
-INCLUDE ../ext/misc/completion.c
|
|
||||||
-INCLUDE ../ext/misc/appendvfs.c
|
|
||||||
INCLUDE ../ext/misc/memtrace.c
|
|
||||||
-INCLUDE ../ext/misc/uint.c
|
|
||||||
-INCLUDE ../ext/misc/decimal.c
|
|
||||||
-INCLUDE ../ext/misc/ieee754.c
|
|
||||||
-INCLUDE ../ext/misc/series.c
|
|
||||||
-#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
-INCLUDE ../ext/misc/zipfile.c
|
|
||||||
-INCLUDE ../ext/misc/sqlar.c
|
|
||||||
-#endif
|
|
||||||
-INCLUDE ../ext/expert/sqlite3expert.h
|
|
||||||
-INCLUDE ../ext/expert/sqlite3expert.c
|
|
||||||
-
|
|
||||||
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
|
||||||
-INCLUDE ../ext/misc/dbdata.c
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
#if defined(SQLITE_ENABLE_SESSION)
|
|
||||||
/*
|
|
||||||
@@ -4608,20 +4595,6 @@
|
|
||||||
#ifndef SQLITE_OMIT_LOAD_EXTENSION
|
|
||||||
sqlite3_enable_load_extension(p->db, 1);
|
|
||||||
#endif
|
|
||||||
- sqlite3_fileio_init(p->db, 0, 0);
|
|
||||||
- sqlite3_shathree_init(p->db, 0, 0);
|
|
||||||
- sqlite3_completion_init(p->db, 0, 0);
|
|
||||||
- sqlite3_uint_init(p->db, 0, 0);
|
|
||||||
- sqlite3_decimal_init(p->db, 0, 0);
|
|
||||||
- sqlite3_ieee_init(p->db, 0, 0);
|
|
||||||
- sqlite3_series_init(p->db, 0, 0);
|
|
||||||
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
|
|
||||||
- sqlite3_dbdata_init(p->db, 0, 0);
|
|
||||||
-#endif
|
|
||||||
-#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
- sqlite3_zipfile_init(p->db, 0, 0);
|
|
||||||
- sqlite3_sqlar_init(p->db, 0, 0);
|
|
||||||
-#endif
|
|
||||||
sqlite3_create_function(p->db, "shell_add_schema", 3, SQLITE_UTF8, 0,
|
|
||||||
shellAddSchemaName, 0, 0);
|
|
||||||
sqlite3_create_function(p->db, "shell_module_schema", 1, SQLITE_UTF8, 0,
|
|
||||||
@@ -6644,8 +6617,6 @@
|
|
||||||
);
|
|
||||||
goto end_ar_command;
|
|
||||||
}
|
|
||||||
- sqlite3_fileio_init(cmd.db, 0, 0);
|
|
||||||
- sqlite3_sqlar_init(cmd.db, 0, 0);
|
|
||||||
sqlite3_create_function(cmd.db, "shell_putsnl", 1, SQLITE_UTF8, cmd.p,
|
|
||||||
shellPutsFunc, 0, 0);
|
|
||||||
|
|
||||||
@@ -11108,6 +11079,7 @@
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
data.out = stdout;
|
|
||||||
+ extern int sqlite3_appendvfs_init(sqlite3 *, char **, const sqlite3_api_routines *);
|
|
||||||
sqlite3_appendvfs_init(0,0,0);
|
|
||||||
|
|
||||||
/* Go ahead and open the database file if it already exists. If the
|
|
||||||
--- /src/test_config.c
|
|
||||||
+++ /src/test_config.c
|
|
||||||
@@ -359,6 +359,8 @@
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "datetime", "1", TCL_GLOBAL_ONLY);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ Tcl_SetVar2(interp, "sqlite_options", "decimal", "1", TCL_GLOBAL_ONLY);
|
|
||||||
+
|
|
||||||
#ifdef SQLITE_OMIT_DECLTYPE
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "decltype", "0", TCL_GLOBAL_ONLY);
|
|
||||||
#else
|
|
||||||
@@ -546,6 +548,8 @@
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "progress", "1", TCL_GLOBAL_ONLY);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ Tcl_SetVar2(interp, "sqlite_options", "regexp", "1", TCL_GLOBAL_ONLY);
|
|
||||||
+
|
|
||||||
#ifdef SQLITE_OMIT_REINDEX
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "reindex", "0", TCL_GLOBAL_ONLY);
|
|
||||||
#else
|
|
||||||
@@ -668,6 +672,8 @@
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "truncate_opt", "1", TCL_GLOBAL_ONLY);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ Tcl_SetVar2(interp, "sqlite_options", "uint", "1", TCL_GLOBAL_ONLY);
|
|
||||||
+
|
|
||||||
#ifdef SQLITE_OMIT_UTF16
|
|
||||||
Tcl_SetVar2(interp, "sqlite_options", "utf16", "0", TCL_GLOBAL_ONLY);
|
|
||||||
#else
|
|
||||||
--- /test/e_expr.test
|
|
||||||
+++ /test/e_expr.test
|
|
||||||
@@ -1079,7 +1079,7 @@
|
|
||||||
#
|
|
||||||
# There is a regexp function if ICU is enabled though.
|
|
||||||
#
|
|
||||||
-ifcapable !icu {
|
|
||||||
+ifcapable !icu&&!regexp {
|
|
||||||
do_catchsql_test e_expr-18.1.1 {
|
|
||||||
SELECT regexp('abc', 'def')
|
|
||||||
} {1 {no such function: regexp}}
|
|
||||||
--- /test/icu.test
|
|
||||||
+++ /test/icu.test
|
|
||||||
@@ -41,7 +41,7 @@
|
|
||||||
#
|
|
||||||
test_expr icu-1.1 {i1='hello'} {i1 REGEXP 'hello'} 1
|
|
||||||
test_expr icu-1.2 {i1='hello'} {i1 REGEXP '.ello'} 1
|
|
||||||
- test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell'} 0
|
|
||||||
+ test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell$'} 0
|
|
||||||
test_expr icu-1.4 {i1='hello'} {i1 REGEXP '.ell.*'} 1
|
|
||||||
test_expr icu-1.5 {i1=NULL} {i1 REGEXP '.ell.*'} {}
|
|
||||||
|
|
||||||
--- /test/pragma.test
|
|
||||||
+++ /test/pragma.test
|
|
||||||
@@ -1370,17 +1370,62 @@
|
|
||||||
} ;# ifcapable trigger
|
|
||||||
|
|
||||||
ifcapable schema_pragmas {
|
|
||||||
- do_test pragma-11.1 {
|
|
||||||
- execsql2 {
|
|
||||||
- pragma collation_list;
|
|
||||||
+ ifcapable decimal {
|
|
||||||
+ ifcapable uint {
|
|
||||||
+ do_test pragma-11.1 {
|
|
||||||
+ execsql2 {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {seq 0 name UINT seq 1 name decimal seq 2 name RTRIM seq 3 name NOCASE seq 4 name BINARY}
|
|
||||||
+ do_test pragma-11.2 {
|
|
||||||
+ db collate New_Collation blah...
|
|
||||||
+ execsql {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {0 New_Collation 1 UINT 2 decimal 3 RTRIM 4 NOCASE 5 BINARY}
|
|
||||||
}
|
|
||||||
- } {seq 0 name RTRIM seq 1 name NOCASE seq 2 name BINARY}
|
|
||||||
- do_test pragma-11.2 {
|
|
||||||
- db collate New_Collation blah...
|
|
||||||
- execsql {
|
|
||||||
- pragma collation_list;
|
|
||||||
+ ifcapable !uint {
|
|
||||||
+ do_test pragma-11.1 {
|
|
||||||
+ execsql2 {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {seq 0 name decimal seq 1 name RTRIM seq 2 name NOCASE seq 3 name BINARY}
|
|
||||||
+ do_test pragma-11.2 {
|
|
||||||
+ db collate New_Collation blah...
|
|
||||||
+ execsql {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {0 New_Collation 1 decimal 2 RTRIM 3 NOCASE 4 BINARY}
|
|
||||||
}
|
|
||||||
- } {0 New_Collation 1 RTRIM 2 NOCASE 3 BINARY}
|
|
||||||
+ }
|
|
||||||
+ ifcapable !decimal {
|
|
||||||
+ ifcapable uint {
|
|
||||||
+ do_test pragma-11.1 {
|
|
||||||
+ execsql2 {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {seq 0 name UINT seq 1 name RTRIM seq 2 name NOCASE seq 3 name BINARY}
|
|
||||||
+ do_test pragma-11.2 {
|
|
||||||
+ db collate New_Collation blah...
|
|
||||||
+ execsql {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {0 New_Collation 1 UINT 2 RTRIM 3 NOCASE 4 BINARY}
|
|
||||||
+ }
|
|
||||||
+ ifcapable !uint {
|
|
||||||
+ do_test pragma-11.1 {
|
|
||||||
+ execsql2 {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {seq 0 name RTRIM seq 1 name NOCASE seq 2 name BINARY}
|
|
||||||
+ do_test pragma-11.2 {
|
|
||||||
+ db collate New_Collation blah...
|
|
||||||
+ execsql {
|
|
||||||
+ pragma collation_list;
|
|
||||||
+ }
|
|
||||||
+ } {0 New_Collation 1 RTRIM 2 NOCASE 3 BINARY}
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
ifcapable schema_pragmas&&tempdb {
|
|
||||||
--- /test/sessionfuzz.c
|
|
||||||
+++ /test/sessionfuzz.c
|
|
||||||
@@ -698,49 +698,6 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <assert.h>
|
|
||||||
-#ifndef OMIT_ZLIB
|
|
||||||
-#include "zlib.h"
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-/*
|
|
||||||
-** Implementation of the "sqlar_uncompress(X,SZ)" SQL function
|
|
||||||
-**
|
|
||||||
-** Parameter SZ is interpreted as an integer. If it is less than or
|
|
||||||
-** equal to zero, then this function returns a copy of X. Or, if
|
|
||||||
-** SZ is equal to the size of X when interpreted as a blob, also
|
|
||||||
-** return a copy of X. Otherwise, decompress blob X using zlib
|
|
||||||
-** utility function uncompress() and return the results (another
|
|
||||||
-** blob).
|
|
||||||
-*/
|
|
||||||
-static void sqlarUncompressFunc(
|
|
||||||
- sqlite3_context *context,
|
|
||||||
- int argc,
|
|
||||||
- sqlite3_value **argv
|
|
||||||
-){
|
|
||||||
-#ifdef OMIT_ZLIB
|
|
||||||
- sqlite3_result_value(context, argv[0]);
|
|
||||||
-#else
|
|
||||||
- uLong nData;
|
|
||||||
- uLongf sz;
|
|
||||||
-
|
|
||||||
- assert( argc==2 );
|
|
||||||
- sz = sqlite3_value_int(argv[1]);
|
|
||||||
-
|
|
||||||
- if( sz<=0 || sz==(nData = sqlite3_value_bytes(argv[0])) ){
|
|
||||||
- sqlite3_result_value(context, argv[0]);
|
|
||||||
- }else{
|
|
||||||
- const Bytef *pData= sqlite3_value_blob(argv[0]);
|
|
||||||
- Bytef *pOut = sqlite3_malloc(sz);
|
|
||||||
- if( Z_OK!=uncompress(pOut, &sz, pData, nData) ){
|
|
||||||
- sqlite3_result_error(context, "error in uncompress()", -1);
|
|
||||||
- }else{
|
|
||||||
- sqlite3_result_blob(context, pOut, sz, SQLITE_TRANSIENT);
|
|
||||||
- }
|
|
||||||
- sqlite3_free(pOut);
|
|
||||||
- }
|
|
||||||
-#endif
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
|
|
||||||
/* Run a chunk of SQL. If any errors happen, print an error message
|
|
||||||
** and exit.
|
|
||||||
--- /tool/mksqlite3c.tcl
|
|
||||||
+++ /tool/mksqlite3c.tcl
|
|
||||||
@@ -129,6 +129,7 @@
|
|
||||||
rtree.h
|
|
||||||
sqlite3session.h
|
|
||||||
sqlite3.h
|
|
||||||
+ sqlite3expert.h
|
|
||||||
sqlite3ext.h
|
|
||||||
sqlite3rbu.h
|
|
||||||
sqliteicu.h
|
|
||||||
@@ -416,6 +417,28 @@
|
|
||||||
sqlite3session.c
|
|
||||||
fts5.c
|
|
||||||
stmt.c
|
|
||||||
+ amatch.c
|
|
||||||
+ appendvfs.c
|
|
||||||
+ carray.c
|
|
||||||
+ completion.c
|
|
||||||
+ csv.c
|
|
||||||
+ dbdata.c
|
|
||||||
+ decimal.c
|
|
||||||
+ eval.c
|
|
||||||
+ fileio.c
|
|
||||||
+ ieee754.c
|
|
||||||
+ nextchar.c
|
|
||||||
+ percentile.c
|
|
||||||
+ regexp.c
|
|
||||||
+ series.c
|
|
||||||
+ sha1.c
|
|
||||||
+ shathree.c
|
|
||||||
+ sqlar.c
|
|
||||||
+ sqlite3expert.c
|
|
||||||
+ totype.c
|
|
||||||
+ uint.c
|
|
||||||
+ uuid.c
|
|
||||||
+ zipfile.c
|
|
||||||
} {
|
|
||||||
copy_file tsrc/$file
|
|
||||||
}
|
|
||||||
--- /tool/sqlite3_analyzer.c.in
|
|
||||||
+++ /tool/sqlite3_analyzer.c.in
|
|
||||||
@@ -14,9 +14,6 @@
|
|
||||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
|
||||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
|
||||||
#define SQLITE_OMIT_LOAD_EXTENSION 1
|
|
||||||
-#ifndef USE_EXTERNAL_SQLITE
|
|
||||||
-INCLUDE sqlite3.c
|
|
||||||
-#endif
|
|
||||||
INCLUDE $ROOT/src/tclsqlite.c
|
|
||||||
|
|
||||||
const char *sqlite3_analyzer_init_proc(Tcl_Interp *interp){
|
|
||||||
--- /tool/sqltclsh.c.in
|
|
||||||
+++ /tool/sqltclsh.c.in
|
|
||||||
@@ -27,21 +27,13 @@
|
|
||||||
#define SQLITE_OMIT_SHARED_CACHE 1
|
|
||||||
#define SQLITE_DEFAULT_MEMSTATUS 0
|
|
||||||
#define SQLITE_MAX_EXPR_DEPTH 0
|
|
||||||
-INCLUDE sqlite3.c
|
|
||||||
-INCLUDE $ROOT/ext/misc/appendvfs.c
|
|
||||||
-#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
-INCLUDE $ROOT/ext/misc/zipfile.c
|
|
||||||
-INCLUDE $ROOT/ext/misc/sqlar.c
|
|
||||||
-#endif
|
|
||||||
+#include "sqlite3.h"
|
|
||||||
INCLUDE $ROOT/src/tclsqlite.c
|
|
||||||
|
|
||||||
const char *sqlite3_tclapp_init_proc(Tcl_Interp *interp){
|
|
||||||
(void)interp;
|
|
||||||
+ extern int sqlite3_appendvfs_init(sqlite3 *,char **, const sqlite3_api_routines *);
|
|
||||||
sqlite3_appendvfs_init(0,0,0);
|
|
||||||
-#ifdef SQLITE_HAVE_ZLIB
|
|
||||||
- sqlite3_auto_extension((void(*)(void))sqlite3_sqlar_init);
|
|
||||||
- sqlite3_auto_extension((void(*)(void))sqlite3_zipfile_init);
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
return
|
|
||||||
BEGIN_STRING
|
|
@ -1,17 +1,15 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
<pkgmetadata>
|
<pkgmetadata>
|
||||||
<maintainer type="person" proxied="yes">
|
<maintainer type="person">
|
||||||
<email>arfrever.fta@gmail.com</email>
|
<email>jsmolic@gentoo.org</email>
|
||||||
<name>Arfrever Frehtes Taifersar Arahesis</name>
|
|
||||||
</maintainer>
|
</maintainer>
|
||||||
<maintainer type="person" proxied="proxy">
|
<maintainer type="project">
|
||||||
<email>floppym@gentoo.org</email>
|
<email>base-system@gentoo.org</email>
|
||||||
<name>Mike Gilbert</name>
|
|
||||||
</maintainer>
|
</maintainer>
|
||||||
<use>
|
<use>
|
||||||
<flag name="secure-delete">Enable overwriting of deleted content with zeros by default (http://sqlite.org/pragma.html#pragma_secure_delete), causing some performance penalty</flag>
|
<flag name="secure-delete">Enable overwriting of deleted content with zeros by default (http://sqlite.org/pragma.html#pragma_secure_delete), causing some performance penalty</flag>
|
||||||
<flag name="tools">Install additional tools</flag>
|
<flag name="tools">Install additional tools, among which are included: sqlite3-analyzer, sqlite3-changeset, sqlite3-db-dump, sqlite3-diff, sqlite3-rbu, sqlite3-expert and others.</flag>
|
||||||
</use>
|
</use>
|
||||||
<upstream>
|
<upstream>
|
||||||
<remote-id type="cpe">cpe:/a:sqlite:sqlite</remote-id>
|
<remote-id type="cpe">cpe:/a:sqlite:sqlite</remote-id>
|
||||||
|
@ -1,374 +0,0 @@
|
|||||||
# Copyright 1999-2021 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI="7"
|
|
||||||
|
|
||||||
inherit autotools flag-o-matic multilib-minimal toolchain-funcs
|
|
||||||
|
|
||||||
if [[ "${PV}" != "9999" ]]; then
|
|
||||||
SRC_PV="$(printf "%u%02u%02u%02u" $(ver_rs 1- " "))"
|
|
||||||
DOC_PV="${SRC_PV}"
|
|
||||||
# DOC_PV="$(printf "%u%02u%02u00" $(ver_rs 1-3 " "))"
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESCRIPTION="SQL database engine"
|
|
||||||
HOMEPAGE="https://sqlite.org/"
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
SRC_URI=""
|
|
||||||
else
|
|
||||||
SRC_URI="https://sqlite.org/2020/${PN}-src-${SRC_PV}.zip
|
|
||||||
doc? ( https://sqlite.org/2020/${PN}-doc-${DOC_PV}.zip )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="public-domain"
|
|
||||||
SLOT="3"
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
|
||||||
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
PROPERTIES="live"
|
|
||||||
fi
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
BDEPEND=">=dev-lang/tcl-8.6:0
|
|
||||||
dev-vcs/fossil"
|
|
||||||
else
|
|
||||||
BDEPEND="app-arch/unzip
|
|
||||||
>=dev-lang/tcl-8.6:0"
|
|
||||||
fi
|
|
||||||
RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]
|
|
||||||
icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] )
|
|
||||||
readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
|
|
||||||
tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )
|
|
||||||
tools? ( dev-lang/tcl:0= )"
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )"
|
|
||||||
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
S="${WORKDIR}/${PN}"
|
|
||||||
else
|
|
||||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
|
||||||
addwrite "${distdir}"
|
|
||||||
mkdir -p "${distdir}/fossil-src/${PN}" || die
|
|
||||||
|
|
||||||
mkdir "${WORKDIR}/${PN}" || die
|
|
||||||
pushd "${WORKDIR}/${PN}" > /dev/null || die
|
|
||||||
if [[ ! -f "${distdir}/fossil-src/${PN}/sqlite.fossil" ]]; then
|
|
||||||
einfo fossil clone --verbose https://sqlite.org/src sqlite.fossil
|
|
||||||
fossil clone --verbose https://sqlite.org/src sqlite.fossil || die
|
|
||||||
echo
|
|
||||||
else
|
|
||||||
cp -p "${distdir}/fossil-src/${PN}/sqlite.fossil" . || die
|
|
||||||
einfo fossil pull --repository sqlite.fossil --verbose https://sqlite.org/src
|
|
||||||
fossil pull --repository sqlite.fossil --verbose https://sqlite.org/src || die
|
|
||||||
echo
|
|
||||||
fi
|
|
||||||
cp -p sqlite.fossil "${distdir}/fossil-src/${PN}" || die
|
|
||||||
einfo fossil open --quiet sqlite.fossil
|
|
||||||
fossil open --quiet sqlite.fossil || die
|
|
||||||
echo
|
|
||||||
popd > /dev/null || die
|
|
||||||
|
|
||||||
if use doc; then
|
|
||||||
mkdir "${WORKDIR}/${PN}-doc" || die
|
|
||||||
pushd "${WORKDIR}/${PN}-doc" > /dev/null || die
|
|
||||||
if [[ ! -f "${distdir}/fossil-src/${PN}/sqlite-doc.fossil" ]]; then
|
|
||||||
einfo fossil clone --verbose https://sqlite.org/docsrc sqlite-doc.fossil
|
|
||||||
fossil clone --verbose https://sqlite.org/docsrc sqlite-doc.fossil || die
|
|
||||||
echo
|
|
||||||
else
|
|
||||||
cp -p "${distdir}/fossil-src/${PN}/sqlite-doc.fossil" . || die
|
|
||||||
einfo fossil pull --repository sqlite-doc.fossil --verbose https://sqlite.org/docsrc
|
|
||||||
fossil pull --repository sqlite-doc.fossil --verbose https://sqlite.org/docsrc || die
|
|
||||||
echo
|
|
||||||
fi
|
|
||||||
cp -p sqlite-doc.fossil "${distdir}/fossil-src/${PN}" || die
|
|
||||||
einfo fossil open --quiet sqlite-doc.fossil
|
|
||||||
fossil open --quiet sqlite-doc.fossil || die
|
|
||||||
echo
|
|
||||||
popd > /dev/null || die
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
default
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
eapply "${FILESDIR}/"${PN}-3.33.0-build_{1.1,1.2,2.1,2.2}.patch
|
|
||||||
|
|
||||||
eapply_user
|
|
||||||
|
|
||||||
eautoreconf
|
|
||||||
|
|
||||||
multilib_copy_sources
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_configure() {
|
|
||||||
local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
|
|
||||||
local options=()
|
|
||||||
|
|
||||||
options+=(
|
|
||||||
--enable-load-extension
|
|
||||||
--enable-threadsafe
|
|
||||||
)
|
|
||||||
|
|
||||||
# Support detection of misuse of SQLite API.
|
|
||||||
# https://sqlite.org/compile.html#enable_api_armor
|
|
||||||
append-cppflags -DSQLITE_ENABLE_API_ARMOR
|
|
||||||
|
|
||||||
# Support bytecode and tables_used virtual tables.
|
|
||||||
# https://sqlite.org/compile.html#enable_bytecode_vtab
|
|
||||||
# https://sqlite.org/bytecodevtab.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
|
|
||||||
|
|
||||||
# Support column metadata functions.
|
|
||||||
# https://sqlite.org/compile.html#enable_column_metadata
|
|
||||||
# https://sqlite.org/c3ref/column_database_name.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
|
|
||||||
|
|
||||||
# Support sqlite_dbpage virtual table.
|
|
||||||
# https://sqlite.org/compile.html#enable_dbpage_vtab
|
|
||||||
# https://sqlite.org/dbpage.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
|
|
||||||
|
|
||||||
# Support dbstat virtual table.
|
|
||||||
# https://sqlite.org/compile.html#enable_dbstat_vtab
|
|
||||||
# https://sqlite.org/dbstat.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
|
|
||||||
|
|
||||||
# Support sqlite3_serialize() and sqlite3_deserialize() functions.
|
|
||||||
# https://sqlite.org/compile.html#enable_deserialize
|
|
||||||
# https://sqlite.org/c3ref/serialize.html
|
|
||||||
# https://sqlite.org/c3ref/deserialize.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_DESERIALIZE
|
|
||||||
|
|
||||||
# Support comments in output of EXPLAIN.
|
|
||||||
# https://sqlite.org/compile.html#enable_explain_comments
|
|
||||||
append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
|
|
||||||
|
|
||||||
# Support Full-Text Search versions 3, 4 and 5.
|
|
||||||
# https://sqlite.org/compile.html#enable_fts3
|
|
||||||
# https://sqlite.org/compile.html#enable_fts3_parenthesis
|
|
||||||
# https://sqlite.org/compile.html#enable_fts4
|
|
||||||
# https://sqlite.org/compile.html#enable_fts5
|
|
||||||
# https://sqlite.org/fts3.html
|
|
||||||
# https://sqlite.org/fts5.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
|
|
||||||
options+=(--enable-fts5)
|
|
||||||
|
|
||||||
# Support hidden columns.
|
|
||||||
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
|
||||||
|
|
||||||
# Support JSON1 extension.
|
|
||||||
# https://sqlite.org/compile.html#enable_json1
|
|
||||||
# https://sqlite.org/json1.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_JSON1
|
|
||||||
|
|
||||||
# Support memsys5 memory allocator.
|
|
||||||
# https://sqlite.org/compile.html#enable_memsys5
|
|
||||||
# https://sqlite.org/malloc.html#memsys5
|
|
||||||
append-cppflags -DSQLITE_ENABLE_MEMSYS5
|
|
||||||
|
|
||||||
# Support sqlite3_normalized_sql() function.
|
|
||||||
# https://sqlite.org/c3ref/expanded_sql.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_NORMALIZE
|
|
||||||
|
|
||||||
# Support sqlite_offset() function.
|
|
||||||
# https://sqlite.org/compile.html#enable_offset_sql_func
|
|
||||||
# https://sqlite.org/lang_corefunc.html#sqlite_offset
|
|
||||||
append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
|
|
||||||
|
|
||||||
# Support pre-update hook functions.
|
|
||||||
# https://sqlite.org/compile.html#enable_preupdate_hook
|
|
||||||
# https://sqlite.org/c3ref/preupdate_count.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
|
|
||||||
|
|
||||||
# Support Resumable Bulk Update extension.
|
|
||||||
# https://sqlite.org/compile.html#enable_rbu
|
|
||||||
# https://sqlite.org/rbu.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_RBU
|
|
||||||
|
|
||||||
# Support R*Trees.
|
|
||||||
# https://sqlite.org/compile.html#enable_rtree
|
|
||||||
# https://sqlite.org/compile.html#enable_geopoly
|
|
||||||
# https://sqlite.org/rtree.html
|
|
||||||
# https://sqlite.org/geopoly.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
|
|
||||||
|
|
||||||
# Support Session extension.
|
|
||||||
# https://sqlite.org/compile.html#enable_session
|
|
||||||
# https://sqlite.org/sessionintro.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_SESSION
|
|
||||||
|
|
||||||
# Support scan status functions.
|
|
||||||
# https://sqlite.org/compile.html#enable_stmt_scanstatus
|
|
||||||
# https://sqlite.org/c3ref/stmt_scanstatus.html
|
|
||||||
# https://sqlite.org/c3ref/stmt_scanstatus_reset.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
|
|
||||||
|
|
||||||
# Support sqlite_stmt virtual table.
|
|
||||||
# https://sqlite.org/compile.html#enable_stmtvtab
|
|
||||||
# https://sqlite.org/stmt.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_STMTVTAB
|
|
||||||
|
|
||||||
# Support unknown() function.
|
|
||||||
# https://sqlite.org/compile.html#enable_unknown_sql_function
|
|
||||||
append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
|
|
||||||
|
|
||||||
# Support unlock notification.
|
|
||||||
# https://sqlite.org/compile.html#enable_unlock_notify
|
|
||||||
# https://sqlite.org/c3ref/unlock_notify.html
|
|
||||||
# https://sqlite.org/unlock_notify.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
|
|
||||||
|
|
||||||
# Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
|
|
||||||
# https://sqlite.org/compile.html#enable_update_delete_limit
|
|
||||||
# https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses
|
|
||||||
# https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses
|
|
||||||
append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
|
||||||
|
|
||||||
# Support soundex() function.
|
|
||||||
# https://sqlite.org/compile.html#soundex
|
|
||||||
# https://sqlite.org/lang_corefunc.html#soundex
|
|
||||||
append-cppflags -DSQLITE_SOUNDEX
|
|
||||||
|
|
||||||
# Support URI filenames.
|
|
||||||
# https://sqlite.org/compile.html#use_uri
|
|
||||||
# https://sqlite.org/uri.html
|
|
||||||
append-cppflags -DSQLITE_USE_URI
|
|
||||||
|
|
||||||
# debug USE flag.
|
|
||||||
options+=($(use_enable debug))
|
|
||||||
|
|
||||||
# icu USE flag.
|
|
||||||
if use icu; then
|
|
||||||
# Support ICU extension.
|
|
||||||
# https://sqlite.org/compile.html#enable_icu
|
|
||||||
append-cppflags -DSQLITE_ENABLE_ICU
|
|
||||||
sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# readline USE flag.
|
|
||||||
options+=(
|
|
||||||
--disable-editline
|
|
||||||
$(use_enable readline)
|
|
||||||
)
|
|
||||||
if use readline; then
|
|
||||||
options+=(--with-readline-inc="-I${ESYSROOT}/usr/include/readline")
|
|
||||||
fi
|
|
||||||
|
|
||||||
# secure-delete USE flag.
|
|
||||||
if use secure-delete; then
|
|
||||||
# Enable secure_delete pragma by default.
|
|
||||||
# https://sqlite.org/compile.html#secure_delete
|
|
||||||
# https://sqlite.org/pragma.html#pragma_secure_delete
|
|
||||||
append-cppflags -DSQLITE_SECURE_DELETE
|
|
||||||
fi
|
|
||||||
|
|
||||||
# static-libs USE flag.
|
|
||||||
options+=($(use_enable static-libs static))
|
|
||||||
|
|
||||||
# tcl, test, tools USE flags.
|
|
||||||
if use tcl || use test || { use tools && multilib_is_native_abi; }; then
|
|
||||||
options+=(
|
|
||||||
--enable-tcl
|
|
||||||
--with-tcl="${ESYSROOT}/usr/$(get_libdir)"
|
|
||||||
)
|
|
||||||
else
|
|
||||||
options+=(--disable-tcl)
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${CHOST}" == *-mint* ]]; then
|
|
||||||
# sys/mman.h not available in MiNTLib.
|
|
||||||
# https://sqlite.org/compile.html#omit_wal
|
|
||||||
append-cppflags -DSQLITE_OMIT_WAL
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${ABI}" == "x86" ]]; then
|
|
||||||
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
|
||||||
append-cflags -mfpmath=sse
|
|
||||||
else
|
|
||||||
append-cflags -ffloat-store
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
econf "${options[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_compile() {
|
|
||||||
emake HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
|
|
||||||
|
|
||||||
if use tools && multilib_is_native_abi; then
|
|
||||||
emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_test() {
|
|
||||||
if [[ "${EUID}" -eq 0 ]]; then
|
|
||||||
ewarn "Skipping tests due to root permissions"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
|
||||||
|
|
||||||
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_install() {
|
|
||||||
emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
|
|
||||||
|
|
||||||
if use tools && multilib_is_native_abi; then
|
|
||||||
install_tool() {
|
|
||||||
if [[ -f ".libs/${1}" ]]; then
|
|
||||||
newbin ".libs/${1}" "${2}"
|
|
||||||
else
|
|
||||||
newbin "${1}" "${2}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
install_tool changeset sqlite3-changeset
|
|
||||||
install_tool dbdump sqlite3-db-dump
|
|
||||||
install_tool dbhash sqlite3-db-hash
|
|
||||||
install_tool dbtotxt sqlite3-db-to-txt
|
|
||||||
install_tool index_usage sqlite3-index-usage
|
|
||||||
install_tool rbu sqlite3-rbu
|
|
||||||
install_tool scrub sqlite3-scrub
|
|
||||||
install_tool showdb sqlite3-show-db
|
|
||||||
install_tool showjournal sqlite3-show-journal
|
|
||||||
install_tool showshm sqlite3-show-shm
|
|
||||||
install_tool showstat4 sqlite3-show-stat4
|
|
||||||
install_tool showwal sqlite3-show-wal
|
|
||||||
install_tool sqldiff sqlite3-diff
|
|
||||||
install_tool sqlite3_analyzer sqlite3-analyzer
|
|
||||||
install_tool sqlite3_checker sqlite3-checker
|
|
||||||
install_tool sqlite3_expert sqlite3-expert
|
|
||||||
install_tool sqltclsh sqlite3-tclsh
|
|
||||||
|
|
||||||
unset -f install_tool
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_install_all() {
|
|
||||||
find "${D}" -name "*.la" -type f -delete || die
|
|
||||||
|
|
||||||
doman sqlite3.1
|
|
||||||
|
|
||||||
if use doc; then
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
pushd "${WORKDIR}/${PN}-doc" > /dev/null || die
|
|
||||||
else
|
|
||||||
pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die
|
|
||||||
fi
|
|
||||||
rm *.db *.txt || die
|
|
||||||
(
|
|
||||||
docinto html
|
|
||||||
dodoc -r *
|
|
||||||
)
|
|
||||||
popd > /dev/null || die
|
|
||||||
fi
|
|
||||||
}
|
|
@ -1,434 +0,0 @@
|
|||||||
# Copyright 1999-2021 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI="7"
|
|
||||||
|
|
||||||
inherit autotools flag-o-matic multilib-minimal toolchain-funcs
|
|
||||||
|
|
||||||
if [[ "${PV}" != "9999" ]]; then
|
|
||||||
SRC_PV="$(printf "%u%02u%02u%02u" $(ver_rs 1- " "))"
|
|
||||||
DOC_PV="${SRC_PV}"
|
|
||||||
# DOC_PV="$(printf "%u%02u%02u00" $(ver_rs 1-3 " "))"
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESCRIPTION="SQL database engine"
|
|
||||||
HOMEPAGE="https://sqlite.org/"
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
SRC_URI=""
|
|
||||||
else
|
|
||||||
SRC_URI="https://sqlite.org/2021/${PN}-src-${SRC_PV}.zip
|
|
||||||
doc? ( https://sqlite.org/2021/${PN}-doc-${DOC_PV}.zip )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="public-domain"
|
|
||||||
SLOT="3"
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
|
||||||
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
PROPERTIES="live"
|
|
||||||
fi
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
BDEPEND=">=dev-lang/tcl-8.6:0
|
|
||||||
dev-vcs/fossil"
|
|
||||||
else
|
|
||||||
BDEPEND="app-arch/unzip
|
|
||||||
>=dev-lang/tcl-8.6:0"
|
|
||||||
fi
|
|
||||||
RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]
|
|
||||||
icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] )
|
|
||||||
readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
|
|
||||||
tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )
|
|
||||||
tools? ( dev-lang/tcl:0= )"
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )"
|
|
||||||
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
S="${WORKDIR}/${PN}"
|
|
||||||
else
|
|
||||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
_fossil_fetch() {
|
|
||||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
|
||||||
local repo_id="${1}"
|
|
||||||
local repo_uri="${2}"
|
|
||||||
|
|
||||||
local -x FOSSIL_HOME="${HOME}"
|
|
||||||
|
|
||||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
|
||||||
pushd "${T}/fossil/${repo_id}" > /dev/null || die
|
|
||||||
|
|
||||||
if [[ -n "${EVCS_OFFLINE}" ]]; then
|
|
||||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
|
||||||
die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
|
||||||
einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil"
|
|
||||||
fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die
|
|
||||||
echo
|
|
||||||
else
|
|
||||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die
|
|
||||||
einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}"
|
|
||||||
fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die
|
|
||||||
echo
|
|
||||||
fi
|
|
||||||
|
|
||||||
(
|
|
||||||
addwrite "${distdir}"
|
|
||||||
mkdir -p "${distdir}/fossil-src/${repo_id}" || die
|
|
||||||
cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
popd > /dev/null || die
|
|
||||||
}
|
|
||||||
|
|
||||||
_fossil_checkout() {
|
|
||||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
|
||||||
local repo_id="${1}"
|
|
||||||
local branch_or_commit="${2}"
|
|
||||||
local target_directory="${3}"
|
|
||||||
|
|
||||||
local -x FOSSIL_HOME="${HOME}"
|
|
||||||
|
|
||||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
|
||||||
die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then
|
|
||||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
|
||||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir "${target_directory}" || die
|
|
||||||
pushd "${target_directory}" > /dev/null || die
|
|
||||||
|
|
||||||
einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}"
|
|
||||||
fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die
|
|
||||||
echo
|
|
||||||
|
|
||||||
popd > /dev/null || die
|
|
||||||
}
|
|
||||||
|
|
||||||
fossil_fetch() {
|
|
||||||
local repo_id="${1}"
|
|
||||||
local repo_uri="${2}"
|
|
||||||
local target_directory="${3}"
|
|
||||||
|
|
||||||
local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}"
|
|
||||||
|
|
||||||
_fossil_fetch "${repo_id}" "${repo_uri}"
|
|
||||||
_fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}"
|
|
||||||
if use doc; then
|
|
||||||
fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
default
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
eapply "${FILESDIR}/"${PN}-3.35.0-build_{1.1,1.2,2.1,2.2}.patch
|
|
||||||
|
|
||||||
eapply_user
|
|
||||||
|
|
||||||
eautoreconf
|
|
||||||
|
|
||||||
multilib_copy_sources
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_configure() {
|
|
||||||
local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
|
|
||||||
local options=()
|
|
||||||
|
|
||||||
options+=(
|
|
||||||
--enable-load-extension
|
|
||||||
--enable-threadsafe
|
|
||||||
)
|
|
||||||
|
|
||||||
# Support detection of misuse of SQLite API.
|
|
||||||
# https://sqlite.org/compile.html#enable_api_armor
|
|
||||||
append-cppflags -DSQLITE_ENABLE_API_ARMOR
|
|
||||||
|
|
||||||
# Support bytecode and tables_used virtual tables.
|
|
||||||
# https://sqlite.org/compile.html#enable_bytecode_vtab
|
|
||||||
# https://sqlite.org/bytecodevtab.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
|
|
||||||
|
|
||||||
# Support column metadata functions.
|
|
||||||
# https://sqlite.org/compile.html#enable_column_metadata
|
|
||||||
# https://sqlite.org/c3ref/column_database_name.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
|
|
||||||
|
|
||||||
# Support sqlite_dbpage virtual table.
|
|
||||||
# https://sqlite.org/compile.html#enable_dbpage_vtab
|
|
||||||
# https://sqlite.org/dbpage.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
|
|
||||||
|
|
||||||
# Support dbstat virtual table.
|
|
||||||
# https://sqlite.org/compile.html#enable_dbstat_vtab
|
|
||||||
# https://sqlite.org/dbstat.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
|
|
||||||
|
|
||||||
# Support sqlite3_serialize() and sqlite3_deserialize() functions.
|
|
||||||
# https://sqlite.org/compile.html#enable_deserialize
|
|
||||||
# https://sqlite.org/c3ref/serialize.html
|
|
||||||
# https://sqlite.org/c3ref/deserialize.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_DESERIALIZE
|
|
||||||
|
|
||||||
# Support comments in output of EXPLAIN.
|
|
||||||
# https://sqlite.org/compile.html#enable_explain_comments
|
|
||||||
append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
|
|
||||||
|
|
||||||
# Support Full-Text Search versions 3, 4 and 5.
|
|
||||||
# https://sqlite.org/compile.html#enable_fts3
|
|
||||||
# https://sqlite.org/compile.html#enable_fts3_parenthesis
|
|
||||||
# https://sqlite.org/compile.html#enable_fts4
|
|
||||||
# https://sqlite.org/compile.html#enable_fts5
|
|
||||||
# https://sqlite.org/fts3.html
|
|
||||||
# https://sqlite.org/fts5.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
|
|
||||||
options+=(--enable-fts5)
|
|
||||||
|
|
||||||
# Support hidden columns.
|
|
||||||
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
|
||||||
|
|
||||||
# Support JSON1 extension.
|
|
||||||
# https://sqlite.org/compile.html#enable_json1
|
|
||||||
# https://sqlite.org/json1.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_JSON1
|
|
||||||
|
|
||||||
# Support memsys5 memory allocator.
|
|
||||||
# https://sqlite.org/compile.html#enable_memsys5
|
|
||||||
# https://sqlite.org/malloc.html#memsys5
|
|
||||||
append-cppflags -DSQLITE_ENABLE_MEMSYS5
|
|
||||||
|
|
||||||
# Support sqlite3_normalized_sql() function.
|
|
||||||
# https://sqlite.org/c3ref/expanded_sql.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_NORMALIZE
|
|
||||||
|
|
||||||
# Support sqlite_offset() function.
|
|
||||||
# https://sqlite.org/compile.html#enable_offset_sql_func
|
|
||||||
# https://sqlite.org/lang_corefunc.html#sqlite_offset
|
|
||||||
append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
|
|
||||||
|
|
||||||
# Support pre-update hook functions.
|
|
||||||
# https://sqlite.org/compile.html#enable_preupdate_hook
|
|
||||||
# https://sqlite.org/c3ref/preupdate_count.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
|
|
||||||
|
|
||||||
# Support Resumable Bulk Update extension.
|
|
||||||
# https://sqlite.org/compile.html#enable_rbu
|
|
||||||
# https://sqlite.org/rbu.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_RBU
|
|
||||||
|
|
||||||
# Support R*Trees.
|
|
||||||
# https://sqlite.org/compile.html#enable_rtree
|
|
||||||
# https://sqlite.org/compile.html#enable_geopoly
|
|
||||||
# https://sqlite.org/rtree.html
|
|
||||||
# https://sqlite.org/geopoly.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
|
|
||||||
|
|
||||||
# Support Session extension.
|
|
||||||
# https://sqlite.org/compile.html#enable_session
|
|
||||||
# https://sqlite.org/sessionintro.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_SESSION
|
|
||||||
|
|
||||||
# Support scan status functions.
|
|
||||||
# https://sqlite.org/compile.html#enable_stmt_scanstatus
|
|
||||||
# https://sqlite.org/c3ref/stmt_scanstatus.html
|
|
||||||
# https://sqlite.org/c3ref/stmt_scanstatus_reset.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
|
|
||||||
|
|
||||||
# Support sqlite_stmt virtual table.
|
|
||||||
# https://sqlite.org/compile.html#enable_stmtvtab
|
|
||||||
# https://sqlite.org/stmt.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_STMTVTAB
|
|
||||||
|
|
||||||
# Support unknown() function.
|
|
||||||
# https://sqlite.org/compile.html#enable_unknown_sql_function
|
|
||||||
append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
|
|
||||||
|
|
||||||
# Support unlock notification.
|
|
||||||
# https://sqlite.org/compile.html#enable_unlock_notify
|
|
||||||
# https://sqlite.org/c3ref/unlock_notify.html
|
|
||||||
# https://sqlite.org/unlock_notify.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
|
|
||||||
|
|
||||||
# Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
|
|
||||||
# https://sqlite.org/compile.html#enable_update_delete_limit
|
|
||||||
# https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses
|
|
||||||
# https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses
|
|
||||||
append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
|
||||||
|
|
||||||
# Support soundex() function.
|
|
||||||
# https://sqlite.org/compile.html#soundex
|
|
||||||
# https://sqlite.org/lang_corefunc.html#soundex
|
|
||||||
append-cppflags -DSQLITE_SOUNDEX
|
|
||||||
|
|
||||||
# Support URI filenames.
|
|
||||||
# https://sqlite.org/compile.html#use_uri
|
|
||||||
# https://sqlite.org/uri.html
|
|
||||||
append-cppflags -DSQLITE_USE_URI
|
|
||||||
|
|
||||||
# debug USE flag.
|
|
||||||
options+=($(use_enable debug))
|
|
||||||
|
|
||||||
# icu USE flag.
|
|
||||||
if use icu; then
|
|
||||||
# Support ICU extension.
|
|
||||||
# https://sqlite.org/compile.html#enable_icu
|
|
||||||
append-cppflags -DSQLITE_ENABLE_ICU
|
|
||||||
sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# readline USE flag.
|
|
||||||
options+=(
|
|
||||||
--disable-editline
|
|
||||||
$(use_enable readline)
|
|
||||||
)
|
|
||||||
if use readline; then
|
|
||||||
options+=(--with-readline-inc="-I${ESYSROOT}/usr/include/readline")
|
|
||||||
fi
|
|
||||||
|
|
||||||
# secure-delete USE flag.
|
|
||||||
if use secure-delete; then
|
|
||||||
# Enable secure_delete pragma by default.
|
|
||||||
# https://sqlite.org/compile.html#secure_delete
|
|
||||||
# https://sqlite.org/pragma.html#pragma_secure_delete
|
|
||||||
append-cppflags -DSQLITE_SECURE_DELETE
|
|
||||||
fi
|
|
||||||
|
|
||||||
# static-libs USE flag.
|
|
||||||
options+=($(use_enable static-libs static))
|
|
||||||
|
|
||||||
# tcl, test, tools USE flags.
|
|
||||||
if use tcl || use test || { use tools && multilib_is_native_abi; }; then
|
|
||||||
options+=(
|
|
||||||
--enable-tcl
|
|
||||||
--with-tcl="${ESYSROOT}/usr/$(get_libdir)"
|
|
||||||
)
|
|
||||||
else
|
|
||||||
options+=(--disable-tcl)
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${CHOST}" == *-mint* ]]; then
|
|
||||||
# sys/mman.h not available in MiNTLib.
|
|
||||||
# https://sqlite.org/compile.html#omit_wal
|
|
||||||
append-cppflags -DSQLITE_OMIT_WAL
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${ABI}" == "x86" ]]; then
|
|
||||||
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
|
||||||
append-cflags -mfpmath=sse
|
|
||||||
else
|
|
||||||
append-cflags -ffloat-store
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
econf "${options[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_compile() {
|
|
||||||
emake HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
|
|
||||||
|
|
||||||
if use tools && multilib_is_native_abi; then
|
|
||||||
emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${PV}" == "9999" ]] && use doc && multilib_is_native_abi; then
|
|
||||||
emake tclsqlite3.c
|
|
||||||
|
|
||||||
local build_directory="$(pwd)"
|
|
||||||
build_directory="${build_directory##*/}"
|
|
||||||
|
|
||||||
mkdir "${WORKDIR}/${PN}-doc-build" || die
|
|
||||||
pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die
|
|
||||||
|
|
||||||
emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc
|
|
||||||
rmdir doc/matrix{/*,} || die
|
|
||||||
|
|
||||||
popd > /dev/null || die
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_test() {
|
|
||||||
if [[ "${EUID}" -eq 0 ]]; then
|
|
||||||
ewarn "Skipping tests due to root permissions"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
|
||||||
|
|
||||||
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_install() {
|
|
||||||
emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
|
|
||||||
|
|
||||||
if use tools && multilib_is_native_abi; then
|
|
||||||
install_tool() {
|
|
||||||
if [[ -f ".libs/${1}" ]]; then
|
|
||||||
newbin ".libs/${1}" "${2}"
|
|
||||||
else
|
|
||||||
newbin "${1}" "${2}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
install_tool changeset sqlite3-changeset
|
|
||||||
install_tool dbdump sqlite3-db-dump
|
|
||||||
install_tool dbhash sqlite3-db-hash
|
|
||||||
install_tool dbtotxt sqlite3-db-to-txt
|
|
||||||
install_tool index_usage sqlite3-index-usage
|
|
||||||
install_tool rbu sqlite3-rbu
|
|
||||||
install_tool scrub sqlite3-scrub
|
|
||||||
install_tool showdb sqlite3-show-db
|
|
||||||
install_tool showjournal sqlite3-show-journal
|
|
||||||
install_tool showshm sqlite3-show-shm
|
|
||||||
install_tool showstat4 sqlite3-show-stat4
|
|
||||||
install_tool showwal sqlite3-show-wal
|
|
||||||
install_tool sqldiff sqlite3-diff
|
|
||||||
install_tool sqlite3_analyzer sqlite3-analyzer
|
|
||||||
install_tool sqlite3_checker sqlite3-checker
|
|
||||||
install_tool sqlite3_expert sqlite3-expert
|
|
||||||
install_tool sqltclsh sqlite3-tclsh
|
|
||||||
|
|
||||||
unset -f install_tool
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_install_all() {
|
|
||||||
find "${ED}" -name "*.la" -delete || die
|
|
||||||
|
|
||||||
doman sqlite3.1
|
|
||||||
|
|
||||||
if use doc; then
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die
|
|
||||||
else
|
|
||||||
pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
find "(" -name "*.db" -o -name "*.txt" ")" -delete || die
|
|
||||||
if [[ "${PV}" != "9999" ]]; then
|
|
||||||
rm search search.d/admin || die
|
|
||||||
rmdir search.d || die
|
|
||||||
find -name "*~" -delete || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
(
|
|
||||||
docinto html
|
|
||||||
dodoc -r *
|
|
||||||
)
|
|
||||||
|
|
||||||
popd > /dev/null || die
|
|
||||||
fi
|
|
||||||
}
|
|
@ -1,434 +0,0 @@
|
|||||||
# Copyright 1999-2021 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI="7"
|
|
||||||
|
|
||||||
inherit autotools flag-o-matic multilib-minimal toolchain-funcs
|
|
||||||
|
|
||||||
if [[ "${PV}" != "9999" ]]; then
|
|
||||||
SRC_PV="$(printf "%u%02u%02u%02u" $(ver_rs 1- " "))"
|
|
||||||
DOC_PV="${SRC_PV}"
|
|
||||||
# DOC_PV="$(printf "%u%02u%02u00" $(ver_rs 1-3 " "))"
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESCRIPTION="SQL database engine"
|
|
||||||
HOMEPAGE="https://sqlite.org/"
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
SRC_URI=""
|
|
||||||
else
|
|
||||||
SRC_URI="https://sqlite.org/2021/${PN}-src-${SRC_PV}.zip
|
|
||||||
doc? ( https://sqlite.org/2021/${PN}-doc-${DOC_PV}.zip )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="public-domain"
|
|
||||||
SLOT="3"
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
|
||||||
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
PROPERTIES="live"
|
|
||||||
fi
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
BDEPEND=">=dev-lang/tcl-8.6:0
|
|
||||||
dev-vcs/fossil"
|
|
||||||
else
|
|
||||||
BDEPEND="app-arch/unzip
|
|
||||||
>=dev-lang/tcl-8.6:0"
|
|
||||||
fi
|
|
||||||
RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]
|
|
||||||
icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] )
|
|
||||||
readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
|
|
||||||
tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )
|
|
||||||
tools? ( dev-lang/tcl:0= )"
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )"
|
|
||||||
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
S="${WORKDIR}/${PN}"
|
|
||||||
else
|
|
||||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
_fossil_fetch() {
|
|
||||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
|
||||||
local repo_id="${1}"
|
|
||||||
local repo_uri="${2}"
|
|
||||||
|
|
||||||
local -x FOSSIL_HOME="${HOME}"
|
|
||||||
|
|
||||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
|
||||||
pushd "${T}/fossil/${repo_id}" > /dev/null || die
|
|
||||||
|
|
||||||
if [[ -n "${EVCS_OFFLINE}" ]]; then
|
|
||||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
|
||||||
die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
|
||||||
einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil"
|
|
||||||
fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die
|
|
||||||
echo
|
|
||||||
else
|
|
||||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die
|
|
||||||
einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}"
|
|
||||||
fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die
|
|
||||||
echo
|
|
||||||
fi
|
|
||||||
|
|
||||||
(
|
|
||||||
addwrite "${distdir}"
|
|
||||||
mkdir -p "${distdir}/fossil-src/${repo_id}" || die
|
|
||||||
cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
popd > /dev/null || die
|
|
||||||
}
|
|
||||||
|
|
||||||
_fossil_checkout() {
|
|
||||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
|
||||||
local repo_id="${1}"
|
|
||||||
local branch_or_commit="${2}"
|
|
||||||
local target_directory="${3}"
|
|
||||||
|
|
||||||
local -x FOSSIL_HOME="${HOME}"
|
|
||||||
|
|
||||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
|
||||||
die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then
|
|
||||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
|
||||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir "${target_directory}" || die
|
|
||||||
pushd "${target_directory}" > /dev/null || die
|
|
||||||
|
|
||||||
einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}"
|
|
||||||
fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die
|
|
||||||
echo
|
|
||||||
|
|
||||||
popd > /dev/null || die
|
|
||||||
}
|
|
||||||
|
|
||||||
fossil_fetch() {
|
|
||||||
local repo_id="${1}"
|
|
||||||
local repo_uri="${2}"
|
|
||||||
local target_directory="${3}"
|
|
||||||
|
|
||||||
local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}"
|
|
||||||
|
|
||||||
_fossil_fetch "${repo_id}" "${repo_uri}"
|
|
||||||
_fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}"
|
|
||||||
if use doc; then
|
|
||||||
fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
default
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
eapply "${FILESDIR}/"${PN}-3.35.0-build_{1.1,1.2,2.1,2.2}.patch
|
|
||||||
|
|
||||||
eapply_user
|
|
||||||
|
|
||||||
eautoreconf
|
|
||||||
|
|
||||||
multilib_copy_sources
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_configure() {
|
|
||||||
local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
|
|
||||||
local options=()
|
|
||||||
|
|
||||||
options+=(
|
|
||||||
--enable-load-extension
|
|
||||||
--enable-threadsafe
|
|
||||||
)
|
|
||||||
|
|
||||||
# Support detection of misuse of SQLite API.
|
|
||||||
# https://sqlite.org/compile.html#enable_api_armor
|
|
||||||
append-cppflags -DSQLITE_ENABLE_API_ARMOR
|
|
||||||
|
|
||||||
# Support bytecode and tables_used virtual tables.
|
|
||||||
# https://sqlite.org/compile.html#enable_bytecode_vtab
|
|
||||||
# https://sqlite.org/bytecodevtab.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
|
|
||||||
|
|
||||||
# Support column metadata functions.
|
|
||||||
# https://sqlite.org/compile.html#enable_column_metadata
|
|
||||||
# https://sqlite.org/c3ref/column_database_name.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
|
|
||||||
|
|
||||||
# Support sqlite_dbpage virtual table.
|
|
||||||
# https://sqlite.org/compile.html#enable_dbpage_vtab
|
|
||||||
# https://sqlite.org/dbpage.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
|
|
||||||
|
|
||||||
# Support dbstat virtual table.
|
|
||||||
# https://sqlite.org/compile.html#enable_dbstat_vtab
|
|
||||||
# https://sqlite.org/dbstat.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
|
|
||||||
|
|
||||||
# Support sqlite3_serialize() and sqlite3_deserialize() functions.
|
|
||||||
# https://sqlite.org/compile.html#enable_deserialize
|
|
||||||
# https://sqlite.org/c3ref/serialize.html
|
|
||||||
# https://sqlite.org/c3ref/deserialize.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_DESERIALIZE
|
|
||||||
|
|
||||||
# Support comments in output of EXPLAIN.
|
|
||||||
# https://sqlite.org/compile.html#enable_explain_comments
|
|
||||||
append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
|
|
||||||
|
|
||||||
# Support Full-Text Search versions 3, 4 and 5.
|
|
||||||
# https://sqlite.org/compile.html#enable_fts3
|
|
||||||
# https://sqlite.org/compile.html#enable_fts3_parenthesis
|
|
||||||
# https://sqlite.org/compile.html#enable_fts4
|
|
||||||
# https://sqlite.org/compile.html#enable_fts5
|
|
||||||
# https://sqlite.org/fts3.html
|
|
||||||
# https://sqlite.org/fts5.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
|
|
||||||
options+=(--enable-fts5)
|
|
||||||
|
|
||||||
# Support hidden columns.
|
|
||||||
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
|
||||||
|
|
||||||
# Support JSON1 extension.
|
|
||||||
# https://sqlite.org/compile.html#enable_json1
|
|
||||||
# https://sqlite.org/json1.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_JSON1
|
|
||||||
|
|
||||||
# Support memsys5 memory allocator.
|
|
||||||
# https://sqlite.org/compile.html#enable_memsys5
|
|
||||||
# https://sqlite.org/malloc.html#memsys5
|
|
||||||
append-cppflags -DSQLITE_ENABLE_MEMSYS5
|
|
||||||
|
|
||||||
# Support sqlite3_normalized_sql() function.
|
|
||||||
# https://sqlite.org/c3ref/expanded_sql.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_NORMALIZE
|
|
||||||
|
|
||||||
# Support sqlite_offset() function.
|
|
||||||
# https://sqlite.org/compile.html#enable_offset_sql_func
|
|
||||||
# https://sqlite.org/lang_corefunc.html#sqlite_offset
|
|
||||||
append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
|
|
||||||
|
|
||||||
# Support pre-update hook functions.
|
|
||||||
# https://sqlite.org/compile.html#enable_preupdate_hook
|
|
||||||
# https://sqlite.org/c3ref/preupdate_count.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
|
|
||||||
|
|
||||||
# Support Resumable Bulk Update extension.
|
|
||||||
# https://sqlite.org/compile.html#enable_rbu
|
|
||||||
# https://sqlite.org/rbu.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_RBU
|
|
||||||
|
|
||||||
# Support R*Trees.
|
|
||||||
# https://sqlite.org/compile.html#enable_rtree
|
|
||||||
# https://sqlite.org/compile.html#enable_geopoly
|
|
||||||
# https://sqlite.org/rtree.html
|
|
||||||
# https://sqlite.org/geopoly.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
|
|
||||||
|
|
||||||
# Support Session extension.
|
|
||||||
# https://sqlite.org/compile.html#enable_session
|
|
||||||
# https://sqlite.org/sessionintro.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_SESSION
|
|
||||||
|
|
||||||
# Support scan status functions.
|
|
||||||
# https://sqlite.org/compile.html#enable_stmt_scanstatus
|
|
||||||
# https://sqlite.org/c3ref/stmt_scanstatus.html
|
|
||||||
# https://sqlite.org/c3ref/stmt_scanstatus_reset.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
|
|
||||||
|
|
||||||
# Support sqlite_stmt virtual table.
|
|
||||||
# https://sqlite.org/compile.html#enable_stmtvtab
|
|
||||||
# https://sqlite.org/stmt.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_STMTVTAB
|
|
||||||
|
|
||||||
# Support unknown() function.
|
|
||||||
# https://sqlite.org/compile.html#enable_unknown_sql_function
|
|
||||||
append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
|
|
||||||
|
|
||||||
# Support unlock notification.
|
|
||||||
# https://sqlite.org/compile.html#enable_unlock_notify
|
|
||||||
# https://sqlite.org/c3ref/unlock_notify.html
|
|
||||||
# https://sqlite.org/unlock_notify.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
|
|
||||||
|
|
||||||
# Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
|
|
||||||
# https://sqlite.org/compile.html#enable_update_delete_limit
|
|
||||||
# https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses
|
|
||||||
# https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses
|
|
||||||
append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
|
||||||
|
|
||||||
# Support soundex() function.
|
|
||||||
# https://sqlite.org/compile.html#soundex
|
|
||||||
# https://sqlite.org/lang_corefunc.html#soundex
|
|
||||||
append-cppflags -DSQLITE_SOUNDEX
|
|
||||||
|
|
||||||
# Support URI filenames.
|
|
||||||
# https://sqlite.org/compile.html#use_uri
|
|
||||||
# https://sqlite.org/uri.html
|
|
||||||
append-cppflags -DSQLITE_USE_URI
|
|
||||||
|
|
||||||
# debug USE flag.
|
|
||||||
options+=($(use_enable debug))
|
|
||||||
|
|
||||||
# icu USE flag.
|
|
||||||
if use icu; then
|
|
||||||
# Support ICU extension.
|
|
||||||
# https://sqlite.org/compile.html#enable_icu
|
|
||||||
append-cppflags -DSQLITE_ENABLE_ICU
|
|
||||||
sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# readline USE flag.
|
|
||||||
options+=(
|
|
||||||
--disable-editline
|
|
||||||
$(use_enable readline)
|
|
||||||
)
|
|
||||||
if use readline; then
|
|
||||||
options+=(--with-readline-inc="-I${ESYSROOT}/usr/include/readline")
|
|
||||||
fi
|
|
||||||
|
|
||||||
# secure-delete USE flag.
|
|
||||||
if use secure-delete; then
|
|
||||||
# Enable secure_delete pragma by default.
|
|
||||||
# https://sqlite.org/compile.html#secure_delete
|
|
||||||
# https://sqlite.org/pragma.html#pragma_secure_delete
|
|
||||||
append-cppflags -DSQLITE_SECURE_DELETE
|
|
||||||
fi
|
|
||||||
|
|
||||||
# static-libs USE flag.
|
|
||||||
options+=($(use_enable static-libs static))
|
|
||||||
|
|
||||||
# tcl, test, tools USE flags.
|
|
||||||
if use tcl || use test || { use tools && multilib_is_native_abi; }; then
|
|
||||||
options+=(
|
|
||||||
--enable-tcl
|
|
||||||
--with-tcl="${ESYSROOT}/usr/$(get_libdir)"
|
|
||||||
)
|
|
||||||
else
|
|
||||||
options+=(--disable-tcl)
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${CHOST}" == *-mint* ]]; then
|
|
||||||
# sys/mman.h not available in MiNTLib.
|
|
||||||
# https://sqlite.org/compile.html#omit_wal
|
|
||||||
append-cppflags -DSQLITE_OMIT_WAL
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${ABI}" == "x86" ]]; then
|
|
||||||
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
|
||||||
append-cflags -mfpmath=sse
|
|
||||||
else
|
|
||||||
append-cflags -ffloat-store
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
econf "${options[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_compile() {
|
|
||||||
emake HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
|
|
||||||
|
|
||||||
if use tools && multilib_is_native_abi; then
|
|
||||||
emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${PV}" == "9999" ]] && use doc && multilib_is_native_abi; then
|
|
||||||
emake tclsqlite3.c
|
|
||||||
|
|
||||||
local build_directory="$(pwd)"
|
|
||||||
build_directory="${build_directory##*/}"
|
|
||||||
|
|
||||||
mkdir "${WORKDIR}/${PN}-doc-build" || die
|
|
||||||
pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die
|
|
||||||
|
|
||||||
emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc
|
|
||||||
rmdir doc/matrix{/*,} || die
|
|
||||||
|
|
||||||
popd > /dev/null || die
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_test() {
|
|
||||||
if [[ "${EUID}" -eq 0 ]]; then
|
|
||||||
ewarn "Skipping tests due to root permissions"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
|
||||||
|
|
||||||
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_install() {
|
|
||||||
emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
|
|
||||||
|
|
||||||
if use tools && multilib_is_native_abi; then
|
|
||||||
install_tool() {
|
|
||||||
if [[ -f ".libs/${1}" ]]; then
|
|
||||||
newbin ".libs/${1}" "${2}"
|
|
||||||
else
|
|
||||||
newbin "${1}" "${2}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
install_tool changeset sqlite3-changeset
|
|
||||||
install_tool dbdump sqlite3-db-dump
|
|
||||||
install_tool dbhash sqlite3-db-hash
|
|
||||||
install_tool dbtotxt sqlite3-db-to-txt
|
|
||||||
install_tool index_usage sqlite3-index-usage
|
|
||||||
install_tool rbu sqlite3-rbu
|
|
||||||
install_tool scrub sqlite3-scrub
|
|
||||||
install_tool showdb sqlite3-show-db
|
|
||||||
install_tool showjournal sqlite3-show-journal
|
|
||||||
install_tool showshm sqlite3-show-shm
|
|
||||||
install_tool showstat4 sqlite3-show-stat4
|
|
||||||
install_tool showwal sqlite3-show-wal
|
|
||||||
install_tool sqldiff sqlite3-diff
|
|
||||||
install_tool sqlite3_analyzer sqlite3-analyzer
|
|
||||||
install_tool sqlite3_checker sqlite3-checker
|
|
||||||
install_tool sqlite3_expert sqlite3-expert
|
|
||||||
install_tool sqltclsh sqlite3-tclsh
|
|
||||||
|
|
||||||
unset -f install_tool
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_install_all() {
|
|
||||||
find "${ED}" -name "*.la" -delete || die
|
|
||||||
|
|
||||||
doman sqlite3.1
|
|
||||||
|
|
||||||
if use doc; then
|
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
|
||||||
pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die
|
|
||||||
else
|
|
||||||
pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
find "(" -name "*.db" -o -name "*.txt" ")" -delete || die
|
|
||||||
if [[ "${PV}" != "9999" ]]; then
|
|
||||||
rm search search.d/admin || die
|
|
||||||
rmdir search.d || die
|
|
||||||
find -name "*~" -delete || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
(
|
|
||||||
docinto html
|
|
||||||
dodoc -r *
|
|
||||||
)
|
|
||||||
|
|
||||||
popd > /dev/null || die
|
|
||||||
fi
|
|
||||||
}
|
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright 1999-2021 Gentoo Authors
|
# Copyright 1999-2022 Gentoo Authors
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
EAPI="7"
|
EAPI="7"
|
||||||
@ -13,11 +13,14 @@ fi
|
|||||||
|
|
||||||
DESCRIPTION="SQL database engine"
|
DESCRIPTION="SQL database engine"
|
||||||
HOMEPAGE="https://sqlite.org/"
|
HOMEPAGE="https://sqlite.org/"
|
||||||
|
|
||||||
|
# On version updates, make sure to read the forum (https://sqlite.org/forum/forum)
|
||||||
|
# for hints regarding test failures, backports, etc.
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
if [[ "${PV}" == "9999" ]]; then
|
||||||
SRC_URI=""
|
SRC_URI=""
|
||||||
else
|
else
|
||||||
SRC_URI="https://sqlite.org/2021/${PN}-src-${SRC_PV}.zip
|
SRC_URI="https://sqlite.org/2022/${PN}-src-${SRC_PV}.zip
|
||||||
doc? ( https://sqlite.org/2021/${PN}-doc-${DOC_PV}.zip )"
|
doc? ( https://sqlite.org/2022/${PN}-doc-${DOC_PV}.zip )"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LICENSE="public-domain"
|
LICENSE="public-domain"
|
||||||
@ -136,8 +139,6 @@ src_unpack() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
src_prepare() {
|
src_prepare() {
|
||||||
eapply "${FILESDIR}/"${PN}-3.34.1-build_{1.1,1.2,2.1,2.2}.patch
|
|
||||||
|
|
||||||
eapply_user
|
eapply_user
|
||||||
|
|
||||||
eautoreconf
|
eautoreconf
|
||||||
@ -201,11 +202,6 @@ multilib_src_configure() {
|
|||||||
# Support hidden columns.
|
# Support hidden columns.
|
||||||
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
||||||
|
|
||||||
# Support JSON1 extension.
|
|
||||||
# https://sqlite.org/compile.html#enable_json1
|
|
||||||
# https://sqlite.org/json1.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_JSON1
|
|
||||||
|
|
||||||
# Support memsys5 memory allocator.
|
# Support memsys5 memory allocator.
|
||||||
# https://sqlite.org/compile.html#enable_memsys5
|
# https://sqlite.org/compile.html#enable_memsys5
|
||||||
# https://sqlite.org/malloc.html#memsys5
|
# https://sqlite.org/malloc.html#memsys5
|
||||||
@ -320,12 +316,6 @@ multilib_src_configure() {
|
|||||||
options+=(--disable-tcl)
|
options+=(--disable-tcl)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "${CHOST}" == *-mint* ]]; then
|
|
||||||
# sys/mman.h not available in MiNTLib.
|
|
||||||
# https://sqlite.org/compile.html#omit_wal
|
|
||||||
append-cppflags -DSQLITE_OMIT_WAL
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${ABI}" == "x86" ]]; then
|
if [[ "${ABI}" == "x86" ]]; then
|
||||||
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
||||||
append-cflags -mfpmath=sse
|
append-cflags -mfpmath=sse
|
||||||
@ -368,6 +358,11 @@ multilib_src_test() {
|
|||||||
|
|
||||||
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
||||||
|
|
||||||
|
# e_uri.test tries to open files in /.
|
||||||
|
# https://bugs.gentoo.org/839798
|
||||||
|
local SANDBOX_PREDICT=${SANDBOX_PREDICT}
|
||||||
|
addpredict "/test.db:/ÿ.db"
|
||||||
|
|
||||||
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright 1999-2021 Gentoo Authors
|
# Copyright 1999-2022 Gentoo Authors
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
EAPI="7"
|
EAPI="7"
|
||||||
@ -13,16 +13,19 @@ fi
|
|||||||
|
|
||||||
DESCRIPTION="SQL database engine"
|
DESCRIPTION="SQL database engine"
|
||||||
HOMEPAGE="https://sqlite.org/"
|
HOMEPAGE="https://sqlite.org/"
|
||||||
|
|
||||||
|
# On version updates, make sure to read the forum (https://sqlite.org/forum/forum)
|
||||||
|
# for hints regarding test failures, backports, etc.
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
if [[ "${PV}" == "9999" ]]; then
|
||||||
SRC_URI=""
|
SRC_URI=""
|
||||||
else
|
else
|
||||||
SRC_URI="https://sqlite.org/2020/${PN}-src-${SRC_PV}.zip
|
SRC_URI="https://sqlite.org/2022/${PN}-src-${SRC_PV}.zip
|
||||||
doc? ( https://sqlite.org/2020/${PN}-doc-${DOC_PV}.zip )"
|
doc? ( https://sqlite.org/2022/${PN}-doc-${DOC_PV}.zip )"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LICENSE="public-domain"
|
LICENSE="public-domain"
|
||||||
SLOT="3"
|
SLOT="3"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||||
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
if [[ "${PV}" == "9999" ]]; then
|
||||||
PROPERTIES="live"
|
PROPERTIES="live"
|
||||||
@ -136,8 +139,6 @@ src_unpack() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
src_prepare() {
|
src_prepare() {
|
||||||
eapply "${FILESDIR}/"${PN}-3.34.0-build_{1.1,1.2,2.1,2.2}.patch
|
|
||||||
|
|
||||||
eapply_user
|
eapply_user
|
||||||
|
|
||||||
eautoreconf
|
eautoreconf
|
||||||
@ -201,11 +202,6 @@ multilib_src_configure() {
|
|||||||
# Support hidden columns.
|
# Support hidden columns.
|
||||||
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
||||||
|
|
||||||
# Support JSON1 extension.
|
|
||||||
# https://sqlite.org/compile.html#enable_json1
|
|
||||||
# https://sqlite.org/json1.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_JSON1
|
|
||||||
|
|
||||||
# Support memsys5 memory allocator.
|
# Support memsys5 memory allocator.
|
||||||
# https://sqlite.org/compile.html#enable_memsys5
|
# https://sqlite.org/compile.html#enable_memsys5
|
||||||
# https://sqlite.org/malloc.html#memsys5
|
# https://sqlite.org/malloc.html#memsys5
|
||||||
@ -320,12 +316,6 @@ multilib_src_configure() {
|
|||||||
options+=(--disable-tcl)
|
options+=(--disable-tcl)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "${CHOST}" == *-mint* ]]; then
|
|
||||||
# sys/mman.h not available in MiNTLib.
|
|
||||||
# https://sqlite.org/compile.html#omit_wal
|
|
||||||
append-cppflags -DSQLITE_OMIT_WAL
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${ABI}" == "x86" ]]; then
|
if [[ "${ABI}" == "x86" ]]; then
|
||||||
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
||||||
append-cflags -mfpmath=sse
|
append-cflags -mfpmath=sse
|
||||||
@ -368,6 +358,11 @@ multilib_src_test() {
|
|||||||
|
|
||||||
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
||||||
|
|
||||||
|
# e_uri.test tries to open files in /.
|
||||||
|
# https://bugs.gentoo.org/839798
|
||||||
|
local SANDBOX_PREDICT=${SANDBOX_PREDICT}
|
||||||
|
addpredict "/test.db:/ÿ.db"
|
||||||
|
|
||||||
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright 1999-2021 Gentoo Authors
|
# Copyright 1999-2022 Gentoo Authors
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
EAPI="7"
|
EAPI="7"
|
||||||
@ -13,16 +13,19 @@ fi
|
|||||||
|
|
||||||
DESCRIPTION="SQL database engine"
|
DESCRIPTION="SQL database engine"
|
||||||
HOMEPAGE="https://sqlite.org/"
|
HOMEPAGE="https://sqlite.org/"
|
||||||
|
|
||||||
|
# On version updates, make sure to read the forum (https://sqlite.org/forum/forum)
|
||||||
|
# for hints regarding test failures, backports, etc.
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
if [[ "${PV}" == "9999" ]]; then
|
||||||
SRC_URI=""
|
SRC_URI=""
|
||||||
else
|
else
|
||||||
SRC_URI="https://sqlite.org/2021/${PN}-src-${SRC_PV}.zip
|
SRC_URI="https://sqlite.org/2022/${PN}-src-${SRC_PV}.zip
|
||||||
doc? ( https://sqlite.org/2021/${PN}-doc-${DOC_PV}.zip )"
|
doc? ( https://sqlite.org/2022/${PN}-doc-${DOC_PV}.zip )"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LICENSE="public-domain"
|
LICENSE="public-domain"
|
||||||
SLOT="3"
|
SLOT="3"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||||
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
if [[ "${PV}" == "9999" ]]; then
|
||||||
PROPERTIES="live"
|
PROPERTIES="live"
|
||||||
@ -136,8 +139,6 @@ src_unpack() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
src_prepare() {
|
src_prepare() {
|
||||||
eapply "${FILESDIR}/"${PN}-3.35.0-build_{1.1,1.2,2.1,2.2}.patch
|
|
||||||
|
|
||||||
eapply_user
|
eapply_user
|
||||||
|
|
||||||
eautoreconf
|
eautoreconf
|
||||||
@ -201,11 +202,6 @@ multilib_src_configure() {
|
|||||||
# Support hidden columns.
|
# Support hidden columns.
|
||||||
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
||||||
|
|
||||||
# Support JSON1 extension.
|
|
||||||
# https://sqlite.org/compile.html#enable_json1
|
|
||||||
# https://sqlite.org/json1.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_JSON1
|
|
||||||
|
|
||||||
# Support memsys5 memory allocator.
|
# Support memsys5 memory allocator.
|
||||||
# https://sqlite.org/compile.html#enable_memsys5
|
# https://sqlite.org/compile.html#enable_memsys5
|
||||||
# https://sqlite.org/malloc.html#memsys5
|
# https://sqlite.org/malloc.html#memsys5
|
||||||
@ -320,18 +316,19 @@ multilib_src_configure() {
|
|||||||
options+=(--disable-tcl)
|
options+=(--disable-tcl)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "${CHOST}" == *-mint* ]]; then
|
|
||||||
# sys/mman.h not available in MiNTLib.
|
|
||||||
# https://sqlite.org/compile.html#omit_wal
|
|
||||||
append-cppflags -DSQLITE_OMIT_WAL
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${ABI}" == "x86" ]]; then
|
if [[ "${ABI}" == "x86" ]]; then
|
||||||
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
||||||
append-cflags -mfpmath=sse
|
append-cflags -mfpmath=sse
|
||||||
else
|
else
|
||||||
append-cflags -ffloat-store
|
append-cflags -ffloat-store
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Skip known-broken test for now
|
||||||
|
# https://sqlite.org/forum/forumpost/d97caf168f
|
||||||
|
# https://sqlite.org/forum/forumpost/50f136d91d
|
||||||
|
if use test ; then
|
||||||
|
rm test/atof1.test || die
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
econf "${options[@]}"
|
econf "${options[@]}"
|
||||||
@ -368,6 +365,11 @@ multilib_src_test() {
|
|||||||
|
|
||||||
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
||||||
|
|
||||||
|
# e_uri.test tries to open files in /.
|
||||||
|
# https://bugs.gentoo.org/839798
|
||||||
|
local SANDBOX_PREDICT=${SANDBOX_PREDICT}
|
||||||
|
addpredict "/test.db:/ÿ.db"
|
||||||
|
|
||||||
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright 1999-2021 Gentoo Authors
|
# Copyright 1999-2022 Gentoo Authors
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
EAPI="7"
|
EAPI="7"
|
||||||
@ -13,16 +13,19 @@ fi
|
|||||||
|
|
||||||
DESCRIPTION="SQL database engine"
|
DESCRIPTION="SQL database engine"
|
||||||
HOMEPAGE="https://sqlite.org/"
|
HOMEPAGE="https://sqlite.org/"
|
||||||
|
|
||||||
|
# On version updates, make sure to read the forum (https://sqlite.org/forum/forum)
|
||||||
|
# for hints regarding test failures, backports, etc.
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
if [[ "${PV}" == "9999" ]]; then
|
||||||
SRC_URI=""
|
SRC_URI=""
|
||||||
else
|
else
|
||||||
SRC_URI="https://sqlite.org/2021/${PN}-src-${SRC_PV}.zip
|
SRC_URI="https://sqlite.org/2022/${PN}-src-${SRC_PV}.zip
|
||||||
doc? ( https://sqlite.org/2021/${PN}-doc-${DOC_PV}.zip )"
|
doc? ( https://sqlite.org/2022/${PN}-doc-${DOC_PV}.zip )"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LICENSE="public-domain"
|
LICENSE="public-domain"
|
||||||
SLOT="3"
|
SLOT="3"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||||
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
||||||
if [[ "${PV}" == "9999" ]]; then
|
if [[ "${PV}" == "9999" ]]; then
|
||||||
PROPERTIES="live"
|
PROPERTIES="live"
|
||||||
@ -136,8 +139,6 @@ src_unpack() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
src_prepare() {
|
src_prepare() {
|
||||||
eapply "${FILESDIR}/"${PN}-3.35.0-build_{1.1,1.2,2.1,2.2}.patch
|
|
||||||
|
|
||||||
eapply_user
|
eapply_user
|
||||||
|
|
||||||
eautoreconf
|
eautoreconf
|
||||||
@ -201,11 +202,6 @@ multilib_src_configure() {
|
|||||||
# Support hidden columns.
|
# Support hidden columns.
|
||||||
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
||||||
|
|
||||||
# Support JSON1 extension.
|
|
||||||
# https://sqlite.org/compile.html#enable_json1
|
|
||||||
# https://sqlite.org/json1.html
|
|
||||||
append-cppflags -DSQLITE_ENABLE_JSON1
|
|
||||||
|
|
||||||
# Support memsys5 memory allocator.
|
# Support memsys5 memory allocator.
|
||||||
# https://sqlite.org/compile.html#enable_memsys5
|
# https://sqlite.org/compile.html#enable_memsys5
|
||||||
# https://sqlite.org/malloc.html#memsys5
|
# https://sqlite.org/malloc.html#memsys5
|
||||||
@ -320,18 +316,19 @@ multilib_src_configure() {
|
|||||||
options+=(--disable-tcl)
|
options+=(--disable-tcl)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "${CHOST}" == *-mint* ]]; then
|
|
||||||
# sys/mman.h not available in MiNTLib.
|
|
||||||
# https://sqlite.org/compile.html#omit_wal
|
|
||||||
append-cppflags -DSQLITE_OMIT_WAL
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${ABI}" == "x86" ]]; then
|
if [[ "${ABI}" == "x86" ]]; then
|
||||||
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
||||||
append-cflags -mfpmath=sse
|
append-cflags -mfpmath=sse
|
||||||
else
|
else
|
||||||
append-cflags -ffloat-store
|
append-cflags -ffloat-store
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Skip known-broken test for now
|
||||||
|
# https://sqlite.org/forum/forumpost/d97caf168f
|
||||||
|
# https://sqlite.org/forum/forumpost/50f136d91d
|
||||||
|
if use test ; then
|
||||||
|
rm test/atof1.test || die
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
econf "${options[@]}"
|
econf "${options[@]}"
|
||||||
@ -368,6 +365,11 @@ multilib_src_test() {
|
|||||||
|
|
||||||
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
||||||
|
|
||||||
|
# e_uri.test tries to open files in /.
|
||||||
|
# https://bugs.gentoo.org/839798
|
||||||
|
local SANDBOX_PREDICT=${SANDBOX_PREDICT}
|
||||||
|
addpredict "/test.db:/ÿ.db"
|
||||||
|
|
||||||
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
||||||
}
|
}
|
||||||
|
|
436
sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.38.5.ebuild
vendored
Normal file
436
sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.38.5.ebuild
vendored
Normal file
@ -0,0 +1,436 @@
|
|||||||
|
# Copyright 1999-2022 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI="7"
|
||||||
|
|
||||||
|
inherit autotools flag-o-matic multilib-minimal toolchain-funcs
|
||||||
|
|
||||||
|
if [[ "${PV}" != "9999" ]]; then
|
||||||
|
SRC_PV="$(printf "%u%02u%02u%02u" $(ver_rs 1- " "))"
|
||||||
|
DOC_PV="${SRC_PV}"
|
||||||
|
# DOC_PV="$(printf "%u%02u%02u00" $(ver_rs 1-3 " "))"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="SQL database engine"
|
||||||
|
HOMEPAGE="https://sqlite.org/"
|
||||||
|
|
||||||
|
# On version updates, make sure to read the forum (https://sqlite.org/forum/forum)
|
||||||
|
# for hints regarding test failures, backports, etc.
|
||||||
|
if [[ "${PV}" == "9999" ]]; then
|
||||||
|
SRC_URI=""
|
||||||
|
else
|
||||||
|
SRC_URI="https://sqlite.org/2022/${PN}-src-${SRC_PV}.zip
|
||||||
|
doc? ( https://sqlite.org/2022/${PN}-doc-${DOC_PV}.zip )"
|
||||||
|
fi
|
||||||
|
|
||||||
|
LICENSE="public-domain"
|
||||||
|
SLOT="3"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||||
|
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
||||||
|
if [[ "${PV}" == "9999" ]]; then
|
||||||
|
PROPERTIES="live"
|
||||||
|
fi
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
if [[ "${PV}" == "9999" ]]; then
|
||||||
|
BDEPEND=">=dev-lang/tcl-8.6:0
|
||||||
|
dev-vcs/fossil"
|
||||||
|
else
|
||||||
|
BDEPEND="app-arch/unzip
|
||||||
|
>=dev-lang/tcl-8.6:0"
|
||||||
|
fi
|
||||||
|
RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]
|
||||||
|
icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] )
|
||||||
|
readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
|
||||||
|
tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )
|
||||||
|
tools? ( dev-lang/tcl:0= )"
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )"
|
||||||
|
|
||||||
|
if [[ "${PV}" == "9999" ]]; then
|
||||||
|
S="${WORKDIR}/${PN}"
|
||||||
|
else
|
||||||
|
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
_fossil_fetch() {
|
||||||
|
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||||
|
local repo_id="${1}"
|
||||||
|
local repo_uri="${2}"
|
||||||
|
|
||||||
|
local -x FOSSIL_HOME="${HOME}"
|
||||||
|
|
||||||
|
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||||
|
pushd "${T}/fossil/${repo_id}" > /dev/null || die
|
||||||
|
|
||||||
|
if [[ -n "${EVCS_OFFLINE}" ]]; then
|
||||||
|
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||||
|
die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||||
|
einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil"
|
||||||
|
fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die
|
||||||
|
echo
|
||||||
|
else
|
||||||
|
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die
|
||||||
|
einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}"
|
||||||
|
fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
(
|
||||||
|
addwrite "${distdir}"
|
||||||
|
mkdir -p "${distdir}/fossil-src/${repo_id}" || die
|
||||||
|
cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
popd > /dev/null || die
|
||||||
|
}
|
||||||
|
|
||||||
|
_fossil_checkout() {
|
||||||
|
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||||
|
local repo_id="${1}"
|
||||||
|
local branch_or_commit="${2}"
|
||||||
|
local target_directory="${3}"
|
||||||
|
|
||||||
|
local -x FOSSIL_HOME="${HOME}"
|
||||||
|
|
||||||
|
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||||
|
die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then
|
||||||
|
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||||
|
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir "${target_directory}" || die
|
||||||
|
pushd "${target_directory}" > /dev/null || die
|
||||||
|
|
||||||
|
einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}"
|
||||||
|
fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die
|
||||||
|
echo
|
||||||
|
|
||||||
|
popd > /dev/null || die
|
||||||
|
}
|
||||||
|
|
||||||
|
fossil_fetch() {
|
||||||
|
local repo_id="${1}"
|
||||||
|
local repo_uri="${2}"
|
||||||
|
local target_directory="${3}"
|
||||||
|
|
||||||
|
local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}"
|
||||||
|
|
||||||
|
_fossil_fetch "${repo_id}" "${repo_uri}"
|
||||||
|
_fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ "${PV}" == "9999" ]]; then
|
||||||
|
fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}"
|
||||||
|
if use doc; then
|
||||||
|
fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
default
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
eapply_user
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
|
||||||
|
multilib_copy_sources
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_configure() {
|
||||||
|
local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
|
||||||
|
local options=()
|
||||||
|
|
||||||
|
options+=(
|
||||||
|
--enable-load-extension
|
||||||
|
--enable-threadsafe
|
||||||
|
)
|
||||||
|
|
||||||
|
# Support detection of misuse of SQLite API.
|
||||||
|
# https://sqlite.org/compile.html#enable_api_armor
|
||||||
|
append-cppflags -DSQLITE_ENABLE_API_ARMOR
|
||||||
|
|
||||||
|
# Support bytecode and tables_used virtual tables.
|
||||||
|
# https://sqlite.org/compile.html#enable_bytecode_vtab
|
||||||
|
# https://sqlite.org/bytecodevtab.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
|
||||||
|
|
||||||
|
# Support column metadata functions.
|
||||||
|
# https://sqlite.org/compile.html#enable_column_metadata
|
||||||
|
# https://sqlite.org/c3ref/column_database_name.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
|
||||||
|
|
||||||
|
# Support sqlite_dbpage virtual table.
|
||||||
|
# https://sqlite.org/compile.html#enable_dbpage_vtab
|
||||||
|
# https://sqlite.org/dbpage.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
|
||||||
|
|
||||||
|
# Support dbstat virtual table.
|
||||||
|
# https://sqlite.org/compile.html#enable_dbstat_vtab
|
||||||
|
# https://sqlite.org/dbstat.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
|
||||||
|
|
||||||
|
# Support sqlite3_serialize() and sqlite3_deserialize() functions.
|
||||||
|
# https://sqlite.org/compile.html#enable_deserialize
|
||||||
|
# https://sqlite.org/c3ref/serialize.html
|
||||||
|
# https://sqlite.org/c3ref/deserialize.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_DESERIALIZE
|
||||||
|
|
||||||
|
# Support comments in output of EXPLAIN.
|
||||||
|
# https://sqlite.org/compile.html#enable_explain_comments
|
||||||
|
append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
|
||||||
|
|
||||||
|
# Support Full-Text Search versions 3, 4 and 5.
|
||||||
|
# https://sqlite.org/compile.html#enable_fts3
|
||||||
|
# https://sqlite.org/compile.html#enable_fts3_parenthesis
|
||||||
|
# https://sqlite.org/compile.html#enable_fts4
|
||||||
|
# https://sqlite.org/compile.html#enable_fts5
|
||||||
|
# https://sqlite.org/fts3.html
|
||||||
|
# https://sqlite.org/fts5.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
|
||||||
|
options+=(--enable-fts5)
|
||||||
|
|
||||||
|
# Support hidden columns.
|
||||||
|
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
||||||
|
|
||||||
|
# Support memsys5 memory allocator.
|
||||||
|
# https://sqlite.org/compile.html#enable_memsys5
|
||||||
|
# https://sqlite.org/malloc.html#memsys5
|
||||||
|
append-cppflags -DSQLITE_ENABLE_MEMSYS5
|
||||||
|
|
||||||
|
# Support sqlite3_normalized_sql() function.
|
||||||
|
# https://sqlite.org/c3ref/expanded_sql.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_NORMALIZE
|
||||||
|
|
||||||
|
# Support sqlite_offset() function.
|
||||||
|
# https://sqlite.org/compile.html#enable_offset_sql_func
|
||||||
|
# https://sqlite.org/lang_corefunc.html#sqlite_offset
|
||||||
|
append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
|
||||||
|
|
||||||
|
# Support pre-update hook functions.
|
||||||
|
# https://sqlite.org/compile.html#enable_preupdate_hook
|
||||||
|
# https://sqlite.org/c3ref/preupdate_count.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
|
||||||
|
|
||||||
|
# Support Resumable Bulk Update extension.
|
||||||
|
# https://sqlite.org/compile.html#enable_rbu
|
||||||
|
# https://sqlite.org/rbu.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_RBU
|
||||||
|
|
||||||
|
# Support R*Trees.
|
||||||
|
# https://sqlite.org/compile.html#enable_rtree
|
||||||
|
# https://sqlite.org/compile.html#enable_geopoly
|
||||||
|
# https://sqlite.org/rtree.html
|
||||||
|
# https://sqlite.org/geopoly.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
|
||||||
|
|
||||||
|
# Support Session extension.
|
||||||
|
# https://sqlite.org/compile.html#enable_session
|
||||||
|
# https://sqlite.org/sessionintro.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_SESSION
|
||||||
|
|
||||||
|
# Support scan status functions.
|
||||||
|
# https://sqlite.org/compile.html#enable_stmt_scanstatus
|
||||||
|
# https://sqlite.org/c3ref/stmt_scanstatus.html
|
||||||
|
# https://sqlite.org/c3ref/stmt_scanstatus_reset.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
|
||||||
|
|
||||||
|
# Support sqlite_stmt virtual table.
|
||||||
|
# https://sqlite.org/compile.html#enable_stmtvtab
|
||||||
|
# https://sqlite.org/stmt.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_STMTVTAB
|
||||||
|
|
||||||
|
# Support unknown() function.
|
||||||
|
# https://sqlite.org/compile.html#enable_unknown_sql_function
|
||||||
|
append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
|
||||||
|
|
||||||
|
# Support unlock notification.
|
||||||
|
# https://sqlite.org/compile.html#enable_unlock_notify
|
||||||
|
# https://sqlite.org/c3ref/unlock_notify.html
|
||||||
|
# https://sqlite.org/unlock_notify.html
|
||||||
|
append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
|
||||||
|
|
||||||
|
# Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
|
||||||
|
# https://sqlite.org/compile.html#enable_update_delete_limit
|
||||||
|
# https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses
|
||||||
|
# https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses
|
||||||
|
append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
||||||
|
|
||||||
|
# Support soundex() function.
|
||||||
|
# https://sqlite.org/compile.html#soundex
|
||||||
|
# https://sqlite.org/lang_corefunc.html#soundex
|
||||||
|
append-cppflags -DSQLITE_SOUNDEX
|
||||||
|
|
||||||
|
# Support URI filenames.
|
||||||
|
# https://sqlite.org/compile.html#use_uri
|
||||||
|
# https://sqlite.org/uri.html
|
||||||
|
append-cppflags -DSQLITE_USE_URI
|
||||||
|
|
||||||
|
# debug USE flag.
|
||||||
|
options+=($(use_enable debug))
|
||||||
|
|
||||||
|
# icu USE flag.
|
||||||
|
if use icu; then
|
||||||
|
# Support ICU extension.
|
||||||
|
# https://sqlite.org/compile.html#enable_icu
|
||||||
|
append-cppflags -DSQLITE_ENABLE_ICU
|
||||||
|
sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# readline USE flag.
|
||||||
|
options+=(
|
||||||
|
--disable-editline
|
||||||
|
$(use_enable readline)
|
||||||
|
)
|
||||||
|
if use readline; then
|
||||||
|
options+=(--with-readline-inc="-I${ESYSROOT}/usr/include/readline")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# secure-delete USE flag.
|
||||||
|
if use secure-delete; then
|
||||||
|
# Enable secure_delete pragma by default.
|
||||||
|
# https://sqlite.org/compile.html#secure_delete
|
||||||
|
# https://sqlite.org/pragma.html#pragma_secure_delete
|
||||||
|
append-cppflags -DSQLITE_SECURE_DELETE
|
||||||
|
fi
|
||||||
|
|
||||||
|
# static-libs USE flag.
|
||||||
|
options+=($(use_enable static-libs static))
|
||||||
|
|
||||||
|
# tcl, test, tools USE flags.
|
||||||
|
if use tcl || use test || { use tools && multilib_is_native_abi; }; then
|
||||||
|
options+=(
|
||||||
|
--enable-tcl
|
||||||
|
--with-tcl="${ESYSROOT}/usr/$(get_libdir)"
|
||||||
|
)
|
||||||
|
else
|
||||||
|
options+=(--disable-tcl)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${ABI}" == "x86" ]]; then
|
||||||
|
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
||||||
|
append-cflags -mfpmath=sse
|
||||||
|
else
|
||||||
|
append-cflags -ffloat-store
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Skip known-broken test for now
|
||||||
|
# https://sqlite.org/forum/forumpost/d97caf168f
|
||||||
|
# https://sqlite.org/forum/forumpost/50f136d91d
|
||||||
|
if use test ; then
|
||||||
|
rm test/atof1.test || die
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
econf "${options[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_compile() {
|
||||||
|
emake HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
|
||||||
|
|
||||||
|
if use tools && multilib_is_native_abi; then
|
||||||
|
emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${PV}" == "9999" ]] && use doc && multilib_is_native_abi; then
|
||||||
|
emake tclsqlite3.c
|
||||||
|
|
||||||
|
local build_directory="$(pwd)"
|
||||||
|
build_directory="${build_directory##*/}"
|
||||||
|
|
||||||
|
mkdir "${WORKDIR}/${PN}-doc-build" || die
|
||||||
|
pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die
|
||||||
|
|
||||||
|
emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc
|
||||||
|
rmdir doc/matrix{/*,} || die
|
||||||
|
|
||||||
|
popd > /dev/null || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_test() {
|
||||||
|
if [[ "${EUID}" -eq 0 ]]; then
|
||||||
|
ewarn "Skipping tests due to root permissions"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
||||||
|
|
||||||
|
# e_uri.test tries to open files in /.
|
||||||
|
# https://bugs.gentoo.org/839798
|
||||||
|
local SANDBOX_PREDICT=${SANDBOX_PREDICT}
|
||||||
|
addpredict "/test.db:/ÿ.db"
|
||||||
|
|
||||||
|
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install() {
|
||||||
|
emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
|
||||||
|
|
||||||
|
if use tools && multilib_is_native_abi; then
|
||||||
|
install_tool() {
|
||||||
|
if [[ -f ".libs/${1}" ]]; then
|
||||||
|
newbin ".libs/${1}" "${2}"
|
||||||
|
else
|
||||||
|
newbin "${1}" "${2}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_tool changeset sqlite3-changeset
|
||||||
|
install_tool dbdump sqlite3-db-dump
|
||||||
|
install_tool dbhash sqlite3-db-hash
|
||||||
|
install_tool dbtotxt sqlite3-db-to-txt
|
||||||
|
install_tool index_usage sqlite3-index-usage
|
||||||
|
install_tool rbu sqlite3-rbu
|
||||||
|
install_tool scrub sqlite3-scrub
|
||||||
|
install_tool showdb sqlite3-show-db
|
||||||
|
install_tool showjournal sqlite3-show-journal
|
||||||
|
install_tool showshm sqlite3-show-shm
|
||||||
|
install_tool showstat4 sqlite3-show-stat4
|
||||||
|
install_tool showwal sqlite3-show-wal
|
||||||
|
install_tool sqldiff sqlite3-diff
|
||||||
|
install_tool sqlite3_analyzer sqlite3-analyzer
|
||||||
|
install_tool sqlite3_checker sqlite3-checker
|
||||||
|
install_tool sqlite3_expert sqlite3-expert
|
||||||
|
install_tool sqltclsh sqlite3-tclsh
|
||||||
|
|
||||||
|
unset -f install_tool
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install_all() {
|
||||||
|
find "${ED}" -name "*.la" -delete || die
|
||||||
|
|
||||||
|
doman sqlite3.1
|
||||||
|
|
||||||
|
if use doc; then
|
||||||
|
if [[ "${PV}" == "9999" ]]; then
|
||||||
|
pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die
|
||||||
|
else
|
||||||
|
pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
find "(" -name "*.db" -o -name "*.txt" ")" -delete || die
|
||||||
|
if [[ "${PV}" != "9999" ]]; then
|
||||||
|
rm search search.d/admin || die
|
||||||
|
rmdir search.d || die
|
||||||
|
find -name "*~" -delete || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
(
|
||||||
|
docinto html
|
||||||
|
dodoc -r *
|
||||||
|
)
|
||||||
|
|
||||||
|
popd > /dev/null || die
|
||||||
|
fi
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user