From a2f110c440d78211f2b066409f40ecdd70007d16 Mon Sep 17 00:00:00 2001 From: Mini Date: Sun, 14 Jan 2007 00:06:21 +0000 Subject: [PATCH] Added a semi-advanced chat ai, rewritten into c++ from old php msn messenger bot :P Additionally i added sqlite for database to the chat ai. TODO: Rewrite the ChatAI class --- PseuWoW.sln | 10 + bin/db/chat | Bin 0 -> 6144 bytes src/Client/Chat.cpp | 200 + src/Client/Chat.h | 17 + src/Client/World/WorldSession.cpp | 12 +- src/Client/World/WorldSession.h | 4 +- src/PseuWoW.vcproj | 6 + src/dep/lib/release/zlib.lib | Bin 0 -> 188354 bytes src/dep/lib/release/zthread.lib | Bin 0 -> 4966572 bytes src/dep/lib/zlib.lib | Bin 0 -> 206550 bytes src/dep/lib/zthread.lib | Bin 0 -> 8482232 bytes src/dep/src/sqlite/alter.c | 575 +++ src/dep/src/sqlite/analyze.c | 403 ++ src/dep/src/sqlite/attach.c | 504 ++ src/dep/src/sqlite/auth.c | 234 + src/dep/src/sqlite/btree.c | 6582 ++++++++++++++++++++++++ src/dep/src/sqlite/btree.h | 149 + src/dep/src/sqlite/build.c | 3350 ++++++++++++ src/dep/src/sqlite/callback.c | 368 ++ src/dep/src/sqlite/complete.c | 263 + src/dep/src/sqlite/date.c | 1026 ++++ src/dep/src/sqlite/delete.c | 464 ++ src/dep/src/sqlite/expr.c | 2358 +++++++++ src/dep/src/sqlite/fts1.c | 3272 ++++++++++++ src/dep/src/sqlite/fts1.h | 11 + src/dep/src/sqlite/fts1_hash.c | 369 ++ src/dep/src/sqlite/fts1_hash.h | 112 + src/dep/src/sqlite/fts1_porter.c | 642 +++ src/dep/src/sqlite/fts1_tokenizer.h | 90 + src/dep/src/sqlite/fts1_tokenizer1.c | 220 + src/dep/src/sqlite/func.c | 1179 +++++ src/dep/src/sqlite/hash.c | 394 ++ src/dep/src/sqlite/hash.h | 111 + src/dep/src/sqlite/insert.c | 1142 ++++ src/dep/src/sqlite/keywordhash.h | 98 + src/dep/src/sqlite/legacy.c | 136 + src/dep/src/sqlite/loadext.c | 408 ++ src/dep/src/sqlite/main.c | 1342 +++++ src/dep/src/sqlite/opcodes.c | 149 + src/dep/src/sqlite/opcodes.h | 161 + src/dep/src/sqlite/os.c | 92 + src/dep/src/sqlite/os.h | 517 ++ src/dep/src/sqlite/os_common.h | 188 + src/dep/src/sqlite/os_os2.c | 991 ++++ src/dep/src/sqlite/os_unix.c | 2893 +++++++++++ src/dep/src/sqlite/os_win.c | 1745 +++++++ src/dep/src/sqlite/pager.c | 3923 ++++++++++++++ src/dep/src/sqlite/pager.h | 123 + src/dep/src/sqlite/parse.c | 3411 ++++++++++++ src/dep/src/sqlite/parse.h | 153 + src/dep/src/sqlite/pragma.c | 991 ++++ src/dep/src/sqlite/prepare.c | 682 +++ src/dep/src/sqlite/printf.c | 863 ++++ src/dep/src/sqlite/random.c | 100 + src/dep/src/sqlite/select.c | 3301 ++++++++++++ src/dep/src/sqlite/shell.c | 1954 +++++++ src/dep/src/sqlite/sqlite3.h | 1868 +++++++ src/dep/src/sqlite/sqlite3ext.h | 282 + src/dep/src/sqlite/sqliteInt.h | 1887 +++++++ src/dep/src/sqlite/table.c | 198 + src/dep/src/sqlite/tclsqlite.c | 2259 ++++++++ src/dep/src/sqlite/tokenize.c | 507 ++ src/dep/src/sqlite/trigger.c | 823 +++ src/dep/src/sqlite/update.c | 622 +++ src/dep/src/sqlite/utf.c | 617 +++ src/dep/src/sqlite/util.c | 1487 ++++++ src/dep/src/sqlite/vacuum.c | 270 + src/dep/src/sqlite/vdbe.c | 4993 ++++++++++++++++++ src/dep/src/sqlite/vdbe.h | 150 + src/dep/src/sqlite/vdbeInt.h | 405 ++ src/dep/src/sqlite/vdbeapi.c | 890 ++++ src/dep/src/sqlite/vdbeaux.c | 2086 ++++++++ src/dep/src/sqlite/vdbefifo.c | 114 + src/dep/src/sqlite/vdbemem.c | 892 ++++ src/dep/src/sqlite/vtab.c | 693 +++ src/dep/src/sqlite/where.c | 2580 ++++++++++ src/shared.vcproj | 31 + src/shared/sqlitewrapped/Database.cpp | 344 ++ src/shared/sqlitewrapped/Database.h | 154 + src/shared/sqlitewrapped/IError.h | 53 + src/shared/sqlitewrapped/Query.cpp | 524 ++ src/shared/sqlitewrapped/Query.h | 165 + src/shared/sqlitewrapped/StderrLog.cpp | 71 + src/shared/sqlitewrapped/StderrLog.h | 48 + src/shared/sqlitewrapped/SysLog.cpp | 71 + src/shared/sqlitewrapped/SysLog.h | 55 + src/sqlite.vcproj | 319 ++ 87 files changed, 73743 insertions(+), 3 deletions(-) create mode 100644 bin/db/chat create mode 100644 src/Client/Chat.cpp create mode 100644 src/Client/Chat.h create mode 100644 src/dep/lib/release/zlib.lib create mode 100644 src/dep/lib/release/zthread.lib create mode 100644 src/dep/lib/zlib.lib create mode 100644 src/dep/lib/zthread.lib create mode 100644 src/dep/src/sqlite/alter.c create mode 100644 src/dep/src/sqlite/analyze.c create mode 100644 src/dep/src/sqlite/attach.c create mode 100644 src/dep/src/sqlite/auth.c create mode 100644 src/dep/src/sqlite/btree.c create mode 100644 src/dep/src/sqlite/btree.h create mode 100644 src/dep/src/sqlite/build.c create mode 100644 src/dep/src/sqlite/callback.c create mode 100644 src/dep/src/sqlite/complete.c create mode 100644 src/dep/src/sqlite/date.c create mode 100644 src/dep/src/sqlite/delete.c create mode 100644 src/dep/src/sqlite/expr.c create mode 100644 src/dep/src/sqlite/fts1.c create mode 100644 src/dep/src/sqlite/fts1.h create mode 100644 src/dep/src/sqlite/fts1_hash.c create mode 100644 src/dep/src/sqlite/fts1_hash.h create mode 100644 src/dep/src/sqlite/fts1_porter.c create mode 100644 src/dep/src/sqlite/fts1_tokenizer.h create mode 100644 src/dep/src/sqlite/fts1_tokenizer1.c create mode 100644 src/dep/src/sqlite/func.c create mode 100644 src/dep/src/sqlite/hash.c create mode 100644 src/dep/src/sqlite/hash.h create mode 100644 src/dep/src/sqlite/insert.c create mode 100644 src/dep/src/sqlite/keywordhash.h create mode 100644 src/dep/src/sqlite/legacy.c create mode 100644 src/dep/src/sqlite/loadext.c create mode 100644 src/dep/src/sqlite/main.c create mode 100644 src/dep/src/sqlite/opcodes.c create mode 100644 src/dep/src/sqlite/opcodes.h create mode 100644 src/dep/src/sqlite/os.c create mode 100644 src/dep/src/sqlite/os.h create mode 100644 src/dep/src/sqlite/os_common.h create mode 100644 src/dep/src/sqlite/os_os2.c create mode 100644 src/dep/src/sqlite/os_unix.c create mode 100644 src/dep/src/sqlite/os_win.c create mode 100644 src/dep/src/sqlite/pager.c create mode 100644 src/dep/src/sqlite/pager.h create mode 100644 src/dep/src/sqlite/parse.c create mode 100644 src/dep/src/sqlite/parse.h create mode 100644 src/dep/src/sqlite/pragma.c create mode 100644 src/dep/src/sqlite/prepare.c create mode 100644 src/dep/src/sqlite/printf.c create mode 100644 src/dep/src/sqlite/random.c create mode 100644 src/dep/src/sqlite/select.c create mode 100644 src/dep/src/sqlite/shell.c create mode 100644 src/dep/src/sqlite/sqlite3.h create mode 100644 src/dep/src/sqlite/sqlite3ext.h create mode 100644 src/dep/src/sqlite/sqliteInt.h create mode 100644 src/dep/src/sqlite/table.c create mode 100644 src/dep/src/sqlite/tclsqlite.c create mode 100644 src/dep/src/sqlite/tokenize.c create mode 100644 src/dep/src/sqlite/trigger.c create mode 100644 src/dep/src/sqlite/update.c create mode 100644 src/dep/src/sqlite/utf.c create mode 100644 src/dep/src/sqlite/util.c create mode 100644 src/dep/src/sqlite/vacuum.c create mode 100644 src/dep/src/sqlite/vdbe.c create mode 100644 src/dep/src/sqlite/vdbe.h create mode 100644 src/dep/src/sqlite/vdbeInt.h create mode 100644 src/dep/src/sqlite/vdbeapi.c create mode 100644 src/dep/src/sqlite/vdbeaux.c create mode 100644 src/dep/src/sqlite/vdbefifo.c create mode 100644 src/dep/src/sqlite/vdbemem.c create mode 100644 src/dep/src/sqlite/vtab.c create mode 100644 src/dep/src/sqlite/where.c create mode 100644 src/shared/sqlitewrapped/Database.cpp create mode 100644 src/shared/sqlitewrapped/Database.h create mode 100644 src/shared/sqlitewrapped/IError.h create mode 100644 src/shared/sqlitewrapped/Query.cpp create mode 100644 src/shared/sqlitewrapped/Query.h create mode 100644 src/shared/sqlitewrapped/StderrLog.cpp create mode 100644 src/shared/sqlitewrapped/StderrLog.h create mode 100644 src/shared/sqlitewrapped/SysLog.cpp create mode 100644 src/shared/sqlitewrapped/SysLog.h create mode 100644 src/sqlite.vcproj diff --git a/PseuWoW.sln b/PseuWoW.sln index 0ea9c3b..964ef1d 100644 --- a/PseuWoW.sln +++ b/PseuWoW.sln @@ -20,11 +20,17 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shared", "src\shared.vcproj {262199E8-EEDF-4700-A1D1-E9CC901CF480} = {262199E8-EEDF-4700-A1D1-E9CC901CF480} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite", "src\sqlite.vcproj", "{8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {EFFE60F4-DA39-41E8-9E53-E462000A2D91}.Debug.ActiveCfg = Debug|Win32 {EFFE60F4-DA39-41E8-9E53-E462000A2D91}.Debug.Build.0 = Debug|Win32 @@ -42,6 +48,10 @@ Global {F548FC51-24A4-45FF-A381-BEBC39F18270}.Debug.Build.0 = Debug|Win32 {F548FC51-24A4-45FF-A381-BEBC39F18270}.Release.ActiveCfg = Release|Win32 {F548FC51-24A4-45FF-A381-BEBC39F18270}.Release.Build.0 = Release|Win32 + {8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug.ActiveCfg = Debug|Win32 + {8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Debug.Build.0 = Debug|Win32 + {8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Release.ActiveCfg = Release|Win32 + {8F1DEA42-6A5B-4B62-839D-C141A7BFACF2}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection diff --git a/bin/db/chat b/bin/db/chat new file mode 100644 index 0000000000000000000000000000000000000000..0570f47f982906a9355723d6687b1992149fe291 GIT binary patch literal 6144 zcmeHLK~ED=5PrL}?b3yUD`}dwL0@A?X@I0aYGOPn3bBW#1cfy9(mvpou5EYA?kiY~ zi4eVc_ux(M{s9xO9zA*012Nu>Kft%$t*t;&5lD44^o1}))jVy#z*H8GP) zC2?+P1?N_?S-e5Zq*-G)k(hE!U0+?}*>t+UvDwfK-84#AH`v6?%yEXPgp%AVN^&%v z7WT=JoGeoIby;Cbd~R<_;aRC(-e{8ID7{YI~2m89Jof#RjpM z-OjG(E*+CukNWgkIbMEUGbLFO&am#GtO;V?kp(AjkMq271 zXk+eAv_rKt4j@S7-Ey2 zS;pMKo>f^lHvIkn?6kEXsn5WlX26;M5abXXz&m&Yui+*Cm+l!n=8!Kw13m+%VjvZg zw7j=kFPKJxwbzRZ*`}BnE$6AciPtD&)WXcTK%;6NQ5A zk+1Gbz_rNeaWp7NYJ^+x?IDg7@D#L#E{IYr*;(*&gjA;RxQ*@Rdes(Vf)tzV=n9lr LuF~8w?6~k9!?3QK literal 0 HcmV?d00001 diff --git a/src/Client/Chat.cpp b/src/Client/Chat.cpp new file mode 100644 index 0000000..7bbe966 --- /dev/null +++ b/src/Client/Chat.cpp @@ -0,0 +1,200 @@ +#include "common.h" +#include "DefScript/DefScript.h" +#include "PseuWoW.h" +#include "../dep/src/sqlite/sqlite3.h" +#include "../shared/sqlitewrapped/Database.h" +#include "../shared/sqlitewrapped/Query.h" + +#include "Chat.h" + +/* +int chatCallBackQuestionTypes(void *arg, int nColumns, char **sValues, char **sNames) +{ + if (nColumns != 2) + { + log("Got wrong number of columns for table `talk_types`, columns was: ", nColumns, ", expected 2 columns."); + return -1; + } + + ChatTypes[nChatTypes].type = sValues[0]; + ChatTypes[nChatTypes].remove = atoi(sValues[1]); + nChatTypes++; + + return 0; +}*/ + + +// TODO: Rewrite class (Rewritten from old php code - i didn't knew anything else but very simple select, insert, delete statements when +// the code was originaly written. :P + +Chat::Chat(std::string sentence) +{ + // Okay, trying to make a semi-advanced chat AI. :-) + // First is to find out the type of question, right now there is three types in the database. + // Opinion - If the player want's the bot to hear if the bot likes or dislikes something + // Example: + // Sentence: Do you like mages? + // Answer: Yearh, i love mages! + // + // Wazzup - If the player want's to hear what's up :P + // Example: + // Sentence: Wazzup? + // Answer: Don't you have anything better to do? + // + // Hi - If the player want's to say hi + // Example: + // Sentece: Hi there! + // Answer: Yo [Name]! + // + // ... - more to come + + // How to do it + // 1. Find the type of sentence + // 2. Answer the sentence the right way + + result = ""; + + Database chatDB("db/chat"); + + Query query(chatDB); + query.get_result("select type, remove from talk_types"); + + std::string type, part, resultSentence; + int remove; + + while (query.fetch_row()) + { + type = query.getstr(); + remove = query.getval(); + + Query query2(chatDB); + query2.get_result("select part from talk_types_parts where type='" + type + "'"); + + printf("Type: %s\n", type.c_str()); + + while (query2.fetch_row()) + { + part = query2.getstr(); + + printf("Type: %s, Sentence: %s, Part: %s\n", type.c_str(), sentence.c_str(), part.c_str()); + + if (sentence.find(part) != std::string::npos) + { + // We got the word type + if (remove == 1) + { + // Remove the sentence part + resultSentence = sentence.replace(sentence.find(part), part.size(), ""); + } + else + { + resultSentence = sentence; + } + + int findSign[4]; + findSign[0] = resultSentence.find("?"); + findSign[1] = resultSentence.find("!"); + findSign[2] = resultSentence.find("."); + findSign[3] = resultSentence.find("?"); + + for (int i = 0; i < 4; i++) + { + if (findSign[i] >= 0) + { + resultSentence = resultSentence.replace(findSign[i], 1, ""); + } + } + + + // TODO: Make trim function (Remove spaces in start and end) - i am to lazy to do it now. + if (resultSentence[0] == ' ') + { + resultSentence.erase(0, 1); + } + + query2.free_result(); + query.free_result(); + this->Answer(resultSentence, type); + return; + } + } + + query2.free_result(); + } + + query.free_result(); +} + +std::string Chat::GetResult() +{ + if (result.size() <= 0) + result = "Err... what are you talking about?"; // Don't know what to answer :P + return result; +} + +void Chat::Answer(std::string sentence, std::string type) +{ + Database chatDB("db/chat"); + std::string extraWhere = ""; + std::string escapedSentence = sentence; + + int findQuote = sentence.find("'"); + + if (findQuote >= 0) + { + escapedSentence = sentence.replace(findQuote, 1, "''"); + } + + if (type == "Opinion") + { + // If the bot doesn't have a opinion, then make a opinion. + + Query numQuery(chatDB); + numQuery.get_result("select count(*) from talk_answer_remember where question='"+ escapedSentence +"' and type='Opinion'"); + numQuery.fetch_row(); + + int nResults = numQuery.getval(); + numQuery.free_result(); + + if (nResults <= 0) + { + // Doesn't have a opinion, make one. + Query createOpinionQuery(chatDB); + uint64 opinion = rand() % 2 + 1; // Random number, 1 or 2 + + printf("Making opinion for %s, result: %s\n", sentence.c_str(), opinion == 1 ? "likes" : "dislikes"); + + createOpinionQuery.execute("insert into talk_answer_remember (type, question, opinion) values ('Opinion', '" + escapedSentence + "', '" + toString(opinion) + "')"); + } + + std::string sentenceOpinion; + Query opinionQuery(chatDB); + opinionQuery.get_result("select opinion from talk_answer_remember where question='" + escapedSentence + "' and type='Opinion'"); + opinionQuery.fetch_row(); + sentenceOpinion = opinionQuery.getstr(); + + extraWhere = " opinion='"+ sentenceOpinion +"' and"; + opinionQuery.free_result(); + } + + Query answerQuery(chatDB); + std::string answer; + + std::string opinionQueryStatement = "select answer from talk_answer_text where"+ extraWhere +" type='"+ type +"'"; + answerQuery.get_result(opinionQueryStatement); + answerQuery.fetch_row(); + answer = answerQuery.getstr(); + std::string replaceString = "%s"; + int find = answer.find(replaceString); + + if (find >= 0) + { + result = answer.replace(answer.find(replaceString), replaceString.size(), sentence); + } + else + { + result = answer; + } + + answerQuery.free_result(); +} diff --git a/src/Client/Chat.h b/src/Client/Chat.h new file mode 100644 index 0000000..516eab3 --- /dev/null +++ b/src/Client/Chat.h @@ -0,0 +1,17 @@ +#ifndef _CHAT_H +#define _CHAT_H + +#include "SysDefs.h" + +class Chat +{ +public: + Chat(std::string sentence); + std::string GetResult(); + +private: + std::string result; + void Answer(std::string sentence, std::string type); +}; + +#endif \ No newline at end of file diff --git a/src/Client/World/WorldSession.cpp b/src/Client/World/WorldSession.cpp index 94c02e7..6a94cac 100644 --- a/src/Client/World/WorldSession.cpp +++ b/src/Client/World/WorldSession.cpp @@ -8,6 +8,7 @@ #include "WorldSocket.h" #include "NameTables.h" #include "RealmSocket.h" +#include "../Chat.h" #include "WorldSession.h" @@ -305,6 +306,8 @@ void WorldSession::_HandleCharEnumOpcode(WorldPacket& recvPacket) plrNameCache.AddInfo(plr[i]._guid, plr[i]._name); } bool char_found=false; + int playerNum = 0; + for(unsigned int i=0;iGetConf()->charname){ char_found=true; _myGUID=plr[i]._guid; + playerNum = i; } } @@ -322,6 +326,8 @@ void WorldSession::_HandleCharEnumOpcode(WorldPacket& recvPacket) return; } else { log("Entering World with Character \"%s\"...",GetInstance()->GetConf()->charname.c_str()); + _player = plr[i]; + WorldPacket pkt; pkt.SetOpcode(CMSG_PLAYER_LOGIN); pkt << _myGUID; @@ -387,7 +393,11 @@ void WorldSession::_HandleMessageChatOpcode(WorldPacket& recvPacket) // some fun code :P if(type==CHAT_MSG_SAY && target_guid!=_myGUID && !isCmd) - { + { + Chat *chat = new Chat(msg); + + SendChatMessage(CHAT_MSG_SAY, lang, chat->GetResult(), ""); + /*if(msg=="lol") SendChatMessage(CHAT_MSG_SAY,lang,"say \"lol\" if you have nothing else to say... lol xD",""); else if(msg.length()>4 && msg.find("you?")!=std::string::npos) diff --git a/src/Client/World/WorldSession.h b/src/Client/World/WorldSession.h index 2e6aeb1..310aa48 100644 --- a/src/Client/World/WorldSession.h +++ b/src/Client/World/WorldSession.h @@ -78,14 +78,14 @@ private: void _HandleTelePortAckOpcode(WorldPacket& recvPacket); + PlayerEnum _player; // The connected character PseuInstance *_instance; WorldSocket *_socket; ZThread::LockedQueue pktQueue; bool _valid,_authed,_logged,_deleteme; // world status SocketHandler _sh; // handles the WorldSocket - uint64 _targetGUID,_followGUID,_myGUID; - + uint64 _targetGUID,_followGUID,_myGUID; }; #endif \ No newline at end of file diff --git a/src/PseuWoW.vcproj b/src/PseuWoW.vcproj index 22d61cf..80c74ac 100644 --- a/src/PseuWoW.vcproj +++ b/src/PseuWoW.vcproj @@ -150,6 +150,12 @@ + + + + diff --git a/src/dep/lib/release/zlib.lib b/src/dep/lib/release/zlib.lib new file mode 100644 index 0000000000000000000000000000000000000000..98cc6c8ce5525dbe9a3228d10c0a2f4b00da2533 GIT binary patch literal 188354 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 I5k~6&0aX^FO8@`> literal 0 HcmV?d00001 diff --git a/src/dep/lib/release/zthread.lib b/src/dep/lib/release/zthread.lib new file mode 100644 index 0000000000000000000000000000000000000000..030ce8fab583f01b8352bf405d3a98a725540a45 GIT binary patch literal 4966572 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

ece1<+pGWJ_&)RltnVW5 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%0AD8GdWJvrc)_@xJ7_8ZzxPd0GLa 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�IEF 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

M!*%g--(Ji0|^9QgJEq!>EzExhP#rMMbAp7ud( zz4sS`-PU`&OzGaW4{W_ZTy%)Nn)cNGV4Fj1^#Q1Lx@1ewL?QYk3envwM=HAYzC)nr z5wH_6`6-@dR!>dY{GxiFh#? zx8A2o!uMj5w%(_qh-8|2d3a_ijx~)=22u(WAO*_l)rb@0rl_&?ey5K+qkhcv=vpwi z_1A(=<63ZiaAUq4JG^}x^Y4;Gwtr(jEjt?}t|2z&Qz_JWp+QmSg^(`u9xP#;vmm4! z^GTr_^9f-F1^H0@3dM~fq|3aAN*I@U2^E+MG;yWn?g*t#y)j=Em(I&nP<~j>3rncZ z3;9*&rBooA(P;wJ06J2jw9ZTFMaiVj^TXYkzeso<1@6@p`klo@g!Lgdx-oyDP;g_u zLhLqT62>83bYnid5w{S!9MJ#L#{4vCEX#OQOMz`L{q1^$ISFyX~Rd zX=#GX;*llMn~+avo2YL^+>{nYtqRLZRfQ#_oAs+C>;~{kNH^<~LO1IZO1J!ZKH_w< z{&9d(Dcw-BmdsISEsqx{lZx!j|)kv0yHxJtDE(Q zY^+I}^=FpOnr5QAH#oP!m3uCY-S$B>)8Ot6Zs7OYscV&#rnXAfjJ8Tbx`BV0gmM0h zkZ#~7g>K*{G<2&x1z7K=RWe6ym2rX4D#IK2>G+a)4s*GDo_cni3+(WVLsxVIf2KwG z+drtPaUM^2QT|KLkhltBDRm~Ckj{h?`mk4u+1GqnE5-Nj?W$`hS?%E3aGH(&_aM(9 zEI37=RY6Frf>5X`-v35_9Y&?vA3+o7T6zhf4|0FRS3X$Tr{4VU3E#DPmRLniNJUL3 ze+H3GUuC_Vvb6uj+XGYCjK zxz8ZR$XUR{>>Fv7_&oy4y_5?#eeEJv?QKBx1l`4%D|RZu>tGB!^APYS8<_s>v|}eO z>Tm67FJH2-wYLwaz@1)xQuFGbL~DC_`4aw2v^TZEY;jAl7r`xSDLTA4)A43}_&hH1 zb};VsxUU>m34GfQVjKX`+nd9rVW?@bSY zztAp6R*3eKtY+;e328rhwS=*sB&7W$DYTy?RA8o~ido@>hQ}WeDlj}J=Ccx3ZJ`1q zQ+yYWMp`@{WCIR$*tnS;mfr+7Q+Cp91v&`7wEav1bUl*GlS7l9#;;=USU3F0cp?Ao zo;GG-b>ziD=*a6vfvS+&=LM<(bb~=Sr z!x2vGz1e?9TRKNVycp*$%qz%m*V0dlv_R4jhpGP2pMXf!z{<+n(D3^b(%_RD<$Nql z=?TXFfW7R5MOMux?`pRQsof$Zc5B_%5}eg}+IxesH!%0AQ<#`S9q&Hhuo`UPJ*16| zDkB_-OW)(WAkQ-g0D2Bkv8elZBvXlOthMc<{T)3CQ6!#F@H=3K6p3}L5+bA$B2*x)kLi+; zub^18S>cN@+)J;reprNH-9nKaP8L?F^6X)VFCX|X3RV%I{}M_HQS*2k|0nW?y=XU? zL-2}vifs|WkcK#W;=a~3$$(93I=icFbx(I!$2qNi9o=2=*ja6fwS>yb(ng8wxYhb{ zBp8w%c~{vHQrQtIFp3KluzdL6UfE|uIYqg7aX&ISUIS^7g5DGbBhQ*|9 zamD1IGxZpOo4kiAW=o`)q+v0cYR>i-6N|R&&eE5WoNE~gX&DJg8Hcc=xlo;A@iTUg z9X&Zx_U*Ex?Fr1KcAveShLlc{7N3w7pHRS%hRtYy1~W?S9|4)*%VL12F~u?wt!9*a zq1230ZffZA@V*$Q>yN~MF6{-JWv?~ED2>RKZ*ouWTixGv`bWyV&QLwSva(apNVN6gRCuhP zC;IT&767Qweufe}`d<}ZK#6AR&3pKW$6;>p5#$+7J5 zg{^IgzO{WlDb6&;I8VsJGG;I#HbbU+^D_fE8&Jr zEiI+wG-PUf4{GELCN6zuZcdLQ_x?|9Pps%)HL-~Sn6x*!Ip;6OmqWaG0#ke1Tk*XY zx#$(;=1|(a2A|mllc=QQM)YxB2JhJ>KC9Qj!#vmKQYpY zQlWtbsOEol`b|DnucabRI4@dgpTnabT=oZ_>PAaNoG=yr2A}GfrNuY+RL@!};)JQF z**?`5PuvT0mQEV99=wPXrYb;)PxZ%14?O8p?Z-;TMVv5IAwqnr6R%xynNL+|sfZJ% zVqfJ`g=@LPQfV(4Y#W?g^QpqM%;TGQ>HJ%eivGM$6_&;WmWnuG4#$M3!sQaz6)N zK2;wVal%w|_I#=hmtMctrfkArs8y#Pxa6VyQ9%Ls;^rr;)JQ_(D_ua-MI^lgrj=JQV}Oi#h%co>U#M?U^=RQ zSt{a$spymVRC7*y4BFwSCR*c5oG{h?A*!%ttG86d2~%+x>E{);Y-d_3;)JP6LR4Yf z`vpryoG{gaA*!$ic*ar@CrmXVL>0D&Z&@nhgsBb+QHAZs0qjh05hqMF5h1=b!ghm8 zVZ4YFraBlQK2_Lm^jj+8gsBb*QQ-$JSIb|pRKy8W9f}Y?ufJ_te5X&v@h>mpgsCPW z#HR|^*H0`Jal%yWv3;s=eZ6g|h!duo9HI)>R}nj8T*L`e(dYK_3fEVur6Nw4YD$PI zTwe{Aia22^PLud~h3jjLr6LZf`VwdL0pc|kcWw^fMw$+P{rk5bcAf-#e%&khDSlmU zz@Mda7j^Q~yA3*dnh>6!wz*F=B{-}9pY%%_iYHrC>pXU5YmxzjfZKIFjIYJP-dKSb0#1v2lsxPF6(#cVhlxh30Em@ zCuikw8bWe&XtzoA`t9@n=2IPFsfYurKwi^@iZ+K--^jWAET5{{QV}Pd*9@U@dF|1^ zPlHdj(ozv8oYzdDIuK9hwcBA=xB65USt{a$^O_}8F0aeyO}@~l`jVw0PMB(Ti0Y)i zb!g76zMipE#0gW)5h{8e*3=0G9=LvIsfZJ%nv0O!9C|n`*EI|N2ywc+{$;6%qhaId zy4nlr1nOcQLUVK2*D#$ab#s8}(wStbh!f7eOsHJT#1CAKs?t&s2UOIriDwDMQF!L& zd>c>l{p;8Ne7yvli8XU(%q}gJ>7%1e2}VE+nKf^oY@Q2-utYeqS8xb*c;zbbIAl0p ztj4YK@ulk2;R;YOlsK+j0C63II~~;nmWnu9)>je2{?_N`y)Zv#QP5iW`I7Q&c+zhk z*!0{Q{KGY|nPs0T<5a=1A*^wnUx-_sh}}4huorkbLuhd%M5qq-Nf_QMOiS3Yc;@Ex+4zA+KJ}7!w*W!8IqW7ykb>Z_FSY3q$F(t~ zsuU`xxnD3}wh|-xotBC?VX7*jO098^TPor>DuB3RxYM=gH$X)#AWpbNl_Nx36m{6Y zT#I69%W?ZHihN0k2qHoi=wTNEFE>Z~Yiz?U|1n%+N-Wq~775PneB$P{P+AM2ZMLKf zS<4JC`xnSRJQxyenTrvYn=@LXbIf-i-B_EPSGC}LmQTUMr&U5NlP8&H-7>qnyRcMx zcC=|8ZaG{`4s&=)I(b@rgUv9c%j8)l&z{V`f|3^;PnRVvAf}`WNd7qBql-*md5ddb1k1l!*!e|`QvOUj+0W1Mk$!qt~UxA9zl!5yp$jIcK#JCh2VIlU|MOZ z0;Q+{o_a*-tqrOfI9KqAn^#S!P8Wmstn2j5){eetg(AfcD~%eF#*s*o8t_|B8q9UQ z#nG0@kS_&7I&wJEqivXRyn?=89e(?sRoDZ0(xyWkr|)W8>V+z`Mf$C!B2JhJjui4r zZIRxyRKy8Wogh@HEz+La&}8p|qXIgvM%?Kv(hN}1A`u5vfj*A)t}Tjvl79tTl;C(R zihQM|3bd#u;0aNGV>({&a5zkFi!Ft(x#LDLoEK}E*93%618h3<;%3Z|FHr`(IGoo! z6F3^;+Ow9zwP)t+U#>kRKWpYhH+W%d=*hixCo#^Q_r&5@T4-%8x7QbSCCq=}S5Z)$7YS+<%e$8{mgC#o7*g zQPMpT`n*?C;=BYLy~HM1JEl~QA05d!y!8Am4)GKAtVsPf@@nw-IS2gEb9mk3$JM*y zxZIC+8O#6lxvvZ5ULK<2k75jFF86Zh>)=HQ{ganFapnR?ub?!P%JH+np~(OA{M;Pk zhq@lV+K|_M9zT4op8Vuq6~wwQB|l2#_@Q6uU+MYzUWlJspTt7oaey#*R`yyss zh@YRQJ+=a3LTr-rEb;|b(d>hbd( z@Wavm@g6_HnG@Qn-2X$~cfi+C9RJ_5Y*|PK7et33z;pwWEH_as*?um>GR6%P%CoFu z3(JzCVoY~15M*IWr~yI=By>W603ifSFCn3WNk||80>tJQ2qh2*{(rwSdv|;H?%sR0 z1xY^t)#pz0c4ud2XJ*^n-d=)zA<&#@@AvzwW5x#fHVn_i!K}dY1CZ0a1g!vSaDI30 zbaVuS7zPj2|HMHq%S&?eRb^ikx*#YVMaqm*9ByBK6o@R=pa5mzUTacd+DK zbMw@yJYHCFH^P{<3evWfdXp4CX_AA)Z>QufzwKlyL z?5pw;%TdTCfEbnrY-}DXCpOlXPxjke7qr(dUfj@r#@Ldl zd{pvmH-4}sFE|0o`?+@VvjDOszYM>zml$`pudeRf(QDG4?D^{V1jlY)%RI@K8Ko{0 z$)Am^q;>M$xJj@je=1^vtw8CB1&2wpMVu;MlF;G*1_&ZLO3~6J1;jfw0ZIdauSBy_<3H454GU0;MCm7%@V0Avmgw z5yM3nXZX5+zn4K{2=&>9cMYnG!w^GVD2}a*?;|#-3sX9EF=CYHLU2?U_|^-9#@M=` z#8emBas&-GTNi>8XcvC25pD+gZ|mYr#Q3^6c+F9qRdw~G}*$JT|?5nbT5)}4_qII4@0BSjZ0d|iyxdT0zwIBHwoHK;CbLkxAH zIJPc&5F6BmDV@3)#bcE4{s3`Q7kCetL1S!PP-3c!0|mpq*}4#%fG+%8W8Dn$-`2%h zi1Bq1JqK7RI9Dh9Ilx(-E=JScfpC`S;(4Qs^B&aLpf1ivWU!A?I--lwWugngQC*B0 zBf2=-*TtyOLRMo4-f2oFthx{fA%7xh%;DSXFF)pH#86*K$JW<5hz;t?a7cZP9xnP4 z9M#uowGEB2^+ls_O-LOL-d*lp(rhzaUT>4?6@REWL=NA)$PT=ew=UteQ%&aW{ff4eE2uxh8zw^SF3 zW9#C4-~@GHN~bQyj1*l6j_P8J+J?s1x}d~V7dx_8FW7BIa00sUbM55iAYkj_0{qTP zEW@3;Se2TNet@;I$M*{b$8I|pc)BF9eElL%7o)LLjzMDx6T^xoOwhP6vb#XCbgSs%KLl>iQ0`DNC z3y$bwbeZa1V{BbeVycVy@m+8{T`WTmKUe(tehKih^M7369+^F86eCz)ni_a?!rh|9#cAD)kP7Auw5vQt&1xW8`OmhH-r4Qb#WD9@)B2}B0J*n&c`Ruo0YDMs|DvI;0%`h zj&qf#i}O);hO0yuGoTC7TKAI126gdcMCwzazJMnF=%}-mj_6`UDXanC@AM^)Jq!#Q zLuh{r*@Ql-uZmGl8Opl~u_zkh=m?zAPO;#W7@VsEIL!60w3r=+GF}5RBOHlrK$-`MEli8~MOw^rX))^%LoKRQZCkwtvFcIG2UPgn z10NXe&{nbHn1EQpQCr12g)PI5842A5W3+Ek9NV6+0-oA4KZWQA*Pby@icbA?9Ifgq z#A>b=gSjl9)wRIM_H^kdf^!$|xEQW=`YGVtvAY7-qAtOwFh4~?UgBun^O5g@McbfT zr2g#D{5rw;Hn{5#h~cL~+4Z7djsiE{8)m+*r3K*rq2c+b+4usKi9!-2KjIIb#&3^CA1IAb1u2#RtyVa z4c;U;_wg?I9p^^RHhzn`Gu$Y0J^=`%HTh2xiJM&umZi0*ag*i0T?@hSYC&3lu0w*k zEDOIGDS3%%-r>=#dULlW>9x2;a2^sI+z@W|YB69>H>L#E@_p2Tw9bEBWA#4W;P6-Q zxiCxDdQ~c_xx4l1i{FCd)r-{qT%qyHs@JW+%S%k>9rfDg=sv$muh-86=LNyR4dGU= zUKbjkZx!vFk9v{T=Wh_p4X?-6i=}J5v<Ck&U@+q+eBi|pbT<(*_#@x z_XdOG5C?socgTTrI}rSR)Gr><^QzX1`A#vph=W|#E}c6h*Y*;R@~&QkVTICQxX|Px zj>bI|Tl$^A@%Pi7`N{W9Z%jIGnq0&Qmi`OL6vOBt}axe!sh=^v!w4b>K&LJgQojz8C%thPxqWreY_wN5`eymKJkqAjX#SJ)jV` zN9ZAwi#W>jOF=r;Sr)$(I-B6m@c8+Q=eT(s=N~2)ag@%GVS*+%jX5|i=J>Rj9|mIf zo!`;nQn?pEp7+ka#wuOMS!Hq&N8{E7=n#7c^zh_erE1IPSBT9^*rS!v1xG7*ayVKE zj*eEwlcOrhoS#|@=tE$8asW`VlGRIc^WaaRV~Z5@COl_mzaxtKU~{YtlP?P zNDIdspa&pUaKysLlvLi^p6REUT}4~17ZZn(3x=tS!9G<7|>hvK`r{6DCq7OOL=@w`Yq&4_sQ&d2w zj|d%Cr#Fqi@fS*mIvrD{tI3%9ODGUh+r=-O^ zoEEb#EoP^3)v}guYxz;o3~Jf%3@wi-FB2^bj%pd+9!_HIm=U67I|f6khhuA*HB~Kd ztCbNvv@f%pg<2LIPs^0GpX=aYE~~GT9xQPq@)tsL7yjkgOVYLcI8yTxBVb?d+UhaU zvb(lw?UlaHoMvxo<~T1w@(hoO{gk2%ayjjDiNwubTRnl_!L^lgDE4FgNKc6UFgMqa zZcxFb(qbM9hpAiNjoiqn3d8cNjFr)-rXWT4vwj2UpAe z5G6RCmMIZG*O7h}Kz3Vx3cuA>`(uXR_4!H|9cym)&%Y6zZ&_M?%4^G`m1XBC(M1xv zAcyaNftv(d7f&N5s0*c|y3n@#w5N+DhBC>hF78f?`6FT|L(OGN{JQ*$?rbGjbSf39gGY{#9#icu_((L-&vN{qS;NB|86ZvU2wcwkd~jTC78?VC7wk} zwiV)Yg7X6JhR(BIEgDTNo)!B!0=1Y9oCDSw#6T@rmeyi|n=Jp`S|GC{I9@GC%g;3_ zn9Hig^GM0Iei!}|4-wPQdETqVZKf8_OD!6~NHuV-brJ^C)&KDvI5E8~za%)90f!o9cu{KM_SioH@4Y`e{n*IoMUl@r zD1%&{($A9*YhhMoFN3F`M_M_QUSg#7nJ?Am(!|-|lhcTlq_W@85j!27HnHIAuE#|LjF?)>`a&lA3i_>COr^O7@4${hX zT3XC=h@oCp8g_s93SxtvWFuAfhww2@K)T>)e>ifKc#`dy(U5r%M@6PMwuMvjYT@yo zWWn()oYvsyiuWY12IXv?0&nRi?aZ+Nx%lc~iUQj14Wi)y4V9_ZGB z*gGGo17THcxm{aNgnF5c!K& zuLXwZzc_3K&w>$-?e7e->-F>4da-n^SB0Uh|Ll4Rj#n>I_j8R3=CZ8rEu>`gB)=^< z%fKrAUJP#q`i)Ofn~fiH!=B`ijWpg8iM@|9$j6U1cO_=`8-GQL_N$aUy`ajW^c!Pz zZv0o!QN4_^)Z7R7j?)^5vAu<&%@}XtMJ5+D;b5P@da1BP%R>;l!( zH+W~>rI)B3*lW+Vg3}J1O#v~i@%n^8W8Ih%^a)!-cBHjxTen`eg})C}e`KU@Q0c(J z<$L6$^uAcQ#*A{F1R3FwekA!2_^lFCVs!U_DV;ghdIwe!)}S#ntK8o%&S{9Dt!i1e zh5sL7gI*)U;VhJn-C1nTf*qi^b%~Heux-f zr}Paf9nlwd4KaKOIz!2vZ!~wTS03P z9M!vdw?boVol^3u)472B;Lcl6VaORco=#bRKi83d7C<5m6Z22}&*u00OmNCAo&M8n zr#GYS4F810`XuIo5psCx-cgeO94SG`D;<$MJ{-yLxhMI*8On@R$?u(1IV+AW=YIhw zC}%^Na>hFvl(XQdoUuQOL1Sz=QyMDglwi0wSI!tRQBzyatgWA`-pwHYZ8?8|m~5+( zF9pY5m3-mJxeIk?_(J5o2yz~bU)S(^=MwB%uq>@byq8aKJZm8>KUa&AG*#FRB(SOKV{n0^)342#!|^((-dn!Y@DAwOEJf zY-=mJ?D7)!+G?Fwi?2*A)=4eChgwvF;>yyfTCgmw#lb!^fb3cbj#mrP@^jS$b6G2n z1d7W`T!eIf_3omxYVXl@V$YiT2u>63MTSm7PVRKQe7A#lS#d<2?d-nb>3+5(<}KrK z6P0u#!5)Aoe3PeB*j-2v$s3bx@Q>AJC_mBzj4H!ifpuc4#+1saXUAy& zoR=tZaj;kIFysZYxrTmF{(nwWx>&Y zW7H@am+hF*!l4~A5|r>htJK17mE=$@;ctNa;95dHq6EjY1j^CR^-(aFWeNRQmN_vy z&w1f2KF(r~XplI*$GcO5*`gBu}@F^rT_!nA$}6;poED;HkFL4IScOC1vF* zlw5<5L&r4$9(0n)MI24N!Ne$*tqV#_bupERUT`gnqm|%zx?oNGT=Tpf1neG?PDS^; zriAlC+pl*~ZfuJhAUL-pr>l#ifG&QYNf+V1CFYEv$4uRe5+%^ZbD+3A%6oMbik4uX z5wxlBv#m*a{a27b(jAwVxDFIu8EzJk;kxyaVNCzL+hncPW(msh4N%+)5pRrU%@}NpBF`!f%jk$> zwQj-jq(NGKt|=tw1>2(Npwm5XtZV&*y)iirx9-7$b1m|_(ir6RQT3)4gA%O88q|XA z=kYO7wP0CVi*I|p5U^_@I9@GC%g+@*<_-}K*`v|76W!C&u@=5rIC*TkUV`7aLAQgCKYVCtcA*FKAG`?DVT58*mi^4mkt)XRcYkh+$GBvHWy`inSwyq&JWc@B} z4!AhfsHH9kyxO+5T(CNG;jgu;GY48tEjb{iCgb#;#@eRlC|qc<6JO^wBAj1aKffum z;2<8U<%HPK+L#mGg4Wg?OKxth?QCpnXpXeOiHkcMn`;+zc-84>$Q8G?{+Ot|)YuehlpzKdHZ0Ad=+?SOt%qpU zH{?fzmw-CYhrUeUgDY&_zF&DIsg{{Z7wRYrCU&REcIpWU8H$-zl?P_al zXs^o=x236beph1-R67 zdS}z(Sh6i$IMGQBF)Hg~aMWqK@2K>;&g0r*Y1g$jH?wcTU=x*hY^i?sv&wvFwW{jS z>SWd2?>J+}re;)x(?*Uv%zSmAs;sJtIFrICv#XQStLILs5(>$TsWVE)R?nH%+A`jJ zn!@LyYP6JJHfn5Xbyam$B#xqxgvXOt2RHw4&7Y3oXCCi;v?aax>MG42g=08$QNk6~ z6(r}36+;hH7s0M+fv`$&^~l*tYM{6sqssfPQ)>04U-kwK}Pu!d8!%v zX`uNsi?F9t7#5jLrP{ji#aXmOF~1m0%LKDx%qWjSQ3Vc3pW|2RF9i8tF~hiddJi>)n8QGi^MF4+KupYXh>-VjZR}{ zTrxEcXr<^1*cq3F5xfRvx7s+YvB#q0Hyw%JiGajhb|A;JViFxw)6}$Yv;4UHCRye? z?Oko1n7oA#tY>w3HWos%4XG6-Cp}9lHET+CQZm${Ikg_^OP-R* z&Ng*CHZ{H~RXT2b)wth-E~UGmswT`HJG5?LZF{P-9o|z`zPKfjlUq%%>F)cfVT3cT~qoJ_@b6jy(VRX=wv!{2qSIvnU zj^<3n!z3(&7SV>hnI-#ilB;iM?oD#E?nylKxymorD{~IHXsDlw&+;{dnW?I-_H)SS z9hwmI8eM6DRHd9^m6cYN zTD{2O8%oUWMIdjC5}xG;rTw3)-#0H?^rk9ak*+;2{HCQ~bMnp0!InaAjZ{-~;QLPs z)vwk!FH*Iu;PBr|4c8_5pA@ZKz5kSO?U_|CiS|Elvnp8fA!3~rnjub#m?2K0b24_Q z$&CW$2T?;!crutXF?Xm@7nb%ZVI8eEv9xh3y02Pqx*3MT+-UW>{J(kKPaikQ8VY+$ zu%H?>w0@&fwQKgx%k}G!>XiSyQ2lCs^CES}9+g6`_AUPn_G(w}KPB9+LA3vQn^nP* z4~lif`mW+I`nU@(^BQ!V|As>;9yZC{&9c58pHg~PjZfs*ruxo>RZXoODS1Ncj;)g? z`zUb3>Yfa@JYdJN=MtDZ+4$C^4PhsW?$X&f7Zqz>US($gLb!mmX7yy>0oKui z;~uzW!4pG6?P5N2kFgieH)qp;yLux@wAbr%e&r&&Hpk&Hv}d0%wk%A`gHU5$i))vr zI+~8>Gjp%b_69M_a z%eJApRh@RPl$z4kxYV=EY#p!Lv!$jP8n*0vgR8M)$8AvE*x}LVI<^dZ9w}Mv%H0;1 zYrQPCL<+m&fBi9dwPIxQuIlil^l8o7f6XER94Q%KG^J-!d|V;=ra7&P!V=Q z92FGcJu&m~X)^vV?-{nvddo!Wcu?)C*0zrs4GUma@N%nMjkH`$8iDCCQ&U>7t+g=| zo<4l@`Eav_1){Dg^CWF_a{9qjCr>$eQWY|e9YL|_<1@G1Nf;$-xtlJa@R`+9rdLlN zHz&ZhJZ!e|1roJR7y;c(oPhYIId)uAeO0LX)=-7S5C`RRN)38>RkbrVHNB&DiR>tw zNDIYxN@I+)++)DY?vEs;X}Z$cjNL=^LNgf3VW|mQ`eLRlF{Ah4)o9SU_C~!wy=~y0 zWHZuaow$xmPB8wl|CPF0Gu_^vXm!l*THLmgb4|>?v(2R^SDOdf0dxIdl0VmcBXesM zzB|uq6z28*xOU~Q`8ZB(*zD6@^Np?EP%3V32#r~tU`JcmhAl}f+r@{#xgU5v+NnRt z=ob6X8rEG91dQr`LQ5FLL-W9F_Tdh^;u^4rv&QDGj)k6Bb0wqmFJHc$P5%0AJy(m_ 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
EL%Gf@k;#`X#GwajaL>UBBv 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�|5-9k8q19k46i&13MwA+2O$VrAXX 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 #PwMXlN)57RIXb1kethv}0gXLh_|QI$SK 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ㅲHu(pN*Tj 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 tW?Qm)mMm`(%Tw-H99hJUkOS-}H1cz# zyTD=fltDzwAR=MV+>bM~F-)h1y4t^}&Beslb}CjXS{rv|Q5&}K?Z%=uS~c0R*j?fW zSGBB(a)U^@K_uL0-w%e+*3Ge064uUw*0p&lTrV#&m*P8nI5ntGx*!#A-+19VTH=%) z>MEHdu9DHKxM56+z?QKg+;1)k^&8SK%@F*JcNYk1EAH3=hcl-3s144}VaNexBayO^ zNZ4qN>0I`zF5X>Z`Y%HaV#ZWm6z3yD404U>-M<{wW7E3D9o24Tp5UHq^ae!1J)MR| zI`)`Aq&4neiV0i5xKBoFYY=H`5J_uH&)jD|%D$lJ=*9F0ZB+v|<8j7D^iTC^Ur!50 z)j&G87wZd1pTAH}-`D+S&Kf7-Aqjj*(HPx%{)`(}>c-LJp{*4Y({c`uOJ(;yLt@#A z;Zc1m;uwnMsuyY;rnRH``=K5|8s2BFM~8dFiGIsRO~az*|K$s1_MX9Dgme_UAz?+A z?V+88NIMIWc9!-&wkud)gv{=Pqm`Xu)$2FxFfT@R7>p#2s{+T?O&G5da^9$RqR%2u zyUu7A(TZX_3^ibmyhoKQ``6I}Pc;b;ish=8aEEy>)L}@&4l@mZ(H-Xhct2q?Xg?v+ zenO-wp6|rzQ7K#SfoIQ`eH~STD(22T+39G{Ht>h=^gZm!P8z1+Zq;5oD&@1@%UG@_ zyOkzZSGh!_Tq4ppBPN=D{T}YWdeZmasyXq==V$%6{GqphlY@fKsJLKJQ(epA%EcEn z*DY9d!55n4L-!Xn;zK()@#lg|XN)cxzG&vf=CA+rAsJ+~-YBzg--9Vf5@dj@IjMF= zT{FJfsyb~(^U_6i$IZY@603@eikc}+wU^dGn?7Y zJ($jaP$5in*#&wAzn5%ys&j6=_&Sg3M2CuLf>fMTc~rqxu6L-ICP>9i9FHp4%GWtmOcSKyrl?01 z^{XFinuEFJe5ZV7*ElDy9iiQ2}{W z_<`UgHs?BkX@XQV(|T0b|6$%>k7}7i#WX=GSwg#gKK|Le&=Ksjo^Sxu1gZK3o;Bi{ z>lS-dzjUaWCP*b~QTJI_9bEofkE(#8kH9oRDjJNvdaY@@eUV2s!l7cCAQg8sJ*rJ7 zRbh9~*6TutifMvW;-cY}aMAroVWw-TmOE5T6Qttnbl$U8Pu(A#&Qg8bp<N~VwxaTaeykQd+&0nm?lVdcz`OX0bX{fm?lUyC_oj| zhua(~rU_CV5ugg{jl(#YATUjkYA|9vZUptlX$}?B1gVY;PzCiyi$ldUL8_wyRQQ2l zTlp@BifMvWMrgRGkm{HKRj|F@aj2LkNW~G`dseW$K60p-CP+0j zKoxASz8sJdm?lUy3^Crbg6&n}P%%xAiYsi7D%f6A94e*>QgNB(Q3cy;fkVYKplXJl z7KmXu{&HjQLKgeMN^#WOyD07mc3$@rV42tD`sTBo+=VB3I8q`s$&-9|`Lgr$;ilN+ z#GXgYz4*KIDc-Z;yG|M|@U*{d@Ws@}ZbU-ckCbM(H?5PC!E$4Ra03-FhityC#Y_En zCm+65VmUTgrjjLy$&FD1lj`dg`-46983%H@gupbQ@;z$=Vsc~D9;EtC?D{1h)i{TW zX@buhDOC1Z*N+`~jYoB^L&Y>fs?q?}z%$=J!=qa2P%%xAs!XW%)2rqMD_MGQwOFXt7( zoR^S^T8#>%%Z*)xD;aj`zZRZ}{}2YB&036+6`rJ#n2|U!jzMFH?r?J!K3_bGkrF8H zb!-^1=t-1ZhR@eDth1ys!|OEWUK=A+M|mWSZ<0bw+&ElwV~;!cw;y}OQiXnPbDX5< zB{yQ`hd+A1O1a}-#~m+ezRIhlvXVIf_j=zcML zj*}h!d(`32acJe7*v}BdGPQlzrWo$y7|X02qojGka*S+|G%m-OS5_*Y?mYqNa${V- zP*!fgeV;9v+!!xuZsnE95Ka(o5WVcw;smM1uMxw%rmf~Z27fL1EUg7)&kO!qNE){m z%quIEuNIX^r;-~(E#CRt2d`z;VuGZ(fmi%7R0i6#5KQcHoAL`j;RZ#He{#4{Dctxc zVyI1qeGeBm@H|TmXm+yB=MI`N8JG`>L{iGm9NiNB1U@) z`=1y5y`>V-b#8BAxgR@}d^D@_X9M|c^i`iF=VVFq0I&FCILYnv z-*IYs5?eVilbMWkxiMsiwuqT?M!d2uGv`wz%_?5;$1pk252vH_S^J^iq}9P}=N+en zlUc%8U*yO#-SB;R94>x7v&_opL+x$(-_K`B;PO*HPblisg0R@hFV9O>v_c=!|86$e5*ubm@`8XF>Di^A0CZt z@5iqdPw^fDN9vIy$H-jF8>vT*ESIlsdgCcQm(M|ZCk@8Rk)F+A<$JVkP5%r6jg5i--Z7z5NF zvG=%bVL7I0EXQ=tM0y6xF+MNIu}dXqOBEc6Ncnd>{VMnA6F9{1@d0kQ5cWISEd*r!v!dm;PNp9wsjdN3G{$J5uiPp@*G{%*$8 zHI02bHJTT)KbGx|=e4)LD||bmZtv=dr=Y9%W}} z3vg%Wv}pZ;Mf3ghGh;61^aEjlc3292?D z!5H$eqtTPOOBz?Jvu+;M1pM-XzjdY~IycsgYfo_eYv29(U74*z4Tu#zuC{fi2U_Pg z@Uly-v$%d?>BtLa)iyQHhaX#@c|LJkXF9l=6QgyUWlF8XMS_1l2$h8Ll;DbF=8V7e z_@kDY3HulEY7En0H21XyIijOEx%K+>Q^0H@hDi<;(}2pi_WT@Ta${WS^I8Agrv-zR zrFzVvVw&Ky&KD|bn#^bY+@WHcAk_sz#oMI1`>t_Y72$^&w=b{wN&@~s#c|nLpI(R< zudkl^w@>fV){(wi&h<5qZ74=x^>gF%Le&RXTN@9}cAmvFdiO>r1`$roqljUj&&;_7 zvB5s?l!tx3e6&zW8twDtW0|SZ7@{}bXBD%izBwfOs!Bn$ex}BdG_Dk|4|!Bc{PKcd z3NAu)uDGb@pq=kHbHE2$PyZaUR?@8E6@LtPK^<4Cqo@zFNpw!w=9y)>F>f;_wkG0MZV zCULG-&*PD(7t**qWCVzi6?=NC6Mx6G_>C?3ABuDN(*Nl7VvLN2h%M_dr` zBpc3i%6tjS9QzfX&QeyrZtwebFKeOlbu!X>k@~AY#YKX@7JQc0;_Jck_-vJu#;pbO@~G|( zQu%7pf^@mDCvoiom+C9`yAst8_smNr&HqRmTo78^S`_xRF|5U3@f_y$_?sFFo!}b> z`7Eu)GnO5a%(evw5lQ3Lf_ZsVF9fN4wOEXFxv_FyQTjoLtS-*1#S%#~5GAzPEOu)# z$En3)!&>|cX_(g~Kf^_WzZQI!*5VlFu9L=T3vy4=xV2zj9#v>f?W@I7q|1$|a?HtM z6aIpvd5%~7F)Wo@Scx0dEfTk6LEVCeMwUmzUmX4{75?cFORA=Nad@=GNiNfmK<|K**2tPVt-$~TGOBwww0H;wHQMM zj<8H>F&?A?@oVreB@!2ZE%+?0ML&C6{8l*RajuPg?ks27g$}OEx*T1Gb$uMCQgmi)$YKR{i408?=P9?Uarz zksWtQBRd+UBgTl2LK|{cZ-mkjqa|C7Azb8BZFn@o%ZNDw|7#k*jp!?g)m;X*@_>ym zp6omwmYmX&_!>K6C5>2eN=KIAw~g^j9NR)$+4pe7`TMG*aa)-j@u&{KFE98d?m9$w z*2>pQn&rM$zRvBdQyi6jowUV0PFuY8d;2tbmSbnTLGtmph2|q|QCcc(A!)QNN=Har z+~BnZc8(Y{hUj%Xot)PgKj$$a3vu3g7CB#9E}WM%%K1`lWsUK3p8QeH9|q(FKj$S) zfb$;J;T{Q)pYu22cW#U$IOVG)_3g(q4_mr4oD+P|l{uXHqX8*RYOQ{qbf!QP5Leu!$;;V=a zN`doqwgoKqlmbbkZBeeRtTFz!Ajh;Vh5&iN-xiX_Z3}Y5qZ;Os0QuYER{ZWv3T~4$ zekr)sZHsT9?hLm|TfF8-!L^t#YVfxOHEysiG#_aT*mBtxl1AGC_FlHd*M#$$W|U;A zF@!@7lnA+KTU>z{wuPqgw*_a7!M1Ro&bGi=-)sv>qir#&RC3iAe_N1a+7_BZlHuZS z3rXX)1vQdKRc;C7e}7xtff%nXPTlvMpJ&R&osz~c7k9XAQE-rEeTTHg@0_;y{a-ZJ zX?I5>eO>bLYb4D__&j=~w1uS6wisO^ZSi%lEk=!%Y&C}P8t3W6+7>@Y4BJA}_}k(x z#0J~Kc{!{vq(H0G*|7<#|3y)++xd)mx93G z77ychZtN;tIlix{nF2k)TKU)Ak4PH7>^$tY#Z#y|!^6@RN1-jQ!msk}jAM{zIc@PM zeg|bo^I=<*jTj+qA!(#7%1XvcTRiHvMOn!h$x~wpkM*%b+u{nu9DzHU#@`l?AvV|+ z&ePczBTA($B#pMk2yJ(b@wWvzrfo3<$P50qkTh;vT!lm)Rrc}y8%WogTwwZzG=91G zhT9hT|Bt-)fU~P8-^b6*h9o8d5(vGxKmciRH$4&9l57fLNe@BFX0v-YS=h#w1W*tO z3Lz9hnhFYn6e-fAmr$e#3IYNuO`4R*7eN#?!tZ(BcV^Cliu|4RyS@_lg~{*L-W`G_yD!e_q_jQRps0US543w<%N z6o1Udf>B@K2`(lr@qIyysV~y!cfmMc z&>|sK`uzSg;EFOQ;LLt;__l8+%e)>W%>I+;K&=)s`z8IxfWLko%;1$z4^XiL{V8VW(7~dB+p)~3X(>i@I zYJ&JeFzSoZ>US;ieL;(l0gB*^(=)Xn(2D02xE`C_nb@W`}9 z^WtOFErK~7n4yNx&CVBhLU*Q{#TUoH7vy#AMj0)R_~Pd%(#=#*b(EOXK-!8z?A2 zWSaX{TtW-R#WSNSqcb)$sZ5zLQVLj6Q9ac38fE?Re#+DKH5``Fr3+xM(>YN!hWh4KYs2O&g=k0 z@;N=jnel_`CQ=DT;|JGPOj_c{2JNh|F-;KmWMhMp3C6_+wGF8bumtkI@4|VjBRKg&*$Hm59p*zz(V&}^s2zhzB7R&>J!3pU;r^P6Vy>z~}IA1TpIK9X{q#9=l z2I9m~O1` zU_gug9TuaM(>8|~E}iZy1`K+N`)Eh-3t+|5+g@K#?2t#Ff#u}^x7GEk=L%p9U!r4_miRuUUh31Atg%o6 zoy>ZE2jm6gd`ioPR0C9Dp^2^vev7iA%&sue7va-`&ie5G;y!&&Fje4TefnGH)9Xu= z>2KkSKAHXCQ}ViZ7b~XkQ*1+cKD}nrPk*j_#HS-M!5}>kKI+pk*rjGV`pfu`bBQw2>ck%W`y#23x*1tt9cUP-=q1vTOLOkXG;@rAjU{fhI&#fCGvYmmMiE9pB%Ew5C* z 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�$04n4Z&n{jKrE|{Bv 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͋@ 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 literal 0 HcmV?d00001 diff --git a/src/dep/lib/zlib.lib b/src/dep/lib/zlib.lib new file mode 100644 index 0000000000000000000000000000000000000000..08ed4b91424fd9845b4edaf38631fffb3e3bcfe0 GIT binary patch literal 206550 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 literal 0 HcmV?d00001 diff --git a/src/dep/lib/zthread.lib b/src/dep/lib/zthread.lib new file mode 100644 index 0000000000000000000000000000000000000000..9f450fc7822ea735126f8aea55dff841aa9ab4b5 GIT binary patch literal 8482232 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

S525DF2W@HdleUU)W=2904dl*UK@ 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%0AR~VQ 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 z zwHB8X3b&0x-`C>0l4rrY^z@sLLgY>t_ye%jTTaZt&89(?Fj$k2WN4hpH*+>J zlpC1OvuClJ!OcPP382XS0Gw#%d{yG3&q17g*sezOZwc88^rLNcRkx)Q<| z^Ru9>di@f9*G&y?U3x?MJGia@L^Zc}Kq;jkg?#~k5JI1JSHLg&><3Y}Ljw!FTqdmO zYg^2s^n2EZ6JsN1q(~w!5ISdOd4;F@~llaT3>C*iCY>N8o@Rl}GNgU{Y^+ z$rCij(fQ-a3=-d{M}p?|>GEKcCzq4Hlcdr?&t^br{6I3WY)VCc=v`<5-eWrOm+xKlo$bqHvTljZxi@ z+R3wY-;a|$~twc|J^vWi@v8eX%bLd>sAv`Z^EmG7pEtn z-aCl@eGos->f1uir!D&2A|xbxxDoHs0X|1tP7q*27h*=`$epL5g_u*Y+h3L^X=S^+{}SV!mQ+`)pM5e*iI-Rwe=wqJzaP z@g$57%@Rb{cYU$NTZ(`}!ZK5Bef3_f(caGy)y^7}ICpl>-g8uf;-Ni)Eg>U!G*4Xk z-cKW#C( zg+WA%bD>UyFRCTVo~((EqHA z7_TtsIO_U9g_Ej(OcSFonG%CHjhe3*%ZF-JNX>yqH~Y32Xq3tzQ>WNuHJtNT!n*Oo zMa>a0EeT-JDF^@wD}c4g#U&NVaEf(|B#-w4e6e?6!g!LDAs%0iv!J=ku$18bFm4XbY$ae2b4c=eH+n{A^J9&6byePaE1zCb$ErwkCp5*4?+0LPAQV(F zC>Ql+exkY9=lqoqkViqsY)MHLO7JFv$Eq_H-MreV`VSiu4G2M1hKH7 zD-+#E0o56qIx^eD)K{~LRWcz0HWkp2*(xS*txaO7u91?{yA>9AVnTdf)k-uiO_^DC zxqhk$l(yC@`PkSvcrv8df_8t68Z`=g`RpS88{H{5vj@tta^obF)u~f1eSPop(jJC~ z62J{Mc0M_Y#epJFc$+EWsoT?=}k~ zi1Xxp_5!Vg5VjgP-vhA+N_clllg^`xay*GwOxg?)*Dr&!qWmwH4zf-Lfvm%^%j3aj zGFFuCuLFliAuOXJLhmzJs8ur-KIOsK5~v)gz)-ys>eexzIcQbBo$Y+ zlIOxam}@z=r^RaRWf76K)*4yJnO+Sh?K0}(-VuxEac$i%O{uZD=6Q3%^BxeFcmh}L zwSTYwEg;i>qfC&f=N9*d-u@K1P$o1@3CNCKTd-u-~jXEH3|%vu$5I z_jiM@OeBS2FSTJ(7{(^6=2e2=(JWVm0(quNi$FdnG`)uKio`CY`!sH58UjT03*F?(<0_;Grw z>Fs#BMN1*?DNC#E z4T8kRz~M-m0W+yjxUVmb7Sz02NIireZmzY#gut_S3Rzhp0ys^Xy~>cg`+I~XZkr}6 z1;<_T)`|JU!uSjo(mm*5X0!Jyz-pT(B-_2SKdnXqwaHpnDCJY2V+%dEW)58wOHuMp z{*paMmy@l3f$a{OSyj9ByK>5&#->*B<(8_<-KEOcl>>YOqU|LrE+k+4?@0Dd?9T$X z6eq>2MX*cytFY3i!MkRi3$sy9{MH@Obi9+Pu-q z(fk(gReMbn9)07*2?WON1V)#3>Y9H)oD9;op6={FS z%^-wld#7xvc@N<_a2XzCW$#=KuhLN3KQe07(Q&DiIxiw_@w;OTksi(7m=>D|jy(=v zAI^#1a@i$=O-h7Za}|npF%w?g3xk-KG2Cb77(FCUFvs%bv5om7CyreilKzgG79MC6 zP>MMcFA85a2sMg81%9_+yQ-zLJ9OD|puxERfTC3{aXYN;Sz4>Aj_+{M_{uPM*RFjo zR7o(l?=mi*G;UnB)aAQC6PR#zR-VV{7!_Ha{o8z?v(zRyjt0BA=GTWj2K7xfTcx3r z_Eu8!#Na2hARtGj94WyuX6z$I6T$yql&mF=`vf!*LKW3I_1^+$b$dG?N=+|7*HKZiw_>EPtYRYU z7OEbVlnd9gTT@gnk$#o;w*0;-Eqy)5v$&J&!lMV{4ykJD*2_;Q-U@_i+;Ka#qU398 z9sXb5lk~%3zx2*l^Jfn*ijdZ?Kwke!-27kSXX7=6t^CyPjB~s9Fh(S={|wJ(p)1sH#uy50=+=y7;`kc z*hANPEF9&pd5TTZ!Dnp&3M#ZvYj}3dtjWGXh73P|NjVCTPSZifwZ9VlvqvvxPVVs& z;70si&O+Zj2wmIcyJcX_&g@x8UeD!dbhFXuw6MMzrb&OhY{G=BJ|9aIw%hzJd`tV6 z7^SwY4#ftu6a8g<^iN&Z?u~;-k6ql4(tA2YZg|!q>^ZrY@lc=p2EE`hqnr24;*w*{ zl7y4>jE$U)=h2Nn5SNJVkd_y>FNFC8&xa^hk|;JXa!g?{^%k#jG~OlbO+0Qc@$tL> zQ#Sr79h1IP-DpfPl0NR2RhVJamB)xJFM?`@8CG4-nDjH5i?rxCP#0b;h0_{TwVkWn z{i)2JaC;*xrq+y&_`ynFU!u#hox6-#9d4Mum|Ly z>e=kgmMAoO%!e~@Mv9}3!5p&$?SI&fwVaGQ-`?JcCVdo0%oP_EjL%Oj&e{v*Y=Am~s*RY--jI z^Y*7l5HfW_V*XX$xw!4S!Hs|Fozro|OU~zqF@`5`t(v&ch z@4vaaFXVwHv$l+mUiG@+Om6fpm32`%z09XYyQQDMY7RliCf&IVpqJ2>$SgCl0!YqCt}5|@58p-H?xwnoQKg4 z)r;!(?%=Ot6J209lD5k9bH=N|sh0zu*_mn@qYFiC8Q4!M%!Y;U1E0g-^0i^nj=B&y^#1ytor8sadDmXkG&fAz@mgNX5IzVN$M=5mJ4^};nb_!Fj#QiA{Sc1MYYC~e!dhHlgq6& zR>VsDJ0r7FL86u%xffXgG8e2*P7+t9Bp zToiU+=E&B&Ru2mC8~UYk0O(m(PuaPG7@vp_{s{YTqKtfN&1GpjB2YHne|^BEbMwZH z$8MThCRR$eVE}`PTz?YN7^L!C>b!5j5+R(FTLf>ed%B1;N0JkRQ~aW~Xtlrm89=0Q zL4}?!f>9H|;Kit98?W}LTzim-mg#$KVp-!}g3X3XeK#dR{)4Ou*~9|ybx>`#w7rUF zt|vHG@z(CNR|_3m6ERU?n2!hby5287vda3=7VH+!MB~oMCFVFwulA7m*xkAG177;? zc}=BENiB&!ou5RS`aZDf26u{S^b04;gaHFp9Q#AYu3}}g_qTMNU(f2rgcdf*D;@_^25*MQPy;`|!sFeHgxK9c3D*b} zz>pgm4CT)H7q=57wM*IS41layUiW!lgt9n8fI~D)auukA`AYChxpX&^2+`oT$Rvxie?6SHk?_Y zsR!UgzA`JY1Hu$B|G|6{O^hA4c|gMY7dhw1b2vN4xHX4=e`E_e23v{zbB1g4c=M_z z>I1xF+i_7_~zb3=Eh)%p1yVd?MV8m)y;7F(*6jqYEd`Lt9ZeJ zTreE=mHY+XRb6XvUKQwNEVOIN?!{(f`17bsB=c6H_ML;z9=fd-S0l`$_JZ_M(U!A? z7H|7+WfnFIR?&7e#$BO*nc_<2mEMq$AxjjTgmxk$gkhvpr%cR{A_-KG~`E{=W8hy9fH@#qK1KAO`WH6 za{+a%C0GA_QQ4S+Cp&o)>?GPquOPlzJ7JZ>NXjD)o&@>^eLzpaoLun_VNgMoco6V} z!SO1qBU(r>byN4V*pp+!aYG3gsoNFkN2b}(B^#*9zV?;k-6|&eq-{O;DVZVk51EN@ zJd3?ITXdK{fI=FF#hzGcCQg>SrNwZ8O3R!SoFRy4l)<4V0$r5B;UqnudVF2h@h^+{ z75-EyPahK&7RyR!6Vy89ZE`1v0z1{4k*8}iKz~2rGSw)wn00#SzM&xByL+DekoECf!NK2>~oV| zh}dw<=uZ5tbIk^e@ct4v&_8!D(sO|F3XlH>5NMP@#vwGnx7zq@u$HoD2l`zQK!a?% zh%NGW6|?1Yw2ud3lJb)Zjr;_xXQgF?ON|Hf(tWU>uKZS_y(rsmC46Ua;ed~gL|?_H z(6dPULY*7WYV#070MmR#rHTi4eoYC2U(qdqf|mZu3C_ivU(VRPy{w4Y9g&d_VHuM` zCsD;FBQ1Ja&yK{OWIyOyEypQVRgHzwtddF}?31Sma49+VqfCzaCnRSIiz8C^LH_jA z5qRJJKp$y(`dWRmZ8)ZxX#Q7$eUcz@iUbKHw5HzjQhgP7(`0=|u6_>sfJ#4IyI`2y# z9@V?9ib_j!x63hZRIVoR>H)d5Dc?YVp2R={+SSk*y~Lhca~?}W-GPsLvW!cUVTCuJ zq8BdeAY()P{45V?Sfg!Nrbc4`C0sV&cf`hf={|?k(`vG=I5d+NOs1Dr9i&Co{dfY* z9zW>V&tztGOXJ(Er^qs1^;psCYiD*Ykr)>rLJL`(JwTxD=q1|@9VTe^(4)cYpUuZ> zV(vi4dJkL!Os#}a(PI=b*5n4`Ta4pD$T#W2F13~E9oc&wTuG)p?2TTmR-vC`s++?t z{SY#wF(N`nC<*ab1%VxbB*7%JEjz7=?Qe`4RhgE3Ik>K-o`s*sFHJtiS=Soc=1`u6 zU-#0Z$NR#@A4hF%(bpOR2%abbZUg3G)gS_NrRPkw`NQ$|%~rYYZ-UK$scd^wT`HOV zPw_+#i$W_w@!qVb1#D;bGZ3C83-b1R1~4QSA~{PCxPxZ@Hn;b%s$rPFr@p!jgYX1! z>%>=CWebAbR<+4%gJL)Js=bGw)f|?!H~-O2LZFo!AxFI{Po&$x0eVGtE$&3vC&6jl zbvNR)BW0EECjrgjz0`lIuf`dpYG`5QsIJoY&GH+=DFi3xFF-3_!`-PXO&kB4+^aSA zi@OFz#(IllPkp&XqRl#Lszszm@wHV0C#CNm+t{eOMY*gHz?JZ8y$*(z)XiUqMiP6m znTFL23Z$$e&Tq#RE=sNfP$!UCm>FL7b8e%ro*=hkZ0g-GXGt6d@ZqngY4s$ zO2nUFu`98X%Qkgi(eTE$B}3c7&pB;78n;0MzH}AkdG*qhCm1uIxdK_h=8n4o>9d5{ zbm8m=9H=b$jr=D9?t{wui4GZIJNAGWwSZ83ew!Dd^WmA8-5+D|W&)<*;s+F3rJr|F zODXdVXsU!(xQU|VThT_h;ou+~k31LbwoY}DwGWlo;a6E%1(#yxzyU$2LE54Of6cA+ ztE&2M;J?88;#iw1n6)aVuP6_zziMS_zWXS3nw17S{BJ3*%K`y6h$ zWl4mLR%GJfKWdA&z!3RtHU#@;40I7y*L=tvXH`+oq$HhcTAGo3(+P`&OJ9Vi$-+Fcb&aKN!&Hq7a zcu4FCs_}}CQ7fNHmwqigK;1%-Z8Nv@r_}YG6+cz1?5yvoVy@?-e6M&LycTx@m7i*r zF-$~}_XHxiH;P3EMgELys~7HU^OTfz{~`b5K(t2ur^lSGBw~iy@tr;eo7O6l8+BfD`NBF^4qvEo5}1VQ)KEM{a%bJsgC@WN2r~7bD*_=z{9v#vYd_> zW4|~7M}nm|!mBvD&0CNpK8tikyJ})s>>1VY>XbrM#uN0`Y_(kwFYlE zL!utmT6HKAXnu~8&4*_y^fir*L*$F?2Yb;huutl4;ACa>qx?`U=?Ozx zKEDx1+UycunJn_@9>F9*WldM{0<3=MXkv6?F^Fesdd_cKjj|CRr2yU!Acqz-+3-2c zk4LdmVI0)iNI%y_n}S!<0jdhd1@5bP$tZz;wzW9SfZ2y0I9QRFE8H~M-iy?2ME$e* zt+2gAh3t3kz=@gD`x&Ty^~8Z=C+LsEZ&MmeJ{x0a1?55 z`x4m7x_LsK3YoX`BTWKjMO~lI_4Z-$Ad*?@f# zi|q|tCF<~fIzLQYJJjZY%_%5Sy3y;!t+KVP7 zaf_HQnTA$sdJ_qgN-(?0AcVSBGNSUWP-i(xvqbwW3@QE~ufnsBkB_Dy%A;o@!|<1{ z>ntt!90%R-_aw%qXwQMFPW(K-Ekk&!9VVsRmq++)#33?Bo2D~KE zH_|-lvO~&NbwAeJj3w65Q&J?mH*c(6qfP&;mLnssG&$Psd zjSev1qx=C(o+7p2z3gRkr*Dh>T;wY`ce5t2isxEdsCTekC2u5k#XE@F9s48r`| z3Va!Z3!y(3Vrcqh3jsu}kWL;`1jRsj3xx&LwOv`CD@7)nD10Ukrk;m%^_P`?buFJS za-Ut^hWZnIyq}FIwC{h{QlYes;o{5mkEWb={UryFPoY& z#Y*tMZqjNgKbf-lot}&?^cYwF>dPQ`MryQdo#MA6@0iN{gl6xle;)9FBJhBwn~P6x zhFdheVUWs*Yh9&6F_bhky!9o{_+7tvZNLRLVLV}_*1Z7Emt^p zvhs-JNM`3uB!VV3KXoG7lxxEg4N6w* z{Qz>0sjqcy1cG-PM* zVrLx_8073J!+zdfpiP0Rq_*s(&M+SPU&1VHW(i|JW=@sHqP)DSbk&~bs}o=?5vPTn&f{4I=0{He72i0SQTxpZ)ohR(TuQNQHWx-%TE4LM=x5K%_B>zQUU#Lh>1ZEV}>k_+EmTgP=$OG$#Nd^vP-(5a4h<~}r&j;IelqB#F zP4@nrgQU2;E8*S>cFM%<(A;Qryh*dn^VNDi9Q*)Xui%(#73!kR_f&^whip%Gh%&JW zL}~1ra{{ukE8OxJN5qAu8~d;~njHbalE=`j&StZAa8XX4((x7Eekt#g{-^h)bf;g0 z)CorEqneAH^HbFp?VBo^!=$-kE`SI*rB`jy!*581yY?>cs3dKX{k4G2dc#pOk?N{) z2`lU?G;wXvy|D4>Bn|qRJ0Zz>MWPd^9>s5{gw8HUhex!~jliSW;Eic{Rid@x|5D26eEpfa1Zdp-0p0nE*U}ZqNEMe*s=#sv@KSmfc#}P z-9_`df|7U~*-;IS6cPUiqi0A4|wAmq}me{_hn~JnvJE{n+Ga~8nGgTC$ zMp_si`2$J2ja-hSg`|uNj~?0BdEf}~h-2$#o_S`q``(vbx_MAK@h+kY((E2?;6{e2 zk#9RwqbJwA7UKwH+}x#H_P?6bjc7|sqX5A&A7&-Vp=J$SWO9vr-D+&pM7?EM>fn&KZDG=?{Ve4cL%B2{P) ztqS2b2ncu*_s&BTC*eBJfR1Z9oLid#DVw_&KhQTquj`(dg{!;5yR@5>1-CMx*z9-q zBa6MCvcpNZ4_R)!ovavN{T6Vi7Tn}lhmOWR@5DQ{uFh_YTWA~NXymZni=-m8JnEk@ zep``j?`&gFaoC!p((v!#ini_2o4ae4pR-)$T@@JpDVR@YHtJna+R=H5d9O$>k^NjlGG357a*JDYU&O_us8>9!oc*odgEMsb}iRk?xCi0rN=OBBMib zBUpxD=GuCfCpbN?)*sXLx*Cc$owuBP>b#df^1$Jf8};{(^D=^rdv`a_`|rYQqeXNR z*5Xu^v-}UYC@X6r+oqp+MFMyr8SX@hWS-UQNr4T z%s-1cmz=mc7`U0N2}It^+Vaj=y5GeQ+j(0A zT?4x{C0Uw#{!X5mXr^Dr_&;I93ojN_uvf< zn~!^iDt*LtX9Xi7D3w?OEe3Kp2Vfhxv2Jbhy3c3v@r)Dy*Dv{2-s{9dzZo<4Pr-zy zsm9|lkQ?gGpL4+z*%_&7cK%+FVhOEfU?4WnZQyUS6Qq3C=|uf0d8QbU^iI%g@pAMH zzCH?ZH>N6M`^PMPXwY>P=6mQ1=+M`^;*&g9gjI@3=g{@=Y$a1zIp&cOVJ1w-iqrf| z&`fm;YsrIrj4GMlxx_eI=C(Ixxlu+j(;vG%D=I(Eauyd(oVa|~#wA3>=wEtvIO3jL zBC;?*r_Hm{-g#GcOUtJjbr_B~7#NDzCNNgetliRr=b+JbOMjPXS+;+R{hMy4I=5P? z-8+Ozu@1H(jlIn)P4l0LEK(zrXF!5+t8_Ky zo;L>4mXqrTFFkN9=EwhY)zSJ#`J2eyDgC-sgZ{`BwI!GKi92&<>mq?oN*crX|4q6d zW{u&xls*40hy~Dg?VPzFfK(y*Nj}cnk)K*?Ca)(COO#CKO2SP3^sRh#IBQyLX;sU* zT54#cIPeCSS0Q$&X4YbY^7X%t8^K#Sbg0bvTYOrdO*$(Ld^R5OtN6j7Ga)WLKl;1A zzo|~Wt^8n=V&25Ttn5RBi$$#YYFmoxN;a#^E;q#-Lrxk+iJNKSJ(gQpYVylKW>Xm< zk{;_`;m2X;SX$77odlE{kA$EWw;w)w(SgH#=yUDBMTcwt%U{Y6^)s$8SjN*oDMq4w zlP95C^m5+W@mchNI?___qRIUZ_ZR2LlskB0-!a+*9ZQZ!$F@^fAtqm~0Rgj|+9XTe z@lGIV$C7a1Pzt2I!K_0G%|^a`r%l>y3E5KhT&uxP*)N1^2bz6ECzn%2z=2Jn<7C(qP zBFOZ^2+*QIYRtFVp>v)lAW22AZOSwAwrPB`OS2V-&)}(&!m!P?`3om+e25 z2ga0udsa5_J)=|`)^+xz1oQ96l;y>(bGTpVmRzd${cp*yDbu4ZZt~dDhvp)`dCEW> z)I*;`0rg;>s||wX3o~2EdYlV9_PZurkXx6rxPz)5)N`Th$^J1)ztpVC%%ikwE#Dh< zl$;ReHk#f}2-hGO7@F7Dj9PN))mI`Rl~Mcn=y?964SXv9fU_13I@p2ZKSMiyhljboGG#Vu-d@ zJJy6Cm_DW8G1mQK_)SY+5Z7#QDMT0f8bWFN{BkpBtIp#g=FP_Gil09%L%^FYsR0m$f0RF#W>;rpy@WRI#ZTnRRbtS@uSD|*Z1hcP zs#s^Q0D8i2Y8D{YnTar#hTs{U#l^*?16LkBd7_)0;lAGqcQ;uEbx83Q5S^BHcX^F; zOx_nY_qJRfiTRo7vzjHyANN!9M-Cpnn21Pam~K08@Wjz$R|YB7@1J6nJ1iV&BXP5RV7)j z5ic9*Tw^se>iORT?fNvJ)`60Q0+3E5Fgr3wj=-gPeOz3Ry+VjPc4q7Pv^cjk!)tu(p>g4nJ!s%6CV3_d6nvh zxiS$-64B>b=Fm-nPA6_YF06Mf%c#Wae$*0zU{&H)aSrv;C5lF}l~3@I&damBvq_rO z=mQ_;Rv!&4eYEybGU{X8)=|Uk^YEWI60?{Oa|c;QzMT3|^Xs{z_i-Zu%Ql!H>-lwv zY!6CHWv?vr$f$^_sUPm}E!+?@IGjR z$|w5_F`jIt*PrU4%z8)1H%~rn{xv+ANgjhbjJxxhKiGVI`aqD%2YU<%ir%n;LXhp- zoyQ`;N^~xhtd8C{Gj~>w%pO4{a}Y!&18or`GX0+4EEh-B`|RG09w}j61&^xPBuY*V z!L+JBlUuLs7Mck{-L2_sJvRsZGJdhR@7RIMFW*oL?C7r1fJf+^}aXxCQx5k8e$gnEI^}_@PLtwSVXqy9?_DCBOK)DtypaEK{J0B$ zjCz%7$~=}kje|A!unMSlrO5ir_0hEYD-jYL`p@_^XNT%rNbmznmQ*3G?z9(7Z>R1L zcpsB*wIb@IaVwa=rgYnBUeN5i%{ld4SS=|`9>p)xXk(N9kma55c07!-$~lsDgNBnG z?sE#?E(u}sO+Kv~=&w;0v_HbGM95SVZKbUo#tYpMaG5&FTnInHPl3G^u zaVlB%BAy5r-Mt&zE`hezdq=8$1v1&ROltrtToX_WpPLZlsZcTl*np`PizC=jmv^kW z)0P-3tk?NS#PyUm9{%nlNNE?3u*H*9(;EH81Nj|P&}g-SP~SxV7NP@(p44Or(tT`- zKniHt*va+dmr~agd~$O7Nb|>v@c>_?r82r&ImUZ=vTFj`Wl2e8t6cB(ib3`QTFk_pa_^7B3+<5=)C2Z#0T1hjO4MiHax9mj)%O1+whTXi-`M~ZS!<+Qsh63 z_o4Jr#M63-iv3-<+ns#@Ml`UBDxGY>cddpUL8XXZ6hQuN4R4}@*FU()@jyqjM9)B7S-+gN$_GhJU%&Lg zk&6#gt>t?j4uO&(IJcLeoAoiVhh7Zmi8ztEGXO28pdayzVCTY)rJTV>j8K-ISDHoj zxc9xc1zICAM!(UJyPF&847p|)4xRa)jv6s2h#yWCMCDC&^j@D;=T)5j^;Jm=THU2I)?n9u)7HF+D?sw@{r8i(uWxvlp3drH5_{LwW z=$%tcS_zt~q&gP~@7?@f+h0^R-lxC_2r_&|4&4PHed`}8 zvP82&J{*=}!j1S=`D5l56kuJ(l!Wj@EWoT%R ze)D;JbF8CJ_^89%29w*O7R$}^spfVX;B&%_XYuA~N?FsNRkjo`*J54PY%U!-^6+Rp z{~BT*&vveC-}1U(NbFe|^Siu=FHI@MkCA*iASdclYiif0x!U>aTb!_W)eqeI z9{neMG(hMI3w5aes+^Y2PBGX2o<|yyCe{R%bn#vVQNdG({NMPl()lKv!dO%zSJ(}M z8W!8+qUwfN+N&IjhQH$CjFPBJ$?1wdq5z$X*0L^W*A?nx;V#MLrhKN@()e&SMVv#% z)G$bYmSHr7vb8{be{OD@Q;*Eiei=vvp`*S<8;i7f4@Vn9C4t{@hW=*pE5!ceN8%jO1C-|Fq*kq z#ShWl-^pt#9~iz6T)Y)u)cam(z-5n=s_9WzNw(7(}F5Z-DD#g(4C4&d46u33(4 zHZ9=7tSYthWx%8}7`8}&&jG7DYyjdD&1*!@^AJSCZ&#$?4Sss8?X{=KPEnv_FE8aj zM_i|+Gv;@=(ATs_a=nBr$@k#ruqLmm5JrPOtU-iX23BBj*FOWjq*AHAjV6o9 z*VmJj)A7$y1_t5Xpw@4&4S>o}3IfC}HYrbg48n303J<(K6lz+Si)fR6p2}~VRx&b9 zQIWm(6z)yY#UpN=kf7hWTnRNy;fY)u6fiQYF+~4vHVCGyt=RC~Dk%vI)#B=dx#XJ{TDht~NF3%t+_=NKb2aBS zjvqXB=yDvccUULRb?iWr*4NKICx>+(S>s4a>^tQMpC1Gi9K=X;iqosSxTaA$ZMXs} z!fhps8&vIeS_K_j#EPpWx+$GU-Nj?0k&rE0%q{00on|L5J$ZcNSnmx9);S+?grI1p zzW)L?Qdl#djjN?^p6OVe>+D$A3%q9$kM!YDD!C?Ao6?W$BRW|;>!KaA)7)WP&)66bhCVRHpeYXJX9`EX}x}_WSP_efI=R_q_ zFSt!$RofXD3#pMSTfy($fnWEE!*CL{LgFnfrr@G^HBn-p{XGeFI2e5!$P1THy41O9~(!h5dW;L{kt&ZlM@pdyytLxSEJe`*` zWX_8bdkoGxGwVpP3&+(hPxdw#XN5>*GEu^?qgqec?Wu3}6iIj;Rt+^MUyoe8ad8@i zq|8}{b3D4$TP2RMVkJtrY_*IeOU2B!ct@0=)s=J5Kae16i-dtk!-ied_c328x-rbZ zI)^)Ua~#jF#9o@3T-h`xp=~S60p}=H;n{3&ifJG0`wxDwu$v}tBujd{Z-rAS8tjBx zKFIjC?ucLt@($AaxlPw5T`qTHsXz)W zlYWc64V*o9<%a1tr_?2f3HQpuujDP&Gs7h6sx~rk+9KRz?hAAUIsU)Z@*yQ4+<24< zn(2{!Zlu(={gznGR)wj({$FlOewa;;Vz?v$i zVghh^*nAN}&ir55!8`E-jJ%2i*mzoR69-opqO%di!xgkeko_O`I|{5bT#2?S_L>$8 zErLPUlA!W|e|9+$@)M&DJ=ssWNdRNR6Vdg9O?jyP0DjQsH?H#^vfE7t%f19SKH+Q1 zx7=(rvj5zui;|CI=^mg15;E|wAV%*2Kl?GR_T!2AAb@9d3pj}mCS}VOBO&kO(b3kg zu^FHVdY5Z=7voMA3jZBeGZ5~6=FeTgFpzu|7f5$Wxe~lBWbhj8(dxMnTKXi$|JZ1x zQkMP_a)ese_9GFa1Pq37RBcc2>&1Mb!7K)Br_lS&(BzBqK!O(|LpI5m3fSj+R~0;< z%~>KYDo?sl?%CPGc+yFrJ&?rM;Up;~_e92!!&ZlP?F+6G1NbrH+g)LnvsJ_1a<{b(wypWS zpV}dzsYf+zt#>}c4bKx!=!P=r|6)uh2-BxYG?OQC{K4E(*mMKaJ4c(|ir2xLI?rv` zX34hBbL&a}0zdCGo$7FY4=@Z44l3F`Wm;ysi$|rvW3sSwTc;z$INHfo7O;k&J13}K zZhiL3sOrN@J9x}aRjnJL4DtGCGF{BP?cAI*OI#}ISWdESyL%6rJT=)N%Y-0Z(&RYD zO4(lITh?qcRf_f;u+DAxJt}Ox&DG))vPD4)T3BLE`B3aC>#H#c2{;~+a zaqw!ZMmvS@vprDD)Z}vMU@Jd{`uogPdGXKHHM4#M+&Vc%vab93oi1f{4|Qaz+R{q@ z8SXUJQw=gl3y|fU$L+8|;Jn@Bn%fi@$z9>$9i11zU&eB-634x!ZbC zg;l->z0m9-R2It`3fx)0GutO)ZNL{}R9guREydhVY^;D=rEp%8_-IVd$y&Xsd-xjv>5*@zwlZtgpIP zF49UmME>V`wTqPi;a4S)G!2G~nf{Bg46$+8&LKyAM+NH2 z>NXjtZu<(J97Bo{ zyf!l1)W_^N7j=G(T1ez*7U4FVk_TkLzYG=jPE)ieMgH~V9pj~wB2W3aMPdzdwlc*c zmw_JUZj-^29uvQ4>Ep2SQGM-&tb$WPS1R{a0DLH0fl=AuVNlEB60ga7A5YXJ{8*c< zxKHGP%bGQxZ=!IieBa`q66lgj2o1g>LS(2c3%v0ikkf{DZ68{g2 zVKHe(+Cd}{or<=ssOl#GY8x&Bp`pdn9Q%1oDv&w&J^rFZLuR=q{T~HS%kFL(&SSl{ z+ap+txR??OF`B>ZqAu*ASB8Lo7iiEJrc&RM z22qXtQ`+Nh&gO^XD)0cml!s^LfzDo;()H1O-NT1;8LHfiM>oXITgL`DdcxwJg=C9t zIfEN#@Z{u;=^2LS=M?PahBG1!hg4#%Ca8^&d6aow03;%2c7G2#cf z!a6=le4Hv}$JN)f;{xwsmK%)!1w$!p6XSPZUI69zeE=+ZMAy#B7n2g%OxiZ(MP z(l!?BD|v-F7Q+wG3%=+0%B;V_ZlpkaWvk#rhZk38g7U}n>(mz{E(%?|X||BtjcfzPX` z{{L^AP`Uvvn}A!vB75mZDIhj!k~X2)Xp$~$Ax#5KDQ!tpC?Ja#1+3r-D2fP(D559= zD$1^)f*Yc!sDQ{KAfQ$S0r|f_=gi%n+~;Y2-~W@>eR7|fbLY--=4^B3jF9Vhl%$Ez z`mB}$G`Zb;QAJs*L+mEwD}x!Ej7W%^WHj;%DQ7XkzPlH+;+rRb5+6~uddLPQCH_XO zgm)0b*?bd>!#qr)Z*|g`#14|ai(P_KrJbLuMKd^--71B7vAKyL(V|rgB~&?gaS$(7 z<35#+%Vi}#r}AMHCwUH)D?rSZzn}#>r1rK0e+&H#U(;T)hiF@c(O}Fpve#j}b7RJ$ znL&0_@=HwOkbF=`*4&OgFykX&h4RHa#ec-xp%WdA=nWv19v%e)#1AGOV531#Fsn<# z5t+>WLmrQ1wD^Hg4`I>O;CX4bk>E_o2T`m$C`J(=%z@4@JA3A&Fnu$|N+8-{*e2#) ztxDn$)oQ;!&wKdQ)oz6G+X!Yd8;DYL#Ia#iox-3o!k@>Or+Oms*i4Yj-OS6xViN{j zN7aKj7semk!|eWr%DkFdtK49<4J45O4w}!`@}z|VPKoE$BwQJX$3Gfo8iYAqB<+y?rdzKx2;o#rTlH^tsPg6G>CyXzRHl~cSM@n3#g8hkU zP<;eVL_1BMLZQ&jVtYeOhscY5oM}0UD z1T_Il-KIS1<~Kl=EVyqK`2-C%#ld=8hQN=Jg3#>;mF7;Fm!6ew+z<^rA6WErHZL?c zATThxz0CZR`j{G1TxTVBa1hvnrPhn4v8gqh+le^F{_90E zSZ|dOwwhe{EsmlrsViZyn(m>;%<`w5Q???TJRDC*^T?MIliW*<2%bnuiPr;MT7u%U z)IV5pIvb?~Wi54LGp9jDa{MC5Dx#`?ldG|v3+fAh8e&=YDx38*Iy%X0i;Ghl3PrBW zyXT+>YuG+V#U(n04X2`~#{p|QtT88O1di29QZXfjwo-wzpwZo&G%1^lZ?G^aaH(>0 z&2`Qx+H^n2-kqE-tbtpi7uYh4h1qg114DM@%ACzQa~%ud^JN0f2TSQ7H{NW{&PY2X zTJ8ERHV|#fUy2>9Yo1lAoV+0d&_*%hbEZ9+lBPmh^y<_+BSe)euf(?e`J5WXH|fc& zyPgVIV71c$Ky?Vk4+H&1+0Uc@#ITZeK;f z^$y|#_$)%^xW5e;B1OuS{}jgl6QHnP(a2sIy+1$JVA! z+vwstml5jKbQMx;9bFRa7Q${FT$kVKTQ}Fh-%5jhJ6F6irA6k$1#Z4eA+=b=nr(Gd ztav%kX5z)GKW39$x}YIMx)lK$6G3Ksq$)TAXs6-9VN@%jLXhJS(o~bM7$v?r4cMlI zYkTY1MXAbfz5@IKFCA&E}G;-S&@q3 zs8G{ut*P&#D36=d-oLg_zGyZaJK7uCI@{1v+!IE)YvPnn$sTe-wz^?F8O_j##9m_} z@fei^nIGc!BNO$R&;i6Y=UfI_p)z4Uahuo|zPDI9PU zq~D|-Vu>AW`jC43D!*mgmaV2Ff=1fW|Iw5hVoej0E3^k=mp`CDBOosoMqNZ9_^1f= zU(nl3w2)dD%^>NoO3DRhgDqBa9FhhLl{5{Oee;?lyTMFtG=tl)SkAR_HksGnW=1wc z+?_-qbJOM!pEl1>g?b3K`Nf->;0pmyksce=P3`$J31S44{|?s zC~>}#OLlJJGCS32V1ip`ZA*D-qIFVx zs68Wlxp~}31iW1QN9HrwiIKV{`o0yjY%W5GcmMXF8F7OZJIf?Sq23OpX$1vETxj+s z-Vodh5DV32ost}mJycf&^;cBBlQx4sObbMKi)qWw7AM2|!9p}wGQA|R>}tx=sovP- zj9MRo1y)i8A>JBTYMPICy;%PbjS%MI<%_J%nE+PheU6P}T;uhKw+;A-A~lFIveDY` zAtA(0-s0DJzpz8CbcLbR?fr}FIMZGY{08yD|0*Q%zVSdGgU0?5w}fnQ&l*F zlw>bf?sOz+Ch;1ITe*U2qAnU#LD0A`TV=SA5NW61neRYGiqwqSml03|H7%uC$L|d? zbE2Qto;7$r71vUPDII>Ki{{QrBsB>?EhM(+$y8D@ZbzWHNgxZ`+C1FHf#k~!8D6*8 zyo}|~Y0jLYnEUdB@ePjQp+2N#lo=NhG`HDKGrzW_3;mO0zzp{eb5TDt$nMVm3lTE5 zM%FK8ON(@c&^f}_57As(-NWQb6BsHIQeR*$l8!rsPy&a#kL;uB@d~5cFK< z-317FtTe3ZJGpQ5pvkT`F_CE#%O@5(N)p6tTKBZ-rj~+$-TpSwX&nKWBV3w8ZCwjl za#xoWyIX`cLk;V{cuA_-xi_`eZNe&|u<5Vr)+AQAh>?zd1{bpXOr%`?9zeG{xCy@g z2o}wy&Kf&-iHFSXAn(GbTKwzj~uE;}Qax-B?J4usB;rO33fKTu+#WvY*# zW*$0wL4ry{(`ZAby6_QI&ZSvSC~+IuN**!PO@gs%M1L*Fcm-e6t-HOERYGVcq^xbB zyXbTa6LPGmdy#KW8Y)d2`F_aWk4=@e4+}|WBfnXqw_#84D9^He36ew2bW$8P&|~f$ zkHQ#S>D1Tw#^}%k@y=iBeHO^b{Vo;?KQz((yfqEV&j6vv)B`a^HO^;<@Bo=j9jCAE zT`{m`b^jUhlAS2ton+Y>WjD@l!nE&`knDvs&s-zG>#(dgx68x_oo`^N3M)~IiELkj z1qU}K9dW~KkQakF%50xMk$7L!s zeQV9NX45<=ElI14GE9YNwkAA?I;>C; ziHa*WceGNlZiIuBWLi690_CpjX5$xD##KG*);0F`4fG83t~fp2wPg+3Q!nhWb1j2> zCqZHlQsGSScALH32$oJ~g2_QNQ!7Q9jXDP`osH8?1$>8|4~evckSuZdRlP~>3LX;X zZNQb|ADS||k#8cAn7ZlhB75VlbcK9-<-+2ekjer%uKJ|u>l^_apXuN_!(YX5S=$ZNl$4czO-P7(&SG!|$ApOQ%MEtDIh z4}39AVqL)oc7O6;qX^Geye*oCmO`Xj!oanfIlaIRYCuQ16Va4Vx72r~rY(BY<{jW<$OETFrSQ?m6h1sgHUv7wn7QdDMti?tzo;4pl7v~Sc~QyQsXFyaV3syDH0ua~I_uQ)D9eom7?rUS z7}>KjHDV_+KV!U(PX+T(GgnYjhy`v4`w4R&%D9+lR%LdRfXueuBL4JQo~8b_2#fWj zTeG-nE?x$#?o7inXs8DXHSY!pqog-6&QJSu=*&c*(R`BTNkK!DPj!dFCqr+Usj=Iv zq`Zqr&Fyi^@dtXX;twR z%o*lvsh)iw0FY?HDacmg!hjp?9+0zG-08u4IfVT7^AH8Q2-jnGiJA__3JV{$g&8h1sM)VfxnkG(v8`8Wp4T00h$y9;Q}9Hk&k1o9z$HI zT~_=Q5)$P~kc?v(X)1N_3-~?Pj z;Dl|*LdtlZSgCtahhsvJ#?npm>OA?CN`RM*1)}Ao+!fjRdNYf*VKcC#(R#ho=}!BC zx{le2p-&R2M>nf85LUD_AWjj4uX9OW&oR6fzghVDUJ@ilA$Sht!tB_@Ay86JZtREq2TEP;a(=tpWceq^PmJ&WMF#V`W*EZ`it# z=_<*1h^}LAyB4`UVVb_eyO;;k6AD!&EyyM7ac-)5Csk^XBQS`cdmLcxcS7=sBb2dF zDLlP~aY?OI8o(8>E_23YPfakXXeRHf$0Z=haA>4S6ZPNBIy=r8z1U(k3v?HO%I`=m z)&i1Ey!A}HcD4>%x0Uf?5Py9OPlG_17u;%=x_Vmh8e2uw38(?t|uJ$=@vnLd-a%4C<_if zYi7A)*hIOv6Er-=l@xr~(7DjbTFv*gz0+i#y%-g8YG+-m!AKE%mxpCo)b^ zCYq#b{XMV*St;Jh#3oE(%6_y(vWiHHHehk|k(OD;P;Timi>REUfq@hzh^S5vQK*_h z9BdlUXaap3GtAki;_#gOKSm^FA_zhqobP99EjsrG z50GaDkBnJMJurtJknbbxS4S-x3xCmSVXKjDyirrGq$xpW3>7xZJfOCBD)Fv3Qmz@( zam`TamoPUI`oU_4$mr8ndRdnW(Mu`u%yC!YrPVyeGa;;}<~~EY$VDp~vFDY$uCKRm zU?2|A)_ubI)x9?7z3X6l^1XNx$ja{5;yOj=@VPm0Gw7xrE=l}jld1nmshKz}vUB>X z?!9D$uzx%%CtnYAS**>00HTM6jtE-k|U(|QLnnxZhs)re7wIxWPFNS+2wIF*c= zIPmu<*acH!SY!oHjox>aX<`(rt3_AU?70e@DGBYU-qzlxz;%s}rJI{H^=~CNNTM)K zLh?5RkC=cKLPi~EgHfT>zHT_7(8Fo)QfJMrq{(FCR9zH6O9liDSSqR&_Rm~TQtV)? z^MktF4}S@rA%w^*dYh1VHQVZAn^7pN+2F5PJXN}`b&(mcGBw9^)O{j%O+efJ}@PW1S} zHL*ol9#j(3k^b1#WDdm_@Ct3poR1c6eo?_q$d*>Syx>zXwXj>S%iQjTq|!1>c`8*h zgf-`qnT;~y2<6s&?etOj0K*WS%_~y!D%EuRpacc?QL|>beNc#hCeIO91Sjkc;<`1k zdME5UjZ}?_#XWSd>JPxJ0=}74vK|l_j_P`PSM-_4SD3;= zoe3C}V|gBHFzqetE6q*qz73O819b#R3{;8M;v}+(JjG{WL$E6|#`1Q9(%>7pK(WHp zSQ4UTI(96xGv3>zEeSN1bsXvQa=4kos?b$Hm7 zn6KyAx}S^^GpAbD*bb%wL^{&q9)9AY&_m)!`vy2_&vAtw<0C zMfR9!Ksr~Doy_<0nfP2k-HEOGX{t3m>kx}qsdMn*~j4*^$loiOCJFm%pk1J=*p@dt^$j$eUD^e zBSA8}%SBRcKy@xi$&$Ylj>%-0IWaXgX7zumPVW>*ZKILHiPSJT&QlntusycsnvL2c zEReS=t#v6Z8^B*i&JQ5ggsxyc14=KkJ?J-T$on8czVeht+x9(;TT?9jG}%mJj)D!r zdrk!HzfAeC*9Qh~lU=9B$h|Flf{c0*JoOb5s1rgyv&JxOh-l+sYTf`mvl^CG%!4X^ zgub_q6i)eh6ls^*Jk(@6*=5tjP%X0c52|N7d)gb=ha@tnNH*Q`70O1ov6of-oUG<6s>W`e!(C5rEDloMnrxngEM2Kf-6TCbS(mn8!ik{T-Xp##t zU)wp;-F0&v355|)=$TSBFMO7B3>rhJcZ{-LM?3eqiD0ez*pj;u_22W9<55GK`?x+r z%E|r9`(ev#C3Y484PS=2E z7mvb%naxOX-CwzQ3q|o>wdP-^ict5Qi;+4M1UTrhOC%$c-$AAd!JjTvkI&go7Ym7nWMGh z>kXMgSsXBq3pT@UdyX|}F5|T!97ro$LI<^3^FY!sRCNlxy$esF6as3|*Q6w^`KpWd z;eC={@HuK~Ju<9sSl9cmJXO&QP{QjE>UCD@Oq@Rn&>P9HbQ2w@IU-wTuZft}+4igf z4T-a+vfoF(a0dUmCe2S{zQV!vWU!@Mr{5V>cbll2kF6^&kfAFlrh2F%`9jMVE$0lq zibU4^h$0RFc9q$*u71)(4>zzjg)vLg;?bm1DUl903I;AK8^Gu3N@D}*QgjK+(jxKo zLNsf2*z8agZb>6EhT<$3sDeI=s+ZXUrM_AiT9%2v=2BL>*H_B~a-1+0&`MhBgQGED zD8r%EiRsQxMi<~>o{sfn%|Q1$i)V$^Kw8Np>Xw~ycCuea{+0ztVGqrQI5Zx#vPFZ_ zP;WUBEa^_coU>KRM{`zpPt%04Eg<4>h})d13AM9xmd#3Gynhg(1oj2@7QNA?g3Kw# zne{qTm#C8Mqcvldi<~9K!ovUwo@wFeMU9N~BBZG7Njcgwq&JR6g^;BtmiH&Q)#wHbCG5SaW#sCFTP_REK*Lv}`a zu!y!RlpXbuYHz-^nq2=gt=n`tU$k^=w0ds^<3WNj;Uiv9agkd~NZJ4(XR3lVBoXNe zfHW;!vnDwmO>*K$SMJzTuOKLzaeG1fB&FCYhp_*@7&Z_z@BoXgkOub($?7BR&$q_> zkfKy6WJS5v*lhhbK;4Qt3Su6WCoLL6k=UkrF?m)0|C0x3M%EYJm-r=D&y&5h&U$p{ z4j8vszr^$PiwKPGDgY9Jjn{J|rw4My0SuodwP5?8ubVtVrVfdR@Zub*g$9KvQlOm> z`Q_IDz>Zp4)B_mfIt*jU_?xf{Iot-1uNl}`UwW6#Ow#faD z?ZM*ZN*fLxuV#!wC#>mJAJaN{VxCnQL;Xf81O>l**bUmi@G-grOo52h}B!DSk7CD6pQt@~4oO=ny=jSQ)w~myo=@K_b zQ_1@0K3*D2d6^?weB5WNwRYlW5{_Rq>5G&fdxE$D%Vac>-mCR$+qF}=XUL}7`}Ab6 zIT6}0xCIDB&mhMmcmzz3H%9(=GX1D1B9d`r9XK7xU`J?Y{mFc0kbdKUwr; z*|a2G>0{AEv+M03oJ%8iK)1IZOOYXqx?lk%Hg&GxxTw`V{i}!(jCw=#aqGADkVm1= zG6amkdTj>ICZk|2!swSAj~D06}qcrT{N-b8W{eOaN_pzkL}CqW*&B4<%FaOw;v zc7XVVDKWi&f+|BOGT&4r4Ics%qNfO(wk4l|hsP{gdK9iT#Mw1l&lpw0b@sUnY#Lhf zXf&RjZslI_TM1fpUs%be;CM+sUIdBb-%R6;5wODx5G^~s(Xm!0FEvkhyAW7>n&Iu! z^kdfQg>}!JqW?mMX4?XIpADeG#25icBE_h3SGd`UU2yKZs&R3GnHv^qIlm(-6?21_ zV&-D^?0bZKw&OH6H!NYgv(E``wKzI}C-2vjv0Uc^WlOv1`KK}6ura-Z)_NSSPImEX zJ({)?-qI$rB(8@k&l(*Rb2FBZM)RzfbOgABo(J__#!#C7+=io?aQe}-(IVH-LuqaC z^H_C9Rwj)7PPNO_!h@1rvVoGS!5V zmuWBo4s|mX#^|J~_@FBN&V(t76u;{R@-?Bl;mAat+HiVZaPUtKZMU(x3NV-HgP!K+ zDd`AG^Sy+4q$f~nfIsWywk&}6b|HC){mbZ*C`x&&i^l&`WSb|U?boxD3N_^mPV2DV zxd8C66wOElZ!#gB+i}Dx&j*B4;@7S18SGtQLen}`!F(o5Ljg#$QPUWIhi`6x1 zdIvo9C2F%fhR*vSgE&`tip(I-)ZV^qDl&9lm1DlNf!?@eYEo`xU*xa zv6&$kMmLhu0jUq8`cjJ=R3*F4AwRukdIAy8)bZmTCd4pP`;Q^TttvypYKFBHaloSz zs90jr;I5!8rul^hRMj7>(5?pcjao6J5$c-`uSLg-^@GdToVMDQWb}Znv#ojStb1D= z$pf*3SKzd!aZkL7O>q!4)K*g_m>k@wQ5zBQ<;p8%)NR2M;7X-8p>Y%G8f(RB(Amvu zzmAnom-{7&svTO_LLBdy&w2CKcC2<9iCWTgr~5jOm_u?B^-N*AZ7-P`K9wAX4#9@* zls$Fu^-=-u{YG}=N&SgGEQ1SA4tmYV z+}~7^rotu!5Th<}FAMcbKgXHr6Pm-s7WZe!D?N>LznEOWdn zKFa!Yq&Vk95h2iTo5eDIlfo3XwEMWXn#DD?0{IXs3KrX|I^(5>k>Vu)eNg z`le1tOYCxK_-K=Qy2x{)>K<2O;y7nXRoF##T+OfSDyjP$bnukCr#(u`Jd_Jl>dbw_ zUimgnTS2hwli9Xm9+z!;rF2-$?`nRe)(kgX){$oCG_cX6(WaMZFgtoFX8dZlUH`IqnNAimwC1;-e^ht$|*KU10!Lr#@{8Q+A|$ z*6+k)?VM4wKzr$!;x?!+QcqDP#sr(ItY|{e9RMXH4iaZ;SF8G;sF%iffA0$D!iM># zsS5SBRk57O?z_H>x@iuKwIclK?vgWa^omiIU!t4~%|=>Awud#enaG^=O`O`3*_Zwr zb#h{mShw8n0+t)!9vXcDT50XnqIW*NJN^Y~R3qIY1kB)`=F>myRrHc?*30ib)pO5_ zv(B$?LLX_>5gCY=k`MmQbNS@rFiz7AcU}TIEGvmQ$2+^!4bPE|&a6acXF&xkK4sNHyioO`b6CI##&8k)5OiwlD9(#d{iD{f+32k>fni35JyLn#?}z% zESe#1AYI4tC-j7mWI>Kc_t$$!j4EGwl#r$7BDpo zVxt46ad&tBv0l0_<3E;NHPQ^d%pN1$54`)RhWc24kd^mrW++QIb})2U#8F{3u;xja zElX9nL^ZX8n^KdAM(`7s?q*9rg~Ns}CKSSqdO+f-X9jWeqU^APmp-b;U1r03r%ZTh z1)uwn3aMim1<&8+rEWJVbm)*0ceu2g&bIb$3!jLMB0e!5a|^PJQR0t49-S;^BZq42 z-mh1sMBhe0=XuKI$2q)Xrx5W>)gR8W0P^gv|4P+1B~i9?r_#Qpu2;F`PNNLkq8!3R z8Wh@;?bijdO(n_N$v|9B{ULk<-+nx7JCxF$al(i`FoHTG z6hZGj4B#n1cC(9Vpl@~W=_i~#=tsM)Rx>&}h+k4B$e5Xngfl&of$G{c>*I)YR%2C6 zJ}8-*Il1YlXwliQFe^Q4nhICH2r z(nRj11fxG0McE9@MpHz(jt9c=v#n!#>~JoFnGC)a?Y$a;qW}^jurH_s=NT7Q*ML01l>qZ@||q25?2U54C*dX`4Tgh z(WMU3u|wGUa4_dJljKA`d$fUJ<`HDkw?t-cukX@4)S6VXvNxYx8m!KjWj-UlYSXbF z9JnAM`W9+4-Eb(xpQ|?)PzyIz?TTWUJ7C*nJb4rc9~bM$%TUfyUFh|N^~MHjC=}NO zwhR!w%_L`WBn-_|lh{QxTJ!#JpfG>+44iHUf7*(|p`^v9v30g_Y*r_~;zcDrbT9xh zj*AZoXC#JX*@O8~XxyhM!*=G!F;~UmbnZ+XBTpD^1m_(jy4yu-!~C{R9p-4_+gnK2 zd7pt^B*q5Q&vK+!y5>%T*4~(AYvGRkWONdJSCySen(KLHbhM2eW_&xBUUcT-&J-p7 z)Z6l$+sCqTdc=0d`&%->#QFws9g|KwmaNoSGq;Sd!5>3*;07f-z%`jhk?TgyWYI^R z+U`s++4$Uvw)|UJ`GbRm3jZRR!DzDc-V}96g5b-7)ey0A zL+l;)gA(7!RPh(d@i7>BV5GW6DnMQXQ0g1Ym&YYhoRwY7swAPY?yd+Du=xNhDLY?4FtZErL%gh(gY9rTJ`NVbP>ydHv*oUOw zkTeV~DdFQGm70WS^F3T<*h-E4ncxUgD)647S2c09)ZUs|YnP(>%rl0 zBh8gNWw_4mhQsk$c)hp!z^QNUyjcjj>iHv;>)F1VgC<23G@W|Qp>3u%l(N9re_!TKHj3+otPYdty|xL9+cS=@7m<0dKqE=*i3BvL%r}xtAMS4 zxz~y>xJsJrp$w~9x~n0eyUT%^&mZS;DP$T^j8fR24ZSZ`sW_401jk&nBzdwe=)gjP z#E2hkE3W5(i%uRy1W7;ZG| zJUz3R2*Qh5>s61vUkON(R*XmAP-lq|6w2oBY9!o}Q+OY0ks#?m;KeyeFUk^?YUr%0-i^5 zdnQ1on{XBKskfFcK14D<4Xs_g~5I=NX4#??F~AlofZUT?9R{ zL7$;|x#O(475VCb3OYbJnkG1{VjY4bn{iW-nG)=j<`DujsYlmTn;;mqnUtg3rH$d`ii@Z&%{B170dBVf{k7t zEA~Q1`E?h%b!%lMG0$nfn6#p^1Iry9sEIFU{9)1I!D&K#}A?V$4P!{RGuaQ+( z+tp|zxBzXBNl~&D(VdcJF(=~g)j{a)>}5n?GiC6Y*#->THJzU)5$De2Pzjr&`9LJ5 zT0abBWrk8UY)v>ob~YOJJ*9dXJ?U4Uq<^XM43FJlX@V2|=v-8j>1TpSEit~r zg3F@Fzz6A_5|JF48Mw&TgO6E;~Sl_|?heW;?MNypSWEppc@88>jJ}Zdx3zqmviJ#$_p+O>i|3pxb zksUkR3~@gN@K76zWdDzo1KDoHU9HotZoa?3x1C)~t{75BW3#IZ>YtC0XeUZ5ctK2M zL@!P^7CR)2m9Kw%h^MfQX5~fqj5yCSEJ~lWW6f3PlW#!hg7uR%BVn2hK&rG`q36#H^)IRnn(~5&JUv>G&}FT`D?~=j;@0!dT#grTvh;BzQX*ZpL14&aDeA zfO`1Ccm>rxgcgvlV~|;fjbqkm?lzK~-SHS(x+T2L)myc})@E5PzclTzh--~lv(GE{ zUNVF!WTvAiZgm(LhWv}z$2wR?I|~{(;ELo4R)-!^NE_;<{hlIN-_md6E;Y=V za;X+3arkS}1z1&-rne`MPN|DM-QGdISX(ymiTfkJO;6&tCNWbZd<{sQ?9a2*lOmDB`qOY8UI8ZvoU0bMc|%QU8_%8jqjT=zBdqV>266yiv1+cyB0}K z%P!X4|Mh&g3OL;d!?dAA9rGV@wWqpIf{5*=Rv&C8)rLE_D_dmaDU9|d1fbT;p#R{J zR5*dDXwhDArbLpmGKr}9-@HyRXV9-%{!CVx=Sa4r*QLYROw%i$AvGv0zCSy*X*?zH z#I{y&KB=%#Hbm5xwz+t6=+!z4x;t;vQI|bVvh917Nq0TsY(g91(e>Sn+M2tFqNW3c zO55@nPujw}i(Rl}Q`mp30v*k>`k2`I56FUW<$_{qQr$y(vN+c+`e4*DlD*|Z6<2Zj z%lbY2l^WOdI*JUeXsL}K~>3Q@yWx&`g5K)FO4yAp^tggl_>>)i7F1|;)@KDQ z0l{OTYO*y%>g)>yUt)Ji7bvYJn(op-vpb{pst=Hsi*x2|?JSb>>n_L=qE=^;k)A_= zG^18rgzQZBV2floqL~SWNgDtSQ^vh4!u~`_q*~z2uWzm)C9gHRk>Mmk$}VEMh3U2{ zNrJLi#3OJAPwmdsd-_B&n_7AX)~)E_2yxY8DJjwp;$Dl@1F6}I$s+=8SP?h3ln#=J z)rd_&OZ{(q{b-L-~ zwI2T8x2TI1y@y_I&<>$rGS0>cUI@BdsVLL2EYS5v8!lcc+8`|fKxV|iW5LqyY zhPI5&Q^P+1i!gRAR~pB6wK@$45KAa3e?R2NGGQdfQ@(En61Gh@JCb~N5xU%YR}>9g zO-(=DG@4%r3C%qvN8Wj;HGxarNNWZ)?}vHz&uKJ6G5Hodj@+9<$q2>=TZ!A)?q)@ zuf}@oYi+@QfZsXR7Ylr`6Si2PXv6&gx?dbMmH4EQx|c*z68ETeVtF@dQUY|?U>YA> zBI1NxW?qv=k7?P`1_35Dq4=;3|G{)U_(#Yf`i`)M;ew_c$H5#~D*iD!fY14cUk( zvFb{%h(zzqwp6u6k;<8{$?_O`9);_dlk9zz-_T<{b(!9iwGQx*hP}jD*9!V1u(4qy z=Gus*ZhyI01r2pW(u}=OS-3+iU|CJOW^FmN)GaGx}ZLcc~T*8bkHcA;bMsxz{CSO1`AVNp-o_gD7V=rl7 z3YBiXvsFDUdiZWGNz5L6D!1yPp*jX2(BB0obaz9DqwL8_CY$fmxR0Y1r>1F%I5Pez7(qBPO6)YV*TMz3Nx;aX6zUYzGWA2r zikNld9oea3jM}Y{b&aNSN;=Ok%f}O)-Poqs0stQ5;#WDD*?}CUEhy>B)}8E{kzvBb zunGQ{qmRvh&53PD9Xcm`73M`bc4@tdHg)^_(l|Cyf8UcImSGHe48dPvh*>Ja1xYj} zoDZWO+@qSJe2<@kZfYoB0=9d3->Ln*eJ2x=&uQLsBx(ywDB0+v+?stORcby_)&D|z z9FeGpC}Ili*V41rl<6OmM@8n=v8SNcu~$KxuTRr7lQrO`UW zvfX#AcoPqB541PlVoCJ3Z`>A5`KHP*b+T8@ZzLljuNg-Wagf*O-JCYzYu>qN0*jg& z7R$d?+PV9|{vIU9T_)a%;W9!Iu}))5CCl+9zg$U`8k<_`eB1Zss(GpTI4rM!+FK>3 z--R4O>0$giX(^*+{TiC-cxc|jZR{*rVyyl$o^|VQP_o?@Xavdb-9^l+z%nn@Yl6CN zE9qv6z!gL2bP1WsGUareRi7Zq+M>DmIYVHX8{>vhuqnNtWXCRDO9gxE>Js zbLuA{c$rzQMGV~lagG;Y`w2tayymG3x}I+$5y6${b{VUxPqaF++C@Tq6%-tiFPyr!mYg&^ zdWaY%5^$&`n`Mypz}>{sH3?vbCS1CUNyCQaf5r2(6&$2n)4s0waN zpi67#HZ>F4l|U0xuB4nYAO-rV_~>}gWq*T9T*1NFU%fY($<`M5^Wd7^HLDc=$SC+2 zx?U*FhE`#)DX41E1fJ^dHch0d4(i>snwVd!R&`IEI@J#;(fI>wlz<}L>AfbOODg|Rg%n?G%OS@1u9d{an1Te0Yg&_H7h!(KVMOUZ0P$ezZf@p9vad;&2Qt` z2qHwka(PfBxDZ5QUb@@5TO&x1a;CR7xg9Ldox&OO@bz5FG9#^ui zCBpq}!MORdi2rD+e#?qcG!c`|v*C-sP8Li-3y=v567GLhk65S4QYB)@a#}Jr*O4nL zzpNUv0<%NdV{TnV#!#mPL;8X!*G61E%OlW4d7;d2YYqDeFC{UzPr24KmQU!tkUC={ z^QckBQat3Am?in6dPK-or*p)DbyyX5t4uJI+B)+`0FBQJ>}r+AO5!&qS@uG*!5`OC zL}Je;A(2mvg)1_b=>eK|Wh83Dg>!k-eE?W82`2=mI@>wqYI|9G2fGXWmwmS|N%o-r9$FljEQkq57@>s(@s8Uy^)1{Sk-R$2(qofGF^2y0mQ>(N@wX;nUao8r4gqLSR?KeTr#aomIGL@P8P!Z_K-_o$8iSq%Hxt( zW;VGBNfnqo;m0}DR<3p)nkXKhwY-=R`y4>!C($k-R~T

dmWl6&fr#E>VqXgu}8 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 z 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

-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

{C=A=e)c|jNMz=GWq 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

7EBRb=~v8SfL#8WtY%fR!A7rJrC?odVAdS zz*wR8C&bu2^_Dql#tOYp0lQRS+_=P8p=?jmvMhrTwJcYg7&c1zFuPxZqkOJI!P>#~ zMg4U++6FQ0%yvNR2ISepD?&_nAw$rzy&8bL0*WI$E6`9pR6zo#pTJgvg_)n2c~P0` zFiVZ-po<{4Xzn%W%yJzRrqH#UpenVSU`!7R zKOnI0p!kgGL19wpL1D&{rm}vGG@Xxq1hEa7%3_W>mG!8^lBTlgcW#=gtdk;Y9Ax-X zgBN~TYK))Wy1;7FK4i0&`jE|-K4dfYADIzRCwNbYMO*U(#1s~^aJJyzpnyHR1wP&) zKSuM|lrth{L{!&exF3c8r)_H0h3B~9XGu94J0M zBCBG^h^KHk241wOWtDWu*zc~afpbJw`7oyPVJz0bzv4s2YTGF@@2}6~?~) zZIn0ukTFNXO*wxX_08Qw#;0y-9fs}Q{pBA#_RZbS=?0^ZRWL=M3T8|d%vka?;VJL@ z|AWWe!si^LTSqhck`EsD+>BP-2N^|ux)FfA45zk-99&SlpA6XMLNOb$?h-o;v3w66 z7YGF>hLqoi9X!?&d;~5VbMUyElw~a3bDiu+I(VECyk@%b663++FJQ_&JWg}{A31nz zJ}KiL!Uzr?PvS(xxVgy(kIPH&J?BFr!wfh6>;vIU!2cT~(+9B!kHfz4*o~YC_-{Ib zOe;~Rn{7>jDvC!KY zFj{MGZ-|K%dix?qOYbcwA{f&hSenObq-q|ajwiC8YIBq>?)+|VaMMG_;V0*=Heax& z>g@Ls4siB2?nv%V!X|tqcPL=)k=z~dTes_M?2+74BDU@x$&F5x*`q;W^X~G|FS<`L zOwQJkJ@ndhJpL?}9gA6W9g7*$v6!*su^0z-kCFqstM27vQP!Cac{y($2X=XGZvzkP zVvXl+tkB$zRiiH6V;gg37sR(>b?a9Af9&o3lefd2RTFb;7es47yoSWtOIg=rz3Y0c zcX2684(~n~b9nbU9NxVye0cXo$Ppxohj*{V>esdT9p1f?M`o@JZO4CmIbq==wp=2N z0bX=Y&87R-T;v|!<-2iF7v&fn-h}`z;4)dw1zATrV@-hRG8boubeZcU#MJBgCSoImA74eHFz#N} zr;LYu7(KG9q_2F*hkfkhedfao(TlGZy#9zOzugeiWvSqGD?GoT%Tlv^yyJaXa8`kf zU|N>je7pw{E0;1q?!#U{OqbVQ_F;cPY`Eb4)ra+ibam-#d&IPS!w}m?yvq?jY#w5| zKy{=Kt3#|*W#y-?_EYabOlNo3B37d1Lrgt7e%nmF+E)?NeEI#a{RHn5#D+<%8_Kb- z#I{6iABl1J&=rvUj_=+8>^^deU`uZ>YTnnY#l63GH0}eu7TgDVTyWgRyA=0ry{B;> zBs1sRd!Hk|qt^rF*~#mP`(ST0?nAr-ao^ROfP1mmg8NW!IqrLSC*r=RcP;LF$s2Iv zm$rtYF0E23)eX{+nwy9tw}*=tS7$9EH0Y?=kG><is;xGrEZrVCi?6m$WLF*wK69V57%2ofnTOj0R=g%sJ6>1!OAAPRJ;<`~-uSz;rh-S4vTjDX_eHOksbC zO+e}a5}S(H7>Ok=I(6|{mpJd^D>&JEKTr1F&nll&bN_mt?EM|2*wxA2d+_T0;AHQk z$S3P$@2$){@nkRjs=IUfq;P2AblnZ7EBq!J(7~&n2CsJ7&$1oUTi`9<0&f{7f4^Dt zGwiW?HfE32&G0gB_V-ws6TX#bta`%tX_WiPn&)wkJK@V|8|XClgzxpaDs(le;5hS$ z@6{o{6;)b|a<4|YpUJM$l@P;~K;fa~Y0u!G?^C{y8XWY+q2-z@q6dAe{3`LuH0z)* z_ao&x*@8ST&6O_i#X;dNg^t2s&;TX&)lI{`x@k{jS7;ULx(ap0bHz7no`8@**Cl@D9v!>Iqo$ZeqaOT@kO@L>larg`uc?~0d3O!H{; zVV5DMo6D~DVfP`XzWXCS>`BC?OMTb*seF5ya_)|i=mew=^!g(v5qk+t89QlNvrBmO@fanS9mInMTmC&D(t zJlc9W%S2+>^iZeZloR`TLvQs#Lpd!Np^KBh zY(eUJvsYHvn=#!xc96in02{{i%CwdtxlykgntG(ru5sc}HUbgez z^2rFs3cW{BM)ncC<&zPN6?(q}Y=*%2SixAK*Nm2?`Lh4heB)34YM(-vdM+rxDwmql zQJ0$KRhN3c#3rC5he>QIV)G=H=u-cmJo(!qb?$@OM@Rd80J{>Y$tQoCg|-=ZItHA9 zn8MEUVV5GdRPg8lDBhijjYD73!^?g0m%f4Bhqer{|Io?bg#I+TCoTKrZ)tf+){Zoe zbj7&1vHl(O9~#^pY4+srdUmHdcBH+9d_p_Yg5J+Q<5Sey(a<2YqhU->12+kbr-2#M z)4-(A)4+@+?LNB!X}bHY4Y9Ze-_?Q?bJPW?c8TTFJipY_z^6zt;#$mp5YRla>k7ow z)(=ALWT6P323ElwjZ|%SojwKo$p7eR;4bYw`!sNA`Dib?o5?*5{MRqb(pNg4OyCJ& z-_)&PQ<`en)SDVMV|qgPB!OKFc{8Rbgh`<%gcgp%d+;=?5w--+i;}zrU(|vw!?@H5$Kf)>o-* zp{%hgkTF#tV>!1f^ubnzCu`o|mf9z4*6F`@_zzzb#(V$FK&{id@5r9IGi%;9uafSA zS6JKkymx=QhfL1fw@sVZcW`PHuMxy+xF6|>R|Rr*`3>p?Z*vr8?pHuC1-7HJ^4tSx z525(+3&&HCx+PEsdPg8uEU`t1Js=d9AT|JxIs?6{5z_(u`-rJA-3=VP0tZ(&uLk$- z-hA9QlW*Q^?zJP{3$W}LiQNU5|8$Kw!x&6Gu%sWzFT8C!@zoxc#gjT~+v=<4PQ)Ad z`R$UbuN}G=->$5$s+!B6nflpv=!<#u%unEfikQJ1ucAFSvX6#k8-t6Rp|0Ya_9dhY zr!iwB?*sgwwha6D5T^+E#@fpD!jGPbE3JsW)vLU;Vx&BV^L<;FpnT%)TFa$E)CZu# z)dyfqeSrG~MjwDN^#MqsJ^*8dUKyTssrueBBgI&u$63h-1vbUR3h}udyo~eIEy0U# zBwdU5Fuw8T=J*wu<(m{-u+FqAeyJtxf!HHp*TdTvF;0yR^uMEkA2|c^U+;A$R#qR1 zSqXh8eoSKQ3?G-+RKy;Y7@QNVB50d>O8%Lqbi|{q-*(bKSnpSXJ`l5YwlO@1-+ZqP z8^ZwHL`rLrdt$NDIie(y^F<)NlIz z9ZZ}2g-@1UdpyRp$74)-yi?vOnk$>H&Z>D0YCelEu6^gMn)lDD`RJ^gPtU6PjNc^t z=;$xx<8fxW$9ymeDH!+t{Pv%Yta>kby1 zOX}Ny#fQ(HsP3M^dy9&k?rk{O{uO2IAyNgvlz|P{erU{?+PY&p8{0C{NqmM*;%;DvItf-m zmCcwco3TQF<(9^H44NAI<8WZgo08H8u|I;U2VNFgH)cU=d!}=F)$#@HZFLLkGp+Lf zxDM%-7c6gV9$vPeE#a`m9v=WO$K;Va<~;i!+4V+dlZ zni4-om1>jv82^j;!-P@z&pNmv`Zcw>i0Dbv7Z;tVud%&L2t+^o*yg&$Z7t1>$JKT; zwlt?}?6-5qj7d!LwKE$GL)u~4RXdESb{H%4BFu{XZ}f;f9dXv6;Z$}1`>%IcTgA^> za&)(kRof#Lf5?&hR-=+(H%FK?%J~t=kcK$q`kC$7yg)MSm?pP0)o0pbx}q^-8rvr{ zw%0Cf%GCSf_!wM5;$Y!b9E_klo*uIHe{ z!mB(OQ+Y6!|DaU!*%MXWxmy4ORDZK-?~hEKqlT}Qk*QI}9l7NmndZDUOGcu|0L1=b z1j^OJt3*uuA`Uw`0L?*62cW|d(*Y>s<1Iyut$U!?hL{dO$0HUDK+2Db)d8Tu8-`d9 z`NrJlUL)c?y>H;&TkJX7-<^k)B3y3hYN#O%hZ=ItJ=C;inlkvpsc+I*Lk)|qDr8Jm z$Qb;`H@l02$VPYxE*&XtM>Eaq)*rw~=;;+4-m$o|dC3uDd~aJl|1o2ZT9&EnXlX0L z7aKAijm?V?fz5RiHdNdkK5tY?A&N|_P$V|i+j{HgXVv}W+LFC%e(>Z^U*GYxpWjMH z&l%G?GD}+**uktmv#@i~f@O6hONO=9FZ4ce`^O4zi~jsloCf)zU3wzFt=HPo7V~{O zOfl$p=mvs--!a5j+e}Q$X2nsJC*SZyIyUHsa@btP6Xw8Jp*O6dv5A&=F0Oxn;o)Nt z!?K2M74NXR6)S)wp{lNBY3s1Y`px<*gxAhapsE2L=dh9z495mCtiBD}z^5e<2rWp_ zy2D|Z2(oxKq1|v5q{d&@O}?2J;0SQfwYgCNal%yW0|TmXy-Exfal%yWfC4J~K(Jb# zZz9AAQ_-sls8;=HNpV1RlA$6_n2J4DKvlT!Y8Zme>sAvXPM8WluR~RO>iNq9s^1tY z;)JRA)Dz@&;tnJJ5K#4G(?=jqn2KIoK(+Rpm$wE~{EPqtal%yWB?GG0CQcg_P#s~Y zh!dvbcLf8g*6Vi1pkt+RnxP_2n2O$WKy}X{Tfyio)$N8#{dTu!69>%i4`2CSFLV-? ziem`_al(0V6b$lee(6+TS}J~Gh=Dj^s+|A{s74E<5+69n+D%`UzH&nz4Qx%1%!hJ6fr7#rX3R4XRB*-h=13YD@h!dt75~2$ChaVX# z;)JPo4N-;r!(BL-AP^@^RSZZ_!f?OAEiMei2~+I`NI(_tH#!X!al%x)hp6xa!D@N6 zp(0M0YA7HNsKWaCg`px&n2IBIkXKk=9~&y-gsJulQHAx@ zp93-ial%x40}|vF)>nz4B2JiUpAc18Uo#CAal%ylhN!~&T570>1FDY9iVnmWhT$qm z{SX#cg{^&$d}E7c0`~p7@1m88UsvGxvT^e>I!)s`dCCa)b4~8U(0aP1ehCO14X=sc zZjqopQn9#q`vFpr(%#feTnI11aEuB!>)xC%7fw+>W?le@y(Yn422*=x?JpR|N zP(pBCK|yQf#|r1`ai`yW*1Bhx;vYisp{RRBnLMWoj)7=R6+*lLe2kDl&J2Tnh}NQ` zuK3VtUt>xoF70WlQw>%-`xz?1k)(+}A1QMi_)JkgRY*_bGsjQ~j__#;^I6y+P~OVjXrnVnaS z;9SHzE`|wyUTX~J34UIWh4Lcyb6JoN97tp8P2gB<6CX8|r+)3RC*pTOibFd~sKH`y z#fMG=;@EbfRFeP+dYjeWP0t2-3^P>32~$lLs`y@FilHKor9u>83a+F!*Z?ZFT;hPr zk^DhIm0R)$3(hLuaWNd^Oa5e2o`ZbJ^T|s?5%OYq(1A3jJ_p1~PLe}%o(fPfGKNQx zR}CNH*t)BnrwLWOcD^uF#0gVP7b-gzgtarMHxdzu6Q-I0NZ?%%C#X-Up(2i@5(IB1 z{v~N=DyXO(;;3XA0J$2!)Z5t}Ciez@t@OPe>E}n4iN!hn{HRj-pqmRR5%0r+;O#Vf zfLGA>o@>hN`5L@C3-Tx+hxk;|_l_#}4h6*Ndq-7xBp`HB9#y8&U9FCUw`;@Do49D|UY`(2^jO9B!T+oq4_t@U#shS-xx zxz^8Jw1ZREX9Ma;9v?=li$I2Zhx-sjyb^H!p%0;)N0yX&X95z)d1T3OImoUMTT?BM zttq|0ASBoH447LWXB|5OIvg25c~%Jy<;&?RGzWG z(ctP!scd-`SQPo6T%KQr%5zkRia#>Q>ovbTC!##{fR_2?ai4eC`xm6x7Xrx<)& zt)&{&7a#=Ug!AHPl$2MMp(0M0YK~B`(K3gtR`35#kk{pgia478!v+GaMflK0bbPlZ zwKP~wHB`jW)IR+Xl^}e~SgE?OT3%>Tfv?KQu{oMI78TQ5t{oIN7tynoLl`T)3WhnoX%X4X{ zJj+5<{BZ~Jy4o+#l_*btKs!R^c|Nv0N@dG)Y>0Dmc{tw|$mfJGmE++bhLnQT3fwpM zx_h&Jb8mIF-q}|br2dI}FI)`xSR?LsW%dcwCa)R1#%8Q_w>K`!V4)fNtK9H`srz9b zY(Dh^aAcX*uCwihUeib%A*E!c%rcuX5+_KHjzB6rwhhHW#H*s9C4jTGo!&3K1%f-|6Sp<7pDsx4fttcym4KJC zo7g;4=EFrA4*-X}X1*Pg#_$nxWLxr5X$-HB??Sqek=}!#REYI|mofjV2Y-WEd&s8N7#SWRGJFmkS*D}jwK8;9sW`z=kQ%^(AWS*0@eD09fBn?(Ax_wS zSW}fD?IH+PhR9NOs|UR?OOQzA$nYrO6{JS<4jJAyf2ZrRWmqdXj|dKK2uJz$^QkHG zQBwEcq9EjTA>VS~hdpd{0SVXZC_uDc2l&{Gxb->;zk_;_yFgfFnE~W~4Q{(w2v9+) z7&g;L+F? zca`B>FPxe7Y*;>yb{ddcklF$F6#icM%_iOk*Aso?nSoxBpM9BHs0FGwB8JFfVd zz(&DYV{q^fJFKnbN19qJ&eAD+_JY*bM2DPLzwr9(Y&p|kC`etxJJAr14#|0^^^tRP zOEZpS92*t%VWxyfvxF&rbBSfTfgg~P;L4e0RyhwhsRqZ)%0fvpVg+r7yb`G#IX3~% z_E9PC^-1G@nk|i`g7a#TV{=S+-?%3JzcMxVf^xYh2g^ zSReAR_0j1f9;^y=g~IbNQ^F3>X$?5COhy0jbxO&bRWtgL+PARoQy;tdQZ0}8nK-+| zunc@uGT#MfdT9!ApJA5+8jNWFxMs>Hh7V`wDn`p%o8ZU_)X0&gWb7%#?KdbxwXyRc zqaautV>txJw=vc&pt>MT<=7Z~lY-Rl!ZPJ`^xR@?wswvcoS*P6c=Wz)|NJ@X&agtH zIupVqucQCvOVvEbDUPj0HGlfS)`Ep(d4k@LyaXcUk5Db{PY zf)sm^9=IC+_3%AfLa{o`*p~w;IO@-jDv>_=>)@=bw<9q>&!7;-?lZYFt~qYC4fc8C zm*Tj#dIF%4%-sDBeuTdve>?DT3p+uakYrUuTqh zvd30%2}sH7w9Voqf2#0tTY>VS)T2549pCU@v!RB4ImLU2SEqe@lF3UPHoiK#C3L@WrdE(FKd#abW* zRC@;`h`G8r9lyJ31!oA3+X_zib@7Rj#_6JqTOg1JfqiVRI9;46d|X{9AJIiwspvv* zR2QYAMHgoVx+on54jxvas2zrm?c|@_kTt^7fKV5T}x`$JYfV5>P2$pUN3`&IT~h#piRUe4O1b&Ji59U7YRfV)pjR z^=#3_BSsf3Tg2(&T;b#DLiva;hL?*j1V?o-yi9a)ZlH_d>Rl*=`95cIXIynL1g9Sv z;(dVg1?QSn-~*iJ>*6N5H?9 zUEs^H3<_b4yR2*c_-DE@^SU`Eien~%aoA%!s~yiFTqiLjZoWAh^sG3 zRrR&CEuQ>$^(8nVeFap>qxl8k)0Mt16rAfEeO=(|YYpnoaDnLSeWS0=t>g4{5%9wL zQa+-uiW1S6;HbW^FKz%RE(-KDVkEON5XOpk=3Rs8s{;_W9i?)0aWSA_U6|ad3+zLq zE(Aw)QK7b>5LXwJnCfB|#Dd`JLU2O52&e`JB#60f=MwxbNIi@@$M?~F-b6>jTDjx< zw*|*-JD2#n__vY9C8CQSPyu;!Oyf`U0eoeSQjRD>S83{I0^5ZII4@0s&|FBx}d~V7s=zh;P|?r zL;|Yh@%?h<-o>-b6@ufoi_3jo98!ctgv&)2J3>4DkZ`+DKB5b= zCr5Bp7kCPwF0Kr8F-k{Ng^>MoMZ9ZJT@(*iT_}#Li|+s}tP7Jnbuo(X;KxgJiKDt0 zt$J68s|!j@b&)*23y!Y~N+h77r3Ark7pnm-NIir*+r@#04}B-QU0fwNZo63R>*7|_ zonf`;q6{h^uRHk0UF&iAUKs0uJtxEvCVe1kRm*T90@+;b;4e_ zNpN*>Js>)7L+XlNJN;4lP#2?1D`ej0dSCLROVxrLNLh(@6BtXGMPH-g8*?Xy11T%> zE{H&eduRI)7V7)E@~)wq;WOOhLZ9+s%JVTe<=*3hQv|DJ*s56m$qfkzO<9ohvmg&= zK|acYY`>eZlbdorG7EA|7NpPaQL3Y|ASY)*ev<_mIyA~>d=}&wK(+^(YR9$t?*dwo zItuq5xC(#%(ECQqw0S(aOaN4H)aLPg!5+wkRKNzp5FNV}$88ta0#Dn;jVVO^VA};t zC^&w*pmhdRFNLX`XOK0ZEJz)PJLgwh&))XE>~?X3;2aDdn@9*7xLjIIfm&1T;JcYdBNO!-or%;HZ|dZqA?(SA&$ZYH+e(*qhZLOC~tJ z23gyH>L5!X|J|PLCO~xGGX8t}b-r|Xwgzt&ocnnfdVJ8{@7Yp&D(EJW^T|LM1i;N4 zZX~$1U|w2_X(rX+IOhTc$FBu>1ynP_RE{0qf|P<3S7*3aWWd}WXJ^;q`-1Zb@3F{%2)_Rfm2Zo9`pmO#x-UUdoxA0Hbyp3T+ z`z+|)JO&U)VF&mR21SwF#kx}40+YF)`SBTW!7QIShKe}h+#*-d#6PpBfW+QWR!QL4?#BG<9>N;3ICV{>9Y?pHH7Q_V*rzOW0o5#;%MC`h50z| z`nXT{^wKQ6Cofz&*V15TiJ>Bn@;NocheY>hLEg!N^xoI77e2!lwzu2gGE(>_>lJFP zrOZ$fM`6c=_z?SiK=^#2+Hvjq0YHQPkZYPoryNg5=y)nPI-ZUgO?I9_+>wY{*8XRI zXfFu1|6#u%IDY@bwi-|!9;R~op9evy>*n2IS@mVzj?sF$vl)EqC`diQJ1&L?L;X($ z40hxDpXh4ft47WbdPV4e-bdCPcaE>LWnekZ9mcx`Sf;an%6h59`dL*9nw1#22#zl? zau2BZ=E@+rJ@#6F3sRh}DZ_^oA1FBX8`%?fp6o!TS5x!Vt_XRS1N+GaS30{F56J5T4G0Y*8W!a#NhKfY2A!TDWcJQ9uh) z^Kst{*AC@hY-{Sywu8B^0{|5qZ96!V1-CW?(Nn7~j%KeA*IL$sQmy58DMbBXtz{=b z*5V3Q+o>~w2tGfb83fl_9s{@_#huyv!&>g!y#yW(k=^$7xZv;uBU>3J_&}zK{liG? zF|n3?!H2wh9fIs7xYqInAc3`Pe%Uo6m5*2pzSGF?gteCP63kRg1+T|QMQZ_MxK|Z{ zlzXFG$nepaIe7+|`&598^sX03k+FnpN+m0~sbD_Hf{ZAO;vAC&xeyTAhL+j2jVA#O z+lHy>p{zxT*oNTHHUOy*+i)Qx#qW0^`YfXm*EU#FwGDnoHVCe52#(*AP(uOLL18MV z?|ll)3Q}+3-Vge|{KLVEvu)#P!5IN7+uUURl-P##{mwvM8{hYu4|A9tJZ}>GC5ETO z>Lw!(mU8cTaaQ*XQUa^v)2NnEEXu6;J|k8~j^`N8jH_UNo&~|wsUH;QYk<%al#go( zKLIp6!kXNv_tJ8q5*)Pz%ttXO#MLr&p;~5-69lVewnxG7wM>ZwR0{$U#M~a>S^O?Y zoq#*v@%HA4EB>CX<(~@9&W@I!^?QJuj5MAVT^s>jkk=Mpi_^u=gwFupaZwk_M|6QT zXojEpx>%Pb=RLI%2%buQ1|XEYQn`|U4$!dVOOy$(#C8TsUcOQx@c>S&%QXAZ4RSs{t7x%+G>c znFaZM7UUp(XcG>~XLT0jlPt)1OucOn8kMTsuf7auc&6QGhy7}Kh0L@Ij`pi~iYx(z z3n_>0!jLljwh*_aQ1aSRl4sfl$8RaLs(>naru{eI+|^9`Zv`iv3VfU2gj&kSo1~>g zXWIV`$us;$TFPU{<2d~KPLo=f89_`-c?Bt9-$qL)EyX;ozalM#91q-|cMWO@Cjr9N zq&TjYe+OuI^fa8Qt~{$axU(UTU_OZY`LX)*{mPIy3Ep2JkTx;WeqnZ&3@56=${DS}<*{!C^c+3-KBtTCXuo z^n=w7*nu-}{CbhQKvIavj0gW~aO?F)fCBr8pJ{(xaKt}19RBFn>k3omKeApSujvh; zT8Vq|O#7b%=P$hDVtB*n{IcQvhDhukRFS-nZMT@j-t|D zV&ooBIo&+quEhR~-(AhLON~?oPApzl}D)}cjg*=`G`2-NQ0Zc|Ug1f+KCG zv_#)ktfmvkD^G3NeNcd~5k(wS}-1d=1t@UVl1QWghnQJ_KrDEu1@5KC~8oIGo|bz*@>i zdk2G;lu)e&`z|UYkTP#%7=pJhJd4a7D$I(k5s0;f!^TNga#OwEm<4$^3$o{UwFE7p zYY88LQ`izry=Vz|1fnGfj#>it#zV*<$Oy3n7e{?jg}9c$dZ{HO&y)&|Zwb^#K$SdG z`mxl4eS7ju=_i6SB^5kPd>ra&Z{H+6ZFHvecaS{8$FPlVsSf19Qtoyklq$jPk^T-y zU}Kz}(-Mk};e*Nye-|5LZ14o$HK-*l%7Xk15cU8{>0s1^hyh`IjQKk&P&dC`9gPMM?AfB3C?=Ne`G z50U(tD98x_>~Kk(MJmPK=0?Mc7Lloro=GDFiofQ`5rL|z`f?#Vw8o}{vL0$pXy#Wbg zu08jX5?%{vZ}it4b6&yYDf@lbo(l!%d_Zm4dPyy;J%5U_C)zXL!EbF@zKyt`0bjDk ze!C^1S1(*`q|qxyX}kxHEYow>+8kZ`=`H2q=z<8&1h{WJe#G!0j*egN8HneBb7;q1 zAK}vvJQNcVKh|$Df1$Pbd=4-WLczz`!L^0(u{=JknE3mE&%uU@IAN+Sg-SgioFct> z3fhb1QD>-#qp)kkxjVK&4XSNSWzqa#ZKEe3g5%r9wH5+O&pV1YKe)EhS4ubvY26{| zqn|ChUQ6TJMnA#19XM7~eM7cUhz6Eu8_~Wl;T>ELnY#B)6~Q)A;K(v{aN~spR~P-I zJlmU;7e4J*XeH=*?-)MB2|x9-rYge`hSG3$-nSz-z6@D{L@KA37$D`@S=beLyWe~( znj$so%5W>exdBjHqX8iq?zcWNOc*bAnIc8-2Bav%e&EP5o%~&!quXb)%qk7P=?Jm4 zDAEXyFAeevs7zKu6YgyWN=<5%4Z=F{b1z-cAnt)@*($tYN=1b zh}-+|jpzj__MV7%HK)J)akhMR5S%p9wU@@army8{Q|9ecsF!W;hXU2xQK-WHHQ{cb zu#=BtIo~hdl8eJVGX<&XptLw|3eHi;xiZsSUsYM0p3>63uxfG@KF?THRW`3YJv)^<)!3W|QhGApM%7T;*c68gEq35T=SGAJYwH&_ z#%3JGBe%Q|Gc65y;Vo)u$usAsmfDVn#!OSJ4NhFz(a==8sNJtldnRAp+WMnA+wreDa&40+Bra)broFv(QAToz zOYdl0n#i`f6K^O}LyRL`iV}60?mI5MuH)F&MBa5RO-<~ZFxbS=R+i{zb*s!*jH{{+ zsjjJ-|240&GCiw2npQDxo_W(^RcTcfaVAAk=2X|rte!umN;uTyOr2FySv_}pOY?a1 zI?kXBRih;T(vg)V)m7D1u{erC7JixhI#~MQN}r7o5Rdm?yPBPSb(PY`;g}LylxRgY zxhx($JQh5XYD_maH?&k$Rg4qqiiD!brgAaLamp#`f&b8kPOeHhOj+966x4Bc^~~zI za5GfZBcqvQYdQucl3zNVS-iNmxxOjWR$Q5ASm|_n{E8J5@mjvjWJUJU=~;)4Pmf=m zsasOh-in|4q?vBQ1}T#`dvRw+earIZVf@GzKh~u*7Hob_L3c0?J%?cNQ(TH=!Ce~c z@T$YA=fix(dP|(@`Ico`M>^fwiSJ6IKMI21Lb;mJwmaY@E{Mkc3~ zWH*VR-A~F+3|FR$^jW30Rb(TYc9E1YJSm|(JHgg6DJ8aNs~$J^(AxGT=)Tg^Rm*XW zgR;oNEQ4{Ft}PEs&mtccZDNOvt4U7>S_#@Jd&|-&0))=y8O|&Tt8zJdX4BGxRt^^P z*}{)*ftQ<5)AaO%nSTQFY6MK(nwn{hQU zRKAqs>SBa!MVzcp=C1n;Nc; z#W+?T7PH&EbS`dU7CCLPw!VH=rXd4gM5YzcN$3|sW_Gky&5i4o=1#;S1l-jnRcx~+ zTY9FwW9cSpxR&XEQnYUM{!_wr-IPrv z+W)-Gs$f|T5$mLgyEQ4s-I~Pd(8Qr8KMru%;)a^2XO%ZIJJjeDg7zs<9j!OBtZ^&8 zuUc=uIflagcx`g|fAzYbIc}0O6mBZPf@|E+`jtx6t=U&E*Dph=Q~vWp4XX9ki`0%i zDuqqjxBNHQt6RPQlyJWU(f;RcRt3v)P^=@?_bCpekA3hmN9U6!LpYRTc}wn=WPPVk zN;q9?9@CdM)^{wfYHVpw%bKtqTPIHrP%y8oyFhGyz)mclWiWrTnJknxguO4iFKFZD zdsy?bD&zeN<3=t^>oT#KEt18DiH`r)(UR6lC0$F7nP8e-4R7A5aOM~+R(7P#;&Utk z*Ec3R56;-h!h&Q^Ud^ta9Ly%QH{*pM+$7-OBzs~snSW<^kRkdG?F?N`!MS{qjQw$)YFX$760Zg{xT+Z3g$tQ@yN zb>n)eP7`CFBxR$Wv28Q?*2^)V^qgiG$`W5RUAI~*99j6NEZv}b*y-q!jjM+0IcRp= z-?QOWDei2~q#LmBv!e>#OK7aHPqrAngA{pIHLXlWN?5FaKtOj90pFzP(xHxj=INR4FSCM0n|2L2LYfR9W|gI{Jvz)s(niqx_4ZVkh=u34Ey zFiOmFt6Yt=EGA9Jut`s8#zxwPTzI;g7?i`3Mg^i%Q)XFeRL#tTrcR!6(4;C5R*s<9 zbS=u}I|-v?E%)z*6h6Cp%FODSHZ=0YQ6mwW= z#3sT7cO_x;KCBuII^Vu*)4R7B?t(TWO_z@AxS9!Oe(Zmxu8ya>sU5BMg`G=VH`3RH z_uZ8*J-OPf3Wv<~e@Xs)=BvoBQ3TU@PNOg{I7n(&!80GnsSWc!-Dkea>J8;$dqZf< z=>*$bJ2&i+#IfCmM%jV99_=(3WOP%1ecU+)!;NjyRZI!Q7lCScmDZ!*HcHroh?HCHa-se=do4=<{QOhXUWBhumWy z4f5s$>B|J$`p)t@ovnSEN?;Lmwt>@PCfE`vLT=9_?m%%n+t}H&1WvxMozLu90*~y{ zSj$r_mo9xSqF&vFwd%$_9?xjkai>{$YBlIlaVXR&i*>&Y=p( zrt)JFk!Y-2mNzGH?XVAZ!;XMtHRO%q1TRJ3IHSi{;!cmyXSBy${4*su$0l2>*xI^dIvd+ERoO>V%n3AEBrMJE_@r0q9*>*R+8!KlF~??kQZQd;>KLcfwe9Vh zwhnmQa{8=v61I*`pE`3w6%Oj?Q8R&0sIID+I$_3)$up)^)m09!ENgAgbS|$fuBl#L zS%&vNRhHFfT20Kn1hBGfd6ijOO!LIk#Fn<%*oo4VnX&Nb4Bl@dhZFNW>m+ug$KwvJ zns{*agsBIOn^_eht{mYn{+hBkwohnm=MgZj3U;9|U%}9fHXAq==BZ&lNMRekvZYsp zoz-VBpVe~gmuYBinWhZ4;P`pF)d^-m)3X$BS|{EQR#i@|XT4Zs-f;iD8~Y6}DJyb9 zX=%l%lJemdB_kXlqNVuwU_}M~4==-aU6^)M;ndUtsX2dLUGt5JDQ^K^&V?|n9&bA6 zSeDUWcsoBL9eiD>8w&e{-jBtkcDy|C9^mc0P!ak5!z!=eIQM;kOzDnmSD!l}!0T61 z6^A!8PrSYJ#M>`Vyy1D`jm#5o|2*+3^TZpUC*Gty@ea-tZ$_SYv-8B8mnYugdE%w> z#H-5_Z&99jOY+2P$rG%C*FN|;ysin-lKWqJ((xoPvY>Lw{vog8jpeN zIp7UA8b9!&%7eWk{LMT{$F1Tv;xG)vwHE0wnU`7eZICj))z@~^62XKa_`eP~h0O}U z>m!M`Hp*`h-~)lPPZ+OiScD(n8(smNIbpn5erez=594L=8w`FY0q5E18GZ-;MxZyodHQ7F zToC0Kk@H@_yAn80gz>WKK|6RJIBys{-wtS3<{Mf-@y6o%6gU;F{KfabdR|~x0+Jic zcR6rwGI;c(f_emaw3iov^OnJ*TPJucSdk#(4#0Om20U>wY>unSqaS8oxg}8b*Ion8 z8wM}X2k`jPEeG$f!1-GguU#^>Xx`Tm`^@0@z-}d>x4ja6Ag&c?Rd<<|#W&Cv^+S8B z&n)a*R6LtF3_rm2B5+P_m!I;U;;Me|J0tD)BqU!AoWZO(g2*|B-IYzH$0}3-IHClR1`H{L+KbN2I=^0e=WMpBg;Bz7e};`HGJ7 zys5YtlFCQ>I~q7QICyd8yB>It1E=wLaHeJ_9)4HF(r-9KVYI{{e8uv!Nhp z`LgYg{a7t<8Vp{Ny->fcz&WuCJlgZwz*%kZe7lOVm)n8!h{5yiIig?I_buS`JOL4e zr24Kx+5q5OYw(il%YJPwaDMIZ3+yy#N0iGSf%BIx@FXIT3vpE(X>kj^7o4KX#($rB6ZxA&DQ$cLH#(F?dP*&H~U%TrE&)#U>4+c{ z;EEgfsgE>p&NX;R`gj0%R|DsWGY~;Y;>Yh791ol)aQy~XH_T|omG2|q{SE1V#+&>Z zlK9<@wC*sjyK%jWt2;*4IDUTuUbnN+ui;`y;x`>>o1No%vvHkF@g@ZMne_MBIXY*FxY|A$ocoUPQli{cZr>pl`xQz||8qiL37%80K+Ef9^cZ zV{`oT^&7ac-qwI`eZJ@Ig^Pi55q^<=jdnE|I86qRb|CeLlmPXx{bQGOA>^9JDk z7C0xbLIfd6ANwHfYT!JJ>n&Ub7-{0_dlT^9NBZU8A~%O$L?2rr?H+?8h`7bogZ;)& zfY<#3&l`d(Dc?tcw+GVS!o`qOj}oNyybxb|!NuUqIU<)kkTw@My)F{8M1GXZP~gnQ zbqubg^4$WwdcdiE>Ml3+-hO z;A9-UIQ^~x-YLM@^V_-kZH?qf24{i%kGB_Qw-D){cEN7|@V2>B^V~!J$MYkbVMu@6 z;3n0V@_QXP|HjqxvSj(uM7KoxRk#?E_)&fj0Oy|$UYz`{2i~B|J@0;83`zWUN7`=; zjz=dTLBEe9r3cb~A~?zX9t7T-z`5Z{=VvN)&l+_a4v)bxBhN&`6$1kNWX~<1tC}Yx})pQ`c0l^o?5GiPmG7Ux8GW|x3)Bg6n555&HhFs;l z9yre%yrlB6ef$+Tx4>Z>_CRv^D8DMCzfJ;#T=F~cA zcO2l;f%6ouLC+`q;|D{(dm+8^=j3MQi|stCQ$G3|_W|dp29I)yD_Lu(!vGU{d%rvC;dJz!>)kpR`Tno~M0_PH3ui)bMZ{x;un#o50!3>QOE`BozBHQ*fiOU#+zN-7_U=G~9<^M6Hd$^6cN z-o6iaY{WmC^*FUy=w*&80q_28K`Sr&?@ed;N2h_)y-+A6FTnr$i-eTtu76503 z!SnSS;kPa5&jrqPdGPx_aGs9xi}+1_!0&g!c{7Sfzsa%F9f9{baJG9D5rpoz;_S2^ z;MKr6#Nhe$h1<`yX{@;PXTLYZearOQ^ z>k;2Ro&erXNPis{Lz4Y%hlJE?nA3S3e&C-xugu#i)?TiHAnr%{;p>E*eETuZpB#YX z>Nhc7;$mRFadMsy_%XnF+TgKYi|emuLV*7Q&cT26yvyE)&z(@dHk5DD2cCEDhhT)T z6|SW6E&mAfb+{OEmG1`Nd|~jC%J&v{lzt3f@e}lexcZ@oj_VIbpy9lX^esP?Y|+k> z%XcVn8Vp`i`Dibv0_S@M&$rWvy_^8N`++n1ADI8aRhZEK@q31MA^pXFc3r;h{)KfM zTnxF&Hw8FL4PH|D27$*(2In&QA8*g>?{7x>qR*IXvOTXv+G)Tk_}ufR;L6pX)*`+9 z-@-1jeQ^Ak1)PU*ZT>|vzej+#3)269i-B_S?N1jF8Ko-vG`h1}~Sr48$jwNAa`E2)XQKs==w3|MB($*Tq|g^ojgXFhY_( zsNZ_vyohT%d{8;bUNH1}rA+4sj1iLfQ6IYjXNtjNJ>vQUxPIOdz!}O<_aY?mqdnIE z=TTg}@Uh~g^8E#PgOT2oAJIif;z$2rci{XGpZfg(pQ=sr5AFxvylqq7R{RVtg6|*1 zjH?d-=VgP3?po`+5#wMApMTwrpMXV3vV#MWHX1m~aIMCbG!DK2yxWj|5kD7;kR+F( zNVpw1FQX&;X;CV19DD!;I({(hv{?DkpNVUi90zyaE#;NqVqm^;?Q%Zg(}A|R9rj^&zfu6|=7a5@ZLQu)~4E&$Hm1~188P5|CBz?p=B_-0&5 z;~?E4nV<{v%V~G+Ye1%C`hK=Nr7F@^Kuz&fwf9|C9T*pCbJ`qk?>W`;(IB zjs3=bz!^O{<$VKJu72a&NMAW7H$V21R|2Q^{wePeTuJ=cPc|aG@_^j@?gHKsz!`90 z%4@>a3nNloKY0|`tU~(xW0hZT(E0Us#=%m+kF128aWN$6gYE76z}c)y@sjL$4Ddz* z=NMe)<0`;kT=}j8-Ze;{P#xs!mk((+?2O1lgL9(%kLPzi@Gd}l#kk!3*zX)_aF)pb zcz)La?*ydpJU%x+*7pG5EW>pXuB7_1d~1+?(1hIlxW8vHa9Rx>vE$^|1o&~l`Ln^( z_L2P@Pk#RdPPZD(H;G>@@cIB}sloI4>AKaSNR}`G_md2c0eNzMA+o+jyvKppYog{G z;WyjTPDf-X;4F#Y?Kh!jV)dM(B`i=!~fo zrdLm^nLVVaJ9y*K#yb|*fnKWr+V|!y8b4;iOq}ZPp+E7{c%J@jsX4 zlrcCxWjt`7XR~CYqQt_Wm5)f`FbJ%9gm>5yS0=>Ro@BZ(9 z@x>P(gGtBY#&)<4qzc`ect>+FAfE4I$&<&)7mj~MRFkJOokV4dgT%Dc`h zV1dr>kj7iX?DPs!S&C4>&P$1u73qX zc9Gp8v+Hvq%2bZawG+2KKR{ZvKBQrNXkY*M3hT3#QP>dVn@%^hv@NY|5~WeCj?z9v zdLyplLraQ^GYeab4#dC4)*}8cFWS54NC5y&fc|LLAES^89~5Pn5Y7c}M_BVn3+YmncINYP*THRuC@ z?Y9k!Kec5!%&KSqJs~N6V*Jo4<8Y35d=rjkSGTp*9*Y&dp8XGJ;`rJQeC_~;nGeNx z6*R3FX>*v?uB7y!nlc^cgf&hr^9!EvAbR%ycml9m@HK=+d}aaTQP2KwVbnu;#*Aso zG%xB{oW{qNfx8`2xn8c>&*tUZ*L-IW5(#q zCA`DH^vq4h)P28#cL-SDy1l8qdC3C4B#~~!o4~2sNEP!D!H!@#(JDAC4*cXyZR>2& zoapRxJncnvrh48Jq=#7@1qzkKF=N^?3mcp3jY$*&^`|H}US8@gLwvp^^Ghx{wAD7( zw=7N9*41U&+x=RlJ8Bp06HzW4fe5ImuBExXqiC;q@a|*9?0*f_2B({J^FUtzCq^?m#4_fh$Ea?~e<$Ar>uJvTQG} z+OD!uzbBrqZClj26yJ^TCLwi*O-*YfO5>a35zQ+5pvi=dn>|wt7+r1U57SAb&aq53 zNiTp5`yxa3tILf@@T>t78gJy3o>hx3I9h-WXoLg6b&l;&(la_c;NLOp&ydsd2DJkj z3|M&%25d7No<6jFR9#Dbrfyk>e4xV{g_Iuf!bF+=tE=S$IbF1ny+HX7TRqzgWwk># z^06KZJq#mPb7pyZF}f(uNel;!Jz6;DE;8lVy_>Z?sa$hihtQ10GcLwpN&!L$51KpL zs&_WyyT%PoEz8XaJPsspM(c2ZlqjZ^?8A{ZavLiH{5^J5<~JbxcczFMz6bVr!xrXs z8e~i!ZjHOCWf8s`u1-R4Q?2y$);g)jcR@wN4C=w2Y?SQ?!ozm%_ErhPe}}t3W1+ca z9qP&6+aLy^o{akDLz_s~ZP`KbgZ3=F8yeMo5M3Rwpd3S;aAezJ#2?n29~f0=Nw-Xc2v0fV7&$iXugxqcCjF|)2b-1(N1X39@MjS`q*AqW+IqI?8HBaE?b^m>(~HwH zJ<4)V`_>}^ZKO?&l?Hrd60#aGyQqHF+FF){MlL=&EU@I!n)ub09*NcA$YK2w_CL*j zljkP_vkJ$dbUwI~Bp8DDNV$hC54zt)_CdBk5;}Y@lwi=0O zk!PW);Jt6WWEygR z!&&501d4m56)Zo5)Y#n6;_VLTZniARqn&tvy8^Gp+AFP`_A1@3?<9qbHCF8S6Klut zcG4{kX;G>Sf4A7q(~b$Oyo{&&h*5EhVi#Mu=9Z4dZE&hOFjd>L|9c>%4~B0n;$wr- zSosKMG$h3xj^8r50UQDB1Xj&;Elo`v+h{x6*!%;ZAX)*AJv-VWB%=AY6D4O+w+Fd# z7wMmk21p-p-BClo6`5<`fEDpUj1>>+P5xU$3q};=Pb3;HO-W;iFMSG9_ruL zlI;@%l$();^f9^neIB1Me`^P|w7iW`CN-Xr9*%>UJcK@El}gX9DI*VWmxp1{Ex%(Y zb0DuqlcaNA+A7{ZC(K1~%4^J+#(I$hAE*5W&T7AtRBe4YX74}8@=70y`Qc@mI;fu8J3R$rFw zm@! z?s(4zvk$FiwGtc5%%7~{+R>jj8Pm`N7RUelp-Y+Ig^d{(j&Axl{EoU2Gdy@BFFu4; z+Z67Q>6M>k@zS#sx^1@T5@f>1GE95mF@R5>w?NlTP}4FQ)1VtHJvKDJ-{#r~YU|M* z!B395LzvpYhcEy*la)cHc0F^PT?(C$X|HQ*Y_+SIV0$w1 zOpj-wI5x3AcwN$w2c8-JAA4T{UsZAaKaU3iUQiaJprQtiiW??mgSbWIDJoGwgL@H4 zkSLoF+^QChs39)6Yuy!>R;|{m)v7Hjidy?CDpuRt)>f?`ST}5Ki~9e5&zU=S?!E6N zL6%>C{rm^+&3WgZGs`(MXU?7N&Vt)MedhQ{_!=BbE)M)~raGR}uQK&IvI!GxGbc_y z(@U6c&Jw(sy2V}x%x*@LAD=yAVj~u@AtJumKj2dwI{on36DMbmruwA zCE`Hrc7T^au$oS+$|MNYC5>txoJ=kQXBYU99i+1qht2R(8bHC3GXe{a7r{8O!Lm1J)^m? z!OJ+?$QeG_2uOSiqV;H~ZRW!X(`ATNbdk@!-^}T!G)~(O9UrQ^7X^o7zxGua$j4h3 zB{g;{KOLU)F6yKsd9R-i9YwyjhpmOP8GU@_{ikESL1V+{=9!^v#?GELjS+?waNp+X zQ=29V?cUNbev78-3JMo<|LHT%lsr%hANY9)A``Yv{r2QVDn0yzeofTxUs%$Tg&D8ZBq%+P*kHaE^1KTPb^Y=gbecvGTV+$`SuUf>@;9`7g9 z8n~ymsseb9j12FkX0o2K?ntix$&It{c3lQRAEgV?pOv*EZMq}0$P{Rv-uFWA%15Himm zZX}Q;To=h{;8@$5a+@(=WEhLd`Deg>td=4rX4x>EUSOw5|cbiRG(KY2Wdi33oHEODi(LwHJe7)=N z1L4Etm~It*N?AvdmWr@geVO$_6*LYPr8z*z4;wJO1l-lUJ5mMh;#FU(d?>eX@ zVKW(T+euLF@pW2o9dn&cc9_A#b=A>)#C;{M?q(tGuiz>)i!78eUjyQ=LenLsP{v@- znQ#;u>;e-gV=e$xhpW4J1ottx3eDpd%9zgp9VWQHTPR}&by1E&v%Q5f<_thbgQB}x zWT8UyqJ=W%OF+j;EUPV)G2PQRG(&KO7Rs2-039#5Ei9BVBLOu?%vW2e&|Gh!jClpn zB;i#n1N{U(i0GcgN-ve}+@Gi4Z z#tg-tqzeUCWuc780=h_W2U#d%ngKDELUV?NGUf+>E*9Ja7Rs2%0ksP5DGO!HVnFi* z_e%?9OfRg-{xNXf%~2LAl+T0^mof8z_LIf@Yk*(8FY`{Q<(VEr)K>q=3$XB@ z#WLn^K-*Tgs-blwQnf7Vv&Tv$djI(67&$^`(oZHBWF<^DNYLgrZ>mVIWo6OhOu99@ zvNiijYj#y@_RH4n>ejl|ZQ0c=3ww;d)J3xTg?;;^f}dmCel_~iO<58t#8JnzEGqH} zL}f8>{dNxpv2{e!8(`C0)|n*djp=i7{fZ#bdD#^?(jCxYx-1|A(uXQn6J!BH!4rd! zPyQ_{PZ)RPm`l&O`Uy-Y8Oi_W_Z`jJko~0hV_eW`h~OY0ViBqp=8m)0*DE5AUX zLVQnthN|lQ*qAw+Y;uy{WDKrq=rFU&yXbwbfm3kyp26 zuWswpwyLe}>Tkw&-D8!YL1F?vTL~_$)1(uE3v0#r@3btM5(@Fzt|m|)_e}I~>Z5#G zR+dr{OP=Tzk;H0AzV~Ab=PqQKmdMY^B8s{tW8_y`{pyxyyN(TX8T?J;YkbS1(l9g6 z1zCyKB&V;Il@-j-D^IXhg_>FO{JfC;wX59ovcJxit%@*Po{XXygI$)+y#PKX_GRNL zkeyx%?TFtW;VQx^Se%?FPxr43xL@57f4q|$DqIzARp|$ zAwNJ?eh#VybQrE8lg0f~p*s}N6@ZG&@qjc3rvp;DvmM=BM|TCF+l1q8K&u7fDFm9U zmjK-*xVHdlIsO8OoqK`#0FajBb3mHEZvZLpM(F(L7!(+u0z|i=!0ZX=S&8ouK)Zvs z$czT`j66LWkmi0eAkF;@K$`AZfY|jHnC}77bT0vyMIa)SDl z61NiPwBczNGZ6Q**$($^;uNC)7X0OczfMZJwL>zswLk*AC7?#Z&6{IL39@URrRLnI)oI-`G z&vM)!0j@x_@?(K0M;zY?95r*7Ky==26$m%f9BN$yX?}_;TACc=dU*?GBXWOo)d%=^ z%SrG!ZvrJT=y>G``r{Za1*6uuC!i&`3h<7J6aR1(VE`(4iorWG7KJM?#enqbU_jbh zO982!!jOhxn<~IKcR&Xq5v~PBB|948DUkZlmk5>Yj|ECFd5C8m|MdbaXgxR&7hD=xl3_d`qB z8CNZ?akyxm&c}5>uEn@^M^=x=^<7-o<9YzsKXDbIN*|A_4cEQ67U6meR}nH2b7bq( z-D%7AXn7~q+^el_wYpp_i@MT_U(_|?xb#EDIfhUqJKmS!R}mKd1!f*8C$=18a8nv2 zp9O&xmcKu>h!bL4W649B-Egfw&=PfYioglFbfUNcU+`?kd>#Ny>CK*qsjMAg@MHVZ zxjUMz^EzC3#kLS$u`QILoYwS(j&D(2DHNmrcK9-v^UaI(ww)I{RvK0k&8T%}fK!O> z;0~e*44oRD7gK~Sxfp{$wJE|vG!#pCj|J3KAf8j8yk`Q^jyadc&cjn0Nk43dAIwjn zv9fSmcVv_JKBYz63|7-}&L^h1P+!t99I>K1 z2$`9-Ivtzg`?RGIyU<#m~j$-jcIesv03Y{Tut1k;0U+5X-IX|VmGI9Px`B1Z8tkp9! zO#D(@?YH`KgOu|(d%8>7>?uQS_Jp+AZzi}|NQjU&`~HHv5I92G>=}zTdqNow)k#C5 zihEzc-b$)M*VgQ^<=ycs)O6nVwhPEqU8R7wM6?Bl{+PD6HLc^!s#XvdMC&-;q6*f& z$7hMxZI53cQ@G#b?{WZSAR(8T?^HLRF#Vq)KJDfSX*W+ux_N(GFS~lNBn{t(V|<(7 zN2LfcS5LV$o(5J~xNu`lATDS#*;q-*Lz*pcy)J{G06gC&d=smw31R2Jyatv?r$!$@ zOGZdbMo2p*#%W6j#i!A*13Vxv9glF-E_hFYaw&lEF>ufzc%4lw;|Wc- z&_)L&hzbfhP@ZcoKU30VzwuxshfGOpZ+!jHw@T)FE}0(+gx<~t*1huu%c7qh$woj# znj7T_#X47@Sgo}0L6H}p=lX&AAn96J=+|%+N#l;!Qr1|e;fJ^(_)g3akcTv^px5U$ z1aa}z)SR1JuC5AS6Soj7xK?38T7?NEZC{Vkc>P<(LgaY$V?N&ln|1{GWw9IRC<|X6 zaajzH$$~tj*$UU+a>#;f(`ssD5n%8p_fb&HzTSaN+ zRsJVZ;I&tNO{~Da^8b;yz~|;JaZo&t;HY8=Y4HdpikIzBv24BTLb1ok%IPci+8pJ~ zU6+HNFJAeRbv#i1Rfs#Ld|C>X4k48eA(hTJxZZT@IhVHzgCDH<-$(}SbQoFyrnaJ^ zAMCRqLKFpN5Fl*=yE}*#{tH~xZ4mfwPCTz5^u{m#4m^a3F`1EvuVRC79hF07c`bN& zl48QRJINi62&IDyBsUI-nB-U)RC0t=a)iP@kLLX#tVK+$zWi3!{ZYiN{_3j&#jX3} zf^FZrzaliW?oSG|p{@IIF(tAR1lE0W4khN49*lcVywhG|puNBZu-K|9LaHi4|BEKz z*q9`I6ELaslIWx$f@(Z5S&dnlR5pZEHiVM0S>0CGqpfdiA3FVj#&m5RErXxKOmnZ3 z@us)Bt!KVou>yMjDqx*h{Jz=z>L*oLd@(JHG{*G!TaXM?9|}#CywYViF|} zY4*VNbq zbzgqd&sucE9uB~Ot4C|y%C`EIt@WSCFimf;*m0QF?0ckqj|xF2Ffbefe{LvHpCRu> zG9sy6z*WF;fn1UKAt1%kaR}-_4WO=Of84vtslnaNoq!8-)`y4jByg|+N+qpRG zTpOzoU;mYIjde>ebB&ptm2wp#uu>F;Rscd;0SG0#V$3+4(bdcz)V6B! zTPVY17DR5^H@7V66?D(_tK0VL8ttK1}a1JFs13jaNFSY7WJ7znS7EIHRhW8dD8<*q3wVSYeJ=(KVNHP0jQfdbr(g+^4J4 z8VQNBTqJZP`tQmk5@v3t|BiBo1bGzO9hjS--5r~E(qo?z*%VYePWJJH zPS7}SH&89l!`1yiwY8iR*>_({UY6sa-171&GdEV5m`CR6NL+;@agz{^Yjl2NQcX?g zX{C~JKBX&?6xWfpt_RZY0t7eKI73fS>qsjVs3Wa}ur?Lsn+cAi(1bFw(1;v`vgnDB zjH+S*WNgHg!>M!dxJU*?wg6OsLFD*2X?wH3)G8Cz(X1^6%IzVp!93^=k|io+8Lo9P z4;nvN+#eO)WJ@F>Ayl}xE2pNWQv;(LBbLbc7W*wV6ok}J5Q;lVlbLkB(She^;>y8Q zAYUTe3s8}?E^UEaNu(_+-sx<%`^7A|n_q~`-*7fGcj;+Zgbs*R5Au+Pa_(pr z#}3%amdn6lOHAW1ds<9FT1-Om3J{v$POsNtH0yTuF8e*zq5wMCO(n#` z#l>gmY=7?W+>R&zE_Wp(q$MMiD4Clz>2#xHH0!oewl}4|WsX%?tZ=#jp$~*72Ulx47JT-@)Sjb{enOI5djQ z(FO95rWjX0yq9PQ+i3oC1!`*YKXWa(FQRP!-G{}|RzOI_K}f`rb0J~N%E9A~fTl0-k2%~=5SK0oN|^}O;L#mVF9FA_i;;I1s90?Z4 zF#50XtH`Zzzz+!=QUFQL&=pt~Oxpzurc+qI5C|^m|M51@W$5|ayuP%qzc&98QeQW1 z{;L0!Ha~j55!&o?wEAI*wb13ms@rY#53G+?FUJma)at1kZS|}o+Uf~q%&Sn@{|N34 z3uVlEfPO8wWfsC#Z?tvBg00>b+MuoebtJtut)4~HmcfE)t6wV6w`%qC(9@rc?W6x8 zeLc6H+`nyiqf+9TIh<>(nPCgVcFMH91pIKRzDNndxw2J6{D@56+~M- zA?@qm6&#gGNc;Nt1joLfkoNVAMf-X}8?@CgM}lk9>RB*t7c7pp`VR&AR;~U&%D?AU zv)pYypMU>v;aE5R{VK#2w0SzTx!Zha{QLiyzFs?e^!UlXzM`xm(dx^}6RqC&@PE8M zT7A;Pm)<|>;Zrr*>RCm!)f3Xb{-1(lUr$K;`hN+IeLW%V>luso^@KKPtLOImwQ2P% zn6?ZSM_WDC^8i|pt$yByd8_B<(lu-KeT8G)wE7I|15mJk=gWzZp2&qM2ENT%5trLr&buK#2 zr?}`i-)=~7Z7c!{rWS$4QHwA{p!MhlY#@tJ>&lkPBJ3ki*PlfghWOWwMQG3W?_7Ic zM;2l9eh20o=c}kJPuPUYq3zm)pKf@YaB5;aAcsw$;?yRv0;x?Pq;Cd$365_Dg!Ii| zZ^7}+fRMf!Fcy6?Ahbbk!v08bZEOMyrZ$1aQJXMApl@XpCUHREKWG?`r_JPkIoKB( zte2;l6SWS&Nr2Q*nC5Uij6fZQ^Bj)LK-ECs=5P-HQq%K+cyhzrgyhSExDL^m2P#f&0xOW( z1VZX4GzpH50wHx2P8J*;1w!g5Fcx(b2yIZCFdYf5jZI*|wB4{cY7=-$=XxDZn6!c3 z9(WjC=Z!)mbb6j}OaY{02WJ3MH{p8@cO4*g6K-+1`v9q%@KcB55vPGsxC>BjH{lm} z@_)unP@|B`Bn%&#FbTuU5+;F#rJF!;JpG?w62x(cngps%O#-Wrngl}XCh)Y{LQyp# zbra?Yj&1@WbrTqix(S3fs7aWM1lPtSuwdG1SR6G87YdZmO&HU%a>n6YEjUMfKf7A6 zweb^s=-3O{73O4|+QBo|-=^sd4w(;r_I~Wexi9s;;3CXoV1ZTr!m(WRhc%f!(qp=| zy&PFB*qVK$E&E7o_8~pQ@FBN*&s#vaFv5WaS(`G=wl1TQiMn2qhlr(%?61ZxeQ?*d zRgtHy+5210x!;^S!OzdCM2_y|ny+ZQt=R=_*?afME||4_d(q$4mc0$fps(06R}9zV zO!U?|JtKWd`#HFp{8z{FKEEwHzcu^fihZ#zvt@azwQdO{+Q#ChMp38T0q7RAMF zbr-kRz1VWj64U#_g%o03Ko_*tU(j0r6x5b|5$b(vjK92fBx8$N4C{1jpXIx?0LN(%btf**t@K#$;Um1 z+;hfquXI!$sDY{FUwr+|H!F7F?(37Wfj(aalf`<^1=~YcNxjWe7m=YA*zVmEhw8Pw z)P)=m&y(5zxH?agn9+(lFj5xQ`r;$2TgjA0VYG26VU3aqooUvW||+@fCNXqib?F z9+-ZY@Luh3cK})-I3Cunyh|M2n-2FrpgVf%~~=Ht%u75RJ^ z?%F-}kaJu!rU95%?lk3puJnl#F=nW@EnfE-!1xj6*zKtqea zl^lIuEGxAJ$*R|F&GW!-XFkJy2bs3p(F{Ny2Ae^+?_@YSwzD}F_g!+XwtfUp<{%G2 z%K(VnM^{@voqy$JW#`sPha0$*8jG%F@Jo)5=nu$z}I- zFT1@J<<|^O_Wy~#r*q93q%_5oX_eW84BfKW!hwLpVWD4!)FgbzT0js~dE{L(@h z^E*H{3+|5=!ro(uPV;hYc0!(Hfb==OBwJbVD>stHE=UV+fpSQEy5uG-;ng}s_9 z?xT7TsTY`HK)IL4<3YOt*?}&2{!Mu3VKJ7}Gi3%8D-wvO%(Ww>ZVKdGhEganwRrkt zfkpv(SfC>SJtRSqxk9l>y#^75^ZJCHK1hR|w?P{Hf$Qj+( zjqH7W=~*>-izN@NZ)*0@5G=GSpil9%$czB=g3uiTNTtjdV&$0OaL<6o$Twb6;xgoZ zspaT8hGZiKnCHaM8Tk|!L;mwBX5n+YGtaE;tVxwEFZRfavZ1x(56xj7v7Tj8%oZ|_ zCAh}p`UgcKL3gR>&KYaV+cSs7dj}tb4*rT&;(-*a5T|U)N*bgt7X8bLGSZRV031 z4S7hzSpT&yR2J+;Dn4=g^eJvT-9H1(1^eGwBHcYlNO#W>(#?ea*$OkUj&QiJ<&PBJ^|OtwNaD*MRXkcq>vGX(Uv6`eVl5?(9UM&9?xJqyZfpAx>BqXAM zlZ7)mLB-`ufXaf9%7ReNid)x1w!xxuayM*Sm-N0EB#70=Z&8KO7^1ZpyKC9+Xgw|m zq*6ZA;aGbWN89{4@{89Ohii5adoDfXASK)6x?qqgUp+n-PpB_nXYqPGGggnu!+Olk zBP-TMUw*}{squd~)wyb%>@5Oivbd^DLaIzc?d{>M;Hca}{}XZ?qPVnfWyH!@cjI=H z)3j#afz~%77@=v+z6E^UTVpVM6nn6=<(#GX!szk~!P9ciJEj@+=bhI2r83HseP^_i z^SDy|mS4-4-^|_~XQ(j^d|WURTYwC{tjBoTvhUnU+P1oPIEIB>EQ#>sz|=2otzQ^8 zNN_WwQcW-hJw^ZWk z5P7;MAg$vg0qrKZ!vXPQqy^?^KsyO^0wATE323n3I6$K~YHUZraRNedoPgLta0>zP zD`y2}v3vRoplt>B2B0g@-xry80cj3a0oq2M^8G{OD*(;bg5$T(6t_K~tpvBL!wm<- zPuUijy#eV^!@+>mgB<7RIDE6E(D7?ZTL^R(AUfW7JHlP(2vX)iKxuOr?%l8&nNR27 z-ovn-Wy}@07s?lMdYMN6_cp)9y}$Vr?gPvRxNjj}L)p^MyBR3EdABj;NU2z?K-{A9 zD}S}1lnmf6Lwt+&QQ@0v^usbGvu8Dq$ID@3b1jAfCh}dec7$%m4z^@t?j(F7o2+p< z*@P*L7!t_guvS!|_|cblW{`$+1peL|dwF-s?iB?IEOayjK1y^P0*gVWUR?gvj9 zHC$ewS^L|F(3($^#l~@>r8!03x!(e2HnKbZAbkhto3t`bio8N|K#7_|;Hx=bn6Hqy zCrzE+5P4f>-B8z1C}aK(h&8TIzIsC_W4b|{ ztb2u~r-d@62oURNp?uhcP)5G?$NF6;-;yMhk#A{f8XR`iG?0V@oO^ zg$M&mE6z7ve+EQry5pwPF8qRFNY5C9ug7ncEIDklCI-3d&i&`WQ3R66B0={z}NTH)w5b9W8 zLCOWfd-XVUXqo(@`J=f?1zlD!P1Nf<*0LY}Tz}+aghaD7AT0^o*P+1aXG|5hAAYN1 zQu5iC+^@VmWr)EabL3%;WDeeE;>UuJhtKH*#fRfgYHXg;G_A3{m(Tb@>WPyl%nX)K zGaK!Ulm$Ko%cedBA@wN;<@YHt*ViC(eV073Inu~I*N1adI-2YII~t5k;k7qA$BNh| zF-ycL!1_m8>pPeedx(C)LlI8_^LcIA`&+Y%Rt#%zR!-*g?u~I`K5qdy6BA&!wbk9$ zTE_`6d>Z-E>{HI&2`9jA?fqEYt@xDk#+Vywc{$ZuzjFDjkR4dEOE71)$dxc;xdn4( zw_wh!nlo2^^-j({Ue9t~AIa^C*~CSsz*_NDRv^;_J>($ho>=ihGr9oxUgnRu zZ!8`}Z&Q!*_m!OVGZO(9$v2cYGnWAFFW)*IV15C33-c-N1I@p1-%7sVJjm>V9BnIK zJl@V!0WOh`r|oE(01q}Zao@>Yjr-2#e%y0UiEWOu@Xa~!GXN&0#1`fCZf$3jZ&nMA z?Sv`xX7M#kxV_kVWRD^8X1O-V#8{5qjg?ry9Pf82j4}w|X^88Ym?ym!{cg;4UYnos zDY2@=w(Lr*!cLAA&|RmB-IQ2xK$2{w93e(*UCffbg6b)+>N@X5qsiK(29xtdF(!m@bHUtl;?KNhl+qY$r#deC>=-Mn1UB23u$@039Kn z_+r!5i7!Gr@x?~06JLaM;)~5*C%y>j#1~D5PJ9v4i7%QPo%kZ86JJLQjuT&mGUg=I zBhB9_7Rq2?LnpbU&l4XSq}Dw31aty^<{E{^qjm!lm8mHtQ;B!APRZ6iy zhA)|4ox?v-pb>aFQJ_(PCJ2;wvZ`g}+4TILZia53*aq|o=P#Fov8+AsW$warv+X_K zBfIRhlJ*F8;YS%B;`b09LWZ!$>>+#}f&M;@tXW2k9oq_i_I_;1+}CDrEGv=lHN=(6 z-+~}@DVg(G5-uK{#_bnEvMpcM_P&5GaVxOq=RH|d^Z*&g_qFG5 zE}&m^AN;BX5qGIItG?wci45tQuovk-z5)j_Tu2oy!TT#ckP(TeAyM7C6FO`xp3~VOcJMuXquLp4CUi=QN^ap+5wL)W6sAA$)7A z5IRonRh)~n7q<7fH9Ln&xex-F6D`QxvmwN`OL-T!KlbztKD~zb*80b(pr@dq$CDoZ z+|xnQ`>|{IC$6S4#=)gzp`;_Je5*xlD^V0z#Us%{4tS-qqoqMZ!6M6c$4Idz?GlLC z^Q;5Q!-1dREjU<#_Fb_o?3vUBD{|0&fYe1i2#~sE69C-f{dZzP~I1$UUkH3CvscZ$QE3+N1?o9l4b0#bLH&auYF zbx!I|(@-d`A8gC%!n-*j#qADA)1WJ-IG#PFX^e5W69H)&bn}#sizzgXOC0X^fV3Qc zaX6j^qG_ZcMdjTDkfyPP!<7NjG=@3ck$^Of2@c04B)aa5>(w;ACjhB?zR=;G2Q*vC z`&ak$Blolmp4^SA$n?g&S?G#zSNFUakk*Y-K$^y$fM($;Fe7oFDbQ5hb;W!)ne-_z zqw%|kc^3DchJ)ILa;#e~8T{SIdZ zH$9QhQW@Qe4>XU)6E>ZojR3?BfKIPYt6GcIY16T6s&T^9e13emI*nu1-}d;>9HZI8 z%M(k{D1{1?d<*=2F6M&=)AD=n`E7>3*2wRUJKET^kU$M}j`qQ@TjLM&*Ph8iMO=Hf zvFXuQhP&&|oYizzv#>0KB@~=2{^CM3+Qx6TU?iu=)Zcpn#pnqQGW^}n%Cu)8E!I(l zV4z$gmk;7Z2Flq+)VrqLRqvXRE-O1#a2$0elrcLaPI45QAr{KW+D*2%Lh-W+VO&a^V;udd+W% zuN?K7)oRddJ{MFQ%4?={)N5wW)oY$3&bg3kjM*oT4XpBcAe1G0aA<3X}oI% zH_hQLa=6PJ?s`Di2;Hp?_Xr@3j~=+j_XZ&CHQsSJ_Wr>VwbKA~F?ZsgmI(BmRgDUjuSSJXM&@9z7Tk@<7om)K0T4L~P2iB_TbTALsB~f4 zjev4B?v7@Kn4-=K-6T+FnxcIzj5R4~bF+)Eg08J+>`}0oz^>2?mkUIfTs~KTf$V@_b^Gvqb-V1_*6pJbXNOmnC65$i-b!#a;QH6PsMY?0D6YYD)jFuel$=&#>PRaw zAze=JL&05x+z`r`g@DLWXck$h<4XJx=)X-RW{O&ge=HCx@fg&(;48pxbtT_u*8l3t z)$2kVfg2ZHUHR|8)C4+ViF6K*QJNv&* zcKULF(_iZpluc6yddYM zU+f*uw%|>t%Zfeo@?)eH{CT(iuK4fY_KVgeA-e7NpJ>YYS1D}Vjed7M__h^@t4eci z`#nsaa(!v8ZNFbi8ZYAMKLp|niaM!(1*C(xA2}RXBq%Pr?f37(+wrzvrE5Ygng+N1 zej&WkZNIAo$KeO1d)?7--~+qvIf=#`hGUzX=^zBq;6!Kr03JH;4Ni&`6P;3?h9%O!r`?lsa+_y747JCP?74os8oZ30q3<128 z8IAkSW-{)%*El?bCv%Wve_(Y@w*9W@`ARufH{^*T99Ru^3S$(pY1&D(c{n0VDh}k5 ziqag*gsX67Yizi(s(ct0NJm!=Q!rfba3=mfpJ%KU+kT@5v95!2T-RtMHb$H%R^lAG zs`6?#Fnb;cW+R(|d%&COcvJ9oGN9YxreL}&4G{~?!T$jbdefa^OdAsxMaUvM0~C8V2z|0+0|R6@Ebn6c=lU_!d) zfel>OJP^_~4{YkX=7CT~w)oN{6v_+_7o(g45no!1k3EW45 z;}_rvWn_7h=H)a9QS)+}g|JY{;ez!N?B(0r6s!iWH_D%DQ}Ak}SzwCsR97KG&=ggt z1G0nhLXN9MS63if2`E-15KozFH%pD^reK!6z|`XD*8*{zm`e-`%n^XT5~wr7R2Z_w zwC(!X6kLRkBDZtE5!}6{8yNv;6QMf%f)Q6b6uDPOpM@tJiSo^J zd?ad(HwEW0pSl38{Y}ADl@;c!n5ASMOK^?HH6OM?gFnt1YzkgOW7*Ew>!nC1GWHr8 zv-UO$Q|M|Ys7f^xgmj~DKf&FM{1eiR!sO76!i4e-W$lJ%Iv(2}(6<@NVv0JHH9(+z zLs|4Y*UeDYc`-E(u<=rZSFJBK<{sXYWyKpwcb@jTIRlZHe&Rhi*oISG2hmgvLP|gazfj1dz z-7bfGwDukfNO7#?ileQsMSgQ{GGE;kv+eRF@4@dfKzhtc}(|8g6TU3Cw}bi>{! zP%uTH3MQlqCX|1euw~`{-+0U=eBL&?WvoW)dE@c%P)cr}t`dn4>B^^j0@8Xv63}tN zaX6r(1v(ngPC|DAAf=lLXt3ZoM5MUe0UaeA92ipEPXX;9bPEA(ClH4a_30~swiVnP zfWnQ(nuArqtcBPB0;!#&r*j(i)B#|a%b9@h)RjmJj_#9^-gl8wg)=G}OFAO|A$ z8`sXp<0^d5c}%RE;ldxj6pX;%AH;?aa&A11`o{lFTaZ~x)ahnhQ>UAdZb3d=aNmch z2t;)CORTQ@TXN$=Wx>{r*syzoY}lRu1Ye61dp6{7-cD@T<-WadxnUP`Jda_9<}u6~t@)l^F#ia%TR+0z zMJx8mzZ|YLn`7H9nC=Gi-DFNqWi7yb*8B%mxFc;+=&*zb~Y@zeYXt_Cbyq-0HWaFh(9ql z1vs7N;^>f0bDalBZRe$c=1F|v_Fb-C)whgaI67KYot9eaa9=pO)ee_|71wF0zJN51 z?E&euRCwG9_b=$Q)L2LNU55+zDsU1^^TMxQYkWTk)GB#?-r-&Yq|+>wBEg6caCHxbZe*zO7pKhCV_@(afo2;JWSwFuM&`8Z#ojRBn}5W5eZ0qNZK-FraYOLh@#YzCp^ zz0CyN`g_x|Q3+y}_W`4;9YzynPI^0Srcf%_mc9QSR_Ubt^( zM&MpzrsKY&IUV=GW)AK!&=xK3aZ(g`dY1)abmq!U;)C^~^fNGGsp zjC2BvkWOG-BsflB5z3gksAZZzo;jfT3nr^*=#4no@Tjfv;x>iLz?p00oaF5VBr2PF zk&yf)ZAY7XDMj6;!2Ie={d|E&fcpx8Mgh89puCe#9USYD%lp^>JA0qv&fcdehPLce zYq+!b50GLz#KFY`XP#>(#S-3N_Tclf@9d@s%}!9CXw zUk=+qr#W}{E@-bnw~-5uGq?EO7V%qAq+5{hTafRUlSR4-Vz>z;+_YTxGB*0Y=zP?0 zqc1isXK##e^sRM8;%HK0qwm8kiT5>!_yIXc^ZNFl%egqn-1X2=^a~o`#JajVtgEYg zAz7gLDC>Nb74H?7W?z7gavkGyIdpV+Tt|DLKpT2{Z*Ul5xV^XiBM^^`o|;3$#E@%m z@4aGJ=$WX0#zAa__5q~+BmHXi*}elvmw+`o9LK;FH`n2Ab-247j{1KZsTG;u0Q##y zJTF4`_Vxs%X=DN2gQo>%l*94R74?JZ#VOr6fbJGLo*|()dUWb*-|BEr0#aW)^q2d? zy4)qaTLV(w3P7619uCJ{Zkh%?Vx>C;kft%y;VuKDXjLCfYf(?*5MWdx>L%#%su_sJ>@}l zuif14g_?YKsVy9u3a}dW~ac^;dc+ix2T@N zS7`nWxR?15_l?ZQxc4@nt+Kk_gmmrLt%Cao(Gb#|zvR%Jzl3x=nXOTG^b*R*K3=xfLiuC_ zA>Gl-c3vo-j3AUT&moVr5ry)}2tpb28{ifQj;|GjGG-cDnx;$pr|IV2`KvaCF7BxTOk+wTgAe2S;}cm6&nywgCZ zeZWP46nB}!T@UD4p`!<&bdLb)%+6o>2EjVC|HYlZdF*L?O%CMS(igJlE@P;I||jxmwKb5YYYTBMVG)H}IRn z5#0@}g2}ZTm^Si%bvJN_^*y;8xVoak#8)%bPS69#r3^Vlzdp*l!Djik)+ZFyD*T|FX(Y)|Z9? z2Qj*9_~XDN1$tsBbt06IPJ|Nr?^t!lesn{vI{Wjw)}+7AEYD8jcLH?=quj|Jh9Xb} z6H)~e%BkS>y^~nqxOak1)FYuEsJPCqo2C8UQ0r#@vVJw1d)=&4Y0yGhVpSj^RUn~u zmn!taQia9Y_jv5V;_Nd0vyy-CHDR3lXFF;g)?F!U>MqW%ut!Pv!V%WNIqzLp6v*Iw zaN0B&VeMsT6vqhS8183#;HW^3F26^;;50{xEIig@{C6+}Hqe`SE&y2(Zn-Cp55m*k z@wCVs4=5|pNr3tZ$F+bs(N|<{1N1ts0`mawTA2z#W8@%@E+z}8t2qkyZt~5W?q(L? zp1`5P;VQuughv6mw`+^6!O#Pv`_%p(o%d*ueM%0TJz-`;?YO$x&5dW&9&^NG91Ye` zTRRS4c{ru9;qZwt#N2o09&k5Bj-DLn(8kxaGGjHkxDslkkv1nLWn-$Tk%aejKP3aZ zx}RS9_`2G;ohOcOg{!Vg9OhMBHB?r<%C}sQGx2hR3QIj`*H1lb*H0*8_?jzaT{g)(L*yy8;hg|bwOP{#0_?M(z%YoQFjl7lliFW4A-Jcx85j$eFld3XE@ zYvXeKGU4>ncKD?gXfUAuh_1lw28gQ)irnWD@T1*;^w)TLiN)4;VHQH)g*O+7HgF4p z_%1v^Ao?W1_s}qlAZ@A@Uqi$HKAb{Y{ms~5<9GCMN)s_)*2 zq_A%fFmHltHO0+^GUI9l38@hzq`jE8c_6#G_hYqP|MAwA3v2liJ=&7MiQ58D?k!bZ zCFd75;PDGwA1g3s(h?KOQQ|hkqEhQYQQ2|jE-Ft@>8Pk-wCS^FWzT4wI2$L?*VLSF zTH{0j#W;Vwu^F4K0U+zMiQ7?HD0|P*lA~e^MRW8yu+bbH*6AFrVK(YrHV9=z411eR zH(fGz;xF$g-6i|r;$OWxaPF%=>VYgxtT}GRtj5`=*Peb{bK}$*$DP$IefMzA2G-R+kQ$(Qu+n^*Fm%Wj5-|&o60^uSAVMfFG=y(L6K9N2B1k>&Klqo3|UZgHIt@ zNb?rh)7nnP8y%g(n(#;p$BBo?6bNO^kV#Eb8u9B=Twi0r`lR#_ly1gxvt~|orOl!8 zArsFy0~}$foj85!j3G@8-FlsfUXuHIYbU{k4=F8WU#OTN4KqW#BH_n@W>%>&?DxVjWM;#J<_Y>6lSQBj>{Z)~J%6Ztd>UX$)5Z8)d=hdsp7hk? zAs6307)TT4g1|g3(u7=x>Q6Y6aV}Ick8AG-hu#))&9YpiiKay-CCuR-j~)F{$aRzD zB2AQwbvESM>!>1(3{r{=FXK4JFoz2-{r-%Qi>GxnkS5ASyBTu5b3om&kn4EM zMVcrVKi?H{&A4+1^oD^n=2|Y&M7iiThFp)2*#wm?;NoY`8Ps9*E!&pBhFovo+Y?42 z;Cjn)ktUiJyXTN=+R_U^8E}1VxkwY`+A6|Tee$!Y=K)uVHNK>Ya?vdg(~4R)&Sx`_ zCd#!9Fd8GeICtl&b`okSl684zXOMiE?cp;fmUg*_MkmQLY^#T=;yI0I>- zTzq>C(~9b=)N+v~%C&2RE2=NL#SEm0a_t68m{wF@Q!N*1z=eUOWaHUiGqsAR# zip@h;HJmGG=jpwJRw|xeSI@hpyBBx+W`&-9qxJL?Zl6Yt`z1C%Ly%^d)Z4&t53799 znSZVKRWg$>XXDZ-wf|WBJF09c%b?*WHXhO_?mde!j9G|!)A5l|Y?@Nn0SdSkJ0x@u zv3iJUZHqgKZMIr=`RtIo#>PXMK=PWyGU1{nCs+OQvUwrbF_w!o;PTQMDqOTe>6HTj9xPr9i z58wHMkn1hWMVe?@oHI?Qf^r>PUh-PV^>52XnrK?pk+hC!Zb7pM^fZ8uDgtSuT*H7# zr-B^5^xEQ=L$2YLi!@QL;lf4Vz&3ZGzzw0%a*-y=#h3APst@jzVc~w+*Tb}0Ef;At z*AG|>5RAvu`yRlgQ?wO~=e&*HeLvtaW})RGO*HjAg)3+U_<<0}XPM<94Y=64OU@9A zy>L&b_QpMf>!<_%MgxFQGO7%#s8~;o*~=8mxk~u7F5Pws#V&RI%^0-oFcdZf4XpxP z#F8e+vy$wCKdPO8mLruK8Y~xSv>ew0!-9nQc`2HoGbltYSS{$%sb<_+p|+jeT!KFc zB}cGa!z7+s{7x&TjP1ynT3qU$yd8;|&sI2$mZEuL$q{wO@X5Zo)UHxr8Uo4x({c%o zJnBP1OHdgio`W=={eaCE&o-7zXoR~e8qbN7G*aAYu^S~T^s&M)WQx-8kVQbQqP*T3mB9JC%O`7L} zfeG!;HT!)G6B}@CXSqldWwgv3cOk}qzo-K?pWSFc>WrNyju`OWKwMVx zSeeE=jSY2CJ`}$L453v>eRqc$;>qW5VACmIJ~nmAr-F-Yabf~#R6Z3NvtoSt93k5 zaUyv>JH}$dwtTjSX-e_1+n{}rKI)4eh2QBE^~(Hc2&iwd@sK8{&)Ra21}1E|x0oNk z5~lHlaakk(SmMVf$12+Xngldr{n3NF?&(tyjew8sfo`*J>BXy)^d zi{UsY=Z!WBFvT{HJ6TL9=Yu>pFEB)y|!ki!@QL3Bcsj&Qq3)GyxYtgcEV))6SdVqIO85dj1rcIryb-Nk<@i z)A6fdDsB?QN>rB1I9%v84cIt%UTotj17-^#l}3D|$|`w-tOeG#?#f}Zh(R$!tiLe_ z&xhbre}nZS41vGFyb6u;H$Dz96exCc#6tt}^9hhzuJNFnfnWWi<-#HX?owgQ*4AN- z0Qc1Um~z7tg%rb7<|AeeEPGH2O)DtHpnydF2Bo0n8Be1t#R)cME&C1;F8;U&X(Fcu>(DTD?=5K} zNYg3C0TOfQN8R9yYOBDT2ID~>4Ycg_Xbr%mQ}l~T`#S}4H9%fjX9Lnw0v0>%%*>)dOVS2)B+dAe+Y%U^0Q0$x$CzTo6Vx$A$^2;hQs08q3_%_1K^RxqDz~wv zP_BJR?1JB;H36GWmEg{tFTDPidld40wv&bC0p4*jG`SwFC*5Hs&^*sOE{0QG%s1GWPnDSY>=lb4 zObNqEz(^H?RqY0MGtC3`T#8GA-d)Y&# zQ}^+1BRSpGgad4zPuDzq?SkVM9o62mgyv~4<}+Q)({0RWO3Y077GNHdazQ?+H&L>y zfW67pDA5JpYWIa(;AsbMzLhb|a9M?+G=ZEo=0MJeF+mpsITrvEl{3fSLpk%UCJeru zzYBCabqMZUk@f63Z{Mq0_bnU8aMGz&yyIf{u1F(Tzp*i@iLT$sF{Y_eQ)gyt#U zaWQ<)mFpUt=kH0mx}gRzuDNYOW^eDiaxrdyB0->o->DV%U;GiS1igxYOE|6TO+s;W`%N=PpjL;lo%idy&(RKzR zM&@bqrScFr$+I29pNrq=6d9<~QH!p*Uh^Y1s=Nv~Xc6(K#%}{*p~Lt+$c4a$_W7T; zAM|${4@P^+@pTgVT0$dUTsg*n7!(s&Hex74)y`#*Q5XX4FdstWw8OH6T=e_H;A@Ab zBc0ldcU-y0mM<0>ICHkVm=Sa}{4*=nizro4;Ix6wQG^G*vcHHcv8i#NbAG-Ho-_6WK&J2 ztl2d?|K|MrG|!|x-o`_kXlr6gRbTZabRp0e)gd%aU(7*XF0Ws{1ayJ#m&)V&u}Y^? z&+?9o;S#5>R-5Nbr0lgQ`*1wp_DUhMwkw(M7l40#$N^E91_O7N{8^Q_XSu}>|HH~S_uP8y6WFPA3`DPsrL?^?u_ zPTkGBCTp&7HQ_^BifdSkh^@O$xHc7zl)2@#cMng>`Ff#|_-)MBMdaMJCUTxOeHykY zof#K&uK^nMbs}e;v&cLh$LvY)ts+<>m6^j4mHC>?hHs%)1Bf z|Er`l(BMJC*aA7<;N-lEEyWE|it|wl#x{CnQl|pD-DHvB?F0T|f zg07>s!}gj^iS^KA&5aSA-nu3_J$*t`b6lZ_^^9#+8@Llg7=U>&SDsMQ9fAj*H=Dr_)Kc6gMZ@&aI$Jr*;tflxgm<(ZXbH zxlL%E=N%Wrtr0nM4Qr=uR34A~-*FLp0o}7io$(eEG zpX0s}%DT^ywDiadMpL=PLD%8mAv7(ia3=Kjh%}ypkVG1?qHN~$lV(ns zI<;};aZ{Tn&YV7L`lROK)0$?@o-n0&R`cwJrs>5)rZqMf4=pV%=MIYFf|pbMOdpc6 z;aMx6+eJPLktybKCsqszzDIp0FzM7jxEJ7R`u8)BYYxSu#`tOlutKAwG}V>T!tX@P zcH9Ps@iQof(B7N#u7UC}=2~DX@mFblKU`{HWY*QDPCvYQxXik0E#*v2IYxIG6ys}| zx=<~vWfwBsf_|BGQD~f&DUpz?f50Grec$*lU^>$B-9j@r6>9k|*P6E8LZiOR6vL-| z!|GxyCN06&g?RE2U1&U_i{YiB3-$H|Gi;dX;vU3obup}3;#3U5n~*vsuNYtQ7$`xx zSZ664t_QGbQO-E+wGXgDqi;Ys;+8=%zT_#NMwC20x8+M-Xd;pixdxHd1z++%05+Xk zh&$WY4X2+oIoZDCeI(_#uOB$c??8iz@B_%FOKJrqzYxDRWzrIS$>ZfA)(SKp%DDn- z!&rKukycPqS|*ae&q=V&lwdq2OpE*63)3 zB84i)_Sch1OYn8^ATUvjr16L@%Bn;cLZiAUs}Nm080w--y(Gmj`hVEe39BwfZKb+U z8ebO=fhO86Z0ghn#yqJDp;2An_%#N__`0CPR2R8@HnuvUak`*HLN3;nF!;LoG0>q! z`fA)kUnJYb!$RY?iyu2({03!b__64sztzPztWFYqUHk-?s4g@f(Z$f=q6?u>T@0-j zUHl}}#ZdM26vODpZY_z(O?7b>Ff6Uo__}xm*r+aS>eNNKu2~Wq)df}rF(}5@1tq4s z*h?sao8K;kCZdawi@jqQd|f;Wbf}BmKEPu_b9*Z69UgVM*lin)_fgTs?p7C{vpPxe zb@5YRqPoy{L>E|(L>nbEstb%+(SQDFs0)0Emq9Uveqd84th)Gn0&{3FpK4H=+ly6S z8jr89$3Yg=m(3ydh0~P!;JMJKzAChCD8|Z@|7 z#Hkp9_t?}4t1kWlOeKCPjjxNRfQ{z3}Mm|d|f;TOjH*dkLUs(KJA#$s4nmpKs)was0*wEVNeXAu_e4~ zP+i;u3^k@SzAhF48`XtPow~qU5$Zx{R2Nvk!Jrsl7nGRlB7grbG)@<+%ORJ>%eWc* zcJVxZr&FwrY!`bSyW`4ayLdrp{C4rY(?!|#c!=;kB-SN$5p==0_Gi)(d|fOCCaMdK zM|1(7pSlnl)dk)QsEfsj*|v+}WfG@i2tHs_C#<^Q%Q;J{G`=og1U9M*n>uwdyh?N- zG^&f?s&~csx}d~V7kdE;gKwjR#_56*3Ay$OSpfOEcnQDLsYf8g8mt=Jb-S0ACw1|% z&^&>{Zf@gw$?4)^l%3%v(Zx>?598X1EE0TO{1O{I%shu-l%+dL#B$Ts8kN{Z!uKbQhYt?V zK{MPuFEp$h4A(|zi1|2y={J~o4O&}9BrvBZFgGVKe@fz-H%)1Fpx1Hl$ z$0sm9OkiF}U{(Rc7k|}`U*}%|Hk~>F_X1p*SAX$|)iUaQCEi>{04p?7=PU7kK|TAJ zGSqbbi^!Of3)9`DLL| zEtgZr#wfS>MYv@C_BTeBIh@ekpcL%2U#TerC?fGiaPt$(%3OrmO^M;DHvDCby$?k^C4fy zlXPl2?%lBtq~ExLdC5{N6`E&x$HnlvE5&oR6t7Du-UR{UdYjR@(0w-tqDS+~MKUc{ zO-KSL&`wvtLgUKC*h8*ZZ{?Ni4bX-4C-;iY-w2JoT>@fw!9SENUK6Ljg+ zxwuneKf3Yq`ALbrB{a-uAh9=H%=2u_Z;HfLfq-!>U}jucnpa{>T_r}(A`HI7gvLpX zv4>pMAqybCKK~ZK)2X%;S2y%Ee|Yt<6O-loozOfCn!Yxk-%7axi?kOMw)Ph3j49J6 zPLPv#=_insE2W(qr3DP_;hTePy{w11)QmF)OStWwGjZ%;6pA zLOs~Z%2IPK3MchPy{3xcW^NRNH}Od^Ou6jHP%b26M!Nh2Ic!W|E{|Y*ef?ST+z0nS zOCj`A%S9S}`f@ZLZ&kxzB%YqQGc3Mp>bQW%m=7!$X*8bh+U*FfV)jX3rYA6$MKD87 zoHa`#!0laJX?LQOVl`gu>9<^@QQWFXJf!Ydrt`KRi_NPLl z{b{9I7sdD%oBC4wvj_AUhQR*NE(ndYKWwWZ*RfG9&tkt1PMvk_ikj6hw9BblPJcG= zuR`+z@3IMO%2=fz|XMpK}Ct3=>?R*Gq zI&~E8-EeJL@lAhQcD5aieeDUX&}iGKuEG~TqnK*(?R**?y-(HYZCNQa{9el@Hj)*tww!Gpjulc{ z&PP0q>xNH))co4=k;K!FcU;|XxV>8Ak=laKUNU?X))tIZj6z(JL#-_ssi=)%hMQqA zOqqEZ(feFO%>uy$HKD{CBvQdNCoqpEFsl-n%}~KvH#EMU{3>r40!zZWAvCUTP(vZt!BH;Hl6(x#bc(gH z5A^;0&j(FT)(t8;ovK8w><)7L8yobivOmRAYQ)}EF>cNSo`VR(q}x#;3y=z?+G{7*sR=Ii1M{Eq5E;}Kn84w~T$ zr;Af;%*3iL?oVJ|1BQ}UE?@Gj3{l_4rbWry^Cg5vC2wb(72`{u@=?i;2NZ@t@+h!; zhc4Vd$nu9=4Iv94U-A$%ayUSq=Nl{dQfQvyUFb0D?j%2OxT5|cl7AW*VO%%-+Y(0n z4W^}~m=ZjezdI@qz4`u2XkO>t#`8~Cieqgl{wby4X?A=! zJ?JY-7%2tQ(o&2F9?RdL6ks+&<4VD}Laqa&TwWg3M*tf|SjJZzU)+ZMn2+9I@9Nij}}@ zJKOs=h)2E3D(ov^@GuqS=BJ2Vq#>R|73T4uj$taztuaiMxh{&q&X+GCCyj?`T;UB! z=@@=hd9`^>XqX>{r4brpcH4t@4Io7roxq%*z&x73{62x%hEApp8uN(>%&!udL3;%} zfn7Z_fq4O#EkLGH_3bK$ETSXrRy(w-6=gEgE;MRa@fInb3%M+2ICO{LVXFDtVtm_6 z$!kl=KhiEVuBEV6gpHz42tnJNI9zpM+!x73v34rOQPmZF?XAZNzaurXL9_@!W4T8fzM^+wu-#+8C` zgcDY{DzrLV|4(%wU8egkGoi=n$K#Wl7R-BT<@DN4b(Ht!RZg4DmYG=!t0 z5KLXmRl|oa1lnPLDm1QKl2gY8BjE+#x9KT)4(d1_1A#5R&Vx8a_Dq@9&Boq7uQzBY!9q+EeTIt8U!`@TCq(!RV_6Wb_7 ziJgcvn9EN$!%c#3k$OuG2LjK!!%C}6m30g|O zNR4`Yoz$qfH@NwJA`H_n#TqpWX)u?!Y=O+Uu-MWN5w%(@mr5-E*s0Jsi81z&EC1MO zkw{}lh=OCMKY#t67quSvqs^NN&C{qJ{cT>0oNej0zoLp#EZ3DN7vuU>aZoP5rLg&g z@4_5A)p(>`*nI(;As*XOhGV@J;*uO{OTlQ^fEcFQY!|^)V`S-X$Z5z`T{_hKHG-+a z>Z8dq4Ax5shN&|=vcLS18y+BZ9U*_@rkIfl%$dNj6=*5^w$oqAeiWWTL^5`2%g(lg zaX-4OLL+Ub8mF2Jj$taLxAtkuK@o8I?TcmC+LC|lRA^jnq0U0C{9~sBq!c_Mo@1xC zoLrAgQWkz~*<5Jm1HFml4_=0=EfrZs4M?%JJP1)RuGzbSMS@>j*fhf0!m(40hqZ;@ zVQ1JP71S0St!NHGT#`enE!9|eu}=(BZK|Ufta#zd4xg*k+%1@(CcJI)%=A?6yBXNF25$&a-k+vf#_ zST3yz`A15H#?=JsBjn0IQaVsd!4bFoBc)pj%|W;aZxaI}mbQDry6C&(Bc&%CD8euU zQ>?0cF@a71V?UHfCZ~?;j>GV@9gpmCM)r zHj-9}*|2yk-i#uZzKwLwU!``!>3h(D-kogIy^;x1|`IVky2xDHzw7 zJ#v+TX=y1A22B|JQV5MJ1>*|2VsGN!JN3?z!$(2g6RSa|WVXIt+lk*V?;hFe-Ue8q(cZkOTxz+GQTx1Wsu(dSR~bG=iPJ(Ev&CS&jbKQ_FcUf45r37-w;Q`j zevZO3C{a8#n;+VZs%q(%g+}cL=J5xE&c~EV4m}KJ_8Ao8w@T(vYr={1%Yf^-w z>yxD@7n<9_9h73IE5%q_ilHf%Vo#KUah-i{`SEH&VhwS^AZuY|8ev#A#JJ58B7DRmv%*41-d}d2gl|m^ZS{~MknAxeNQxm+H zhq;)y9tAYQu$08CXFeQ3OpS0wd%XY0-kZQjTGaXf%_P8Zj1W#yjsb=nVQz*ICg~)d zq?t~-Np~hQh%}j`XC{zIh8zr_tGK!=o`|kD9;kTV_l*kP*XqxET`y2kS(VFUSLOfy ze5;_;XLG>rw&EsWxf6AAv~GU#wX%nnZ;S|Z1yDFIx@C(JhtIlIALoFurjr+DY)%ZQ%$x! zF*P!~ZM-rO%Y!{TXSYp^Y@Z2-GgE06c4X|bxtXRhmy5HUi4sT9`YudOO^i(J+A-1u z?6&c%D$NXQW^}wVIXk{>JeDczItm#~4r*#NcGl~l#wyLUI6gUBnVuYpWw$zn z)8pHBG}G`zWm_{~Gdres@0yxvV!RHLo;C@)bz~-1YU{=`w`*5rdbCN{$?@5(bK9Ef zz~$q+b~iIB&ik@nax=GeIMB|0DCCg|n~=Dwot2rHk?j?0A+COQd}kus$vMspa*P=F z>P~tz>(zH${pjq~yApAaPEAZmH^IJf@3t?Gx#GCPUwPfpabY^svH7A@dwY3sbwj|l zox}c2t&SBP9eSa+A^cD}Q%G;lb{OtV^Pq#v+tZr{rY5`mk!;njcC52*t~jTCdAeg= zEQo^;hOo2YNQ2i`>GgESe1Pi9UE#@l^IK1MxcB2=su+TMyOZCa58;OwG|-S_4t8Y| zFsl}ZIY;bO9-rJc)zPuG)8^J@q2ZgJoC`5cgiMZYmiN!$K33^cWx#V9wl|;u7J{#9 zx?Ha8*fBCWHc^>g*4~^{l*{F=tFG$d$gfJDdoxuo50<*hT{|kHmuF^n@uxc}wLHP* z3tw5>F*iFlwR`fcX@4!7dnb78p|U8pPIRC_>C!a^6+C`$0=BASOL{ZnX41BNK5JEp zJh*y(Z5?UL4;s z8S~MGIYW@`f@&?SCUB;tCA{K&#wqZnN+i)q3-fL(%!zJPWi<% zPgA%?%|>-B1iKmD?5OIj;_S%i<(o#PXQaNzXWXRWPA`O}JRm2*eAel?U9$_qtJ(I7 z-K<+#7&zUzsWdWkdB@5Q=PuM(pYdx(bP#np6C6ohwH*us4P8Q}ntvmr`Ws*tgVL+z z*sP0K1q@nn^upb0u0soh)0>5W>bjxQJo9VCVGoXaf)5zI$+?G!<2!eid9i&N!NT}x*=<1S=pJfc zHo9YEx;#6LTRhXz?NU6O+LvKB`Fio})HKgvXv_RW=P=d2n>Q8~3LBqe?5tu%$z5fv z2{Bj@n$au(6YVeTAM)G+uZ1kP5L{K0pnG7O%E(w%s*7o-ZQ55XfTqejO#oJzsVVZ8 z2R1rqs(o3PyHTVtJKeEqaBgx^=L%PQyD2?8#bK}pWD3j=$0Dn0qwSd}T$IhTeb&&5 zht-fVOHX1GR^9b*S}3HeV_)GM9tlRdJTfy=nVvis@t;Ze`+yLp{lC;s`{jG=_HOza6w10b^b%a$vjI6zN(Nu3tG}WthheT7;90uaC zI8#&aax{%BFf~<&xV^o8jvh3!d3GyaS3PLF4NPHkxb`^x|N3)Z=zW4}#bJGdz{`K1JSo>HQ<_%P7J22tW=EI1e2j7T?(wnN9UbFSGiBSB5!lu~<;Q$- zV5TzbHe!WcWFJey2*b?l=DzYk6$RVR+}6B@mt@e$S9W;s-?~4pogr?ghEE1x*qJF0 z^hEr(*{QP28N2NqG5OfMXLoJ8D&(z&RA)fw@_@$?rQV+CReO8qLmHb@mSsg(uvJ;KamqN5nP$foVW9HR zB#d%-NScMEHXx2IBDb%2NaG07tIHqWFx)&>#ZFu79{Nz0&COKG+t_+N+ktwiu@ymN zi}kM7Sgh)$%q%4w8{W+9_U-}iYur*{q`Gc(yrw1*(TbH?WMPMMnGKq=@oiLV>zasG zBw?X}a5=FGPopcUe}&s3oY%X;sLq;cz!*{P8mw%GDamg;x_W8_kYXXPG0WLW_Ofql z1n1VvtNjRGttW^}P5C9Sb(z8ixxVZLy&b&RzD8toO9w%_y;#W+ZK181@M1b!NEbRc z)pXl7Kt$fFsdQt)0tPS10jaWPd*}FAN8Ruvri#kC9<1E7+=H*|NT=G%g_)5nZ5wHi zICPhmJL}$X6R>bE^02FqlY#@WZ4;I1TC?=5Krx>;Se=iS?i zzKGy0O%tw8x6hCLy^J;D>F#MqYi8@*&Rq}FUB&xe$d~R*`*qM7cKv&zzhb_%%?U*{ zofi=b|E>QdxvIu|vQrPu`;5kX?dgY#CD4Y-pJmwkKE+apD^5FP9R1#OoQqIprf{%qp8q86|IpV8(BXfMq$Zuz7dt=~` z#ti!5ba;MT(p+!DxFp`8Zw`qzbz0sAuL-)xh6YVzg8G(Vd$3vlh_Vf$sRR^NWm|Px ze1a|EjT*P7SKFYX$~HE8mVhbrwVTPFCE%Ffn}GA&EcgU}efG>R{<-W~Bt_dGd*)v$ zrb*aG-bl`#g)b<3*4r?97J~Lx%QTgFrDqd)D~ngzQ<;OHqxO zls!v$H)-l?vS+cmu?LB;+1%KJL+f&5wf1^Vb0}iHs=t++N=4Nqq(t#mLp!@H;2TflY+=RF{8E6cp7K47J6H04`w*lY&AWM&;SO5 z$;D^17V3-}N?a)K6=vW-L^4{vvS^(_-Z*NS%DuHol2GX`kR*v@HT)|NBCAo;(S)o< zjSh%O-__tCy--cx#S9jIA&4at$eW-yWAhdXDE741z#2zg-Xf`Cr%O6By>)qu1o;0m zV~uzWae0de*L~cUNY*VeZ;^mBRHG3`AvtdmN=fMU)UfN{3$F!h)oT-oQpYH<7B+C( z6HruzVqV@N;f=aR>s;x1d5fm81VVz_*+kwV0d18{BD^~5bBOX>QZ`{BOwJpsU*%kgo`LxJRnB;4syQTe6peMun#N?V9s5up!k3%oN%2EQ zgMZ?Vdvf2Rn)i(nxr)J8tirFb71Nt7rJ>5CubQB;ab3q}y2oeqJsK@VH3AQD^UV}D zQJ6CCr#AZ@eR5xTF$rR1V-<2IQ&<1*46VJ~_=uC?RW-+<%s&Aj0&w=KHLI6KJ}XwN zUAKJoDsC8yJml9E%a^ZRyLRc)Rp+ceXWc5*UAlj6uYDH{|N51gO;@(2#t+b;W;)i4 z(;Q~6thm28s*zvLyfFC7|J?uJn&Z#(^q$u)O1%=e=iTp)H`9@l9jSvm&x%}UD!3~t z*Ze*>0!>c@*U?cA*UIzX*25jVJQnW0CgJ|jB;22xgtJ?EYy|F~j)eZT>NcOqCkbwG zlW+$%33qUlaECPs_sAyUj&2feX_IivnuI&GNw_ncgj?Pu-0CLb)-?%tUXySgO~Q3I z3D?&oT&_vDLX&W%CgC+Nc7yN>|o9g~KG++$Gl5y*;i_~oI){8Oet9e~8yA2R9}EFA z?%_f{sGDEG{Sz=ZcsTVVI4OQ?S(MV};m8t+Ge`C|kw z4&Up5J96Ka)JG`#B;h-py6<|JU)#_4{=Epe`>22B;>P$60q%_+=EL?g9^Z?B`vmpF z`!&Y52Dmw3-c0#8Wl;kC{u8*{sJ}_~#PdlS@4r%a3ow}jT2jxV?3;jZ6h^;+`uh%a z_)KpE@>W$ZcInspB`v8OC1}^?qfQTruPy`TxgIX$`#Sm6G5fCp=JOG_xcPlPaQ_L+ z)FZ0x#_^xpeGV}1@^DG~`~u)U4b0|)8sqzaz+DMU_TZM(4=D#h!MOhE;)ng(fT8FU z(yz{bET`@yZmb&8tyO%ye)&Z7k^wzGno}p92h8Sre0BOya1$PeU+q)1)4>yLIln$J z4z6w-;)AyW_wV)X*74t&z}*4N!H2b^&Z0WPL`rQc3HzROy{rfa< z_X6|5M>WQGDRAEcX6>U}QYDHsZydfw2<)ZQZ#}v(KF!Cqz`Ty~LCPX9#^GxL-xsL= z@-dC^eI9(j0_MHPwxoVb*(bFm7T-O)^w?Ua_({;~6+3tyi={nJiy_>$&B z^6`FPZm0a7vZ%p)w4B%(p4Oq9oyaFZljU{ktC17~jW% z`zkQcISZSAHvTa)94Eg|WqyyR{&mY8KE-b#KS%r~-8K9dV9sCR;1s_ZzB;=ldvrB0 zH+wii$Jr0{?^a-*vJ&1~mE6C7p?`-{|FYE!_wPPnR;^jMe^bD`+`}dH?-TUzL%>|U zwk7pHlt%Pha!yO?dFvML-!FkV?c9a?R{`b*50}(G(eE9=>|EcH`VA$if1=-Bk8Mf) z>v;?J??=EKcmBftdmJ!N_i&B+cQY`f8(LC7r6l!F{P%n6ujyF0f8PM+(DcIn%LDTS z57(%FF9l|}vnBOiN>cxBqJO`l{@L9N_wQ%GoRnF(elKS^r z`uAt*U){HG|Na}8bF&NgZw{E7JX})$J_-Nb0?f4+psO|}_fPaYjQaQG7Vh6c{Vk~h ziaw3>%QJy_zlTfepXB2kz&wATC3RRnxqqVH$<%+ouyFrQyb!;MvQYnC3CtHfTvGpT z0m+@fykQWXP)zQh==WIazh7Foe`|-xOHmf;-@AbMPY;*WzxPt{Kft_WOH1nB$F*=l z+M{Ca$A@r)ufMn@)mL`y9!2AE_Cx+;=cO&FZ4`avN5t8WOL_hhVE*9Y!aQMJyl@S0 zt4CT=Z>Ri)vN+We+rN#_@8GR1smG1FcEh+fCLX*AnD=-%LC5t^Y;xTJVS{>weUym5PDd`|-IGr)B3Am>C$>Ywrvuc3Z!yfHpqhW-Lzj=j7k zb;$&@OSQ$0_uatVM*WqO4qqGijed1`2F=IPDe|!teRxgt7Mr)|1m+SC7tU`TKKZB9 zz&xV~d@lgz9rgI?{3hisZUyG6^>B53s=UhWz&zmLTKPMUPnC~2Wmik;9Ev{SIO^hk z`Fk5Zi~;hG@$=T1nc#2zR6F&bYh&mqzAAz5s`_^8Ar z3g9UE=-)W`IEsp&3ucZS;FT>YUGyG@?^O`uHM?6<>1!N5&0~l!;_oUybjlO3mlS>U zZycRB^L!YXcX&7#AF*ChH{JpS{4p>qu5C#@`JY?tYVo-KP1C=}JhdhDs(*3q9t!@X z{yqL*$tP0uY1F^x0P|B1m(;&sg5$`ilf}6X+fUJj*Kz&RC5X3Bf8R4)yN&ee`e%}7 zr8MfF_~kNSp6lU4KCPqQKLPg|V2*oMOX{hV{S)+`F1vm?^&fin!u@*yn6~FE+`qGd zDSEi1{z<=V_b^YkpYi-GeSZV>{m-qo8_q9v!AJV^a$tTzIs5v?`m~q&M?J4GKG~0T zz`TL-Uz8;M{3+n}zJZvQqL2QK>)$7-_$e^2e_>1NmoHBC555h-{`Dm-smH(E;cMg{ z4Bv>~PSK~4fABV7mb}8jHS!O#z}!kX^p(l}K^cBIiTbC#%HeCo&tCxM`yNivar!{~ z{NKPF`)Y@;5x=bTFc;X*cz*eJ@Lf#(nKwCn`ZsPqG`|-B^C8Lul%)App8v?#zylP0 zlJIF92fP;Eqv)e?#OZ@C@VpC{C9i9YPyBoaFmIy#hLY63p98n=%`K^4Q}jvdpZtRZ zU*D2?@f*mQyfN87_$YAazlrs?H#>Zxe-L9=U;CDp)GZW!P}gp}55o@r99##y)!|Fx z1KGjjfVr6RG)j^kyaTuwQGdf#4oag?*!&CpCv~`NwR~w^!QEG|HtPR?%(mBCvQg4r&0ed1ZK{|CG}5s@EIQF zCi|JJ*WN?@Q@>DcH;$jBH*NyvxG%P(DwIZg`%+_k(v$xT%-xi8zMPCtdNNP_ zNndG;{MHeW)i~3*uyTg~1XFW#vzSfeul%h|lhw9=5AeFE8~l{A!=1acl+d8I)I08ja%})SrJxUAuMT(0CsQ%r7YY zKb76uCvhBCP@no)V|*ur?^s~EDVr%t{d*R0mr;K|MIZeeXJ=05`Jq2&9Fz+wN&A*w z1>7+8zoY1rgzpd39d>6+>cC&Lq*hZ}QwPS5R|@Zm)Iaf;jq#n$#Jvod&))^l{1^KG z6Y{YqgYRzYkNizze3Fkfz>HAlC`t7D0B}#Ie#37Y<2wtui-CD2<&~5qe4hpGoz(BX zyD`2Mz`YQd&rrTcNm@_-9dJLR{`>bd#wWS_Z(xqU7duF4)W2TpA8}t}d`|`6nZUe* za?Jgb%XmLW`RB8#zvg!iU+5>+*|%fC_X%Kr;NiR-jJ0of0@M0?hfnfs@>_>b`;{LF z%sC#e5xz7qkFUp9XD?;9t^npK9!{-?dLxoIQ-1PQzc+!EUT0WiPvaN&H^^-uG*-+#BHj-u$3 z)IaUtJrS65JX}b>y7`dbv=NwL4;QvuN9U&jHwVlgDUbgj>HBy(pGJqqsek^TT>nD( zs2hj;D`aNWTCJOUSIFP{M1-dMG3DR)rzPw?x$1KcmE|I}WhTx4Hq44oG*YE3Pp=o8X8 zhJHCHKn z`+GAmU!(k#l4OsxPwV&8zjN=#_)Z1xD<0-|_A`Eca1rwMh<#d92k+Y$pY-Hez>G!U z;>P<1;Qkqy(-t?zCqC^3=Ib7AfBufc_gkK?-LExu^8OBAs1IWJWdfM%Je;5nUktyz z6PRy!xFmi_^ZuP4=ClKZEuMbzhtkyl!C;c*?VHf~hyzIe z4!wo?AGf*j>iY*KZ*}%u{^@THX-yq~E}pa3V169xfbj9bKfyi@=oY;p*tD zcxwij=XkgzI!o`q513Ea(xK%k2*Yx zFR;^8`j7mGb39D&Ec9Q32mD+{$pW|2!-{@!d@86ANfm!^>*3^}h1JJy2{S#f@P5tJh8soc$0bU8rZy(*78aSpk zb)vpc7xR6lGlBaZ^(QQK_`-Zn48I(Gd~0egMIZeeCzqPvOMrQ%hfCsvtAKkWFiTHp zO>Ltj<^O&R+>@v;pXl1H$*)lteERt1L%{5{44I@P+129_uoct~p5*W)*#+U-1tz!uM<7-YA$;8{?Bcc`qRms@O=un^Qiv|MV}=4DgSr$84hNd{fzf>UIN@&>c8S)lkjQ0 zcLB5SnXRcuQOKa{k3C$H{(B2>_XG3l<&E*l z5BoSUzw&TN_&x^Q1HgQA#lrZ$2h6@J9b6JV`Av@o<{KU^X}pTx?(s1DuM*C9{=1c$ zqpAO)!6eh~BH;cE%<$^g)Ep&Ae!mUe)2Y8?P2=${1MZ2yyqfY}N)kVR9k|a>|B|%} z<9ok{`JVlZ_jCRq`0kKQh&<1jqzOpTn3o;Q}$Vp zolBUH5%lRJslWQM4quX=sPA>$0?ao&ocJKl9xdbfJ-{4sp2H`;it`Unq}|hj=|8_U z^h{LtmHik5=4F((Q3Lx2CS8 z?1Kf4>!0k~OQ`=)r^Ay!v;$huLqVVB_ca4r-34e(zl4{=E;l z6M^{-Wo3UWy^GJwkHasUsJ~^v;X8o$!n{BvU!uJ2WAf-Viats5wwbyo0`m(jphW@o82^;yb( z3H<#3=-+p#f9odKZX0=UFQ$m2lq7sw*Z3v% zYsMPm)4E2{!(3rMfogB?*pduO4n`xcXoHCCq0xa z<+7dYPuMwg<>;>I*|8Ir);yk@8y`DsVti|JkNb<8x&}+#b-?*t_dvQoQ*?Q(yXlQ~ zgsn>L)%MAo?r-Z_e{o@^GB?~YeDQ2$=dO#dnccyyreha(>u{foi8Y8iZL>>H9XxGme%I{y&hcxw+H`5x)XrVw z6P0P2OWjXdreFN$Q~cD*siZUboXs!$P}E0R)77cH+xVeR-L*GizdE94b$0aWNaMEZ zTg!6itXa8Y)%-^*=RaDJ>Pj6PG-qw9i|W!FDH|2F*k>=_;`;SrCnCRc+QnS{Q z@}XMyc?3W7O#CoJ*-+Oby(1W9W*6wu?ve3X>&u^_bCb{)WpLDPv_H|lY^N?=*B8Ab z80}{4Z%iF-H64!a&JxcmCxBz;42BO%{gvs&wZ6^MX`wmW#5mgP=oFo^fyQ)l(jtM1 znY0H>7g@3TIg9pX0sa{oy<%>Bx)RSq^?g~0e=egh_0sj=_$Qszoj4YH&^+`oX*FG$ zsBr6aJgx3!?BkSWrR7VPRkrS0dOknKcP-W5tCya!^b&i(b3Jf>%(y?+Q44U+YR($n zTI9OWF|J>oS^5|~FN7$lD~wE!?3~dHG-dijKMzUm+jjN_*`ZCP@?fSbKiHi*!arMd zZR%QkTFeY?%5Tv&PkskFIy9()IS2|}{1!<4{vjDWk zK+^%}p&mo49v4g9yq>cj=>5I*u&2_J|HOR@zc5Wavk> zKU3OL$fOSQxc9Xt3&XC@0X#?KIQX7yE+cm!9L-`6?|UwKsDaktg~DLIH`|?hw12*L z_&nXUG2L6m^(^hbO7#p4bd@({2TMax<|y9LYcs9cd`Se!Sq0;WUZ@eQCL+P94eMz6Ae){Y*F+L z@ls|`FNtEiPmAn#IE5zlD3|i(eCGw3u98vaGFGXVrpno3ez3&oH>WnImb5*Shwf9h z%g^F2b5A(_e*U!-cA~v5tdex)*hH~cs<@?C9?lM|T8Z=Ho-MLxP~X^YOiTNzfqZwS zoE_Md&cR+17(L$0Jny!5Y9x9svp0(qK;+%F0lX*&WM&}{!G=ulDk&@Gwnu6$t& zUlDOMJ0J>F1fdc3!l4Z6CLqg_C`_Qu)0@)ST)H!tNuBOdJt7KbO$C~~3VX7LJtzum z)G2NmpktXqbSbj1%)UD z*Of~bi^#tiTwHW`6bQl0i)5+C_}U|)wVN;kJ=sk6e3}Ile`FNgwIr*N%gGoRC4y!j z8HL2yyJiD=9u=+C(CL#}?Mn}I=Q4w-Gky0S6@^1YO0Z#fwuti1sx`D1EModwLp{0% zItLZH(gV({m9lAcT)-j6L;w?qV@7gsnJ~}eXUAJatiVTB|SYs2F z;*Po5v8mmY=0QB!{HH>Cu!u!V<0obDW3m@z%rvTUQOZ^J3}%tL+?MbyPO7xGuz*8@ zGIn?6NP#nE5QKJ;2wBNsT;uc%Xl1F8W~jcuDXW{o9`oQ9L4eoJE#`5gg8r0olbXj=4fPH*Ju#%_0?S?$%03%nD1-D9)Pb@vcA9qkyI zF3(Pr2%72e9jI}xyLEkX=v>R=JorTQzAIZOV^lVldxnSyrB(DCj^eqLU9kw;3}6>i zvdyZ4Yp5H@3}*(*7|kN4i0MI16+;kM2M{vF^Fe|Z;2U8fbR-ZN=s{hVQY(B5unlz< z6R8Evva_#1dT)$46+4e9mlaT_;3QtjY(|}Day_WYUg=HGF=CGVP{}ljfQe}V9vUd7 zdvJ*J<#Z?Ej0yTdrcp~KXPJSaeiL*(+$-fC`Y>Pes>j652HT(S9?E4b4AW!6V|#4D zTTdFdS5C8Ph=Z+0c066ed`m)Av5&7n8>frm(|!HZp#eEsQU|{#;lK>!tF-S=U!cEM zTJU%WYJX9x8~tI;5Z&r`n^#rwb-$oW(SYb_!l*j7yaaXG{sI${Eu{+uf^oCN4cs8#CBl}LFk zZaapkd3I!bf3`cD9YA>&R}RCDi`(u@!{hP_%l!lqX|Ef^a~9;a0rGAlcV5kQ!>`b4 zDUVudhtZ3h7{MSuM49GbR(Pt2Vp-hwHP+d9sjCwwtd!k^PGaOkF!5nj-rT`33EG3G zXV|(poPmG^^$?q1Kt~ty=&{9Zn|NO6>M!<|GXtA4IUMV5ev|D(@$}>|8jIUf=d#PG zva_!@m+!PB(c-pSu_xv3VX{u;PM%t?K6Wf$&N785qn7P*!jx| zk}cpelxn(u8qiCCF5B>GU<#s>S%h^<|XTrO^V z8iZtCy0YbB+D&wS(a>UnQ-cLkYnc+!5mS$n9AH_8cfQDc6pDFrR^8o$M!+|~zA%I) z2{uV9oGM7Ei8*mPQe@&vBwq!Qjqe=P%_YjHXdU+(F%!_q0o8`RA7I+n@ znlE+(+?g%)rwgJ7Y=uQIp1=MiYI*=JbQ$_U!^4k6`EvRex4j(?LcCDy%VbIgl7nf? zyX4Hq{wnA#K30Crjbu$4-L$yv$E$cvii70VLHvCuJ!WDC`k@>8d~w_F=v9un$qz75 zgUrP+$)?3^L#P2QzN3FS59Ro$@qK_S|d3PNh%gxPwc^KFlL1d z@>`_ujARTMw(RQ~%s?p5S(2_{W7=OYXN1x-k`Wv83&FUXg@{0}oI)#o;D9_q;t?zs zT4QcE7H3CBFV~fa#?@OObgqD`4g|S_Vf;2E69mKQYzd=^;T=?>xs&X!$&NJp1WHO; zkf~P3(}wIiIJV%ZqnR<mE7(!Bb zBqp)L@^-~^A3~9#rTVjZV>;31UpQ;LV7kUM_AdC!E$;Ct*m&^kQY$OW%9N3+^aKbJmnr1 zx25$qW~Vn(?#vINsqr$DMwZbX%wm|F9vw#N5mzXb@99DFcI7aay#tO0OaQ=nCES?) zGr;;g)PV6c0a&h_L%AlHB8m7%(4N+&UN5h(>3*S2YCn-MJ#d1#Qc>UHwhlU+EnYo2 zx?_53a{QW#b>Yu+58fE=%XankZ?t(n5b@2S;0C$}Gt5_4CT)!QK4ePDogPN;#+IpvnvS3N2ia?{u>PWVhl^9+WK>RsX!3 zVcf8i!HI6Tgz~%{`J})86*NqEccycww@*tl;%rIx*)|gj&IkP-unRN4TP)*_80qdTFEKeJZw1+cJ7{@+Ep5v-d@qZ5&YZ@VqHg_u;H_; zVc7`;DAU&8r$y$h{oHW}eO^@MSLx>SC^_5Bmdr2PCQfdZ!J2AKg?5AAL-=c{e zSC_=U7?B)tRK^A|!`NzPb(pLi${Sl6wX>4Cawjfiv54F2Xd{p7k9bBkGL4%fb#dD| z-Y0tO&Xu#-$=S;EWM#Hk8J(LRpS`+&WO8JCWxBk4`Eo@yi`&k$!JyTp#LNQxkahK3 z0oR8lP=BDF)5e;IL*8;9Yf|Oxd6E#b(WiVBTZI#mr5}`Wvl4c*(;+ z2WP4a&&>>=b>?Ho=w&%45!Lcy4G*c#_LGPtw`D$=O~7e30evp0vmTymJv5;puWmnU zD^G2cx>}WNZ5Gy`TacS4cELjx18*#G>OJ#W9VlQ|v zYuLQ-G03N(<;>|iB^a~~%!W>Is!7#!4~P>LTWrCD!s<9DT>?IVavUU7O}xcx zL(UV~B2UE)QW2i_Z6tx~F(DCeGqCR({SCxI=G{oepfUoZw!-@QUOa-3@k_Qhuef`h zaT~oaWqRP1uC#^mvY03Pu}L_^C8n{EA)xx%Y?#G|=*uARrjWjC+Qj~5HW{q5qq`ZW z;$94r0{LN+q}TIM>`SU6=JvGq%7m2?Ddn~9qot~!6K6>$S4 z?8h1?jwjs}t+pF`Wzt3V3rK7|=V>IJ5(A8WEyzv>{FupN+5iUKYLQjJ+94tIkB<}UkSP7&8EJ`oYbU{|?peRwi1 zm9&7l*jh0+A5J~gcs~a3QYn?M(o14X)ch$()Cp%#o!OFTPN&(uHa<4ab>};`&TZSq zT1S}y8c%!)*Q2Lf@p-8E(z#yTQyc7=iqXwC>?+{|R~^JabJ$EuZEciJ3qpm>?l;R9 zkpWa6P7pD&*i*#V#Iwvc1JWtdho5DztfRmdy)Z{)hNNs{^u*<%-4jC|Ys_W3i}^KI zI-PSi`hz$#Imc5N8K>xvse@VP=I8;&0Puci;$?=VmI?HFA44ppORoyqfjv z19Lk(K50&&?CV2Zp7I!jl5ii;DPq)ImW`WF&Dh}C3AE)5NsK>V&xlyLLwu;5fDK=+PqoGiIw@{ zm!L{=tP=N!tDhkY6>U1!)9C>K+_HmWy|l4#598}$jlZ;FW1!GA482Rb9fTQ1S7JVYZq{Brn4B zAkgNWc!RB3cswGeFxq*l&c|tAs=%~ctLc{PGDf})rjRTSZT1TiBKiPGy*K2aiaOu7 znVoO6rC5fPKa^$>@odE`vpH>qn!|0ybzm7u*_-_}FD_s02Yq3_Sl+a%JZx5ZKdN&+ zd+0LR<`}~ZBHljK_7Mm&D>fx8#?dI6C})!}a}wmr_jqb+wdQF|0vfZl(kzRR_LaPfmvgN;0aBjIVmx=_NlX2E4Bq7(KM+%!o1)J(Nx(8=TiDgQg zvYBC}GGIw2Qw>O-`iLxDcGDEpBMJePRJ4HA(c zAfhWdi|Q_seI|-`scrTQ5`IPnRuj+*1?0`7*$nKm3hMsvHJwgdZ9aGP%5om9TcuW?mg8~W9HS_)XclV4eOru|U*KQqO8$k^Dl&B=3_6K4U_xl%+Kh)?ek zM(>LIoKKl-pmy=7h2O$+`29+Us~4oECG=*%$cdD-Ibm^|GC4?mHIt*sK8&g3q0^et z+=Je@LJ>lBNy}xK9>6LY?_p6KW4P5JX-3w42ApbC6nqKeHjD0j5+#P1TeN&}rBkSC z;{lDDjWcrY$OyR1#T+c3mA9H6yK;P{(l<3RR++Xzyctnv%Cwb`fEsX<8k+Wjz`)d4 z#i;pZQOwDy-{sEEAHFsrMm!571@xQJg?tN#Cs*S=Lk8s+N_oTC1xaa$1VbmA>-&sd zzhtw3Ylkjo!*-At3fyq{1$RrLy%Xqib7COYPW#=yA&JX560mI9x&B((*a{;$#TKmi zv+Y44xt5)srzbyH%b~gX>!Gs$N69TL^bWEa6nOT&WZCaU;Gq!Ur8MV+jKD;T3)8`1`XtzK)wHl};v6D?>;9ccTI^9|zn56RI>OB=b!CYwhMvTV;D1>t)e zR2(2-!TRr@OGZ}LJhYOhyqLwG5_1;>Mb~{D5AH<6@8-*C+oq;>j$nAneaT^eoz0qC z`d2SLhKEk(C{F+$rhJ{D(y01aL9?%oNYXCGlL_zuK)sqpuSNJZJ3fecIdxn5IP?+r=k%zChX?-Z6M`wL=ATgBo_7NzuNCuXX7 zk70B;Pow8|18N=`ff z$>$E@v(sX(pV6wDGRwGNWnGGXFrUVbkua2ISCTU$7g5T<^4mdz&v+__kDps%O9bmt zxdnNT5)rqzq`bl{>phQ_db{z|-Iw4bc^{BL%?Bbtb zyoi$<-9_fuLc)?K^wI_a1&JaKk*FkXZ+PFn%9z1Taf|xSn7#s`^oeL6PnFjg5By4t z9#x;+w7Bww082Bt?Khg^Q6HfMISq&R23*Qo(O&1I@O4TjgxQ)%c1<$<3JfNCl(jtD z-6LP>%N7pylW~bGC%Tw*3F2An;F|e*(lYnBy2;ON$9Og!b@Cs&?apNr-3kbTlQYej zWdo!^Z(&ZmH>LHJSvRToYonM&hpd;n6|Ofax!TJjhw?|-W@dRnOMJhY`PS|?7r2V@ zWi6(PEp4JNhx$I3M#v4dZK8KG0QWRuQA#U3uMld7H?1#VVUK7$!+Hf;gzZFVD3%9g zwhzK!pm)Xc+AExrtF)cr`t3Vuh}~aR5Yh~y`&>F$)2{K#WkqgO)6Pp&>cq6Xqonv@ z4brUyg1iq_IN4JwLcW}L#5x0{7YzU45n&G;C!3gBTIpp~{COe}p959)Hvt#SmPgEwi&+aH!w28;))_RDq zndYF8@tqZ4CC$-&sIMBGWwrb~ef?mAndRp(g54bZFpV1H-^$2Nv$9_yV`PntOiZ{G z(Ro)+jgM_eU9=ZFBzdQ<(*7)$rYn{5Z?Gc$?r1&w*w z>e%enT_fYkO$M*JpAWycOE)ataOQIUVZ}{B^wQHenECnUQOw8W+)i!z(ZpR5(3*WJ zsrcz(eiF8h%#4qgwcyI+ofnd1hJ$-%9Ze!%HmR$p{ZtWTFWy7Q)~}yo zHE{as)E1Clx5to{i-xt#P%EjE;lRrSs=#3j&i2EftiM0jVqPy~3f}%G&m@v?*n<`M z@;KY5l=H1)g=SbqW}_!iGG#j?s;@G#t7zJTgFT2(@_LwvJDZc@3yYtASZ7cS*-|$LyCROSQL4F=aCwVpCP{R%mDiQ z=;9PwRB>)djRL+YzT@MQyXIyac6efHvVIUKcvnEWk7JxLqbraauhZc4)+rh)uxW& zG=oTmpTVhZ+sw@-8?7f*yLud87X~z&nwzbk8l!Q)qp{S#n7k0cSEa2qvYmAP`DnrZ zuu_KiA4Zpx>q5UG)K_4>I<^5L@#R>rnYq|S#$%W$k|N$-Nx*cb^& zvV6;){2*{=$0x5GnHV1{v)$SD7NvTrJt3$qJ0nvDCf0CO^?aT7L5)m-=+%K1K!KH! zyjUcA#7fejLM8cUyFE!#B_2G`<>};2V{JdpCe}V$&~hk37z(UlIX^dRr`#=W`x7ng z-sbFyIh7i`oJwhK#V7X$HhdJ%bM(qt=U82WO#DyS$#mfOTV)x@(%nKoxqu9W`7^N z@1iuxkx6a2^p7Y_{#4^hOkD~I|0^WnKZFBc6+w8Yv3h8TBhl|F#6!Ngab+kT3wVfH zWjrY`K&Ig)M`!Jw4VIewB~!M$#tZA`jeiTAYeIpM>8s1z=6H*vSnAE84_Cs}L^M=6 zbL-U9go{Lu4%F!!U#gnkHZir^XI?sK>lXpj1aj-dF2?^mQyG@Je>PZR=Yv5uX6wjU zxpLKLg;RDpI7VM<`gEXBss=E&yBks(_|JmQECe0KNwLV3tWXZ(jy;3UMF>Ax5LxJ* z1eS4w8P+q74h(B|<%+pVIVLCIC(>AJp`l~HHzVwyncp3+FaKc!AG!_H3dc$4?78|9KEczu-1JOT7Rmdj1Gf>Ipp~-O)QR9Rb z*Hp%AlfWzMTMaxZOW|y=)u*op`SNmhYG&(s$}iiB%NOQ9$AlFtmCMJ*r)|^HXJaAq zyDF1AwO2~ZHn+us(9rD2Y{ig#G8Up|=j^tLk?k|KymU(}NcY^%omZDDSVFT7hXg?0 z(XWqs0&=>Lfju8DAby%K41DNXdI0_z$1437=8X@yi0|Brdiz@*73J9cCs_T=${W^)E<}`Jt)-sN`a83z2CD}*^x+uPy zh6=T?^S0>k#h^VWkh?vG7V+x5YWC_>8SKvthPMZ?2ZT*kXyBEBH?;>Fum!F#2kZ9G zFpk}!q-lFTn*!LDiAQPMP_7Kd$)Znf`quQv69adUJx04nrpH3$;clZj5R?nkivMhP zPhVhoqI?#zkk@-kQhY5S023`=N?~HGfpzRqH8rt7;$m&W zAJOFP&iwBlwVcJ*1EWVKeq?;oy9v@#lL7XBtUtP_>_Md`ER}z0NWxI8UD~IfN3`MZ zk|bcKU1WX_4%EOD-~WsRL|U4;IC#CD8N#;A+KMCOsRb!CwLBS`Gh4+DU+@g9eG8kx zu2-rqpH@*%4f=y?u{~H9Urohu(3z&ZO2s`|*?j(ki67@Ja7UuZpw7jT+K(_Bt|QFo z3=?fvz9J%%T+5;rw{Vu6^5s4kGJ)Yx!iBjyurR1|6P4qoB>`@y@K^_XsLROD23t?i zg{ofo8+n&6qc;Ct+WPMKTwvtTWB4)u@U@P?}1T(dOvm0ak zwb}K!;PuI=Szly(Ylc~0s9>hDxfNFAd zYGOhOFZsAf1l_OtYW3q+Hs$D`3yEN%uT}rLy80+y_p3olKA+1YxAQ8R2XWiv8l^&z zV{Q4-z^mgH{==C>PYU4|kQ{938>5fy$XV5V&+g3XjYdC)l`dZG>0R|g4!`TMY4qAXR^u#s*o$4VX+cHbaN8QSW0$k{L`uR5 z1@g2FW#IDWGNanoR>M_QrjO&LYHf7l^gBkB2~!q*uVBLJncDQ7cK$uk=^G6oT=sgt zkT^YQTOrj38zAimYYEzeB$pw=Xb5wxOhkKH%Yy3hK_L1w{n;I?eCffT^dL}!a!CHC zzQ+O2x&(o8B3H_RL7kA`Fq80?K=y+jQiwyvRL}jw9$H*&7W$7Me^TzBu6AG0 zWZXv67)!7OJfAT$WL*&2TLMOy(60W9Em^;;_8I&zGV1p<{-D0f{Ggq?Y~e*0H5joS zF3j*4m#whQ&AA`;ysG)@B38G?t7t}~)kd38?TWN_1>+2uAt0^WHY3MuC}_J};@cBf zRz{7ZZwm;l#dmAnQmW4hSDgp=1_R?p!LUG5n~T+!XiZpzecaSNSPrUBx6Ws07@?2NGo8qjCG@WahtV zbdW^I@XJ+sQ{deOa;a3hbcCDAMhhw8#n%T7!Njf^8TyaZKV>d@*utVa8IGg={W0~~ zsTl{L#OybM`3lgkU$5_#*s8<3=D)mcWPDmnuLc9J;hBemGi1fbf%dv!mLE3SI%Ycx3MG;grEQ&i!%O`Z}pB{at{d z$I4)}vm?Z%=coD3vz-OzPPXS8tV0~1povUCVeQI2gb*)+K!T*&euWo9na% z_oZDe34MV1^@rG`XK|;t;t`o!`xaH`=*#|*>6slP6ZUW=U&yx8>g^k{9ETxo{QPwg zEbbe$oC2nB@Pt-g;>ZKeVbF=_$M9$bVsZNtN5*i(L%QYwQh6;pRK-pQ)S)Wcsr?nc zsI0G%+Era#hvL3Ts^N~(IA4<0eZ_oJU3^_Qm+l0BIiw#wYYB`i;rGxT^1MTY;)O*_}dP%^xd;B^a^l}g*Lm6$DeI-=czg+f|D{h zcb~%?-AP9$KGu4~aV8vnz@faF^@%khAJ!dE;l4BfLbb?g8xbPAQ3;c)`SBJ!rv2&p;i@KvP-i9jC*~~gvNGI@dZGpPlLi0|4_i%-mp6F2fz#0ylr(Z!n-MJBi zT`S97on{(>8_y(&TT!McV>j*YGBq8<#mN%32=M~upKA?*Yo#~^NDTcu`Z&lvBAnoK z5eJEQl1LVGL5DjTC+3C@y*f;%!$Y~Ge1OV(wW5;&L^4a+cTsoJw{J4%?@usQn#5Cs;NEOU< zs9C$a+#Noq8FsvSJr>eIis1Qrc7_@dU>93;E8#SQW4M6 zxDz}u)xQXT3Onp>VyQc6L`?e&O#Ue?BSl(=>r z1`|+Pe54bAVPEOC=n=pYZ5P`bxx-HP00 z3tV+mnV!A6$k7Dc>tbr}(~2K-F9AM`yUN23F4m!aZq-Pd#ZA91=GMVmTntgw$+&ik zTApqs?%`rKJA%?s_rt23w8Lpu2!kzJX{g+-WL?x$or}EKIfQmyqmHq98hC=^@w5Im znuu4Xlk(jGRsReiSBgZgW3{8YGzUW%JvcJ{AZrtf8*vlo+Yonl-y<+ zL8CxM9}K0$*R32~KE z&G+DhyMuO6eJc&~ry*rvgNYM3@un2q9VisrK+)ITosq&cHau6ROP!59FHoxLQ1vx> z%+Fe<9sekgz#Yuv)Ld|Ww~<$7Y679~98q^Nvv>0!frabJW;SoRh}qX&0s0Q|8&P)_ zB+R>TKuTmKj1akvz#O#Tx&o2zJDLE0L7fOyUTtRY50C|la$$n5cXpoFp@4q@N;_3u z%nuC`SW6Mi}Cz7rX!9tH2tC_5fjrqsfU-l=6a9RxOfztI2V-)**|gegKS}etV^E7ZZqEu8g5s3- zEArH-me|8mF>@h@#OW~AVUw#B_^M@hc$`iD<%G1(Qp(eXklqEXhUPQsOrh8_GKwy^ zx|3T(_ztV)>8+41)Sf7e*(nxJisO@)TgqSeEe0p1oATN!Jfice7E;=-PRR^K7mZ%6E_nlP3A@NS?)2czI}f z4#gA$yaBqv-CPi+^ZVTWuQfCm1vZLSgS$q%*fTy^nearH0a^;tnb*icl^oP+d{1|C z1wy^RusR>|CP<(gV0NL# z?bJW~9s?35r%2|YdIsNM2NE)nr2#qI=vk5jS_BgdDjdQF* zT1FVKzAjDBcJZa6W{i33(KW_)M6j7S$)k=acR`;{uCuOu4P^sGZOlFHxYAc*e#Fm~ zz2Xc{U4~&H)hI!hv!Zr3Jt+!1deL2sB2jxj%&412cpP&awM@kkI(RuhQOQmgCRp!G zlY_p}pR{lM_IVJZGxqV#Sq#?Xqm1-IPS8OKSZ+W_n`6SuxLZaRNnI zJ7Bz;$(TeZ!uwr#Y%agyZk;@eKIPoiyc`=Dz3bW?qW@GfP@&@?In2xP=;|~*evgai z6%uoVBR3t1quN^OI@ka7*mXnFBG02~-7?Q@1l3fn`Pd)D>kj+|J0~%c)|O-U4g@`@ zx9}Dw?3A(OkXRP!sw76I>- z3tW5rwfb__3FvdX&!xeEkkY2Qca6T_2Oz+m?g&o1W~3Vi7p;11?1wrd<$Sif!x7c# z1LVxt=a+s!-)hdem3W;BtJ0wSIF3s<*KZmhCnm$AJ4_UozSr1YmdD#0oD+TvuSyq5 zpCjELD^Tj)-ZT(NQ@9)3?lU>(0&5c&(Ng#M=)#}seLkiQ{e>&a4~RkTWqx$G=&F^` z@LtWl9tM$_Hg499TLM1<0!w##9>@+{Sne4xi+Yw24F*>M>Rw%UKzevHu3mpMgq?pv zyjr^qW{=Li&C^YUqEJ`K{<^b=-T9=4`QBuEs;7L?9mSi+dwk>^bnK~*cP+G%Ck_29 z&~Zv0S6UQ%kz6*N8Ox=~JV2Rqm*1`=@=UA%Dc+U4=zAk~4WK^$~(){FkBPy7-0p&J{t8=vK zFXL05h6NB30U2FK?qZ7c2@JsC$-!~?t{b%uI+kSo+(*UXC1%C!MUmwik8wZou%V8%_9-q7>I3&drv(FbS?;hNF2a zr+Q@g%znOxGzeTNcO<_lV=RKllNt)I))k9<{eTI8yP?CK;kqxA;RV3f_q?U`M<1tA6Mgt2-0{NwW}QP_8#&KhtaTG~4i1Y| zbQ9iGrJikB%Af;w3Gz$kYTbp*NSR@($kEu{;bsvZi^J~5;_f>LFNUz5Z^xgKZxJ{t zE*v|KE);OhbjP5C=uotgzXcVyOupZxOr=-q5I)<*xM7$#e=`zz{o z@)C)w;|kVlq8AXHL2C!9HpU~&Xt9gw=hDV z;kR*|19@$|QQ59^zb!QGgO|%~Iy!VYa2)(n9_=W@VsGvXS2CRv5o0rv>s(E~qq^P1 zXn7p<;YQ{-@Q(tgNFIZ6{4ws_rx|Nn~MY6h#v^bTgN z_nbg3hTG0yE!_Hi(Jq;>&U{_W15MyVInO~(OeERc2=A`9;C^*yp5FiiN<(YSGvfP7 z3F^x8=)HX_ZMIj!*LInsJ9Ars`j64Yo`eNrUQ6Q;dW*W!*?5ae5C%o*qOe=71icE383&%vpB{<&RnH*jB zV40OVk1L(hcM^0h)dIItiTmyZ2_YozsG0c4H8~pkQVggYx_LZY%IL@oLe8U!g7XoWBh9FwPD|YSo^JyPNgQ;i*u#1idHLkj?n!HEFHOzN)sv&y z!Z>MysX6ZFHpoL#41ra9Ru;Q$Vt)n~1uJ}+&BNxe3y80^Y~!0H;^ccI4^d;>kF_>u z`K?5U^-N>kf-s66CFO{a(Jh51snzVUwD zmF-&4`w!)1pvAmJU6*iwH{Eh1fjik+6u2Xfhc!p1K{UB?ga(nTO_YlA25y+^F16yL z`*I4p)lX@?f09D*=0GXi^577clX81$kX9y4)P<{J{!@Xa`!)BJ%ga(;d1EH+Gs{X9 zb>biS^%?(Te0E!Tw-S6aTAW$sR%rSG{VfDu7?cg9?%I}QbZd+sS68_z_Kv{okn}9M z_3_L7y=vb&-UekCWSF0!5%F~xNHpXkB$EJbaTq`ZYWFyZx`!ev`icdjqUn#j@yq)o zUtEe0ZkcUK$gpMdekuNv3zsHb;U=59t0yeEq%h@Yg0q!7znjUqO`!spdHb`OgK(+Q zCqWN)-h5RVxmDet!%zf*ZVB3^_q&kJsk%f^W5*ih8 zTHF|=d9`0K^a`pg)u#B~4BN8^x@(lY@Ksm$R+JQ;bUQ}1^`CFo^-QLu6YdZJ;9A=q zQ@!TI_fwO0I}kXux_gxbqZ-aa5Gd5&&u$g2*z=b$yFFlMP^XKB<*4ESBfzLyd+R4^ zscJ@CH0Kwss*7%&8||JaN!|;wb&hb}eYc=Zv$lXAVFs}U7cr7p;fh9iAm<;Wr=@(s z?Wl{GHPjxvLQHwx3R4D`?sYFso$39J+f>Ai{{`f>_9r1kbx4&jj=BP`&n!Z0G#9 zGHCDq$;q-wvrtPG$%QWJ`D2&>1$xK@4u%=$bq;}Ydexmr-pxbxRW~EKZtcQ#V%o(F zcK75;^AQ*%kV7m&+K~FSs-itqcI~r_vmJc)CBSMQhq_$5Pql_&CSkQ%?whfYVe6}0 zQ2#!X&df9O=xztx8zyIuBo@1RC62}!%4Wbvc0-(M4!|7w%`(KV&e3oVneGFdXESB% zG(k1_GiFH7KklS8GIgtL=DwxCzv>=)=w;4gvX<}iKWxS{$y?E(4%t;`VJyw~*fL>^ zPur>THXS>IQBkX(_K_ieG=8v#?lRY(6Qkjsq-DBoHQ2!aOpx23$Dh;{Io>sq_#o;cDrI~b4rr)*#MpjmRI!9ufD6?ysbw;9D8$-)b$qzk&SDy&|+ z{bEL@uaJZgw`xzJreFD5rDEt;kd2WSu?o}K=bU48hA%Gh79nRB_lRpAV!cX3_I>DS z3yUs~tM2KVC6_CY#OF$FwJJv$hS{coTx!5At%;KF1_X|RF#bA2%Nh(ri@Ja{T$xei zdM0lkEfK)`@LBqBgShSDHjWDJi@G9TL_{z3~T(8h@CCAI(JIZfxDjXVkSc>s=BDF)zs_hxa)~>$MOEJ zjMaLx$yHlst_HkltodV!SVXm%ycDOW)oXZAUcFW zMd>u@?yikR8~JGr5ndrS^n2gkzQ8Y`)O||Yf3cvL+7C2;L_hJx4N>?qn%R`k4dKjN zS{faSXuDL*N9nEYjxZk83SxBmP;+n_ZwJ1Gi(Wp=J2gA0vw1Q^TWrPlLspmYeF}9Z zVFlAAj%mIuf)vv|8T`)wkFxgwv-B?O{#S|uuSjn%5JDFfNFfPP+SHw4XLg32*%pCe zvO7r@HoNN5PmV?SNiLk-5wZTu-Z zLc!Pp+~iowdi&TG6Vvfa#R=(k{2SVhuX;SVpqHz@=7S|AlEvWAdhh?OK6GHC$(zk) z)sT7{>m2xE%Sl@KQ57n7SYYBczVW}|ZZUS?qOjAazu5<{j!JSEQc={)i&>7Uewy?| zeKJ)Q@|039E@?Q!tR`{C?yd>)B9av(Kkj2j<;90JYoyF<*t$Ul%*}X~d_S{FTyB~G z5yw#|+Pp_7&_9+?XsM6>>P;-V)&;9(RQvS&p6H-!*dw|PdgkuhrAg<%tKHGZA~*^> zli%V=gVe)GX0>`-cZu+vA}L&T5JC6~kEytI&%WvI$->*KAbnD0#s85aH)Ka)GxcRS zVhz8H%B&469^^**{?7nknxeyN$kr8x54f{TIgDkNvuFFQaXu`rLZE)fEE_K-2SC!@ zQnvpxml?Jj#7e?ypGA<(&(K z-pZBefe{ZQP||%_!iN2uq4u88t2nkGm7Ya^}$U8X|H7je%g`@5DV#mOa7 zse8HPSGs}v3W1k7@^z;iwb^||c6(eXq9NX4G0N_h_??X2j+7mAJKj|Ti^mPr!q8XL zGrQEWTy*EHgEaE*Im8%pfXt-n+}7&{OxWtPyxJFIG9U_6cat+0A>GeDKj=ZkuY4Xx z2;y~lBv&$?h^VQGLQ29*NJi1L9|0WAJjjBRryiSSciO8Q60m}p^nw;IAzJI+@X-5m9zHC;G@^7+kzHu=`fF19t3)6hqIl<&7n z)fwh`p1g9`1_`knM-FV{u+4oLwbOH9F9YfJ+zwTp_W+a?7Zx=?WmW1F@EB)osO)Tmk?(kr5W+bRlIScP&&0N{Uc2963y!dOJQ444{Q*(soyilu4V6$ZM zY8s`|fXl!*@ShJuFwIpyqr~zy4{~RG4$bltIQ%$EnguB>EI6e*SmJ7p;xGdEX(G<= zAA?StyR2{c0$VW6@yFsY#ND_*41R#SZwp^l(Dfrjg3(t#WZSmm8a%69840gu;~HOrES_b`49B8lHbr8EG? ziBL^9vsZ;$2+tobAw3W=;GWL0R?GYILVjKGciA&<;2inHD+MJ97`CB`#(V@Mu)06p zIct4?j)HWO4~Jjx>6ZND8yGgjinE5p{tV4oJD6D@&ySJEs=)1@hj|W3K1~e+K2M9v zOq!86UKB={D5id78qtA>= zWW%BSYEwj1+L?p}caj!owJq+iMpY{QH*!|P+AVle#msf1n=ysUd3zfOlwVikTV>VU zod-5&7AeKrH*TS#N*_XvtvMiPV3_suL6k@b8xazA(oK@UmU0-)p5 zMso7n83Jk@L0#6NoPBp}+qP3`ND7Kdi2n*oo6iDB-0fB*)f5iK;uLe%kdxwp9fOqeUPQ1P<^ zerdsFeAjex5cuRi)h>5Jy7BI*iMiYfilW1X<5_4P$UC6Fx%usLQjgWT5idRbFND~R zshwli0f$^FyCyKJ1^ot-=Ck|DIQz8&$E<_c0CT$gC$N)R^1x=#iklD%sTuqmg7|ZS z8P4)i>?V%pLdMZ$KZK%?XnS@r%@!a~cHot5E)tzc2G}F9DQg{*6NKdrK6VDoIYSHP zvv3!T+m8e0sfJZp%t&NK@$f@vPNn#`?Qj-CwA3?s&j{s;bv?+*U-y{J-cA>&5;H3)9WYKXAd1_ zN^~&c6LcLIFIhN5Nx67*(bttM;X=%N9k`j)4F7>BT$`Ajiid8&?;_1fT3*7%2~i^Y z63!()<}ytSz#Qjf@n{=4#1#~cyu)AOhaMb*m-f(nXcFvbB9W463fMQdy1KlweDv_4 z16NMbs_o+S1CMb#VN7$A`@t`ACso$B!4xn$>=kJ|mI}WP8j`BJfs1$VHdX(}F%h7p zfirGY?5J3_>PavW-KY9*h_|o(y}!?+bkp@E_!7XW{J(Dyb|>Ic-WoqfSn1n}#M0m^ zi{?$>otv1PU(hk?ss40fzt|GRvlmX}sTXjYeW&Nd{1hc#}#!4jSCpp`_D-*dGfuexww0O$h z*hXk!w2x4^OTLWs0YRcIR!DNhypk1f6`-dP7YTJGKgQ%y8m|f+l{CMKFz)3?CihcX z_~xCvJ2Dvs?`<-_e}5ncn-^yoUfPuTeQ%yJ&3<~A-R2>u>jmKU-wFYS=X-hL9!Hde z{Pq}BUB0l{m1HlDDPK2^6h_+qn6x|Tw}xR7JpNSmB70#kDt3`m$;qcy*z;LNX3jy} z@k6VNu?A(o4bE+#b9*Tjij_G?u2&`7cLxzeXW()zXr1m;z{ieF?5=ly)|0%G#cD)(RC~N2??tr=c5Ml)Lv8D~UIaQ;Doi7!XkZYAOo$pRU`0+Ai^*m|zmcEhL-2i!>Rk<0Cd)^Q+ z44S0YN2ABeY8Kv{&W|5}Vu$ zA8cJpzH$=Kux{F_zrK4&L`#3y45{ZvS5?kmfSa4SK8awM0b~usy?4uRR#x{Xwci9y zrA>G5=>}8ru+{w?33wUb>l0mmGfo zz8$k70CnmpJ%lxP?!t2|9FM~MRVDEJOn4w1jsF01+Wyz)Ey z(Ak}SvU5s5TcP^O{+~fq5LUuXG_!AJis~Lux2%^l>UVYi6_w?udtf6QmH=f#9bfW9 zOLB!yJ9!z|uQuEZ!Ixj61FCB~SML`(Xz`&*B8HTrug(Sb*eT@1Q7HM~L3$D&2{A`% z2%f9lb75&Ry5LnPiBQKT^Qr`=v}SLG<-+O7Zpb^>^fqwkE~-h$-klC-?C}VDs(G!e zSoezOOCa`AdCOt<+gv@J1a_MqPKdMegFc8)Y=E>m_AczL`g)mqjs7a^rFW#|kkdyZ z05$G3^pQj>0)jnD>(v@l^$XS{cC+f@&Zx9H>FamHJsluZC|resJ4ccb4YImWfxjI@ zek-9y0p|&&z^sXSN$;n0v5l1GD33mkC>$**ZTvngb@9i`LA>>}D69zh8ID8N=|w^- zQ|o~Uc>X{~pY`KcQWL`X1-B$23>AlJ{68h&Ee#4P7Q*u%<d5QH%>EZ&;f7DOVRb=0eA7f6Cx!d4><=A}oA^c!Gu}!A1 z%(C);3hD*u^%HNx5qml80ch^S870o6)J|K#W_8?$kfxnecp_!%U1XulO3{6+Zh5rs zc6Yt;}t|83L4x?crvw4wD$1g#>vZ$9-QJ9 zPvrLZA@jRj!Opx@D42t@yhVzc((5+ZKW2zb)2B!(trW^cq**WmB29IaPWJ`ZkTJ%9h17Y*q9yq-Y#eAyNnJZ(co8=H8%oMkTsmJBoRdj1Yc?B?5= zA&NT0*&u&g(y8@c;z?2WB+z(E7{>9LhN6XXa#EkqI>|C?Wp~-8+t*fr4|@W;BHJIp zFM~T|Mc+)zu2E`*WqV@F!#>6GPB|JnoN@!?Ny!PMB>8v+9h9)jaG-fPXU2uNNB&Q> z$jXtN*gvU)&NEeuym>6)Tao#U&}cukQ;GN;^kCmw@!@xX9M|F=?%)Vvb02Xj2gkE% zPrUzLW;?UQotmkq#hqrK7PO7S}bv=d;|A|X3*X`hrWrvp|vU(R^CjJ|tr-<=! zF;+^&9s zYf|8xMV~;{j?@SjFn+v$U30URPx8urqf7m~@V^Z4Nwc^yIct-mDxT}5Xr@5=O z6Xf;NS^fk=w~iiPyX4f7bjS}S+VO%%nQdU;qsB`zdHvcsAe7wb{3KutYg(>b}Z z--n;0WVBDzMnOYgMuN0JX_4?b+&CTNPcek|$jO2sHo_UvutYG_A1~xJ5LhpZXebDLbW!V!vpHvL^8oM#CZs>9aMVT%zYs3 z{=W8>W|5+9>IwEm(0r0VXxtsM1zsL+jZ*EigLqz8j`45#viMxRrpO z=ED>p=QX{ieus`8C&eiw^I?d!<}F^zhj=&TEyR;{&TOZ@3o8AbZ5nD98WT=L zIMLv_LmS7}j~}?~%3fGlP5KZ8Q+g3c)jy3RVu{zfjUQ=;Q0q>E=j95P zN1uPtKaIvh8;^Jr*5VXEimJ!CjPFeP|3HqYU&HOEHv}(x#rBc_HPUuLM!OjL_)z|pfIwd>osEQk!SLX z-6S-&_LMOgZ^$M}Gj=I1Bd!+@;E@R7*46kd!zGIt?>T^{6|0;46m~Cj@%^4=7msQ7 zQn>by`GcApR_2<7Y(43iEti)CDbOl;yzjq3IxhD-CSgsehUAc?ROW`h-pjKa`-|Z&-}DgEU}t4!W=F{VOUP@XXd)8k@7w9B zn(cOJZti3s*9X1jtR=vkBGXFGMVk56ce6y+oSP4X_pR^ZLjx3ZD;E_?E!q7Ceta#8 zd5WLj{`T9p4W^pVj`#Sf6ExdfK6!kriK)ZsD6{J)PBN0^F*WmKcCPo3*+Z8cUD>#N z{n%wkk8e0xWt*;%KfhJ~E2mB}4{2@YaR)Yz83RpT>+Ad9*m-p2)Pc)d%hBE!<$}M5 zk_JnzG4O-wFqz^09|)JzeZfghmu(;%bx!Y5g;Jw@E>HdHwf<=LkwZ+8ox1GM;e*|e z3{w8xwf<=2>lQ2h>$QG858n1*zPHgo&+Vtyj~^V~MtAbVyV!l?FgLMraOD8KpKCbo zxBF+gx_;s@k?7;b0qiwDJ?xuj2y5?I?-bnuh=yP7`&06KJV=~$0Cypr#ZKVk0Z zVb(f)V|RcL3d_%qZ~oMYn0OD|{CRgO0;U_>rbl9~GqDb9iGHyE{?(P0;fsq@Yt~S` z{KEcA>d#T;zt{h~TW^rm-}R56?BTpwzIY4lJ|O!gq6&xCj~(mI&#QXamiG}?$xAjr z7k~?E_D)wR{>S~5*@^)W90~W1{sY?GNO-;9+g##N{jUw{RK{PWk^R8_Y6pZD;?l48 z?EaJNNK5tlp`RRokoj`=Wz7`07a~&A9UlEDIXcHr9Xq*ku(wvB@8kMko8DMID4X@Z zgXxDxE~x*8M{s$IU-#S zh13N3E{6`}yT$2$)0c$|f1Emc?8=a`?De_+8oGx?K-{X&UcHBgY2VoAfDy46=wL_P zWt?J_fG!q)E%xQwie5S34H3H;de5nN&*edDK&Z5rtGNk(a~6nkF_SA-j$Ikxv3wp- zL~INYkCU*!jdEN6nyVn0Z)6Fv4EvJt#KI0Bs#hY?%ff~xYG1q3ho@{`<1Wit#`t#;rMlN zRI}h_3hO2RWvzJOVUjrLQb|~WIQ+hF&6@#!E%ejUPDT*00o7ZDJUYiho54dGXyPta z`T2H``P@8yq_z0t1gHyB!~{L5Kjl`3^~+@y5X08){9aC~cTRCeP$W?n#L#rBh@d76 zIDeB3V-))va7c1hl4`ZN&FriB?Vu?#H$@-n)uFX#>ggznw))UtE!TM~5hl;b{rvfv zSs(-f@3m4wrVM#wKbe~!X_%*X=D#?PTKQOeps2>b$2Apys+PpWD*5K+pHt$#l69|b zQQ;x4zdYw*9L#nlIlGs$kuLl-$jS_dD?wTV^9YLngkO?hnIxkW<@{>SNUwf{XOh)m z1FT(36IjsOE4rbAx!P}T(E_qX2_iyX!go>#+eP#v=xm{t2D2?bF9)|CS|06-vnB3_ zb_O#utL3|`+H-RnM>4vJ=1M{rdGmu5z~Yb>xxQXQOhJYj!hsUVxf1#hB=YM zk$bsUI-~w2j`MLtXc*Lp3_7V09Gl^wQrIdTxHgrLd?FIV^c3mnY&L~>r*S4VmehW% z?1(Lrg!I#v#5S5~ROP;lR{tL0)qFYKf z3T3MbxLl)JbUHOgJQ@<^b5SjWR+m-!b@Oep{E!Ax^fQoNjfbo9y?G+k2w!3KGA7CzHADZSNzO{Fm)+TEe#y&e?ofLhBzCs3C`4V|mvN=>R(yh^xhld$!-7qupDr%w@vTCxV;K?`lDoYX2`B*z2q=onDRT8gaIlOZUm_q|kusD4Hme^99-c%IqStYj^E(9)AW}Xdpcd=;f-P&ud$lmH8IOnJcn!Jn6@} zE@ox>6lzq9uK!4ig~F5kE!tw>cV*z5=VgQsC)O50zMn$u8`d1@{#lECVn<1XNGKVL zVT7N}VeFjZMN=uUZcZd`{b%yG(YXMsxhMEJG0NR+Epz(@?vx^-Zy=`n?vxZBJ)R%k zZBre~gj1tO#y8wQsO;1>B1Z&{9A%#VPt@t0{HEMz%JF&lOlJy ziep-U&l_676Rgt|*P~wF7Wh>ET?a=PP%4=np@}Ov6d4>B>0ZUG4p#9@5a&F)qNHf$ zTvuk%$_f&tl%Ox$Y8w?#Jn1d9y!6!C7Ac(I4we@*D`GkruYz`oF^K`SYe? zrxImWl|<%`7nOKj=bhdDSX=Sv!p+CC$QF7mH1>>KjDR8yx8k||2^U@GK33(rIgfg!!N<8UVD;$sWLM z#c4e?p^PozKI~p{p-WuJmm2qa`rkl$7c5NtP<45KzGzC;xMX#o7vyi0uVA*UP)QZQ zqduwB*$}6iRALGIWu(R2pzL5 zrRA#-ZjzQk@rXAM;JjM%;^I72fwS-q7!eIK5)b=)p;`dt1z zH1ws&uR^`(^Fa{+FhorK1))DVJUdos?me1LxPE5VZ-%-_KC4TEED+BPT`ULOB*42r z0E!3uz5|HlVPEtRn9}NO7PfVpxe`1dXFayyCO?`y=Wye8!Uby9-Hdcbt8i!@_&xa) zS82tH3!^_f5{hnFH2U0L8DC{9c^l@_@RVV#h~#d~*5Ks(pg+Y4o-q<;tKevk;zp>A zp3?Xszdjl%D}mrSf0lDlFN@!*l z*QM16=S0ZO#(pDR{bZ5-kQTw-uK#q9jP1dGgui{2<@cN)n5$+iOxK9(0Qs)2Tvv(1 zwh-1eTRBncEe9+sKEDeC^;-y3Z1vt;SXo_3A(D6mB-}|KlhjSxrKij>Sl%n|OfdoM z8Bus!ME<*gUKKVtP1?Njk#W*Wu^-?_c`E}3mS;-doA3>-jwO8GgYRL-s=j)ROT}(aQ!(c&ki? zZa>LbxEa>i+U$xcL}k0oPEb6(Jju9=S)4ZEl!v19`l~uWpWcN9RNL*vQ-@C;BC@Up zcPl;}*0+qgZ6ZT{zQYFLxkxk|2o~=O0`j57W40$~_Bu|;bjEH+*7C>xh z_h6q`bym$?CtZ9PEUimT(Nn!+5I$brlR=l{oY7Ko@5FNC*I)D1P097;K}5v2>QSu2 zoZ-#cbI<-oa{vN+&5pdn$HNta_7FIFWV)OAJ2o|16zfWz5j&3B3dXWhc0g|*lGri` z3Lq>w+%)H&2_R(CL;&0*%Zi~tuw!$)<_buyja1bY?*p1}15*n#6FXyubdX5Kdqdbp zrOQk61VzvLkO9*Bs>ivVaB2pjL}qN~^vLKOq=$uG&f`LpSV|JzNrx!r=)XVf-nD&_ z0>|>)eH89(&Ax_(%*7t2S&ifdR(;k*-~wTF-`ZgiH1%0RmfOJ<<5Lz5FRrtmy0vcf z8hxLfU6HcHWaGwHd9BrEr8WOgHj(s#QP5aPMGqgE5lJadN{@91T}F<}d?#|Y(PpO_ zW1rl}TkP`rYNmDsodlF@S6ABlJ(pUN+@6D@A&#)}429gTV8dgkH%ispf2Ru!n5PIU z#zxEW)bD1tLQ^qYrYrcm@05Aw!jc_!e?D7RQ0lK`LS%A)THIhD?Y9*4(z1;pImgxo zGHbu|%vw9SPmXYDc->e312`AwMw{DRjgoRM78H?Y?RQcszhi~2aHJ8mY`;(OJIQPa z(QV@Yc+PF-)MP}NPU><4ZRMl(xqt67a&ED6!l9q!Gu!>nAK5rLck<-1d8a%IQO<)( zJL(vhi$cpA^TQ^CyRRWh=oGRy)4u;y;XaHhpi}MHW4d?TEwW`N5!KKib7^Hlkq~pv zSskeQ)XxsiEr-1G5xjB;ft@$2leH&u4nzEbRGN8*u~PBppNx{Gdw2%N@-e-(Kg zGvz(3s19YOI_(WdExF)7V{14aHVvcqY@UL79tk<0hP|PXFG3+Bv7vMrhlL^}<MACXF02GiNNVE`9| z3)Iyg_Ae&e6TXnZeh>iXzXvT@?#QEIOmLHNMzmS!-FKpe6p#zsEhY83Uc@iMeF0JX zF`Lr(G4%DJT%|lwNt#GHfAVR_F0Q>Ao;OmkV%8JsceHc_vgZaR?eW2Eg~+_C-c^Nm zzX$Tna>lDwlWvg9JxyJzlILQCp2_6aqu%yT9hp|v)8-N5e(M_msjj4K>sG$f&jwOo zx~({?pI9QSit%*oRQ?Q6&36{3=gawCKCChn-yUq#FP4srW(`PM<&_2z#%3%E1Ye*| z32LO@%6@Kf1o{j6tSh6L_s(f@cddht`^6R%y@<)s4V%1)XJ}gt%EPPr78|&=OUa#? zRq{beEMJ?lgIN>b1IH?sOL^4HjQCqF<}}t=mG26d!#P_S_c7RB&GAi5fE=od;}5tO zW{*!y@0q84mxAj9tf%XyS976**?zG=m#}vk0i{P;%?16@u}($!9L|t?>Clk`{C2kn z8`MRC|CcI0FVDRL4)GeX`OT#(<0iUCUtgVSVzndAJ^{dAahtvf5XFRB&#_QI0F>~5 zq|llQbQu{{x$TMr__px@`H&M(a4fi$87fQ2OK%bLJme>FtCii}Se>+D_p`{GIjqHn zHH-e!_aR2Tdg|Dnc(H4$9MvQ$=V3;$3X&{MEHhNcs#1UOju>2>cPraCJIDIhh?Ike z9?L>K?GG6kz<*Qd|nZ1(hY~yIrCDTq`X1f|< z*hj-5^lJc=)-T;ySih3VAGvMkl;}!ngGwZvx8&LV$=&(peb7Z~3)7A< zcVdm-d~?1zGG$)rHQu(Vydlql^LntwQ+NQJ#i|%e7+v%+tQ@fgfWOTh5u(_JdVE$| zIm83fzNmp-nrT?o5ew;~oPY7{4DR~{P~2#=+>^Qs7=jfv&EV@E4Q=#Jc32Ek0avHU zR=}}LRVhHnb0OIvvSM?sm3N~nwis5gx8_Y8U29w4Nrnc0CD8kTAWj|Gc-%1*C`nI) z5(XuhX6A^MDI3`T8$h~yHQp^`EDxhpzOp)OcA(q!i!k(tO-Y2}4C-k!H%jydrR`1^k#iZy%I!{KWycan$bRF>Aor3_$L~;d8 zs~IBT(`D71$FqL`rPTw=^;I;@+WeB8#B2*?v_}cifo3Jz!=QQ)kbZ^;iWhQ{WC@dB zqGRhW0;GZRsoo?*<%2_S(49--eF2N@U>P>X((YY!+2j&2Ka|za^K_BpFc@tRW_Bez zD6;yw?Jp(aBi;3j#MSFX&V___PAAA=8L@o+3-AIyYufLzj{P{j^QpZy`W>Z8Zj0zU zK(ChhH>JTKnV}>kYRJr$at;c};LH(BR<^a>^T=Vrr@CFy9R(~8JOTlo;88?kFZDk% zse^61x}mU=;R@gT$ivJ%IMjLuwg;~$!DFc#Q**I{@!j8rDBS_lg zQ4!xnMvXLVa}JyW^cpNo_3DCso#wY2fAw(A0u<8WVD~-?!Ya`GyfgTS@{HO2mX@il zCgN}V0{TI#YB1T(f=|h;tJqY^JtiS%ralq`@ch^tooW`|pz+ zF`S@f5#9G4XwrWvolC=2>HDRgUpYd1WKHWH?Cq3&T#^Ic!XV$$4v*Q4&aQB0sa^%r zL7vhgZ^~X-rF4qvg2RSlF}wG}g|?~hpr*h7Qa}Eb^^=(AA8w^PW<+(lJRr=Y5d?ZgMTr6a05PFHJ* zDzL|fIF?KLx9-&0wk{-OwCb%HIf?9vUrEpFwK!hA`!~ZWO6zTn|Ltk?Efk^1`u zAO?AJRW>TPi9ZNXjXd)h&*oT*Q(SV(1XE$XpXl+L6F3YrO!rfdRJjjhQ+8??i}d@$ z(>2a3TY0~WJx#Y8AH1(NLsu`@Nd#@IuPn2Vl$}Xa^L{~mHQI94Q$^@8r3*6@P~FY* zy3~`SmtRiNV+`$K-6~OZHOUJ(+Bp3YW2vH1g3h}bj*6OeDyGKD6P1YPBS9%i=W0ER zaLUU$(60CyZ_`XKJ7TLev?41zK0qT)wARWW4Kt7A;_i(-d|@3>0lP%hD=RB05|Ux` z^Z8kM{N4XUuUo6PKY_ew%~j2JmUsanvWLT``x#0(`}#??TJ1#afH{abOHzNw#mrGE z1~$-{d>-!x^nqm-G8);Mt**sgC;oK;8k1$ygW%v0)0Px{QZUA#p4;<&wrf*#RG$EO z;u7>>8B+#;b`YkK2#+K@zC~<0rt`zmPT|&Xy#7rkW_~GO8?p- zOFpNXSR4*JF-G*Pop5N|S#Yf|>Jh$Fz!F<*W~Wnn^4nV?KJ{RRusr-Xi6l;o@AEY+ zpQ~KjwR9+yMmKw^tC-=o*)l^n;GONX&MFfm6z1HqMh${Iz`Mf5}?Su<(A-})VwjOe17Km@uSCMaC%Z^c5M-(tJDCqC1}ft1w}tw zH2(^I4&d~z0He2PU5(B=bBCK8)#V#L83oA%w{oL~+ZQ9T>6C(}GnAwl|2li>3!?IK zzanD1O(IB)bUT#FnY5|HzWElMeYHrSx>f(e{&0<>uu#oLJ4{HvsW;SO=wr>CBq_o5 z4E}`{CR$}q%pe>>sf6#jiBEvKtbFXq_es2l!J8MPIoo9MpKVwW|-~D|)VT=4^-3@0$ zchht241L`$J=D=3IH;zs*O@ zIu`8O2}*U9$8QG;Og=Og>mB1p8G2Ub(r05<^s{)%Tzze!4H?7#lK%j2xMH)nF2B4C zdS<%``hExFuX)nMm}U_xN+SonzgwP>7CZfp!`e8XMUJSxyP0s3z_0RE{5)MNzr-f) z!{;B+Lo)6gJB_DHD*Tq`ak@stmcF`YQR_;{0 zZc!iyEbcUDM2YwPrw}j5Tr`{eejAsCc*EubG>~8EB0dM=neVD7Ti{eW7$4VClIZ7w z)rcG-7#IyY6)XGpzt{ixlQTk3obPPfwmb8d}%g> zZ~iZ2Y>@>i{&2@Y|tkz{|R&L6J&`@TrR5cKm<#Ll&V*b}D!1yW_tU;{3kPDUbezK5>2H)OT*wqD5RpK=fAh5w&vNj}o%b_%_Ie>*SilROfG z6!5uo1~9!)Ey3Q56v87g<)HZ_dsb?a8VBPwaR49so0zFJw9=eQ$?{v4GwIC?WN6cO*an@b*ajQ5Ie z4EKeFN1gJTOZO5wZc&ffg3DwqM_vB`4;@agq`V1pao5tmrvBXOW%>ma`<>S*Ms+nA z>|)}}dj+*>E*1{h*@V+U5T({d`k!#Cl}|r9*-5L|0fL+yyO&0FtD(8Q$MLQ=WwKoY zg7em~c%ynEI*L&o@XBUldet9WV&}(sKP?04fkNNS^}`H6-JlDuO#2a6HUh~j2P-z7 zcFuMWLv#?AyU^BjUf1m$a zP~ROv{%|3hui=!S!dUSpX}`x+hYa{WAeA&VQYAB5HvtcEJ_dyl+*HCM7%$owWL=~w zz3=uhTTqNaW-W1dV0vG&2|kTzABm<+k?DrhF)Hev=8C#FjV@v|6t8eMYbxQEq)jOi zY&OW|^xhBh6WsK#Kv4-fmz{=;_EXzW_Ay79D@MCI?@7`4qB|_8Hc)NB`=4}&qhXo& zg3ivF?va$Z&))rW*yim(%hFf)qULSBSZ)rDY3J{1vPA_y}t!(>2HNazNL>kcE7b zVVozvA8Kb1RCU1KOI&V z9!hzkhx<4LLiG92I_&9|NI7=|H4e+-Wd0w8PMY%WyA4H{&#zUY*2iMF+1b-stKuv8 zA4sjCvvicir66yaic%8xf4R%LEHmuJqWj;2dfkZPaer@J-| zZ!iIHasBv-%hnIq-0~Ayh;f1~Fl+!yg$X1$TSN52auIW0za`5Y%jQ_7cd$7?Qc+BM zD73R2JF)uv1;|b`1rBv;mUV3#wZXRqJc@wYcwqicN6?sBQM=0)_SOt2ct)u!}Rumxv@MId@n(Mt4nNuUPTL*&f29 zlwlH$rqgkHtGlcy#kK2qLSr?8%N!0vrPAeUH)K&h8;cU&In@L4P0!5<)a zoSj`hj#u?d0wM^P;f~x-q-N*-mbG?grA3JVE)(3~1)AV1%%6%l%E(w>7Fqd8%r(Az z?m3Vfp;70zM#1gpGT}$^o%+XrPR2yAa*igg;>G>bRp! zybI!~9IqoDk7y{*sJny+6MAzf6IQaTQlKiLh1PNUrf2Z1N~Iv32{~^ZaV$5!%&0Hi zdHB}*4gD-i;&19Mh{7p9kxtFhM!HD8m;G`Db&w6Qzl_%g8Ln`|o{z`r>0ia8c5cqS zEN`I%!;G@Ux<`CBkAUIxbPC9eeB>FxnXag+*x}sT2RfGHUa$d& zYt&*G1YC>LhW&-$R{ZiYBTbUHV+Smhebwv8>MN3C2dosY{C#;Q{c9xt7!&t)eIsOf z|0=9|Ht@KvNKk=r>Y8=iVU|k97yx=)+;wBcZv2&U|3`fAIA~6$XV6`DRFDjK^-dzB24dH4%xg}e%k_A$$9pW8M;CS`BdK5E1*sA!piFI%IXW5 z-OlCp-3x5n=iG?TTLw<@bcz)sgMa%BUV+Nn#VjrFvc%{2`k-Dz6zTf`pxmYvrdH_8 z99s}k@k4Ce5eh#@}3MWLJ z{4~S#TEdY0czxGOF$H69X&IM%=ol7%1@Xj7z?gam*jl+(Lb6W;~ojP=Ws+H0bnLhlRsFYq+l!!P|2chA@2 zT&{7=>fKDBzoQ!%k;EU!m<=UaT-%NtA*$JYG> zlt=&Jw}!Vyr>EHR2zN?#= z!j`RPjSo*u{8gVn;z!gEps(%@;;7=R`H9ophWFvCzlhq{!iqR;KJZ_bZ&|$(#xMfo zTqBY%JWxqtAA)jNv}tha-#oR>vkP#+QK+yPj^$DqeVH#M=62}Fr4@2pO?Oit`L}gm zhK^eW;V1Ycw7PpT2X|qQor3OSD@%9l*d*MqUd}4`59iz742->Fb!Zlsiu-t8HO#Co z>G@(lMX!qE@?f`ZLD5=O6bTC73cau*oy6lA?{4okN_Xr)f&;BbUghuT61);ytoaSd zj0=;1vj&|!B;fzPWBWPBNFHEUR;6M5*RWo9xT6h9Nu!8z|3w6m@Pk%UG~K6m2R_e^wMy^|4A%wERIwU zeH2{RJQx)ZTby5+%3__WFzmly?ifc-LU71D6J3}&S%C7!<$&_YhtcQ4yiZ04r>SD7 z)I+xZDB5f5@*_Fw))2+`PAg>d6YwRa6^TIT;`;<3lM^kG5_i(X^g{`7Y8d5szl6XU zI#99*;~X!-a_9n(9T@3yL+{PsKg=Tgg6>)>yru0w@#~d3A``c)wpVdlv&&1BDQ&#u z;dkU~lik$M3cB`$dKlPCZ&2+*h9D%2^DcJH9ZFx z3djQAopLbX=z}b|SCx#SsvH}&?x|aQ{)6Q0tjmT^I}v814WHzw-*fX#{?!>oX$C1g zm*XEK<&4Bz0-O2i;$lx9W|XG>IGYRPOsvbJ@74>c^ul;NY6<8BXr~rev`eU zKuRFS^ic%;C7e2-%02Tld(BT>A_1Yqz>V zrlT|+pnKs91_v?j;xcoi&nvlzb7ECnjTXk0R%>7G!kGb`5q^GuslMN9uw1(JH@F9N zV=gVUEEswQpY9?Nl$5Brl=26!>1AGqM#;bft3vZH|HKPg;#hN;7|2skK7-$MlD|i=X;Vd8bGiU37e_TgK3Jy z3W0A6)X^kp?Wdb>+qUiKC6|z=FVEeK8)+@+%c!)ha_3lCrTz-@cOc4ZPvH@wT!oMh z0?{TN#BG}eswYdV177oVq@{t$&JSap?wtjpxlHtah7h6 z9e1WSz-~BiSDYm`VwH~X8Lt%2nS4~ZJGt7-jwVqejIJ9>8yFWMFt2Igf~)jg`=QuW zwKYU>Gll`;_T3x>Py<*&dFaTRQ>mk>4`|%wbjC}GB7Ho+NBhLnwKwsZ93L$!%gLuI zeKVq)o9SeC;n2%?O4rx2K*#1ulu?59F2cv+I`~3y;{TV%={L2lYF;p4~z> zR4tDEWP{2ME5ek~PTrEwmUESM)9=fv;H}so1ogcPqDw#OIYy*zrPHert) z;EryQyzb#Fhkkemk24eL@F~Z^cim7`1IwP%AX+%6+EQn3LLQNEpTrL4@+xtu*TYwH zdWnY(7HK^SU8zjY7&W$n86OwltN<^2Tq7AsY4*Z9dUlZgI?ZOuyL6w`;(?kc}dYieeI zrP6DjpDxY{%5vx4+D%1=a=A_MO(iSm<69859M(7}SKJ!RFtcSOn&FMyUQjeh*9ZDi zU5Llt8~FnAV2F8izU$KZ4g}0L?BBenMfYo){$!zvRc65)y&}~ea-hu?M|v&le3dkin&j|xePV0!U<$pPj4J_z%oik*7qLa-I(B7z)spVF!Ef=L)W2v~@WKoO^$O z%X-*uQe&&T>Pl4fkNGL8sTzU2`;9^n6zzLaA^P)&;5Lx;;L`8&9JvqbB2Z6bNil#-u>JMwAR) z?e=hHs>U~qy*BVwgnUGG=M>MC<)eoW9k_C;jZjbbfAPvWu3Cy~4AiqjMLlQn=cH5@ zyi5?_KK^79B`D&DY4v{6a}x}0J}Z<=#__PLAdca1Cybe{m2M( z400-0LB^tx^ky75pae74f7wd5I?4L*>j3n7U2CdN&4Q}cnH{a7%JckTe$;oN6%sGl zb}#-mzjBI#yi1*=r((Rldx9~L5y}bRXSoMfS+%A$%&}1Jl6?KA_3HJrjm|9^+O6wm zm|@>CW~GjkaRkvVa%Pc;Gh>sIW$Q}MgS-ZC#qu$o^i%}MDz{@q*S*H`;(K5b-CCt&2f>wr@p`ES+h5`|FtdcuFjBFDlih&WH<^LRN%2Q8gff7s{I zkLIYB7JUlmJU?^f)a725R*rZ5AN5iZK{Tg#{l{odTKnvrUWr4$YWN=l|Cj8e4^K(i zZ@8yQ9P9Zk)C6DWFLOF778;cPs$bm_5y&$yfTSfZ&I2j1K+vbkf_BvBEmx%6dtc#6 zps_@UgX)xvzan(mqRDj^F_#2h?zyxARHTC+J(fKYs_W=n69^@5lztFvc^R(aSjP-r zn2GyHOX^=(MDz7;9_8S@T>!130#;gWpht_NM{2){dt1}*pW{{wJcT=!u6z2?M_dH6 z_%Uf|90?P9!pllp?UG6m+ceZgQhNfd8ttJg04zu4Z$x5q9C_eR0tAjUzr$_h;!d)A zrj;B#6f53`iL$tw(*Z5N^7AaT&^h<98nLsBJ`on|;#Uh9pB03pnMXZyJWL%X{>SV^ z47Y11(_3mhfo^{Z@gMkOkCUqq?mocJ0>7(sq>Cgb0HBd4?ph{KpAyPK{cA*hKGmzq zOU$Yu;^JYxPAw2EE;W(f*&1=LRgb+}a3b74X}h|SuVwO8IoPpw%1*JlSZ-K$_%^yJ z(r4k&#mPSV3JV>X1zZdZ%ILW_#mYDGqT0gpye=!tTbzcXM+)5_F^}O(gH;TjBynkc zur8B^$2s2Tqg~T$H{=0Ns6=iJDt)U8n(G@h&Hf#M|{&|bijg;;5OE=its z73&Zz*^R(p2IDMV<0>J)CIY*M^2)RLa(>m7#m(9034HCDX*YJxtG&r~c-ipziUIUn z$;R=Q>B)JCPaVl;>9VY(=TAUx96U0uc^Bl!7x9ypusY}*=cBI5=bKI5mGI$f0UpbP zHu^1$br~YF_^{0MZ0NyoHl@J`QCd0VFclD6$p?jpd4njS@t%!kWpxOR0iQF4(4@XV{{{C3V=vjPqd3j})$O_%&)|&g(uRC&n zWa7Lp+!27&D<~}Y(iYX45jC&k>pN$dlOxH?_3uzi4(z82Nj?Ks8O>74F*}Ks{HxA( zFIc{*#b6;1EwkZci#A`%V@vJEBioP9yAzY^M`Jr#u^qM@X%Ornm)H_+4ARjPPC06S zF@Z+_s3-PhA2}FHgkN1b^k{xRvk%zcU3;(kR_T8!6oJK=?Ak_~CE1Un>A1v-WAxfH z3TVEpZ*^wZEZl%d8>4os1{_}@n(zi^To;OarEwQ$EO3Q7fxp4U-Z2Z1>>uFZTwS_(bM>1AJ2<&d2b1 zDMM{*+oLT%W4YP zHC+i~jJRU}wSImnznfp)IDUee^sPT}X5byd5NIv@^ z6#hbA4V__T#psfo&!TjX)`k3g%i3Rx-KvG1=zog=%67I!?8&ln@O>7F8yIp56m5G^B||OYAFeh3q{;Rmg-K~UPkF#LC&%=PP?J+tZ32Z=ODO*S!N_ufmC$UQ`k#5V8jk8W7pxP z!z-?f`UmK3yj8!B_UT;ICevSrm>L{^A`TLi1zB*GfD{csn@znVdeiizqL)Ej$Y;!h zN60a)f`n3z56K&=gluJQg8Ez!{jPiwfkgIj&$M~4E7%mi_3KGZ=yz~(buU9+vW6~` zIZW|Bp4%m;m9yDIsk8kHknu@6hUHB{o97q}AXTJ^3FT5d9nau_ zTxkj?n;{(bUV`OWW3O+NVC~kv0pa6IDv{$BeloW>F;${ieE0{QZ98x>I#oHs(9^vc zznB}s*K~*l=~H(5zYU7J==*8VCQr6?tTj*eraZd;;nsPw7liP?3*qOxy2@~;(>Q*5 z9u`uJ+?eO+PoE~S8A4d7mOWTK+mgkCq3LmdzgtJzfL4b3K@Pkt5TCOvXS5Ep!nMzW z)q9!j&HX#5%pgco9IlIFgB$Y^tJ|mYuD^pY7M9228j^!GIB`sjjurEWZs_`A$hUk2 zm5EidItm2Mn6d-6NpPX1GVvAdn!4YxQpQXB3AThT-O(I-k$XRc0*?#5ikumWSfwyu z=etgdTw0uNW$-hP1q__XkN$-}&QH;m;A9%JVQilho%(u+CXv%RN>8HdoU*XL<5wAu zF%sbO65hgJ6l$bvjiy3cOjx!U@YaYyc@#gv_mwZ+dKUCG#7;#HBOn3+)kx0KK%Ln`svMD&%wM4-4j4NKRxh?Oe7oo)9Q%PLWoYHuJxdvTzwnu zlR;&d6ns7GWYq4$_RjJxXW~a{Rinc?vTtjahWQc-b-g!{oIe}UjZ-fYK*GGWOEWIX z)*!-)ht2chf`BuUVhsz+>-`XK9QZ>KJjwi!j$e+ap?TggvylGfdn?6d`)A-gH=rpo zYD-N_5`T!dTlRSmc%*X}V9IvoU;gPGyn0zIR^jYUX-XU4&4ICja8QM`T-4k7iMHk- z0kJe$MV24uRh=$yDH$tqHq-H&T!wUm`<4)saXg9PNt|j6uq3>qhxLtowKg;KDhg9N zHPG7;0#`V5}RDY$0aBNp+qQ_HjJVr0b@*Z4eNxyg*YGF>#DA-2@)mfWOvil2Q)G&(XcjqB$eKGjPdmvi9aSG1r;FL>W+q1N=dvV5iaHz3! z=*cXOT!F*e)D>^t#_rk>BM3_0siw=TypvA8*kg{s#rz~5rOK1`O4iTp%Z$hiiR=rU zm?~iC)ZfJ^NIVk-4`0E8aDR+HbsiAl zQ?ca$B@G>@&CNdR5c^p2naA-77H_3DcED=&_xMqi2)(tolixbC%T$jL&eQVReOeJ= zY>_(egRpyGy}PAx&r=0Wp2{P}ZHrLcE0L^7tEIvqYa}EnIviL%8oMSfMgn~kG(3!m z8D#PFK7%D&rEQT@UW^@$%IiF6XXJhVF5cI2ZjW_6@YbHe?a--e2Xz#CxQ9H;A3YCs zg)khwCCpVX*rU2nfc!Vk%-bpqx1X&eNx{K3BG)q?%&Gcqdu#z)%7i3&WH2Ur!K$z%JBL85%Qb_uA-9XBRrV=Ila4uer?4O zmA2aYa44Bx2PN$^h~wT-i}&ZVHQ%&F!Oyi%)NYw%Q_w&Ez$aMaw6J+Y? z`90ycKSD3GETo0)23F>*Z1yH>8kFI3YHM{ael z`nWCQc^DDv3jK=PKir2Esq~XK(EnC>7MrSSCSV3f&W~jyo1FLKK4J^^cRBJsiH9}_ zFie*!_uLlrpZo;paCaLVW$5a1rox3L|lD3rRz1d$V#S$+Vdg}JZ?f)alm9fk-?4>qt3&YsV*)W$! z@RKZ8K!H9J(xQ;h4Nvc8$@4U8o7*^i3=(!R+p`OnzGuyKBc_csQ*HJUWhH%?APFCE-6v2%XCuj+$SLB&qku06_W+G3rD3kY+{_)pE z`)0E#aU~n@v?Z=y#H)Q;r6+VY1KN))#q9ZWV3X2iDZ085KX@LZ4UrnPI30T87FV6U zAccLNEul8dvhT(<_q>&gS1e~+@nZPRq6$8oPbb!JRriBBlG;W1>K`E97WZx)D!L+P z3HToVk`oH@Qwe;Y!|8SIs-E;e3{7}5!sgVt;aH{+R1( z^II!z^qV|atecKQdfZEHco=u`FuF`w*ZiB2doXH;_Ep_?;9Dzm&BO=K;ytTXt77*l zdP?EM4YY(4qhwIT&29Ou5@_Y*sf(+PPFDJl4co15uhfJ}XSm(94l*npOLUCa{Pe2TXx~$#$FX9TA^2r1lS6g+W4N zPsB5bD`Q~i>{J{lA43_t0)M-hG2ie-A|nE$FGb4__nwV zzcz4{I+TQ_BGHU@4TD`dzgw|gLG08H0|8uUDDFSuf1xN&ik009t5uNlZ9X)V(@!Vv zn#!s-M)qB%=u<~c(UwhpFL(lj&ons|L`p zBuPo@EO~)a@Y7fjCr6PVS;{f|y@qe{hQR#QeGzg3eRoHg;f>%X0B&`k<`Yc2NII2Lh#nO&{MoE1kLBAKDV5_-k1arzR1r;%OP9ktgR@gckO1@N*@0izPEY) z*QLjkf#EIw5Gt{s@Jq9~`$b0Fnp+(4?6u@E1oIe6S2*)(>>Cl9H1o?Q%my1IgGs`+*58RI zYX1V`=Vt3t?4~=`OxLgek;~e(ap36jgQ*vgpq~ko8}xOkeQxfRd})w)2fyH7qjmYj z{DPz4lJArCjEwM&pVEy#90!Wdla`dXH;nmt?}yk}@-;RviOiPKJ%W!p_;>;96#tw{ zd=d}9@QpW1H>M92NsYiL`Qss3g~?1^#g5|dMQ}|&nX7ArlO`?G(H5Nq>VmcfPc5Gn ze_rkGPiG`W+8dAQx0We0eiPe7S(ql?8uOSXE@_UL_i`aC9WK0N0P7+Ztc*dA~Qll<<34PBc9y@o|Z0 z1&TcGDEIkU-J&B7yokal=RuVp(}uDk+RT3+=(DeILe206W1JH|$)nYa$Y-;_?9=qj zC_+YT$jm>-Gv{ZI9^bh1_|a2G4z3 z1;Pw8G-s@*n?$aLpF~a#C1)Jd5GY>mVxUX2IX~{QCcG|dDA%@3iEt;zr4p3#`L`7N z!X6-*)g>@G0tPcQlF3-+#R&hy)v3gN->XtP3gRn^TBuxh`ZJycxz5lV8FMRQ=`d)~ zGi=eDF!ur8K1dNQD`PA*q3-{Y+1Vhrl@+{h{)A#J~RG;ft1~xT`zY4G)>Ydaeu{x`A5iyhP%c(=|Jm5VQ z=sOGcS1BBhOsVzw{x<`b*p^PQa7p> zn7sAHz)wDIy}+V+A|+Ka4n-J=FLg}>BXT0AI=<{R?Ff1OBe%AU#ckWQaIym9eaIFv zBD;3WUi(emm7t{!XF|kO-2QhFE)06lZ>1-vsRuqc(NboT35jacUf;Bk!Q=S#sBv7r z#bl1`n3x57SyAcPeTgeu>pEDd;J@EDm2*HJwHRh`85KVkY5W29-_#sw-4Elgsv3~ph2RrP$Y$GL*vchMF!w5W|6wcPCjrR)3mk|QgupAlEK&1XV%=Kzy(oHbZ` zNTluFeDpnj^uP1J%9*lSQieJoiahmQ&Ze7uDy7j_{Up`l5nv{Qfv}NA#fBA-zB9U` zqg7#F%^Q3PSEMG~M~1@E(sYPe2KqYBScZxh7uFmZW9D*25XIp36{whQ1a=YvDxw+& zRB>~w+b+J6VgOmiY?7Vh*(4IpD^V3-wLwEq+2w0ly_C=bFnPoi5z5d_pBQRl>X-R? zH!LDHIj4l%gwkZ#ja-Owb^Wv334raA1Uus(D^}Kh&IbV`CkT~z(j{uVfWI89sK8hp z@job-Zekewgu!OR)&i-%Q!MLo&Vvy6IjNM+h8Qm`lq<(D0d_~*EpHWe<-?zY=ud3 z2)M)589aSeto0!tGW5#@$NdQ(>D8fW)ymAwj)?RR@EIMG0Fo`~N+;R-TtIOz1qG*R zEH4bxQOx$5uUM1ghdAAiI3=C;@~AX6-&95X4*rsyCH%&wu$eaTGPt32iSBd|g0q_o zQQ@dNz+uB==z-5{VcscYeIoGue>*RMVXC)(bne^vtRK{^7E^n(fS0K1ThMZl9w5Y6 z3tSKMwVQI9kfz)?AmX=pWcwL6F|Sv??_1mYLahY|B*jc#4-c8*~%WkGTIF3p=F%<@NR{hywZLn z{FEFM+MP^9IiAhlo1NNEL>P9F@H$PwELY5?988Zh3=u>b8hQ$+3mELDUHPpi)yD<} z6fr-`KLzD!yTZZ(sdYrbts|Z&cXB9aC%hSY!Nx=V58+%!niEb~y=}lXnCw?u*jEP_G$Ke-CvGSEpn@po>za+oz+rMXLi?cA3?Ih=^d5MqL zFTVn{iH7W^We(Dwu0oGEfOQe)>~u5AqRqd^9{{8~7y-5X3#Zm5zELv{K=CbF3JajMes4EMWi!aW$ zTWR5a_+Z_y4Rv7!vjARXl!5O?6Xv|taKu&)rNZVRrk_`(;DmGwNJ~qS6%FU%`Y+FI zo?d3f)Q%|4N3o1?EtC*sQ<~P@tYt?MR1z!n!=y4M>hp-4&1925M6eD1YcQQ+@MWjWZSa*w|AbhSrMG zdcqw*`RfPQ4y-d5z&pJt4=5uj$Ti2k*Y#*B59?$+?i&kIHx+$W)%mSZ1xd6rj+`TV zD^w=R+$w`dy4~$dDn}u1bBXB!VyFWLntXC69!rnQk$K9l`~4!i<*b{(lAwjITCTTH%iG;A2N)|H=+=2A0RB(NY3r{G%)bmVy zaGz3DG~DTzmSN3A0lJ(Rm%a#68>#rt^U^{{0N7P_X^ZZ1IYynz86}}TEFW#kR`5Vi zVZw3R)yW#V@sYwv) zR?V_nr<5h!^)bQMR?q7EDX~mG0)&~LS|^x@7`&n2=&1IaxmmLqGd~IxPxXqH-CD+xT2p%DA-*>c6bB$gyQI|>IskB z_Pt53L&R?C-+NzQt1Yb>XwIiaVyl&Oq4fP>zLAaz>-5j;+WASaPelm1>uykN$K@jT zr*fM8zolGNup3W~Xu~?tVHv2;o8mXdX$W)7>;uxT;w#k;r-R@d{H@kFSlqRsAj>}3 zY;VS4b;8igQ|&OdsIM!A9M{ylZO)_LB*?U43s)k_by*m%5(&Nu^b%vU*_GAeD#}tS z{#N|xlH>{p>Kr%gNF(MRqrG$yG;iU-)VcTq^;v=YPNAuQo&`^p zK8rL_%X~A)br$akaeh?2$8MWg=YjjBa#{QwE32qgY$PNgB-P8Fl;N*^zCaa$|0VL* zQr)J_D^urdEFm31TFO#SP88%`hF%d_Q|{uNG`8`j8BDEuauTRvU#G2?Y> zTGrF}s&5#!s32p}Prt&a^OK|%J%(Wr3;a(${X`C=+Qbot*ir51eh|dk8-biV{&6(q z)=8du(8qnLdZIGFAy@^;DNpjWE&xFwy|9{7WUP-7LQ??x*DiZecfCWzSN1PXE-f_Q z3JL7tz$a@Fs9lEriz=!64TuO)iOSv%c4^hATRkiO1&Ow^>;vLl&o#WSL?5CUR|fT| z0@Ty;B0?wcOq2EyyvSMfrlunwFNhhLy%TywIcp?C;1{+Xs^E-8Fd%HDm2B z>ikX)TdwhKeA|<+Qgbwo)it_%-ohUSr7uIn99|Cu5pvYDHg|=2Oj4zS(sK)%WM8DZg%s z{fq6MaRgzeH)cy6RPUyCMF+XO*SqZ1Lziz%967l2=*dF|2AbQ$KBX&zn^hAG^HMd+ z$82)dz($;OQww-}vdCw81>+2rHC@dEa3H`(V{<4=emonQur@Qh5-bw`rw6>BgX|mQ z{s`Yiu6yHnM4^&j=3O7woy3JvO z4($W%+1{;k0~UASAkFRl7+k+{a{c&8S^zN~Ty~t69a}~!e$wSuo#J8sQ*5+eYH>8` zSU=8!@h{QHd_jI0C^>qxJ zSzS3N_xChDlpW;;EFxithcJ@7T9vR*;^TpR(j1}p!$x8wz2urA-zW0j(RiNH-fI5R z^v%6q9;XOgmpuu!R(e+#A(E#~0z?5HNu3cYJ%(q~N&<{okUu2!T`r=FCj&LkiHZJb zH_|yi%~itz-$oY&s+FxO0X-4vTPh$1qVCq+lSG~^5%Y7W*#=m#F*OIcLQq)J89-VCh1B%emcbb+JMpkd|R{xQ!jy6XF0@eKDy z{dv;nX{KkFKyWNkQw?Ts9F$Pk7)MgREohgkG&^;W;UUK#;88>ka2L`7MSb*abQr$) zH65{aJ|`eITt|uDsoHa)!ifj-+p?3lG}Gji2k;eM8+C{d(&XuEBmZpL-e#XfUf?;O zDRk0$=rT{rlyyH=28|^2(MVGwyMQNFK(EU&Qc&KDPv`Az+nR{V2OmaIcCbQ7vAPuY zup2-;zb)qjT97PFZ_LNl+V`9YET<@wl|M2@+1F_V_bp)W?3Q&BfPgy5Awnn%=e-(g z#9e!o?^S*e7E!TU=w9)%x#_tji7xUr+`AbW7|k>GDGo;ZAEw#Iefs?@j;hO48FV3W zOA>tO#}Gs@h{%#jHN3}vT@J6KiE_hMuGRGs)#HAfDld6A8yWg-a@5ZIiFh$h#O+n` zi0vJ_kG&XCkUauQaa=!3MVjgSMnSro&5nus?swoP!v_twWjojK8J93@l$Hl5Ak6!% zpqlZ$F#7XhhK4U&cp^`+L3;YQl9}JpQaDCfk(-w9ZxOBoElG%4zLdzss-FV!|uK%|`F9qbPz#gOLwjH011CkzqSXlu3|#k;`WrZZv~jOsb#2eNNfvmnkBQrLW*5{R zN_P<0pnhwMNnqZ`o5szU@~f$w|In+_Js)f9UwjxcfN>)&HAq)Tm(QyJ5$%sbefi~c zoEJ2MP-tLX0((2+qY)CrXoh0!Y7s_X_0aa$hd4ob?cl~^L93Tjs!%uaS(aoVjbx3H zdbpu?BIx8rY9~##mHp(xkj6hOYWD7TN0$QfS3tNXcu(yp4*d*|pVye3B>U$?qJh`= zQFUmcCEx-4FW9@*O&mW}NlS_-Q-Q`Zfowoxl%`W-)pGBHJWa;#h(>MD2=Z_%Oq?!f zMg@9xf!Bc$s7`OM%VA<Fl6#a29ohH-z5_MPElmgQDO;c8&w5hGmpqHlhF#=W zHjc~0DIJ0-Do;EFXNp)ghDC^M&JmNyf6B)fDH2~n7=`q@EHcrvtymwszIK>qc%kfj zD`$G4G#B}~P`jR!1S$e;AId$*ic32aO0GbvQr$k)jYmgYRVzGSryIoa7x48mj=WY_ zFWLN;_-Lvx_VkaaB%6j5FkX8CLKb#~TON^!xZHGmANCK;u;9RwG||k^X2f>qqT)QQ zCoHo4GM**>Z{2p&oqhpUC$6Q_YC4L~S5-H+Z-_km8G8N10||1A{=CHxza$s#+_SW! zGQuVHH*jngJ`Q`JR5O@MS>d2m6ki9;8Jnz5hN7>z2byevEEHpQLh>qpNmM$u6i|<9 zLB4qv8$6Nbf&2DflrLG2Pn=_NXdJq?p?7$PnZh*AD%ntZaSt>tTr;wy}*m|=gwH_5*>6m z%GwBxZM%^~voRYz$S1JrF8bG1wz!OI*ijAN^duUIFdl)Tww%KzC7w?w0&n|*T4wt% z{Z>@g+6czex=%Dcj;D%x)L;+8DQ}du+d%7hUP$=3=;)D+#q}e^FOILBb=Fzc;(Tv* z>EjGH^NEB;sVyrH`qRxFBB|y9w8MANaVI!@adRnu@ve`GL+7`g;## zS){rvyjS}p^~tSXDMtJ~eaZa5aoN!%(ub5fo=(P%kN$0Frxx7wS4WPaYMoIdUV2`~kWcX2vD7)Obo;a|1aEjXdJ{7K;b@X<0a(zN-&v!@TA76Z0N>?E2wT z8};wo^Du&vdv-Nf{I4TxgCe@=bMdk&S^lqERFt(4Z-eP;%Q*lC2sFb*kxxGNz(tze zzT5fh0S%1S7nD>H80u{qakcoN!%)k!Rp>8dZ{vhfeRn}*%Psj_xd3(Qb8#)z9Pav@ zWqFnrPk2N-2(9z?CO&O;#Wrc>FrA%PU7K8L%$;;HoYfUD}UhR7M=Om{UG*>zQ6*wRdtW9EZV~ zh3#E`kPpE-iM|i|z6)`Go=*#zMyr}Ef4v-d%Naob;0&*I<6q9P+#T@MxXIAsXyUa8 zU_%rmrh#@2eDzIEE$t00^&Y;5H(hJX;rpGHdO20&#Ol&wEaLCr!0p^L9&x)K3th4W z&*t0t&e))Vvf}?cqRe!Neppn2`z?Mno;RNc7XQK@Hs$vvdi5_GdgAB=d$>?)X6K*NP7p*b?T$#FSJ=vWFG|;tX5oaa&6+@F|4`y<_3S7e5hoSQ( zd@cI=`z*e1_;n@myJ>sqfZaUelYFfhumDWU#m(C6eN)ss;>wY*#!Sr$@cdZFQCNmm z;dDlgHIZT~jgQ{6(?w^9)BU7kvb z7`7rW{=T0y3t=LdxhH{y62HqA#=V>)uv&Jw3Z&bes7qXY9kNv1I;9yfpb4&K_I>n*jkx@uiAHTY5* zc#F%c*gRY_Wrafp3EspXLbpotaGBG}c(uNrw1VpScD&-(@`GOEMJyFx`s+TwL9BsI z{YbzwPvT;h_k#4Q=>|Knk480Jn^L!zJ7bywFpZ-;tn?@!N#`s${Yr@0>`9npKy|P7 z<%oSOGWfyP2kMu{!cgLwMjO9l7nQ{O*^CBs>4sjK!sAMmeGe6hfDmH^VGXTjBUeSZw%ZV=ySzcxcywqMaqMlPB<>?_G zOTURjo1^W>j1Z9CBMLLL0GIPl@p}-~%-`vX4)ZmL(yGDnNM#c$1S7s?>X0v~=^!O0 zz3zyyv76McoE}}BMI&zK4dpEMfZ$Mpn^wdj2*P*akCFb#{*ZFwY&?`##LF4xP{^;? z<%!7h^Vn3O&IAUeyq}lBK&aD&p~HW{JvyDj;gQ+PcI>UM5OLnug5CA9fgO^3#S+~+ z`mX#XNeI0z*xY+j+$QsVz3;pBK>o3x8r;5d$0jT%>AAXcb|cq?To&uIHrTJWp2uN$ zUrOV;lpugNf)U3?^}2N>7SSo-z}AtH5Nu2oO!^somRAG#!p}C{U%IX@ana3*&`ycq zGF_Gjmt~itV+yy~KF$jz@UF^5HanINgPz9L7NI$qV1NkE5u;?lC~Jd?9sz}BfLv)Y zI=6lAD$>{NT(@P@p3S?1N}5j&ma=C;ISp~wLxXX^#n6p7Ca1kth`L!X$OE;Pc=oCroGO9d&nl=R-k!nbcu36T3hE*_vh1`ZLC#@cu5 zL1L7@Ws8Ia*)IJM(Y1{-9r4%y#e`U@LQ|0Eso2}p{XFt`k4=AMY#04>`&ni@hTHyY zx{}?{$tH-Bhv)|kv#HL2rxP}x5vaGrJt@iR2G|meWf^yu_7M5f5#m&0DqrU#l{RR6 zv`Uc^{J__!s;!2}kLEm*Mty~96*}A>ANVH}jxm^jrUqJuqn-Rw(f>K4&rlJD&2sNV zjOPG{Y#OE|-Co9N(hlS*?1wXaKNUg-o72v`;EKGNsgI2`ZwU>4>}uP`sT4e`lOqa! zpEW(A_rq-sG9GSD?>Sf_fe6_#2drwcFpeGIkyQOcF&HDJGO?*^E{wU5ki?k z0c235+BA3shWjErR%JZR%ptF)Lt&{(G65pR4=O!FJ-x4_K4SO+eS7Z_VoFJ0nz|dK zIZ)75w|co4FQ#Z_X8VrqGrRWe*)p@^f{PFU0T1+KW1dlU8pd); zGB4$g$O|%$vxwpCu{v~=BGCc-fCE6gQ~SsM{CCn0{dwZkDv16CHbTiH5Sd%L7y5;( z1sC$UY7xz}f_!-hIiz+#1?vUzuJ;rDFi@Tj0F@~zStRN9a#>~W&bwf4*M-~mBtyK7 zcL=qbcL%6AXcGg`sj<>~1m(QQ7iwJB#Ob2!&D3t$IkRoo+!MPUiyv4@*ZcRoar=b{SrRi6>TW~JX@MHoyRm`iFqw8tL&zg8n^e1HTY z{VuB4#}|K<(3KWqOAYBM{ndu-Ych}%XBH9-qsZSSTTk$6rp>ERP9-g&+)Y`}u+W*EBy!$}@t}?h zbt?wxxsd)&;YC#OXe*UfO@SQ8FXd>*Y1m0e)QR-jTh=>GD#)_7zL*1w3*x|9jCjW9 zgxvHxmL3Zhu0V~YWf#;p{t)OKT0Ihb@Fgvt$qyz6lBxdf_g<`4`xwIqDe#@*uq%PD z2#`(VfV(5-3<#pH6Cn}W6FQ|&B`-cPkZkD_X+(5oxo}_^Di&ng;L?LTG(InI-2=hH ztbNI7p6cGma~g}`HnZ73uo{(GgGNSxbtZv;UXO$h{T-6%zKN+gx(@VDd9BGVW!i+j zj7;TM7~y4Ry&eiJ-{4wvcVq^+Zvhb;$iOq=>&l>MukVt831$g=C^p^iJMgX4+YAiJ z-SEmwDO!g#;(BLxt<}3MTM>?XwquycHxWF#h zXR&#Fs;H+L@EqpL)9JYv^H%t5nKH@E;f%|e(UC3NFAf6pqd3f+?$qf{oZ1-#j_HXG z{mg6lQjfF&Ax!UN$+6C4Jj$`|TTyzucWG@At?S)(aOXDn?pWYkhOFQgk?AjZiH#%V z8}0!8sEF5On=&0xt)f~wLzt|mXm3~A0@790Qrm+ZBV55rHePUWT zxDf0AjV9%ghE0l7QrV9sM7f?S?*G-kk~i$mXk*llSYZuls2R-@g)$#PY0ZF08oo$j zpOmO_@u{rf!491X4>J?Safy0|SCG@v3*N$zkAMEy5`5Wy#<8*{EDO zAXgb%`x90o06Lht;LU)%q)wJypU6XLU*Df%F6$jjGJ2PN+96X$uxD58%sz z>IxcI@vh7}g6CNfqUN{LqVV^Ax+9;ryU0vophPckq@FF#-BM}uR}|DS^+CB_Pf2(Y zsSu8^P7Zmpr>~)Ec<@pT5!+|CVhY$^auLc|{G9n!X~HT$-V*EOwk=|~-72@R6YOF` zI-|8@ze51WPb#>Z%)%jR5MahxDE@}od*H-G6*%+sf0K^gq3Gg)`*$p63ajXpJ2+s&eVjt-3`pLZ}poL&QozZlkL>a zY}~npBo%X)rYr5melCO3lfNRFk)QylTWLYy`9damF?6AmBRVT>tS3MmXJ+;g9Qn|P zR2P!d?ZH?>!So5#qsD2Z84}qk%j6xJ#kWN!ehx@*LX}OhEzP8}(KHqe(w__B zQ`KF%IqL!AC0O&-I3ZfhJL3C`=O5|Bfr5pq3eqU+k3TYx^FB6}VxL9;GG z7;#UVW}mYxy&w@m!m<|OOXKd#TwECqYhrmq72Bpv6?o!-oxRvOoBA_mup9jsUn zGR_DnZ}4RH$gS!uo)&BiF1m>U0~CVs8Ku*`yXSV*s+9ml@6v3;EUc^juV*3&NS!Xg zDhG6K?J$}x4LBd7pJCM7TifviPWwr01v^~$yQySU&!R1bSfMmCrPAcyfC3@FDUS37 z#yrz5BUrsxbc{k$b$3B(zm_@`@Q98KE|~W`3m~UcK0xx~=@qEo0$n_u(^uS!>IAf| zoz8+80?^PFN=Lr}(CJgvH-?sFdWHFgb77t1$-Y$$T@#Ajzd1&`;;CxtuGg$AQA47L zNWBy&{N72tU2_-BTf3zs?`JT%F3MnCf&MYS=fHCZ!A|EW7bG|>rrp}OdnS^*`kDLi z85F=ZB{YxjIs!T+7Ghe-?%j4ylPG%fri`@o#h@3B@7WXE@fxgJvo1oE4Jp zE|6_szt^vw*U6K)v-d=TOF&Awinxi@nIFS!RduqeAeTonYEFYhc>AWgO_9YUg00OH zvO5^C4|q5_BBTf;Gnq8xF2ZyUr;p&2CMV8-Nr9+L4P#SoU(D>Fev6Egrjn*J*BR89 zud>sr6QQc7M`vNHTy2weHZVu>6E9>s@zT0?VXboBG@X&O7KLDnZG??qPSS4hJ z?+2|4;BCYbP)*h;^)jb0R8|WaK696AXbQK|vFXrQmD?6Q&9^$h)L=Q`yd}yCJ&hB+ zH8eseQ=#w9K^e}bm%nuIr_oC$_Rw=XL!7k27IS%rCIj|CjQ_J7K1YcaE;vdqPM^%$ zA=A^h>aK{^hN8*h{@9s-EsNRM6A_lK@XEDY-5!y!*1k`912v_AMz7;k z!`Tr;PN!qh!L=w0+N#IK+PGUE5e6rRg0aIQh`y-hlKs2$ZCmNNT8i8+X44i5jl6*& z^FYN1zTCS%3NwP3zWf5FIUzmr?Qs4*8(BnA25wo2q)vOC^$=B^B)zL+e z!f|BnDz41%j=-k^+2ZB1Q__7RTW23ay#>An|)D2_~&P%Ik;x)ZY$Lbht;Ht(OT4O(Q``9a^zgI_Rs z=6)loL*TP%PD@XZcF(~IUgq@IZm{CwM`xKXL@wM64ojl0NBW)0|8<(+wFnhclz#*@ z1@&Zt&-MUBIcHHlJi2%5o-OANM^7im2b@IsM#7V626i)E2N_^ERr(!^RsjNuit1f_ zP`qDX4kC0tfFk)UuvGF|u#D@mhJ#eb2*t9={b-WP-G*X1OyPCM9D?HORR@0ELFKy= zX6^pa7lhy)j5NYL4$0XmMws*_Gv2u1`p`BVXg&W+C@W#m1C_&oQ{M)ahVGV(Sgm6z zT5&ulY+GQ>Pr)MUl?3-+XU z7>Sjsq>(_?0^5_(*_K6YB9!>7u=8E0SY#dwOdsf05cnRnKQJdBit{0x4sTe(kaN8^2YYUQ)MJ5OX@j>PPZsnk2D2NQ|6~-e^AubvD6T zA@}`i8&z?XX-6rcBA$a+SX&$h6ZK>mIu61A#notx zE-`Q>s3NGfaBcExvD61_STApUwX#&YoX@j5tOW{48ZiYvL3+P6rj=0bD|vqk*h6S+ zrjv-RzMr&pVsa%GbM8@`!B|g{8eR>S{m<#9gSA4w_3S^>?%6?|$0>3HUj+?lrY@q` zBl!$kx(JmTtgYr+7goj>fkh_AR>ap%MJS@JLkJTAX0CwE+C`DEMl0++Vi5!OPd zeF-f)fFj+9%&ayqvD$75)q}NDSj5&0gKg$H8;Fgs;1t#>RTwF${{nGGXXvKDlR9yM zSlOJZ^bpQPpj)XeLIxg#GaJL{JG0vB98tAk#NW+0uiI3Z&tvJJ5M;Wfv zs=j#CB|;*Gb4(hQmmxRIb&h)j4I%?~M?8l@pvP~0cFUFoFD=G?ALl^M78k13gM>~% zBr;)!+(%sTNgXl`3C>yDfgomJ|aqCW;*>Ua@6?l28{ zd`o1zGTsdpc7{g`+P0BsFOGRH3q@=~AFbQwUQ9T3jLO;648z<%VHe3~#)vn&@Ul2S zf6Ho+m?j&`3rC9(`DPGD zcI+`IXlQo(CPITwrQ%dtc31TFTzq)!g30C3OGLsWS(zDf%lUx^QeG<{Ce66R-Czn| zccMbrOq3x+97YKnsUKD_LzXRKU5LQK;H%SeCN3EOeZ@(h8VA5a_KGOQ0FFMg1oa18 z|5`Z&Cu(p-xgaK}Z3wSd(Shq)wm)GjKXK59 zLDoZPcvf@Jr6eZfQevpHamk2&KMK>m-!=J8{2fFRz=(dnMNwtzb7VS6boodqD>wpm z)L6nNfKxp4%2Ifly9CQXSAjg43(6*dCH z8v0pBzVeyXW4QO}l9HS3tmnl_S@;!RkerZ)I@}wA=o~6thrHCGf=nI72w>NY%0l@# zGEAOp<%BizSxIoRNh&A=h0|ELj;h*;Ri{{q%MX#lN{bb`9L5DOj6RYA+|D{f>I_@^ z5)(eeZm?(W>{Y1tQq{5cA%&f@_@|ufQha79_PAG0oYj4}o`T-N>!0E4ppMBQL1*=dqA^CB>om;I#7g@vdtPN`(02hW&E^@E@=_)ovP7)5YQh&&0w10iwZ4!) z^h-8$H~_F6BO(ra4%LY4#7T?{!b2vi*aG7D(%B$;MoWNvZNhzlhtA$rBOix>9M zNdi_$7z6ac#Oif7nGhq2dOEE_9#dd0dck%3MSXbt_PBpEGLWVlRLn{c~MK6H6U5l4nW>U^hHy|WxxA(OSTqdl9#EOQ` zr)|W5qnL1~9_L5e3{OeYWrynG*cLA6RC|+w9>Gs;u(o5mNpPhD*KPwm3;PrkW zY&(%KEL|7kj99CV9OHFAR`pdXQ#;eXOj28g!xOt1cWXPZuc1vbZNLUJYSSxYPzPgE z#2e#uBY6xtOztxlXVg!(6+Hs9PQ)^Ro!6SWi@#+hn~s8xVs(s8vx2&(=<^)E1RV?2 zVw%Iv5SsI^6NK8~1rU~CLBr=Yp?wbro!jSk?%BmrSLz(5yW7zm$U_W(YjJ~tA@W$M zJBTIO4OG?&<;DdrDoa+j+Dd}2rXs{9rMJNE+gU1@-+q>)Xh4K+@B8Zv zM($q`&HtGBWx!cw?$UDoD4T~vR4MH(teq8OG!4FPyNy)%PX8>5yR9Sw($(t69 zoDT2|S|{o+uBw_>1(5UM?Hoz5a7k`Yr|s~Xog4c%&*GH1b;aHbFPuZIB}8n81!BEw z?T-U77htELk}7~H+ID2gJ~OituU(SJyLm6r(!QALed#JQ`%G-vIcF-^*p9{Vh4HCz zMd@Kh&C^;G~bWC&o}KPG>HUI4&|sAO4}DSN3Oqo(F#cZ)4kjEoC0xl-g=#m z!1tBSZFt_rhWr!9s+|ZS8J{DaWRQ7|n(FPsOXXN47H5Kmi*EOV zURN@;XqPD-M&j(X?tLHob?TP3+#pRODq?S=l8M{1s4 zP9Qh=2z%Fg_kug1>kGRsQYelug8of@Em#nx$<`SZ{ij78Ddr%Hhw?^J@C8eT;7eq` zXXG9b)7Z`8uq?@WvmPufC&oiv7l3=B_^{*HJUoxh4;aD#2s=FTL%K+l!uKezRP!M% zeVYOaLGvoi+Y>X~{BJl%lglpCPPXpk4bzQ-XE;Z2ZLz%2;2WDY4zsN-(>2oU|% z=^^06h3Z_=HVAn8C{ej|_@W_j0-j32T0DUc*sHvtK$=Z&EEwz4--?Xq}B&3m}<$UDA9`lBKaauTR+n6)26!P}9; zB$xj#fEgK(&F&Q(qo8*JW!hqp-vzV3;S0rA0k+UNd%1ME3(}=1QnOfoia7&591A%A z$j(blO`_qGAt9cX#wy8{y^+4W3>^($VC!?x<;qo%tZopa)hhh@rSzW)MA&f^fN1UP zqD_%J@i6&l&RNrM)%S=sgdijLO)$2pxBqUaOk3JLE1$`&?dL z)jt7tpG4Q43A^@DMmCa;D{39rGbndG@u{Ai8k|T?eW2W@QKJYftm`o6`D=z91+u!F zQFI}zBw}X1)q+asUq2z$6Nodb0unE`TgW56puna>crqn*6j;Z_Pf8}0H71o~MKp1V z_Sg|PuAEl&9rBEE?_YQ!G?+$D)PvXobG&Jki-msxz|38STCv@{Jc>K%B7}~-t;Vx+ zF-60|XC(I)pPWWX!hIL)5xjZa2Bxlh-CE}o18xKUlfrMlsT}DU>aqGvN*!)vzcz#NlegL zPLAdG<+BBjVf9jVDppmUfzeBu_inV%4Q6ob+_t&xdxCd;4+oh! zVTg(3R&o%()`A+tZEF+?bm!N^(_Vhqfw(+Fg(QW+&A8Ctr>7uO# zsMsTgrvG$V>#XM@BQMAX7Mj5;3YTA}Vd^JRnLlt2=6A)}AO}C?rEp;A^b2&9Kc*@d zI&$6t-UH+7DifTj<0cxE9Y?1k^#U9+ckhp=!mx!LH?U=vJ81h$M%942*TR{cJ3Wry z$p{yKM~dC#o#9JUg9r0wZ_ZF>$jzy|Lpf7)lzzJ ztPwsu=y{c#Xzib9!iu>96-JHo8-VaRDu*X8+rDx0t{vOAJh?LdiSe$XDy*F|c+d%H zAEBU*!V7obK)}0E$c{{?83fM{V)Q~wG#V`1-#~(kLzK7oa2oW72oHZhup2r*zOvvL zx8y@PQoxqIO{J6g76=SSrBrTS5^|`FP?b5Vr^Z}U(R=7Gm%SWSn6Bo^i@)AMo6HlZ zwpO@H8gCv1M47ffVhU=1OYuAz_KetibHR;uB!e@Vlj_JuGN(57=+H;HmHX{_a?h?g z?xgeY?Y^1eaiROXxZRWXN)=NjFK;jpVu#IkQH!{exyM+7GNarPrE2Zr$J6ib8KTM1 zMsA(my?bcO+^*SO8#iCp;GhJ``}x7ixU#eGcQO+9p%lslZI9DC17n$Zrl=gmnHrcp zjb3rqK8;I5i+OL~FNMs5)G$?oSihv>Lnf`cC+!YKKOEgXs1KG%q8@U)Xm3&UZlaq? zy{SOWM*>ujqqds~PKEqJzlP6Ho_~CbfaL)Cqp0BYq%&yVNa)w+Wtj^QF!A%wT|1t% zWfKYUjcbgJyDi8`O`tYZ3{9a^vIKvRa1;1}UmTN4R)~!~h5BF9Mb?`UjOihzkV}_D zbz`AU2(x9NVZq>5TAOz>sjX^f>m^G}37<25u&$$|Vy(;$ICoVtzU3u8`w8-2ju`MeE1E#h6MwFRom+fdlJ z+HZDv#fleqy5ra;!j&Sqgq9|ociXx!bG1u_yi&lb{K3wWcfib$0>pb; z#f|TzuZlrWcd0s_u;JI@7~gKoWD@d5vDgCdZ{}>KiZQ-#+rM^%1tp=@8d=+Aa&=L! zq|Jum!4WS*=#NEx7Ja3X039+~f3Y-(L0-cU#FhCC!8cq=)M!7c$=d1HQWM*>T zc%GCz>1dwt>2jFh8GOr0tsHRW@?Jn`N8ntOE_$YJ*44aC{!WiYI>1}SORS4mbExL{ zYwCwByCS}hLk-r)A^fKV5Od}boxg3%cJge`T)208Uc058@>Vn*;nC@$KZSR}-sE^t zjgfpp>hnIQM_RQX#YMX0D^ClvpSdtT?Kw)zyq5>!|LXQ{qKYvUR>iD1-Z?~cYApE$ zzKF$yE0F>`lk^Tg7ONA_j37gB%c;ZmDt!pr=Dnn+sY$u37+_|0;yjMLE zcN|TR2BevZuJZlMY;<7}cf(%>mKqx94?JSRt|m3h0I_#+l4Y9bi9zwTH^b7`^fZmc z>v*AkFQY@!R#%(qQj7H`3~8cD3n8h`B*w;9!4y?#)39L*r*C3k+6pW;a5GdbJU)rx zNuexeaCcvqcTlGoSj#i~OAcgQVvWcgiKfK|ceAOUOwL%_Qpm)6Id~ItdAen4n%s85Zte(?e~}%#i))xiEOK3wXyPCqe4_a~ z*&2eB5)FQG2xtg!W8v~TF%=Bb{n=OCF~#uCsqCo?-480UjCif6LC4Q)yy2}-?PKS)S?RZd2M3pzyi5+ zkU3IV%)0KhJ1vR9q(BYtL?U*W${?*hLwiQy!4FiM4eWrkg!00_bXdt?k z@c|QNQf}vBO=3Mpnfjf?^I`z)3#2XBARa4WJ8z+=@@w|mr0I13U(aH==feY)VK%eg zy^-d%R^3x@ESPv+_VN7wm9(ujY%RH!e}g;r$UrRPHkwYIp=9F-*(W3?F1HHQpmPpy zH2iafrPoj@HbHCJ$f_r*Hduv<243(g`S~}=%i6w@wvje~z>c2xOTL5#YgVnmJ3ent zeV(6f2oVltJo!DXRWeJ3k?}|=%8u$;jBzBm@y{TlBJ}UsQK^r0x00uaA0(J6oR*)< zCkzW+g~%RGRK=$#?6A|BUh9dl#RLgXhqu2#sz?%&R<}eV)I6QaW}cG-s5Au_U}OS= zfDms`lt=q-hMCGlS%-PbL;?SD-XpUKzTcCipBu!~Cv;sxsk;*C8Pjw7nNX_&Z^5VR zrHNXm{@IP2=Yk16n9s6@;<2`lBsgXa!>5qZn2@$&VxL2RrbIY_FDT_KtUZzBBuU4#;XVduKayZ?n zb0}h?y5yKdk;BxPA%^LscoQV=9$*^$FISuTyq(QLT;^?SjoAF0laUZi79*0}gP-iD zq#ZoEw9aPgd`D9Pfal7)E`#^+#JiN`5XXuE@>)lwOpl^UfG#@TSmH-ehT~IQu~ZCn znIrTLAcI0-D*a?f?gb(HG3-xu9DI37WV_a^n!7n!R!G6748VguS%T7(5MWiRwxa`3^sUs7oO6;aXf#O&m znC;ij?J}Zfj(hAvd+cINH-(WDip6UmrdVi1KFcK+rN)MO%}JMkKq8Kls0iI-TQAvE z7AQ>piB0;30v+C&5!Sbu3UMY53IlC3Z;()+3oWxvF06SUff~_g!nu^C!1w{Cmys_L zj}v(cC@9TTk^L{AHA5+nrd#M~9m5k&goDM^PK5Sg&^?PDQ@sk~mJy`*stJ#5>OH?6hWqOG4Z zya*_o7$p2jG-xiJnN=p!QIU4D!|&kLlE^daMkW?}zmb+kf`;tDxp6%@G>my>eqe`f zg>!qr9aalzhOzg$E3`xJ<%+)J`^c7S&~?Z4+B5wt5(tHeZ~0C)nHQe*q(NfncBQfE zHstj@n=sanC+zcq)W6PK2}gtD=@9!>O15p;v<0$E3dC)5o3@Y%ef9|%jYFMybxb*^ zID`elE8aY^NWm93c%)pEFY#vO`Br$`)=mGr)s)qYEZQ3=pYj)$sWKmGzvWv?I?C?1pK&F!7N9BYngQTEc z%h?{)TVpjkqp8zJ`+YQZ=dkucA43K3Zi=8Q#QSO-sGt{BdQz8nQZ2jCQ!!S&mEM-U zPV|jogpG;3rFjH!V%Yx)vu=s{1d=-hxqbRb%>BIS|I);g2Nf z{{^ipf>)XU(>>3vd=sx#MnX+!p1;Q-_*FO3jc26kn?M!G0YnC{RDZOcAS)%ZtNT~< zSO=e1QA`1ax)hsqxb0J%41>4YD=vspGk0k_0?GNlI(jV0N7RqY!K;~Nx}mTV0o}j| zF|SN!=9zz0TioG98a4#Uymqh9U27iBiJVGb+^bH$54Jr*oo)RpK3fu!j1h?%sY@SB z`F@Af!xOycrJ4eu7UJNNG!VN)59E9DFE}U-kDXhLA+hus`R5QrB_&+{xu1(sH!=;% zK<}d>%7b-a}4m-aFyMzS)G=5&z!zAKz1+92|PD|Cx}2QRa5^QTmM`&WgT2?=2p_rT0gfA zN9(N=VpAkHI`}#z>=4qnP+m4<5W5%JFqzB8P|6&{GysEE#-P2SGI%{JA5^1l=I)|! z8lc}IT*e}mK#E@Zq1?!0=`OODn#x)taFD1hmv&8=StDIsGG!AvUQG}>Wdy|-qpa=U zBZ#a~^B7|SI}lu%{9eTZpnlo0Yeo&=-rXn}6k?Vzw&n?qdkq`xx(XljG=>s#ews$B zMcM7#bR8I5X3!MX%^`K>s8&OBy5}pxOC*SJ=iDg@a*W%kL#Yw0g6d1C9mHPrWWYk> zuIGj=Fr+Jn6rsJL+e!|#OSkw4niQ|Ma`B`)qZkF#)x0OjuqD5E3=)S<;YFj^_@c8s z(-#kNH%IDsPNRik!bmq+pnn)41O%xUb?m9Os9bp(d6x8=$vp+&IpiAx8>j{afV(uI z!q5Y$Nj-pcxu|GdmOrH;a`eQxxG#S-ab3DB-h$}Ne*2bl)(i$YV|NeiPMj# z$?%#TJLF?hmGvsR=WQ(EoqXgTR;IT~;YAqus3(yGCXah{=44 zt{fDsr7k;hT7OBS8Iz;}nCEq(7PnB0JiM~P#;*T=@dDFm`q`)ZfNc0m)vNunqVuC` zQo;RG-XB;?y8o0IU?5_@en@fqI$Fp-k!fJ%Ov zf29G`Yjo5VKzBD8p#CLFgTI@XuEWj!LUh`{VyX}`?T_Y#mDMt>bZu;EI(W;Wd^TPT zo|R?nw0FjKc)48A74MhxQ!myAUn}(mnY5w^%%7t1`k*|vR22>zH&2@(Z?Dm_)8Z+N zOlmm`_(wtH0XN5Hiap(TQHxpM3uNTg2ONP=;F-+G?yup!^gya^547}a36$82$?oG( ziuL(4AFY_e#zix^?`JvNxNo$+WI&ws*Ysa`nWVleSUOSf8~t=d1a-$F#Zh~TZx$65 zxfqMffgt*1YBJAAfpoE)tMb{CSVwc6$P%ecxQv!X?J$7>EBtX_ma7cBsQ_9ftJ2gZ z1P{D9K9Vl5wW2030(HwSY>&=-td$TFXKr=!s-c$ZYx{f(Vt*&wr|`iGgNZHV%hm@w zyOBNvRZ2-JuFQ|UiFpB9i54OE6&bKWD3$_PT!Pi~I6SqPOR%=jZrMswW27OY4E)+7siRYH z84N}ty>SB1qN0cCBJh_^O>6)ZsEx-J1Pr>W7<06?!tj}NHX^v?$7H4eQM&1?CiUYZeew zy`Q>)O)ToPjyy%e%n7_dQG%3NTbTMPtW&giXKG=6F>$-;Crjw$`%y!3!^R+Y>2MDT zfKM`&P!k;QU`Uvj0ZS?bKrki8i_mmO>e+Z`%=!)I;kH9!;7|=6>mX9ZU$HulVH6*O zfYc$1rN{kIwifRTl>{7DHvP(GQf28moiDa%`@3bdh9S>Xbz>Y}M&6F3Art!P0k_|0 z9h*url!57R{aq?NZL6Vuv4JMD2?S8*vvF{*ODz=pAYkP(iKMwUmmk_sxp0%Z&<4aQpVx3U9=oevH{>wy-Gzf;C?= zck*$@L6+nCGX2G*iyR-i70Q@itdbX?%k+HS@3My~3RVoBH;mVi$3~mj{404w@Ohle z(c}p$pVsNIaMTSX?aVO7jTAO zC&;6H|E3%Km)Y;=YH05?oQLFJ9ZfALbt-Ax|Cdu8UWyS57`HKc=2{SMGXEDV{0ne*jRUC_(yP3I! z)dSS8IL$MCw>|=Y#odZ%c=TyHHgrPQ>mz~ zgM_F>yh#X2C+8asGsbs+{tR7ieSe<^|8O*iTqPT#qrIJ}Hc%F)5w#wt)LRo$exIjI zb3XT>x*gPShO!vk2^3Fs#~F$5?n1>-*gcA2`%VUHY-(#D$RGooYiLmsO-4GD}$%H{eaWM;HP{h zf*LEyts*F66+v;Q?~3UNi=TxCjz(j>4;waS9t zhhU&PMtypSe4pl(ns&BD7WAY9`JtE$Cg2nHo49>m=5$fU$EdHNG7j{IqNFp{Kvd!t zDjl*xBh#NK<7En$ZI7~Gyx+$=oaw*|u?y~#3_Xq~!Ox3V&Oy_}d1oD~2vC`b<&?7S zZTB~M?)T7NH_MPNZ88OKi;>4l!C-Y5+Y*jm34}CqX(R%BhaZ|AQH=xdHU;)s6D0F0 zdg~U-)2OH-@kc5Fvbs&t>jc-X?3KJfQ722V#LVw#=J-@~k@ssUNy>>JLOSB{$haCy zH^^8KI;X+fnVM1n{tJ7EgVlB@h)sKSb`*(j1Ae$1K|RvTvmC}X4#3N*KV?8G4{)j2 z1KE?_27xfgfHRX!a43YxbC`Yet`x%81(BD~eV(uR>+kTNNd3q}iC-YiG~V8c;&)I1 z8V79Ko{5r)e5eUc)=wfo!3k1=Ophy7x#(*cczGG&qZ*YkfQf3&q7so3nNEH0iP$Ym&ovJT~{f>MW&ct+r}vuRwj1}5UD+@eQk zw{w%rt{Bd#HuAa-rx*RCYq1o;8_=q|HPRNrEHw`aO8@$nN2qP|Ob7Yq-NislNtwT)z=1H)WH)QE}yHDgL-QER_aFT*Ja zx;{Vi1-LZksSUj|OFixiPHKo{5da&o=Xv{ie2P`dK*7$qSKs@Qly}v@FzVzn@BD!M zlz;dc?{yaUP9c?%JU^v%F*`}TtEe)U;fGWqEQIQ>O$q~dX^zF!!Gt5Rvp4$9CdU@& z_HC51-|Z9)F8TMO*S3-<{nNfnX$XI*GL8MO6-Sv^S_a_^zavj%Ov{Sty!AU)_gmI< z5cG#7Bz_~lSG!W?9See11y`OkqdZ`9OGdV&VPB21;`89zASp>ize0K2F(1t3tiEhv zN2&PiOO!S;6ZG%cy0zS7>SR71A4oQ`oh@0W?z*U{Q0>aT;SnzY(B=Tgm|DdbL&^Y* zF)}=6pj&7VW8JRh?bPMzz7wm{!HQCvr3hx(Q~mBXHkU?h8NjCc12M zW@p60KM}Er15?GryO?jFS(uL7fq}t8nB7NIi0;j1e@QbZ2D0&*Z2~URVNy@!nN4%J zK7}~7k=1N?r!|dC9@tk!FJvBq)SovvP>CDT!z(zjSbXAk>|*n=v)JeGQ*8F-h+g5q z<6^3|2E`41X_TjyGp`njoviSNfHFXn>LiB#JbW}K<6@~7`FgT=_y!#$;^t&JdA6PO zV|Br=cw|GWS$evQDDyo^A!urRVkR;Ved<;|!%wwo zKx~NjmFiHG1V4dQxV+r)Lr7MGtuwH|Qp2J|bnVEf2T{7$eh+rrW)UuRHxpBsoRvuM z9@$xCZT2`C{N3X$-+i9IMS3vl!EdR6yKlQsWWeCbyc`ix?MOT!Vh)I4%XU*LH{6paq{O@i_o;-URtNSzocq)fg#3NF-l@~JMKBFrJ~RO)Mat~b&{ zpreLd9s1}%F^=`|v`F|IpIlnGv#VcIKYU2_uv>5*jRXXujwW#p(%nJ$*aA9<9Idzs zgcoes8}ADzm7&xiJz;)b{q5TcNpmV60@)N%N*DYog100R#pS`}66tqoy#h^5QjXdp z%*jRjH$qY3{N{ZP0h#Ae#oCfvdSYPObEpZcHUzGsmI=G~D)Jl5tntrzG2-f)21Jt2 zc7UURzrru~z!s_5x;t`Y$1UT*^69T!Tw-D&Uxh4>q{FJO83?MdoKEp%ARvJ}a=}PT zpwLS*OwuSZY0v$mXoa?HcGqQbv1u3}mQhySHa9iSwO~{HRoS3?>0vaeU|g~!%*d5A zsYSS6xbLT15lI57^sf>;FVm^g^$FpDaPCcEdTERet{R{6vdZA*{)lq#GcEX{)=h*s z*MWK!O;5D7kvAhT!^Ql`?$qM3gS|6lDHeu~GQvcHxICRzOyZKh7hT@kcjUcPr!`Xs zNp=?HR~mWE=62y}rU<-{sLKwsngz^pFOKXj4)xh2;Jd zYH|_Bkho}Apv@!v)q?B)@K1u!*=unJr zGN^`k@3+?)_r{nxTlLk!L5!t|w}PigULH8?S-!K5WX9_-4ZC8`u%O9A$Pne&6UZ~FfR>_5pS^%UL6r9xX<_#SiD9(|nNhKi2yR)HKgj9O0!& zMqnpH{%J@0Bs2YTs?$wR%T0idTlZ|1CK3)*;-$lTJpJc~^D@m?NZ0mpRJ1i6vD_OR zrCte^XU?T*ivZ@l)>WT5DS`f8lhm*``uRYU6U^hp$tizdrc#ck_&8P-Q|l1IrA<%<5Puk^SwM0{})b-BlQ&@DZ!Iut_eF9DU311T(`p0*xWPlf>U$9^Iu zkRGmTQh&2Qw_Oo}c9!(dCqzx>g;Cmmj%T?^)BYrbmp!C+pmf9`BTd>&Wg6(!MU!O#QmmhvjEx_!1be|zH}IZb;2L6TZJp;OxD_u%JlK7R9(;Y5 zi{r8@{2OShp#t(D$lX;E80FtzQ`O%$Jrp~*8flM1(G}>JK1>hgOjOJ3Mepew7D(V0 z`rx(D4Ft4%oPR_izM%E}7I8#76Q6`={bevKCzPR~dct3FYAB%ZdyXscaljKFRu}jIkfkvL|3qbRC_bH2B9RJ? zU7`O=vHCwK2QRN091lrEc>H&}Y-0b1t_v*qRmy|cgwu>0!`cp~9^`+a8veZ*BAkNs zKiglxaq2IFabg{lih7v-$rf!*Od4G9a1;&vIjhsf@)h|;CetPOjN?irX2}!dnf_!B zr#WAD@#7S)vI8)UMzWw8*VsdzNqFu)O8XE^U9*|$!bKP11NPK` zlORie_i8FS((rit-b2Jf|SrDdl%Qz2x&hbFOh5dV2e_{AuutgfxTXJmBX z39MOY@9Vwm_6_GGd>DaTH zbn-XgxuX5Vge0V?0CLcZt|9!*lU#+iE2u?o?s<1Ze$ph?-8eVaX;V}{cAA$721aPe z8Fgc9 zNFM22dWk!~NtuBIm$8>=FZ?L*9;#m;Fm(;1G|jw(44XYqF>kxfou z?ZA6i1ZZ3Db)=JVgw6Q-RNH3yfPeypvLw;nGMUWr+m#G3IV$(vkCutId%MZqn|cXd zGs#LiGvCuUae9;KbidyOh}W@zk!Q(OF+JYQ#OTVgKofVfH|+1&5z|N`y3v7qzW=rs z*Au9zET;j4ccMUntuY#ScTI%P2Q19B#nqU@#%6XaYWas7|ahTj=ScS@9LTVfYKt&WMp`y@A#h0YrR{K3t5Ft^^1r!<126q@zY*@ zJ=3Z0amj9=I3jLU_wI$&t??%Gdthem_{cOF-MrSQdoKUMn_;8RDMGHp^#55qOrUSd zYLfgo9nw-3>!q{rwb8WpH|-U==uUprW?jG= zxWY6R^RifYIPcCu%^4M)V8iw-(5v{K8QzBXLf@{9o4ML)y_;-y##JN_GLa#!GY zf&nVNs(~Q|LzCw6V-Xrfl`F4Tiepxwh}pNwjU5F%plv z(rGg$+fO}{vW^UEN%Edbai>iNK0~JFaw^)_Wx(k;ixHD7UIDw9^#2gOW~(Iu#HX+ftoL$Q>c~UPKX?C2}nRJ2-t$wH>jaK;`i0?5^FL zXSp-oacrPO$)Q@cN_0>JUq>B@dW-QqJXj_vB5x%62B)^h1}tscEaBl9r?hY9&aGQE zMihJPNjyq93(+ZrIfkcjm}MavPB^I5GGKRzmr4}&@V1?KOF;(5OPC%>EhHsS>M2P$ z(uzTkt!cfE<4zYvq-8XPWQU_TxGxR7X+b`dDhR~jctaoR_V0p31o77ECgI&#w-XUm z+>8C643Bw`1Qv_vKck9-woEyu8!!x6`T>j4fYr8osKM%}4%Y$L<%u9(apA8y=Ml0m z(fe=yP(Ky|i=e!S*}JEeL!EOuwv>_cU?tdGhd*)eExb#!083BN&!Nc^le7qf80$4L zom8kuag2tQ!#6R#k{X=ciq*l$d8p6eTW#w&XDvh<97~0cpYX-x=fY($&YyhVjg(jE zMOK8D!iM4(E{J&V0Z56B>%8>f!O^w@CrQ5qk_EHJ`~b-MnjfBvS;LnL8Ii&JLU zYfca4-@j2kOggE7**&uX@?W4}Y6Hr+Sg?Qeuc3ihYoqx;$KM^KuVViye{M;kxZ!#l zrVAY-m6>vqn9WtnW1xZM}8x$+`D!EUX`uZ^(tdzW%(2%E! zUSba~SBGtS0It=;C3<)w705b+n5=7uTmwR!*j5Libk|G-BOccn+Dwt3dfCmIdF*1NTFZ6n0XVH_0tnA#SnX;>UiP->w6UYp|S#T%NOI_B?5BW1RofsjD(6 zx7FCPJSqy!b5L%&lDsy;IFg}TLK~e?!B#~~b6vWuXR)jwYaX3oQc`o-KNKRU+BGNX7aqbuY-&~!~KiNhOM2*II>&Wa?DD&D~WT;wKlHceU7B73?DT8r(63|+Ukk7 zW#im7k^?3V{2_%#$CRD}U+NK^Fn-P;V?f;qjuiVV&eNibRX=3mkBz<_eBxwoiX9!n0MQM zxBtE)eUKyMX&>)MRIqkMH#|c_l zAEf_PyqlWhB6O$U&|ws(Cm7kc3JHCspDE&dSlvT4f!l_Q{R%2;ljhPmRWGF|JcCV3 z6iitO$&Uyg86_o*dArb6Or*+GOVmbvRXw>Dm? z)YYN*4KL<~J%d{;gsd?b9#k^@WBo&`IYMbEzJ%9dCw7<1Jr6C5za!^0B zHIfLnWHQy9L3t0NI#Uhdtw`Xl1dOhWk*xm=Jy4JSWN-~y6z-aUV z!QIl-xz0Sn&NDCLduN$5>t6|6jMC~ORnJ8eHuk@gfq5$uN?cxtr(`W&!c)>0Y_Dm|Z zlm_iX%b}?qrre;@e4X3CN!XCO1(vXH#qbD8X31fpu%)od2K10urK^jwme7dgz=|_; ze)<7a)=@Fg>peR*?$~N-rNH3Fvebe!v9dyN2&~TNc;1?s3CU!*AM8E6opfSbx6Yh) z+G%;WigzCfQ*K((Lzb%#T*KbE2Qu}{(Yy%}SsU9eU+1-3a_Z{`*9bcW%N)$fE!M-- zrEQ6|$x67Mw_2M!*p;}z^*n_Zw?qqxXRp+6#YrXx=t;ae2H3IhDXJLc(}?g9GyN#q z4y_&uM0X>9v2S`Q2GD(%z-`9o32H|?o`Oj{44@ZTwHD}X@+#QwrGqdd~y z8|Y007Cgk)Xd73aR)i+j>C1MjmW=C`wDW0X&5sJrU!pb$sGM`^7#zzNC?1~NaUr)N z?%qTGn2-ZLXxr57HB)`nHZT$Q`)!lz%wF`zqx$#JjfqNvTW=;(eg{pLZJIXf_bUm1+@hkS;>edH{eaTJ~YcO@)d!r-|Nqcw%CEEmZm69!zTTFnpW2w zPLJu`Qu|oR%kHNd_({1%l=>VBYW^fhxJkc4F7VtPgu@P4csj49zW^qbaNtkb5gU{>y=16doJ)CUy;cgnXc}%~N-~#F2d(d)S|3J^UHob6 zOXxojWf<^q?SxlFF$X*DvE0e4Dar=}k_kJNVYb+(+;NCFQpy4~Qk&ww8B4N>hCQrk zCDHIKwXAiO!oW|SUw^U@KP!-$BD|)@9iVNkL5snPS64)@BiTRqX5|ICtEm;@1E{^F z+nv0huhfb?U8wQuD-llWe?XXsybT4Ar>j3I=E=3vh(4-<*miHeOk1ZPT4;FYV9D@} zGG((k;Ss#v;V5OH7ZEjXyGwebGBF1izGe+=qLvhMK$d-xD)+La$f}*%ZkCE}yo0%> z5%Hse{NgM>fR+`fAX1ote5khkn%*&{O)kh{<{>GF-PiWL7S`kTCs7$8JSp_Ni(V#& z#4GmQ7ZUQlVr)QCXwf6DvxXAJ7cpyzn%s>OXxLDbCnuU5R;(S zGQsxBO>PeJBs?;B)joffykPR@%KC_YshXx@fGfDLn#AFffF~eyxv7V)<3@)TNODd8 zL)sTAyZPUzs;DtT6-k1wqEH;~!$krUfr=*y*tcjIY>~m4nQ_j&|Au{c2;mu;@^#DQ za*FRvy7zq5(l{ERAxtx!$+gs;eT5c59z#*;`u(Ht)OeT<QGel;-J+W9L1)(m`#OP@)#fYQzdB~@`kF5Yof1O$A={XO|s1r;mHAvpwt_RKbi2_ zjA3yq@28pAd~j3*>{Q-INvF!!()VOLAiwh4^}xTAQb$=)h?d;e+wA~KsBR&SMEk7b z6kvlq?dpb}e*gZ!CQjD`?R%%uIwb;I&kakRxSKKq#5EwV#B!VH&rX(CgA@ zW(0KA9cS+1-yG_aM)JWrnm<%eucMl4e`0N4Y(K^oq_7q=>Q$X(?GWR>O;6ggdv0>e z_KWj$I@#yZ80qyO(w0MguHDrlQA3mx1+7(-DhcmHpnkgj0aC>;-8N69s0wflE!E}r z=yhmromMc7w=$-QjAZDy+Kt6%Fq)A|!ALo(i|nJ9R4)=RfUb(3a|9RgH(*4%O74=d zftt)nHwx|aZg1cb1mWt_#8ShBS z#MeUd6oqX|s)L%K1Yu?S9x_k|jyapPWR%_4M~FF=(YC|V(U;d{{G&h$T#-PoGSUA$or%xfgz!COLyiTo0`^+GltZgbi?Xqd1tTDhh7qf8A- z-=00Ywp_4x&s>b}L`tDA=70&r6zfh|fCgy@{9Aun&kRbxmbmo}{GC|0zO}b#x6w~{ zCIcR%UJBvZc$0!wGI$E^3+bd>iZ!TCCsHs8WWV8^>V$U5!FeCZFKK{FDSrEc+%5dY zRJ-NY^m99C{BN9!n|T!;YOF8J2Z1JTvZ#N}IEnNEn*6BoHdz&kFAP57i@X33z+n~>47lEf{XFGyu@3+(jDF6qw^@aC!76;( z!XglXl*tH;i&vH81@skOl5YBSG=#C87>(V`+o(SlWwDvG9F4DdQ(imr9)|^C`2!RV zPk5;cDKGL$6`9Vzu{iE6!sof;HgmuD25M_PBRrF3ucHhJY;@FEFXH{|qz=+?BmR6UT3%`zIg$yi?Yv+o8`}PN~_FEF`4rzpOzkQmzsJiCv%>!di_U35J-$7 zC)Hc+l(NoR-;|VgT(jYXUc`jTc~z?s(>D8ZV8ifcaFkQ+QK}n;XUfzDg^r$tkR$SQE5C|G=pmRaCgkqed-UO`r91dIZJE7z9}@iJ>4sP}Ig{ z%{rMbJ=Vdzy(p+UFx49;@jdKEj>Z97RG@CaTX?%TU(GtPNB zyd)~Ug-w(luWlZ7F>V%8t8{AeRB?Qn$C?eX$y&uhC95)E#-ZI9B~7yC@%%xQ$^++> zpD=OaS3_DnSX~h%P_k}VjIvys`$cI@2~p!m;}0;LKT^3OU&dffjhzCJ!`c@&tn2)%hk zt^_Y~9W9{TX(w)<3Gqs+Q4u2%j|eA^y)olAI|?sZCDBarS~RY2YZH~bwcZMd z4iADA8qCXSR$MkC%>Q6nFl6Yw2PKV(UWDTG_EOSuZakK|DCFFPcU`e#)+#g6-B#*5 zu5y|lE0;Ry)lfI}WIlnWqLKlxG{{^9p3FIliy%@gHo=HlwUMge2Kq;)2@N-VO}W@5 zo}p^2AI#gYwl`!{JQ38cY@lYyd4TncKgK$Wl1sr;CyvlD(%CyRj7HuwGyaM(;C@#@1=_DEg8>lFQ*CwOUU2T+O z3l&$=x;F0=V>`i*DtkNAJNgD&gXG<5gB7&ucr6V?EmhS=*<3EYO0EQgM^9L}``aTF zPtZ3{Iw6TfzB0RksiDc1eEcrX_(3JoK(TtuyK^|V#pOBSFfR;wX~uj-di3h0mvv12 zyl_$%S|_36b*CU6+oBI3Ayi#XfNsH0sY$n~wP!ZuDcJYO9!C}A8m)Qlc# zX^OC?FImyKt8J6@7pbI9O{|Cx^=NeV4-_YZ!1fA_%BYenZ$1Ts=f#t5;&m3p;b5D& zMW^%18V7p~Erj^Bect#!6)O9WQsy1C4Q)h%XX-ycWOdG76dcn}ror`kKedp{H6%WA zXc_MG7782TPMH&al7yisx&>bhW|`nQ(()?CoXi_xoD12mm_x(?f9uyT-L`cm?f?q( z^JaHNEU?1GUr~gbzX_S5me>1o7)mEOvpUtF_>4YYO-&V80SXHOWw*VO#7Nf% z`^I7~j4UoUfK;Ky>E`evDv0DC$LNV<>Si3Eq-@3ziCI9TL6!=;=%kaKLGc=*bE@g$ z)#uc&rcj-`$?K88&{yR&gL6>%l}hCWaiizEYm*x)r}Qh@L7Nl`L6Ep@ zCxdwrrGQ_ipVFQgq--;#UhTJWb|+Udakrn)t%%#UVoGEs8&D1R$OJ=O`GthY^C_M& zdt9FDnE!hFNsu!oZk-<|!A@yatx}ar%=Pd}2hPlD@<>(6(Bz-=v1>R@rf=D36vENK z9`~&-V-%X(nPy6UJcX=Pw$4-4l>^6xHAz}hzOqYQS<)PBA8i6+r;|ZckJGKhktIuW z5Qjv*;1M)RwCcg?G)X(GhsTFU>&*_jQfpWqmYRv94&1TN5m%+a=F}xlj24m4A0xYQKSmANUwF8x>%*JQaL<^e6~p*qwR2f5rQc#>;*LoIY*zmMkYO&n1)Hd!H(NSQFt*?TE&vf6~$ zqyzR_s0iCIE?txH9oTFW8k`lV;;N|jVuZC1DP-P-c~gD`oEY{9PDMb-m066!JJ>`C zj2Zeu7>s0mZk#tV)vgC_bzaD1)eCLB5__$(pcKLo@r?6+9#x^R3Om(v{L9Px0!jTj ze+3vxf}y1f{-aDM1Lq_^Pp3tm+~l4!(T(Tna%%ia7+s62jvIOj<@A#}%4T?<(;N0JF@Ypqhzm@bWe z;arMX30zu&MH{h2W?Ps#t>!YFnwNvA&S~e1duZ&EE^;&6rHDe0n@qzDv67~F5Q{oC z^)CdXkD_MBVu7+t{b3BZFZ#_-lIfsgY{iskQ`ITo#JUD96h%jd!PJ_e<7vAsLjf>&8A&?4Q=B zlk&8%^&6f(6lI4UmQM>?$Mf{zC|g{f7Pijj$)1mE^_QoGt-s~zXOtb?`WjEah}v(I zr-iLWhqqe)6=lblr-iLQ;pvtryKi|~*c#)>UXE+6DNhSqFX!oKdOEswLwP!`_1*Hc zu(jlfR_l&YyR|$W*Vs8+{b$v@VsPp$?myrvpYBMp!kx_TQ+W9vSs&@3%24%ZteXxE!ne~yTLc@K6S~1 z9<;EvaoJ;c?w;Fw$?{7cyL;Eh$8MV28UKHBHhS!2)s+!vr*3YwPHV9REv6X%mhk)O z{4D23ym<^iOr~yQS@UoHv;xeBbx~EhPnvWgkFqqS2N4EByd|>+K11p>WgWW%R)4r$P)Y@|= zr;uN74xK@__C59H)}G^dY2U|>+&_JT)4IX&9vHnLMqACLtYC9OOWG6qM0+an#C*=> zO`rFV-gaQ{wgW@C-mGn}x4PROGjV{|hI_p8@grTj?)JZL|NqnN|3Kph!?dpDX93Is z&>K&S>!&k#x`Cg?twDZI0R@X&Yk0bbp9QTA{Qd|(i(8lTdwbNrgQx68!tv>-{R+Q- z!Ow!$H~5{k0(L%$sI$L^@+28q+`5q8Gx4;S-^=6aY5dMN_VbiIzmKOsWeSU1*VJYI z$?<0d8wOZedk{?Hjga=$l z?}xYU&hI0G?6g{sj*{Uhk<_s6QF2+7NM2g4*GI|Q`F&K7lveAXqU3)^8(aAA)U*56 zj_ugqzhmcRv#{37&zlP5zI=JqzLVc9Z22c57T@^iv8C*_{J-78-V8Xp-L8DQ>Z9^ycj74z#@%?jnxDmLL|dQaXF=;EeqR@5+|*m%nB*znSkKch`B~6<9KW+2 z4+s7CK57;Kc&*l}(~OZfe%csh&Ua*GRE%lR!Yxu7+|?_b3ezvAEL_}vDI zFT`Kh@>_&;1w;3MzKx+=$In;!`7u97FpWRv=X8En@$)!-cJuQ(em=;L7PoPJw(;{k zey-%_NBk@}igJFQ%Fk=~xtgDU;O9sNu#%t000md^^ErM_V7Z6+c`ZLLJhs)k7kuAC z`B}|R7i}87?M4O*Fdeh+hQszOg07t#1yDlhVh25hw%vuMGR%vSvMLY~&wo0~7-dZT zB>rFhdlV0r`&0cBdi~p;{D+DC&iRzTeaAL`#?SarmT@8rl3BK_K6%TQJ%0Db*{!p? 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 F^gt= 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 z

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%0DxXwst3k(Hk5v#GNC{~Bz>eC2! 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

pAuAjO+yehq37b{{&faX<=%q zke_T*=}vkc0+08B%peG&sKgD~#NkIq;+-atbt&eg8?Y);1T0Lg4+KPe}nL{~HMo zLiOlONbVyZ^ok(M;XDO?#kZAr^BPz|_~}(#ZYGh%cT5Zr+~rpWU^_LaL&Xq?(6C|2 zYN}X(+7Gf)R+9m-%3mSle4re}#B{HC-?XLv5tbKkc@)9jp5@(BhJoU7hnK@q+FZ_;S59KlxQB6?SXzDXrc&@nHO`vbulh@LXn>NX&lI7LMTQ#$`T8G&r%U!SzW>8O=rtBWs)Qg?plPy9k*oGzdJ@W!Ticl{u z=~7tG+i+_h^K;}Ag&UsmCA?aPt+%qRUuDG_2QD68D=?&JM8Y9ATJ{6A^CA1 zGb%59SmQ>@%!bVyRKOg`v*i1+MdEU!1c*3}MA7CwLV^AIHAc0M zPHhey^lA2pZiAk=yK-sL`P;QS+E@fffoJkYo>ZqE4l}FO+d3hH=LkvRs)G=Ouke_X zTQ_eVt)48reG#Njs;u}wq{yw=QLvf%GB{!xzl_SP3@om5qkaF^fGwGS-Oa`JuW^~dc6F>ISncZwvZ*mzi}bQ^+$RXM zIp7x7R!`mvf7^N|Y@u;|ATRM1<;uF_j{%m!G{qhRSt%U zAdmA&aS-Y8EWjj8G?%_^f_#$WWBJ+i{N|~#Eve3eqCS0G@(AK-bR@3xF?@{-Hu>E> zgzO0jUJPkyF$Ik_-5(>b+E)VDf}wOMZZPl=3pm@}~E8h)qmiZ_N$y>>& zA-f(Ghm1sn;&tDvc5~ zmijEO_9d7MhyvB!@YwlC_fyUY^dRC_J~t79@VY#lE9p-})Kov{yPL#&MR-;V9HJSV=x{HDQ>_XJ;K>X%Rnmq;7omYIbAFa%F1!(*2m) zp`s=CQ2;?u@8eiX$0Ea1QZWYRLd2Cs8V9_I48fK-Gb}MOooOgA(e(V18p2asIbltc>xBnjyR$P4zU zQ?@=_**JiCGjm@814`o!*1Pvr-qa1@)WE&~dGWo{Umjh@qWwwIf4<(LXkAMVL_oq8&x$VzUkPh=<^YxZ)iJ$xg!=|Y?D>&@q zXwKZh*fe>5j67BaPIw;XIYjbl)G*-lw5ZIa8HwZ7fuS0=%&7rOZUf0w#%xtyUm39n zWSt`9*M}V4bY;YPRWC;-xvr$YqED1|KMD!r-fDl1D%nJ>Do-nq4*8rScXWzc&jJ<< zNqz%v>xLvVU%W$jhI59n|Cw|?9pQwBb0jyO7<_hEReI_*ojUxSX5Li@lyDJjnPGZ6 zzLv0CGK+Z%MXM0f;Alg-^o^a*%gxScGoupOa45f87ZH_qhGD^3(&DVP#r;*NO2z*M z&Z?>1f+tnXTsOKIQ#hTscY;9qbtb-LR?R(lU~y)VQmlP5In%Ow!c#HMqYK|xDkAuQ zE2ZLM*cd7vM5JM6c~^fizv~Q-`{5j9L(Hu@!O(8o;zW8&3k!1-`XHp4lQ`c*8jas0 zP|Q4%7>vGkY&wao<-3vl!9xgoNXixf6`vN8lh=+BQ0oY)vJU0!dtlp^ol--RP*g(v zHYj-*wHHRP0qiY2eKHIs$@hsO!f@5sL$-azuaOf4OlX5N^lw9HJuy;K5?IFmt&D`ynAG5GVTOL zQQ^Y=EHn?~ZP4H3)WoFJW3_IGmlpmPLQG(4$1&@GLoTIV6ELd;{pv~cvHOcT`{nI> zt%FzvbGrM-vXfkLZL`OUix3M^Gx*nl_>F-XPWDmkCLGO)j6;{*3q>K(w(MY{^Kj(!;EOtU(4!UWWe$x&YgLXdxez zojZgKN3!v_hE_i8DG7^jk1UuPUD>}fzH=8-q5~5?R@Z^?lIfk4l#54ad|k>CF2uao z+Rdb9_!**bd1!bfJap537imt?@*FNsh!W8k;auWlF4MFC%yCW@kG7FRTtT6cH~CBa z(DgBRX%CJMO@i$v5-F)hfPIsTi}SttJ-c>pKR80GwnwaNztrsnW15@X4t|k4sj|Kk zrhw65uSnxDRrpQOkW}5(F5WF0RQ;dBM1YoRXIxk8s8|N|Bp3?ar}{65x2^rXzi*;+ zqw7oHO8}?x|9*k6D*+eft>MQAR{Dh^F*SH^#=Hrg{y)yE|E3tJ+2_Uxf} z>Y3bT+vz#9ZFys`!}$Qx!DQU?@2sW zy^>UdS)LlB7ZUSJob8t0P+W{aQ9yM_Jmqd|BQ)LZBb4rv?;?FbkZ6k@NsgFTvf>>B z=xM}-ggVHNF?p26i$X^w&7UERTltZZ`zbB_^!VzIOh&JDFYHCdE^;bz@~IW}eCCmvlMr|Kq1DA$gRW3GG8Gc9s)rLO{8S6C<+>l*7CP(*EDpqVh({bG zuK138)QTSH?2L2u;4Q_z(Ms(94ztwpq}tWh3wC~x=P52i9;d|`&y}6u2y-eqO7v}O z1XndmE1NXr+X5gS71Q7V)x(<*63RSW0#oC#X3q-yfP`-59NxJ+pw(7oa{xoEssIXh%T@QxL?{ejLMNqWSOrrWp4pCBT1YbHC-VZYfH|u*jZ?3nzdE;`T!kcQ91js4q z1{dYh)?_8|rg189*0xY&Ktc|o$|_$pl%07iTf%AZ*DN7DIs%$0!F+f%m?maPn(_7pYsr@EsDs8HJk8Us-4_n+;k${)+Q?8ng$M0|prdh1n zR-DL<-G+ws2R}!T;_V@$fc*R_3H2b{cE!r&tL@bMn@AP?Dkknu>AX)1ZYwR%s=^}D zCjbshHb>B@b@$j#)gLCP^*XL~dH1e;40qZG5QySw$zT`95{br5`Ddh+{U=*XNm55s zx{|~nKLu&a{yTa=r(~zhtj^(|j2wRdK7m;g0Ci*!J%lxPPGH6J<$4D6iI7qL1FD!M z-EOgVlqg{LfbVeS5cw~dKZd9vtc06rZ0pzv)jghW zS}(`s@ACXJD$7qd!$vkN0m=q-e8&?_$rW^3$;*)aYQrrMeEKCSpt?M}cv{dwi4P4E zF{BiIaWY_!okI5Qfs%LZpeOO}Am)%7g6AyvoSqvFU2q*rBB*1Xd6j}wTC=ypeB$)T zZisiV=?&n{1*%EN-W?6j*z6IuRP%CGvF;U5r9f<@@}|S?uef?T2`rf&PKYz}gFcK; ztVY@#dlmLpeO;qoqrVD!X&q@gX{~pOv+P)Pyj8!7WJ$jp9&^|EB~z z(4e4VA$b0i92zOEM8KM?ca_UF0Dw@iQc$>xvry#-joC0+OUBQ_916BHLQxrOFhpK* z*kSLF>!KwJMcxSxJnHpsoY?S9;f4y!nHvat?FH-quH2RixyjEkFEJk}U7X4Jcl`ua zMfP3zG3ErBy9NGdj?LH4CPN;JH0`Fwd)>= zIsvI78a%nN^TBg@o1OS*UZzs{4m^uipyJ*VH!8kK#m#N_i z!(_X|U99a#cJ4l~8YlZ}-dRF>vrGq`W)?y?)PK(l%{+r>#|0?ae_-E8acNk_a7KWo z+X4@gYomGs)|{C~vn19E4R2`cI1n~c0C)XVaL@O7YgKSvclVJazl=>n+?K>6#pIWf zHQ`k<#3yj0(u+gUG?)){rTA@JgJQ6$(c+QwOHp`N!8o zc}jgx`IA6&`OY19DRnwNiEAYJF?;_0J1?r~`}CGT_-5J` z8a!n~NgL~UJe_4P1C}(IcP)R1BzF4^#Sldu;%tz=E$P&HPw}Lvdje>@Bn;#DjE16# za^j@E8S5m=td!lwHr>9q0({sK*csXW5PlilAw7LFCA&tc6)f8lTORfSmUqC>(7`FU zLY}0YKuVI2m(W28s|*L4r*o!Xh}MhH_CwhS;*`p5>hkC} z5KhhesK{}25-5rdUg@N*~`?Gv?8prP*~K}w)BNq8eSP6zn| z4B_3qKVgWCa5@^62!{IOg}ep=Yh@AjC1EKKznoNvrzqqYhoa)vM)=lo()?Vnm!?+} z=PAjEQvW76w&}^WHS5iy)Q!$tisIixb>^oO$>Kt;{w9sS5i#9HzS*GU=6MeF?cj1& znSKP-T5JvvsB#m@1Wyy^A-pzG>1{LjTH5_f?k$={in^&M*cyW7OZ-9OZm%uy;_=of zF{xe?|pR4!u@=DC5&2r{7%A8-sP-xE@AH=JOtoOgf8j_jyyn6rbZYt)_lE_pFiP6eRUgS5Eff?1RAv zk%}urS}Myk&>djHV4iQGnE9mX>6gguL3~jeYUJ88&EWlotgA_93On|1kQnL<`l7~L zyp)gdZpvGTC(Vvc(BB1>zHx(w+S$g0BO)Bp;K`kWBY`7Pv&d)fxjA5(qD(!^34Z$mHFO|@i{fG<7MA|!gQ-4eg2&tOi~Z5 zqh7K2_nsUlRO}K7@Kt`K9YU=;4W8#SSRVTP!~Uro3oSh2Nmz@M04Y>G&SiXO(*K9z zh}t#WetK*0vR7;`2~Z<#7i6?YK%aang#buE9U-cURqU-k1>l#O0J|=3r3XniSDLR> zvyf~Z$*T!!yb`;S4;Bg|M`s{Hj0h#groz`2;g50B*6MW-x>sU_C? z`*gqQA*R7jZ)|K+ko$L#*Fw>VNSMEGr>ktXTcx?VldW7I^cH6=0Um)&OFb9T%(uRm zC9>wY`GD}g^*wxOfMT+DexlTr-S76}8&S+7{PeDO-LRpaYC=2SwFCQTwl}|jZP3Kj zW;)9F%D(-KWVtkl$bI6Dt%r;s*w3(|<*_TbukJO#8A+?JYky;QPw&9?i%UPz))yu5 ze}PQu_2i8Adh|;SX#W|K<4|944AaG{NIpH!o7ImLAfL)pe{iEeTH3vn5wRl|@7%Sc z`jHXHFW%^nI$yUE>DxE@^?2}xKjeF>ldTO*99UV~(HwPktj$3$?cT*PukPq=r?K;c zf?*JGCOz7?QIdl z1kZm?`}r|w&nZ34QPrz;Ma_A&SMs1R)}GjY5QWa68FO-*7wW1NF!vd}4XhAGDXa*y}ZGO9sjDMY+DS z+v~_b$J5`@{=C{!fU_^QZzE0Yc(dI2W+X_>Y;y!EcCGB)TV16@|I+n81{lNjt=m-k zf3W>}TQ~roLo&Xt{eVIX(sb+hHl?_r{k5jPrT4m-E!NH1$w#-> zuw^AhZD4@^(OyC6|Im8(Fz-I1{o|262k8F3qoZmT4(#47@iqKBM4rsf?eX0Qg=G1B zTg);va%9imgF&y_G2dvfp?X;S?2c_7YCSZV_YG|_??~K$9CqTJ$C;Li>tgss^12*1xba zl0WEfNjQS|{np@`>j8`=ewamOH!${|r^_mDms@tUj{eJhB5ati;`a`^EC zw$mfT5oci1EcXwLWh`jVs0z%`c+6TBJo1Yarkw^Z79{R**NqGC!m3T(4_I9;k*f;vMw zo)C%hYE(9FCGjv!uMD`jUf&5;nxX%0a#uoExe-{pHb!3-L zUykVNIO)?B{6uz=Xh3xonkXda^JDkDrSLk311WT!fsR!U%M8y;E}Dpeio@2 z3QzLBXs3a{mO*u%myto7Uju@J{|&KkIJDC>G#C5$ijwLGDw&SK2!9lZF+0MGMxr#k zIG?=r$Hm{e^8{3LkM(n6n@emh=Ka-fm?WW}Ag0=Gm?&6!G(S3VUH!|D)22IPAI=I? zc3=Y$Cjw3mLEj(I#3$hV*I!KR(Y5`UJLecse^b%?%!XTvn1>@U_^{PYNTRtFm(^pW zfeD8^K)kc%0Y0zGF>xZ-plz9cGlxp(41QApzf}-erD%FmMbq-Q}y3Xai9UEA|oVd;tCE$2FJC!MKP;mRy-4ka|&INQZ#e5Gb5?jL!zV-^ksv# zk#WfV-creDj~d-1g?)Uyek`39<6A_YwJ_?mzV+6>4X?+a*A+>nD6<+RWPX1!ir01e zDdms36^|~sc`X)MLY9ffo)#A)pom6Y;qiT>i_UZJtBz+nuD7|DFDS0jAX28fB2n;> zFczmkoU>PzcdIon3fr55cVlfMIj2)s5T)q`HoyB#ghq;pC3HVcYeiH=K zEkVq*m)mdPz3H6~H|git6?Dlbb^)dJg2eidNVqP0NvxM~kRs^fZ+Cl7hNChfGY1@5 z$i@W9nhV?qQ;9~&z(-6vibgo{S1=3Qq4Srhes6LtTK$ z2GPtJCU zz4%h$UQhogNbiJ&5qDHwp2ZhUDp z-+Tk);w2#~VhTe5gB0>-xU{TbwOG`ay7W?Vd7nNm=*ZDKW@k#vFG9FUS_acYymU&!fG`Ez6FOOZc-deP@~@c=MH zOnrmUpWL5KJ(_}d(-2pVi}jn?ZgSA#T%A4QxuJ{YfZGM|ZV!&)!M<-hBDv|O9t5Ve zI)#M|Zcmqj=X0#b*4^Y)lOG-2I6;^}&AP-WXtWB4=7Ik{pW>R$7;|FuXN82K%N7kn zCo)qkZ6$BRJRF|V)R;)_)_T<^-v<3r)ZiH-VFm?N<0uYCZM2lez5IGN!j=NTbN)K# zR8SYVx$5>E*Iy-#gP}{_Q3;vJ9Dl$=Jv@i8$Xa)Ts4@|n8D1A<1D$;6g_2{}v9MXlb&Y8>+-5xlYS@HR6 z7^vNPAY-!k<-*eHiqs>CM?k`zv@uEEq}_ee9E0V(^2!twz#bC{Z$QRC6$s3N2&Yh+ zkKP$WtrWX0N6K3nOfWx|^4>&oXtgg<{P*}CcC0!Jc^O!rJlUk~zk!?DPAdv0-k~EWQ^mq2~K%1O0T`DGvd<|SU|Sxo;k2<|4t(ET5xyd)21$_&utSjK49|(1aTpnI0RO4Kt*IL^9s%gKbp0yfmJm==lILKzd*F zI420h#sHO&855iynV@xAS8xoGCg;ngnLVqu%-Yy z*~9d#PEKLgb)63`5LUOX9R^5K*Ck}R3tZ7ZozWo93hT*Rt46lbFUpx0QO+1yyy2_7 z(JHmnn!gpBh_r+*Xv}1!hc;$Jq#{Quko5{xCXdT}7jm}HW~Ca#J~`Z5tnvVJ7Iz3b z2`I8;U1{kPooY#Pdp3@SaD=62D9G&!Hr!`=qg1{9ce%g-^AvA|u~BkE^}CtnP*lvo zGzVYz%QVkiSY(x*#b+xDO8vD=mWW9=6mmun|y%F!T5_6I*e?IDd8VexHmBcbgI36OcM`xi)>j*L^brMTw0n?B+_g=xgs^C%P0LCP8^CV z%#O;51McTx#|D38s0ELKM(lH37GyzIM-E^3guiYPq7uSM8?D+w)Rt>F&sfX)2Izs~ zo`=Vy%auWiKW3M$X|zq-OR=Awj5{%%Y>qRy`)-B^oZ^Om6?q(H%KKPR9?DpD=xata zx!{kpHJlFXhS+;HPr^J82{{#weuF~31%-5CL(!QW778ILhYlK_ku!WcV|_wEI@$_! zLMmA`+DhGYIVXY-q2PKM@;wkzRu9UF!n=K`JSkPp9C90bCF+P*;D{znG*?_(B5v z0|1==u3Nbr&7)yVaFcOHv{~xiccFz8kkb>Epn6>|=9j^J0iw2HHbuk8ps$a_Rmu~Y z+=-;~Ctro^!nKz}_d10xW=oN_M=MAmd)%O;-9OMR5t(<@x~ibvn?Rnioc=1;$SH`+ zJw!dLlIIZ!J(JL_W4-gS6`5wX)cVone(NUysj3uha0_7RXBDY0-DaHCPb@7~#dx}T zDj!Ew^PQQ|sdT=l4=WADw+1$97g>jkW*JDDWtj#M`eri<1fQ=?3DiiRmTlZ(2l@;9 ztVg2>`0OY-zt&HO`^DB3t%ynEhK*c=r)gW%W#w75iw#`bti+v}I`UyjEWS2k=d&Wd zYsV^g! z9O5-%^P7X0#!cuReSLYV5v%Pu`vd@=;Wm8{Ad1Pjo@1hb08qmJPJuR+>oPK`a>Etd z@onP+@*(@6;IQC&V^pM&&t4+t@sLO1R!h6RusZ3;?q`NKb67Le%Qg#$ei32RtEcuJ z%Zpu8=C($Hb3DulRzi}wp?QY!SdHor-WCQ|<=u*HoD#?SSwzZ?otLvv4|y*OC*sKf zbdhijgYD5*I9uNhg5JpqM#fVIw#k$Ny|Tt3aN zIO`s{Kr0umPOltfVo2P!^G$T6lmRCa&YR=e?TO#<&6ChY%hRKdKX=lN-@HD)*_lqS z^y+W-l-`hM!+9;(;wd~3&SF&zGYnnyDXbi^1%SWID-ojDzPf+LS~|o7qRJvCEP z4H6d8CprJ*+cDht)1bI+wA_lWmGOsqnH$ZNax{DDep(lG_C`lJ6i`xh9XzMw3-G1A1bTnbe?@% zlvWEY=U34*%Tsf9AhVs6(HC|<}(l3h%GiH@xk1W2{=$(|;S z^1-23clDBZpU+||ScZ);x3oZaPA(DiLs|V?PZv23gV8==Y$39PLRMd0{*n?tq`Q8R zaP@kTlR-kWqY>n={8&DJD!hQtnzntcV;fHI_|zU9?M_rFw?*_7pjXR$UujS$Go*w> z4Vk%;&OregoY}!-XvQj=V7b^8GeLS|NWBWc${Mf?;Q)oJwR{5S>Z zr?D{AtJC&_nwl{F>fxLWD5NvO(pC$}GSK|oWB7=&j`3}lq^Yfj!ryiS`a!Fzo``3m zsAN`EdMf2EjgT|bBWCBe%!d9kbhMwrQ79*A@bNr-vRLi@dp}1ECumuO?)xP)>A#fD zso}C@{vyvW9ic6C%j%3fI|b&BbN zO(U`}ySKrGwzsdKroaDAJN^{wCo#`I+);N-M|IO;M@D+Kv^1#fG*d>dk{znwm4H?} zH(-QEegRAF)eWmf&L0#%)ZU^dK7pNrswTD*KEQ#FsPs6!TuW4e-8cL(UD9tnwz6$q zNRZK@w`SxdWKZ~&^t|4P9~MbsY7n#kl|q21)$ zezfSZjO(9?!1pN|&k7bejAP;ZLd3K{lh16^DGDpnEH34p$eVs!r>sZHxhIsvlk^9P z1U4v>AI9QaUBv!ZWU^a3l0}Wo!2J#Yk301R5A|WKcFBs=cP4E(mOq!v$3+b~#mouU=LXRn(m?44c63?qrPxf4P8O4%eXgBq) zMA6kGFXU*$>5mwT>Ki5Kl#Ai0sAZ?ps;{h3iFgJQlu~xC*0Tssxt0U1il*^4jkU5P z2Bo1TS=lK98Y!YRSAGf1+{wk=687-fc|Zy5BBGvIS&%?%&WO*Q)O? zAn#doRso(YUOWf^=Bqe5G1D(mI^KL*NSY|p# zDqHJSwZ^N&zfM47vTV8z4mOxJrRWm^W7Kuvp7*m{o1!E83&;}}q7T!UG61xRFpWgG zJHq1wV$)$dKNRg09D8VQw`TiOP(K|2odfGzo}Gz^al3=YI8RCa25bmFUzahG^y<7I zBrN)>KKq-#(cWH7L}Z8(*~kHbkk8@?WA5NmDF&b(yr_jeLQ)fe>YGJoRJ> zvsTr3lGsdGS$f%u6_<@k58V?ug!M@cZOv~Q>74~>1-&CuJ=@D zF~gl>%M9y)cP41Ll_p3~nDfdCIh6U@o`$mkAc!2a{dX#Z9J!E&zt^#y=vnTA7-|-uV zzyK2I1xHBnEBo;fQQKm}*C5IsOTwr(iL~40`kNep4P}v`eVH{X_Z2uJeF2TsNn)0f z07d34mjnl;=50{rQ)6pud)C6>^rXz}8W5w))Bv+3Xy=FpMIT%=e-A$gaC#wt(VMld zx^vRp;W|fk`iA$1f@Jbrx>1AMXF_7rVFgcTP?BQ&$Ly&sh|Tn39 z629klJ^|{IzZ`%h>WUBZ9S6Q^Vfq!$d0V4^aggP)J<`en!pHjX!QGClCW;G<$43wG@wrMim8PXGmm z9~>6z(cwmEJgai)voI^#Sv+a3zBj{u<-2c+$j} zW)Uk&Lk@UO?UtT^tMgLFPMSJ8~x>N1eMS&c!xYD2@O1$rn zLA)Sy(QMrJTevL58#Wi9f&5Ar@eL5qR8>V;0;keJ|CpDQM1KOTM&uB|z-Z8^nAx|# zVkgAC7!$!Y$3%rt1NJFJTsOmZe4#yTP;D(lntAolW3kOBnvJPkzU##yy{mY>iC*8~ zvxU{YyH*%rJ+fzQa>v^2fy-zJuzhruL|ukjOP6*>)3;tmHc5AP@K`&8Oyb^`6|OQ< zltXC>4}l9pFs-kL3P0nklTwjsGecYBHl?2%TxtLW+HEi>rq~d^`B%u;Bnwjf#~s@m z*YV?EwJJ+9b5kCKhB9j6M z?8W`>u}DGA!U&z9E7_xjdM~yZ?^@Rusgm&NWO+qAyhaYKz=!(v-*~*jqso*_cUl~g zEG|@_nS2cuq%%VVZKrJxnEiS@D4O4pX{Vw7HCGPtLVPIMzD8)u+^--L`~o>g3tzn-2uL=hO<`Q*0cHi%kBZa@V}Xs&s1L`B$GgFh)I2f-H2k@bPiYF?9*Ywurf53^~AKo3;yn51iCz+@Y}cQ zJ+8<_hP0G*(`lf? zuG{&^%l!kC-R+0?1DK#Av8g&ZCGIp_pG%WN)8otL82F&KqgN_WUmZdG;cPTt!6|_X z!-_Xa`+crD$bjzyQb|)IRWe5MM!-Xyk3k^>H4&*Me z?dBNDrf=T!cqh_CTezkwi{(U`Z*;xUVK5pmIbN@C0?qSzV7CktHLb*(gzBp^E+nQ! zc1y$4yl0sVBMg^rKli4R2oG6IP4!7{a1q^5yu#hAsR*}3+LRK(CWUNH?|q%0;HF;y zMMcOt?KEVxpW3#vjXBa>G1^smPm;!G++jksTD1k<|B^fGhGoJRbV{7*W=VO}AI&R_4cVQ2^mWtT>*c7_t{7m!Le zd2Rc_!mfUuKSOS8uJ!SISa#%4BW-4I?RwJB(BIXYoX#{!Y5bLXDh8zF%HSu2d!wHj z%cLrq;I+K8YR^mOsns>|MEe4j_UJt&H0gU#oGBovi%~p$gWYudI%~;GtlD;&+E_=M zTc(}b|5FfOeq&%(8K_^e{wfdU#=j=Dy)sSWJoG5-+8ktYOM!24Q(u2q@%KGM%kTqw zDfYL8)A9xaDR|hg5OZZK%o3#d46F9|2x~{CYaGM1fUeq*g?u8zIG*@-P&)&pvU{Eg z>?5Bd0U#0(HGo5zhS!XvpRhA0Okyw3v|!QG1=q!&WO z(H$KRNmH8>I<=w!`@Z_6{Isbq+!^JC9`2P0gwW@W zb=cA^A?4f=)Yz28$^7?+PKxqwyA4H{&&yS!*85_(v9qVJR>fD~e;{2i@bhzhNusht z_$(AsuLIOuDLz8?P=t%&DL-C!SedzTHP4)iI+`j?L8^U{pDwKKT4i$J%*xuni&u8# zyz_mr5aR>`Fl+#n3=>FjwuWejN)XuI*Ep0bj8;uZi>{-Ml^7V)DZf({?Wim z-#gs!Oet(o0tM^ePj3W0WoO2aFCmhg09|3}FuHSkd&Y_%5!*v}q%sW2{VgOT1AahL zQ9`d`p5>_#5$}}uum04@{U;02oJE6ksaIEqoTzAR+rmoV4(@~ImkH$tP%eGLV- zjnm-W9t2JsF`ju!()8^xyNJ8#a!LopY-6Bwww;LXN5UVlb#~lQCZ2$JO2=!*;}IIl zGpa5jgbBSllnK4qRVq*w(RArleZ(<5D^n>*XF|>!N9@auPc!O<A#3a&92YAOmCqC!oTVi*FZ9awrC!8w%<&s-4C{LqH1qcDkDZ^%=fO?mIYX*sP*hP=g> zKnuRGnj2ukx<`DXN5If}It9dweB?2}nX0HN+2PdO2RfGHp0)vpYt&+>1Fp$wO@AS{ z6~BC#ktRtTT>%SaU-mk(`ikV(nw7#Ue?Oi{{~C!ujEVcYz7AQQm4$WB0v_iT2`Ugy zRg-T!(^AP827n$HcU@Sq8k?ouzmE^@2hEXbITwAXFmEP;u090yQpGSv^~um|l(?1X zppKOYB8+aC53;#lej5O+!LJ zxV)S45~Hl{Ix;ImO#B*<)7LLcYR^e{3cVZfU*Ku9hhOwZT$;+ohtKxEL|r#J4d%26 z9dG0`kWwQAPyV4bKRjZ>0hLfXf)TwSRS)J`99bbB^)>MA*Fbtl`5G6aT>H zcl?O@0rb_~O&pb+H8pf-+wdg5`lqOk0anBz^MU^ z9bJCTF_H&Zl~rjNe-_rO4!7H&lr)M^?th9P5`NHXiv0Z1;IvP(`YK_d2tIk|Q^q1H z_kXsJI>^!X`<92YHUf=+iG;V-OS(BmLZ;hH@3|;A;I|@{*B3|1hh6~J6%R(n!)B&> zBe7VgF*JSq(;efeN(c^_XQB(UDicuNCLK^7c@uq3%=<)ia5Pm6D)o@9KML(Nxco?t zItrrb-)V+y9tmGkS`iTlU3^~vWOAY@Qo@}yH2PoyoEk=Pyx&3KG!B$lgmI1+V>wg- z$O?>9xuN&v?;mB6Z9#V<72eYJ-~07U9g&GkR@-%)*7*EfW=b0`dFau6ZMd2innBl= zP!9(B5p2>w3oD1*d>3g_!5Q4?@l=w;ON6F zxmA^nqRJc_weEqVJpVd*JJw~xr&)wqx8ai<^$s^*NKYsJ5p?7ZUc=r|ASn>T^ic%;6P#L8 z<>sleE#{}rk${k5;BdS*8Tut*lOZ{RPAC3$IyXtBFV(d=Sfqpl|3_FL0kFCNMwy;z zPj29Y5M6x*QQVs@$qbIXoD1q$w&}$`l{X92dD5be(9P=Ph4g^@1$*{yGZQlzHlbzH z`Qi1|Sdt81={GRd$7UM~+naqH!Uk*fsS1aU}J0)^b!c$ol zC35ZIE56PsVj&~rJBxD!5p}XZPXBk4h{Jyw-D)$Oulh4yH9g;shf4{z1fcl0ly-#_ zeYvYO65ovn`i%Yo%-K^W8gC`mu1KFGMxP!D$4f!eMgsll3OpR9qZA#Wd*KFygBW+= zGIOKPO}U73Vo_U-7RH%YYhUifnE^UO`1$?0{C=y!a_ZK<;2zYCacM!zf}yAJ=>mzM zq(p^FDgNL!UE^hFl++$r6`FtfH(pQ@$BN6uK%RQ?Y5b<5Tu(g>koeJ^;SRT?0#6{m zTpEh0-QkdhNua0-8TvVYKSMP-95 zMol^;U2Q<&gD&duHU9$}gCG;Nm&Dd;daS(kRPczpZG<$G)r~=P7a;I$f!a-i)_%JE zh7B9`TzDaQ`tsb7+(>CjpGKu+m9u?imHI2p-+?G^JcUPy@*;$EAP{ZRI&NDmP_@O^ zV4^y`ySN?+cg-(l5&RQaz*IAEVl@Ycc;}x)J}5U~O`N3@VaFY(4X^~~Erhe=a8~Kq zpZ-emIFnBbcZU~?*-<1)2&0Bv>aQm*00;mD3 zpxn88*=g3Hs<&(0#p(2y5{2~f{4Vi{hiY%)GdVt5R;H6rReC+5o13X*cjC~Cc}msS zGC^yDm82sptO72H_;}J?9daYbUS%V zJ_F}5Ez$4GY2u~WAPDjT-ef(mIz2pc590$8>&#J%e;>dSob(Q`@0CXXZn!L<_~z+t z9S^(9c?<`RXhXBxwI~kRA6)`WuZ0w^YTDzA@U9I#lAEx{4sb`eNWAW$EQfx0JJuMt zwCjLl29+yc5QkuQ+XwNPrN9Rmm&gTfe2%jk3jyc&=(n>5zHgQnlH$_T@^%C4X z0SeCyp(KSoP`@|r#?7w@DoQVJgxHp?M2=$m;IzBTucMlpG5AvHHN{V7#sy_@=ib^8 zqC>gdrue3krStL4h*}P-ACxO@4Q80x(urnxBX<=P)#>^`U#bi7*n1;4AP*YMqw`&t z)-NGowqgI~%_X{@+w>>XMXWLlX3rH--603sY_Zd8QRl~K@(Qq0Z;v`3e9ZM=jR1d*dCJRb5KM|8m_<2`;InqRGGw1f5g#L zsU(wgi}Taf=xvYT`TTL38^zt)xrspU_S|aFJ1w_7h38>8wB%4u@cbr^5j@wfvmB!r z+wtBGasVx}Y@AW=t0AnXxNA)BZZ2pnd(4CF*k4Js@v|=hcv!^j*cLHBTJ0HBu{Xy0 z@Jtr4-;Mo%>lhd^G-35^o@8kp<-MENUF)nE!tAFfqddX)TvAmFDJzV!z8iOYW;k{S z=wA1MW|Vj?V{GAX3kIPMMmid9=%~rAnbJS48MnL?Xa9$MNjE6fa?!9U=z9e*##sP~ zEb_B+l^Xw?_$u<0=u(`g!#WxP+G{%4dp}oj4c*q|7;x_WfiCO3B~oLvyJ|0-C=c*c zR8uwT*GGH~(yY;o7r%U3!daWAMMJYTGLG$h4gPO69nEgtj)5srF|)mb%FpHzd0R&Q z_1Z`8zGZ|7X*D4Ot@^L9Q@%YtL1*&Qa9wA!q)8(<=^IwTPERb@4_J9KW+32dJxWYg!J5V%gO1USi`41?qxFR?Ht z-%EI?N93rC|GpHj5Z7CAOU z#F?>4k!9;jPlvo}xMKO3PI@W=WR<(HtiF7J+=3*j7)4S{P%Gk9eH+Qju?`~#0?2t- z7vbjPGaasp4_(UNpc*r7+Xm0_@TZQ;Qy3nj9yE$j{PbN%bN(HhTQBQB@{}lV3q#WH zeZFlGM28Z$@DKov+sm^kd(&>$#KyRHTC+UCy2e)m3z^351e2N?*rXuEA9t)-i(@#=?E1CG{UHqWJpPk8<$d z&V*J`0liWi=+WZnk=kFxy)EnakKiT^eBB8FR-WqM1FC(!LLA%2BF zwm3Np;Z6d6Ciq>PBwZw80stC$;_hkkv?(Di)XyU7<5Rtwyu_>uA}${0Yt;gw#ib_F zJ4++(~OWSQn^DP{A zaWK-`Lt*gZZlyXws{d`))E~6T5`t#}(k7$PV~&dcQ^+oCcSMYm>~CS+x~COT(#w4> z3(4%}s-7|dWC$7`G= zN}I_ec`46IIV)hbT194 z)(lZ|9bcavV@{4FFW0|KEm_-78IpV&tkTU=ieq*XEBRNI?VhlFU5mj)9$IG2W0N*t z#$!|MhDWv?pLZuF*LPz(v0^)HJJKMqgIr=uxIRcnPdMeM{lx?x0YE*mC;G^GED?Tn z<kq6k=9oe zCT0JTm)AEX*Ck$|HWpM?qxoDS>bRP6krqlTP0n!QV|>_+h7-Nooht1)`qmd9A=G~~ zzofLt=3lPrtz1(V$0XFf2NJ6@6iKV%-xD1m;G+E`ixj=s?HrQ=XL05Hv?-wlouQ?K zi7&>!;NYqqx(-7fde;y%F7=Tt3r;KT`m>wfqdn4r5d&9lscK$Enghs@Z~|K*%ngMI z4!gfD5q2fdMxYrcFzJQxp#JmoFzHLCP0Jgn-4?O7@RX(pMNgCQcj{_JZPTcTFllIM zs+xlrQAx=vQPYD%1Qkq1=(F5|%fHMUWa1N<^9AsY1aV%<=cyzKoRHO1oW8Ci1lX0l zk4`95{+c20(S05~-107mEpIbWip5*qK&7gSeP>#+6_9+kK`8u%z8X5i%!<(^Hx-N0 zJ(?SiKpu%H#c329_j{9k@5E*E=|)%gZC~5Dmqy8*k%1dGhOQk!W>4x7UyilE47*he zJEH$31}NLv8nGqI(!uw2D6Tf-6e!yEm=NI@4Pw7dO)SNWRHf@iI$u!4@5xftDcj2^ z`c{y$tc=rcXge!PwE5WxE@74#30WW&y6H*mB{-mC2c@y=aMR|B^P;{2z4f>1*U>&2 z7q!mxmmx;#|P&96lt+iQ*xA9nzl>X65MSc?K_&L zF#h;1ezZQK;S2BNpQwAKnxrXj652f5XaK1qMNBA{%ISCp=WwM_I9UwgVDC9to;9}m zMhVuA@(l2t!ZzNPaQdz}M&y3(}|T_J1`f z?xIiApp87)(y`V&*&}##`@_L`vS$Y2{~E%N@9HYUolfKU(J5F+F>)K8qd$F=#AXO# zI$QQ&^=ybN77R^~`?uXX(gw8B=m$CQ?m&FbE}hXj%o5i=6IO3!vKRMnU710UBsp9c z$0|4GBNit{;$2^aFsA4G;u?~JH8|mz=#CZhh;Hrr!jLcd3Mvz;WOWn>nlWW-w@Kha zOJ%}Wv@mj7Qz_%6J(4YO0Yi~vtev+44wKqh$bSZd6b?+);Yz(zR0g)I7TPH=Ow(EzbMp5*XpK1 zT1=R>81UAJL3$Lw!1t9e-g+$PM~Iz_9EN}h2&hJKjwUw{dM2XvjM9{sUIQ8MVfeqR zWH((STZ6UV1@_Hfp;eM2yd+Yp$MMH{E&{X#nVtcZjbF!sv4P;A3~9NjxAGHh%{l=wHCaZMuk@-86}Xg) zl{o9^_)RWDy1{)*h{-sf#P9@8wFFoqyrPHo4SY2>(|8qyDV3YcoBb(ra~`L!U`XS7 zYeK5es39ENRhj7FsW%>@7i4}juChqKxCXT_sb>`Iqk^g|RQ;kbh{E%=tOBR>XdIhB zHQ20&{hVu)S+W=2)kT9R6t8Z?Nz)irj40QXkd$U?ZqIw ze*{J~Q8d3h1ySpZ!8hIl(dvx@a8?DUT>A3nx#^{uG2_8Ojg>=BW^v>S9A2ibcaCj zeaUAY#}`<0VIx4?RJOZ}dw z44OQdNA%kkL2-YMWJOxdB?eh0AwkjM!0K-7nzR@R^i9xk6A?4W;^}=2OEyc}LQZ)x zb~H+_bKTC!`+hs#*K}_8bv^Lbp2qFascI8-6q~t+c$PnUF6zkhr3o=EmsYBeJoYYb zE|Qu82w%t}RMGHGWFte6S@EPhbblN|qQ2Hw&DntwpjXbD4AXhCCwVd zaqpBW(!s!)xhF2s@$9Xf6C$cCb?=n~f4zvH=fS;_5}b z(x+v5LS-|c{m4>`J%0milDaI4t`6r1&qcH$QbR3{20d|$i_TtfDt*>F*6qcz5gi>8BGblZmG@g;;sj>x8AXc~MstJ}|5cxiuqL z{|c2BTiz3H()ous1uhQReGiteI$#6#ctz78Ma9Jadad9GMDIu7Y^ zPr2b?9P43JnXs<;H6iz4)C%pZy6?ufdXvS(2hZX?%T=plw<>y4;e;D#4kt#+pb$5A z=C?|q-u?rR$Tm8$(tj=3ZgC=06EdCcrY6emS*X?igWQhvdQhH~2J#8p#S^+spkX^K9%Yl@a^ z>U+Wy7<{&o9>YZ$fLetAb6!x{b$#;5%4pNyZw-62O0#kR4NH=gw9Xy6ntc?280o80?yaCfAO|ucJI^5l3;09nW4#9z!tqv2=z*?+P{H8>$1UxJumL=h4Nj&}Sl-B$h3)lYf9|O5DDR zEI|Bqa=6A!K zU#2-WGPE=qS*Lr!eSQoU*w*^9c%rsVGk$J7FU4-Uea&?J z>fgGoh1KnQ)^iFfb|{xw>c4^2%w3NG?}Vm+M^zTu~I z;}6AwqVuFA0uxv>h9nW~B%#ovqJnszc*)d(k=w2X$fs3cGov`u(w`K>UOadMmihWrLmmV*DaE)|L_+i7#zts;~8#w`J^sl#P z3M=KG>j4cg0p%b4J$2w{JOf8w>S0J`E^yo~xHe2uEkBOWNDr`+T4jd`Zww9%j1Bpl zm&86>vL@3MZh#b0MAUsHLcn{d&K9n;fac03{+;fY8ZM+;G(`VZ{51z%ZRs{l)^0kR z%dGTUOBBVcL_-#ic2Wy){rI`9@%5g!d*e$9@4#}R={bpyb3`jpP2gN4(#5sxVEx;--TGG5}>~F%5@T?zpkJ*Jcf`K12S{dd4vda~!3+(_ zWGwR$2>)H#sl21vVQZ^nz|12L~iYXy|%XiGaaQRB4DNB0v>(m7PO2FVa&hO6%h={37zWja!|A*;PokPZ3T_nvTMO)3C6pjEks0i<(9qnoBLG?Ev-2d zB&PiKZ-Kbb=smv`p6sR`@wt(fQj-iwl$#FfrUeWh&acOnaEsZh? z6Dq~wP=i5hvbRNT2B^H3y6+paMGz->Ac313-c~@GA*_lHGQLqgwd#G|n-4AFQzg6fZ7p*fPe*`>>82*L=~e+ zmL{V~1e%w?Dv;Isf}WzwSF(E{p*di(#A6}Kz|9aCs$=SxnBFyuh)&KaVKyN(8FV8S zqD)=?&(Dbf+XV@B%0YH4t^2GCAxKW)D)FR?)OZ0O>UUJaSPb!ZR+w&N82yCCW~0&q z$-a{;YluIM9bS2J0S?{E2PLF>mYQiI((mSZ+%gD8 zWOiV|hAnvhpXHs1WqfgKjO1BAl6wwwhq7~x+jIFB!&`_}*iH-qcepl-rLU5;-p?W< zyIkbB|I3h89g0@1&d%-%Nq-+>R7^sUY(ZBV$=>Y-3VTT?I89-B#V`%Ud|tB^t8(0x z)9rv$(D@UVN@4R&S;TMVNn)0;8ymuA*u-yu4XsLa$Aci8U0;ZDN8K6>8wEr6HnW9! zyNnHi!1I4oUIM~YZU6AxH!?PK>Q;%Vz1hGEWcAHy*@p)xVr)cQkLYVP_g7_0=Rh}DB59Ktc~8Sg$tGjl?wvnHVQeNWKu$isY{JrjkMa_ z>#Nz(`pQO13HDj3-((NNz@9LRS244dZ*Ht4zMil0@&bYDsvxO}=H)CfClw5ZeHniN zca?A(m{$aP2^;OI&^y=^4u2kTiSXeH4Zl<1*-N*Avq8zRQB-^6jcO1(=h`H$JvtTiJ4m70*fat=3%bc|6t- zko%C6Jez@WrCiSWM9{DQz(H!A1o@f#0&d8UHa8lRE7}dP_frjB$m%^$;o%(OSPRqs z+rqLj0Z(%B2FOXIkzPQ2qk6(BmyzH}j6ZQ14$7OJhB&$7??Sr*DX}hKC4=Hsf$2yg zfz(Y!-QtxUYaSd-xJ=ouj(()44b8PVRms=h61-dDCa<*K2tOspgmNcSVUFkW?M+V| z1|p2ANO+xwV3sLnQw*lZ8H9*L85sISP8VTt7Ir{}>( zY{0sRadxIDW#Q)k%mW0{T{Jr#;DFrZ-#HaZIuOhV5!h2@hz_!sQgH_YUm!vaZKsef zHguW1WuUa;2z-+anDV3iD70v$1)GbW2eRm1=uwvzEEZpu&u*!OXEU(hX(L`(&MX8k zBFd2O#slWO)nLR{2BnhC15CdlOTh@~CqOMtNtQHRi0Qv9w^_Z^is@Zpnm@}nCb>{t zkd0}Yce9Z%5}*=Tp&hoYtf*P3R3zRfLgRtXJdHO@RzWW+%iy`YC!ozyP0a6->RLdf{%qg6~y3LVOo#6HB$cm%Qp_}r!Rna zdTACYB`A_>j(e~BQB@x0$#~p1RY={G^jTTww}2HS&`LjYj_mb7nNsFf5j?`}x-Y31 zg_z9+rhDQ;?G0$+$&ausH7>{cDZB6YD$%WE$6O!(3*lJH*OZX2LfzRYQU z!GVrhbMb2k5UcJ49zJb*{9+;QkI-oPu42IPM#FR#AC0|D*bP#A!?;!=g2ktYMHwsiR={~!$_=nX8B4JzLbW1^Mv^UUB!1F&!EYMT!WV^v5o1?i+lEo%QUdJq zrF$cfzdkZp1$_1??b@k&a(@xOGzJ<=Un}w(V0}6UU$P5QZZpa^)tJ2egf<-L4^G3u2F1<W#B&S}tIFELdNT%gmxCTf*`Wc%^Y4mb?n&D<0n&}AXw~~ z4&w<*sJVTF7+gKbctW%7iw3qT!|13@*Bg;sgsxE^hl>qH?X-1agOxqp4rxn+!xrETJ#$kUp%-!Q!bdO z@)5FQ9g9&J3pwl8SpfMEv&QtkXqsnwFm*1zKz>%jeaFybKu-myil2p=$YuUBlIsqv zBl!7Y^&Y!rV(ka+q%v7No}HD~DmoGr5Re)~Pm1u@-Cv-Rz&`~2HC4B9^NQ5@3R_4; zkQTBupc5r>uK=%*tZ7n3?RPny4}K0O%nhq#NEBYd<(5sCc+6Pc8khAn{>?XxN>mWB z=;)Ujo!?Ga(SvCQvB1AF`mr2Hm5IX*v8&3_-5H5>&;mJk{4;RKt%E$X&_{i#e4--1 z0ayviDNpjWCIE#%YGE~_$V43@h^7MQN8I+J=6aimukKsizP!+ED+I6y1D~KqAa@zn zFRGyKS3@F{N@Vs{uuG{<&Fb0lFAKDtW*;HW{d|!373qT%W6B^uRRJ|Rju7{!*0{95HOe&B-~}g*!2afZY8w!2@2JXCQZw5AqQ>vUu;m)xz-&*x zQqAEsX4h!$`F$SrsWAqRb^#7Sg-5%Y`1>kHppW12ATQ&mgM`eGT9-UqoF8U{bs&<{ z{0z5;V$xM&^VUAiY4&!Uv}vZO6?I{nO*KdPI`;r4 z+2m8af=PtRo~~s93<%)SL?6ncA5ViOY|QRhjVu!Trw6=`gB&X3#O&uXKN`79d2)~q zB>vnGVGB}Dk*i8;_i$gyBBL~e=~mYy*1W|;Kgw7}`J(#sAC4r1tB7Z>WTU*tt)3D-h-^02ES3}z?mf=CGKTp~?&D88t5S$3q zl!I9t2PV`N#u1cniL}dA8lBolc!==_SPHKJ=0ZxK$d8@|55pF}p&_=;=LFz}=_vj? zS$i&2apFGww)EsJ)ig2XCz--)!w%s=syv-;`<@qqWfx_l^2gdJ`#P22p$6=oeSe(du%G@?Sa zz`f*UbJ25C65Zs>xOXEmP?~40QydxT+jO&!`Sd1ij;zaM8FVgjQxaVC0}!GpL`2CX z8{Xr;K8M%AM44eL*6N0k>PfpzrI);u4;k5Qa@6+w33)M0#LuhX5z9Mv!(NP1kTn8| zaojLlg_>#nhC#ZU&4!7Z`wj3(_d%1}@;M)5j7u05O3MNg2;+XssiuD~i2iFJLz6F? zdm&EYS+>x}Nh3-KUp#ApS%i?;A}@ zxcLY1Hy$LcZtOWf!2-{8nV4N?cLVK#bQ^*7`CD6b0`opz zJE_K$T}|fv4zEh{e6+1ExEM5mb|Wn`NK;4`&np2@+Mf{h#h1@=Ucd}Qp$Y2(*c%}q z4UlL?Ga_TxDq##+4`qK{#16_Emmhp6((2WuD%4GUnl0%_BUocBA8urwh;;INxs$5e z>ONv&2;(0mHGB8#;iU-qt4O#8cu(&t4E-mTpI4dPPV~=-cmqG^P*rH5B;Wz;FX+4G zO&mW}K}(V-LxCnDfh<6xm!@N5RdVl7Sxv<5fJSc60O~B((ZyEs!?*FVsSJM~hu^mr zT3bdh-hq*{X`sQpKVdnMpYn>@ezhIoWDD?o2^w$k(lkXNFjPc0{-CHHfHDIj;+1>D zrk#XYL3cllke<4Ad)|^6O2cri;KeHUzeN$YlCq|un^O287x_@c`=LBl;>Xokx|@8{ zM^EI--pQABRACSxC`{hRuRy#4R*9q8L&9T>|38nO+Vm7!q)eSIW<~~jZ3(YE5vWRU zugqbhWTI$PtfWE9UCgpjVCrn2K3IzMEBH~LOj$k-11DMJ!$LH{n>yD`I4tHHmV}OdhobNoYWzZqT<8@ zaE6FgVOWUB<`^-7{E;qSpoo73VieHpqR5nvV90BU^@7bem5-)}WKa8u zOtNuE1;*iD%ZTFr#<`Kqes_Eja%VT9f=@IZjvqCRio!;{6rr9I2LDk5B9e>KNu;^U|W zN)>~-k{$M`qS!hp&e&*mA{2eikHN`$$wD$_B_yxn$x5Zu%Mt2fEzmcw;vg$hJn)iz zmu8ar`1m=tFJBVuL%4FyH#P1!Pw7x<+eGt-3jQhSiaez^v_cidwm{v-<(yN;j&0w6 zJPjn2cMteJW%n*wVL(h3{qLVU=x#cyQM5K9&%MA)^SD!%xW*RAcFC!AA7nJ^A8NLhk1)h8Yy~ zdmDF*x^{Tnx0beI7eJG?9ejwl82%G35Q3;}u}Vr0F5W$EZq^v`{vVj0VlW$&$JZHs zkt+s}$`y!IHSR$0ChnO@6F1>L&jyccJKS6AqbZrY2S3nQLVfR^mW8Uj!@IPHYdQQZfH`a7R0qH194=^K-T@(;AZ`1>X1;FG zje_*Ykv;aV65&TGqUiFYwPLUHU=+3XeKLM8;Q1fRoX27tse*w9ar(Z5Qly_m-GF!` zMsjr(|3l8xFu9E`DAAB0@*c+RY1ufHzN-#ulX=VPr_6ioq5BV?I#_@I5R2iI+_Srx z;(rHP8!4jeJ{K#il;sEgL`hk5@isAiV99W-S*w{M_q~yy zQFftW@PoJaa?K=z4qR15qYL}7jmnt87In%6x9;f`RQn@th2zjUv#_(P5AuF+C*JqI z?zTm%N-HE8aC-#91pzq04#{2$26jy4PSke zT}uZ|OTCBh;7!+Aa`=LCk}oG~oLXC6j7Izo47i<{#v^XmW1>qw!L#|V%$aC3P+I)| zgp?T$F?5ScaKFxvCgbK)z~T!$*c9{Ey%|c9=$E^*!mpq;#x6ry0oZz{EyGI4-&g>A z2K+h~WtF?JVsz5P&t~&6sS{VAlJ;iSwdrGAv{%+H-Xd2H$6mAKO=&w5@c=lT!8+E7%t>i(r(^v--O6|JU} zb-3a{U?_vSgHDE~6_>O;11@ivtGrA_wtd?yPj#kZ-)f0~Z}(J+#PBKN;#(bQ8p2d$ z<^cs#lz0mhCas)fVzub-JS5%jL@i=fYXkzH3aZBZ(j~=v-zZYsPHh~xYX9-5DgW-S zqaBQ5Na4?0lp|AI`U7{=wp>ywcF?Kq^9w|UBMNxj|0;bLMx$Z#l#KrlfW@ILElypM zgH&+29WQ6^@L9DwBkB|1B}k?)Cl)t<`exob?CUMGw7hCfGS&D}82Ej+SH5|$X4(vg zauU3j2Z38Dd9ciGWxQJ3PD()yY&%}@%lW~e@FJRuFZ~_YZz5K&Q$G;lnU%PhmAy!M zRdjobZC+p!Hl4jw;wO(d@G;w}gN{HcAhS3HZo zPt6#TuKca%cgoJ;(j1&u1vH!EA!dsJ(|5yY3kOMx-);fY zS*n&KhQT^7Ps?gs(akQh*F$_Nvx-|oHrHk^y>zOq``%wZ|CgCCCM;Y~0n8Uf_|_i` zk_2JC22WX@-#&wxhGNhqqF?+2{F>ZBs{STEE`@V0^PQ*l;DJ56_l4>{ka_iiK>6I% zcA_a~avuBK6Q;`T%V_2SRWIt-!0X9^H*&uu(n`!D+^SXI^R`^624=ckYOKchtM?2D z&GOafm$-iAns7*Y)LvdX9@lBbp$c62S*;!QMa!$_b+{%Kc@eMb4Spz^u5_m|9wNz) zTd76%r*W)<6taTVJ$ZE{EfD|PP+1*%-IMrsA&KtelSn+3xm>1v3E{QD4+Z4r#VZ54 zvQe`*EUygi^1ht!NNL7%BmAtnf%@{MDU39}9OlD{+F}x%YWw!pmM@OFidNLB7b}_H z&(%6HgPs|H04xB#tQHV ze$(O}gf;7TdZP2Z4W_hnb~&YNVnQ(EYoky3lAF#lV$tid92=J@>&m%V>LMo5oj1l= z`~i_rftzi~LlA_&k3SZsSEr-p1UK%%Po&G0=Fr%$)a4=Q@|(m|q0RyZl)T?m!9b`p zgkdax!8LP1f$>B`FBKH)8G&GdyDRQ(O1D z79oGgSIr(daP)FKCl$H6WB&o#g?3aXEH5I<9c1Jsx~v1ld)+ z$Z2QrV#w3do~ATM2nL9V95G7D_cQ)g4g4RHcjJ3E>*#sYmmK>%r%y`qn!Uuz^;!U zY9+H8>Bi*fYxjas*msa7l>@Kur}FiP3>t8-c82t;ie1l_UZ+ZYVF<)F=dtyb)%C_B ze9bMOs8p$-&M5)8H`n0->PyfN32DxL(hibcev2y-5)`|PL&Vm$$mdAE z{s$LgdlXAS;ZyUsY5V!fn~OHnsn{<0nT)fnd~Akk9x0R$)oih#iKsV zV+}g=j}QHc!7-cpYo5T%2((i^YW6?B=zTnhW3%<0$bNnWBwI&lsj!!2ri>D~n)u-t zzKI7y2A4Ccyx@tvluut;72;@@gnn8W zj=3jf{#DFOqmn^>$B*-x*K8i&y5C6!l05S;M$|28X zL1C#YG65ka4yqzU#olN0JUM(J-}XI1O=;yz%XVWn2L`&XtCxrIG=?@djvPI*as1@T zLmNjgdk_jhAp7=eca%r1Zui0lI96|y_C0|gHXJ6cdSL8R*?2sJx5NEC3;V_*wteek z`Eln!8I@gC$$2zS8f|L^W<^sqPQmz5_0m)=EanpE`kz=vr-y=FKH>fHoa9KZE^5N< zHQ0SQ_($YjE$2It;j-+1lkY7WYBarJol$KX=5oq1AI>jQ7i5!Uk?o!IacqyiTz#?x;;Z=$saBhMfJ%cdXCnqRc6N_&&IkE} zp4JU%x+ME5o*p{3arNAQ=_Ni#x%a{>ryL&e}U>tX?aFE#j+wgAVK20(x_fHPq^SL=b zqjF8tuZ}ZSv$10xV)d>yzqCc(de$4fBy4?)8YKSi18{RU4^zhCR2?sU$Nl*oIMHyr zoLXN+PWMCyhCgvjm!{vb$)o8(OYTl>oVbd-qCl7Z=tmj?+Kw0aay6RKXazCvVP;p| zv-lNAgj;-$fq#*hu{Z95Z3RZ+CIL;tHf5?n32e`SRcGqy&o@m z7muMTJLVA!rgqFyeoE2cL97SsAc?3INfj45_qkv8ImpsLd#ZS~IoDbZaRO&y(FltC z-KzCORdil6qOx~e6RgMOt) zyHC?j#N6Rf}Z~Q#aIk#&e zcklr{o+S^K1X88`UH6AMtq~d{2dVJg&24uIUsE85&H-;n$r%vDUME2!wI?>Ecb6=_ zGE-vdLzqN%WotNaFH9`xw2{&y9h#pPT6Y)dFlXN?nwPovXTiqixUFjTcj&~I+s=p@#6U++uFl>6?H|1Srx0#t!%IhMqM1=2h`w^wO@Ex6xp(Ho*XS|8b zyS|i&YO%)PF>-|Wt~CcSYH{l&pe+uZBaHL%Jeag9Pdo!qnzQrHKVt8 zSKb!My3uW?4{r1B&H%m@$Qo^tnEnSp;^Ij8MmoSgD&e)*ra}i?tC>~`(yo%Y!~T;A z=((F|kB8lQ1G3dE18O3veTMVs95}w=mA=A?OK&Mr;f>54Q(cR3yxt{ngS7zVihthV z;Q7v_X|8QL_3J{cswUJ+ZaY#ewuykx0;)S`;KU~??+Bh3!H9KDcqxso~G0Bn<-0GG_$@ccnd$ zODZ($>qxSwhJC_H87JQZ%OALbv%-`43=WlU8#t1i4^x`<2$lQgjm z8Tey98Q57{v9`O3S+1>plfg|UPQT;`&o&MmJ4BI+gAcDz+6Vi(N=h&Jieg5B0+McL z1wrPEPVhAN!nj0qQTbTUggI_(oFqB&9v5^C$yxSvqM=}VCC@SA49W~i?9^qdhh~dy zQHVbXB=|v{PjIBoRIt%rE_nESNC4zNm*rJmFWvg;8-cs}rqXrL`+Iw#;WXVEmlq;= z{k#n1I?4!no*P-Z59Su2AIOj^&$Xmk4E}q2>`VW6KHtev za5p3VD&ViOaCPpqGjn-qJhzo>Zjd|Ji5^s(5l~(vW^Pei)vtJT#1=wyivk7|BKRz_ z=&2J2kN2jP0HVD#M=*=%>iU=PAq7a|A;2033~n8Bnw=LopJSbQ%-e@Y`2&9TL%9lW zxXE{GC8%D+Tn6z%>1HaU$!!1yQh-YxnF__c&?S?szEyUNN>bOmpsZi#`627;ScO7LY3qQ=7ym-He|Cm$U-d zI<%^8M4?AKPu9%T!sD6K*t0DbAS8J|I)<+xY{i)~2E<;{J9e#lC67z_Jc@s#5yr5Ao$u3Guk(2 z>OBhH(Ji1P+M47o+jOhEkEx?izs~B0M*AI8IWNMUkQV+sq-Ma}ea(B^z$y-6G6f=5 zUdsTnGs%&HwgnAdrP5lJAA(CC$3igH7^;M&zXTn@mbHCw#0UX{79^EW6!>}}Z)j&0 zEw_{UeP@i)&(DN-LPpwdA~|KS&+(~pdX6@C3A?D^>;k!G<`c#vSaR9}PK>fn#8U!U zl>MI0Ps;ofy)OHFO12U0l**I%D~Nx#kWJpJ;PPZ9%x?}-j?VGDFu&@0BlS9!9SuS^ zBn&&jLO~>DM>_T-ex1ndfk6~ONf6Qnno^2P;Hqc2j}VY9;$Q zo==J~u1XS@O|I4GZRP!a)h-cDIjTWxt@#i?cov^S*LFf987)l#m_FvB=|$n=59E=| zrfV+WS>rTmycXKjnRi1ri??;=U2pnl_<1MkR1NpL17T2bK#|r4LiC{A{wT=?kpi>I z+~ST-MhIXpGRg+lFox#_mCMZ%Um2yEIJAptmeXq06eWmfAjxzN`1a)nuvIX+XI+-G z9lLuonlv?`Cd>FUJ}A* z0ZWpupY%Ol{OdZ&Ye^MTmA^Mn8tJJ5pQ8;(axUWW{Nky@ClB3kJ}aG-7x)p0jYKBX z4eVvS5H`Sey7D^??F0mh6!o`w*ZjV34kC2jnIYvYs8q>Xh>Vxu4Tq>Kk&5M%J2It= zy92{?T;ct~AVG`u>Jz_is_|V7vk!lm3L|(mJ58F$bxL-s5f;6viZ>p(F|@+~TJit3 zjI}iAnJ!?!Prn*24c~1Qv9_JT(Ds{yVONK0z8ewIs3fEp(<@m64oGr;UVE3v54!&9)ulkf7wX!p=Xz#Zq}Fls@EE z5co8_Ka`Uf1wRzifv$m^F3Wo>FCUl!M~1*Sk}SqgLjWtwm4>6;VIu4k!-KGTwPx$W z2`!V&%PL~NiC3VM41!Ih?5}5()7rDjXVacY-8`Qpy?ZUs3`A?btd3wQDttYmoZ}kK zlp2m)$}GK02{SUHQ#eR>$OQ?6KYcS|Qf*L;0)sT@U>%lR!YlY`nUc$nul%}J^0>Pl zb%pM1vZdSk<-f~McT&hqJsj7~YUTHNHUA1ksH&{dEUYAU)4+QdMT=^p#hv5ITZZ~F^m^c%z2x)Cno3dJt`d6ITA8+2;c`7~5U-ogl1u957 zF$F$B`bj>qtb}G?+501*9zx@=oJ6krj`G%()g5@u>7%%Tvz{U~{4^r_FR;v*XoY?& z?my1uxj}=+8S(<30}mLME@D`ed@M6Pgw6~$GIQ;Xm+`4kk=3Q`dE412Ma*>zaS`C= z3T)mN!dH+Yq)G<)tFf|AVdZSSgvyp3R{!XHzKX{5!aC7#M9m4ou}(bFXTf7r`Id`! z%Sp;)5&HRa&e;lFMqx*I3;pbeF>?$kDvZd=YMTnHonTNq*ru4W!;vnkj>YWyg$ zus5k9NXh+gB<&ba-4uArCN2=GoAW7KDCZK;!#r*5c+z;{8%@0&W?m{zJda&)D~L^H z$;tsA%BMi6EHE+1k#URHW$lkq>PmjB`c~8@{J?EZ8z(rC5LLExaybAe3FI*-IGdRf zj>}jg9vtxJc;)zLi#fFlmY&9CKG{-k@pr!kEY&9r@(2R98~knpUG{DeZb3p~@XI_6 zY+9A1;l{ec$0OBNnqk*bwkx;l8;^QKXv9d4#iObj^1xl^zV|U96}ZRpIaC5gze{Ra zt|YRw6#EU}fs!pDRJ&$Loq$PH!6K3WyM?f5w?86VhNFb zb17xXT>QGfDAtgswn-~M)>Fy5n>zGZ+3+?6r4eg03?!_Fo(J3Jv>IRw(OkH~-voFl zTM~4)xfq0ixu+Cjp2u1k%C(f=#fq{ot;WlcQqk^&V5Q$Sqi04!cAO9x2Lf zP+QIy+=cPp0I_Pt9eRVQeBF!(!e)^SA>un2;UbO0iZJBZO*j`auyFVqv|NQtW*}d| zJkh zloaSp_{9>|F@x5r8kwWgkp3lRmszzdjev~a+g0UkRt6lqqq5>z(N`wT22p*N7l?KX zO@jT?0DR%-kt+}LPY`_`Vm*h2XBUVrC$Sip8be==OF{HA8LaSr&*UHTcbFuAk##=F zQ0MD&X9h`3#7L+sxC3p}P$S98EdkahWG~wRINv`IWrer@kCmhaxOjCGi0@_GxISyS zhc42lT!{mVjZ~!!HUh(L*4azF@{L_fg!dVeQkU#kZ_1T&@WcE-c0w8Igg1ogTvxdc zWvS~*GIbXVfZZ@F3*+O$Jaw+s6Lu?S6~n11WuOog&f(z39`!-22F1!;K93gGW^6a) zFb!bXeTo8nn{$TMnYQ);KKMFrgFEwPUxsO~OdWeJXyTm1Ujnb&@P%zybnk*VyMDN0 z!Pd#^@8j)|j@3C-34qEU-w2*aC{1_4AxobG(I+Y-MGSv8Kkvl0?gwojLeYzX^U24d z%7ZEt60x_jj72FDgBQpi_S_U1zJe)}87uJcNWL$2lf+al<*(o1J^Z!45?c8tWHpTn z5|7ocT#eh=vW|`L^ADh|zvzQLiv?n)u88*2l!p@nUdGm2Kp3W>q)S&Iq7Prpu3fj; zbQ_hVriA$XQhu3o#Upz9VumobrFcs2Lqe5g$jES)*etFOQMi`Lmw+lFRb`F5kdgeB zym@Z%R9x7mB{kWiMW_zh+9-eE>iS*Fs1uxT?ewE2rwCWRh2=14`3NiudI}3@WIg~ za@v{+pT-Dscr|K$3V#@vZ0c|TaFin=4f`b?qq37Hu`r7aS)}3^#Dr!R@ZeP{&1Pp_ zaq);NWGPX-a_!QE$FoQQRx20-^dQ66iCr~ zpeZpqk7ZJMes_w2XcV;?9(f`wuhJK7*S;KTbUMFARPO~gGQannk8@Tr?Fdid$b_Ea ze>X+z!3 zz8G%>FQ?I%HWy3Zdwc^p(%>zrq~Z(})7 zhM0lY5(a}nBwA@Z$dQ}?Dtm+Spn;3Vk{zt9Q)o&f-CDY~b@o*`);GXkgPZ4%tQ@Ae z{3<040xf3JQbTh*mDaun?Uou|Mc|o(wv73%?-7PGom1OE^3_^WY)X3zeLuocA^c8r zB+UXMbldN5JQ;aNnekih8%&u4a#{uZjLdsP5=AhMl1X&x@w?YYdI-+k=B^i}%_$~?UN)D>48 z#H=Mm96H>S1i0CmGd<=2HPCx8V_#u=f;ohq& z`yz0?i?R6b=IG%TWo-$#wm9pUJ6>6%D!Q-BYFY;;*?E)nJ~H+esl8WzqvbteJj#yGm;Y#pgPnxb z&2#ok71q%^Z2B)N0_F~qu89EleQ0t4aq=rW8Oc(B<$ zia5STr0Yp6K?&~UH`(y~^0C8|74L$YBoog@tDo?yRi&m^^41VjUyH}XZ9l^UERt_A zN}q(NKh^QEE;=6fje+jO#0*Lsoycce7bSS`0?nM0 zDR;HoC-UQ+(<@N-Rczf=uQ{vO%JW5S3!yl|Q)O z7H!`4!`MKXDG@>3CXr|7)Z#jNDjm)Od-pC;e{jhaBmY+tGLkZ9_L5AauFwugc>P5_ zH+~WebT-U!{Pw)I!7-v+3*dz6nQ6id!i`d_xavwmY&YH0Z9kNvCaoI7Ya{q2=}6IPX1@tphij_t9(p4_-1- z?J7iD4^Z<*3QhmdW9_S+ON?xg4J-_kS5z)P#>BEulrewiV%+blvtb8c;ztQ!7>^5d zm;b_}I_T8A1H5OJ_jWEgNyk4kq1`w(6}cDSP_=u%z#|-6=y5ZL_S1uQx>ZyS)V%=7 zLoZ)Kp*!b`Ys2=ECEvI{F(2BGt_IK8kEEk93Hbc- zjz(j=lDE`O0bB02j84*9ATWVSW!!vN^iTz%u5#3t7IR%iuVcMB_J*nmUBi=?e!ZGG zRVPkst#DU7-Z}`VGNX9JQq+Ej;Y~X1`MG*)!7YsygR_{E=Ey-YrxEoSvqyTBPjczi zlgAIzlg_`7_{&O}rhEc|@z z_|bQ%(m`kabvgp?~EYdPE=&pc4o9>yIpbI%B&NGS%t+ff^;n$ zD<5h<7;#0q34O%7Dv$o>yk$)JBo$7eIR(o-0eQi;C(Hgk6D_GQPjux-GAn1qA0mXz ztxc`&ij?Jx=2M@iy~o|8xo=ZX6c}vLn2`0By`L@G+-xjjJrd_XF*O3gFd1gUMB*9W&ZN>DsGqbB5tt>Y+dRHFbNX)dfxQRvYxrqX?_$;#sJduF zVdIUyb1W)Wx_HbR$2XBsijoqx>9TpPvzsv2hg2vl1y+?09^=>5DrFhdCt z`?g9OU&C6RfL`HJeLmqJuEjmR%9$l3R7bH~f&H7o%`!3O{m%U@ci2c0X03%i6E0T| z^;+iao1a~<8Nzf9^$Dz1MgnZeSP4S*vZgn7CHUFFb=UB$irl=Am0DHv0PHgoh%^XR z5vv9%Dgbl*E%K*d=eO)XzFVvx8)EVNc7hY|0-cLxFrWtsO;7}cQRz*_`P}*)Iy1Fz z#3waR7TTnIdK?ybhTejyT>!39-jf*}OPm|>MRDrOhMJGq-?=%YU*T6RN^C+_bF0?) z8`_5*dsN;|Kn>o22YP+SM@@rT+64B|QKa$@%9veYC9!Ok z-*9J(_Q;%LIK;?LyT(&~BTQ3v@ zwNc)_hiCArvc2XP=vh(u(s6hCX57Fn`B*`9##a_eTG=(ddXZK-C8r3hRe)_eQ*d^9 zAw?_%_v5AVyd2mH?S*+5v;7_$G+5t0a`otJ>Yr?ex{ z<7j;`kY**iF7~gg(ZwU~g+CK2H8(RII%2`DAvdc8vDbjf3eB6;puFv+i1a-_Ehq6_ zelY6G=$7==^{%?IV*LnPTItF{$m*+zvH4X9MP1o6e3-)NOSqSj0m}=#3a*xjPjYxl zDa#k!%AYGcXj2T;5{JJELZ*o|Dsu`=OAl`8R3n-EVtq@|iBExeE2Jvt*iI7{A?y7= z{2Bnl@=yk~Q9NlX>cqh)-rJvR3Hs6X=khcj&S_B60IW-jh793*MLW!tn7CE$zDEnO zLCyncN0%Z4Ghg|CS+w<*X==5vdOXXj4phEc!RRg6=2BuDQ@h8rd^?D`VH1TMk0amD zq}Y2h;@RAgIcWp1dhoz0YMED9rmo4WFFQex5ak!evG4N?3&m3FnnDw&iQtpW-^|%C zq|#`JlS4s6fm=$*>&jXLq&so1gkwtK{igB8qIJ|p`%VV?daT^swn1@BzvB;q8w9H^ zmx?q{VdpHqPQgZEV+t4@pNtMTgLNl;GSWRulL01?THMnISk%v;tT!Jp7wLZ)oGV^y zTY*ugM6T-wER4`O2*#3r z@op=h&GfPKRkt3|4znYn(2sm z8E|7*0X!>mK=^;yfs(txTS4tDbgho^wNZ>{? zF7(_Kixqob1k6lSp!7gZscL*UoNbg-CF;MCr%h~ymC|8gwuR3$un-vS=wG00!9M9&OWS!lLtR|6ZIjk3{QnXT!#kg!=^V3F_3p(? z@2%=$!5L8EP1VQi{ns+Lx3FzfTKQX~V^IcXnQk=WHbdFQ^%bAcoM>(p(qM27zZk^l z2usgrRBD3NbWl}KQf;yd4+eC>R`Q!W$t&7Eo4F|)Kw`(1{Ux8ygxx#06CGcjQ-9gl z4wMMDvRv|>-YSKqCdi0VsyqG~Zk@x!iHd98;a7Lz2no@jr8RFx!})}%%v)I5fV!#XDgP~{3R!N>vzfe{U z^#ieDgOCZ~NEvY?BKo3xN~I>e{xMhIuYLBQWYHMQtCEPL)5=+io96#E#`H(_}{2&EzZa+jsgN7XE(Wp-N|#Ldiy^Ey*Aahl(%g8=ryhquPI41_k>m8Ld{S=P`=w{>15#O6J0-w@isX6GXM(9l; z293jX_Q|o@3qtnKa6cV7M37xxtwhs~uaC3!YV^`Er>WB6?#TwIwWKGISad1$rgGSo zG<|^+i{;HOS?xVReUT=RxYl)FP>4n2&AH4huAot^QV1hZ&zx7p)^j>1A3hAaC33Ym z_~m^1%<|$A&8>C#`dhRSCJ&Vch4mN2WRX9~TF9l0bm7iyc6iTHpb9CzSBY>y+mEF2UE?XYf;P+$lxUt3bxupfaI(Z?aVw4=cJ0i{=vZyJvu@<>Qf zxv5h9FVI@4l;6p+@Y6nrCqaa>E!0ke_FtfUOEH4M2ia|gV=UaTA&#dAoR)h9>V%LF z)&$Zvi8fUz=bKC)xXwl!tJ;sh%Gu{2g{f+$kTe9_UY%d8#E3>3O zNd~Q@v$4}+IvUcx?DofGwPNz@dQgeQ)j!8fGeM(!fH$7Un1!)$=Cdw1GB}SmJm$5K zXPA3$xWXv)Ua9CG{XM$nZfxCYue~w7y?{`N_@uv?Wb?waku+!wlc6*|`fv30!c7Eg z_Y?noi2BF)Rl(8has|YGgpsQcU496*ObNuR4_fNmrNDgIYjX2wsck zQACPdJdlyDwI z?{-bvI*RRKvwyVtWt)vx6= z#xX zd3k$J#UyE!P?*8!puBjV7e4efHSbz5Qm*?qCEh|&>QwXjFLNX8eJmbH(0?AYJBHV} z|0_Jtt9%JR>zstT(8Rw7p!jti>6R1z(q44=N2RKtG-b8IS0| z&Jo!L`7AQ6N9DJfw5igYYd@0b!VJN7^WtZi?~n7~8XnxCbINYtf8t;qvs1^9@4w~_ z8?>@JzTcqb6C3BA7mz*0bP~@^;0Y5bqiWfobM;TuQZ^>lR&6EYtc`OU3$#AWAU;KE zqeHJt!;X@6i1BtIv-rKRhACYB45NI5lm=kX%NX7plfiFr^5GgIH}?dG(*gZ*;WCHR z5-GN-59LLk!E&iyYAI`(z-h9wJlfsu%Le7*N+?^Y{px}+C?gzWiLp_9k07#J%VYKg zbs)L21sMbPruK1Po5*Z@WIXy)oj_F1nqeesp&6jXHn7!o5goQz`=YcOU+7(+$ zYHw^?C818(7VpiJ7WLK|PkJ+|Q3zebK0&4}`Nr=;<1i?^Sri9v^eZp)ho|YyQTCm4 zm|>bQ+D#1@A4UoRN$SlUd$u#WP@X}ZC8K8QP62q3d|#-6W>5fl!V)SB-GwJ*2aqo} z6OG66V?0QWp5Vpp`D;k)DrE5o8Lg7su>(O*un zOxmzWDu8+EIBD?;rO5L;I%@3s|2se6Glp^Y6+WOCzC-isbWU`0c1;<$zr^on_E7G> zGzJ8S+}GzB9%klCN9#ZJv$Rh$z^;B3$$#OugKFx=i0QXv4^aQZo ztp?OTz-Z*VP31bg+`r7C)7#e?Gt>WQU06je%S!joreT1$63Uw%1FeE&}2SRQ0+;RQ~i1oTIf)6p1t@T*J&}c38oIm3SP4<*ov68Gv>wstj!jk%6zuODY7mH`G)k zP_OKY(eA9r+9@Hyxm_iz#w;~8iun}8epj(i<%1v07PU|=yCmZ50oDwul#_H)nJ;?@ z-vwwDS%lqpWKsI@Kz>Ao%@7AEiX@6B#0`eNGxO6JJ$~yNrsc%5CG*47s z_YJA;Crqt5hn6<22xF%Qv|{1+<7rtj2vi?5c{X9Vl@8lGoG%%<3h}XsT|W%K zl{Av}~$$eA`d*j76bk2pEm^1_LkR!4|HI z&@Y3UxBxiNh>oiWm~_<%=2&fo;R{(tykS@Cn(UNQ;VUA_IX+653Q)IuAN<|JJ)6-n zOF)&S?JM=T=np6z8WA!c{p%L)#Lr3oMior%l92r-;0F7PQg0cmPc=hzd~6=j9r;mj zuSDVBw-K!+yZjuuIVKiFvbY_;Xr7QDO)*550VGRdE;Y9o0ddv)s!wo<&73w?r%0GN zli#njBxTMPp}tG&l@~(F+@OPmgjj3W4aeqT+OZSCJ z5{^5ce&;jks`Q-88@Dm{e^=2OfxJr9ErGo3e3VH;CG>Lxx1Zr0hek4tffaE5PdpIY zcES5{fflm~0qE=5xVaaWm5L0zii`DLieQdii%QY|$D@&$+r*S+uaiN1gy*FCEG*1k z0=kn!1-II}O|9s?{<4$n>Z0Na9(8~1=tl1JZG3H23tJ;0SobyGPCd>bvJ%$^SuY>m z^!V6T7~}JDN;W`O==n3>%N=Sc*gkvdJW)fUjXtr>EqSB(Jiy}^%7k4^>-tgxHD>}- zb`@+aVN+W{ad)duw>G^7?Q^B)Gv|+4V=R#{f%IGF66Qxre{b`HB#Aigqrr>Up8zD4 zaV%gEuJ=~Ar&QLHUHsGW9sNNzF1j@Bs9F451gi*T1Z%SxZVq7;V(h=wwcqmZK{2Im z=6k=A=OWYw9GTi!55H!*B@gs1>vK0RVp_@cO;4*XQ8wUATqne1)PK_p{`FdSaTmOI z9mzxXuZ^Zxl*WxT-v6_BoG8WQ0;U_ID8EI=k(|yGnclKqN8*`4S7skMx9!rzWw&7zr89c%=YKgQ;y9mk1U%i2QZ3{^epv>u$7@(#6Z8x z`~@Oj)bXFKIjz!~-+zBb$_TTm_-Av)$N?|yXLS;bmwOf863wsqTiriUVa9}K<5z6@ z2+wAMy!Sp*If{eS&@@&M%m_Jl zv`h(q!-Q2v%XF*&Hz~ad#`BDO*VcisbG6@ZQ|(c7fRd=+p&JZwe0AschJ`uS?U;yH+@Ix zQ(11xQIn6^yNaz5wax?iTb093u?@*=#TlSU_R5@Le@iw0KP#J`NOGd_X4J0MDP#Mz=29^FK8P8O?97U8x z@O}fo0jEP3atq#*0zH8zk>{l=7h`Dx-#N!F15_d6zKnA2qwqIn?$@#2q{vVqZ3+di z%+7OC2v}pzwt}N)10jQ28b!cf?TgkIG~*zooN>d8J&vS(! z)+nGLm-gIRD1~kVKQu?sj`XY=M{o@SJhS^#0kn$%my6wnJK5SH5O)kTv)BYkAw*ux z*AIK8kiIU6Je}nWzc!!0+kXhp7gk#S0%fL&_AU~Cln0P;$OfsJc3R|LS@E#Hz+St~ z)M$Bw=x{f3i02%jQ7v8HBO&2HUesA|a1UT3pkRT_ugX*WK3p49nz1uoXhM`isqKzS zR)`RuSvE{q`21NGQ(({a5$s4s>pUx>TLD}$d1Ad(C2pym zSNt0~T`PQHm0ua2O<6orA9tX9MCnU3N?v(u(b^e!kp?Lv`HW>>sg5iD-+(_x){Zi4 zPBWIq6C}CJWh;9zuBs@FDT(KYp52GZy=Y(|jxH>EasLrIxg5`S&UTXRI{dt>Q=!Fj z1UsO0y*0`g!7aefFc2%Ld?pIj@Ft5Y+=8F2&~#^)d3=z7T>2N;r<993!zQbhO#nWV zsg&bEB3)Wv^86{(8NU3nQc!o#?u;fYXnv2&(wDw6&O-gfksD`;`t`;{6CYo3qdcEb z-UY+!<-zcTz1l%B(V2PL5DjwTzrmi0SoGGfvde%4;p>|#UqDOqo%+zntJD*&;784I zECS#F_Qbb;%d0r0N)#N=d-Zo;kn`@Gna7;GWX})8PvwVy<#*%5TbGckOr9?>ySbfY z-d$Fi$MAU`p)ADoH)4gMUAkilb+F(_ZuWD&b11Qe+`f`g?t4_C!6W~4Rvj6MDn9L> z7>)8*Cez%1Z#b&L(h3OY`yOQ?b6U2qSJ&^H?k9aR#?bFskob3bUmr?YJr)G54z9#A zvpf)UTSd0wVIRp@i+S*D(3E7NA7*?Mm=ERht3K%9*r@dE1B?zT6HFgHe7JQo^<&WJC}f!IxM0yN(cz*>UW~pdTm4{&U zm(I>~>W2LAQ6MZHpLEA=J|7p$Jtt0axRyKmH8-BdR3i(D7y68hmzA?xi{vIdx*?#< zFr~x9*v}KAxthjOPxa>|;t?Bknv9#XSmYO7WE!svam5S!%FME5xQII6PpJg0Ew5~( zk|QRK>Dek-gFJxf6T{n_)Q8D}iR^jpy?jJ_73u;}7 z1&*2)C7~N-M%|UsQ?7fuZktWHG~7%|VR2S6!MCW+s%Uf4-4O2{T)x#Ng^TiF@`G>j z0O@`dK2ZsSXYu1?M2#}>gouMc1baq?g8WxS!iO+(gRH6J2ag=M=8CINR_nSWe#Yu5 zrBqH+?=03OVP?M~(e$!JphO?s^->2nX2{B5XGMJuv9x5jW&aC2S7vB&c4`%pH&72< z{|cT-fud#d)6^SUn6--CecD3JT8g;gw-o#YL#)!7I7yx>)!%HMe~RK8UmRY^N6#hw)D!( zx_GDyt9JzM$!yJx}`?#rS?GLVo!9k~e7GAQiQY?Crde6)D~Q_R9zw*UAwX>1w? z#Jw2ny3MUE(-v%vzd9e3Ke{IqIvAHN2{TG1LvE4K3-A40AEZb?SN>IoXEU9yT%Qmg zf^!=ND@tQ&cIWb%%_<|!{U65dXWHmRZ<~lZH%59@O>g0BGjA61h2PJg+)l3^yV>t$ ztklBTD3c}<=JFU$v6xH6UQ9%5e-FPabK0F^@)}pkrQt zFaHc4H*PSIj4m?Wh^J)(?R`WZ>Pj)eKGC*RM+@u)f+gf*UDrf~EhtbB^P5nnB7%G8 z=BMWtcLkol!Kinr&>P1FP&l#*HNnEJyt>$0@nsL}pM7AlVmZG_TktcNrn;T+!G-?Fn3W1}aWi&*|bQQ|gVx*jaAH3!EcWBHmF5|9Q;x)pY6-2KuD@`_=l(P z%xoa;vI=r3|E$vFe%8p=MmZA=+)EA=pP$ap)z7?9Y*?791Kv+@RbtMFnFH4{WZ>Jb zRSYIbjD&rN^-pG&1&C#(yrb+%%BMhwYWz?@HNE>uuG-Vy>>1qZTL*_3%M-r_ouYVo zXxJ0{&0dNb@5MFji9ObVp$vxgL5zGf<3$1&i8BuYdVeokXiw`z3IY4)U8Hm8N46iv z{|5FS>XaTwHzg?wW+#|3w{wAx%JQtU5sv1db*Lrc=}&WDy|xaz2?h`02NQYX)uZkh z53r+U*N1#@A)W4n;{Q4CD|s@+si5$A#YPY(qyLODeM*>q7LO}TPtQ%j#;f~9jwS^M zI`z`+{VeO(i>sMt4$`xI01rl%jvV(scWG3D<5hEM-64Rv+PWGuCnqr8Yn3P5jd4Ek zF072zm2~nBhF1o) zGRxv?^{I`C((N7ygk#%w`V53cZnT?FXua;X8ovKpu78|y1bQ#bwoq0o`gRZWD3^Y| z`>HtGL?M+k!G(U@C!z@;jIjug99ySFqI&35^Jq1qJkcNXCtI`(kzU+^XLZL!(4BWq zhZI8WR{@n)11TO+v2BailTko^$XApGvPGzx+~4ZYqfmtK&Q|{U%sd%y7^Uy$<{UR= z+8=82vPk-U%&T5)#a?hU z41CKda2+wdwN8AAv|>ZV)Ad6X@r_+>fy_lgY*5%>yg@Uz$k0_~#n7Z@ZKwC`^b6df;o64m;HP*yOM ztzmj1UUF?N(D!Ng6?!}f3(Y-Ws7iVo170QUl*bNmj@92}z~lmoY@cFT8h_3&U2NSX z9jzYloncE$CjLpvf)wwmPoj_tfnBlxm0JA|j6;`q&Mrq25gz~EC5P1i9(zLtKf-uq zO(e~93>yWUipYP%W90W?if}2?f9-mK&Ckm(V;&wZ5bO9)hPO|Wfx4S}_s7E~7MefU85^^!D zCn4Vb5%Z&(dS)A4!$l9_&8{>?lVD4}_l-OlE5jr9y`Dj-a%>UohUm3~(sI+_RFuru zF(qdQ^WRj2Uy5SM>fY;neq{%q$(e0Yau_J7_K(lwH=9dPRJuh|kdYnNmIJuYV)AAi zi?aXIc>>v9BD!s@tZtQ#P)Ti1;i(L1b#9^51<&VK8BE7)OCxktMtX5gSnQ^+D- zMSg{`bSN)YAjK2%AO!=}j>XmDli!5SHR~rXBq2=$kegO@jq*SXqklAhm`%picv+{^M8{t@sV(=QNMwuVKfR$ax; z{aWEgyBN3AGd|p|K8~0?$M7(_vNMCbukF6oWZvN16n}|?n9FrAi;K0npXPyZ!^6>? z%De8(gP;OJobS4bzdMa=bp>w+(Yq2r=i1kiMV3)E^Y_`#t?~hZ0+q62(UUrv!ttxr z3~)KB_uY}1MYp#Ole-PiWpu+LD;3OqYkx`5n?k4e{SrXD&jn1KB~QijcpEE=JC;Hw zZs}_H-|-`slSXo50QctjZ9T4M@}%>e1_*D)fC}4SH^}a~2!9o@u+|o>G3U+A9OKvm z%1!yHzTz&qSFF4-V?8-*nJ9rparq1$Hh=N{!|O*Le1tH%FvV{o_;UD4OjezeD<1n#&){2X`Bv#-Kkz9HwF-{WpFx z5?o+7`v0wPCAsn|I(bD(|1Y&C7&pMUU}#h}^Ld8TYhL}X|MJf=+LW2f4Dak6pLTk0 zciW;NtFWnk5tU|nJ3%47+UD0A=O(p<5qL;DMa0#ZoTaj9Xl5W!$^CXwMPET3R z%V6JkWNII8x>f3;H~B|Sn*iR>3d>k*s$wB>-U>vmFKRZyf$v$M*YLeDe>KqyQ^yZn zMQf)6Cr=$eICpSA6?=2`He3c&mDjpf%fkKZ{2j7sLhdRCsBT{#VWmI`RHqIOW8BLW z{Yqv?*`aMkmvRy={M$UKTS4B50MuetLm+%>2{J7YT<~}yqwuhFYHJpI59`;Rtng4J zTSd0nm`k4M{0W=H$d{R&i0*2q!<=ki^*F}HDy$XD`+0`PeKN=y3N?@5!KhsZl8#^T zWaMg&2RkK+jWHn#Ne^dgLzxQ5XsM1$tNKF6U7<%A8P}-G0P$dFYBP!65xw_83_)2^ zYYEsP=zDDxh}#$h&;=TP8~aT_|So5vG zeXP0^RC2tG=_h##O9@H6TQQFEVzA=2b)$~c(?u2OUQC5$Cr}*PR}S9tAYaHM7{u)I zz#i)LABRPRc^h?8@a|WS3K4YDi|e0-jCq;@7B^x2$|@4ts^pkqzzAd&2P{PcR!8Qc zfvBT7+yG#YCrP~0!f$}*N!gd_eVsqFk40e-lyAb8mI4yd^Sf70Hs z@LQ$@EXAUKgD0=7G9wN#&TD18xKPvL*bOH~Y+^+v4J5hkyCTSm)aUcAk#`(ii)uq) zsnGF7-dOTnLI#6>%6Xq-yeluVJy8n#T3omwV&4OZ5*Ih#^x(&N_K#U{5bUEiK8ssm zffE}K{n7sXai>Qm;YeFhX8bkh#`yQQJf5eV)Xe^q`vdZS$-vq^jBz=zKliV>nVhxR z{O{-QG1k|Ke_cGctWetUUM5xu9XnN+@}~ZnK`BWE=N7SiCu1rI_Cy?&F;_IY`3+bC zv(rWS?c13**SERe*d{4{D`VDCwTZ*lNkDI51_6&_l`?jA_ce&35@z1a+`1}S1H?U< z8+^SlDG{*mYbe?JJ;u?pW~eiaG1LWK?Mz~Y5Z`8Z`z<9^e;$gs)OmDb$5gWny zZC}ox5pLSa7CN;42`TGR4X$45`n8j-l1z(6b|IAK5kYzWIgtuq660x^BJx)8qW>NNj=B+3@r!z$ZMa7`^`enWNv5l=(sjwY1w9; z;zFAvmc-a6`G`=7UAWv#zzsqPa9@cAStl6Vn&0;XXM;#3Wp<*i>%0v51&1FiH=WJC z11eYv&zK1y{9g5ASf+336p_S&ROJQNhuHK>Emc3~RJ3JXn+pwns@Ww@^5YKK)@P7fMJ~z1LwJC$GmFc*56Cqk#1A{{2Gs6` zgO5f8H8+c4auLY{1WOHSJ|{T^gV=0A>m ztC9fetvrs~1_dF_xzBlKcIL5?aW-cl5PdA{8V5cM1NTKgDeROjZEkrh zzij}FXK-I8(mdzrfrBSbEYMmkhkhZ0!tUk@BI4fTIrLuY962GTwkaB%$4{rHO51%r zG+<-;p(h`D@IdhYT%L86lt*T4MIH@>);VaMu4J!+G>#JJZp$2lQK42%P4iqPyk|Mq zw+&GzLP}XKr{|)ADy@&Z@H@mO(L0JR6M&1cN?JvB&g2Pb42YJCdyRw~%@z^MZeBkt za0)#TM{dgKW*jMx%@+*<(>KL8Z4|zFue0pG(*2vuhO1qvJhHEG<+zmySCZzmwl<#N z?QXzQl|E?sPp|e%%rz44(1C+jQyj2p;O7}MJEpB1dTB&-tR z+K&PBgw}LP9wjquMZ8DVu6oyflEb2g3dNUU^;^iF zWsrDuEs#{j_U(qw?a7Zib9D^AiDDl3Gw5O=WGx}^V3L_$nx5MQ3YDk$Vf-9{g2Y0Y zU?{t_YMl;Tu$v^rz!Yc7?ti>Ck-FsMMp!mtVE0$BJ(2~t41^R$AC&D992n?NA%%*J zx!ea>e|vk%Kn==q@OO1qW&x(OxpFDct=wVAMg@T{KQ47-K$_l|zSpA}#^Q(=G zXeRU1Q1AI8loLCAc;lRN&Z*ui_C64%ytHPAY^@JG!>wx%ROy-TI@@k3 zsb4a?Ti9t-=5#@BIS)&hjx^SxDB*d2&8KyP6NL*r&$}_>E14nl+^Y0j3zEqO#l$aX zgJbtzs)|WIgA5-j(-$&#Zr4Hx-RJm=doxNgK=&E`4$npqp|DoThmw$wyV8J|Zo4ak zf6w5^01P1@_ZOiVU9Z~fi8jHg=twQ^_`Ci%F^dA*1Sn*$sI^jp;1 z4srQ)egX|NVrA#@QcG2QHiKg+&{NT1p5c2TZDAuj*wN}fqUkP)W%;T8MBtjX{aLdX zyYaHpG{b3p(!a{ouFc{4lF==FjFqzNlXwjLl-?pq{Uru^`6MjdqF>Pq#Jkf-*nx$| z@Y9MHz=hHp8;*3iNAuLow3Ssd5vpNCQBYgQv4yeRpn9^E4poQqaDH=%UJ9dV24Q1r zG7sY!yncG^k~lez^QXBlv438dV?g9OhOCNV4sl$xJjPE;m5%^Y1v}MY4!Ne%aa0^R zWrG^IO$*=5kzCHiExc&0(C~hqa@Ji517G>T{*{CLS%K6N;XOYd18tw0v=~vmYZ1Md zV*m8bss_5dcq+sPsO{42P2SO;^oBh{sEO)p8BW@NAegAU0|SuQHJt~W^jdku6pzAe zCof;2Z9EPw7M_EMWW+{UvRRsNZ+<=&DCMAyhz8y6ir;8Vtj#6XY+y~)lVT0Xb}w?} ztvo4;YG;q8m7$yHVA?dIehi3TaQV*6>?8$=!UpU^v*kyPjG?fYS)G%vxb{>uRKGG!^I(P+TzE}_Tr%(i zgo!Zq*g8Jv);J*I?LYRbnPSITLzGZo(R5l4d>kRe<%LW=pu=!!ryOTS?Gb4sOV$dYD6lSjiag@>Q*99r}i*i??U3-o}R~0!y;f zir^^$EMU}|%b$Gkp2}hIQ{Kchsrl@p1lUh`10&-mUq@e8^ML#=ZdZhV4WsU|;}F}F zwqE4|a6)YhL5UHr5)|N!mouZcR%_Nvlq8DnisU$7&ca740r(#7pRdkD=nsOOB2 zjZ%!KE`R8u69-oh9eHqJryu*vOh$V>jke`hpXhSEN;FWVBtd&rrCP!JDAbQ}JwU3( zr90>68R`-oW2Jh8E7}gttJ4dn^H#yMh>-&QVV7|j3&t>WDT0){dXQ^urPWIWOrYzs z=iI?%{0$gUu9997PSBE>a-;B0|JH~<2O!#Y#=jrH59XvRE%N!39Qi<`2xa*h=8QD5 zrnn1sdw8(EvSE*;Dts*@uQ53Cq`IjUMo?CcoTLJEXv}>$OLjTgK0?ZIFXoPUI;P6p z*GOwX;Uea6@QQ=hZ;6HPe18WY9xwls>c&3l!o>&vz-l9b48Be1u#jKTwylVb$Zbtq zH;oV$rCC?koJor%vjv73X%^{NG^3m-#6&)Y4Sk2O$&x?9lY?WeVwqnxjpbn8XLP zx^Hr?4>Ji<(fZQT6gBr6j>|K;c5$h?O;ttm3nNGT6+Zw7kT9DI23qgI{u$$G>;pgx zqwn|aBT->*M1}V_*c2j&G8KUd@#>1aK)w7~Dui3qkUi@D9}M*X&oGdXH4o|>dm0cN2Ek#k8P(m4qMDh415lgyPd@J_bVAVbnIa2UHOhjE0>w+UK#%3 zn?IjfG`}#HZuQ_;(PwiXHx{d%;mN%7GG;eppBJ~EKO2^Im6!4{4`h5@en2lZ?Nolu zrT*0R9|J|8D2kHQ)@G;Db@up6S?O4t4L|6qd{Dzzts41kt1pKdCYr%ru8nr7Z5WxU zN*gRQ&ae4^uF0lxJh|2#z7iTasB5I8u$^ID&?fx@r(RSu;odh-w8HiL**K?rGhBi} z*lH^b1p|Vk4w^A*=exjH8oXc`MJKj4ctC&Nk$zmrFZl_Q%~fa12Ecy-b1#HmT&Ny&iM z=jZcNr%ql)aGn7#MM}TIB`S`0oku;4FAJ$%IW=XfpfBICdtWYDuQ;S+XC=(Iwa;Z_ z$ks&9&t_B^xLST9#7SRGX%Vp|GFl|kpW;zmm)DWwT}1Nlo#};*E~*hbPa%PNx%%b# z88fFWP!m@B;q0lS?!wSU)uQ+y4_2ubOvKs3{%ek&IvG&>Yes=m6$|BOgCa%uzsTE{ z7ah-lRg18jCvzpT$UB(<=PvhB0$?-&yq!_%2k7<`H{QaZN;opwW_t;-d!ysS4$X>k zuVZjat)dhw6}ABxo=SMaD_m#`)?68NAqL?`zr(yOse>UrFLe=p0dlSv@yAvLR6}Jx z4_K?5r@Z)Bp9BSUn@$vpY-M^3-8J*{IleBOTCN-`llT*hMkdL0ESUx^Sf(<)S6H1X zpYGoFU+H~EED#c&kcn}U_wN4kUOkQ{QLpqGH8m3Th;;JYjTOJSQDn)kh-RtRl5t~O zhos!AwJRVtJQ!9in2%su3)xJX|LLk=DA3slrJRX2LhvX=1YP`Kf-PH&N)pM?>;0iUJieN~u^MyZGQ&ZNv@DlGh5=%jc;ZX_f6_8ay zK=!gUvX9Eo;S(KBUcBtda9V-_}MfgqJ;$x#=XXjNx0@G4zr9i|hnx4B-mQ?0oP@3Mg*y;9Q@ z&4mN-R?(#H(To@FppxT(vXS*Wkjb7QCtX)m4>#H=gn-1dZB;OrfQsU$+fQ*mQ<}0G zP^Z7h;KgFUS?#Jx=Sjr2i_0qeYHe z;=23eXt85&m7_{_D>3qeM>?R+T!MY1>|m(sPh4Z?Sv09@%i=O}c1dGwr@@Vs*m6}6IgS$?#Gy*2(?O^t)C(rV zk&0DTEdP`=qcurB9CtHY+7)+%WrBWkK89^Cxf&XmPP>l=HI+fBX=WV@8Yv-iB0whr zuuBBu!cuiE-f-5{OQ+~(wbcQBPra>>?!a;U6wSXFC3~)+u5c`(FA8duXuI5>+#f(M zn&iu`#H6Uy)Itz1$F$0&*aHGfpjl-4(VeUUmjlq;jypzu=i_iEMyxMC5!{eL?XGh9 zO7%`>U>Cdd;glI^=h{FJ;3%|6zvtDvS4KD^Hu{1>Li>bT&z=I= zt7^l%Yl+E~JB=-2=le<3$lfviMZN%-;P%@U?uZZ zxA7Mb?-L=l5x=Auu?a?7%8q{=$x*{OHb3j<j#S&$`hK>(l%2hF_6MS7)gXGjt{B z2uH^#z2<$4=M8u%`kQ0V>J0X=mvTK`=>~SvlwB(>aZHCwF*ODDND-+bSHY3Uf(2Ol zoU$ZiQCq-Q9B9-fjr_t~kiZEnX%Q9eQo7LH7OoiSYMD$L4+rCLPHMln@sdkiB3FU4 z6fvNOlT2kA;vzWJis%f->i7!`(c>6q$BYFAyEuL*(VZsY>L;<&fmLiNDW~F@5kNG zJdNiL+)?wKgCb@h&=#R}Iw)fLPDQ4yBg)HxUzT|rV~~b zudJzESW~>Rvaz@hcB>7=4b@AlD;uk;&Mh7`EMgXxUc0=px_M>U%4-`N7G7Iby>`5FeVCjoQo_~Jv z$eyK*UevQeCbNLZRgC94+-0~anG0|un_M@fd4J=lGHL+IIRjaTy9{?R?vMc1fn0{W z7q?2yBK%a`|@PRl6R0d##DWZ&pA~zel@10W6;yD;!4EcO2pa{v5rJ+Un0IQ z8Q<5&*E?bd_zyo@w&n@trPzU-WNaVnt1(MTgx0b>51#QRw`EP6X*wzyZxcEKZSS`u z_7$WjwdS#A(krV$t z!6ev7;xjoCfqgBj^Gwt5B)&hL5k@o-rIs}vrfJ}koMc?T>y0#`Yg*RqGfh!=YIz|q zQND)>+QXP8<9j5YHWd!Xyh$kzO^PH4>6r_k#EJNUWb8n4mhu<84D%IqUoa;LZ?i-E zypU%QXwZFz@bi%nW@SE_Yhzv$ROF&DK)=CVWMX($gNsFG9?(m;^Uc+GZo^$v#$tu zV;&It=kUxEfsWV+<)=cS=r-nGLg|lhu&V2I?$l`uE~~G*uzvaKN+^|O*IXeIv#d;B zZ^jb|a4z~{jo{Dz4($>APq|=dG_~n6DEhWRIU$+Pxj`X@as^#H1b)>Vk!CxZhwsDG}P8N;5cS!C9-lrL(wP0(g;zYeGPX$1<_u)zNErKG{#Z!Ca^-u7a7OAVM!*6nrj^t z334cQURP6Q$;D8DFRAz`N%1BZV~x7XtUsUnOLDpw(%zsH?=qjY`p?dRkzWfk)++#Oz+ zPI=1&|5gynpka|xwku*NiZT^Pf6?295RXSj>=_?)d!_vWu+0D|i)+eB{7Z2v4 zCY(qUP9zBr?b1N6-luwXXg6jE>lM|39c9HtR)6>RLI!!1a8_luR$4({!>@dB(yF7Z z9T(zlk(mVa0YO)~Z!3YcHnMgqcY`vq7Iap4@5MsP?^2ZTy3X{qT*sJDO-*H8)za#Q zlBrWiPAzde-(?GyJDOI-Qmh0^X<7>|YhJo^dUZ|Z3MgV_qsvln=1z;1U3Cq{o7~__ zE}bxL^!Q2U!9YGUmW z(2HEHjG7f*gwlAs<4_g}+9ZwU8G0@>;n?vrNOn5P<7Umlj0`hL1XeGEMM zvVavrYb}x1TB7cYt3OJ54_#d0z*bvvBynDG)s6J7?Ph{mHZ;LRnqZ=|1iRXjPgP47xT58WJ(JG;WPwrh=vQPY$WY08MwQr7eKnZfj~rd%H2 zgtvXpCp+Xym2R8-ZYs%X>f~O8r_3Qz<`AVZM|EQkXM|_-u@0T@?G?=CnSsR758beQ zf6r||Qi<~nJCv4sez?_k7d-i@E#s%jA=2a!r6mW2cX`INP#0zK^j^WVU|EB&TG9{Q z@a{4#YrB;gMo<$&q=_Mt#Dr=NEgi)RoYBPHiP#&7*qazH2o5U-Mn+@%UMkBo$<8H) zfA26)%;ZkhG2;6YIUG1FHO;5M#k3l}l!v-&*4$DOyz)VjTL322d}JyBrKOqPxD87J z!TA~%#$07Fk;-DCi1CM2tc%vjvIU;$kxmT1al*qdUSkI!1U<7Q7=Pms(N=_;Z%zeL zuAS#1@-v)&?7ERxULFp_FE9TV2KYxm%&)U>Ume1~j8(O?G~+9mgYzv12Vi`z0AJv0 zfMtz~-QhW=ML9~O93@I?s-2?d9O@_{_%=Pg``DwOWW+5Z=bk#Mx^k0O{TFkDKE&rQCn1uWJ2?I@F? z0@1!>8l{{`mLJ$LoozO!6LyqA=m~1sUf@x7*}pv=Dufoteu6krp#_s8C0Ip=J4Xs) zklEMcjeHCL?ZwuXF|lpsR|D1ddc32XdAQH#=jF<2Y^o|Pt*XAMxjHrIrSrQS)GQu0 zLL6ZGhWdq-m~9DnbU`r&!FnMOS4f_X2>M!Iazt~ANOOuPO$uaeE4YHf+gAJ$zqQ)t zh;Yaa<#Y+$Nd5}9^br&XPX#zlKeqKaESz3@SXoWRD65H-)kGO9g;fOyZr-wSOLN5j zZ2t{Va&AGQe1FTD{bt4NWNd#+TTUXjU+9>7+}|?g7SnX%l027?EWBkdeza`O(P~zH z0P9?m@%^nuo92No#P%;!=Ujz#Fvp3%f_a>_o0Uh8*4K{dQaz*sO7^AKzR^IAWqc$%QCKw39tC63gj9N6V?r3D+rKC*PFuelO9UsjX!Gq(a4$Rfdr z`4Di_d+KxmnJ8E+)|_;0UZ?QRZ~Ir^a+hI&}aT*Vc&RjbqM=dq^G zU>nCI0C|CnGIu|E8_mEK7uGl9pewfLwoNAwwTKaE5hIG2UGSi^-44oF>>!I<(VS_P zJ6YcvFYuKgPH%g}F7yDdf4EArl*7ie1dVrT7XoQEQzRQxiaT5c$MJ@lGu~p<>1fgQuQa3xvE6q+K%}$~; z;jBZ5Z1+?`hRa-P0$#RS*QD9jZCQY|^h24;!nirW+O8U}($cP6xU6`}vci^RrbUxZ zq)8`APr6f5(TVZ(V_qnLX^mZHQ4FNTk5Wfdlp{UDa86Nrkt<$l5p11c=k3-|hDkqk z!+vI&9Z4~&2Xw)Q;$hOvJFco-u8cr1(pqyR2IF!r3&@@-4a+K1 z#fE8A-VrJ9h|+m?V9d)cs|J~Y_iVj=D;H=`c3bW+3E|u+#+$CnQBaQ354pooFAkKW zUTAeoORJYH$5G36$;#AVd1A_xCq&8)zN&Xt995bqp5s~{2Ygx;FGn62`d*S|@&{q-+NxGh}YTJ#~d zy>6S##&%H4UJMH#NLPzxB4C@5krK0$glAJ8k8(ySp0 zW&>;EudaiVLIp)x5iZ%RqLGcc!4{H!$XqrCUkgaKF62I>epfDBX1FaRML*kuacm2M zqMr#=ju0tFh|)RIvu2YDye9Kdn@!lPWo$N|=`s7Ns?!=xmr=ISd>uK|b)(4?D(8rl zb41iV$1P!*wGAr@nHJ>{ zk@ASBr#z|-@Q7_!@9-$N0?n(GZ8?b2<>yf5qGdV6lqiRYltVVgByER@O8Y3#_r&ifT^jX;*Kp^{T&228AS`3X;LZ_Kl5he3O}rnA+pDQyOK*gf z(o#N@XZ}>%Q%e@sR5nyJHB{C%HI~gN!!TW0*@CGhZjAzMRGE^mo`%WLsUay;IfOU2w%cf0VFlr?Jr>(IYGj0r;6W_ACG2=#?#Q_1p#E!uIDDE!= z1OT^7IK2RFCAdW5i1V0cQFj|rsC4-MNOhNalln5^J*8@q(;e^ zF*=FO0-}@HL=p2{c(_Ao)Rc%K<`+PB3hmbpikQL3eufe?$2thh?7Zc3FPvh~cQ=;V z58Obdsik`NzfkT|1zcQsj6C|mk(Mep&02!ac4-_;Q5r`m?!l+?&19gRxKk_k@I$Vy zY$BL2trtv~&Y6Ei5aufX%j-O?FEZD8olcE`OUljOuJaG#>%CLwKb)#f{u*O(za%HvCjZ;odRknC z*ZVSL;5X#$OdzfIi-5GPU*^(Q1F251&ZXT8q*9q{tkv)1K-$)GL66d&Lio1cKL!-u z)^EX^|C+WwbFH5+DXrE|n3z`UnOL^i4Oe(cDxS?l~) zk4&AHw%=dpnK4@DSwOVT6KPBTE1|KaC(@Sw*Fs}UPoyn9L(!I==!n+&c6{(q>O2#s zb)L!5I^QAaFxL4aG?K?X6vDN8w)F2vD*e6se+kWB=hfX>_)x8#BYFQ6ciBhs{sK3L zzs}DLjO5J>8OfWObtJEQA&kyCk~enL#I!m;YJ%CAWhC!w8S8v=U1ROyy6URp#+v$u zrt~pA|NFGjy})bFIN!fc2$jb!o)$bn<2$2cQ zIF$)3Kq?c6v}bUP(AYB|(w;$)(AYB|(w+fB(VhX(5tRwt80k>71SU-D4U?lX;Y2|P zB@-5LK;S=U7?7JRg^Pu0$id7$!6-3Ph?XFcei3h>oaGI1e8@6rsR`X{}*$R49xT zbWlR!KWdPWTdsvmgiKwBY2u@Ix(=lX%Swd9H%NFyC4wC!oS8mIICk8GG?_4Ne40$~ z4ibLj$jgNE&V#59{>}q4PGtfMkjexiRTQQQjfw)1Dhg#nqoP2hiULDXMS z!7mb+Z7LF2d{iV5shUtOG^z5mc-%AcHm}%Qqy-pF_6A zb|QP9o2wzv3{STd+7xRUxVgM#w%gedgm|dKgcVsEP2rLnM8liJ*7F+z2v8U%HzcZ&* zimB9(tFG~`d413N?duR3&$?Gs6uI6+CoIa`j6!;Te@}f_ABn&XMuQfL%yt3Tq}r+EY&Xs;~Js; z&ZR|jER7pus=H#K_lvusE-mJ|yVRxK;JT}IX{|u-6TkPkG;U>cv(UH&x_*NjNvOLY zxwKyatrmA3E{)cVtAsWHNc|24S}C+qE^R*03ZY%+(ryB37TPM8#)YTq?mn0H1W=Q> z+w9W*2dF`4KX+-I=ebE}eeql_s1Q$$)kGlmK~+v^R{(9pU1TcptjC>i7U7u?8eOZd z!u_e$#~na*xbw{?@LVS7F+7(FqF-Z1;m$V`@zmzAK=##)m?}^TWkvK+GSEKI{0Nkz z&HKU4W6WkeVf2JF9B0b#9AakUd4jnF&yx)${<~z6ZLuuGIn{g49e&uFLHek`YU}4yD;k3ShF)rWs@mvys{Q ztql6t1s5F5((I#5Ar@u3SC4)M7MG5ln6}<@?8FJO_?sEphV?%cv%xem5Ge%Z3VgX@ zzGHpb4k^g_m5K|o;q2n-D%e0p2UAS`i~b-GX=>Mj-%WHhzlnz_dyVo~B3Ytw9SfJc z;WBm%gKJv7yt-mh(A-d=ZG1J}O(}5#e|r&?qpXa>NT!#Owf#0w^l`lMzMC|A5vgw4XUBVy*z|G%hsl zB8r$>T-vQJ4b7gci)SnDs%k=!wpUOdQmrD4TMuc2!xi=_u4pl{5#i^XVxXP4)0fAC znDs(*kRP&dKTJ3DD#m8G{4y^~(_d=HNSrTmn(e*!&SU zulHmUz#|)R%6Y@;GHbxnl}Hs!7;Xwp$vV2M;<9w{I1Wo(76oJ><5+^b0{36Z61mj) zR4r$m4`&mH+y_UaYyXQ>;vUbP2ve*?DF*z4i>AF4Tq36~t8cuqcDaZK(#T*H3CuPX z2}BXY>52P=#&rxt5h?og5tTD8h|tw^4jl1Urmy3jvk@WC!R!RhFFKn93PPdwp9ge% zSssn`AIDp3HAlXN7m*=&W2+k7^BRDgG+RW1Cav^CHw^Xfy^&?s8mah(`ufy<|9`VN zXT>yAq}FppYCT7!_J!UZ+hEYkz9j#p_a@PIIghsZgV_f=knEq{3qu!dr>~|5Hhen` z30L*?Y#^oZ$5}8%EDE}%TaIW0x#oKO?jx)Zs#5iM6U?UI zhH;I7nngd9+SlXmIFxLvm@kq5ru2=~rKM}VKV9q4-v%>_sng6N(##@CGX~ALa}-^B zcaCEEgM29gEy$N(@eSI=(GT6Q9s9?j@Wo1;wF+EbxFW|ET(+Rf3nJwOQE0)97bGy` zasY)>|Mi)ML4rVeJcuHU%HS`>uy<#>qh)pske15JTpCNS(kPo>L447DacNC1V#}o) z?Bs}U42V;JD^DJ178v^B+eprr|;ch>a{PGsu(o*j)H|yMDoZed4%w%#k zGl?`aiL%-7j^(J_mS>Ja3Y<|n4pFqmJA6{c8SMBJT$w~{4|1Iz{5wNqb7|1yZ(zG6 zzxgi4-CEY{Hcfr^-U>f0YxbBXl%G9`^4&7Z6WcRKzr{@^bVR6S|2xfRBs**Pjn?>f zUsNnnhxIg^WNgnPbc>^}IEIB-?DF{up_K1Vly7lHS*T|E)0>Q8gfYu_OUw4Mkg*na z8f@{|+V^Ios?VyIkX9H3DebL?M2w`-EsKlPvWi)=#PSK z2HGcxgG@R{kYi>7^^si>`(iaRLs^Gsf$XzpcUb!vD23)JJO`Q|<9WRKUp$A%8Gt96 z-vOT_M}3_v*1YdFWALS7kpe-9p2V9nxCh(aD`=v9RVJOa1n0-Hb6DL(o9u<`D_R?E zYm$w*lhhkAvgQ_xI9_ig&Nc~7o{Sqk4$1d--Wfp(&Kdas*+A#r{rnW!zEL8ew$xZo z*`v;Qz_Hz|;<2NlDWil-_nD@a^w!d|qjzDm?$D*#zGR5fM|Q`ML#VmLhc2fU5S2JJ)<^CD>U5j8J6 zC}REs#1a=Ze|J#C^aVRv_M)c0gCeE~h-EZthBzow2?bbFt2=B#!>BJw$OK^CAvi)0?6pTkuuXtL}yQQ>dtT(Cy|@b%{n`FZb)ZJm58qP>3J%9Du5Mad zTUVW}^Ov(3uMeBNgRJ~5y7D14?( zfIXCqKa_}b0<3)dyw=!ruDX+&0DExY=JogU+u(^`>X>w#3f zv;vKh@Tkiu?Q1~VKYGrky#l1uSu8v1?hmdzwronvL&aJx-{2&h(oP0iB{a5TN}B?- zQfL>sG@e+jwAC(+N3UpH9(8G70U9lFe#WJ}1f83&Xe#G?%TWEx1R>mG2^cQoh$CX4y3y1HXzkScLC`) z-UK>F+|hkevQl@j@~BD4vDp zXLt?}4Pu}vNBRew_u_f9S%_zm*@WkDa*D|D=6T>Da(2dv=8wQ9o4@1vF4-CPR5Khg zI?bGi=jmoVo+YLd&!MIk&$CPeo@dKuF~iK`z~NJ3Cm=0N5-U8MD>x;#J)?H(G)9?b zwF27^!O%d)WUrp)ndRzg6t`C<#zL$c$Bi9lg6%GuF$zq09_-p0(4-Hc-3_SDhw?Kp zB{mLAuG2_kyE7$5m6{{*VoEtfgcvvKJJeaSS5Z7`v=~wQr_f~SQh~{NGm6wD_^?n^ zcv9!EdIu|%s`3=2s>%~Zp)|LjhYP((uprtU7h$M z(uprtVx9OR(uprtd!6_q(upsM44wEQ(upsM8=d$f(uuE;LgU02QN%1pInwyu=%5G& zHgu9p+PuJ&R)4T+0(^#z!YflVKk-rMp*nTN|GYSDg(5ANr8z%Eza$s+{BOor=kO;9 zngM5}f-VJ`C@AA(RZGYFsrfzMguH#`-Eg0#{Do;9ZP~P!ja$~nvb~=iYguQv~nl}I>Ry<_hi$T3|?mSqtb zl*Ti*fU_<8%LZ=v210GenxD61P1Rd1Yu>`zsK@y6jH|0Q#lGOtiPBWaN2ynR0eaP= zK6NP(Q{D2_G!MEaY$p}SSD`?r7E+}Y$orr`-sdj5Vp7}t?wyI8YgyA_25x*oShEXH zNy{$m_ABedc1~tK zrethWBDMu-fg;Sce^&2IrR6s0inn3tS#{JrEVS~ah58UOr2MUx-$J)`GK7j#wt}-M zc5AlRiP$=3%B^6)I)6eoz8_3Xw(==zf8gyZzWoTFiSnnJLC+zBo=(^BH?D+}ftx?V zf5B`T#W1+?EX8TxR}N|sTL+Tj7I9y2-~+l;?wT~MH&|qub&M2i(mn_ldo*h+c{uQ6 zd%<=E+B}ggh47#%7{><`O$SmHaW;^uWtBj>VvKE!($>4QO)l+Wm-acAMm2dczE&iI zN_Pw55YJqV0g#5rlTPOd?Q)k^4Wz2>QkS+C=yGwl(WQM9NY!a7#~L2jIjQPQL7}vx zAzLmJzb61GjcS~JgQ}d;E(X$X%ynru0O>cV=BYa_rqFME(53wZNYn8Pm-crc{YDO& z1@(IjkbdJtmo^GWzcJCJT?wS$sB~!`1JZS8oQc-(o&i$ze2Yta5$IA$@2}mrzjNQ_ z;>{Y|MP?wLmx#L}JXJj}2GSD2HcG!S1?Xbj`DPZLvjxq-Q&-IQl}Vp`GY7v5%nNw- zHyqTC%C>HWGWdIx`4cDuW#Dg+DM8K*HXNuv#(WpgW6c|Q9w&=gPB43cPc;3&yORx9 z>763m#l71+27H?N8lI;cZV_{abYF%_m+mZCDLKqMic}6a-^24<8DKn5#=}NR>l++s zW^S?S*g66T3jqIKpjlR@jX#9dY4zP*oyM{1gWWzfWHfui=(MG1$|dmh<5pNlRJ*3!RqdKc zmzA+DMP*WiC}M^oO!|nLa~%|swVSMOQPH!Bu&xAeSsSCWz>FwjJ^>nQa#R+W5k<_W zL8BCi8m_w~ikPQ?;zHvBGopxLw_d-?g=0k2n%@vz*{?OL)S%W}4p&D?YbJM8Yi4{^ zYray@48-IrLDZTT2+F86cd^7P)g}j&DLL4o=@L()9dH1J=$vdS3{)}yVv?+mySt=J z7je}~n#0=j5#Y!t@wUitD6CH0#er0!a~f}%(CS>;Z7%H&mv%4EQgQd7OM41P!=nbS z;r#$eTa7&~jjg|3qP7Ak*F1t}ADIx+@%Xp#y9BqrehYxUsz_@~3oci?I@91taJgDn zGB&VWEks&k{cCWs8e_;9e;47j|gp$XoS^{^YFGs-i`;-GJG-6Ekc{? z(yj+m#w-ES5>8>SJ}3{VZ?IHP!!u8oV)hNyHrC)h%eMClmhJhO%JwK-VB{{v>~`6{ zDt$(KQu>y`j9UrrD%^kXjZ*Dh5XCi^Zn3t7n4Hr>%skRUOr*;R)(h<;hz(K1YyqN= zsM+qIt_$&PaDOm`m|xUFyh#uWap>ww_Gok&Sq`er;aXjJpf_^Es&W3+mH)7!#^woA zq;rr&ItNMge`Apv+rlHYNbUEBl55^&X&Dx&{my2cU8I)YN-(*anM9hIM4_4apTAU= zGFTS@9{#1Wf9Sp33tuYhW}mHjOr2&Hk!BWA*4h7FvGlzM8b4>5|G%X#idQ0bXqLW< z60y6nL(|>(zq5VD!5aI*_w9?4@!J=<_P#q1w}2J|N1L#F!=^=v@^5l*lP164Ods5g zVZ^rlHg{MPhr4vNzn>$#sgY{C7!)CHNOmI34WUNAupN%Ipr@1DJ|&}njMTz^Mzi1c z|NCaYs7-SD&3<>GDra7$@GHF4RSJI-#8sv1F@TkC)&Z%a`B9)V`_diPm#&kyUvb|) z3-n$2#!jHu1hIpnet!+rU9;csh~KWwe$`zqIs^I*n*F{ie*I>@-xeB&AJpCVU3auw zQ(7C)E8^}CF6}5V@@1hF0jax@Ks$w2>e8+S+99+>F75q5FA1&1rQPqk;~=7j_Z-lR z;*Kj4l*Y9W+l2Oem-c5MER{!o91Xtf@GEEe)JF_ReO&6&IAA+Sa*MWnTg7i9kPfhN z1&Veg?gY|M?gQE)?mh$bEkR!e;(3ty=4m{2qP*v3zg!n`tm%(5947|9L(Dwj6U0XF zWOFz0yJXEmvDpE9s`)markwn_z-n-fLzaQnaXsB%DP(m+h9I(-{bumtTT(Hz3`;6ThAa~vpT3Rjcx>Z(Yhaxr z8N>AstMUKE3}dY@`}J?c+6()*_GlzF;5aZaJAPE!Ce`CdjdurT*K=UjXB1ojZK`Xd z;E&0GZkI;ER9C9NKwQ=+c%2tu6ZDeh>0&n zLR4l*h;+>Z#Yxm~%>z-y{0fNTDJo;qL=m$ewCzGW;Gl>sPtv%o024JX4><@6rCgd_ zFTqwmn^CX|xPeH&Hb=(+sW3YU===D3z9|M`lXPT^g2{7jW|<>u6ihDUn=-`V2ZA_G z{6j%k0PPmkona~r*<#xEa2N%*OB}++s5pXqtTZDtfPO3PE&)<5R|9D?vfQOnm9QhO zjzoFIb8sZ8$40>!#HTJm%Wf1re#{tib3jrujwQG&aNot@6}i0Qtkx*F zhr%+;*lR1k;~RTT3A1d5!eqLN31+2=2_iKV-Yc|EBKkyXC`=z}C`^=TC@W90o|7%V zhpU4b%HkJwDC-Y`G7V)>@9dqSto4Cx9O8t_9Q^R%%Es{Ft-Eb*+DAL9xiC20v} zAXBUvNTeA^q#1~L0iMsEfI)XggJQbw4TIwM1$b2g9u2_FHt?R_=2a#mV^>_+0?rm$ z`9q}qAqp+vN7%?%%eLRhSZOTfS_dfWk4JpNjf~k6_U8C)P&fA)8E@$AJoJ}$?=RQz z*e&jMOgGi~*bF8MG=qsWgNZT^6Sj2xf5T%g;XA^H$77Kx;R8P7P=@=W(a9IX1ugfp zKpP`IXm~tQ(A7Xj++7c#?izr?43Ezf9~>A`cV7qUx#6+Kpc8%%#qjuCiOU7(b!0a@ zK1bZq@OXqE8XgZ9#9=PAul=t#Ja&$hag8uihQ~8G5HWp07Q^H5IO2J3pqcR+9)B({ zd=P4Q?AMKXa&w?_-=m-ZNhZiFC8~6@uBp;Zq$bG2g!T!PBO*0HrVlkiCW^@7eU`nb zp`jL0#0+#wVN?#EWqFL4Q$S;BjhfRO6fx%jv7|@EB7#U)VCgp=z+3%>Pw)iRQ)RN> zoq*81_PZFO;2?w879ilz3xYyYs>=RE2?5Ifp_$~)mSFrQx${Bun&i&JZ(Xi)s3y5B zfwJy3$qf#bS<@hY@$Q9jvh=2xWuAR=cNELE#Z0-j#YEZ`6J>6TVX%9>80_Bl47){X zHXE`zZ#N8fX}5Qf2D_N!*^C*Q&6qXnVjtTOn_YPR5@xr)g#X*yCud#`mxzU!?ZVSz z@cbA(r%z=)iutZbG2g|hEHU2wW{C0bBQV~5#BaR&eee-pG8*qbjM=Y;yJx(6KTT%t z_btb7UrCzZ#FkTpA;f!b5p21F=DR4Ia?ujaVrMoi-F){3RG4r*=^_Ne!4dDo*iz7Rnv0`DI?c5nNVT3; zph^iZWxmVRtJ=%>mg|nLby{k-OMBaOcfh4ZAZ&G7YA}#~;|w63mP&26Li+`smYV0f zd!I{7*(z`nOylyT>+YLC*GrsVbZM^>iRSlXm-ZW=3UT*)mo^C8)v2!&fi!;S0?}?D z-;8rcW-0^2X`rY3Gy+_>r z1?U<WH;CZyE$Fs4TBj+cYe*&Lu@)4hRnF2gdHIwi>&761GC=C8i$Fp=KqXXPI?)o^2k+ zbC~Ra8$Pu)6lvjjE87Hn1*f*UHs8%KSeic9l-YbYLlC_)!4-0_!1xJcOt6h6GdP{a zIl~ZNb1GjWoJDQ(M-!S57hLhH-BySQ#Cu0<7oK4jz8tneo`zcZKAJ5-578GCXPWpvK#v+ur^_`i&USTD;9Sm%21=x}th8wK#RR2561A z;~o-9qeiE?_Jc0%8$haSr}X9HAzj`teop~Xzhi;)88y9h=4=5AEOQ@V3Yd23jrdjssHN{WKsg5$6G^kI6u*#NAAw zm4X`ZRMoDpY_pSZ;`m))*o*3KUdJ|8k-!1V2wUpTYAK^CX_{HebQ>G_w`Y)6Ea@JVWfEhsr|8vrG%p zH_SYS=Wz3VJkOPF|IRZ}#5mlx_j0^xLVUby9D;g!mL+K8GpN@A4L$Va32U2^A&8WQ zo@U#d!AIbu8J3_;7&$U+y&1Vc1^s0Fe>tF_+gWqi_V)TXT6VQN@HVJ&Pf9xxef*?J zt``2YV<5^d_genS`GP&O{Qa{8(sRpSHsvhAxVo_XWerl*n^IX-Zz5egwnAv{AQ&RG z{G|`I{3X)yWY$Kt=p~AX9WU!@RE~@wQj1>J^QasdK@>6D5J$?0s2mwV6fr*p?R`RH zw}L2Q>QK}4yOe+W-Ehlal_^xIZ-LJvrBahSs!}t)s#0$dGy^f&D2OU`i=d1u_5VrB z-}@xZVXgfLaAYUmX14tOg!rw4J8c7Q15(-@F6~~RkBd8M0P5~3pzc`yQa7;c&{hEb zn=F4b$kX7Ov~`_SAv@h>pLJn^zyDqvzEU-6sK8Mr2Q7(@vTTpNk7}i zC#zM^ut2DwAyRALdxb`8U?Q~!rVq6SCd#z>?E849*1!({g;n^jtbzGOosfD^Pe;H_#>&8`p1$bYLfaF^vh-5Pkp z=rJa^n#pSo{QJXI(${*9OrV9ZThwjACO5TUGvBme6RCyp7lrl_@S8|2gy};qgo(N? z*k6IGgDKejq89A03PQmSwGd{%=2P&<* z>t-pxkJP%^UmV^X4PQ6wW~r^AOtEGlk!B!KmZb_FjTuccdpyb5zLr(RrfHIMUPy3W zd(6wtr(i6tPUb7*VOB4h;j!*p_c!%hn-n z%+H?e3bGez51)0OfRH$9mT$QHq)pt-1k$p01rRed-*9!_(Sj=Qj0G&cPwq$^uVm8ol2cKiP&@k;_r9XkjIC-z2 zmB@7&_bZuN5^rv*UNw8!@}*@9mN(SaH`F$*u2>4Ajk0U5sKLpcRb^!hE^A)8bb577 zOaPP$7~z@94GM7Qa55#T#_$>BV4jK zemGxl?LqpKCBD>gl8B9{^R{L(pH#mwx%1&75<3locc2fXHEfDT{EZ8%lqX@6{d@DY6j06Lg}zjviktCdo$eovYXLVK}@8A zm?*O#Uf;0=A6#(d+}7vEBE)A#;+L~m%OQAN?K!g&5>U$E31o5^VwE1%l^DgCn7imo|sjfEN`1<-|f8) z{BMo5VWLJY;&3386G|IqqmYjepDbA+4?4?A84~Sn#BLTvKv9_EClJC+D_)WI3Fr!j8R}*ht>C z2#0f;q6%`GE^NOJX(3mdPDP`)1?;LJ&*YKTxP|elePV0t6$o0QA>LXy^0!90wRNKZ zo&47GQJm(?=3>?jVApSd6|wRx&9Y^jyB=ChOVt<3 zFa~h&2yZAS;_Z06EixAZjT2N3v|F0JdZ2YeYXTZ8p|B}@M5^r_K%*f_ip=MMPUuI( zX6P;Pu?^^MLEi=HBX55K^zjJY{RU{ay!{K%I-zmmX@I!nlC7`F+Y^Dx1#zkF#e&WU z`m*@A+^Zg3Am4ZkXcSPs z*$1TQ{RdE$yybF&bLA~3K=kcNK#L_-X8;YCx5I#R!iHPZz9un<0qJ+SHSI8Q$D_{A z79=MS2xLw1 zUj;r%CVoyfJAhA-qs31%zXU$r{2tFU9m-de}AH#Ek z*^1{x^9r7&G9W!gHh!IIIzfTxMT}>LDkFE}4NJNAngE4{3Hzf%T$n)_sa$wdb8SO4 z_D*x#?}JlGt_o2}#*Ypz8JaMDl&KH2B8)zD%aQost15|;wnJLhADE5_{Nw^?pYBo! z0?!@Wi`EV2!r~W~fS!+EjdF(fQJ_%TJbXL~_9$r#DTs>cfP%$)#y8s$7BE~4mcr=Q z@K)<{G!$>YFK&>`=wM2(>RAYTG^&&T6mOPuRi`MqRGlJtNI@b5O*r z0%HA*%I2;_5px@8!-Ym052A?q1CYk$&kn+QXedBR8{(jdyFQ7c{#LkzXXoNMWwYy= zsv8=bmp4^cRm9v=&|FPhTyDlQ<%=Zn_#OVYbA}B2XgE>5?gNmMa@WnN;>I%FhS!zK%_6JKGmExn&16AoBa+a3 z4kYImLhC7LWAIpq!zJk*`r}vEVcUpzfqaEDqr-r-sbRxuM=(o(!u9I0c*8XFwig>v z{j-vErKLAiFRra~ zRq?a&37;y?l&LCCq^dZP4r)RDvbMyr0}k)dYw0s*P&N*pjx;C-sirFjsf1V#lCR+$ zEXA9yI2b(KnSRJYhI&{ySY20@nSV@|@{dUQN0dG&*ja-JVyNbTZ;e{oVZ_@wo>GGl z@}X{EZxg9wrvWJ+Qyir#rQCWO|5<+QMWvKn^j^XK-NHaQq#yS0&c=PsvDRm*e>Z=1 z-NKrN`nuYiE1PQT>r(Qov^3)@muvG8ps&<1?#eYHV?n&0z5*sY}uM8g~?x%7|Tx~h$5`bvUTuo{I;@;BQxQ$ zjOtpj76!}G)BuC%hi(|^x7hf~m8yktRKTYChSE~2?@}w}5X(2=*jK|CM`Z<(vVutD zQcFki0vSEQI0@D;W8eh)Atqw`60y!iY=0tlfSX5jE_o+pfC_72Cyset2Bj~TIw+6e zC_t+-4k9n{!ycY}VBqHIc?hDPaJv2XVEaqc@^UcRRh(*rw{bk{Gl*+GI!Bi09Jjq+ zWZ@j3$K>q-AnlA^52SUQU!)`{k}+QGWUc^BJDIl<$=gr3KA5|-eqlaN$Fq;A!ZQ!+ z9=M`!Bc21~bc{jf!@xz7r*8v!CGNxcU5wj%4TVeQzis);0(nh8{3=7uKB5-P?6mPT zCP6csNHd!#f<=LTv6;1;Z-*CeIsY1d|C`HsL-o??%EoH9%BPic#!-__q)8|0emRdF zc&RLpOV3f}2Rlo^ozd8hTbd_2GcdJMl;x4Vu$S+dCxtsurrEx}gm~r4z=M`mmSio{ zN-zDe^fJ`!r8k&`X{DFZ)+{8_EF=o5pi8Jc32*%(nxpnVg!>|Cf|V5< z8?!}s2vE3)J`-=q5bs6t>#ep^0@ap&=!T)bkWECdtgLOyTy7abO*D}vn#d`)MUHq* zlghIFnsNc$xP5LBMuR)4nG0jw0b-u5l&*YQj8u0AJP!=a2v$jd>tC#ipr&ktacF@ePuk6GM>m`d?99NI@#yh z5!kT| z;|+~#vV8y6-{vODW%6fM!Q^=7%0dPZ>l{8Ehn|TPnwy88EmLkW%_s2aVrV8gZDayq z67S-jiM-ok05p%y^DMaCKjw9Am1zF@7x+sSu5T^+5V~h6Z*(>Yf#5rdiw8k475a+6 zJa|33A2aHcK$8UR2AU!0_duHQEGAr{&Wyhl&pw6?a2^gbW%e`M@?}c3pEQ~U<{nV` zn=j%SF>m0hV@ZXQ`9Tr1AMZIx;4LWc#xHL{Ssf@S^uyTv2KRjSmE`KhuJiKd#+r&7 zDi`YdXsTIm_nCT^EnO80P`tPdx)Uy%5s8ZF9OA*mcy#c7OS-IjW&NT>ZYd-$wGFX)i+ncpHwrR-AYDqShJ#HQGLTQPhDfYHI+n~N}}*oa_-{bQ+Y`*q;f{}^2!Ew z4tkbMMqHCgq{$=-PbQ~I4nCQOmYMY{>yVc^575(8GTxd>B26WcBRGq@>`*ujl1j

O5muJ_S*|cpH#xq)@nq``zK2ta9+)(}U}ZjJUn0gZ zFsA1ft9@|Zs`Y_>O_JhvUu)rAIH(g|AvmRdOwKJ(5h?;xg=u+bYu<v4Y{!K6hvrsAc=09kI7q02p3t>@Bp@ zod{;1DvfyEz8rA^wZjP<3}`LF6tG0k4MbzJkF7kL1aE8{4-yT8ha~KX?U64cT=vDZ z>F97{jWG0E%E-Ldyj%R?Izh3WYPmVjG#w|A0f#m9meGt$`Mw0Bg9fJnc>o8Ai!s3J z>D)o(;6Pmk3QmzJ16m@e#-*`ic6Rbv8P(T?V%TETHUjZL&3h~7vIlAsR69*n*I5%>VX~gqg<{>=aEkjbLnKt0l<$U!L zIp*<9nfV)P-i`R3C2e0&-t(}|VtmCb?-_gkw(@>eKoZgq-7wVB!_iJw%xtJ%xvX-z zD>mI`lC2_g%SfxJ#{#ldvZ9He!EtJ;OZD8Z8 zZ}7IJ%taMVL@Jtyf&v&l2&U7o;L7*EXXHFNjVKj%f}=sA8aXeWDY32A7O_L zy}1%>g)@zXac1cofn2Fv$_>#l&=WrRk5PTcMXF=`6oQZjIfUg_^<`p|O+?Bjq9B`+ zu|f!d0xN6+j4F^Z)e>P;iOVP|i>gxONH;8;QRl)9nZz<-uOOoq1d1>H&<)2|zu99( zEv&DDja>7>R1d-Bl-1#0M-QQ5j#K8SgtE&ZN}XjK6Q_(LQpOQwVw@`xWBzgJ7YbnW ziGH&Pu%SR&$T(M`>B|YN^rP^$E3VxV;2QmqYp3G=0n(#aFDl2>3Ry(a19OmD{dePg zQWhNP$yi5Iy+D-du8HoS>>t<9Ne0!;!|xEx5bi)Q;rcS$B2YuOWvtr(yKnj=bWkp zJNl-jV;0xYt$F+z&N7L{_UA8f0iCm$xi$W{Z+6OAHP;$@9Gb( z0{zM>QvFIjb`X&XUpFV7;?!?If=@0;m@-i z8l_+zLen|^2?bvF5^i=WvMS?AS%b ztvq|_=V?9!!KwKkbUih)(lUMwXt%jv+=*Z8m-{b%F<0Wk@7ye|RkmDlL2*-keeu%z zy2b7qm9Fd%nMrD{wMkH5X23tPxC7BeCneZ` zv40zP32u9h2Oyodz1U3gx7A-`fuc`8bVD8XS8k=yrVMq`&G6Dv?=QDC`X#*hhAQNQ z?09u!W98y%xAkGfRhAN|EG0^nTYTMRH8HQBN!AkyyYSzZSkicDX(fX8EmzQm7CYx< z>ffXIc)sxEQ-WCL9uQ>R*z(D;@fqJ6>w^FJRzEQa=<}iOz9>}Y!6yXqTR#(oG7{R5 za3T9XT^fS61IvTMnho^1cOWDbBe-CP99Am+T_m05y|TEvvnp{E9itr?lxj!NU!+Lb zC9z>zRPwW~C>jp*U3ohiNK4^#z7-m!{hLzr-s8SawI7_~Qy(nRQ2KC(m)i|^L;iWo zZO{m0S%#Kl>c}*4C+C2qZF@1Jd}_(Un#zWXrUneUHI~g#+30IjX3#za+ij#BXFGB1 z7_33|HyVs}32rtTBZ4(2C4y0LQa{`#U}(4M4H>8H0<%cl1)_)?(DrSiJ%P^?VcRnx z`oOkl4)WJ8qh+03_Lp^Ac~}CrA^?9g0is-ds}+uUwO!o#N@s{%-YKpqU$i7pE`MKW zLx95N@(y{=SUxW(RbOo7?n)Mu9V&}=3!*Ic+J;caEeve&go@!=sU|idd&F}wBBGIJ zWl+TGt1EhPqzHs7L}TEF$?#sml|sP@F!~vYn+0oRwnDYCrZUy*I?t9StGqITDsYKZ z;1Y$X`)!OKSL*G_Y2r+Z?U-_)$;T523+lChKrltp2tAKqMTRj}t}v~^CW#6t>0Umt zIPmu$ar3$&P_gKTZqC6yDjN^3Z(LZpw6X!qPL@_T)z&Qr(C%n`!%(+{a%-C9&2uhq zh?F-(nH77VJho!j(cV?=1`3mvylJvKrP2EZu_*MNh(x$Te>OOwBKHCyRd!-P%6BUC zTG2SGr?eU%72%C8jX9^B59Sh8eO7Ak6%@cDGYQ~P9{Hv+wR~DE#ISDSxCt2l^UF|v zxCHkNxX;a&)oVQ;Nf)9vYneiom*l0&OCsz+gAe>!XbldE$b=kyL}lSN5vD4oANwa{HQleKd@0sg}~x8!Y*=ZD&%eJgAA%r2|!Q2);nMny#v)h$~? zIf9{#AyUQ=31hm`qtjy^Lwj}ceGdQ13tC=)l1dZOgYMW(L8QVpiu1tj$?}#wR`GBV zkZKw1&S}Sv4YR&o!MC{c#fVR7VR@E>o31)@<1^_J89Q?$LwjWtCZ+Yt`1umt%WGnItczZm&HOXcGoK|`bqsP>bqu12>;zdVv{m>xQN%m~L?2PvbAjmKbd0I+c`!N# zW1%`mnIPyGEgglKR$*aT0F;-hSR-IoVD=u<|DD{CnRb)tB6MQC%r?#e*y$AN8@aNH zMIRB3!Rk8=@7ZhgUYuxRvH7Dz47RTHLpN+?w^Fr{t6MDz+L5$j{U;EF+m5(Xo;q1- zt22|N)tN}EGm%v1+ha6yFPPgJAJoRE%t@9PVZFd0NW4Os>=!Bw!<|u;>%=_bS!sF6 zpK|oUiwvuqRv9k%dg7BV685OZxG0?!G`{LqBxGP*={vLoVf9V|_!@ z6pRIzmiEf*iEVIFn^?H(2J0KDsv9nlNoS^%hL#l<)iyLXi4i9SgODz*bSNAL7=_qY z%xS>VAe$xRl4c2!W(iSd35yNQIrnncGn_K=%)PYXr{PKyyJNu~p`?0mvSUF<6Lu`P zSKidnLo4=&mS2#*JEj$rlq~O{EEX!yf^l*DF7IvtyTpO+22f!w>yr|LxEjK7Q*39t zXW-_YIBMox`*TxlhlSWkdIvU=9_;ia?UMiYdF=%@(Dscs3IjK9!Lt7}w`X!aN^AUS zi4iwPumF~dO58gJ)jgZpf6Ml;(^&SvR{?o~i$=H>KkdOVoQ0+TCk zOUH^5U-2)#*(komqes2U#=cm>Ky)18Afpj75$ANTl?ZZH7Y5!%QN2L~i6KEWw zQDj~Q`hxg<18A+FUjlJSdy&|etFb0+%%2dygMf4wfir>h?N}h)CxEv8Yb2D}Kb;_ib$Hw(HKXtkh6fmR8s#gp3)Q&LRCGtXRx zXFu5-r~oG5tP`v8ER=PjN6U(tW6iUm9A{p{bBNiE=gBf@bc(FzJXJPQhDwTWlo;-2 zaHg!PIm?^`e6|^Z=Q(1Je6E=WJW|%#j5a)YW~@k{pqzgaZ`j^?FK(F3yti^blij?t zfc>!8%}-3<5dVACZr(1=4;Z^2%1=)Ea|+SjV?%@*AT3D}& z^*Sr4V;S!?gx`roZq!VoAv~*Yx*sJcxY0!w&x}Krv zifAIWu4f%Xc!&j&TGz9-MP&sUky_WY-l=sxky_WYrmA&4ky_WYmaBC=QN(OP$ok#w z4$@Ocl(yHUMRKjX0S=0oQkQmtOCz&*seL_G+1FNGzC2|bnwl3ESDW!7u}tsU z?l^UaWr(S&ksBc2(yi;4%X>T=>w2^xdl@1c4EawkXE$x%C?TLQW*FUPEFKm&)C?O1 z*_eVLS63$K%x7&+SPC>fw+iwPq17-nw`Up{&K5oGUh&1AdC-iNEs*M4L21Xb&s2CX zcJjTtS*Gz3YPRc+wLVj;!e`f|jIU};M5-|nMT`?nvF@}9 z^Wt=?wKm4cH`p(R(%gceHx9DCDxj&B;A`XJ~Cau2czejZ>Q%Ry%9V z-NKM&x5sE|>WMVW=@tu5ELKV;ffW&TR?{47k^u2DLB2*yZ*QJvVeXqP%6C26wmgo7*X)02X+jOadyrzow_aTPvrg%93(8`-7Kal7r- zXICBV_paYgecC7IY#s9Mu(unb7ci-~ws`Q99-Owr-X8b}?|)O2ruyI7OD+fP(0AC| zg;2O9LXmkBh<0g3hAh*b^L`+;D(;88TPHo|V}J&TJN84hPd*%|Ttc}3NPGL20qG8V z*Sl}o!`6QPZ9uxi-U~p~G4thklBl5XfTj(>kAPIbcL1Fr-~AgEKbH>h2oX-4dYx72fj*P#p_+AJA(Om)n6f20Q}lXX5Trpq~nQ z66j4q&jI~J&`zNL5wsi6^u6}_n(IOBFMI7pWSIUaX9M1cK_4u8?Hw=AqvlEnMa&IAtgTVA$UzZv z6A`*R)k3Pqi2RmLN|rTxUvB)=ryZ@7!LFA?H{T6o)~WK*4Tt zP(|7pb?lzt?}JjA+$wFu7@*yP%79dA{u$pQuhkY8Kv5mJGseFZvM#A!4MW{)hfkc<3>D>dwb&-87Q-<&W3$7B^~+bMYH`YHp?DboQWZJvjZDULy)>dY zHI*Xvd#R}uHf=(3r&5?iq0GQCICLhXgUP@y>QV z6Ua6inD$P#eJ)G3wP(+^MYT(pR@7z5IQMiV?EIA}7rV7hAeOg;=OL$IK;d8m0vqHaKkFb6xu6T?Sdx)(GT5>$Njrt{;^Cq)UU2+sH|I@VcW)TZrqqLN7x+sYZdv= z3<=gD@<91dr2Hom{-f?}-IHrYnq5?U-8Lp|8}1^Ej9X^XBG%3Zb8&4rGwn3E)Es)i z)d#m%h6Q(MpdY%CCA&dpPE!-u417$998cNgRup88*mDNAqF^$VA4JLzBH>3%M}dF4 z7Ydgpd2I-chQbMq%dRo}O5qX<5JSB$m2&sIrn>5t*uL9i zfo=

NPFdc~DB)eR{-AjVeHL!{{;>T$i9;Ys$P)th)A+1`5d&s4IdxkfW8rsEmv z4Frq3?jfY+NYiYYWQXmU5akGwa)d}Y;y>?8hu$uilygWeypVI$n%Ttm z9e#LO6BMJD23SKsbi?~!!Q$YwN#TiOX<&oSIwx6ABY2zbjH;%DNK-=Oq@=nRQW6|x z^`<2EU5J!ix;&^NYf4h-a3z*a2P3NKAkuUYr4`@MHSDapy*0-a+}NN5VY5tgw7k2! zp{}(XnWko0-8q)D?NGU|wkDlOlTLKxlYVWW%zBgFgFSOG!4|TKyUT#IO>?>VxH5o9 z89Q#SQuaM6>|=?_k+wLTeIKUH zLEritrc*gbq?{v4)nMI_`BI>G^(~_$oIVUfHU0Tcca~z>H-YM1EU#IirJjy{*6fZ!MwJ1I- zOlFPCk)^cZMR6A1vvzokW3VO%iz5Bd%|zV4I5O-#$K|eD6m1LhGGb6MuXb^bXL*Oq za56y|PLy6cQ>I*4RsPpEPTErD8ytiYIP2RSZnc z@V9M`ZV!}P`k@0uWRo72F-{tTYeAhK1DL_O*I7|*`ktR|O6A6dIZNfa8 ze29v?uMI(SrAW(GJwGS4c0?B!ASaxK1-?B!!nXAIF+LqW-3{*riOV<*f@Y#eTolRr4{`QqBE2+*74wpO0xNA0Z}U<42C1 zfU|J@Dh^}Hm|cnclc^%*p7J9xNp;BI0id?GXn>B-7|4YF-D82!>`-l=k9xV7sK{lIxUmZ^B`| z4E*fGuhb-9S6giG^J-W2Q$b=^HiH&8&pk7k-{bZ*visSAR^1O)3b(7FVJBKBYp_l! z5;_dcT47hETedoin(l};DYn1y(qw!HrV3MbSFPo5au05;FZPVi-FC?Rp@X*6K@?=~1eA9||{mcV+ z7MRcC8IdzI3+1fiqs(tX8DKi`9Au70h=Zldzm4A|xb1a1-ps%c_9N_dk|R2-I0!1l z^g}(EpYwa=S$~x9*;)ev3k~R~rK&Z48JU{U-DI16IA+ zCwthlkUEV5wH_3zL_tFSr`c@zPaY_MhNBlnO@V_eu2{BQayusFhobx+h*Z9r2c)Z$ z-V3B9WGT?!+-6#Y>9y$biw zQ-Zno?G{t5{P3QwoM9p0c(to@kw7`xgu8;Jf&?;M3Jw`=#W|U$Wr9e{1W`oHw8-G7 z7^o3NWC;}6AC=AhiPW%#8K#CUMBUMsXXS0(n~Ui*o{jK}Tx!s>@`k?x(a7x(a

( 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
6~oh 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
=P~k3n!nBLDvy;=R2;pA1jR(dsa+Ji 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Ƹ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


Q5$iRO{s+wvM-N(^k0p9t>o0 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%0A~k=N zWysbHc%T_DEkgX^wP?;CS_|v^qb=^eor7B}HD$sAp|L>EY#!%(ut4B5KbSTa=Gs9p zu#p0Zpg-|wu9QMXe>G%8YGJ$S+LXcc-JI^jdwHhW*Mz+ArPZWwf)1{}sk&P7xIwC< zDiT`=+FgOdL=_FBKTj&EZGqc#C(YiCA%1DDC40p+%y!H<4CRoKD)3^z4^!Poroxf| zF$Ja0kt;`5p3$vbi)on;W<_KKJgb3?T--m)T9(0^rVyOwN6b1J2u%!TbD>-;h^$m? zu8RFPAvn_xbhA>2wl|O;$%dUWQa7HQn}sNc-$PwlM|`KH*t}67g|Q6u;5bcjO0Cu^ z#nQ%L6sB-$Q@*0sDp2EUFe(fp)@PrcLcbmO=x}1s_VUF&zT}2 znPT9BMOwBJMmuKSn>K^uBRtqpb3d#@P%ZGoLK<@Ago`7sw18BHE}}lUd?zhV2iLA0 zTALhQ8^n1WoFT=Lqrh@B6b|%6lY!-OEg}~mk#H~)kEBu~sbrAW4Sfg}X6B{~#@eCJ zkU?N@6D>OWoc31W!6gq3cZ9$JAF2*G9S71UAUms& z$B81^VS-WVb+eSD+LmDSCr6NK8yfYr?JcqSUSgI$9mN~P+?b4RnJnR$x^-_cA^Ua*Na zX*SopohAshNyU-sZ=%t9m(@h&HgRm54;I%pJcq}wg5wTHhsW_W!zG33>=f1}e4^EC zT9Jx1s<79pb4zWb90)}9=x%3Ows7;h8i?!yT&J6zVS%BY&Nc5B^vXCsuxhG|g`2w5 zxgwLvp^DsfIBOT>tA4JytQsxG#RX#tFK7<9;5gEX)s2x0y6Kj!8sR4ScC}_7X~c6f z>sXi;Pide7=AheOY8xk(Gz)67o&7-&6Kk24shTr;tr9bjyurAU$;u2aNJSgY6=8Cf zyjB)ZXsN>s!qJ3-e1(=Y2&l0Ixj4#&Pps-nq}vI(ZQCcGrmP2u9cEG9=wZ!3PkW4) zVGT6)v{T;gZ$b9YXkft*i>HU>(Sn8Pq)jIwkbwn(SOr2yL>6SC$wWH_vmg;oA}g>F z)+VCH9=y8GV%OPoJo_WP6&Ys}y zLpX`$bT|s}4jtKp!|(~m)^j78?5~Z7A@w7Hjq1^(85`++Th1{69j4TtH*84CGT|1K zD`?vHhDmB!xqRsW`vN}DwkjDY!B8=ib9mPo z-o5BL=S>G+7Y3p2gTN2&E%-BSc>)>q2;X}plI=II$4WzjLFT2MS@9l7lb4<*sQz!Seog9w*?I{X^?oX zPoCLdNJ!`j33^oAvZ`JXkv$;br|B2OQYRJ>?U;=6f{Ywx6wsd7Sui`g*7@26)OeDx5;qe zssZTf0^0R9W&)N?j4;1&C^cI(0P;m`Sas97DjEvL5>a}XcQiPKHwX34Rts}m0zI+N z7WqOThgSn_p_c*idx_|gt)X%yizn%43aRxkDd4L|aK@-s*%tEXf|#l%kYhK5#ssvk zE(GYN0G)@pQkW^wQ=ZaO8bhqawAIg@fdOp=r3wGKq9&Bp3FAwIcF+ISYmj+w|#d&LuqyO#MnA5F}o~^dMX`tzc zo`?`0(ekV(4}Z3!DPzq-%HJLl^y%j?b@4z;HKXiUXc)a%gL32Tg7rXQgZkYH2HXk; z>kBli<5mJg*Q&6D==A}xTB7#TN5DT^-x~~!E_>Ung*;VIA6e7$dQjcQn#%`bpt*$j={tM*Wo~}3 z`a4*OZ%LZIakz0STFtcEyE*uqa`l{xOVnhJUC ze-T#Yk-%M@Tlw1U4fvwbn!e=01ZpWEZkd3s60?~Ec)S+5qd7KPo>l*K`piqa`WL~r zDv0?UrtN#kQ9}SW2+AGX2dOj#oN>P+vdgO8IROGv$r=G9i5TDZVF2oO-psO~RoZWb5u~ z#7TVydkyM^(#F~*FY*omqF;C0)&RedVgM_gdL%y?=~5(5jfNw^wc+S!cx`M1Ujc*6 zA-*SOG>0Fl!17wT99TY6E^QP~=vgxG^E~SHeUZK1-mfo`t7CPzp0YWst;QOZ8;2H5 z`Xo*(^l5KxtWybldEJo8;|}$0i-G~Sg2DO%?YM(miL1i4E?N8hu?g0*IMeSUwE>s= zgLU_*=h`CxeWuX?8*-O#rDq+xg+QceQF-^d-kRvPY|7Vyb)1cbWB7V9=7GQNjKAg# zX10~DJkv3xPNfc8Ic_j)XVvSUF%AtTA!0PSi$Oav?eZw|x{G0KELx29uD}o{^i7s* zM~lU7@tSDAeLGMMEn_oWY5Q8u?FM;U(Cuu$sr@J~OS?VolkIJyo`*$lf{N8jH&YRo zJFu>9qo4^2Z8Dk2Y8cx<7wl>b?F#!+BbctX-6%bCX1lMg_;>s;TDBMK^~xoFu;`Er z#^USsFJW=pHgqAC?Q*bZm*$r=f(~ey4#e%s{8|qSwaTeu{MIs2E&OsnR@Am8 zVBT6ZJ{Z(D1XMbtM^1g#RYI0^dx zwpIxWD^j1#GAH55&eUbXEC4MnX-_fI;)r%LEKAo$!~#x=;t~#+$KMTN&8rw=;fA+l zLY#PMA|f>N*Gx4xo|~az=|^CA7YT1gFi6W3o^Nh!xeShFGPz)EbA)0~t+~4VTC3B? z!cVKjY>eyMrV*=?Lu+tpb&M}M@Du)_={!e&Y%th7 zxok_c%)b_BBG1<C0mKzyq9eDTh6wsX}V^Twn^oWmY1vdN5Lll9Y6Nz@UY1h zwo9;}>f{Cd$)rtEHTP`C%XL1a8sGUsHM+IqMXLE8AqAnT_L$h8hGEuehDz9$T|r;X z-P>8hod?nGe4Q17B|b>3%bQ)r@y3?$hDGce7V?{eE+oj6;_)~BX>*`1HEc^q_6A1a zxTQE<+Y~I8t9YmgZ>-i-c7zVeNatED)T*_7jb7&>SuA5+Y6~9ZI#nkyIie;F68YKL zLW#aZ*W&SAXw);TaYa4v*P?%(oW&}LPSv)}7POTzvH@yx$P~ZT%BomU6UcFKoed$H zH+8shsah=6RHo`ufu6Y@F)f@6#-mO8mp%)n*Nz+kfvCn46S$m^TD@}4L zgS3q@&a&mwEM#R8MDsoAkB2p4c&4H}m7g)@oOmFE)f!`rLi@DjHyg-GQpnbj@?XL3 z;8~Jtp@gp(&;{AZ;%T#=kEsNDx3{)19%ieg#%DKdZJG@=DQTEx-wv(8 zSOa}(mL)4pxu&Phh*#>lI#z<3U80LdxFkP@O1`(OHAcip8PiTpw8Bi!T(zKX$WIk& zv}I`V6~bGs3&DFECA?OZvy4x3VB>Lpep==4cXfPd)hM++vuZAIqk<<^_3t1z@HCpn zU-D5aIXW0;5=gP8J6n_GP&0*%7;(IBNOW0tM4Ll2KH4D1OH-A?1}|JL-jDpU!G~7W zE)bD5l8>OSilxs>jKt3y4x(aUIf+es;FN8fIt&MfN8}8NGjrKc99vo8aSPiBRt$bo z&r&G*L=VBqN@T4Kd>~w$#&dWU6Dz(ZPDBnAj##vze;mht7~UTY;oX7hYW^~c7}OzB zp4l2+;bf~J2B2SOK(B5X`QEy*5`l)YOb zG#5_VPZScBsjGjLzM6ti`O1M-0uoCMR9!!}dA7w!5`l4}Fc*i3L?2vO$|Hkpl>(vdrJ`9wjF`y?R%hq7Z?$03-3`T=89fy6HBSvE zvtcH`v05L;idfyERR0pA1Sf6_(HiN8=6HG4ZgyuIX6CA!bg}v+BSIrXzO`aA%W}&? zu2GZbW!%PcdAfcS>%ZQl4dSU^A2ecA7qKB0HB~i5_I?SNf}^?8RDN#brkZNJcz~N( z7jo#deL>^5J+Yv%2mStP>p_37W326u2#z1nHs+gaV#`Gmx-`u+5LP%vG)<7GPi%Qtw%9{sk?U5;Y!TfO zTP}6ohTam?Ii{_eB#YDCP;m3y+un~Lstypv7dMBsM}+u@#UYDC0OvZ)ab!vSh(k%V)ysSzQ;jMGwH z8cd-amSoegI2a+*2Ih5uJxQV)-3Cb#q&&17g{;yQ)mOIE{T0~|7I78;E@i+Dj> zOS*{H#cn$0EnG;nJ8Ho8gDr32*08W8;n=V(Z{dR9W%_E07@YDJ&9N^}=gQgTnzwKv zs#{c3px~aj&}WGr_E^;QUq#onZR8a$La`}|qleYPb{7)Hq^QeVxYV#UY73?7@)o|S zXp;nCr;oga3t2-=OuAc_xA3lvdCE@7qB4Phg)wl?N_h9!y!?~%(>W{Ah)kobgm-;Q z6y8X09riulQZnAHnmb<~CN^Tj942akgJaI25fdWkVAeUeY(gVS-q{52+Im#yolWp2 zVw0$6UZNo-$|e*`ICoN-q70Y#9{XCk6dV`tH5T86r9Waap2Z23;#8b#)Qb2&p#A3W z+@Rc>_DbZe@vb{ThqWp|TRix()g9RG00u2Mh|?8=1GMFYKoFa*JAnh!_l__lJ=wmU z!bd!WEk@I1*wGq5U$wiP-vCqRJ6a-z$aq7!q89Q~n}WuRakS^%ns_YU;+6@V>w;Hv`}AS(}#Arv9Qa z+R-=7@m-Whnt{dAv|8M-3rxWE+f=OVo0)z)cTVA$CQU5gY}3|3#xEK(g|gJTG1I3W z517Mf!M{3vJ&(mSx?s#^&=bN>V%9yF>{6wPmV1Ljmabnigy{rT-JHLqpw8xt6*{lT z!71C|K#z8>R~%$Sq-&Y2oa{2pg7;K!V4j+#wSCs9saAH5ahi7)&7-*Rl_y$MZ*gi( zxYh*;`jsGNY^AWdj8k#-?xl58$7aigjA7H}qh+5)7O_-z(_C%3yaiv766)Q$zQ3<` z)$+6YjfG_}m#nL@Y_A;6tODhX=NSj0cg}Wd#U1qxGmS?x|w;OHASElFB$RMP` zYE2K5=F_C`7dc}~4jud7)E{ix7E47W+GdKE7jQP7x<_v!axves2nV!np|1c+sd@ z$(J@3n0-IX9T$OGCGW-acE~$4GlK*6c#_bwaWUYIeb5I$4q&8=gfD+BybDDkQ*Ekq zcN_`x@(Sw7bo+zE!Xz4-6z!0DdzmGDDcX32Zqb}3>Y2x-q4{cpZj1bAk(0NX+j0D` zP2Y9pW3xEA*=#~UWP(J-(lT^SeSw5onZ#_{E(RP-ZWDBTnBgX0H$ldbiruU?L8M)p(X0&WT|yH~8$H+EL^HKzG}qKT(3Pgnoix$1+&+-)Lu5_V zMHW-re6Z!jRl~J4L9b1`1Ofwaf#}MlX4kiKMTtDEza`~bF#`Mz!Re5m!o-Rce@P}} z;rMW+JU3gI&dilc`So~y+GW|S4G59&Sw}V$=yi!EuutMAzT}o^?a$AZnrk@59{P$} z)fL}8cGcC~6~Zx+jC(jYjBiXpkc2O9bFE^DkKFpsv;w_NXroPB&D3-gVKX$eMWtD+ z&D1xEx`}EmetlLWzhe@A6J#ty(o8)upjIiPzQrWBI3?ym zs`X)1t9>@4sk@k#N$TdYRZ3FZ>te80>5^WW%xJ6R=oL?#AaIY=T5V#!I5vBsR(Wir zMCFJZ;fZs2Bo$2wf?PhApP^e{5&W9y(h&x;6((n4P9nSf}@e&udeGVl`T<(h8EEnW8Pxk@CzmwqYH& zO!fUwuq$4-gr`aPpht6c5hxj(s^ZvjAXay7s0m|a5qA^yY(oIP=v#y6*fqVNTRS$y zlT?h5ScZEFjpdl{3q!>&4~C0!l~2|7IzqED{1 zblOFiiBJ4zi+>+(c=jdFmu+^~6uIJ{Obc-Sh;Q#Rn zP26}VY9&9#Z|C!0SrbRTWa`B;`cE*QDQ(a)$fc!t8q@m}ll zTi=1yZQXdNR^D8k;ysqSr@O$V$4OvYR&nPt1KSG*oX!~QU4`E@ZzVM^3n%KVk@b>r zg6;rDD3z41Rq*Ct1SfTCbQh&-LNSebp{1Gd*rb}onKrzI7GD8}=aE&dS+$nm2q%EZ zMZ1FmXjiB$z5|ZB8!?}BQ_HhEuH*C5FIXLPuD5|y^{odS^ZP&6XHCCdwArkfSy!#3 z-BuR@GH#Iv-;9I8j;TX!*H&xQgRU&X%F|(s*M%3%pE1?F7tjLnDhG9QVKY7DLJ!ty zjGK3Ng#)$vBO?VZ^V+;!;ljxF9rta(J25M_Qg-E|z&?7R>14f0Xd=I9vBOQ&lR-n9 zY;zM0x5#jFHhjnNY@gwL-qXQnHNi$>Kj!4PnrHydtnMUfQ<7!}CrEIv&AcJl1Rwr7YIk}~G+?p0 zP4&?1CitjqQ?=_)_%y+^KdESw4qY^_)BGKt#SXEaC6Mt<-$DGHhnleksV{)SeZJ5=?MwAEI%16Wc&B6flavv*9yIIU;{TULMwWnQ?offlZ?L=cp%hK5p`r@KMU}zrlPuh@h zuf*oH^O*-aI%C@!(H)hLijELure+FxyjY=anKF%2@wVrY`Bi$nI@colb@SYuR4Z+y z@j4~n4@7JJ)o0d27-X~2B&p=v}!Wv)s+fv)i~b4CvwvBs}I_kBJ#td<A=dBt5z(hvWu4_ z79F;D)1PmNjl8^5xp6OrKg*_R5rbnB@>9X@?`O5YE6b(}>*qH1=q1TFjsm@H43FA6{0O&e!rr{q!P52|pt++TEZM4BBy>D17VRY`Fb<9dYmQiF=n% z+$}zFxBJB1=@a)MpSX|t#C_5y?k=CWyM5xm>=Sp7PuzVzaS!;!eak2AyFPJ0^ojea zPuwqj;(qND_dB1sKlsG`*(dHVK5Wm z#2w)icZ^Tm@jh`U`ox{;6SvGKuHPqag-_gSCmf!_s%ef4zYm299`}clT_`x1>yZku}KYs?yU#+;Ho!+s)JqOHD z&o!oZA~0*LIO$id?T!F*aRb~wX!j++Y>~JQ{EdFp(c2&QuLtIRc6v6s90lCRfqBr1 ztCPz?!2JN2$0Uw=&F#{7^lZgn;zOawbHH5mypYSD_?ySW7MBpc&jIt0#O;Q^nch}n z&>(m*?mrLAMK1_?dk{{c{??{?a-$dEPySH+atAOUkT^NM0vEU9J_*cSc3hPkmedsG zR{Za)5~JT-+^a0J>EF31yjbZ_ZpK9)`nhy}(m!jwb{p=00i_o%GH}8D5wF?k9Ru9u zz`Rr9s2@)B-i-UV1Jl3QMvvue=oQH|4a}It8FFDc>v~W6q5@NHfTMBS2F#lzPS*p6 z@x2Y0&q$m;zPA3J1bV**X5S9c52EMP-*@5u@xXjh;t1^|KN^pp0&{4mAr~il9|UeW zFuyS2oaprc_bf0=ck|}&Cg28v`F|4U#$OS*KLInodx!FFTze>s9Q&KYK;4e=r}q%; zvfgX@VoVR^0MI+9t3yfRq7VJ#{@Ugd^8QFc&QGrgtQ8TY-5SuA6Z!a*^L#fO{{>2lw)(NBWWh<~kG3 zslRss_fcTZ-`kts!N8Rz=1TtUJihM$?i!RY-N&0Ajqe(XN%L=KdN%+!j`BY>p!YrC z_SzSEkE^y{hq50u(5b&a1nw4;*Y+3u>H25$AHBfc4a^@TPTH5RF0<($`I-L#X8&$M zPuD*iy)%L90VXSPUiAJAm~D1?ws!Xhy*B}Kqa8EhtzIFq@&%*T);C_p%;~@8T?*VR4ls|}zK6<;h zeo%iO17@Ft1R0rOpnbE8Lcegc@KhZyZT$>mePtpVmq6VA!5odMi_hju9E z;G&Nke_uyg8khqQGum~cNAl|f<|QVa6Mz2!-0OiEJ=~k##lT$x%!9Zd!_@%}o#-vb z1bYhQ&m7@RkH+KRBRiC{aE;0>3tLQt^g)}bcga zo&)Bto(|>vxH^<2j^nW>nG!F3@nH+px0 zUJ2zrr!}S*24)7=6}a5!eH!%Mit?e;z3F`!xM^UHKchpr1J^z-`tll#?_DTA>r6q9 z)^EDKGWp8@?!OI~?@HY6_?zv4&2N!E+PAkuS&fT6^wY_I5Py@v9MXri4=y+UUJL#{ zgz_^78uNEGFyD|kFaA0QJCt5r^l{_wt0+qXv+r`m(74?ABl+Eq@)K4z=I@ojd|BeW z`1=PiC$945kK`8xX7O1a%9Xg>_#^qf1La4a-I%{QU_LEzUi>`)%u(kw=5IAHf5Ub8 zx$gXt{N9N2{Q`~oD+2QYiSy#`5n%QYHs)^`FpuLZh1~hO4g6h!^5Y_n`FklacT1cX ze@_E*e6%rtL13Q8bw$jbzxRT_x1xOcaAW?i1Lj*2=f&TWkq%`AF8a_19 z{GwE2{yqoHGZN>;-$1%UQE_?k_Z1Yr9GG*?hfToc#vjS=+bF*@+nB!xfmxChI4}N& zfT>6vp`FI}(B)G_^zpUPqxf`>QipO3F8X-UI~ka$#Od^GaTDb&CV`o@<7|3L zd6lieyj|it@wbznQa<8~z&vE9XIt-6y!T%cga7h}^?7}@s{KvBsU7?03J3X-UOfhS z`;>)T^#0n``;><}4w#E@U4^UDW&Yj=+&c+3>#Z+X(kd?l=K5-fa`hbYG`tlwy zwDPhJ<%e4ZJsL-SzM1S5<>9`#4gL}redwo?oF{SrabTjC3!GRVVZXxG-!uex88G*~ zqC+|8RUOLNF8o!%-#sWFyi(9R5cJ*n`wK9guWiiV@xWXzac=zm0quMQn0H(S-~T$q zPq5HV_Fy>_J%{qEUoYDAvZwzKm|sa8p`GMM`tkxWFS=ULbJLfX1Gf^GPvbi58d|M7 z+rMMLUoXm&Z)nWl+kv@L;=K5~7nnyS&W%5^FV9NML2o2#?)Lsfl>eGBLa+4kMJ??^ z_EdROhw=(s_u_K1_he816XhSjR`i#CI?*Hl@h~vwT-Twz8kZZrdw_cv$}fDgH@&Z+ z_;O&*etU=V%6GWO2S0+qj=Z5m`OA%ho>zSE_`9HYHwm0qd=Liac8T+f4}Jm6qFpb2R)M)x;t1`g&({I-DT(vam-{8=m;BpVU%riYo<#ZA-Xr*< zpKjy(OJI_>!Z+Y@8(+%ve+1>PzRjB+&C6SXxmV(-A5Qk*0o?yFFt^|CO^@{XtH7*z zFJc{BZv6coxOb!cHFtQ^qxj%9U{1diIg|Ih#|K{o?zAC3v`N2;E^CYgrKkV)Y9|7((l<)TuZ@HX=;xmBBeH^juzq|Xv zFM*+_QT{0k^zrfXgExMrL-{Z+`p{1&y(d5TO<<0@OW@r6ObUX{0(1M_h{?a`?g!rt z{%-kFhqCOef}WQjd>okPCC-b#qrQgyEnM_*` z^RgR12j;&e&W%5sZ~OcQ;&xp0anl#_gE3(4!FA$&?tZWz{H;Ox?EQ`Ty9=0aNSqgc zzXN8;H@x{HKX{D9tl;17c5MXZhkaAfqn}Q8jqJt>U_OoOAGo~i#sLp>D1XOAA2)jB z2M>J^F(pw{EnHw`ndCK;QD}>!S!}rZgKWofV&grE5B=|SHJJ_ zRw(8eFu(skY{w5VKV9P3Wx(Zsgng2q2zt8TxAmh7?Oy%U4&^Pl=mRl956}!%70rwSLKgZ?P?j5NA8%GJ&E%7{HZa$ zFGD?hQpX1-o^oYMNqkQJSz3H6^MZE@?&p+9r#QuW)Nte9* ziICr~P`=0ic+(?0bOJEv<0{~C)0fWzw*}?Pp7N%*47da^m*ct?mm9tNfx8vu8=v;3 z*9Y8dfw>FU1GwDI6+8{x4^jTmGv4%Q{{8`&?!RHr7MB-)D^dPDF8a_eYvZp6_xF6RLpcK%eRO&@ySoBqAz-%Px*iv4f|K3-AaJ*#{JiG{J<(sp zCCs03?wZy;n}E4O;-sAG&gm2G8enesf%^zB_cp-M^8w!i=4TS8kB5yvivRu&%$_fZ zez@^R_VhqtPLeoXezx(T`1x#Lh9ypK*CyvHfhz#>7_L!R`z0=NJ_QV|L;0&0k)~j8 z1sBgZTR&*s^bKIXBXL&#jPaoU{uY?0B+je9F937kV$rTnkNRQL=aYbmNF1SAUmWCe z2{2nEPM3>=o?Z{k=Oxb4E@*3?0sQA-!gO>h$KWDOb<$Jv=e;QZ0xtT9cI)G3$~XN4 zm_s@ZoD;qG0yhZEk4!ix`}b1do&siew@&5zxR$uY2R{bxrzrpA?xJ0Nd>!QcH((Ch zL*VEq^XDMHbAY*6;@sp%=hAAx+=lBbxZL91>w)_ZlwZ(g$i=C@B)_e|e8z-xlHVP` zeGix|dwSC&|9d?!U&HkSTyFk|&g=ai<+m>Jrgt)MUzV8P@o(pS5;_O^JeBY5O^@v4 zF~HQsJui0Cgp_rUsR^XC+gKYD1Va=>8%2lC_x9rF=K0kcZt^#0oB5!vwsFq3wiZC=v4 zb_STMB+gCFWOqLX%$M!-Z0(ZXe;1hNB~G`KHvd7mqYm#>MsRJwqr-z!5?& zy8W}+XNn_wB?kZHkJCD@2PI+PHb^YV&q+^7?=J`DxFc=t+WJ9xqyR9RaJ>wd+dQW{ z+_fk__9$<9_X2k=FpG}vRLZ#ag5`DMkL2=Ul%Ic$H$C$EWr=wW|8`%eT#fRT$9mKI z2?RC<%(CMb=m$1%p&O1?ZD9S(17&nLTJ^{?nCC-iBmq71HU_Q30F};U?`Mboq(WAI-pR+oZ z`*6|6ZG36n_=vMbVL{I=j-}_1{vDY6B#y?-$-njB z{v*J2MFc(4E2sG7MQHaZU;@!jXD__s4X(!W=r{3S_mdX(pX zy~KQse=l+z-v@#FG|FF@@}@`UkZ%TNT^g|jE@X-v=~15bqbPsx`GTG}M^T?=ApU+J zG5_S>&g1(Ca0g}(N8qB5o4xuB$_~zUDi7f5$#sG|=Y5hQ^koF)|2`(@?S*=}zL@ek zlvh4>9Ci&Ceca~TB+5#_+$V9OzxDg<#NXe5`RD{}%%nSiW$VsV`gD>t>^0=Y9Y z3xW9*uJ7P-qet(-_zlWe78}zW1Lh;R9>C>BkM>>u6Xhpe;!ThCU1Ab5#lM~Ph1UCX zC_ie(n;xwfR!hwJ{M(t{9l%YYe2>lE^k_Uz049j*B3y3$CH`hnerTyNz2(59ag}hn z(fc6iU4imb%HH(O25uObSL1pIF1LN+MHr8Fqx|MsZ+f&I{DQ=Moqs#a@29~10OcRQ z)SDj3?_ppb#kG6Iy}#cC?l6@93KxCc{LyJBdqHAOtrFJR9{dg^VU(X-^QK4kY6zIO z;<_6bap+`Uu7La=LV4mcLC?)zk>9!#nCEe=-a^*Y`8v-~K&Ux)J3UuL5x-nW!PF@K`?d7i|`TMEA) z)An8_!d(m8cO_Q%Bg8K@9NGKd0Wi%~opD$1k2Pq+_v zt+FlT#>zfW0&+6P~}WG{tk6 zejlLh(S7C`n)~B9H4}@ZGEwCad2jI*$`yP!8_SHxqEOyFy060#lSN7-qDG>zNJ2SS z-daqzMzfK0C>seSm?|Opw!Ei7@f0thAq{$nsQ9Z#NQ2pKL=1_Vll+E#d z4ZJ&p*HK#uY_aXpy>E~j%dN|%V;~+Mjpf#*W6D92_8#11dP4B5;qlmnzz@X}F*3h; zZ@MI2a!&G~2Cy$GDx@>1;doRzQr_Q9zaNUM4GkN#-azMZl%cU?L>-T3a$}Ip;iyBm z7m3^Hu}n-WBEF~yuYRT)$y8D+p?**aUIaoV*<2_Wk8r>Lr-xb?4`tMJEE7+nBpHb* zBql0Z#3d4b3~t`MjNoIL#09BjOiiR9KN^aWcrwOgMwJ$GrAP|Im|Lo|NUsx5<}#sV zEXS==5nj$I$>lO**&Nh_x=1B>EukzyrC5e4k;Jx~V&Wka8&;){Wr|d&H%5gcYZIf& zu|zS16uJ_QC!^UMdOED8Q`wvvNu}1tW6DVqu)i5Fln4#0R6)(9)KvJqSR}`ic?otc zmnv#Jo66+S`$=U|*{Ay&+REgQTHHLV21>K#D!yH2eZE?pQmeHJ{AF->4Bxb~DPK`* zm3*;Q4GxR1gR*>m+;C9)X3hS1m}Q#4rurf!yDqCv#FGR4c-C@{Zo0Ra??L*kcGI-g zt0Ys=m>N%xhZ0aPnlN;Gk+>a8#71Mu9G*E4w-<}sp&Y~!9?OXVBs?AqBQm+zq!2jW z>lF7Q(NHd=W+91qDyfi0P~mQ}fn+Y8TL&XB6wAa&jY#dNe0OuX&Q_NsnHpubXp#_k zPjNe%ij47n8gjb7#Cl)l2}%P?g?rfwhccmIu1&i1w?2}=--EkzN@ z&e5_I&jgw(>Rgc!iSBNe;&fbj5ej|{juuHx3gyPK>JXF&Dwm06Q)3wjh6G2T#byv@ zOp*kf9AV6SVlQrvUh|ThbfYS8b;$;81Fc>2I~bCVf#&8J<5VkKnjsi zQny-jJh^Kk1@l<^dpC$Ptaq{<(bfgCO2JMmzn_>pviU7 zSWZsjrLv31nK7YAB$g%@IULLC%^Yt=2$uyT3|p?v-4|H_qv=p22M3pkN5~#WVsQ$; zw7&OP!Q=qd>{vPt^OOaQd?Cs5L?;*`hnOmO)PX0t0y8moni|EEU4f9yXgY@ll4yFF z8Hg#CjUzBfYTnxD(GkF>P9VpZEmSTmR6?_}GsUSqed`~)nJl`YDDml;LUz+!ZMwXr z#1X_RIetoqGTE34{YWL_h-2ax#Mm`b;bKJ;4rSt)cZqd+Ej;M&9fH)D1DbMF zx~qG$Bm`)Idee@8<)iG8)(am*#H2m8sJ(bQ-t zp45f7zr3v*2AWjVWVc2{6QZoB(K|qv#}J+)2q#bcdsFk&uEt1Tr9+ntJy=*MUc@#G1REouhrBoX}Vd^M0 zAr#gg1`6>zoI-+~JQZRMVid~Qj7*WnIMyOYx%lr8JQZdl39J{ZtwjplTV|aan@q=r zyHVlZV{Bxoe6cLgVPMtNkP7>cxxz$QISGS(2&N%Ts0g2E#XyC-%R*Yejl#eQ=BQ+e zEQx0kRyTpDr~82eXjteYg5KgZLf)y`w%I~3Dq`FI@!py8RDPy_ur}1F zj*N$`b^Hd`QCn~=8L$M`QA==55$FCdBJLycv1ev*dh}Hu1hNxiah=oXU2W zHYnpY5w!rfEc`2wG8)4=6@DJBoV)-r1x-Sg*d)w(EHMN#IZSp_Y78kyYAnZ=guqzS z0z8(?hK3Ljr_@jw%Nd^N`>{pM@jQzq$3}Ug)6GSSxG9(UG+*g9*3FC^O-08NFaZgSmwKcqj+=O*51Vc9#XP#-Xf!cMo}YEJ=YDnS(zg;eZiH z8L}S@okxH5^WyOlnEk~{6!wFg!RnU&&*Mr(c>Ru6M5_UkCr?Hy>om&ZqiGCCJQqr* zvG{|bM55ym(w0Pd3(`pOKWaMODq@ za`7-yI+2-twHm5a^4rivS2rb?#u6!v>Vf#{A+VH=jb`A=*CD{wU#IPRw-quF6KmK={I5Lid?Kk|Jr zJVPlsjjnEbjdZ54d1N?|3UiXEtNZKlCu(#8Stm7&yUf*>j=|wdHg@FH;t?^q;=^1x zM(yNMYhy_@or#ZzU{;4Ssj)P)qpLf*9Mr%U&-js82$P9z-M%QxP(_G6mKs8EitZh! zF}yamP7Psk7o)%=o<_)!v#@>&(E9+ba`!Bl%sPl5suBh6CCTl4mJmrNmdULPhlW|2 z?^r2@HkKPniN)O#V27cQafJGZQ$3_U5b&x9pjCZQPv)qr`{So$dp0(jLTAIFY&^n^ zWk%VFtr*0-?CQP}g2cE);%YV|26{BhWZ{98Od3g}SPrWr3_XlwGJ-5bSNDS$k90PL zoK-ZMVFA7$>I;RSL4uluXgQT8qejY!phH0>E+^7YS!AHHn9L9)T(guprf@n%CRK#4 zJm{~-Dm#}N9!|s{r7X{pbC=@OMl>^?Vb1S5S?4?!TT3bm&PhA3hyNmjt|FdRClhEn zN6Wt~&#b>uFnP_wLm#oqr=YK^ z`(ub8NEfmru~;sRH$=WH^xA+7Ev}3XU-_ z$x+A+_Pne6X>gUm*rbves0_wp0?DSX?lG7FgtnBwSvNE)CNgc6q7o0 zm=A)co}7Z2luZjx_{QyUX6f@%>&V`*$k1h|wb@#J>XQ8WnF4F|ItV(E##~Kmxq}JBZJ3!L zFcFI9;8fvwGn8l!BfHCUhb;RHj1*Zx3^g$xVq&j{#-@dIXk=J6Bs?qt$T&tQ?1hqH zEkpqag=DadG<$ynYHEb639SdzP$m;v#}waqB6`b_U`8JfV(*)<+*t7m#gXFyb4*lO zo#CyiTZtH_MQAKCDM~(fb+5zT5=yc%>LC_llR|kyV4uR1QQ(JQZ%NO(nNT`}csv&q z)|7n9-OwpArjt1_Ohae^W6TLIF&8`F2$8}=ViJCsqFqwD&%=Sk$dc?)KlI5olTFD6g*Xq>Sdg8K zQy@&)l8hP}gH@*WAQMl+D67cVf^%ukD1%P9hpz4r)rQ*{j;Z0)7%VlS3`!%D)6K-; zn1mgjz^un~g@jT=L$JJ&1l;9tQpf-U0C0*DZW#X4K=o;u0oG|Oz!GW#QJ;$|qAC6b zSWj+~s;hlG+}HDDPFmyBj&7_Uey#ESVD%q?;VG8838J;BEL82FoXVyxa@QKOGRYf+1$9tuzd zsTJfWAQ8m2NTBHX_^$5dBvZ0=fJc#pVL>masWcj&#MBeYi@XbjlV#}$qU3B348V#} zH)ig45cy?6u@RMq(dzI55aI&)T4KL${$xmQnnPw9M$PT7X;1*0N zCmL;@O=qAk6ND4bjpTA^u0#>jQj}zd!*IB1_)iKspMWJ2TAd^Pg%e3&9TnqFRM9u< zs7@d&2jdN2YWA}<>(nqp$ZQs2uaFHzTz^MoWSP?lbI4rWy9)KOdW1@xPBBtqKLOOFG4fve9UmrzydH4S_kV#VY*l#R4^K=Vy@fw$NVl-*KONNjQN{)h6vahrfISn1gaL zrpgqYm`uwJ)IH4V_$U&Q$Zc^<#shE)55S06)G>!AGlx7WkXPs5mU%&OXcg%Qgl#PeWU0ajCxAA&aG7?JjiP;dgP8HMwSD3-!mga$}2 zBGSc*mF+Ltn9pG%>wzSXZ68aq1Wq}Cq#m$i2_c=JQk+d0Cq$@fST2%iF8&5SEs>7k z006mM;*h=JbF?56b46d5vy%|2OoP)!_98n<(I06e5Ac7%aMIvt(w3G7Yn+o&<37}2 zy@A1{4U+S5u0q6dV{m*pH-V)oC9Ar+UqliRDG(?m!YW#`(sXzdB%s`?T+GpmtA>~e zD~L=)RhfrZBBUZKz#%s6m~#wA98!P31l>g;nS8p2k=P<>{uV@t3E@wL+oGvi3E|jL zak_|u1e@2-ZPwBU5kHNH;U})2hhpUmlbNW>FPcTq(*37^x%(QQc&p>CL%G4cmo+Rkc+YyY#C@pm9AS*9SzM9F@fM)EO(HJVxGw+{tR{v!At~MkYO4nJx9dx^5d(8 z=0QU;*%2J;kx2-e9nlQ7o@1h!lQXJj6?}di*A_n2o_W2EztWYz5!OP^8Lqx zfQ!`1_;NWHY2JPi!hpt6)XR>KWkAN_QH+}@O6L62*P*-YfjErHj`2YsVc6POS(HZ3t}&4V%mMO;gQ&I_F-+@zN&;}2I+vx?Oa|F?BLgNq4BJ=|?`54k%h8J&u5q!>h*u#o;x06O!1;v`mow6XQOG(MYBv6OeaKdUJ9^x59Xi#7A-L zQDw^vDp=0R-D>l6qfj>hy9N{QoEXMYGn$eY!1Z84b95pdHjTo+VT#c*T12WM#tAH? zg=v&_(>dA2ihM7Wg687bq}-4op(jC9Mnm#0N#{R#Wb2(a8J021AChGu;qi`HY%;`x znnT!%&;i>>l)YI(<0A6aveW0Mvg-JNI>BCfPZTF)_E2Q9IWUGUknna#=?E5r7!@88 zY{sEcSfT_ELiGfQD>WpgO}jN$Vh~_4bN%dD@Sp`eBw{mS_}j;DzoCM}Elob!%qEG( z&=qt(I~-0;vXKz!>fM+%Ldn&vTE4a!#&r7vT2;oMR~bR-7(Gr4H~ zBZ7700n%fXSHg-K{u*HjLIMJiKYKFDj8ZyL_>@kx9iPCV#L>B#T5%S+O@h4zK?<#H zct?o1xF1@WOvlE-A=t-14h&|Ya@d=rgdqF|j}5m(QuqY%&5^$d8PH#3=V{9Rja;a) zaYMfRkF+@F+?Ys3f|{7)*rT8s@_N{j^dw1vhq@c=L9@t+#d72E*aW3AppqC&YJld` z2v(LNyU7OX#qjp1fsh#)i>n!a7AyBPB2t7z2(euf=*sbP`hn3nH+R;8op4~8=$fhBaO9!IZ zyqyi@#HKIpf|;67*)FoAE`Y~Xd7xo*Ow;}qlpV^g!!C;0=p!}RM5_?y29hV+@C0HB zW6BG2d@zPPfdum?GRnx)Q_wgFCP+0>lwyCF~h!i^RG^LYDX`+*Qk^!q#F< zt??q|Z7>2t50SaSCJ~ex&W(0wSyd@2aLTW;YW+!!4YXD_?!+J|szpm_@Yj%eG}3hg z6Rb}k0F>4OSn2W>1#cQqmZ$_PfFs(&WRA7P6V}06G9Wt=PxDY$5&uvwAUQ_ME>Z_! z{Qk;Xm7)Xv)Ov^vFvU)CXIZ%R1Hpf_jQx=5=?ag@wHOoO0YizL$rzBH{)H&YP+aDG zRAd9`6c4rV1auB@Kc&No3#6uL(z63YPDG`{30>Wk$-#^_GC4HZ2Vv-NQ&>%N?tyAt zN-G3oOG{*#UVv9(-GfIFiXnD~$TDKzCn-!Lt%5H?zuBXUn1m8T7+YBRY`-w5)W!?c zYaE=R;0_r9k-3KHOUTMknvmOW3PX}J(cmZu9W z&4)>1VxG!V?l}2_$0j(40+BTA8>I_Fd}kY?XNZCF3%L}}#0W%+hLB(g<8b{5tLsBN z3JC3Bi*aCE%L{2?IK>4|(u|ftpvcXU0%7lTRGb^4>9Ue0SX>pMKW%NShaw8YrtSFS z*aI!eY1>&udK3rKc4(r0Ka~9c;S?68hch?~3Ovrf#BtsW3lCZX+=%AHB*VglHW{#x zCZ(b9&5|Q!0sjcwOQ!f@f`#d_Q^dyi0TN0G=U$U=q&P8S--)J4d?v&zItb>3W6I(z zG4ioo8HXoF!?0v*xW#S*R#_(V%1&!D0Z$Fw-!~ zVy9VjPed8-fPt{2kwswmFvoDhDe{~XJI~-(38#=d4T+Qn&0iczieO6{2?CCHIT9m5 zILm>2)@9H@3?Mf8NPs+i3Cv^Ms>>qMcJ0d%f{_2FWIObR4#tofF=ZCu%Bhntz=m=* zgjdPZNs`aH9u#Qbf-MjBzUbaB&?0YU@XZ0%!%N|ppeRuti%^WP_d&jKc>hQl3H7Zt zo{xE~!BnLB4Lk8D_AhyOc{(D(CgbsIIV!ZyOX)YE)=6zqGgPURDx8UKl4du$_ zJRC1_Ulg$4!J{U&{)vk(AwoyyD1`;Mp7Irrih4DI9W;Jygl5`>h-CD9HswbQt|(T+ zp6dvXRqNaxU+73M{AT*8gS5Ge`4Ghy`KiG|j(Z%A&9MIDA zxeb`4b||8s=iAMQQh4_8ULdWcgx?EsEOr(VWjBY_l}PM~168C;w3%kvNn@7>!)rMd zLe}`TP-QqDVi%pHlVBvf>tU3{%(Vq$AvWQkAt7bS-y~z$!cPpd!TPi=I^ou}{d-}s zXs{n3wd7qaJY9!WU7CN>8l;-#3~hsjiP*VfX-&fXS`5M zk1lm}XE6fic%+{vI;DOIqUC;RNFF&3%7qc;fx8GM28trKskMC{iexBJyJ1?bV%w3( zzZ)tY9Z8RcNj0!|8sJ0-C8tIFBy$JO*=bU)-=S48WSntKFu7@p9%+h*vn6Vu*w%Y9S{jZbQWp=w(aifCxYtYz zjqwGT01iv20oYxFzvUQ62s#13&Tj2ytgN%Sv9R0@r$PH91}%~5SC|XWK(0vO+ zO6$~KC1&9rluppIHKyzu&FP!rFkwfrm&d1jD3*GdmxH6oxR|yR#hP^=Oiyco%kJwH zJ>s@;$WI){cq14U^Is3!MaV{SOJgF4c}63~*#NSjU%{A0$3yhUtQgd%=%5&{4zXV< zcDO!B$<<+Oa!~$=j+t>DkQ3jxV!Y|}n^?G#jxil=fA#EP$E$D!_ z>#`|DJ3KcNX+bwc4`9I`q45~@D_})%oCp>Q+XLjb_k+WL-6fT$v%(66N*mE#d3+}X zVUHRHf-D2ceJ-T!XX7Or zkzQc>nL~6AgeLPe<+Ref4EiaoKx7V-vL`oEiM9`{hv3*VjjUy&40?aiJ~#r_4}B0jZ{wb%aQZhnF5L(jh^Il6d@LeBJ~emz9gtYm^HX;e;gW*b4bi zHCHJV)KYo+9Qo(w{H%O}_#FL>6~bsz-f1R|Ow`h;a;aKddg|#qAW{bRh3Ryy;#z6- z>hb){T;cS&Qnk3TRG3~`EY;SW&W+9#s#Vu|T4NGx^o^^|=8Nu4YE{MW*127}X6c&K zd+`H1ZnTJAdg>Z>KR-Ae<58O1OhZWp~CS+oIlG|2}_LVG%-Owgtt5;XC8(7(fuRK5!v~5JyEK^m{)q-*&H1HBl zD$uZoquu&o{p+a~#`Sy*!N-n}NVX}3wTNR>JfWLc6>=LxnvqfYr92~r{A`wA z8h{sjV6CDJjGD8tQEKN%bNKYm_3>g*6Rpm1Le^RTa3yCd5C108@Z&veDQ?M?&0BLP!m>@CV zsApEW>RocYjlR&z^T&r#U*rhkfoF7JME1_fpqUNl8f6Obac9PhrP;ZfC&M%4lD!i! z#x`ETB`piy2-^hH1d@C>FK2I4v-Q^6Ym}9!`wFWukow5OP;aDosG!0DRD3~GVPWTd zRn*N;3SyWLBQ5 z*@uQ@JSt>N=AV>2t>KN?mdkHMI{#c)!BM@C9PfhD#hb$PxWX|+(4DRlgZLINh|g}H zeTok;OQtZreg^N+>graZv1}z}2x9RuG(p_wH~EuaXyI(JbXk6;IIZHiGoLL|hEaOF zR;mgoqXJ`#VFY=@&fBaH%t#r8Zq=*+448_U=SZY2UJ?z`Qiav;$ ztS-Ww_@~ZfNDKVAP%|zI0e&7UFWVZ%+t$bce~q#VlHdJEsRS}=_vOxb>*nv;$Y`NS zowp@dzJ`~L%dmPY6}G6G5Vz1<4?`H)XSDial}7W3XRVrBSfx=s*B!BG^*ey+L9sY%r9M3xM2NJ@c!K7D*us^jYBIQ|G}a$5WLqpz*eLG4 zT??+U6v$V$sT<}{3$J3ayF_?I9;t2)}MfOpi`9&$xyi>uE=6jx}1ibgrN}_~gL-~+ec2U0Zh0Z4X3aR#sS-M}fX0WHRxDR0Cp2t_`Vc2j6#tI63Z zyp5%+`~BK@s5ay4sG(~(G5`PBd+#vIuIf&^$-xFBFv*|@*kF>>$^yw$>?*nvb*nmv zP%64hQlnOP(?L?h0EWRNgUK0$g-0+Z2ZJ#tm?0ZXGA5b9V4^Vwn;ZwV3Ip^NG zEwG1~Z=Ub*A2#Y+_nx!&+AI84*lS(IZ?v$j52h=6X7%KXl1ZTS3lxp6=+F9n*cx)X zT8!K0ihk=q^ngBBR4r-G*yP1t>@7fXyNZ^_~d?fnClm4&AK50b>F0E_o z*Ns;bZi!tQWbr?$8tDFmP=z+(HB}|AEbrMxAZiz`#Y5J1Mv=f3gKw=!DndBtM)v8$ zHD10lz4yQa?`eEFGA@6${&P%NZ*A@3oxAo&(b9W|eq(;$+MY|Sl`?JfuAyJyMF&?8 zuEj&%G4vagmmIuc_v(cQBE9tXpj_i|sb6Yb z#g!G9^Yl~CjXP9NKGN4qo+KWc*suQ=)jdK*HPfEE|l zy!fg7VQXE?FNG@gd(3P;?cd`+u1j!tyvX{u^d+rFIN0P74%oxQa^(kiWRfu$X55-n zO69vjRJh!1rAf>Ue64Zn@}Oq;(T(b}Q{j;Z`;VrPpUBfD>k?LL@G$Yh|9y1%JXS+< zxP;07U$16>?r&sm_xXQrZ37B?h_C%=bS?eV{vV@h0i^%wl>bMaa+TUAIoi$td9?q3 zD=Ip7!>@6$Q~z%s?EihEU`**7rot@u5KsJerOY4{NdsvG%~z}cR&YpPcC$e&zjU#c zG3kd_FtUP@-DUToKjYIw6;lLVLaXf*g8%Qq@3YUYTT8(HD}Cg-(c|e3m54_U+eAY2 zc6@Jd#rN~tEc;5$h5ia2*b**0&yV~{A3fj_>LTgv#GyAyjDF@iH=LmF zS0{+{!OGqXRszmOQ0o=dpRbV~SvUe?W|q&5O#O-Vq<#U|9b)?}c0I2Ce9zv4^w_(M zDijgxw|KKD7Rt+*Bojr97W)(=8ApE#|BfP4%S&&ZJ4VDxET}$Q0|M*oy&`vf>q@q&466U#5GfVj zUY=zEYO_4bkOsW0R3pC8sgs0TL4)S>UJ{QLQ6d1?JddZX)wB=uyJLi!F0Ame|?C0K(bWauy& z!aP(ax-0ExL05be9`sYzb6L%N`N6;WK~;kSlAjE&xNbcI1ja-z6~LfQ2ylc+_*s?x zS|NovtcB|No=?2bH}45E6ie{2Z?BB7I|e93 z%KCZzpTQ5SJ4#LC=LY{2IOvjnk$7=XLl8Tkg&E$-uod#$^!

Tg^Y#$EA-M^QE2E(oE8EhY~x_N~MjY@<|e&w&K5%~kW@oSZ;|A*gL4{gI? zUV1_${r};Y4!|^T{ob}pP~4-*x;f4K-v%9&2o1kbgP(F1la#PHli@i2{>CAHpWb^QzhGeYgk$?GD_Rzli2QkK5ILj!lg~tl8wvEgq8bwY2$^A4pqDE?UcfUf`)p}(8 z-b(KXYTFwXf6*|^)z^rvGm(RLSJr$?L4?esUHVK!9o5Px6 zxVpcBbF`4Ze>;+fr8#B2abDVGd!1BE{|&x^9$Vq5(K|veJ!gbF&(RAkJKJ-Eb(!`F z9@N=3N$hJu5l?Y^4R>d}i5XW}g*8t(IXXBRWiI)t<_=`~KFrjwibQ(a(Vt(Hhr&OWvWUn-DFK zeA#!;<}q;<+9f!;#)c_0Fo4STG0r|ecG=D*+qE~!`P?g>rne{~?k4x{ALTy~;^pZe z&df$G6Ayh_RJ`1s18%OIGmU^QZjM#7SxeqJmXDqtOO}ggqPXl?{5zUimgU8TUcY#V zL|csGDZNd;c1OEJ&?$qy`!sXRPDi)9N34i;CbT}FDX*u#`?Q7+2O3o5o%v__M!Icu zh@4%PY(PA4NuRC-(*IH1?Y56ow^fTK_sLwOZ`wbfM=P(=^E`I;jM!=3r}rdj?wRdw zp3hFaq|IDLMA7!=ahOk!?`O}pwxM7!D*NIWwga;5S=^|0Buxw%TQ`$Nwmb`JJ3~<0)Q?Z~j}m%{L`zXBjpnS>TjkqB2CXn2DjOIL z?Omkg^|${E8q>3)^vSeaLADH$$87@^N}_2e5G*2^8bMg24=qQtZkUN=xX~H53(Y3A zqYQw^r;4*~iaHxIl_jXXkJdWlwlB)QBPz;2;mFX4UL#k`Y$2eIda_ip<4p8U%GU0o zjvjj|e`vWSdtbbdLkWElGh9M_Y>Xx%%i}1VXpxugMQpHh{Bi6p`*p=ssa{ND;!L-| z1y1zz{U3(@>v}dQ{l9Q#MexGwAo-9^8yo3xsUW?N#t-PZ=zgFOdkQ%`&bh;kTjFGD z4>o#-(mP^_cKg#aHY0F#(-Ylmr7J^V20L4J z+ghr^vysX2Rs<=i|0K^Q+IDF9qQ3$|=SCtvZrhb&ng%+iB_vQ49JrUSjoIbde9RM0 zUVSnaGI)h!TADcTJPzK|cf(PqcP-6f+q|5qo-3tq*YcdbccX`O_PLRDZ;cfk=&O>= z&m2D0{2`lC#QNfO!Q40DTw!iCes;98@6{9Cc}nw0NPB6?Q|DT#dY3>{w8*eOn+gUl z&E8?RL(73uN?Xh{NbiD=>EJRpE7B^QDO1hxp5%gPh1vFIO4IjjwBFFR9Txyi`evV; z90zuP^h;|It0Bq$hL7h}?2{hNw3-UN=_q+Vq2WoOMpeWgxbGt%F#rB6@Dz49C$S84 z8j)$A6Ci5f#6!7U1;1poYRy4uULs09%C>6Fur|g~0_|u9QzcpQ{av;-!vay4g2e+LFN}6L9QSA^D*x=8OV4(lCg|gijJ*;I8DR80s&Z99+?bUUmLlbUSQPC+Wv!wd-NJ%u1l!Bck4em zmjDctqdcN!XRwUX zgCmDGvJRnm0WfjB4awepx58xAF^1@cAi~Qfg58NUWgSmvD`UQB2hOL#E{}9g@tw|y zF*Fixfe7SAyj5{yz(?%_CPVxsFT_a5RjHc44G7OhJE*>m@#J?y%4&o06X3NzU7EKQe-9ojEYRdqAh+HLc5dTPfXi3qYWPpY}vzdOjQnc9s|6pk3^ z%v@mpjj?cJ(-YgapU3GtE5JL*{~dJ~PQto@11gb?FhXY)Nmu0Ya#$^$3^>Lk?4 zsbThh2w9*g0}~wYoXG2DeEqMWbgJs!{PH4>wTj5z_(Dtep>HS_Dd}*Z^PG`|o)x2v;AHkQVm-p|URt{%eKjU&VSS%58R^UunfVYs-D`KZ*tJGC`XR2f zxhj-TArm1@Vs|7j{3=i$TArquGQdlr3*60sF#GrA{MSC3OM%VOYH{C=F>1#5tnDsD z*8m+4(K**nqe>dJ2H&&XnFU0#ojH(y2prJ?WfRQ9e)yk zvy_-S6qMoE4d%|U2l_1nVn?H^`R{bGvAm@-XmmtfSPIkf4t$UX)B~bj$8Yga2ZnV< z^$8q4sT|Z^#r-0Pa~V?iKIABsaBpdon4N((O5ORlkkW!pc#T%W`R-LXsYfT-7M74p5F;7brcL&zb+X%1FVc2%Mn~C`tV7)zm zxc!QuvGKJ7JNEC|hj`we`=|%^uZ|u*xOQOWl+y#KWgk^eAzL|1=;yPp+0BH(#+T7} zYMd>wNpCXMq8jH|U0QZnS>K@vmWv-RHHVnDNyivRi{LPE%A+mH)9JHwT`c9JC>tmm zd!Ed8rB`5n1b(g+_9X-BQ8xP^_E z=XbA7?^)PQzH@{a^rfZKe(>98S&ohUoX5Bj%<>2o?I!%!hzACGvoGK=-Cf&#IiPmO zx~qTVkxvTVU`7%+XeKE3oBp;kn!RxeU)h$tpXWlg+)ux<+OCM^#iS%6U8?ohhv^yO z&dNN02ndw2(O|rdWb8pF!uw+&wv2D&)X7`3rkNbgOWVlqtm|x||6hqfHNZnToELbE zjfNiocKY+W#I$f^(vci>^tD+!<9{Y&+>l!2DZJV#^GqXXL$!gi-va8cxFPx^cEZ{M zyH_LV_3z<6HMpYlMGepnOg)=MDKJ2JW*MqG?$oZ5TK2DlEjpGZrRkF}4K7m-EcJY4 zYzg=sA#i{DYu9qO6Vc}}&*f?wLaI%jyT)3;0SNGDw&090BjYf*w3>{)-z<$(Vzzy;2IZoX$Y}Jvx%g4|f9#^6c8z zUnTxT=(y5-8zZ&UBsXOl%u8@!y764+uf;^W5Su5UW@?}PI8mQ;6y%8TN;6J8*KJ4I zs<8a>%9%leGhvB-$2QyzsdFrU3gfvR!F)`CRWjPqQl8H|zvv2P6rj9IaZR8#IE>FY z4G9ne0TYfRPoHAsL^crLCkDsx-Q2Z}j+KnB7O%J&V%D2Juam9`F8dZo6phh)#FEh8 zI3BvIHKmi&;UA30j>8Ms=*&L37~;hQj1s!>z?bz>ay|6TR$YVyuVIF}ajR548oscf zFD48ER|-eww@d_!fOs}6H=}iBksiZv!cj{;mcu7EQ;G4*pH z06C!}d$?YY!zcm}`MqLkOY7qi)Wj5cgc&c)Hyd3Z+e|-mS?fyZT${z}-87S`T-o;H z*>q)>8ea;i^$lc3WrnFDMiaBc!y?`Tz@B@_c?Zp4h*lJ!%Q#4{E9)Hd?Up*xq@6xcL2ei zdE2l1*CB|^oR_hMKyiyWAHuw+qXhx2(TdsQx&c2clt5AXB3c zKFWuZ9JWDteCeIMIWm%M8tM8CwHh@z!o2uUdDn}-O>bQs0jrO*su-#hXa8d4pNVTY z2Ggj)2;hdM{W5$qw;(%YVj?*HFCaRkQw=&>cq}>Iw$tjutM0{5S{E<*?Ln}!F5X2u zbGWB=d>c5UP+K35^=wJ}9Qy9M@=VHAJ4~vuEOHqe($YYYK~v+y--ATiNqJ(C|Ie(; zb_TtF{Tcd4yBTVO&^w6TSED(+Mr@W~!H`J&YajnYT@*y{`V)!8FzpQ10@ly>V#rJ^ z=3_DsG=UEV&ow3{Nv;!w&+!(_S5Nc&QW#JTZO*fUeN}>vJnzo!+Zd<45x$OLj@fft zNBs-v;zGg&eBKD-;C$ARqdD)-tXQKb2Ge5dyg3eMnxXCo*2Z@o*tdK2@Z9PpYq6(m zvG7{p!9%A(V-|L}r<(>@CbumtZ5*FpI_0Fm2%j@}(H%LO6N&s7L~EybV_}Q)GdVi> zoj4Q4;KfXh4Cv^BJO4OsA!5huA%6xFh5@>^oDnLz$TR5~2X8S{N!9iWAY?me>68Fw z?qhv)Rgu30UQRAE1D8h>iu<(y6OBu4Z=WW|aSst$89-bk8@!X?SgKzzl}hgW8V|vR z1dfJ@?~KWD>&Ih2bL)Y47|NJr5$a!;MYXm!A|nojp>KW13JZoV!}#^hwV`f6)_%op zHf-2UEzYHZ^?sjkF|WB5Z#@mE@|&<4K&@|tdDO7(=3F!w4GJj}7a(3!IT8xxI~tQ} zN5k@*9?EY&Po7@hbMc4jZ{3HBahK6iZcrW@D-S$i^z<8iQG zfs1N}Z(`fl!0UdAYb_UWvqVn*w(`(5#RGH#*+ zS7rV?@?DnSH>X^bWn6jl#7K!O8!8$FAC>$}`JY_}FIc(E0N(+VGpA&RW|pu13k3ef zU!{OF$F>~#ai;}8p4xKN&>4Y`L(->-t?#eU*jNkZ-%IN#R5_B_=ipWDtP1r$AiHmvaN({jY!_t8cPuL=85K8Wt3Unufk9`f|-Jj+81d$>kDKuhjX&1=12g9_SAbtt}^jFPI1p?PQpMg%T;A%BiYUy{ZHelyw<4FG@C^kR5^f6q4w>{I(X zPJ6Gt7xvcnU%HDZfBaFa+)}e+lyv|;9JDrwN4Ba?_A>0FZho>Ftxf=v&^H8L2Ck`Z zhb$TJyByQfopl@b=9SQJib2a+0{fd$;((>7b5L{0=o!33%dvSoiZwm??*M-ZE6+?+ zSJ`(zxF$s?6bx>8lQcTul0Z2=yI!1&0&N| zI5jNyRanU8?Wd$u{|182oHOT`(*dsolT#y!#coI9xX(s5D<8##IREl%n4?lGga4X9 zBLSK7z}DGJZJh_y7eC{K{QPYxt(~JgB~I=WI{qy@F5kX=T1;~J8ULXeGbHcid%2(( zh1U4e?2nR(V0_-aVdVnb&R|r0>${6*2#y8^yY-A*zfVR3os4L@BO4rF|0z!H>^ykV z5jh2#D87FySnIkABcbr#>r+yJDgS1IgHa`&1<3=P4Eg1h|65NxLfb*LB$5gs-zS*MBxsC^GBWi^=)tMLj2=iP-6n`U|?`lc`S zH;BA=OHzb%OUv7(4g&1dhA0h}Lw^~!^@f)u-6vMh|G)5G03Z`=^!Lf_s;u62Y|fIdo;z9|roD(>K@Ixkk+{5xvw1fEM%%X6Eft_~|J72g4QM@Fgd(-95j zvV+5c9^J|HGPDDRDIw@i7XTV`uEf~!aQv&W zIy-D~Ys&&^z>C3}ZwuB$I^&i>kD{ZA1X@;`w#BBh<W?nZQQgL>*T zb@$ljUhMo%Y!P0;H!QX9Sr_<0lzItCmx~3x4L9I1KSDooaYG6}h}UeHpIHXXM_3vi zifCsj<}Iu?sw09&%^-Huhn~T^_;tk=>Ak#}-}F^dPtOw}+8!C(Kaam1;XZ|nIYI_A z1IN66MS}E3CMUq1B+?lfjV)Chyoo0>OM9MQq*bI_peN?839Tph*8sGRcq+5&~a8cOl(_iNUSVtB)v|JSC<@qc}Q$J35qA{7g z74n!gFD|K_VV0A)!|%=s@*if(UXX zini_%4)l+y6iVr%zj`f;&UGQGF{*uhdP~@#kF!T?8~n`Kl|z%y->l!!#Uca>q{(Y| zQd4?3%B)sT>%>r=V-$sJ4nh&WSTd!wZrL_opDet6F04Bw~fQ zjK-`CEN*I}egBt$FU8OiHDv25!+V~fP`0_u4EAig1;K~eB^cE2SY_kE1OX_zn~&{Z z;W9()np{bU+Luve(-X87>E*?7pCHhNz#XiuoxDErw)H{S!sEt3p6@Hlk@b&{_r(7k zz0tMAvjnGMwG#C5B%a6bEi?+xtCSgercd(o9+4wji|he|OvK$%_3C}VQR_&r9=?wO zx`kPMEJ{?i8z2aJJAOF?2AmMMGh)FR@w=_2s5h0|uAY}w!Yy|7k8*Fi#gVe!7Qkwj z8wXKO5CnF>WSQjJOqi4l-j6b=H5e9xJi;dhAu{4wfJwM$E`8ku`DDk3^Rt85!BQ8SRCiW_!<>#%Da0A-4hVJIMVQ9DjI#d|BAlq9tmIziHfp~1YDlV zVeCL(gb^s|zP!SQ{~JT?rO;K-uV&DxvuK=*tWOt1yolA#&U&#Ar^81-G+h3!?41>& z_bEiRbB84p#p9k``EIDQtVc;m-YG^6-Sv-RLI;LSg_O_ZoDX&}YhE=f$*}Q&(|eKY62uy)HI1C#X?iBbz|T)k5+9o#ou`z# zQ%io>4dhoyyi8HAJLag(`W40P^5BSqc-zY;%e{y@nZ511c2IY`m;;Lk9n{3om*q2S z=~x_ejn=^$@$V_r7Bv>|2pitLfHRZ(Bgk!3l zoq0mFB7W>h-T3O$*^MR3)z$W;2XVE-M9c2u0D|D&N3fJWkBmr36%5>k$Sa974tWxp zf-QMwL}F|v%TN%anT2I7gjCzlS5@7Rde%E#1cKu8qXTX7t%*gpH4)S>M!T2qmz$~+ z%=J8YcyWz_*tI=7)`Hm9zV!R)abQ<~bUR^(yq$MXj1>nKW`4|Dsbh>6CSL|n6@7gb zmYqsmOQ71d9?OwoBsvfvS;!zj9-=I-RXct$rkLNs4Z$CEMDY6_ z@M#H`bsb+|3$8iwSOSKG8@Gpm@8Imq!k1KZ-OP|+^pEegVZ;8lOZFaIBcnTF_+x=< zasgSa+l@4AJ7FHBF6elnO167FRB{@bTo;&B>{eL<5wD?lmSqvoVelA45--Q36aWWB zxJ@^)RfC!c&mYdCJy0>=o*G!o<$WZPU%mXD{>-bOBcFJrpdFUIKR4+m&xvu2DVo%g|-wh4o z-kNxgCfP!*TBntyLqDg=9iQf|X8{YQB)^KZ^`|7WUc8U-Oy`W?|1;@)CejHHfFxI6 z7<^WERYvM{o%-ZC-Mq)4P$ERIb(ZPv#9G2{$tvb)46RB?hocMWGB$P|FSk0QD~xJn z)1mxoT}D*i8ASx=D2wy9E#a@iRT}!^TkYU?LqeuXhbz=69VDalaviY?--p zPcW?8_Mk{_d2w-mlQ9T+=5Ek8kwzQ$2o$q`CI+K#o0v%^>%?x9e((^A9+t8NK$X+N za?0AV0%`+6wdzpGz5~8(*(rBO5{k-*{|rhV#q5O>Yyx{LPoD}$N%noTh%iF+&5&(h z@pJS<0TcS5Sy22jg9ma%2_D+g96^<0`BrT@yO30yv0fw6GL2VUC~9xkc#Dg1K}HRX>}N zmy%p2c1~8}A+)nTj*PP*hwvScN7*-URdf#d%Ue1>ZODKg%F!? zwS&wC;LuCy*96QeNxx>&eC+-rXuq;!pZ6fvz?|;>;p`-r-1zLV;-bWY)lB}iAbw+D zhLe00yNN(^BIB@Szk{KWX*+%}%@$x#cHoh%za%;m6<`m*r_6PXj*yl&`B)v8jjads zWuyzi?dAdFsisv}OkZY2_3%4bPPO=;?{E@-d#MH_)F8&at&x*@)XWsf+Eg)nfZ-=a z6fMiG}3WT@&Knx5M_D14h1d0NxBjPD{ zV;iBF{yst(F8LPP2Ly?==uzZ|d!;DeJb<1~Txh7n{1}%8MUAC z!VgZUXJj!7(c7r}eoLbVOBAO~FRiQmzAH}|XFnaxZu5{M^#XAFe+mPJ%y;U+>DfG4dv1oVHZ?$O>BL3X!MfW0J+}K4=MNK|;g{98|I&%u< zjySZo7;jMVTZ3+m&Fz#_s8*(6xy~)wTDPoZj__{(G^~w^WDgzC=fC*CpYuSoCKgkn z@#=jzfx-{;@H(OUk?mo_j>6+WU59!kK;nvT&PSc>fx*t8tAzI|_SN3R{%;6NlTT_w zUA++JbET)a2z{I$YdlwRehtE@<|x^>ZIN8nDXl(f=(j~cJSL{a0h))`q9oLLgaoE1 z5zU@A>;n?InR9sO%8*uD)#m_)c&i$axIz+J$$2KMTkjs_AAnEV_Op3Z+v;L{B+tO% zbC2_NhC;PQQHs_ds!=6w#W**u4hG?J=&En~m~}lEvcAie-v&j|MKg)&ry!!N)+)XX zGQ1065NyOR;_n~toJC*9t(H!`~$pw2UIZid7?qeaY3 zW>-#sRg}MCo@ytFq)yyQj(xU87t-=O!i$y*Fza%G$yIi3&^}Ws))KnFM~13wtz6j2 z7x0YnUN7tFZI9A^3pCX> z_1vQyOyRmj*ioWAR1{F3UyD!=BW;(h zUb@yT&A*0RF=%4q?9|Q&^x(G9@~mDgqI?42uxxV#gIc$X?bQA-!L3(utSftVA7HrC z0f0bUo|X-ELzXBsZm)kvS=qm_wbUd{Hl<&a_~XZ;ZP|aH9WW@_cg?J+;h%~ce*eA+ zw;}-Q*j{=F>+YP$iWkc94Cxc0p!^eDF-N)GQWGdq!R`g$5y~O+SK4Kj*q%pzf)AaX z^OLzT<7|oQv-*DmRY6*bFww-ei7{^XNZs^aj?LdC{WB}ePq!dOHY@?k26uc@il*iY zKCSvPbidYcD-54;i3(I#=9W$kJ}CL2Q8I>HMPHf<*kh-V1AF1*ojd7CyeF7Bw1(h0 zuY1nSkA^L{3L_ERvCh3p#VN1ZTVWw_dQ>;WJJ|FFaOWboNvPf(56Rdf2|K2FrQTTg zh^JE_c1n3OVE1PnJ)H!WEe|Kfne{>MCnnY)ZOC5J-kPr~v}^QNVJ{t$W{rV9LRlljep z8Wo%riVJ2%)ysPS#SmNH)g1NF7g2@%S4xY#w^v>K@j@Wpd|DW+Q1BCwL(%DELbFoq z927i%prg;~{=?h}Vf=zyk`Y?Np&9=-8F;8e!HtEG`Hw<0N?gf+wN>vLm+b%mp%%y);cFrd70X#0 z2zu>>=>MkDmIk@4&#*2rA1Pm)0sZ^q1ocMtt@$zT1eLo5{%4KNm+!?71`FF13a?pa z9Z*8O0D9fRn~;dD5W4}*T{xr0IbZ8E1U75qK7cl@LE(|Owq7#}wJOE%v9{$whL0me zk7_Ahhem5pCfVj%kXo=>19*ud*5}VN&w4&5SBh}r=>L{QqTSRQC7+*YYcEQn;`$aI zr_%87{wKfddfZ$+7Bt-oGIz@xj90tvk+>%yS44v+H+CL)E>E*BKbnWBR=yd}q7|sP zx8#jVY*KY|BmTHB$^DJ|LR7U&jrOwB$)|JMsU$7G8pqt*G&;XctvgE-1i$QM?Yyjt zKWGt5Q2e88E!0nflp3T+tght$1&&8k6Aunk>~82{Z9lSW&!M%T?9X{;N$t%s9e9RW z2oX^KEe|y745A$upyc4817jtm;WdWS11#Mbc#u*XwpPEUr)u|XOL%c=GOTjVOUg+9!h*T?OJx%g-A(dJX!sjI z;{}Se(j}@WNLB20uV(3~3jc-pVAOU5Y_@wy(Bk|P+;T*UO^JDJvs~icz`|zs?zzzU z0O2m&46&d%J{$K!YIa}T?69uavGirsE3gyz)s$x>G`N%SWNeje?e5vNgBR`HImRg- zh|}MO&abtC)xA|ISc9`Lq{K|^bxZsoD@4ZWQzVyW31wuYSuhGBn(C;X?hdY_q+?=H z)GrD(mhf?vpJDN$C`em{WrRZ`jL9=*#^Mpu-J6T4;0o_=3<3UUjw1>kb)B$+5oR)F z9TfeBe;u?Ga@RlchZSdBhg$qN%2SVo%CG)1A|?02b1Pp58VXL<*xZ9XO_w@<3WzS< zwUa2NLC42%j1)g+&)ywOW#6=r)(&BW1Wm=uq_89LG+a|?{hhv!&A5&l*-%Jh8{x>zrrDB=(agy#o zjinLuo#(KU_zL@347`0mHiA0k<~H~8=r<5S&AVvG33QSuiZ5+Jw!0Vqf@H4`5T8-w z@FoS$vFHQn+P*u&35=h03u#;+GzqJC^sPBE-XG#0cgN(kH|oV{Nr{Yf`*COc(l2sW zD+j3Sr?dP4hHmZMzjDE$J<%aQIMI$5Jkm0cD(M+v{k*u46v<}qytr6N*@K%pv8Ii2 zVsAm7!^r5LXpI65eG3gz5~az)8#!@0$RA<|@1BDRLu`c8XJN@;Xg{9AYhbWW712Nu zmiqAX$%RCULXSZd4YxkRH;$L*=XCl`GA!m*02QaP0=a4`(Or#JzQJjbJ+RROFo4GgI z?(cJN(JWHb&3%Gxp=dtGA9U{a*#a*f?;WMwXN7nkSdj7W__Fw1yJwVFW-e`(v#wF$ z{49<_o5wpP&h9h(u(`~tS~?rX>+iCYO!5?hS4LP2Yc=)Fwy2(IADP#D-VVv+vq*Q} zXF7!9Q@p0r)Nj|`{ggNbOMTFlQ++shZ}35s;wq3{mE{@O4lrQ|&o?m4eA4#xOXPMg zUsQ*hxt6AxyuW~TwdG9V$NnW6LwiAA)Od@B@&Vq>^%n9;a}%5B?}AC+xIstlEOWw< z5sqx|)ULJttNV9cbhwii){@>!#T31W!_+?x60yWhW5Tl@+b6|)5?{Lu^3|e}!F!mU z*nEIjh40NcpVJElUJe{2O}7@>=O5X@6!(D*)TL!{(oPPsC$RoPj3KT_K58z0cxb}f`axy_>)iN z5C93NBUDxKiapiG1N_nw;Mc{e^kB*MNb{9i7K*K-cr`(dM`Abf;flh{j-l63TMsy% zS1eP|SlUyD!*~NWk(RNRxb%fyB)|hu!lkS6Nv2C?ao&Rfk4sUv_$kCa-NpAx&6ejdon zGI9BiwS6WyqiFS&-EYk8?H$^2QRyez`JycT_pnK`o}BUCjDCp$?LS0w9O(;=VY+Ay z&1d9!i}sNV$fxksZ(r??miO#pMC{l_yLRuaKQaUP*{l6g-`Bl~^v_rO^?2}x-{pI2 zQ=JWLI<&ffXG`iz)|SxAdv-(SwVk~kGaB<+0=P&&LR|TeYQ)P^qFHpir4E=361p3lX=*^x^G`4 zt6cno^*;vbBE}ucs?OijU6nli&3a z?;*Oq@9Z-zi--2?kvCiQF+yF;t{w5+b3+Myx~o|wy*9=L7#>Vh+*g51%hW;s4ixI8Gh(W&*&X6h|JyuJ?b>jr|_T^pjNb@%lQhQ zJ_%$w8xt;j`wj;{SvU>IB8CRA$cL}wS47C8e|l*2!H!~?V0pvo3CQD0U+d_~Z7&wi z2t)fj8Yq}g;8$c1JD1!k(GnYa@5g#>p+w?9Bhq~V=}@eXbFbA~i~L&c?v~zDXv&L@ zi7jx?7uS93^!UJrD6@Jf7mfT(-Vl8w2!3jsc+*P6?F6zjW8@B{)Q33L_MUTk59GS_Pp=E5 zI&_Ml1(zw((`a41%pB_K;18_xbLnXgsVYHqw`P{|AxFo z9cC0Gh28q2ppnu4OyflLgN?El=ST3gH)R$?`|~2dIiyu&$tHvfc>&*v3$r!zABxUa zThWNNHe~JM6pu^NAKSBo`R0$5udeA5gD;v&DMe05> z7i}4fd~`CKLcP;qle?JQ5$SE-U^+Jn*N<4Xu8ukDcsJo0w#5Lt?}M?ul&I4Q#btnm z=*0rbRxbB@HQIOm6t!KlU}`ol)aGsB458}z8T{yre8`kf$FwvpG4qPpO*e#xh&GU; zpNRGMMv$g;3Dl{&zKrTkKVDath1Bko()GC>GyLCQ46Vkxf{+$Q zQ4TI)Q+pspj(eFnqEG%NUm2n?lc}ELlhv468XBiNfi`aL!KtHHP7j&;k!RI+$+nbT zKLfBKE7wv9cmHf2yuRKeqr$t?;oaD{2fBWEL>}F@2)XfAVu$@TEuu)%hef3yDSs&W zmSER`N{TZw#CCfgV845lnyb6^;Cp$rzlj8PI-R(^l(C5w#oIp-g{@(O{j06Ew;;f=&@L#Mthj} zi=%!fuPy0V=3wk+{>a+?C{s4XF{#+cg^q0H^}{H|PCe6{p}E*cR!(X%rc^eDApBksV{VKWjm1^$5^VC+9}$1+pC6!^d$^yI%Uot_ zG2gEVyCe&JA2rntyTk>hhw`J_ue1@3XbTFT2~ipyE(ucY-!%!C0i~h>BzWR7 zh@yZKO5LiOH4rPF3B);#tw=4Jwb@yL)a#*9(g^ypVcW>O<3UfU)UU^#++>9Ve7t@P zoet$2M4pW@>T7lDssA&w9)DhUDJoT&w@*Un4_-d;xK2B{{4uv8=|YbDybpHKN%w)<@Jz$?H23iZ)ioAG&eT>U3O*Xaf(qm{d-XcER^t-BPvU&{ z?lK1`cxN>hvpCO~A?|%Ex5B0~InInIS1q1^KW*pNKrsDR4ztYVrW<%~M&lza`YCn= zU-F4vKWVifv;GYlu3x-l)=MCy2)e}A-QHu7sLa6314kCK5rMkqeD}c=qH!wjQIn3I z5sv&B!h&=d>?MnzU3YHF@rv!}bX?NK!DW}JH7caZ&~Pn!%K0gB*^IA26;CsBr&Y%u z>^b~pW#zI980)r^%P^;(inz*5XY)Bp=7HgOVb>+Y!?G__Zb65S7xi5uYz1WBy>egT?k;1O8#`0 zmN!HpvMS#L zlZ8`Vtn+%a$og(PXLx=u^zoTLCu__Qvg8w$35=G6Na$@wSgodK477al+Wo20UN}h&wH$0`iQzE;2 zx2vIi7xc#^25F3j8J0v1Qrr-;(J>mob4rl9PC{=u=Kj3)JWzL zkZ>klOp+&QH=lIJ5P6Thx?%#@W5eJLsSv1%zq|n9)M@L_`^HYI#cm8qc`Jhm7A8{P zTNn4o80}ENK-dx#YG9F`=0RA^vKRjcO6)Z33W2+?Rd;o z#WOju>#q8_WAo-oMK5a@;b9dIbw5$ra5Uc7%4E+{qx4-SN4R9YFv?hrNrE;ZDfhUl9_D` zioZ?}GCF7%l9f8M%0;qsdrvP*|9;me=6$RZu9Gi52$nXars~NaGbkUA?$Mx2YSU=F zxOHS9^w%f(>bfHQj3A=o%Pmv9!=T|!*>lJL#c}`wJ57;1!iORiO&bXUJqq2?{*F!c zU!HZP&XOHOZ3$ypDLbGC5XEjWFbW_nI~)~sk4Yg^-Gl)|Mw-#2_ zR=gW%!U>GcOpMHh8&V;Wg7>Nr8;ve6jVGvj-i;2B-#jacQ?-bzcW`D?L>C`0H6jahtj zzt)Y2(&H%o@qR+B+;N$2Mb8%Atfn#ilN)-9weBxxZ-=6jfubtbm6pEHX_jQSrxIw0 zKv+hGg554-!vn52M%B}Qs|yS;&tvx zQ5vshl4R5hmApZt?T0FQdD(`M(6MxjjJ02Qe6F1uDM!5&yzZ;N0L~@2QRaJRL#3dL z7mp~%_B(N-eshoRag-aBs=&|lJK3y-=r;R*D0G_}8x2)vkUGOa!(!Av_wRj1&@KF& zkkHTZnQeim_pBY9I(Ts3w9_DkD5t@tl{*IYqR{e2{IKZY`ZY8O9YwarRPYa}+}oT2 zHr3ufmW4;SMX{_JQ49SsmzFLRg)4RT6ep+*jg9x*K$dzbUK+Z4B&!vfwuaC{>7qv(ibw=9RYCuyJ_8W439=I!A<5F zv1Vy^--;DdLC$RQ%BjcoJboF{7a(doZc{Xf4F38+9Hlam#hhq5fAU4xE<$@bWUudH zi`7w->CyTT$Q~ysYYz@^OGM^bb&e`{_ZqNgENAdmYm^+s;U3}ss+#A4C_RhLy|;R+ z<0_kGb=3M%0I7QQY`n-ZvzzAW20#XjgS?DPH^O~2>Hsqyu`bcA1Q zRnf_qv|-pNt9YWmMRScjZ|UL#m$oW#W)_^hUlxn6joIm}sP87QiszCMHE%}!9S3s+ zZ!E9*3YSB2hB^1)u)PHGjg5dD^0vp@I2UG=kBo1brp=d%>wT=JcHPVQ(Sh0iAVHU~ zcL4=uL|V%Q|Iyh_L-Bm=+Etsw?^P~iXh%+D)xZ$d&mMtpv2?$Wsl+heRR zsT#T3zF?mK;1istF9Jj{30FEM3J3rt{O`Mv%}sR$8B@98vK_>>i2?bL18{J7aJ>m` zpisYFGUoA+hY(gvzrBb$<;U)4mN!GJ*_joa14Ms_aO$;F`;Ozqt|@C-qo6q+W(F%E z$^6Iy!*{%W>JQ!&4p)tC#Wqe3vVIbkvUAs^EL0-zW8q{x8F(%dj^VF8`Uq#MyJ65f zCBe*i>gQ6|o>$Q9shqTpK#L)nLV1PlMKHrQ8WU*;^G?gh*%h?zQ7W{0;o8jVVJ3vc zX*C$WxKL4s4MM z_e8Q-6~ha|7JUpaM{EJ$FY`%+D7LE}oT-)p@c?Px&_Pej)ZYFG59y=OKjn6U@cj%Z zu0LBYrA`Dxu!3S4eBFcKjSgkoOEZ~pb=qtu9Me^m0}MPTk_|+bVy?IH4s6Acq4q{= zUJL0;d;6*x3jCEp?*@W6v}f(|eHc(`qMEA?YB1f*J}*--uunLEba^SFTj*FG#+CZ4 z>ag8=rxj2}2453r7h)Tg`GtMl&!0eoq^L|@j>7$Xj>JdgqZ0NJO!PWioZT%EO!!E@ zKroJ=xz<1C2>KYw%{f4RX2=A2$?^)xlJ6dv#3Bgs8h&WlBizFG2`}Rboof8_`T`GY z_iu<{QuU#oN5iDN3q8|@4tVZdlOP$1S^>*yS_FKgs+!Yy_Kh)G9k85V#nP-y&)ad# z_EBbg)DRUktI_TQ*MoqJGlZge4wR&tnEDa}TPF&T8sn2aOj_eZK(FcICG$Ru#a38` zk1@ZzNHt3Y% zUmSwgMqY(kf5=lBmg}wUIOGM8+0{L0+Wlc7et?eZYwYH{I2Gu}@i4WkGxmR)-emq& z;+zC1q!YsOHZP84qWKxe@)6fKCbxS9O=~q0@wTsHAM~o433y%%mCfqSPPN>{k#c5Q z#N7PWxv)Q`jt(*?3gaXXK9Z+T6|dcYAB4n6f}Ta#zMsI8{!8tg7A~*IUnu=D5ZYmD zTKwQ|$Muj4g1|!@@}YisxXsw?On0W~RUz%k|lF*9h28@v8=dkG>s&DH;f{m6uH8Urndm^r6 z7jo4OzS`1?2k}qV6!(L?-_L@21=iqD9FvX?!LU-zRT8 zGeqFpkcICH5z_-rIkPRND6D9+IFz@bZw7sxvK~3-PH+xSG9Dxn*q~0nKa1~l4f|zu zvRgZvMUBlO{SN$&GxY`c^I@I#$g0%0B!Fn@=JI-};3nchfNJ!aWIP$Nrlh#!QVFKP zdN0}I6(@C=W*G059%*v#!=~)$Fp%l@hev9#m%j3L7kh-RI6in=Zien(h?5A~Twi)- zf1Q3N&Ck0R=d&S~Godm=k1L&+A%W^L&#R>;doQ_!%aP$|xA$AgqH9T>18F1Zj~a{H zHfqpm7XzudyUxw3foqIv#M9BBTwUjArA0`}l@PREk|x?T(W#CYR)&^rWoHO@q^Q$X20^V0{Qb3lD3va>02-0q-t&Qnvr8Xv;X*Hw%pzd9cX4U0YM3<#1B2Zp%i zw@-qiCWU(QlS|&W4OMEO{3jSh$`ngoT^22PBA+2|AVis;Ogov%taD2|S!_1EETe42 zi_1o&NA3X}%KC0CZ!K&d>z#>YM9w=3s4bB-7Y_zWtPpxW2$WFI?d2??U^k|dtG6WkiC46Jb&DS6sqR&;-0PJaSRp&_2CeGH!cp z$V_$+#z&f(AGaq>FF?`6aqN&%hUqN-8d4=6RE=C50Xs29*jYQ~(B3oQT4K~ad?|q? zzSzW^(|qE$zk&KRf*Fh@@n0*FI3m7}uj%>9 z(gg_)b3R#NhcZuFYS{Z9hRDI%@6{OOh=p|gJ&qkL2eyyC89jSPhTk{>29Qb5KT3{YJxGLz zyDc_&4W{g|B%FGSNc+25e+>fIKo%W3P+6mKUqv!97SL*)WM%~kP-NY5DR5A0-Uw4Z zJ+XiP-u>ZlN+~P5hUDn7G{9;J+Bf1s(f1b1-y_ZeoL&rI^m@Ik{<&!Ga9yA}W5Wl- zKr-nq!>A$cv!Su+s6wPOI7v1BJ@(X9L>cFPaj5Y!u^@7!o8VMvQl=C8=9@wLY^A_0 zSmO)ZLuwqEg=se1VL|dyo>0l54>Wy}r3BX##1~4MXo-0;O*(|D629jqJ^}7hz8rW$ zK2522-NknqbgEw@HS`#KMkLpVl3>WZ)J#{&b&{Q8sFTK%|`Z3ytM6-%VGh;>-O5HEw_YQ~_3 zB!tu@j_B^6j#mrYP6@aK6t`8vA5P5_ zNG}8$#l%f~2)_`=^^?#QY@BH3R7T)`%tysL7VO$FN^=#D-vksGy?1!5$3z&VjjSrA zPrA; zil^I|SRd!h=n>6#ogF6&{1IOz&Qn|dMQ-A5eEvQoB!jWBBSgC7!XHVGBQ-3>JPtgP&?L!7K0G(?zNC# zq}^th^ZU030#}{lmsie8)&B!_(H(J?;Z(bGaX}7PTrFs*63_cXFfYhlG#lsr1`Z4L zhR+3PpuW;Yd=C2{U6Dp!Rmu0!bxkAMq8F|EH3 z6>-LwC8wg(W=FQgY05uecc}poXs^LwnBqhD=AWWtlPxImpL9%X9LM)U)M}Mx)~1|` zg|ccTZv)|3E);Dg=6{7coY|Ts&o;@1`ZBobMBfXlCw8cWRJ zth?=QM#9PcqHi1$KunWPkeXD3ruH9oFHnjRQ}DRogv~=;Ad!~PM)NBf#P}5J8w^fq zP4*!_>c07z02gCZOY=EoCG6N$kZ5|P4t|_IKwF7jJ7-sSTm-k%>q4Qr8FE>NvDRqo zS$zI^_kdmaca|mjNSolP^tyfUJh0F4NE}kY=iCHfdL~HQbqc3Cn-SKW_`+5}t(J?019sNobPzvO+-la- z_fLS*D|XNzlw3f6mq23`$+2TdqR;*RHG&l4lK8_;~s`nMoovu3AfbRoR zDO00VGDh%5!b6;oLm>pWlrR~_gEj}52Wd&~JABL#jxousC+-d`?~7`JFQVG}vMFO! zx)F2?6ZKZ?b{K_j>1-CAy^WWY;OF?>9oWG=2gCRDg#R2H$XVjs%`=3}*u3<33))0q zxZx@<%ZW5!<9ef`U^H5CoZi61nP>69{%e?+X*J#yTwiHiSWJ)XdZwp&&k7YrI4=GD z+uNH&M95-Fs!w{gi|9|qtK6-cigZhqO{o!VO33Dn-Z%9LZu;49RHU5KPeVuhsckB| zm?Pa4vt2cMk~}`^4il<1rY-RP=iFg`S|(yaCkIWp$V!}N=X^FslI+G<{=thHD#L;f zGWNHTtz@(Hl!7>SiQ)CDzU*C|`Kw$u0u3W!?9z$V&rpN?7*@%quH86T_|>oUXXuSB zjXi!l%Z?gqw9PD`T`B#C#=Ck`Gg&4nkH5r7#gLL*1^mPaZwv}!nM|b+yn>h3cD!_& zTH8;Z=s=>^zcI9` z4Aie$f2l;d`mf1tFG-g;i5^$Gwgg*TPvD!%NptN9?+eV%{V${21R z`tif486aLZi!W8?RbXm#G^5+UeJpE@okbsu?nFN6|6%h~;gSvu5UXdFG#C9>@)Dog z$0YG-eN-D?Lv2Dx2hgxhAQ} zxWZ4Ndk-ghC2v5bJL=Is00S8+Jc?^#XmSX`J0-vv;a=h(y-*^K>gbE01oV1gZYM7T z;#yJN5Jxi#Yv`17+>`M@r&P3H-&enYpSHIPcg6KWiF-K;A?$hU9d>L>XgPNTH@4T} z6#lc}lVZHPVM7t-Gjo-g^?@92?CkNZRrMA4A4t~={QL}GlBnzmF$Fl+#n zOcTg(wub1YSo8l~v~rHTDr$Im9DVaH7tn@1~uO$R&u1 z4~w+1Z@8c8(?L*e)rgZyck|-@j~P?ee5Fh^yBA;F`%8SWop9FP*ixgP5{$KrC&UPu zCIaMfpGVZKP3+g`GbU^#NcTS2KUH$%wCnwG+ycDkfL#~ySRODiH6%^A4X}#|Z#!Ts zGiE(8;hm(XI{IJ&-Z839qsP{%BDxZ56E{U^XR8`GMD7s!xWQ4t$=^HO@NBu*pau%j zzq`>0ddSXBpkG2IIq|t->2SJpT6^Y-9~j$1d89E6&HW8DBLjUvQ*nh}!#u}RBO~5- zy)UV-8tXvZyNW<5@g@RSz0A84@`z5Lx$@2Y0fr~oS?h5;swWAEU|fbkaz3FoYxrBy zT8@<_Cjz)Ea6=Yomaj5@Eb1sm%lfj=m7l|1LOnua`JS$5nC}%>?n@1d|jZZh~>nF5tJ++OqsEL1IxF8Hp#)%ASrZqA| za$WYz5hNiCV!wjd1~TkHV(B9}rT%ky)ZF^o%ZwJvFwnHaGj46sJ$DSGbe5N_yf7*^ zPNgyvSpZV7@m3D=agw!aY4N?bnNNQ)$nslYeMNC>BT5mKzdO&Qe~ru^&ct0^UmshZnHTGx0zA$m5>%j^YEy4J(Q=b98~`IO z?z)I#9h0Trzl#qZ1kF)tIUjwfaBnsRU%e0RZ?9KIS7?BU0bLgy10joW8GF(w?yCvH?Y zeX#_lmgmBY)j14%9tP`>5AV-rcj6pM#TY?|r2IHT_e#N#@^~HB%4G`1Y>B2 z_yo)oQ3A%%=dJG}^;2`Xeq+=i(z~`!iA3)lPpoHB!eLp$1xNY-BnT zI1fhaMyy>56#G_cNe#(8p2J9FC%fpyMZ=76?YtD1Z?m=HrxNf}d1*XD z!k&woj6dO)l+l}^KEEV8i4&(bu{scnw~Btiqq`rrK#x>$Gr;zg5Yg|tjHFx_<;qIm z;ZMe{I$^`p!{&R_fOx!TYQc!xIyK+voSi5sd>FtGlf@ zDkW=rd_JFISH*GhV7KjsqLsW+Bq;n- z_=Oc2Bp$4IcY7~YyWqkF)w(Fi;eqvhy)>5jFgu?V}Du+QHcJ zNZyUWBH$tst@V(ugOiZuHZyxK3<>zP$mI>>k@BJEBXuQ$k@>LM>E2i@*69mvpZ*NT zIGPfML+4rO!feU}lsC!%lq7Gn&xv^-jSY^biovB4+51Ofy@p>uQlf4FQw;7jQ#KDq zF1cC}83;psp8;e-(NrlBP8u1%HwjK1qag1$Q8;Y?B^F_x<9T=vH33<{NUaUMD}VnW zi|i`8tGVGVZ~v8F&(aZvxKy=W1+^v@=Ce}Te98Te;cKIHI%py&CKm?uCX5buKqOl@JQZg4msUFu>9KS#sxAGKMN^Y_z(E zZXx}f;_X&!Qg}M#Z;EpId}+yc3D&Zxgi_I@!FoS( zv@nT%qViW;^bEd*r$`i|8Otb>d=^1om_iTDQ+zZFDHyb}6e-Dv8{9imWIq}CvGP%| z38G%GrF6QAXLi81Xy$UPubG~{{73MSJ9s&J$AF|l4A(~$^tVWA!1h-tHV`F1n|F$2ND3QAHb;7v+T(Yya%Rhjvy}g zW=JxVBQN5B`aIi=;-A8s1?oI$$w259ZSrD9K>mb1`?uLmvza!bWz%^P_0?ID4PW9n zaMdT~S`XWkeFVw|Y!oWSBm8fCuT%obGMuI3Zl$X?keD-b!HI@ z8=2o(nkR{9ko^(HzuQ6_{>$uESKxfrAMvW0g>F7vPOv2amw(IEuF#?{ar=$&)1%;cIe6MkpdVdEgu`-_Vgn2>eBIFA|(s z(pRH}ahBEEmpgH0fX+~Uet$l{-)XR%w)Iaq2W?{gj;Qk8Xu@xFrpE0`Zm7P)zHN+;k1R z3-jVEA9pKflfd^ikP#OTV!?%U?%YwXD??_vzK&lYruZ{>2-(){9iiAtnexW)u%5-Q zOKjPUKRtNS|HI9d6849FeR7%VT@G_4ZWxE0Wt&ea(Fk#e6fX0rsJ1@zd1fBay53Wv zvgIf8jO#kNsj@E(smQiOQtYZk*V3W{%=dZ&=)KhdOwz$H_ySIu@ zN>scMW>Xj4Y~MW zh&p1;f6c~V$VBa>u(eK$RhFIr9?`aqQHHX%F_`Xr6uvD``-`CUpKiKg!-l;VTtJ<^ zGIum5Qd-idQ|YzJxq)ky#w)Dffhn)Pghz<-T$FSm5Pi}nZ(BT2t;LrRqNcpNgdRzE zEiC6H_(!pT>2@B)T8`E5%s+~LP;Vld1WPxCA9uVyz%r7z7{QVovP#GN4BiwEntW8a zJGxZdj-pXQ8C@$lt#K}b!91oW1efKx_Cv9$YH5h#W=sP_*mr#vKnvgv%3XU_oL(KK zdWX(kP-pNeQD`6O_aL8mr1mC06Y|lrGJ|}Y($}H7Ihm@v6Ng^JQ)*w!1g$Mrl8?M$ z6>v!;zaw55adzXf1L+YvRjm3A@}Pdl(6d{p!`C9PAJw3WLr<8}-^p9{89IMynSNhR z4=O_v1}-!ikkFT(C}9tOct zZCG}@76p<0(Sv~LjgsP3ZF_tX-j!iTaufF00qz(UiPzna<$t9F47yZ%P4m;)NkLhhxu^+gMqYqllWANRO)=ywywqgI~ zEhW33+w>MS~BMQY3>RNAA34UVbnw?}7Ay075Tv&IzdE zKqSovK@;A*1D^U>P0egI=H~%&u{|`+r{IXxG#r0Z_Z@BKxMdPM{Vt@br6g1HOA9k~ z)V5@J7Jr=KLc09Mk5TN6h zO)}bjEtK^%XN~LKUke(`o{+G8{#P<>{Oof89u_e-u~iI^UVA20?2WNLJ(CyMZ_9qb zbqov{+2rlpq-1Fv<+)qe-Po)cy6mSXVLZY298$dtsVI!IzN-&=W;%8!=-%*wZj^W~ zb8HcB3jyICjC?fO@=;q|Gi`iYH*RG)X#cx>$uKCl<)UFz@b@Ze3|at*yyR!+DlPsw z@m2IG*`=VT!#Y|8+G{)5dp?(O4E?Rkap2thJzds)mMM+R?y9{AqTItzF->)}uaEc? ztl6L!4}Rs;gtInJi-u-hWE|W167t_^I-1?O9RpLcVpe+vm!HKW^0dtS8?}$#eJdyv z%4$Lfdh5Spr+j-xg3jQl5xUN1NmFKUGB&J%o!PW#KVT)!Nt=*S15}%%DWa#l`e2ky zC*fUCN^aQW1HADFwld6QL>&bJL#{EY5I-(ThOd?-&P3kvjm2Ia_)13Jqq%e1XK!Ke z?p-?$kCjpD(fwb%ve8w`aYcYSeyFJDB>o&F)d?>n32--mG76G&yu{*!axddy9?_!; z{yS4GSC=B;^{WuK2kkw)ixz}ymz$UjuGx-`z{a4b;wY$C6p|hd!2u<>vHr_eve`-2 zhhGz*-|1SD_td;lwKTE0+^CYCcjiak5LzPfgl%`?Z_~X)T*$l7p?n&~+qfqL10A8B z0Dfk8V2M@hS|c1Y87_&hKg_6Jx7z5GU-WHCe-}`jeBZv+q zZsEQF8n>6UD0?$({p1L;x!hR(Ej*MhyVfo%*IZ=$lOc0-g4VKb3~lvf?Hc$HwYDWb zm;;c|-bjAT(vP2op=z7Rq}_QTpAJNc@`h%~3VBJUzw+H!?T`7iutie9%z5pAlM(qJ z>~)<4Xb ziU`7Tde-m3a?;voZoC%({k+3}FXTUUAANXI%YNTIW#L#SW}zkc9)FoKP%%@W^tb)$ zP(+~2JPVeVxu6GHV1}emUJKfspO;#Z4DbC5PXdiab~sR-dhyvpmmy8AYsOp_xKg^5 z3#e!ZKf07Xk*ceFt_y^bH%s5-TCN~e9Nsa57bYTnq$l-HETY8v*N<}W+|GbkF#)}D zH&D_N=#kr>%ek!>_YZPw1s=m0%hw(I=p)WUSp1l>G)Th4o{(iVt$s-sh^-syBC95ih3}4vQIq`-M7QZ_1(ft~-@!t%y1Cx1 z;T8m=D`=u^)%x50^N_0>ac!r2b;Gl_IZ%b~jr*o5UC!v|yTN9Z6MWcdvkyrSwLJSUjFss4v2Gdm*vE!Qu_F^7UF6)piSw>+ngK?6mab6++cqr@+ z%FD>&mHet+i<`2~6Zl%1={MHk)z+wXxT1Z&Y5@C|x^eJjMsi-@Q~T;!YL%7z{2AB{ z!lTnlbU}%H9zQ7st4-%PANAb$e7(!t3psolz+<6lqhHck7ojp!4%1DK4gD^X&DCI( zD6JfVm@0^2`a$Jk-5^G2uxDd>Srwr%;Bz7ontb_RAuvqPHp@!LZPt^IJBd$8@Eho# zY3Bo9ytbeA_xpm4p3GMl7J8FpR_HdjQo^r(-O==Ylj(io<^VXI3xye88gg4RRLxa< zeQts|IkLP`|0bBNWmu&YfcdbGPV+Vk|SFF-=5|4@F()gqgJ zxvDpEO#L_}q3#{fSbam0^eX-_(E$oB+E21b(Tm;AaVZEE*Wjm33BAx6R!W%oJp2m? zS9j<-Om!GtL(#a@2eT|Bt+eaUZh8-uq(d_XuH37tc^K&qphqGI>=j{7C{%Fx{mm6& zSMpR8nrQ-yUPuobKfezyeW|qRMC0_^BG(p?(u|-OX)^!Ly_#{`G^!#j8d{#NbMPW7 zDO)9Kx_79cg2_mImUD3Vmw19qe4=u`0KTzc&WrgxjU(`bPlJa$(dF>vZ3fC^@lH2Tx#}X{Su>&au!;e8O@|STzHkhn*3U2Gchd`N`wuWx zy!0myeXyC&wTd8kTN)%%{Wv-e`ojOQj){ddGr;LcN#M)no->Qcl+5eIQ zRP1bx*wJMf;QKNh*En)26n%SKhzN`Zv)`y;mJ&s(<+@SM7aZ|hid3bty^Nx71vSg+ zIQ@ohu%cv}pNirVW?7Mt7o@^AJ%+u61oZhq>Fhe(v_0ZHs4u{8gRS}vw2#L@t#kbq zh_QzJk#UfrypV-t2}rTe|&2{ zTA$JIg}3xi+YYmV68>#&W{@OF2{**C#)um5Er< z;@GL}O&JgE!E6azy14}QLhtJWuhE07XOcR;YB&C$ddrq;i&+@Anj?tIk^AKLoUsP(8YxS2xdYLeN zG2pEkgN!JChVQFiJoQ-6cTqc;ISd665KxQc98FFj>`Y|q8KtQ#y&N{+!-#*^VmCu0 z+d{P83ii!kVO66)lhKS|xT85Ke~4A2SDq`*yTBR&>zn)P4?fBV;8=UrMa0!J_ze8h znYA8-c{{cz0PXa66B8MUYV0p+Bl<5wRE@gQfqF{yE%i^Dn_Y77wegcNyEB`r=bORA zzs^V*c7F>m40%uBL0m@xBU(|kB1;0#T%f`{et zetok z|D0=6Sh5$U;`C091!0^JzIwSP5ScE|7`t3KQbJ2d?WMddrj1!lXkv?U?WJJ5zX3+I zSv0>p4O1J7AvWFt(b|neNLGbYE`4Ro{LJ#~g!$m$#v0I5SRA>6gqNu+p1O_Q^&$EY zl(AD?m#aLJs$c9eN8)07l!#K+NqZ!#$9Hu`=nI+b>rhM+&<6QaBpw7!_&k(8rH0Uo z^pR&Vhwl`n3y~3sk9HdGf(kOvNW#MxvmnABgHN3X1o%{ZIY3E42U>Hh&njXcC_a-M zpJDOd^u`ZZ%Kjc_V?^k!wTb%HiA762f^i-fuid5>5rQpJ=Y24C2dvjq8jL(;(&Vu` zV$in;j{9RYE81#4F~|x9391eUR`=(wDT|RoUkeYn88MSAQtwN6vU#;F^ppol(?>7^D&EWPx*8@-OiJT6dsy1_vVhiUG&+6H2?V{hf;qNpi= z@C7_V6OHUdH8KpDH=YcK9t^SOD;Jaaz4F>IwygvsN|U_4<>((FPGG>tvJG@EtNhTYNl7fNpmJ~+&gCR zOg>xjO+zmHT>V5o>3MgAOFluXHt65aKMBbU{%8{v>hb9anYX{64@*|* z7H?qxz2%u=s;L=47#ul2P>pPH-hF+g#V*H!8zP@gZ%=X zU5-4%JrNfH90CCh`>Lt8uoCXaxa8~wIqYj}3A169eI3`_iB_tT zNBvFEL+D!LE$Udut$MVbiL2Sv_>n2L1)&X$VYvqSx*MT5H4wrGZ)wm+)(=GR>>S@- z1S}(!!*Hx@aAi78+LW1Id4j6lzQ&=EbOT1>vcx@oXrQ1H{le;D^azJ7m7t;J`M{t|HV!9N5CtW%cW&5L_g5d*`!P+BvC^$&1q z@#Up(Th2eaIdF04?mMu2%>f&*$19c&Eh;AVCnxa7IIc3kHOoeSz;ngA(Q(L#d+H5| zah$}cm9Vb)<)QZw)Qa{s-M8giy{Y2jgJ+4J<*GHY+f+Sia3TyePY@$@P^g<*@mn=e z@8F>aW*ePY=|2=~x3nos6SAD`nl2}tU@uODgoG_G(k+W$-_2mM$C^-Yg2MCp9J+K5 zGE0Z9M6>BuZEsy*5j_Ez1pl(_2H)GKK50npABLqtg2x_7WROrsT2N`R2X#d*8o`d@jhXVMqxQw_qaFu%~k(vsPX1=RUb_M-z z&UOW{W1CF`aG=3)|AzbvMF~>$mS>joLduW%&{R&hoVYfX)o%3dJ6+Mo_Pe5`n)*)2 z1P-5Vq$dbb2A~$<|A-eO8<+oGlA3Vtm}PblOhPR zctH_SKvqkeQYfIpWM-0?W->EmW|F1?W16IGAWcFRpn~ioxUkEP6%bKm5o8lk7G?3G z7e%&iPUSiX8k&F~;EF>9TEvcCB@CBsbwunqMNRZJ!B@BhM!2d>YOTnbqBW+#6I(loz)=UD*w z``~bunTXKO@t}$~4j%Wh<8oA8M5!2(@Sa?@7KEOCbB(#0MfT9uSqnw^Ti#+*lqFi7 z1A_`IWVO$XQZ`u(Nk`=SQ9wt&*v%wXVePLy{^?@}={tP#6tEHNn7!pUHkMbD`F5#e z(^G46i8?)w{5Ku>PkrngA(|BP%O;El>x01rVN2^TVu{+fK>NAvbtzWUohYX3tM77I zyAK^WcH&_21qA4)faE%TZEByJdnqsVfp_2w_BBeEPt7mb3NGs1Sr0-W@*NBQYEP|F-rWn zZ&qP2Q!E5()+Ch6ICjyQ3^O3Cjw3JiT2N*#aJyA-Etn)*el%l*2Utn1)58>RbPjFm8}c_V$UXdH?3E^|vSE|gg`r2k1gtwvXS#|tK_H{FxV?D*S& z6y;M&Lne-ng%)7?aop1QTF-~I@r8u9qB&9YoWRE=ycIC=n4{e1XElqC8Sp|1pOA?v zKBhHggR~j{-t)7saY9Y;MaI|~JIRCOi_mAIz^v2slrTbCY>3Q{XU_TU$4(r&?8LFt zM-Q%^*njlorD&%DptkbPbP~|tklB^XzVR0Kr;jh&{ac6`($Ji~o~{$Q9DW;gYD76> zmY1xE?Zb>FiO5Zs00H$5860roPxTi%0 zyP{o;*M?Sb4|+M8d&jhAl&jp9*G$CN3A+p#|8UjYf zIKEVTi-3SWL%p3e2${vj>>xgxwWAL{dhB6G!*tGw^;5x!3;7Lv`c&TC;kni+j9`w+`%WceVw^x zho|~XU+Hyf0)Hi7cN&~jA6T7LxrnIA*5%Y7cRu1h8R&~8_E#z#hD@RM4$iVYtpQL# zVmg?YCF`E zU+RhohUA1!b$B@_+7a;jG`F^l#%y0^;jZ^lRS{X&9!eWAk7d~MF$zbsGeH&KJU#Dsd$h&sQF-2^)PTT z$}q=1KFTg1#J;6{Ve9DDD4WM-ov6M@l_8P1`#MAcE41J$N|1;D zh*RI?Y`V^;LK=nDPmvuS0%jl>5;oMR(6AiRKLPLPU{$fN`VGF2E0PmlM1;c9(oBF@ z1p0U8SO$uBEv(xz#>nOJAS#1fSD<{lA=n8BD359oP{z%zZn@-2k^w{&qe&Jgqe%ps zm%=KL)%t>-qRZE_dLf}XU^2yHAQ{NaYZeimoKwPVLTWPTMl3{`y8fTr zi2&OL33kdsRxGXiyb~cvPT?x?q>I#e0Uz#HRKi#c@pn*|Ze$q!gvMs0(gMl8lPqh9 zKZ6}!d2;~{-OC3hqOA80g;0l3QK@fM9S^lrGboTk=+zjDf~z=92% z@ch5bHxbL&achj^SwE6{4s(aHbB)__`4_@lh*sD}3;}nzI*X;RlC|E?BqO_A~VoRD`yVm$7cp4PFIX!zhMpRnc@1uV<4lCB+RkTH*XEAJ%!HJ9W({y!bQb zLFDw0K;|b3-MZQx97Eq_L2~(a)tds$$>bX!Td=KcImC+Rr21BCPWL<>YY51F$Vr~f zz_?N_=X?_A*Kcr;S|>q%Ccl6i@}rH7#^j221MK}&Ll?4o&r^6fhd9>4wEwQKY)rtD zoV)>Y5^1Ct5Z|btu)<{|coO4JT!w@4re`2duK2oWS0E+U1*~LHyecpqDI}1(p{QHD zvSZDIg9(=?+ttyJ^t7S5Hm552+FOEmOWfp>)*Ioc#F$X-WGc+@T=w4d)L|gPsEUNw zX$WSSVm8EJdYnOsNR)x0Cvv(7gTt^Z-+EjP>lBd0Jcd6N%2RfQg+-*+5Cyi5S)$y@ z;hde~&BzKi>FU2P=Q38DaC%$lP}hCjZ8%P||^5Mu@hyq{~sIhlFDpaG~)10DpRBcfCa6{=U)# z$;qy}%Hx)S+E4?^AKJ}S+x%wjOci`A?5Q9I*9y~m)Gd+n_a9t8u%EsF-s#1epp>9U zt~u_#u18gQlqchH-#{UCL(*quo!<;rkU%T_$T_mt17%8?n?>*lw`+c+ViaOF7ntsW z54AU-i6=kKwA8p9>!<9x->XEooE39@{4a!KHM=PxUxm7}QKSr9S4Y5U@5zCVS#$Ag z2oNi-Nmz`)L_ksBoNiRkB8Mu}IjA*V15lU?HDO zEmNsjX67>#0Y+e?lZv08<|S2cK5&UG*mxyrweuWRzRwa+(<4H*-K|axFGbO@LUpYL?Y1r7U5tj|#rNdQN9giDvRw zh%och`|$uCyKMX6BX|QZJrvV;IZqw{a};H) z+*<+XVJX+b4rMIGo(R>7BpOLJwUM}`>%wmu(ZUyngb`y`VB3aK;!*b@J-NStUm63ArLPtF4X{2PgYo6ZPWE}2KZ?xT+`83D5fGAF+!CNhC4yaO zl+Sf*FbH?pJ3W_oo&lh9Ol24_hNesy@501A%werK$$PM#<_VtKx3*}Z2>HO>axla= z!extTxPzuVH+%XpxndYbsIa>P?eGS$3B}M^*%KbQ<$Due2Z`NKzxS?wR$W>)(2P&J z@U2$Rh1B=Xypf6t`>CJVmGcu|e+44suDeFD9hNJ({|cu$e3o=oh22*x*)m2f!fE-JkpT4pK}|1 z5(kkp9`KbQ$waTpf|Of%^1FzWBqj)Kr3FD`p&L59a{Bo3V<%3fK0&b9Gabeglu&b< z2r;;Nknx0O+ZPRNRfge9sjndvaFM-3RI>FGES5xlJYuETy01usW80FTZQ@>s(gg(SjS>i z#zM~eEha!d#H=yBFPi2}JeWEcKOjFV;l5*NGN7k|Q^n6hP2@8F5y^Es))D;tuzHW( zGO_jp_oXsfJf4-6*D5*^6cCUaL{EzFSKnWtlE6O<{WVp$ar27Q`8rETMUWPTl!0bW((bwXobZZEEy=sU`*$zo-s-Q%-9Reu&{f#&c`99Q(z3a%GbHhNcF@1Y0|HoqW_}1ryW6%={4C>C#rW{yTXH9 z-m6^p>ftL6O&vYBcHgG6Ly6FWhK3U{byn;!D z%9^fX0t^V?(L^80q90F#CalkHUx_Rd`=aN1dq0Sz`PPIiU5b%ZTW3Ua-tg z)nlu|m+cMy2~e40lO2TU<=H;Jqxkysa@3XgAz$5JusJd`-4Lq!8#EN$0~2trgzYd5FZR zQwX969|@gNRC+LTQ%V9Evqb)Y(093r&Yz5^u{A3CgWO1G_%v1x1AJ>;6j7~oRRQR+ zP~Tz!Q4lq^u5H89G#m7~1Ct|7B?zdn0l1Sx+{F!zJ)qU3Aa)C+=PC}?dFXqK@MSEj zMN%arYHu1=Uz*X-n9gxD?li2p+xIYU!PU_Aie-4v>d%ulPBS&T6a*&%HRWK|#(@cS zg>eMsnnKZzDGCvm`|_I;>fy8mOuf*~rLllcToZPsod5B5tpOM=bBy4SO+4LDmQ;#&PW|6>6sO z8wTlWHX0`C-EV_Wx(}M%mhF6qF)m?LC@m96AdLGhr<(q~Ao_2D3{Adl?uCdI;>jZl zp>~n)vs$6h*K}ol92OyOg77)mpL!b7WrI5?Un5>Y<093i>`fB1#vg>04ifg_FD6HzAg?oz?CX0Z;)muo!+}t==Bo zia9QErE;ll5P+RJjNv27pGS}b9G@tkR&YSQO-_D{c5=HCoPT4{akbDnJ+SvR2J95I z9j=aJpf}wM>aXVf;l_i6)%88+C0O8@P7|~1>~5evkZvQeK7VVIPGH{0YbVv1va89Q z-{Dnho{zTmB`1Rh&~BuK25AcE;&~+?O8XO{zWDNa&I_1!Iwglh{Fd{otX8BCTFQszTkwXIYYtG=eq8^5I6-iAX2UmpiGdt?VNfhA{q7 zQnPoz7G8>wzk-BofcNyy!qCq!{k+QTHllw{#vAw{hpIvgB>@j$e?i|hZ{o!13R;px z845HJ31k5hy)+#gtCD+v!E7RS2Q+en22giq9$joDKYR}#o67KwIsCr0(CQL;@pg=) zO#=<){W;T#{FGPJ_N(mxCtHB$tI&9Zm!>HKfuSP0@rOk90F)UJ5wBbuHti(L3cCAY zg!I&{+w+#pP#T771us^(|4oXpm6SCN-IT%)xyXkj-Vf!e5|G$Ku+Vm7!q)eSDW<~~jRSB;>5vWRUugqbhWTI$P ztfWE9UCgpjVCrn2K3IzMAMm3-o3^n3_P}N>9W;}S-oj0K%&CDXs=SyZDliDww>J!$LH{n>yD`H`nGHmV}Oa_EFeoYWzZqT<8@aE6FgVOWUB z#uzby{E<#ypoo73VieHpqR5nLNhj8VbZ))6ep3fpa?;h}b z%I;mV!ho16`rkiy(A{)YqiAhJo_m28=W(Yjb%73=8%1r1#+EfG(e|i~9^|9gbm#r+ zGFx26huBdy-}EFJh|nH^q_&*H1}2`-sff2jLM^g=N4pi7wHAW$w9XEv$M95Mk813p zJLNT^c57%I%L@S?7au!%XxILu_%BYZpL5PRRpNYacIoB;>G;R+LWr|#JizP>Q6so_ zs@iw1Iu>mSVBA=lUGl$@`9|hyloyXH)mXY(uo1m?Pky+Rko)#kqxdM@@ z#vKUW#69xT#7(%)v%%w94)@mjXiDbp&JQ$}P~W?!WufY>@Q&>v`N=I`DN6k9{m6W8 zxa?pO>O)8!vlDUS)NcZIYQc?vb>OJ4^rx6(+sgFz*on5ojz$*TJ#Z@G*dzWKE?@=@1}zA?*j4(14q0INZWp}nXg-PqaghWWRJZo zMEH@4D7ySa&DiTa7)7mppN!wT@%+zZ&SSBSRKY-lICEb@DbmlNZa_Q|Be}AI{~_mT znB007lxRp0c@N|Ev@D!T-&F^-$-HItQ|3MX(EUeFAF989l*w>P?%CZ;@xKSHjTF&! zpNo}M%JL&_QBu}iyiH7BU(Ny8K%glul6>O1dlPA5`)=W{dl(qcFDR;_V5qfa%+%tb z%}~p-RnlL;-ogpv{O%s1EjMLcx&U-)b8#(I9PZkjWm%RbPgq1d5nAK#4V`WKie=Ku zV7h&3b$#3Nwk}Ro((*e10vx^-dMIP#4ftI=E;h9q^+vbU?e%=rXxTPeA!7|bb^7FV zvnxx=&P{6a>A+Vk2#n6q7i=^18!%g@rc{?nCOx%csBo;cP1JQlotQrA!UX`4Bes< z+;8!t$+-Cxu=o-WHpKjOUxtz-`sJ?7@M~y|vCB|a0Jh#~%disiHx>Y&0l&^gS>ckbOq`jGW?fU39qYl3dh-ngSOcewEqKy4H7d#R5ku+?37zTJ2kZuNw zWHb5Zo~+J-G|-i1QO-*6D~cw?9*pF88FC3D{I8;a^?-M`d}-kIG}(P~Orhbs;QhBBx- z=wxVGaY@TF;PSe;%1cya+qcE?R5wxVTPYFn?Vd`J7`7rVzRi)QAxuSP9#9}fiMQ~= zq?L0_tQH-fhosw`s70)5jzHj3LDiUFx}GcDb?>`YW<=`? z_^eu;5%r1h5+qZY6N{TaeKTJj_VpH8T3)p#nQD9~4E&MHE8jd=Gi`=LISF3NgTSqn zJXmJ8GCr+sC#9eUwjHnd75rdOco9v-kN%$XHxaAXsUL{&%uHO&@?IppD!RcAtfNsy z*QVv|WzLwP0ZhXv4=Xjw$HF;FoPH_5Z1f~Z(nHz%8LqVwd9Y>B` zvj0f$GhN+($&u=f^8pE>_Q++L?s)sBg-E1y0xT4tUdEgqokeb_D=jfF65nt0e13)q zyaT89o}jMLiNua1h>nSp>>(t-SVaS3xoK4|Wz3%fNIQ~*p@*nc^%6QmifGm;?hA=h z7tE6_kQne&84Ayyh zT4vjfZg!Eq9^zAZtGG2}b9MIOi>J!E@BL-_zsd_^!ouAufcb6_zV!!#Bte*O!c&&! zx6NRtp%`?D=okJlzb1E(s=tYkOW~YL{N@=wcwo=&eWAJ!OBKOGkx{>C9Yq& zCLB^8wU>{M$8}n9r~+4hL2F0tXlZ3@hig)i7xSs!;D@5=Ot&xNA(H&Km0Dzf8pk?F zAuCwjlTTOD0`b2MmDQowJc;iWlIS`Rg z@5}j)lx93P!q2J;sGT=WVWjcpFdtUb7L(vqTeqLKd~wuOw4zqMSjqf;&en+;^vnPx z$7Dqjce5bAa%9=e5P0dMXe2#n!^$f{K1Y8Lq^;GCRYnM;Z<2)>E5IZ8O^bUF)~w&@ ziO%yin9`2frIfOX3Bio7^*-fGZaT||MX$$lY@DX7E9Yja3wVj{yfMz=4~T>c+-yl6 zf*^cj{#ck^nU0nd+_*bGkuF!7Lu0>EmxrLsZxB<3Itv(3@_s`F1EJ0khOzhs@910x z=NI;0dF*uGLd1Q)1L|&+4dRgOD@Syz%-zLHQV@D?#M~cac*N$XHt%;WLjI_qnmu~p z*g-re6}h^7{{h;CT$%IP6Y*gFls)01*Mvi}Kw4VtI&}2(4$9XY-+TDrsmo7>OIlA3k#f_5aysJP z3lAm$k8jHBjI%FV*$UzlydFQaX&TpYstVp*h3t)FuCcrw<^1mec76O%E1A_uHzr3v zyBCDQzJoNW9C%H)%I*;vG~i(E4Cz-DyM`aVT9x?x5Qr_l$I_Qq)*6rSGdF{xQl)~D zTWWfL$ia^~rv&8QT!#m!FG52kq&fRZJ4jafU9Lz-Q0y`e5nJ0Xwj=%eZ(NA&Q7i?8 zPtD(^?dNB1B-%`;V!PyLGS0H{F}(I~GnL|oK{jDZBGKnr=FpshOebtUHl%kfJgL~~ zKEx87WtDeV{t)HT1@cs~m5=k0&Kk6|t1FQcdEjF_>b-^~kJdhlM}36H8g%F%ANmu6 zV;1u_Jb{-HXs3MC?0@d)eLRR`v-O?GdVUQgTSI86u$LuX86|Qx@xvXyi3dUkmouuo z;EBA9tuHPNyM#s_d!z3MD+SLEb0nc}@X03G`w3fvjVH|Mb!U1B{j@L~b5F?pt9Ubw zN(T8IKh0-evvGX$ekT=3_6PtJxnU;>COhc&yCcw7taHh3bsYW7xw$fn8Wqoh5fu-# zrjfw(`+l=bA(djZdpB~Vh;qeIaLHxiT@lPy}Vm!8YFd(Hec)cx!{-bi}}4L z_8&if=pZuesbdF@9f{8Kt3aD7ggS!?$gD(l=aL_Kihs`_;$tu~AAyXNUt1fKHb7&;5L> zc!%*k`LqV2zeS8tGYKK{N>9VT2(_RgpQn~=rft;AL&>4E114A-#CzTk@xwrQ1psue zq!N+j+xJyergz>YhfZ92#i>lBq5Ap{+tsByGN%rMD zJ$!uqiW7$(GQoPS)e($1k!!k`(zAWgK&9@SW}9hBgsv(^{1wzrAW+mPm0vb_h%eYc zE}`Vf;U3lYsc76wcq7zy_il8+IPO~EAhG**;oZi4nq*M!pB%jBb0d64<(j5n9cQX$ zW5+tg>Yc0Zv_;-}*6VyEY<-g&B>wJ$aB~+AQ^w*{9WVXH{rMd@(Qvw)THioU_e2MV zKXFT!ru*37(e$7tcc<4+UQS+7pv!*rBMkv<#|wOg8qH|5f|&R4W>?*`3&RrURv7Q) zk3r?C%CJTttIz<*r!e_e@B<-SJ?AK&6tVk>RTNMzYn8{VwmkC(iY$555+^N0mg z+h-|1rD*UV=7V*RMAV9;iVL0l+?{;^vNX`1Dqd~QxmH4)z*$%{f+BynYCVzFESuMn zoK9Q9xLdlOX`$=KDdcQ&4#b7TGE%8R7p=X|KHY6;|^U+K}V)3lSZtP}aO zUDn54D(JGl{a_H35X6~1IPuKSiQe=gjvfydp+JM9{g}KU{DcYuSFo>*9)msm3gzLKeh*Dknj?TwWlI!?0zC`9-UrIzZSxlCo zA!Yi_XYy+3o$GT5>`P?)SF63x_9eb1h z!2Ivkf5KOD2wh^MhS$eSX_4Tf*8d%^G$f5r3M}dT$1Oy=vFL=bE^O0fJ;~bZ%kGaJ}mmlIYMV7{U%t=@6 zwWfqYe6<9liI=T@<6q?A_8FzhTuEjWB?-aPfT7YuJKd*D}>~nFNYnx8} zx)7_X3H8!jj}(h7BH*)t>JAz>@rlYig69P=qT#p8qwq(5daRzex5!Qrpd>FZ;W<}a zx24hMw;AYj>chEyi;+YTX%J3YCrDo6>GOFsKl^YT5l8nQ!4+_{)gn}~_*eGVl?m(O zcw4TQ*LHoDJ85!@pWp-+GM=ra_#FkDIH^cCRfR*+AiykfRzPr9+5@?yLbJYwB#Ua; zC#;ll@;$Kpfg3n8{07_LQ0caTBf0r7rD>0VS&m%mIj_G8HqFh1wRv8DfK+nm;Rg;K zPZ35j>Q|YqNh2e*7NOZ^Pv+Ss(s>xL%^+ca6U&f+KV!?l&g!zY z-A&ALZta^4ZZL7WlcPLaKXCjoMJf(Gyh3Ro?B^;ez2qy383_tVx}6mSnJ+rQ)8Gr^ z643?aW4#H?aee(1$&q)zTi1}BY0o4Y3Z|Fw95c?K%#g%RU8Z_yw%8Vh_(MQ~8|r+5 zBWGu?&_OL*Fo>^?S+QZbZcB%h~)K4GLWk&BjkCm zXX-wfTY!EbL(V+cl4d=GICUPtgR70a*m_>>?_Sc+ktErd{_%XipQGSzM*LO4Ut!|v z+-Ya#^3r&2%URqYcd!#Zs5m2_yjaZKq_(QNcyz=TLUfA)1{5Or>|)Z>Cl8(IO)CLJ zdufhf7SYxDFJdDFNaG>E8V3w+9dnv(4V=$0&phVsBcuEQxBXDAf*Wq~-D(M{7w|5F zc%gJNmC@u@fC4GNrH)L6VxI4mNmk!1J4Pj`>s?URudQwcI$|J$2WFpV0pwi9XDD90 zwhi-J$i+Ruz7}587ohd*3>K^ufPuA8KKc=W&X}sHMXW4q+pI5K2kRd1?610|>q1fb zx5ns1K2^`%jha;?8fX;B)GLL;@7EQoz4%`{jqP2D)C;njuXXX(2?EY#U zrt?C~&gmHbFzVJxu9Gh+S%JEQp~Psjle2(aX_(p|KIvxsG`OS{z}BHvbt4Kr;(4-W zrWRJ#tLA%nmfFq*(R5EhY^SDezjpDsOy~2 zF6z7JIOQrC26LUq6YEuu2X&%UZ5q+p#41nQVx0rZQS!ty+1@7lf1vNb_`%$6s@4&q z>Gi%DN+oNs)@$=hC=A~YUKQXS}u~@Zki(>OP zU0_+T+;DY?@_~`YMcxJ$p*!=y*qt*9oWm%8`QTSGOBMDoa=TKT^ujiG`IsdG@j;6J zFSUG7i4$%#N-55m%swDf?A!6fsMe;UDdPUKJAqm@x3L%zPgkOHoz}2N^lrupM+oyj zKe+Ze#s{RS95hB9ml@89U~&c>OAg+Fv0!9+9Gs1}^)_K}WiEmp9zpCyTRgIVaK9rj zJ*}mv{bDt3q0r151TqmSANVJi6DB{=7Sfyjl$+#WtjZ#|{$&#$s!D+$v_g;T{QK;7 zgI2RQ-ja_yO_`&cB1b5p8+B3Aku2Q{v>!y8Bi4yg0m09Hgweh^Q}0pmj&24e(bgny z*`izJeY`r_`qfr9G}`aD%6Sp)gtYMAAvFW$?q}ZP0#TUPhM5hDZ)T98yiQQ+%Ee4(9LwA@bW_nR?FKR++T z6Ef0v6UixqeU49+({r@BOV~vPXBWslGg}ysV999@I5EmP5l;zZQTBT}KPmG|^t!C` zDOpCeQz}p5uOR-}LN@uXg3E94!u-Y{<>(wg1oNw|H&UP(^1%ubn%z|3v|7o2PGn0l##Kq;vdOg? zy{){zpV}#+DMvMEtvMg!hG+3PbZsXzlF`x>fazl{nqCw>{y-kdY`W(1oi$FA#%rNX zoq0E8vv^x)-u0$`o}YJ;PStR~D-Z?+2NY>-AVd$!?T?ad5GgRL%5ZTs%tj3!M@sL2xk zOwV(&nPtU^&+{!4Md_(Ukq}7dc8nt{F~e+kwHS^pl+ZjICc2Ze6eU|T@<{eC(FQBB z;{2??EW~dVylTHu)FJe24Q$yoqFp@L#*e}NJ`7e`{Bt#C2$2W3PQa3+>u3B<7yr6O z@>){GRORo@lSX=~z~^WIlAH^8JiqJokyD57H=mjAoDaB(#6}{M=?3;PUIZIpIbHc3 zhjsu0MT+`cyihOmD}-38FvSU>A1rCi9v!E z>(wWI-9Y2J8fG80r_1u*#>WSyz>y&^jwFlm(-6SQa;4#DcbEwK#PA@jUZL5#a6-#u^RkMVZ{iau zC4*oSDf{ag<+S#!ux;8Cshej@(!1C4%s{l}%jyW0qQbWl$~ms#OsV0>rOeX1m@p$F zI)#IDhg^_A_|rEdCe;GfC@@Ha4%T7GCHw(DEmLyY@s(d!OCEQ%qpr}MO}2D9cmDhQ zbO(jZ)WdPztWrBZYtiC&{Zf%oPx89LdXgrI_Uza^!sJ zCC+okU=zF*O5e}*r7n-M{3tC|L_GLSpSFO(B0ZJHcq?u*>1v~*CUwovA69J#~Jbh zp92pVmM&sglzc32dI+5vY-Hxz8!zKip&~1b+w!%uQHpriCB#L5n=7z+UkG18ijXQ9 z4i0-;fR_Of@7U{q|buKrt&Qn@0OF4$s+Xg7ky_l za2bUi;VpFA597@-pr|k+E30iNtag$??O>x47P*>vsLh681F7+&z{1|7iXbKTzmBwH zJatpxDVw-JtZvR$Hc`$cphtMx*zu(C#4nn9In2CNoOm9q;8qZu%951>KAf#Us4Ors z$dPf0S7+^yQR*^&tol~eC;Y%=O&cdTkq}k3baFWWCkfNqTfX|Emsm*T8jM!@Ic9y z5UQQCq)xyjs$h}G{{uo;wA+!O5Kcttq%F%z{c)ID7YxT~aIu8QzPXgLWG;TqUleOd zQ`@8!AnU2*-9;UGtZaCD1*H*dGYllGhn@#p=Cm4M3(;J-%-;lfC|eSAx3L(6fVrm> zVxGrZ7|OMn-^GfuFRjMQkW$g^yLecda32YjeSL^?;$!gKkzLjsxiFJ;=9^|ehFltW z5gB)$7dH8p#CCgr8xwY=N6h-}pwM2>d@~P4E@6tdNA6x+IDL-FeRwjDaDUkeiq9;P zZ+7XGL7?B`G$>3{fpZC)s3rwT8FDvU`Qf-UJb*9x;W>GsQ(ZPGL+QTm>PuP=mGgz8 z>!b3mqmCRqWm3@G{-Xy;4LX|#XY=OdgUurs@0nY$xEywg6g*OtS*Ny~AGjmqy#Zpy ziaYcMQ~A0f4}{Gk8A8POF~UU}hZSMSvFmd#WMJX&HE6jCm&`!Eg2}5(09bUdWGMzX zrl=A$9k~9sdI&+((2CX|Cfqj4>&ux!8H=uxrMxQUoR2FGQF%ifKk@VVFtrx`G_|`z zNWaPaT$whMig5J3Pa`5KXACThg?IE=?s8PTtx><9GqhBZ0x3a_3s6#^o4_v?v5pzE zPSwa9m4@`M@^+b3yV3~A=)GN4&Squ6u{$a&o)vv%(ku|wcWHrWx6mZmKMlYajvc-1 z2>%4p=ONZ}Sa^1V=yDQ^aj7x%)wmQyKbOG@@ApjpDSwAa0vMU+Qw(*!K38Ut#6*mQ zx`HdvMh!KRtlS)6Z9?{v9e}g{fha4y{a^`UVk57hjgsW zp-KQ${`flZL_%r03l3TO6o@`iAt_?`yZL!1wsk*f>kx`w0-R4i4pkmhp^%9EDbrY# zA~AS@>|xJMk>Tr@GI?Ve9v;c}B`%Vfs>S^ETYQJV)|Nvn--N8DQ9u2xPEaii~!jaX;0+YR8B0T*&U#-8$`%zNpW>@aCv#B_^}dM zzBv&WQw(vFs>nr(UJs^pKdtLPHWUFSBd@A5=pO#E-H7VFz((fxp7U_dDyALfDIA&5Q~d9yXg!#LtB=_@ zCqF!OEl!n#jycgE#?9M*q{HLn0vJAJU~6dSWqhCyrGU9Ba(;n*Hha+Ooa)rj<|lW0 z7}RHs%`~Y;V*JmBGN+wtc@u>UZG=~EAoLb(0QWsTUS63+Img3*(5SuM7qW1Lu$B@l z8Gaz|CI=kDgg5m7KQa<{T9Ga%)E39J(4bT6O(l9np4{itvF#Sal@GiZ99i$1GJC-n z`GNR$QZTGS7lI=`)kco>4~yE`_AKg5 zVv2NQiD_hy(ZiHJb2z*F^vKX7KpRA?065;()LZ;6CpiohbQL?ZI^7D|o-*f!ehEGn z(_*>9tq@xK?+b)F;UzGZh@gpiEoeUlqSJl;_^A`1x?1Nv(|r%ifilDlw3aX!1R~K& z+d+=xBv9EKlm`u5G?r{#pPEhX%J{Jla?Bq ziz5TV z)7$d;kFvi?IP2V9dai%g*Ao!cMmJa1F31`!gKyaGpcKB_zkuOMFNuKkM&xdc4TA(u z7kD0T7wK=Is=8MNkOv~$xsvALlHH!myYst`ADF&;KS7yCww=E8(nFZFgovYvK%7@^ z{c$1I0vuOV$^@{=yJJr}RS8>XttKFf!XAF>o|uH&Zp!qVyz z`c8${2)mKOY%ac`vAD-@eI6`8A9~AABeu34 zEOFy6aO@PK1d4boR6@Lb5qLSllPCb?Qm&n)jAB7+<;Kf5tAOmk!n-}sRS3s;*Xs%d zzKvq;Ao4C3@_#_9Q6Yp9e6Hmt!{$LX&D%|us)+TY@DjpSN=CTe_)4*EYtsSS2H zf!yLF+}(KZ1#iI67j9jm&;nls{V)5qh#+c{Th3$X|2Z^PVh*-=bK&&26@TWm(S4j9}TmycBa?0QY9n!!fkEXQ9pKS;7niI}!QOF3P3wS;jlle6*!c zGaw@vw!-{gYKE8p_wEtndQ%rz!$d@n!Qf+v3wFA(Kj()~mV|q+EboiJ^)ANZyPKnj zTa>j$;M(G>WA1omjjHIrCaY;3pr~k2jbC5qlF0BT$trLQfo+vTnh@%`hcNEU#Rtk*m9LBC{{O%(`pBC{c`$uhY*gn0+6iT=SD!4 zafLI7P98XM_&8BUAsH{Nb#$4~)hy+{h%#DxbA2d4T`;-)dOXg;k^>O*oL%@b8%Vcmc^@o$)R6k_!VRxv@W ziiuhIRu3wvf77H?FQd-v2qZqjX_&S7K_%LJ%L0@=N^R0T=y%5$xk?Q?q*x@?eWB1EN_cj6E3w?&(`^)NP2W=cd5 zw@KvLF|}(AJ(Uh;fxUZ|s6V*mijn_o2^mS5GkZyxC@&HL!J{yQHTsdg2jtp}+2BZa2_ z=dt!x&m~4S$OaaM$txsJ`Jbd~?iqdMr+yaT*v zmiBfoI7!Esd7<4nHWj%S;83-Dzr-UPTj+5!hxgNicDhwm4b;65$>e@(OT?Wl&;UFo zc1w0fE-e#slN>1Sqk$>5jK62bUd!~1KL;KbdqIL470)r1(&Xw}2?S_kaz?LnOlA51fS0FKur$#w&SCtrW23 zZp-K-y#)djs8q(yheZ!n5b7#NZE7*sRrEUMt7C7diqJJYdFj`yd8g{cX{{CRipN_A z0aa!ck64P@?=ieVhdnP>Z!NgRv0`u*bJ83+DCRVx9%J@Muky)Gy>jZrA$rpJ_fdaY z>2a}rK6o^f{z?r~tuAkb2dTs5PSLBlvbmpk1Y<_)5v6JEo;PCNlj~%YVU0Yp|K!QJ z!-r1nKXKslD+dykKzTbqxRREgO}d5I(V1p)kY?&&5*uxCHp0fO zv0~oJ-?u^bL1~z-K&)Rf@S%#<+>-as#6Mi!kMKMqkxV^$yJYYBncYG+oq1D*nvVoj ze}JcxLU0-6ujki@87llIrU+OL&|jMeU{3{uR!2g=zM;xoK)}M!$4?x4=;4DD#5b=o z7x!ObCq0AO*9kO@Pbm`o5z0;I1OEq_bh<(=_AWgCHdEAdD}u2-v=nOTQmAe*=7hK{ zLxu%|Z}PTvH;Ws)+<#*P`F5frv$iv%CEM+a<5p&!D9kD>eg&j!;aJ(I{b0lu=_d3M z@2Wid%lXQf@<}S3KywLz56!1O zPy3FmNps((o+vQbqA?-sEqgypw7J<>#Cjyo&+uvlf?-0WRPxSav{smEm9>Q9Px7mI z?AW_cA2qKu^P4;}o;xB5dp~b>csVKdCb__KvJ5d%2NN+?qU$@{NnAI9XfN|@UdGd3 z^(PX~_;y|@&4Kz!YY>51g1XJ)i!-P1MjzOFAisv6HuWxMZGozbHWW7A=r_lrVx^16 zy>WaK38g40VT&%C*ZOu7=K7EdWu?HX^1)-=U40^wLE~1T9SAd&0I_eYwDC2})d}bo zF4gA~4&qu|>A$ytA8@mkr?BKdyPgi>&LoSJim?L1iV1!Vi^qRK|&K00bx{nlW{(`euvIX?Hln)&69~XD4!mO z1)ia|U}_hDtCaT}jE*JF4f&!t^)*AyN9^z19MZ4xs}?0TA*;DmYy1uE!;U>FUnigj z@8cZtQv!%JbI8uW;_y-GY_DH>`e?P?(ogwKEFFpH^w1y4Z=v4Qc+iYdazfej-fu)& zcONZ8y45Q$53`@SG@lla$}?~CK;mD${)0SXO-)p>Dvmve$WG0XU*Zq(n9vd_;Gu5+ zXMB+p9u`|Gqv%Z_S4~FVB#>Fk@_?*kL%ep0kA{u&Oa+|KXz~5lA~P0)tO$N215k+O9yFmFT+I zzp6$TkGL29OsLe{%yj681-pjatP;dt112jpZ%~8swU;5%_x!Y+#C!R{s4t^S(pT5J z>dK1s<1A^pD+?j3uOi0gS0NO2Wz+Cs3a2mSUPcBiFYt1>S|UEl;VGpoJGg~ES9Z{* z7^)=>e*=U}6KhoF6q=SE+}u}d!Vigdm?<%FtK9vd7Gi^(2hff#MFwVe z`M;U8^_FRBwV!%C)2a?szFNWP%~`J!4OG~@gC0pn_z2CQE-jOJHF)VPaZmO=){Sx zxLg=!WV_Gh(`O9Mki2RRfFzVLK>g^mPFR#$Qo%j%DJmT*P)7$FG*IK8c=hU|zU4!k zwI3|ofmsK|V>F7E3;55no6c!beEyw`#Wd3q@iO4XumX5ipIGk;iQzh!Zk*7^;g_Y7_V77(NG_VjD?c;+5V$v8Nn6Q%as1|E6>qW-2 z?-ZSv0_b0$Y{5S1SWDY^1w&n2vu%^sD*XQ<4#PX2pXnU4RrT&Ayxv>Y#e%b-#2c!Q z*Y~gD-QL2sMQP>lkd8$em}R=rjN1%l8`o5PLUW?IRY-%uIs9S}pCc?ipHZm^R?|UM zJxR66Dm)m_1zX8)>?E&f`)uA#*#HtdHtjF@bY9rKV;j-&)j9Q7{p>)Aa4AbA@9C{l zSZacdD5Wa9%gAD!Baz16hl+~Qf9hCgJ~rG+nI3tNWU2%$KZ#G67PyhcW7{q&#CqZa)rg)!;31%4uHF$~3+Iz~zS`gq|s8 zS){nXZ>I>36~l-rWHlC~?Sxpl#HO*gBKI5+Z1t5rVQCxvc_A{!O!WGJSg}sXgm9#c zI1&;4&^@G56JGzAtMAvgJt$c;#`3Bp;^?$;R^q1lzYRIPs0$h5q9*j1B9ZevvqB8p zDfK2S??<3C#9!{T^!ccog|y6WYlGbU+LM_OY!)Yy(u1FzW@MB+y0x!n>V9{X27t^} zy)GmBi18j}L*kqmAg^~+&h)c95}=!nH%EML#t3{$i>2nEs~VvPBOSJL#|e6d*G?4s4) z6Vw-J0*Px)_XUMmG~S%co5dA0s#OYM1nQZsMQlB%bF%Sa&@GXx#la7<^_itzi!`^^ z;g`$2t6!hg#sVwl+3C5ng!In5-0on5)=`C1Wp-;ZptzPh*86)7oiL;35Pj@oJ@zox zhRR4O#nQF6GAuNrpVg5|QgflUIhlwLD8g}D9>n%IvP%w)1u9cN?kiJsA%{Q23i~dm zLY#$z;-DSY4H60rp=Gxvg$?@=Xc2uJl1n=ZoF7nn1^K4&xRFOfg33*m>VJXON~QdM zriGvOIXnp>oNb|Y614vWx^BA)*7S4R$2}cI!(Spak7V->p?+sTNrQRzQ z{gb~(x7>}bJMFdCr?(Xl3K5_3Hd8Vat?2yyDQo!&E}we_3VY@Jzb8s2;-u{IN?|N_$%UDq7s1w+kw)X0r4XZMzFFCVDEl_(iBU$=NVz1|Q5Z$g|IMTM zse=bkte)6^;K5W;(BN`{W&}?7DgqrsiD>M#^>nw!~W~N}X!9|8f_?+Q;IN1pVjncE|8K_kV@wd6h5aXPuK! z7n=C@02IHjBi&MEn!XfLQ4&BZfR*`U6a?8Bkv-ktX2w4Gyvt$=6dF=&(cw`{aS04| zwO3t`qE_wFQ3jIxeQsuK#YeP{E5U1-WxFw0Nq|1d3URNjROOiuYb_oNB8?A0Hm~0+ zwrkzPwUM)#i@xgA`{3G>>g?Ok;j^tE$s(DkDP4M3#-HqRHi-n^w5g^5sE0UGk`7{z z=#G3(`Go+b`NjJ+XGo5|GXGp+Oj5%2FZ;QydQfRl0s8Sg$aq8tR*uLv$Y+shJu1J= zOB*V^Irk%ZF3b>YH!psM`TjHyuH?aOJE!cn{U;B_F*|kQ#QrO9yG|>+6Z;KXKDmDG z)`0A3UMKO~1fDQ~GOCvSIamKAEoEa;ZPivX&e}M)u|Vr14B}IyHahgWH0&s8hZ%1d zGK=2}Yna02&ojy%q%;77UdHg=m<)c4lMmMzxw$7eoDS$$2$wmemPoN#eJC&TET&8K zQcGFO1kR9^<l%El(-Fk`(OsVJ56{q>qwG89@P=u^Xg4)rd>APN zB&j!Z?AgB2h4KvQEEzRZcM8CR9_!E&khoou>%XI=^{?+vF|d5zKq$^5reix_u% zD5XM8+$2K(e_{tgE+M+CGg{`oZ!+u|Sw$e5c{fwJC`3y`c7mMXiy`#pS|G)7AwlR#eukZoI@a>vcr*onkvun!0{Z)QHvxjp3r7<8tB70ZbP{a zFZTnPbb8xrV`lmvtqZHDWm)Oo*)$CBRzmrU{4g>r$2jiq%yrmYE_}uQa(?P*`rvz` zz93Ux6oL8OynInOk8f%UM~vHG%}}=2={fH46h>C`oCW?d5Q*T{*etbYvKO_K_4PnT zwLSm^V!*SQk<-7O-&F)s*FDhDj}=hjFQ&SWsFd@04!a<{%y7vp*ZTgM&O$MY% zzr*}plu6mUBGO5EU*e~e5j2^P6jXbpzicKdYB9Eu13~l`c~W&o8l+3*Je9w=E$3*h z6GbA830LxFGdnEfz)Cz0!g5!Ew+ui#6jg?{gvh{`=OYyY+Z$@C5vW&o>1cJNEY1^^*X<$I{e-Di-=U>V zE5g|60j*g0{dihd3<8x0*#zFut~{GC+)9V-9nMZhu0nh)V%LuWa3zhTJ$daO!%~37 zBiPA|^Q)KB1ncPj!$&A;j5cJJfnWO>o-rx33<0CD-eBMbJlMo_5&C6N6Bhsn8qskT z0h6ve!5pitFnm7Kh&QZiO_QB+DttvmImbr{QvvFB?}NX4xMwpuW(laWw0)%>C;efi zLnA`Qqkmn(?fE&$->8DgT@te21l(YMQR*#2_337)j*ra)x*b32?Ug9}`_`kiWR+h4 zH^;<+NEScIFPbMLNK*{aX#mMmm`ly=ML=Bje(IB4Vl$_W)hQBYZo==ETaq$oi%{RC zbxQVrh^L6YxVXLaJIm;l`!Pe(VPlqFI`km{@F}JeGr^5q38kXc z%NMus?*FW!H3E5+s#^qkS@|fFhDzw?25vvcIS!3v7y~Qd`ZGKb+jheHa)B1J2?6Nq z*|@kDm6eJNyNZkTUW#CjU5iT5|K-t0%xz*yv)9QWKFV`aeHIpGF9O}kp@LiO-J(|X zUVquib#+nk1dqDEc61|m`lsx+s)enR5Ul%}y;F}fh^)l*A?C}bn;swA3S(?9r(^?k zg`U6kyWF9Mf^D-G&l5Ey+UOJ8*pfGj&jUP;p-kAtw5}~CP;(|QWmmz*5;n9I6n8i4 zbZgUV&^}js9`F1abBrYtCXjyfT*CZF>F-b7kR%bueKdIS`jdd9GL8id!u8(f@|4PY zvWtH@zN0_R!bO*+9W{%8i(nO@j9_gR!;K-VLX7>ly7pWCJt(HM#eDBq@?3;kha*!P z>)}^Ux8#AoWqt1E#k^KBebdvbOOy>b6W0mx81>)uf?rVc?%E0OT|@Ga{cEG?6{T?_ zjrad79w$mMxq#`$D9UfraU`enBwlY>uOsnHpewVFobp$AWq#)H$>aM^9k@I~(@B?* zc+AN%18R2G)h={8Q(0}9&z$Jp;IzDRn6!Lw1wZF3+aoWY2X5g(es#iWBj0{|)Zbo} z6lVML>8Z&YKL&lw>T03#7->XM|zg}L|DquEn=YGCH?{tFY5R&)H|)x zn)|;$BV~lyQ2evGV&s4q_iuF)i>l>WZKnC5tvgxuE_~tNc+#`Xfhk1MqR3`v z3elwb8icbR7l6vK4qlZ!H5mt75e8r7Gf8UfG`EhSEOrdVo4%d&sVq0;sL5vbu3&3K zt@A+sPUWyuY(p|zF^3^(D;B)E)M(hp+@dsXAoxd)U_2~XQYb;d*INxrKFAY(kScj) zG5G)^W2oD;p^#Qo=PFAwv{yo1x>FYP-hu!oER0g5nl9BOT14)T3RK|3JL8U)Q#xqqeM-gQayx+iY!0FJ1+=BO{ zKu_RFEa{ zK**q$MiH=A`=PZ3%{a(zt5BcaVVN&ywn?SDoQfI}zoZeM9*;PBU*Ou4y^7y2_r($% zvGO~XIX=}j@_r#B#W_(#C`Y`MimN%gS=Nfuxdzp)(v$-5^PC}wH3}%mr9HPMN}=1p z56uy@BR#9e5nO`+&+PtG0PP~cQ>YP)UmJAaXK7WD9 zRG3=252~`D_<($(_ka%a(G@tfW%vEn?$4{xPD5GQua7V1xZ{jf3BDU2y=4Evbz=$- zAIx=L#4q|JcrJ{N^*c#}mHZpP1+X}Yu1JU&Q3F8wR4Q_97iVUyL$CIH`rS1HGXM7p@P==oEq zGkp2urJ(Mf-4RVz(ELHCr7wMDoQ3*{BiG9m_3QPCCO&@RI(a^!ybFfc$b;btd$ogN zqBHZfAsXbwf15QGvFNQ|WtRa9!q+!ezJQiypZd_ptJD*&;HKs{76EVod*a)_=2M(f zB?^w`z52T^$$59o%wtYowC4xnr}D$U@VoKh%}YpCCeK%SySbfY-d$Fi$M8iSp)ADo zH)4gMUAkilb+F(_ZuSd)b11Qe+`f`g?t4_C!6W}{W*r%cDn9Kqj7Iq@lWFe1Hyl-A zX$6Gy{Ejk_IW61Ps_S=7_ftL@W9auNNc{VJuMefH9t(n22Up^mSssYFts-0Tu#aY} z#XNX6Xi75Ck1#$8%!hKhs}DIiHYz>)AftoI1k=Zk9BG|Q-ORi4ff6G})shwJ-kB#I zsog#`zhDCZeGW*BWmS9{tPH?dq{3q*y2XN+b9)EBE?b`AJ2{3E*6W!{kulmHOV z^VJM4+G|k$<>5#Ae3h@#bs@PI84<)r@a0whz9U3qb{zYzjJ@13F=^z=Zh?)P)bLRf z`F;rW5X=xqkiNUx7k=iYOgWOw&db3+1hoi+>GI({%op=oT*srtz{n6*_mLE0d-Jsy z@R}Qg*w|*9go_H8G*Wr};2}bvqD~#)GzZaXLno66`<%=|gor~x1Zzfyg8WxS!iVtYI$2XE4jnyk<)v4gs@8Q!-NwoarBu#P?=03OVP?M~ z(e#o;phO?s^->2HX2{B5Wkr1sGqq&5W&aC2mt|V*Z=fDJ|D`;W0!7Q@tGl3u z#!mi{ho=g2H9eK4wusjUm?7k7pjXEp9TMYOe}Oj&K9^RucH!*W*R&5`t$ElhxR{p& z1hS4+2n{maLHIZfIZ2IH!UPfp8-L?%kfbV=8lor6@9n?+JyO!#%3B~dO_eePf0g7d znM4bD@VF%U6IQQ~sTIaCTg08*tbYp(70n;^YY1ds$Ro~{+S1E2YvQ3Utlkm0gQslR z!`F~M5N6GPuEvNvdmfM?pQ8jv0e_oc-h^6|W$PB`kz-xPBk~!q+(KeCb(>pVqAl1e ze|0`6e{>IC=wMv7B+Mw447o)@FTD42eUKsnUHMlTp3QW+a(zO02+pk-tSF7e*&R!( zHmi&@_rDmopJ}5Py=@}u+!*OqHNBZ{n|ZU49p02bxt(4;cCkOiSgD1vQ6^0!%;hnh zVlkJBy_ksB{y~0M=ConSAlc6K>nnr0W`|A?X{HK%JsyohLC3uQUjA7;ZrorZ8C_($ z4o}Ml+WUw+)a7D=eWGotjuzMp1WU-rx~_=|n^2%2=69e>MFjWG%}>wm+8KEIHlyC5 zLT?-!K;g(L)C3E=^6Fx1#g{#Z|BwL3%i{i8$KHEh9oHbJHuSYeEQj007<#< zYrg9h;pm|Z5ZR`bT8ifW6`s@`Y;1_>(WnuOD+G>yp3x8`lb51Ox!BLvs3Ky)RyFYO zTK<7Y$#U$=(S!5bWmOWwpV#%=#3v2k($lfBa2~i;!49iKt}zPAbqoy|#D(0Ep^q^1 zKj4xIA0KqqzEWIeh{X;z@(m2?G^k?`Y{jXHxO(On2d;Vb#=m5&YuS{V^16>($0l** z?b^A=a_tDK7OwB$85H#$>!%ALcb)HZ-g;cl9~3JJvf0&}PIS>CCZes%mijJ!M~MR& z$0)48%X%vh3Td(LR(_%irzibJ9zi$;4XtY~gLWdQXkY9akU7_@c`$A*Nb5Nr?0>+c z>8Y7*Rk8K)B_Z%#0I<^zUY^exB^0+u&o^J1@x_H<_+U`%Djp0gyX*}{y~xq4k2CcG zEI2l%SL&{E*U#et3#*u?g5MnLtx$^wIrybqKHHB`fsjwkl{ zEI=$Pgq!6%w$w@kQeq{S${BL0Yp}x}N=!PUk z!R#cj%_`yV;c=f0|&I9adS@mH*Tu7(; zp!k2z`!b#kaVjXhwb%&aWb~g=rcVje&*E`~>FK!%*m!kMBI>Bw>KbCpIVI9@fE)*J$utF5asb8-UXy;gX_-5BQsPcASI#wjU(PN7nX zro}jRjYb6FWquer_Y7HZvIWx!`_Qz^Dqvs8=)&??T}fZw&hYY}R%TgztvSXK#r2OfjzI7ESr*DlMc?j$9_7-{b6pi@n<%7mCOFYg z`$RMWgfSMukz?z$NK_AqxXsp3laD_bMUj+1_JG(^OqPT7PRkg5fmLSd=l0ALr_*Ql%-*MB3^QJF3|T` z*A;p^2n)?UpRY=K1_NFt?3Bk2aE{gAWWeMCifo@|S{i@OFJ5TfBpt0D@Eu@Fizfa_ z%7PT{sVz}Rg}|=Z|4Oa?N5-McJ7$-ni3pGX;FLq^fA_tif*)l(vL=#dI);q`PDSLu zA!Klz;W3xBRFx6#YIJ?|Kl4YOH4Ujh;Wn){4%FAA@Vi-Mj_K9c%SPk zBW9};BToN$EoZo2Z}D9W?{ESrjZU)gjJG>OnW#rR+DY!qT@rFJtS2Gf{R!_!HTBHa zyM~J%!ke9Gj3&XB{O%ihFjj^~?0Y?fQsvkpSPju@38m$x!Ko;juj7@R9n6125q>F( zC98X{?|GFScoWWSlaj+gNwt4`9>3XGf}+wbnu3h%xVjX;eHJfow6Q4rKbvWc zkOwIksCF!_7N7hMbgo%HaUlt58h~81s%wq(lMb2^v@ zu$^Hu!BB*OocI)Om+%AahGK0=i>~j1j25;G>`oyhWJ*HnEuxt&xc(v*(cJ9{-FWSktou2XG zcJ*<@3zQx5btvVQ)kIju{_@T@~-WRArm)uHvI4S5z9#< zxiNryWBj%r*PHO9^PC0-BMak4N@NhLdrtx%V`pZcjJi-!tobmKN5i=w@4^$-Vp|zl@K*wg|h9 z>;EsDuz-H3tI6{JoJSC~v2t9Z*t;0-{dmh#i%`-n+G3vUbXV&s%Xt~>`;NTY$D3}J zy68>*iLXrnZ)k;OEH+fJ5IJuFqSlU@O>p3Q7U(s6ug_mW^upAM1DDg<>AB*)wxUZp z2`Bztp46=%??eDOhF70df2hR1y}$QcSXkKn@@Bzi~m-Ul%RWl60iV27aZ)lne! zWjvhUwg1G)%lFeW-F56^M9rZ)wN7egv3iUSUc_LU=7@}?@_6E1M+ZQ<6ky}FK zSz>hR`0*o$4-Cg3O8#gCHEtYL&1%$B$YT_WTvct4l#8$IF<0 zhNrNUkkq>r<0vl%Gj3Tk>Nq`JRFUq*tFY_@ibMO#!CM~W^LYe=m|Ys!L%seJu!t~k zqizb`-SwytK_|U9|DBOB&rrbP`pjQhMM7JZ95W0Ufvn;-BEc#b? z^70CA#39CcEw2?9YFZqt;pB)-tf-`cB)4s61UZrVJiayZj)QAaZ3rwCI=;deOP))} zVDL{l?+c7~MdE{4~%0DKid&ebmNhaSJSPV&kDd+Mhq+ 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

wB^}MR0 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%0A>`Cv81{E`~GHK8$%A(Ej3x!>(_=QAvh%vR*( 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≤x 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ℜ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≶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

>#?3Wz@2K@`5BuZGSrvto3~O~+J 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ྻrcQJ@uP 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%0ARW+2>$Iq(5Ez2*%onynHIPDlnw3 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

    N#IRc^W!V$F1h4p-j3+wrYBf@Rr2+Wvr1ZGD$ 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 YF=e~zh-*;FDA*}@{G=rw7d!j^0U}9RwEzGB literal 0 HcmV?d00001 diff --git a/src/dep/src/sqlite/alter.c b/src/dep/src/sqlite/alter.c new file mode 100644 index 0000000..128f3d6 --- /dev/null +++ b/src/dep/src/sqlite/alter.c @@ -0,0 +1,575 @@ +/* +** 2005 February 15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains C code routines that used to generate VDBE code +** that implements the ALTER TABLE command. +** +** $Id: alter.c,v 1.22 2006/09/08 12:27:37 drh Exp $ +*/ +#include "sqliteInt.h" +#include + +/* +** The code in this file only exists if we are not omitting the +** ALTER TABLE logic from the build. +*/ +#ifndef SQLITE_OMIT_ALTERTABLE + + +/* +** This function is used by SQL generated to implement the +** ALTER TABLE command. The first argument is the text of a CREATE TABLE or +** CREATE INDEX command. The second is a table name. The table name in +** the CREATE TABLE or CREATE INDEX statement is replaced with the third +** argument and the result returned. Examples: +** +** sqlite_rename_table('CREATE TABLE abc(a, b, c)', 'def') +** -> 'CREATE TABLE def(a, b, c)' +** +** sqlite_rename_table('CREATE INDEX i ON abc(a)', 'def') +** -> 'CREATE INDEX i ON def(a, b, c)' +*/ +static void renameTableFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + unsigned char const *zSql = sqlite3_value_text(argv[0]); + unsigned char const *zTableName = sqlite3_value_text(argv[1]); + + int token; + Token tname; + unsigned char const *zCsr = zSql; + int len = 0; + char *zRet; + + /* The principle used to locate the table name in the CREATE TABLE + ** statement is that the table name is the first token that is immediatedly + ** followed by a left parenthesis - TK_LP. + */ + if( zSql ){ + do { + /* Store the token that zCsr points to in tname. */ + tname.z = zCsr; + tname.n = len; + + /* Advance zCsr to the next token. Store that token type in 'token', + ** and it's length in 'len' (to be used next iteration of this loop). + */ + do { + zCsr += len; + len = sqlite3GetToken(zCsr, &token); + } while( token==TK_SPACE ); + assert( len>0 ); + } while( token!=TK_LP ); + + zRet = sqlite3MPrintf("%.*s%Q%s", tname.z - zSql, zSql, + zTableName, tname.z+tname.n); + sqlite3_result_text(context, zRet, -1, sqlite3FreeX); + } +} + +#ifndef SQLITE_OMIT_TRIGGER +/* This function is used by SQL generated to implement the +** ALTER TABLE command. The first argument is the text of a CREATE TRIGGER +** statement. The second is a table name. The table name in the CREATE +** TRIGGER statement is replaced with the third argument and the result +** returned. This is analagous to renameTableFunc() above, except for CREATE +** TRIGGER, not CREATE INDEX and CREATE TABLE. +*/ +static void renameTriggerFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + unsigned char const *zSql = sqlite3_value_text(argv[0]); + unsigned char const *zTableName = sqlite3_value_text(argv[1]); + + int token; + Token tname; + int dist = 3; + unsigned char const *zCsr = zSql; + int len = 0; + char *zRet; + + /* The principle used to locate the table name in the CREATE TRIGGER + ** statement is that the table name is the first token that is immediatedly + ** preceded by either TK_ON or TK_DOT and immediatedly followed by one + ** of TK_WHEN, TK_BEGIN or TK_FOR. + */ + if( zSql ){ + do { + /* Store the token that zCsr points to in tname. */ + tname.z = zCsr; + tname.n = len; + + /* Advance zCsr to the next token. Store that token type in 'token', + ** and it's length in 'len' (to be used next iteration of this loop). + */ + do { + zCsr += len; + len = sqlite3GetToken(zCsr, &token); + }while( token==TK_SPACE ); + assert( len>0 ); + + /* Variable 'dist' stores the number of tokens read since the most + ** recent TK_DOT or TK_ON. This means that when a WHEN, FOR or BEGIN + ** token is read and 'dist' equals 2, the condition stated above + ** to be met. + ** + ** Note that ON cannot be a database, table or column name, so + ** there is no need to worry about syntax like + ** "CREATE TRIGGER ... ON ON.ON BEGIN ..." etc. + */ + dist++; + if( token==TK_DOT || token==TK_ON ){ + dist = 0; + } + } while( dist!=2 || (token!=TK_WHEN && token!=TK_FOR && token!=TK_BEGIN) ); + + /* Variable tname now contains the token that is the old table-name + ** in the CREATE TRIGGER statement. + */ + zRet = sqlite3MPrintf("%.*s%Q%s", tname.z - zSql, zSql, + zTableName, tname.z+tname.n); + sqlite3_result_text(context, zRet, -1, sqlite3FreeX); + } +} +#endif /* !SQLITE_OMIT_TRIGGER */ + +/* +** Register built-in functions used to help implement ALTER TABLE +*/ +void sqlite3AlterFunctions(sqlite3 *db){ + static const struct { + char *zName; + signed char nArg; + void (*xFunc)(sqlite3_context*,int,sqlite3_value **); + } aFuncs[] = { + { "sqlite_rename_table", 2, renameTableFunc}, +#ifndef SQLITE_OMIT_TRIGGER + { "sqlite_rename_trigger", 2, renameTriggerFunc}, +#endif + }; + int i; + + for(i=0; idb->aDb[1].pSchema; /* Temp db schema */ + + /* If the table is not located in the temp-db (in which case NULL is + ** returned, loop through the tables list of triggers. For each trigger + ** that is not part of the temp-db schema, add a clause to the WHERE + ** expression being built up in zWhere. + */ + if( pTab->pSchema!=pTempSchema ){ + for( pTrig=pTab->pTrigger; pTrig; pTrig=pTrig->pNext ){ + if( pTrig->pSchema==pTempSchema ){ + if( !zWhere ){ + zWhere = sqlite3MPrintf("name=%Q", pTrig->name); + }else{ + tmp = zWhere; + zWhere = sqlite3MPrintf("%s OR name=%Q", zWhere, pTrig->name); + sqliteFree(tmp); + } + } + } + } + return zWhere; +} + +/* +** Generate code to drop and reload the internal representation of table +** pTab from the database, including triggers and temporary triggers. +** Argument zName is the name of the table in the database schema at +** the time the generated code is executed. This can be different from +** pTab->zName if this function is being called to code part of an +** "ALTER TABLE RENAME TO" statement. +*/ +static void reloadTableSchema(Parse *pParse, Table *pTab, const char *zName){ + Vdbe *v; + char *zWhere; + int iDb; /* Index of database containing pTab */ +#ifndef SQLITE_OMIT_TRIGGER + Trigger *pTrig; +#endif + + v = sqlite3GetVdbe(pParse); + if( !v ) return; + iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); + assert( iDb>=0 ); + +#ifndef SQLITE_OMIT_TRIGGER + /* Drop any table triggers from the internal schema. */ + for(pTrig=pTab->pTrigger; pTrig; pTrig=pTrig->pNext){ + int iTrigDb = sqlite3SchemaToIndex(pParse->db, pTrig->pSchema); + assert( iTrigDb==iDb || iTrigDb==1 ); + sqlite3VdbeOp3(v, OP_DropTrigger, iTrigDb, 0, pTrig->name, 0); + } +#endif + + /* Drop the table and index from the internal schema */ + sqlite3VdbeOp3(v, OP_DropTable, iDb, 0, pTab->zName, 0); + + /* Reload the table, index and permanent trigger schemas. */ + zWhere = sqlite3MPrintf("tbl_name=%Q", zName); + if( !zWhere ) return; + sqlite3VdbeOp3(v, OP_ParseSchema, iDb, 0, zWhere, P3_DYNAMIC); + +#ifndef SQLITE_OMIT_TRIGGER + /* Now, if the table is not stored in the temp database, reload any temp + ** triggers. Don't use IN(...) in case SQLITE_OMIT_SUBQUERY is defined. + */ + if( (zWhere=whereTempTriggers(pParse, pTab))!=0 ){ + sqlite3VdbeOp3(v, OP_ParseSchema, 1, 0, zWhere, P3_DYNAMIC); + } +#endif +} + +/* +** Generate code to implement the "ALTER TABLE xxx RENAME TO yyy" +** command. +*/ +void sqlite3AlterRenameTable( + Parse *pParse, /* Parser context. */ + SrcList *pSrc, /* The table to rename. */ + Token *pName /* The new table name. */ +){ + int iDb; /* Database that contains the table */ + char *zDb; /* Name of database iDb */ + Table *pTab; /* Table being renamed */ + char *zName = 0; /* NULL-terminated version of pName */ + sqlite3 *db = pParse->db; /* Database connection */ + Vdbe *v; +#ifndef SQLITE_OMIT_TRIGGER + char *zWhere = 0; /* Where clause to locate temp triggers */ +#endif + + if( sqlite3MallocFailed() ) goto exit_rename_table; + assert( pSrc->nSrc==1 ); + + pTab = sqlite3LocateTable(pParse, pSrc->a[0].zName, pSrc->a[0].zDatabase); + if( !pTab ) goto exit_rename_table; +#ifndef SQLITE_OMIT_VIRTUALTABLE + if( IsVirtual(pTab) ){ + sqlite3ErrorMsg(pParse, "virtual tables may not be altered"); + goto exit_rename_table; + } +#endif + iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); + zDb = db->aDb[iDb].zName; + + /* Get a NULL terminated version of the new table name. */ + zName = sqlite3NameFromToken(pName); + if( !zName ) goto exit_rename_table; + + /* Check that a table or index named 'zName' does not already exist + ** in database iDb. If so, this is an error. + */ + if( sqlite3FindTable(db, zName, zDb) || sqlite3FindIndex(db, zName, zDb) ){ + sqlite3ErrorMsg(pParse, + "there is already another table or index with this name: %s", zName); + goto exit_rename_table; + } + + /* Make sure it is not a system table being altered, or a reserved name + ** that the table is being renamed to. + */ + if( strlen(pTab->zName)>6 && 0==sqlite3StrNICmp(pTab->zName, "sqlite_", 7) ){ + sqlite3ErrorMsg(pParse, "table %s may not be altered", pTab->zName); + goto exit_rename_table; + } + if( SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){ + goto exit_rename_table; + } + +#ifndef SQLITE_OMIT_AUTHORIZATION + /* Invoke the authorization callback. */ + if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){ + goto exit_rename_table; + } +#endif + + /* Begin a transaction and code the VerifyCookie for database iDb. + ** Then modify the schema cookie (since the ALTER TABLE modifies the + ** schema). + */ + v = sqlite3GetVdbe(pParse); + if( v==0 ){ + goto exit_rename_table; + } + sqlite3BeginWriteOperation(pParse, 0, iDb); + sqlite3ChangeCookie(db, v, iDb); + + /* Modify the sqlite_master table to use the new table name. */ + sqlite3NestedParse(pParse, + "UPDATE %Q.%s SET " +#ifdef SQLITE_OMIT_TRIGGER + "sql = sqlite_rename_table(sql, %Q), " +#else + "sql = CASE " + "WHEN type = 'trigger' THEN sqlite_rename_trigger(sql, %Q)" + "ELSE sqlite_rename_table(sql, %Q) END, " +#endif + "tbl_name = %Q, " + "name = CASE " + "WHEN type='table' THEN %Q " + "WHEN name LIKE 'sqlite_autoindex%%' AND type='index' THEN " + "'sqlite_autoindex_' || %Q || substr(name, %d+18,10) " + "ELSE name END " + "WHERE tbl_name=%Q AND " + "(type='table' OR type='index' OR type='trigger');", + zDb, SCHEMA_TABLE(iDb), zName, zName, zName, +#ifndef SQLITE_OMIT_TRIGGER + zName, +#endif + zName, strlen(pTab->zName), pTab->zName + ); + +#ifndef SQLITE_OMIT_AUTOINCREMENT + /* If the sqlite_sequence table exists in this database, then update + ** it with the new table name. + */ + if( sqlite3FindTable(db, "sqlite_sequence", zDb) ){ + sqlite3NestedParse(pParse, + "UPDATE %Q.sqlite_sequence set name = %Q WHERE name = %Q", + zDb, zName, pTab->zName); + } +#endif + +#ifndef SQLITE_OMIT_TRIGGER + /* If there are TEMP triggers on this table, modify the sqlite_temp_master + ** table. Don't do this if the table being ALTERed is itself located in + ** the temp database. + */ + if( (zWhere=whereTempTriggers(pParse, pTab))!=0 ){ + sqlite3NestedParse(pParse, + "UPDATE sqlite_temp_master SET " + "sql = sqlite_rename_trigger(sql, %Q), " + "tbl_name = %Q " + "WHERE %s;", zName, zName, zWhere); + sqliteFree(zWhere); + } +#endif + + /* Drop and reload the internal table schema. */ + reloadTableSchema(pParse, pTab, zName); + +exit_rename_table: + sqlite3SrcListDelete(pSrc); + sqliteFree(zName); +} + + +/* +** This function is called after an "ALTER TABLE ... ADD" statement +** has been parsed. Argument pColDef contains the text of the new +** column definition. +** +** The Table structure pParse->pNewTable was extended to include +** the new column during parsing. +*/ +void sqlite3AlterFinishAddColumn(Parse *pParse, Token *pColDef){ + Table *pNew; /* Copy of pParse->pNewTable */ + Table *pTab; /* Table being altered */ + int iDb; /* Database number */ + const char *zDb; /* Database name */ + const char *zTab; /* Table name */ + char *zCol; /* Null-terminated column definition */ + Column *pCol; /* The new column */ + Expr *pDflt; /* Default value for the new column */ + + if( pParse->nErr ) return; + pNew = pParse->pNewTable; + assert( pNew ); + + iDb = sqlite3SchemaToIndex(pParse->db, pNew->pSchema); + zDb = pParse->db->aDb[iDb].zName; + zTab = pNew->zName; + pCol = &pNew->aCol[pNew->nCol-1]; + pDflt = pCol->pDflt; + pTab = sqlite3FindTable(pParse->db, zTab, zDb); + assert( pTab ); + +#ifndef SQLITE_OMIT_AUTHORIZATION + /* Invoke the authorization callback. */ + if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){ + return; + } +#endif + + /* If the default value for the new column was specified with a + ** literal NULL, then set pDflt to 0. This simplifies checking + ** for an SQL NULL default below. + */ + if( pDflt && pDflt->op==TK_NULL ){ + pDflt = 0; + } + + /* Check that the new column is not specified as PRIMARY KEY or UNIQUE. + ** If there is a NOT NULL constraint, then the default value for the + ** column must not be NULL. + */ + if( pCol->isPrimKey ){ + sqlite3ErrorMsg(pParse, "Cannot add a PRIMARY KEY column"); + return; + } + if( pNew->pIndex ){ + sqlite3ErrorMsg(pParse, "Cannot add a UNIQUE column"); + return; + } + if( pCol->notNull && !pDflt ){ + sqlite3ErrorMsg(pParse, + "Cannot add a NOT NULL column with default value NULL"); + return; + } + + /* Ensure the default expression is something that sqlite3ValueFromExpr() + ** can handle (i.e. not CURRENT_TIME etc.) + */ + if( pDflt ){ + sqlite3_value *pVal; + if( sqlite3ValueFromExpr(pDflt, SQLITE_UTF8, SQLITE_AFF_NONE, &pVal) ){ + /* malloc() has failed */ + return; + } + if( !pVal ){ + sqlite3ErrorMsg(pParse, "Cannot add a column with non-constant default"); + return; + } + sqlite3ValueFree(pVal); + } + + /* Modify the CREATE TABLE statement. */ + zCol = sqliteStrNDup((char*)pColDef->z, pColDef->n); + if( zCol ){ + char *zEnd = &zCol[pColDef->n-1]; + while( (zEnd>zCol && *zEnd==';') || isspace(*(unsigned char *)zEnd) ){ + *zEnd-- = '\0'; + } + sqlite3NestedParse(pParse, + "UPDATE %Q.%s SET " + "sql = substr(sql,1,%d) || ', ' || %Q || substr(sql,%d,length(sql)) " + "WHERE type = 'table' AND name = %Q", + zDb, SCHEMA_TABLE(iDb), pNew->addColOffset, zCol, pNew->addColOffset+1, + zTab + ); + sqliteFree(zCol); + } + + /* If the default value of the new column is NULL, then set the file + ** format to 2. If the default value of the new column is not NULL, + ** the file format becomes 3. + */ + sqlite3MinimumFileFormat(pParse, iDb, pDflt ? 3 : 2); + + /* Reload the schema of the modified table. */ + reloadTableSchema(pParse, pTab, pTab->zName); +} + +/* +** This function is called by the parser after the table-name in +** an "ALTER TABLE ADD" statement is parsed. Argument +** pSrc is the full-name of the table being altered. +** +** This routine makes a (partial) copy of the Table structure +** for the table being altered and sets Parse.pNewTable to point +** to it. Routines called by the parser as the column definition +** is parsed (i.e. sqlite3AddColumn()) add the new Column data to +** the copy. The copy of the Table structure is deleted by tokenize.c +** after parsing is finished. +** +** Routine sqlite3AlterFinishAddColumn() will be called to complete +** coding the "ALTER TABLE ... ADD" statement. +*/ +void sqlite3AlterBeginAddColumn(Parse *pParse, SrcList *pSrc){ + Table *pNew; + Table *pTab; + Vdbe *v; + int iDb; + int i; + int nAlloc; + + /* Look up the table being altered. */ + assert( pParse->pNewTable==0 ); + if( sqlite3MallocFailed() ) goto exit_begin_add_column; + pTab = sqlite3LocateTable(pParse, pSrc->a[0].zName, pSrc->a[0].zDatabase); + if( !pTab ) goto exit_begin_add_column; + +#ifndef SQLITE_OMIT_VIRTUALTABLE + if( IsVirtual(pTab) ){ + sqlite3ErrorMsg(pParse, "virtual tables may not be altered"); + goto exit_begin_add_column; + } +#endif + + /* Make sure this is not an attempt to ALTER a view. */ + if( pTab->pSelect ){ + sqlite3ErrorMsg(pParse, "Cannot add a column to a view"); + goto exit_begin_add_column; + } + + assert( pTab->addColOffset>0 ); + iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); + + /* Put a copy of the Table struct in Parse.pNewTable for the + ** sqlite3AddColumn() function and friends to modify. + */ + pNew = (Table *)sqliteMalloc(sizeof(Table)); + if( !pNew ) goto exit_begin_add_column; + pParse->pNewTable = pNew; + pNew->nRef = 1; + pNew->nCol = pTab->nCol; + assert( pNew->nCol>0 ); + nAlloc = (((pNew->nCol-1)/8)*8)+8; + assert( nAlloc>=pNew->nCol && nAlloc%8==0 && nAlloc-pNew->nCol<8 ); + pNew->aCol = (Column *)sqliteMalloc(sizeof(Column)*nAlloc); + pNew->zName = sqliteStrDup(pTab->zName); + if( !pNew->aCol || !pNew->zName ){ + goto exit_begin_add_column; + } + memcpy(pNew->aCol, pTab->aCol, sizeof(Column)*pNew->nCol); + for(i=0; inCol; i++){ + Column *pCol = &pNew->aCol[i]; + pCol->zName = sqliteStrDup(pCol->zName); + pCol->zColl = 0; + pCol->zType = 0; + pCol->pDflt = 0; + } + pNew->pSchema = pParse->db->aDb[iDb].pSchema; + pNew->addColOffset = pTab->addColOffset; + pNew->nRef = 1; + + /* Begin a transaction and increment the schema cookie. */ + sqlite3BeginWriteOperation(pParse, 0, iDb); + v = sqlite3GetVdbe(pParse); + if( !v ) goto exit_begin_add_column; + sqlite3ChangeCookie(pParse->db, v, iDb); + +exit_begin_add_column: + sqlite3SrcListDelete(pSrc); + return; +} +#endif /* SQLITE_ALTER_TABLE */ diff --git a/src/dep/src/sqlite/analyze.c b/src/dep/src/sqlite/analyze.c new file mode 100644 index 0000000..3d27134 --- /dev/null +++ b/src/dep/src/sqlite/analyze.c @@ -0,0 +1,403 @@ +/* +** 2005 July 8 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains code associated with the ANALYZE command. +** +** @(#) $Id: analyze.c,v 1.16 2006/01/10 17:58:23 danielk1977 Exp $ +*/ +#ifndef SQLITE_OMIT_ANALYZE +#include "sqliteInt.h" + +/* +** This routine generates code that opens the sqlite_stat1 table on cursor +** iStatCur. +** +** If the sqlite_stat1 tables does not previously exist, it is created. +** If it does previously exist, all entires associated with table zWhere +** are removed. If zWhere==0 then all entries are removed. +*/ +static void openStatTable( + Parse *pParse, /* Parsing context */ + int iDb, /* The database we are looking in */ + int iStatCur, /* Open the sqlite_stat1 table on this cursor */ + const char *zWhere /* Delete entries associated with this table */ +){ + sqlite3 *db = pParse->db; + Db *pDb; + int iRootPage; + Table *pStat; + Vdbe *v = sqlite3GetVdbe(pParse); + + pDb = &db->aDb[iDb]; + if( (pStat = sqlite3FindTable(db, "sqlite_stat1", pDb->zName))==0 ){ + /* The sqlite_stat1 tables does not exist. Create it. + ** Note that a side-effect of the CREATE TABLE statement is to leave + ** the rootpage of the new table on the top of the stack. This is + ** important because the OpenWrite opcode below will be needing it. */ + sqlite3NestedParse(pParse, + "CREATE TABLE %Q.sqlite_stat1(tbl,idx,stat)", + pDb->zName + ); + iRootPage = 0; /* Cause rootpage to be taken from top of stack */ + }else if( zWhere ){ + /* The sqlite_stat1 table exists. Delete all entries associated with + ** the table zWhere. */ + sqlite3NestedParse(pParse, + "DELETE FROM %Q.sqlite_stat1 WHERE tbl=%Q", + pDb->zName, zWhere + ); + iRootPage = pStat->tnum; + }else{ + /* The sqlite_stat1 table already exists. Delete all rows. */ + iRootPage = pStat->tnum; + sqlite3VdbeAddOp(v, OP_Clear, pStat->tnum, iDb); + } + + /* Open the sqlite_stat1 table for writing. Unless it was created + ** by this vdbe program, lock it for writing at the shared-cache level. + ** If this vdbe did create the sqlite_stat1 table, then it must have + ** already obtained a schema-lock, making the write-lock redundant. + */ + if( iRootPage>0 ){ + sqlite3TableLock(pParse, iDb, iRootPage, 1, "sqlite_stat1"); + } + sqlite3VdbeAddOp(v, OP_Integer, iDb, 0); + sqlite3VdbeAddOp(v, OP_OpenWrite, iStatCur, iRootPage); + sqlite3VdbeAddOp(v, OP_SetNumColumns, iStatCur, 3); +} + +/* +** Generate code to do an analysis of all indices associated with +** a single table. +*/ +static void analyzeOneTable( + Parse *pParse, /* Parser context */ + Table *pTab, /* Table whose indices are to be analyzed */ + int iStatCur, /* Cursor that writes to the sqlite_stat1 table */ + int iMem /* Available memory locations begin here */ +){ + Index *pIdx; /* An index to being analyzed */ + int iIdxCur; /* Cursor number for index being analyzed */ + int nCol; /* Number of columns in the index */ + Vdbe *v; /* The virtual machine being built up */ + int i; /* Loop counter */ + int topOfLoop; /* The top of the loop */ + int endOfLoop; /* The end of the loop */ + int addr; /* The address of an instruction */ + int iDb; /* Index of database containing pTab */ + + v = sqlite3GetVdbe(pParse); + if( pTab==0 || pTab->pIndex==0 ){ + /* Do no analysis for tables that have no indices */ + return; + } + + iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); + assert( iDb>=0 ); +#ifndef SQLITE_OMIT_AUTHORIZATION + if( sqlite3AuthCheck(pParse, SQLITE_ANALYZE, pTab->zName, 0, + pParse->db->aDb[iDb].zName ) ){ + return; + } +#endif + + /* Establish a read-lock on the table at the shared-cache level. */ + sqlite3TableLock(pParse, iDb, pTab->tnum, 0, pTab->zName); + + iIdxCur = pParse->nTab; + for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ + KeyInfo *pKey = sqlite3IndexKeyinfo(pParse, pIdx); + + /* Open a cursor to the index to be analyzed + */ + assert( iDb==sqlite3SchemaToIndex(pParse->db, pIdx->pSchema) ); + sqlite3VdbeAddOp(v, OP_Integer, iDb, 0); + VdbeComment((v, "# %s", pIdx->zName)); + sqlite3VdbeOp3(v, OP_OpenRead, iIdxCur, pIdx->tnum, + (char *)pKey, P3_KEYINFO_HANDOFF); + nCol = pIdx->nColumn; + if( iMem+nCol*2>=pParse->nMem ){ + pParse->nMem = iMem+nCol*2+1; + } + sqlite3VdbeAddOp(v, OP_SetNumColumns, iIdxCur, nCol+1); + + /* Memory cells are used as follows: + ** + ** mem[iMem]: The total number of rows in the table. + ** mem[iMem+1]: Number of distinct values in column 1 + ** ... + ** mem[iMem+nCol]: Number of distinct values in column N + ** mem[iMem+nCol+1] Last observed value of column 1 + ** ... + ** mem[iMem+nCol+nCol]: Last observed value of column N + ** + ** Cells iMem through iMem+nCol are initialized to 0. The others + ** are initialized to NULL. + */ + for(i=0; i<=nCol; i++){ + sqlite3VdbeAddOp(v, OP_MemInt, 0, iMem+i); + } + for(i=0; i0 then it is always the case the D>0 so division by zero + ** is never possible. + */ + sqlite3VdbeAddOp(v, OP_MemLoad, iMem, 0); + addr = sqlite3VdbeAddOp(v, OP_IfNot, 0, 0); + sqlite3VdbeAddOp(v, OP_NewRowid, iStatCur, 0); + sqlite3VdbeOp3(v, OP_String8, 0, 0, pTab->zName, 0); + sqlite3VdbeOp3(v, OP_String8, 0, 0, pIdx->zName, 0); + sqlite3VdbeAddOp(v, OP_MemLoad, iMem, 0); + sqlite3VdbeOp3(v, OP_String8, 0, 0, " ", 0); + for(i=0; idb; + Schema *pSchema = db->aDb[iDb].pSchema; /* Schema of database iDb */ + HashElem *k; + int iStatCur; + int iMem; + + sqlite3BeginWriteOperation(pParse, 0, iDb); + iStatCur = pParse->nTab++; + openStatTable(pParse, iDb, iStatCur, 0); + iMem = pParse->nMem; + for(k=sqliteHashFirst(&pSchema->tblHash); k; k=sqliteHashNext(k)){ + Table *pTab = (Table*)sqliteHashData(k); + analyzeOneTable(pParse, pTab, iStatCur, iMem); + } + loadAnalysis(pParse, iDb); +} + +/* +** Generate code that will do an analysis of a single table in +** a database. +*/ +static void analyzeTable(Parse *pParse, Table *pTab){ + int iDb; + int iStatCur; + + assert( pTab!=0 ); + iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); + sqlite3BeginWriteOperation(pParse, 0, iDb); + iStatCur = pParse->nTab++; + openStatTable(pParse, iDb, iStatCur, pTab->zName); + analyzeOneTable(pParse, pTab, iStatCur, pParse->nMem); + loadAnalysis(pParse, iDb); +} + +/* +** Generate code for the ANALYZE command. The parser calls this routine +** when it recognizes an ANALYZE command. +** +** ANALYZE -- 1 +** ANALYZE -- 2 +** ANALYZE ?.? -- 3 +** +** Form 1 causes all indices in all attached databases to be analyzed. +** Form 2 analyzes all indices the single database named. +** Form 3 analyzes all indices associated with the named table. +*/ +void sqlite3Analyze(Parse *pParse, Token *pName1, Token *pName2){ + sqlite3 *db = pParse->db; + int iDb; + int i; + char *z, *zDb; + Table *pTab; + Token *pTableName; + + /* Read the database schema. If an error occurs, leave an error message + ** and code in pParse and return NULL. */ + if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){ + return; + } + + if( pName1==0 ){ + /* Form 1: Analyze everything */ + for(i=0; inDb; i++){ + if( i==1 ) continue; /* Do not analyze the TEMP database */ + analyzeDatabase(pParse, i); + } + }else if( pName2==0 || pName2->n==0 ){ + /* Form 2: Analyze the database or table named */ + iDb = sqlite3FindDb(db, pName1); + if( iDb>=0 ){ + analyzeDatabase(pParse, iDb); + }else{ + z = sqlite3NameFromToken(pName1); + pTab = sqlite3LocateTable(pParse, z, 0); + sqliteFree(z); + if( pTab ){ + analyzeTable(pParse, pTab); + } + } + }else{ + /* Form 3: Analyze the fully qualified table name */ + iDb = sqlite3TwoPartName(pParse, pName1, pName2, &pTableName); + if( iDb>=0 ){ + zDb = db->aDb[iDb].zName; + z = sqlite3NameFromToken(pTableName); + pTab = sqlite3LocateTable(pParse, z, zDb); + sqliteFree(z); + if( pTab ){ + analyzeTable(pParse, pTab); + } + } + } +} + +/* +** Used to pass information from the analyzer reader through to the +** callback routine. +*/ +typedef struct analysisInfo analysisInfo; +struct analysisInfo { + sqlite3 *db; + const char *zDatabase; +}; + +/* +** This callback is invoked once for each index when reading the +** sqlite_stat1 table. +** +** argv[0] = name of the index +** argv[1] = results of analysis - on integer for each column +*/ +static int analysisLoader(void *pData, int argc, char **argv, char **azNotUsed){ + analysisInfo *pInfo = (analysisInfo*)pData; + Index *pIndex; + int i, c; + unsigned int v; + const char *z; + + assert( argc==2 ); + if( argv==0 || argv[0]==0 || argv[1]==0 ){ + return 0; + } + pIndex = sqlite3FindIndex(pInfo->db, argv[0], pInfo->zDatabase); + if( pIndex==0 ){ + return 0; + } + z = argv[1]; + for(i=0; *z && i<=pIndex->nColumn; i++){ + v = 0; + while( (c=z[0])>='0' && c<='9' ){ + v = v*10 + c - '0'; + z++; + } + pIndex->aiRowEst[i] = v; + if( *z==' ' ) z++; + } + return 0; +} + +/* +** Load the content of the sqlite_stat1 table into the index hash tables. +*/ +void sqlite3AnalysisLoad(sqlite3 *db, int iDb){ + analysisInfo sInfo; + HashElem *i; + char *zSql; + + /* Clear any prior statistics */ + for(i=sqliteHashFirst(&db->aDb[iDb].pSchema->idxHash);i;i=sqliteHashNext(i)){ + Index *pIdx = sqliteHashData(i); + sqlite3DefaultRowEst(pIdx); + } + + /* Check to make sure the sqlite_stat1 table existss */ + sInfo.db = db; + sInfo.zDatabase = db->aDb[iDb].zName; + if( sqlite3FindTable(db, "sqlite_stat1", sInfo.zDatabase)==0 ){ + return; + } + + + /* Load new statistics out of the sqlite_stat1 table */ + zSql = sqlite3MPrintf("SELECT idx, stat FROM %Q.sqlite_stat1", + sInfo.zDatabase); + sqlite3SafetyOff(db); + sqlite3_exec(db, zSql, analysisLoader, &sInfo, 0); + sqlite3SafetyOn(db); + sqliteFree(zSql); +} + + +#endif /* SQLITE_OMIT_ANALYZE */ diff --git a/src/dep/src/sqlite/attach.c b/src/dep/src/sqlite/attach.c new file mode 100644 index 0000000..8e54429 --- /dev/null +++ b/src/dep/src/sqlite/attach.c @@ -0,0 +1,504 @@ +/* +** 2003 April 6 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains code used to implement the ATTACH and DETACH commands. +** +** $Id: attach.c,v 1.53 2006/06/27 16:34:57 danielk1977 Exp $ +*/ +#include "sqliteInt.h" + +/* +** Resolve an expression that was part of an ATTACH or DETACH statement. This +** is slightly different from resolving a normal SQL expression, because simple +** identifiers are treated as strings, not possible column names or aliases. +** +** i.e. if the parser sees: +** +** ATTACH DATABASE abc AS def +** +** it treats the two expressions as literal strings 'abc' and 'def' instead of +** looking for columns of the same name. +** +** This only applies to the root node of pExpr, so the statement: +** +** ATTACH DATABASE abc||def AS 'db2' +** +** will fail because neither abc or def can be resolved. +*/ +static int resolveAttachExpr(NameContext *pName, Expr *pExpr) +{ + int rc = SQLITE_OK; + if( pExpr ){ + if( pExpr->op!=TK_ID ){ + rc = sqlite3ExprResolveNames(pName, pExpr); + }else{ + pExpr->op = TK_STRING; + } + } + return rc; +} + +/* +** An SQL user-function registered to do the work of an ATTACH statement. The +** three arguments to the function come directly from an attach statement: +** +** ATTACH DATABASE x AS y KEY z +** +** SELECT sqlite_attach(x, y, z) +** +** If the optional "KEY z" syntax is omitted, an SQL NULL is passed as the +** third argument. +*/ +static void attachFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + int i; + int rc = 0; + sqlite3 *db = sqlite3_user_data(context); + const char *zName; + const char *zFile; + Db *aNew; + char zErr[128]; + char *zErrDyn = 0; + + zFile = (const char *)sqlite3_value_text(argv[0]); + zName = (const char *)sqlite3_value_text(argv[1]); + if( zFile==0 ) zFile = ""; + if( zName==0 ) zName = ""; + + /* Check for the following errors: + ** + ** * Too many attached databases, + ** * Transaction currently open + ** * Specified database name already being used. + */ + if( db->nDb>=MAX_ATTACHED+2 ){ + sqlite3_snprintf( + sizeof(zErr), zErr, "too many attached databases - max %d", MAX_ATTACHED + ); + goto attach_error; + } + if( !db->autoCommit ){ + strcpy(zErr, "cannot ATTACH database within transaction"); + goto attach_error; + } + for(i=0; inDb; i++){ + char *z = db->aDb[i].zName; + if( z && zName && sqlite3StrICmp(z, zName)==0 ){ + sqlite3_snprintf(sizeof(zErr), zErr, "database %s is already in use", zName); + goto attach_error; + } + } + + /* Allocate the new entry in the db->aDb[] array and initialise the schema + ** hash tables. + */ + if( db->aDb==db->aDbStatic ){ + aNew = sqliteMalloc( sizeof(db->aDb[0])*3 ); + if( aNew==0 ){ + return; + } + memcpy(aNew, db->aDb, sizeof(db->aDb[0])*2); + }else{ + aNew = sqliteRealloc(db->aDb, sizeof(db->aDb[0])*(db->nDb+1) ); + if( aNew==0 ){ + return; + } + } + db->aDb = aNew; + aNew = &db->aDb[db->nDb++]; + memset(aNew, 0, sizeof(*aNew)); + + /* Open the database file. If the btree is successfully opened, use + ** it to obtain the database schema. At this point the schema may + ** or may not be initialised. + */ + rc = sqlite3BtreeFactory(db, zFile, 0, MAX_PAGES, &aNew->pBt); + if( rc==SQLITE_OK ){ + aNew->pSchema = sqlite3SchemaGet(aNew->pBt); + if( !aNew->pSchema ){ + rc = SQLITE_NOMEM; + }else if( aNew->pSchema->file_format && aNew->pSchema->enc!=ENC(db) ){ + strcpy(zErr, + "attached databases must use the same text encoding as main database"); + goto attach_error; + } + } + aNew->zName = sqliteStrDup(zName); + aNew->safety_level = 3; + +#if SQLITE_HAS_CODEC + { + extern int sqlite3CodecAttach(sqlite3*, int, void*, int); + extern void sqlite3CodecGetKey(sqlite3*, int, void**, int*); + int nKey; + char *zKey; + int t = sqlite3_value_type(argv[2]); + switch( t ){ + case SQLITE_INTEGER: + case SQLITE_FLOAT: + zErrDyn = sqliteStrDup("Invalid key value"); + rc = SQLITE_ERROR; + break; + + case SQLITE_TEXT: + case SQLITE_BLOB: + nKey = sqlite3_value_bytes(argv[2]); + zKey = (char *)sqlite3_value_blob(argv[2]); + sqlite3CodecAttach(db, db->nDb-1, zKey, nKey); + break; + + case SQLITE_NULL: + /* No key specified. Use the key from the main database */ + sqlite3CodecGetKey(db, 0, (void**)&zKey, &nKey); + sqlite3CodecAttach(db, db->nDb-1, zKey, nKey); + break; + } + } +#endif + + /* If the file was opened successfully, read the schema for the new database. + ** If this fails, or if opening the file failed, then close the file and + ** remove the entry from the db->aDb[] array. i.e. put everything back the way + ** we found it. + */ + if( rc==SQLITE_OK ){ + sqlite3SafetyOn(db); + rc = sqlite3Init(db, &zErrDyn); + sqlite3SafetyOff(db); + } + if( rc ){ + int iDb = db->nDb - 1; + assert( iDb>=2 ); + if( db->aDb[iDb].pBt ){ + sqlite3BtreeClose(db->aDb[iDb].pBt); + db->aDb[iDb].pBt = 0; + db->aDb[iDb].pSchema = 0; + } + sqlite3ResetInternalSchema(db, 0); + db->nDb = iDb; + if( rc==SQLITE_NOMEM ){ + if( !sqlite3MallocFailed() ) sqlite3FailedMalloc(); + sqlite3_snprintf(sizeof(zErr),zErr, "out of memory"); + }else{ + sqlite3_snprintf(sizeof(zErr),zErr, "unable to open database: %s", zFile); + } + goto attach_error; + } + + return; + +attach_error: + /* Return an error if we get here */ + if( zErrDyn ){ + sqlite3_result_error(context, zErrDyn, -1); + sqliteFree(zErrDyn); + }else{ + zErr[sizeof(zErr)-1] = 0; + sqlite3_result_error(context, zErr, -1); + } +} + +/* +** An SQL user-function registered to do the work of an DETACH statement. The +** three arguments to the function come directly from a detach statement: +** +** DETACH DATABASE x +** +** SELECT sqlite_detach(x) +*/ +static void detachFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + const char *zName = (const char *)sqlite3_value_text(argv[0]); + sqlite3 *db = sqlite3_user_data(context); + int i; + Db *pDb = 0; + char zErr[128]; + + if( zName==0 ) zName = ""; + for(i=0; inDb; i++){ + pDb = &db->aDb[i]; + if( pDb->pBt==0 ) continue; + if( sqlite3StrICmp(pDb->zName, zName)==0 ) break; + } + + if( i>=db->nDb ){ + sqlite3_snprintf(sizeof(zErr),zErr, "no such database: %s", zName); + goto detach_error; + } + if( i<2 ){ + sqlite3_snprintf(sizeof(zErr),zErr, "cannot detach database %s", zName); + goto detach_error; + } + if( !db->autoCommit ){ + strcpy(zErr, "cannot DETACH database within transaction"); + goto detach_error; + } + if( sqlite3BtreeIsInReadTrans(pDb->pBt) ){ + sqlite3_snprintf(sizeof(zErr),zErr, "database %s is locked", zName); + goto detach_error; + } + + sqlite3BtreeClose(pDb->pBt); + pDb->pBt = 0; + pDb->pSchema = 0; + sqlite3ResetInternalSchema(db, 0); + return; + +detach_error: + sqlite3_result_error(context, zErr, -1); +} + +/* +** This procedure generates VDBE code for a single invocation of either the +** sqlite_detach() or sqlite_attach() SQL user functions. +*/ +static void codeAttach( + Parse *pParse, /* The parser context */ + int type, /* Either SQLITE_ATTACH or SQLITE_DETACH */ + const char *zFunc, /* Either "sqlite_attach" or "sqlite_detach */ + int nFunc, /* Number of args to pass to zFunc */ + Expr *pAuthArg, /* Expression to pass to authorization callback */ + Expr *pFilename, /* Name of database file */ + Expr *pDbname, /* Name of the database to use internally */ + Expr *pKey /* Database key for encryption extension */ +){ + int rc; + NameContext sName; + Vdbe *v; + FuncDef *pFunc; + sqlite3* db = pParse->db; + +#ifndef SQLITE_OMIT_AUTHORIZATION + assert( sqlite3MallocFailed() || pAuthArg ); + if( pAuthArg ){ + char *zAuthArg = sqlite3NameFromToken(&pAuthArg->span); + if( !zAuthArg ){ + goto attach_end; + } + rc = sqlite3AuthCheck(pParse, type, zAuthArg, 0, 0); + sqliteFree(zAuthArg); + if(rc!=SQLITE_OK ){ + goto attach_end; + } + } +#endif /* SQLITE_OMIT_AUTHORIZATION */ + + memset(&sName, 0, sizeof(NameContext)); + sName.pParse = pParse; + + if( + SQLITE_OK!=(rc = resolveAttachExpr(&sName, pFilename)) || + SQLITE_OK!=(rc = resolveAttachExpr(&sName, pDbname)) || + SQLITE_OK!=(rc = resolveAttachExpr(&sName, pKey)) + ){ + pParse->nErr++; + goto attach_end; + } + + v = sqlite3GetVdbe(pParse); + sqlite3ExprCode(pParse, pFilename); + sqlite3ExprCode(pParse, pDbname); + sqlite3ExprCode(pParse, pKey); + + assert( v || sqlite3MallocFailed() ); + if( v ){ + sqlite3VdbeAddOp(v, OP_Function, 0, nFunc); + pFunc = sqlite3FindFunction(db, zFunc, strlen(zFunc), nFunc, SQLITE_UTF8,0); + sqlite3VdbeChangeP3(v, -1, (char *)pFunc, P3_FUNCDEF); + + /* Code an OP_Expire. For an ATTACH statement, set P1 to true (expire this + ** statement only). For DETACH, set it to false (expire all existing + ** statements). + */ + sqlite3VdbeAddOp(v, OP_Expire, (type==SQLITE_ATTACH), 0); + } + +attach_end: + sqlite3ExprDelete(pFilename); + sqlite3ExprDelete(pDbname); + sqlite3ExprDelete(pKey); +} + +/* +** Called by the parser to compile a DETACH statement. +** +** DETACH pDbname +*/ +void sqlite3Detach(Parse *pParse, Expr *pDbname){ + codeAttach(pParse, SQLITE_DETACH, "sqlite_detach", 1, pDbname, 0, 0, pDbname); +} + +/* +** Called by the parser to compile an ATTACH statement. +** +** ATTACH p AS pDbname KEY pKey +*/ +void sqlite3Attach(Parse *pParse, Expr *p, Expr *pDbname, Expr *pKey){ + codeAttach(pParse, SQLITE_ATTACH, "sqlite_attach", 3, p, p, pDbname, pKey); +} + +/* +** Register the functions sqlite_attach and sqlite_detach. +*/ +void sqlite3AttachFunctions(sqlite3 *db){ + static const int enc = SQLITE_UTF8; + sqlite3CreateFunc(db, "sqlite_attach", 3, enc, db, attachFunc, 0, 0); + sqlite3CreateFunc(db, "sqlite_detach", 1, enc, db, detachFunc, 0, 0); +} + +/* +** Initialize a DbFixer structure. This routine must be called prior +** to passing the structure to one of the sqliteFixAAAA() routines below. +** +** The return value indicates whether or not fixation is required. TRUE +** means we do need to fix the database references, FALSE means we do not. +*/ +int sqlite3FixInit( + DbFixer *pFix, /* The fixer to be initialized */ + Parse *pParse, /* Error messages will be written here */ + int iDb, /* This is the database that must be used */ + const char *zType, /* "view", "trigger", or "index" */ + const Token *pName /* Name of the view, trigger, or index */ +){ + sqlite3 *db; + + if( iDb<0 || iDb==1 ) return 0; + db = pParse->db; + assert( db->nDb>iDb ); + pFix->pParse = pParse; + pFix->zDb = db->aDb[iDb].zName; + pFix->zType = zType; + pFix->pName = pName; + return 1; +} + +/* +** The following set of routines walk through the parse tree and assign +** a specific database to all table references where the database name +** was left unspecified in the original SQL statement. The pFix structure +** must have been initialized by a prior call to sqlite3FixInit(). +** +** These routines are used to make sure that an index, trigger, or +** view in one database does not refer to objects in a different database. +** (Exception: indices, triggers, and views in the TEMP database are +** allowed to refer to anything.) If a reference is explicitly made +** to an object in a different database, an error message is added to +** pParse->zErrMsg and these routines return non-zero. If everything +** checks out, these routines return 0. +*/ +int sqlite3FixSrcList( + DbFixer *pFix, /* Context of the fixation */ + SrcList *pList /* The Source list to check and modify */ +){ + int i; + const char *zDb; + struct SrcList_item *pItem; + + if( pList==0 ) return 0; + zDb = pFix->zDb; + for(i=0, pItem=pList->a; inSrc; i++, pItem++){ + if( pItem->zDatabase==0 ){ + pItem->zDatabase = sqliteStrDup(zDb); + }else if( sqlite3StrICmp(pItem->zDatabase,zDb)!=0 ){ + sqlite3ErrorMsg(pFix->pParse, + "%s %T cannot reference objects in database %s", + pFix->zType, pFix->pName, pItem->zDatabase); + return 1; + } +#if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_TRIGGER) + if( sqlite3FixSelect(pFix, pItem->pSelect) ) return 1; + if( sqlite3FixExpr(pFix, pItem->pOn) ) return 1; +#endif + } + return 0; +} +#if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_TRIGGER) +int sqlite3FixSelect( + DbFixer *pFix, /* Context of the fixation */ + Select *pSelect /* The SELECT statement to be fixed to one database */ +){ + while( pSelect ){ + if( sqlite3FixExprList(pFix, pSelect->pEList) ){ + return 1; + } + if( sqlite3FixSrcList(pFix, pSelect->pSrc) ){ + return 1; + } + if( sqlite3FixExpr(pFix, pSelect->pWhere) ){ + return 1; + } + if( sqlite3FixExpr(pFix, pSelect->pHaving) ){ + return 1; + } + pSelect = pSelect->pPrior; + } + return 0; +} +int sqlite3FixExpr( + DbFixer *pFix, /* Context of the fixation */ + Expr *pExpr /* The expression to be fixed to one database */ +){ + while( pExpr ){ + if( sqlite3FixSelect(pFix, pExpr->pSelect) ){ + return 1; + } + if( sqlite3FixExprList(pFix, pExpr->pList) ){ + return 1; + } + if( sqlite3FixExpr(pFix, pExpr->pRight) ){ + return 1; + } + pExpr = pExpr->pLeft; + } + return 0; +} +int sqlite3FixExprList( + DbFixer *pFix, /* Context of the fixation */ + ExprList *pList /* The expression to be fixed to one database */ +){ + int i; + struct ExprList_item *pItem; + if( pList==0 ) return 0; + for(i=0, pItem=pList->a; inExpr; i++, pItem++){ + if( sqlite3FixExpr(pFix, pItem->pExpr) ){ + return 1; + } + } + return 0; +} +#endif + +#ifndef SQLITE_OMIT_TRIGGER +int sqlite3FixTriggerStep( + DbFixer *pFix, /* Context of the fixation */ + TriggerStep *pStep /* The trigger step be fixed to one database */ +){ + while( pStep ){ + if( sqlite3FixSelect(pFix, pStep->pSelect) ){ + return 1; + } + if( sqlite3FixExpr(pFix, pStep->pWhere) ){ + return 1; + } + if( sqlite3FixExprList(pFix, pStep->pExprList) ){ + return 1; + } + pStep = pStep->pNext; + } + return 0; +} +#endif diff --git a/src/dep/src/sqlite/auth.c b/src/dep/src/sqlite/auth.c new file mode 100644 index 0000000..fe05a68 --- /dev/null +++ b/src/dep/src/sqlite/auth.c @@ -0,0 +1,234 @@ +/* +** 2003 January 11 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains code used to implement the sqlite3_set_authorizer() +** API. This facility is an optional feature of the library. Embedded +** systems that do not need this facility may omit it by recompiling +** the library with -DSQLITE_OMIT_AUTHORIZATION=1 +** +** $Id: auth.c,v 1.25 2006/06/16 08:01:03 danielk1977 Exp $ +*/ +#include "sqliteInt.h" + +/* +** All of the code in this file may be omitted by defining a single +** macro. +*/ +#ifndef SQLITE_OMIT_AUTHORIZATION + +/* +** Set or clear the access authorization function. +** +** The access authorization function is be called during the compilation +** phase to verify that the user has read and/or write access permission on +** various fields of the database. The first argument to the auth function +** is a copy of the 3rd argument to this routine. The second argument +** to the auth function is one of these constants: +** +** SQLITE_CREATE_INDEX +** SQLITE_CREATE_TABLE +** SQLITE_CREATE_TEMP_INDEX +** SQLITE_CREATE_TEMP_TABLE +** SQLITE_CREATE_TEMP_TRIGGER +** SQLITE_CREATE_TEMP_VIEW +** SQLITE_CREATE_TRIGGER +** SQLITE_CREATE_VIEW +** SQLITE_DELETE +** SQLITE_DROP_INDEX +** SQLITE_DROP_TABLE +** SQLITE_DROP_TEMP_INDEX +** SQLITE_DROP_TEMP_TABLE +** SQLITE_DROP_TEMP_TRIGGER +** SQLITE_DROP_TEMP_VIEW +** SQLITE_DROP_TRIGGER +** SQLITE_DROP_VIEW +** SQLITE_INSERT +** SQLITE_PRAGMA +** SQLITE_READ +** SQLITE_SELECT +** SQLITE_TRANSACTION +** SQLITE_UPDATE +** +** The third and fourth arguments to the auth function are the name of +** the table and the column that are being accessed. The auth function +** should return either SQLITE_OK, SQLITE_DENY, or SQLITE_IGNORE. If +** SQLITE_OK is returned, it means that access is allowed. SQLITE_DENY +** means that the SQL statement will never-run - the sqlite3_exec() call +** will return with an error. SQLITE_IGNORE means that the SQL statement +** should run but attempts to read the specified column will return NULL +** and attempts to write the column will be ignored. +** +** Setting the auth function to NULL disables this hook. The default +** setting of the auth function is NULL. +*/ +int sqlite3_set_authorizer( + sqlite3 *db, + int (*xAuth)(void*,int,const char*,const char*,const char*,const char*), + void *pArg +){ + db->xAuth = xAuth; + db->pAuthArg = pArg; + sqlite3ExpirePreparedStatements(db); + return SQLITE_OK; +} + +/* +** Write an error message into pParse->zErrMsg that explains that the +** user-supplied authorization function returned an illegal value. +*/ +static void sqliteAuthBadReturnCode(Parse *pParse, int rc){ + sqlite3ErrorMsg(pParse, "illegal return value (%d) from the " + "authorization function - should be SQLITE_OK, SQLITE_IGNORE, " + "or SQLITE_DENY", rc); + pParse->rc = SQLITE_ERROR; +} + +/* +** The pExpr should be a TK_COLUMN expression. The table referred to +** is in pTabList or else it is the NEW or OLD table of a trigger. +** Check to see if it is OK to read this particular column. +** +** If the auth function returns SQLITE_IGNORE, change the TK_COLUMN +** instruction into a TK_NULL. If the auth function returns SQLITE_DENY, +** then generate an error. +*/ +void sqlite3AuthRead( + Parse *pParse, /* The parser context */ + Expr *pExpr, /* The expression to check authorization on */ + SrcList *pTabList /* All table that pExpr might refer to */ +){ + sqlite3 *db = pParse->db; + int rc; + Table *pTab; /* The table being read */ + const char *zCol; /* Name of the column of the table */ + int iSrc; /* Index in pTabList->a[] of table being read */ + const char *zDBase; /* Name of database being accessed */ + TriggerStack *pStack; /* The stack of current triggers */ + int iDb; /* The index of the database the expression refers to */ + + if( db->xAuth==0 ) return; + if( pExpr->op==TK_AS ) return; + assert( pExpr->op==TK_COLUMN ); + iDb = sqlite3SchemaToIndex(pParse->db, pExpr->pSchema); + if( iDb<0 ){ + /* An attempt to read a column out of a subquery or other + ** temporary table. */ + return; + } + for(iSrc=0; pTabList && iSrcnSrc; iSrc++){ + if( pExpr->iTable==pTabList->a[iSrc].iCursor ) break; + } + if( iSrc>=0 && pTabList && iSrcnSrc ){ + pTab = pTabList->a[iSrc].pTab; + }else if( (pStack = pParse->trigStack)!=0 ){ + /* This must be an attempt to read the NEW or OLD pseudo-tables + ** of a trigger. + */ + assert( pExpr->iTable==pStack->newIdx || pExpr->iTable==pStack->oldIdx ); + pTab = pStack->pTab; + }else{ + return; + } + if( pTab==0 ) return; + if( pExpr->iColumn>=0 ){ + assert( pExpr->iColumnnCol ); + zCol = pTab->aCol[pExpr->iColumn].zName; + }else if( pTab->iPKey>=0 ){ + assert( pTab->iPKeynCol ); + zCol = pTab->aCol[pTab->iPKey].zName; + }else{ + zCol = "ROWID"; + } + assert( iDb>=0 && iDbnDb ); + zDBase = db->aDb[iDb].zName; + rc = db->xAuth(db->pAuthArg, SQLITE_READ, pTab->zName, zCol, zDBase, + pParse->zAuthContext); + if( rc==SQLITE_IGNORE ){ + pExpr->op = TK_NULL; + }else if( rc==SQLITE_DENY ){ + if( db->nDb>2 || iDb!=0 ){ + sqlite3ErrorMsg(pParse, "access to %s.%s.%s is prohibited", + zDBase, pTab->zName, zCol); + }else{ + sqlite3ErrorMsg(pParse, "access to %s.%s is prohibited",pTab->zName,zCol); + } + pParse->rc = SQLITE_AUTH; + }else if( rc!=SQLITE_OK ){ + sqliteAuthBadReturnCode(pParse, rc); + } +} + +/* +** Do an authorization check using the code and arguments given. Return +** either SQLITE_OK (zero) or SQLITE_IGNORE or SQLITE_DENY. If SQLITE_DENY +** is returned, then the error count and error message in pParse are +** modified appropriately. +*/ +int sqlite3AuthCheck( + Parse *pParse, + int code, + const char *zArg1, + const char *zArg2, + const char *zArg3 +){ + sqlite3 *db = pParse->db; + int rc; + + /* Don't do any authorization checks if the database is initialising + ** or if the parser is being invoked from within sqlite3_declare_vtab. + */ + if( db->init.busy || IN_DECLARE_VTAB ){ + return SQLITE_OK; + } + + if( db->xAuth==0 ){ + return SQLITE_OK; + } + rc = db->xAuth(db->pAuthArg, code, zArg1, zArg2, zArg3, pParse->zAuthContext); + if( rc==SQLITE_DENY ){ + sqlite3ErrorMsg(pParse, "not authorized"); + pParse->rc = SQLITE_AUTH; + }else if( rc!=SQLITE_OK && rc!=SQLITE_IGNORE ){ + rc = SQLITE_DENY; + sqliteAuthBadReturnCode(pParse, rc); + } + return rc; +} + +/* +** Push an authorization context. After this routine is called, the +** zArg3 argument to authorization callbacks will be zContext until +** popped. Or if pParse==0, this routine is a no-op. +*/ +void sqlite3AuthContextPush( + Parse *pParse, + AuthContext *pContext, + const char *zContext +){ + pContext->pParse = pParse; + if( pParse ){ + pContext->zAuthContext = pParse->zAuthContext; + pParse->zAuthContext = zContext; + } +} + +/* +** Pop an authorization context that was previously pushed +** by sqlite3AuthContextPush +*/ +void sqlite3AuthContextPop(AuthContext *pContext){ + if( pContext->pParse ){ + pContext->pParse->zAuthContext = pContext->zAuthContext; + pContext->pParse = 0; + } +} + +#endif /* SQLITE_OMIT_AUTHORIZATION */ diff --git a/src/dep/src/sqlite/btree.c b/src/dep/src/sqlite/btree.c new file mode 100644 index 0000000..b8f3f37 --- /dev/null +++ b/src/dep/src/sqlite/btree.c @@ -0,0 +1,6582 @@ +/* +** 2004 April 6 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** $Id: btree.c,v 1.333 2007/01/05 02:00:47 drh Exp $ +** +** This file implements a external (disk-based) database using BTrees. +** For a detailed discussion of BTrees, refer to +** +** Donald E. Knuth, THE ART OF COMPUTER PROGRAMMING, Volume 3: +** "Sorting And Searching", pages 473-480. Addison-Wesley +** Publishing Company, Reading, Massachusetts. +** +** The basic idea is that each page of the file contains N database +** entries and N+1 pointers to subpages. +** +** ---------------------------------------------------------------- +** | Ptr(0) | Key(0) | Ptr(1) | Key(1) | ... | Key(N) | Ptr(N+1) | +** ---------------------------------------------------------------- +** +** All of the keys on the page that Ptr(0) points to have values less +** than Key(0). All of the keys on page Ptr(1) and its subpages have +** values greater than Key(0) and less than Key(1). All of the keys +** on Ptr(N+1) and its subpages have values greater than Key(N). And +** so forth. +** +** Finding a particular key requires reading O(log(M)) pages from the +** disk where M is the number of entries in the tree. +** +** In this implementation, a single file can hold one or more separate +** BTrees. Each BTree is identified by the index of its root page. The +** key and data for any entry are combined to form the "payload". A +** fixed amount of payload can be carried directly on the database +** page. If the payload is larger than the preset amount then surplus +** bytes are stored on overflow pages. The payload for an entry +** and the preceding pointer are combined to form a "Cell". Each +** page has a small header which contains the Ptr(N+1) pointer and other +** information such as the size of key and data. +** +** FORMAT DETAILS +** +** The file is divided into pages. The first page is called page 1, +** the second is page 2, and so forth. A page number of zero indicates +** "no such page". The page size can be anything between 512 and 65536. +** Each page can be either a btree page, a freelist page or an overflow +** page. +** +** The first page is always a btree page. The first 100 bytes of the first +** page contain a special header (the "file header") that describes the file. +** The format of the file header is as follows: +** +** OFFSET SIZE DESCRIPTION +** 0 16 Header string: "SQLite format 3\000" +** 16 2 Page size in bytes. +** 18 1 File format write version +** 19 1 File format read version +** 20 1 Bytes of unused space at the end of each page +** 21 1 Max embedded payload fraction +** 22 1 Min embedded payload fraction +** 23 1 Min leaf payload fraction +** 24 4 File change counter +** 28 4 Reserved for future use +** 32 4 First freelist page +** 36 4 Number of freelist pages in the file +** 40 60 15 4-byte meta values passed to higher layers +** +** All of the integer values are big-endian (most significant byte first). +** +** The file change counter is incremented when the database is changed more +** than once within the same second. This counter, together with the +** modification time of the file, allows other processes to know +** when the file has changed and thus when they need to flush their +** cache. +** +** The max embedded payload fraction is the amount of the total usable +** space in a page that can be consumed by a single cell for standard +** B-tree (non-LEAFDATA) tables. A value of 255 means 100%. The default +** is to limit the maximum cell size so that at least 4 cells will fit +** on one page. Thus the default max embedded payload fraction is 64. +** +** If the payload for a cell is larger than the max payload, then extra +** payload is spilled to overflow pages. Once an overflow page is allocated, +** as many bytes as possible are moved into the overflow pages without letting +** the cell size drop below the min embedded payload fraction. +** +** The min leaf payload fraction is like the min embedded payload fraction +** except that it applies to leaf nodes in a LEAFDATA tree. The maximum +** payload fraction for a LEAFDATA tree is always 100% (or 255) and it +** not specified in the header. +** +** Each btree pages is divided into three sections: The header, the +** cell pointer array, and the cell area area. Page 1 also has a 100-byte +** file header that occurs before the page header. +** +** |----------------| +** | file header | 100 bytes. Page 1 only. +** |----------------| +** | page header | 8 bytes for leaves. 12 bytes for interior nodes +** |----------------| +** | cell pointer | | 2 bytes per cell. Sorted order. +** | array | | Grows downward +** | | v +** |----------------| +** | unallocated | +** | space | +** |----------------| ^ Grows upwards +** | cell content | | Arbitrary order interspersed with freeblocks. +** | area | | and free space fragments. +** |----------------| +** +** The page headers looks like this: +** +** OFFSET SIZE DESCRIPTION +** 0 1 Flags. 1: intkey, 2: zerodata, 4: leafdata, 8: leaf +** 1 2 byte offset to the first freeblock +** 3 2 number of cells on this page +** 5 2 first byte of the cell content area +** 7 1 number of fragmented free bytes +** 8 4 Right child (the Ptr(N+1) value). Omitted on leaves. +** +** The flags define the format of this btree page. The leaf flag means that +** this page has no children. The zerodata flag means that this page carries +** only keys and no data. The intkey flag means that the key is a integer +** which is stored in the key size entry of the cell header rather than in +** the payload area. +** +** The cell pointer array begins on the first byte after the page header. +** The cell pointer array contains zero or more 2-byte numbers which are +** offsets from the beginning of the page to the cell content in the cell +** content area. The cell pointers occur in sorted order. The system strives +** to keep free space after the last cell pointer so that new cells can +** be easily added without having to defragment the page. +** +** Cell content is stored at the very end of the page and grows toward the +** beginning of the page. +** +** Unused space within the cell content area is collected into a linked list of +** freeblocks. Each freeblock is at least 4 bytes in size. The byte offset +** to the first freeblock is given in the header. Freeblocks occur in +** increasing order. Because a freeblock must be at least 4 bytes in size, +** any group of 3 or fewer unused bytes in the cell content area cannot +** exist on the freeblock chain. A group of 3 or fewer free bytes is called +** a fragment. The total number of bytes in all fragments is recorded. +** in the page header at offset 7. +** +** SIZE DESCRIPTION +** 2 Byte offset of the next freeblock +** 2 Bytes in this freeblock +** +** Cells are of variable length. Cells are stored in the cell content area at +** the end of the page. Pointers to the cells are in the cell pointer array +** that immediately follows the page header. Cells is not necessarily +** contiguous or in order, but cell pointers are contiguous and in order. +** +** Cell content makes use of variable length integers. A variable +** length integer is 1 to 9 bytes where the lower 7 bits of each +** byte are used. The integer consists of all bytes that have bit 8 set and +** the first byte with bit 8 clear. The most significant byte of the integer +** appears first. A variable-length integer may not be more than 9 bytes long. +** As a special case, all 8 bytes of the 9th byte are used as data. This +** allows a 64-bit integer to be encoded in 9 bytes. +** +** 0x00 becomes 0x00000000 +** 0x7f becomes 0x0000007f +** 0x81 0x00 becomes 0x00000080 +** 0x82 0x00 becomes 0x00000100 +** 0x80 0x7f becomes 0x0000007f +** 0x8a 0x91 0xd1 0xac 0x78 becomes 0x12345678 +** 0x81 0x81 0x81 0x81 0x01 becomes 0x10204081 +** +** Variable length integers are used for rowids and to hold the number of +** bytes of key and data in a btree cell. +** +** The content of a cell looks like this: +** +** SIZE DESCRIPTION +** 4 Page number of the left child. Omitted if leaf flag is set. +** var Number of bytes of data. Omitted if the zerodata flag is set. +** var Number of bytes of key. Or the key itself if intkey flag is set. +** * Payload +** 4 First page of the overflow chain. Omitted if no overflow +** +** Overflow pages form a linked list. Each page except the last is completely +** filled with data (pagesize - 4 bytes). The last page can have as little +** as 1 byte of data. +** +** SIZE DESCRIPTION +** 4 Page number of next overflow page +** * Data +** +** Freelist pages come in two subtypes: trunk pages and leaf pages. The +** file header points to first in a linked list of trunk page. Each trunk +** page points to multiple leaf pages. The content of a leaf page is +** unspecified. A trunk page looks like this: +** +** SIZE DESCRIPTION +** 4 Page number of next trunk page +** 4 Number of leaf pointers on this page +** * zero or more pages numbers of leaves +*/ +#include "sqliteInt.h" +#include "pager.h" +#include "btree.h" +#include "os.h" +#include + +/* Round up a number to the next larger multiple of 8. This is used +** to force 8-byte alignment on 64-bit architectures. +*/ +#define ROUND8(x) ((x+7)&~7) + + +/* The following value is the maximum cell size assuming a maximum page +** size give above. +*/ +#define MX_CELL_SIZE(pBt) (pBt->pageSize-8) + +/* The maximum number of cells on a single page of the database. This +** assumes a minimum cell size of 3 bytes. Such small cells will be +** exceedingly rare, but they are possible. +*/ +#define MX_CELL(pBt) ((pBt->pageSize-8)/3) + +/* Forward declarations */ +typedef struct MemPage MemPage; +typedef struct BtLock BtLock; + +/* +** This is a magic string that appears at the beginning of every +** SQLite database in order to identify the file as a real database. +** +** You can change this value at compile-time by specifying a +** -DSQLITE_FILE_HEADER="..." on the compiler command-line. The +** header must be exactly 16 bytes including the zero-terminator so +** the string itself should be 15 characters long. If you change +** the header, then your custom library will not be able to read +** databases generated by the standard tools and the standard tools +** will not be able to read databases created by your custom library. +*/ +#ifndef SQLITE_FILE_HEADER /* 123456789 123456 */ +# define SQLITE_FILE_HEADER "SQLite format 3" +#endif +static const char zMagicHeader[] = SQLITE_FILE_HEADER; + +/* +** Page type flags. An ORed combination of these flags appear as the +** first byte of every BTree page. +*/ +#define PTF_INTKEY 0x01 +#define PTF_ZERODATA 0x02 +#define PTF_LEAFDATA 0x04 +#define PTF_LEAF 0x08 + +/* +** As each page of the file is loaded into memory, an instance of the following +** structure is appended and initialized to zero. This structure stores +** information about the page that is decoded from the raw file page. +** +** The pParent field points back to the parent page. This allows us to +** walk up the BTree from any leaf to the root. Care must be taken to +** unref() the parent page pointer when this page is no longer referenced. +** The pageDestructor() routine handles that chore. +*/ +struct MemPage { + u8 isInit; /* True if previously initialized. MUST BE FIRST! */ + u8 idxShift; /* True if Cell indices have changed */ + u8 nOverflow; /* Number of overflow cell bodies in aCell[] */ + u8 intKey; /* True if intkey flag is set */ + u8 leaf; /* True if leaf flag is set */ + u8 zeroData; /* True if table stores keys only */ + u8 leafData; /* True if tables stores data on leaves only */ + u8 hasData; /* True if this page stores data */ + u8 hdrOffset; /* 100 for page 1. 0 otherwise */ + u8 childPtrSize; /* 0 if leaf==1. 4 if leaf==0 */ + u16 maxLocal; /* Copy of Btree.maxLocal or Btree.maxLeaf */ + u16 minLocal; /* Copy of Btree.minLocal or Btree.minLeaf */ + u16 cellOffset; /* Index in aData of first cell pointer */ + u16 idxParent; /* Index in parent of this node */ + u16 nFree; /* Number of free bytes on the page */ + u16 nCell; /* Number of cells on this page, local and ovfl */ + struct _OvflCell { /* Cells that will not fit on aData[] */ + u8 *pCell; /* Pointers to the body of the overflow cell */ + u16 idx; /* Insert this cell before idx-th non-overflow cell */ + } aOvfl[5]; + BtShared *pBt; /* Pointer back to BTree structure */ + u8 *aData; /* Pointer back to the start of the page */ + Pgno pgno; /* Page number for this page */ + MemPage *pParent; /* The parent of this page. NULL for root */ +}; + +/* +** The in-memory image of a disk page has the auxiliary information appended +** to the end. EXTRA_SIZE is the number of bytes of space needed to hold +** that extra information. +*/ +#define EXTRA_SIZE sizeof(MemPage) + +/* Btree handle */ +struct Btree { + sqlite3 *pSqlite; + BtShared *pBt; + u8 inTrans; /* TRANS_NONE, TRANS_READ or TRANS_WRITE */ +}; + +/* +** Btree.inTrans may take one of the following values. +** +** If the shared-data extension is enabled, there may be multiple users +** of the Btree structure. At most one of these may open a write transaction, +** but any number may have active read transactions. Variable Btree.pDb +** points to the handle that owns any current write-transaction. +*/ +#define TRANS_NONE 0 +#define TRANS_READ 1 +#define TRANS_WRITE 2 + +/* +** Everything we need to know about an open database +*/ +struct BtShared { + Pager *pPager; /* The page cache */ + BtCursor *pCursor; /* A list of all open cursors */ + MemPage *pPage1; /* First page of the database */ + u8 inStmt; /* True if we are in a statement subtransaction */ + u8 readOnly; /* True if the underlying file is readonly */ + u8 maxEmbedFrac; /* Maximum payload as % of total page size */ + u8 minEmbedFrac; /* Minimum payload as % of total page size */ + u8 minLeafFrac; /* Minimum leaf payload as % of total page size */ + u8 pageSizeFixed; /* True if the page size can no longer be changed */ +#ifndef SQLITE_OMIT_AUTOVACUUM + u8 autoVacuum; /* True if database supports auto-vacuum */ +#endif + u16 pageSize; /* Total number of bytes on a page */ + u16 usableSize; /* Number of usable bytes on each page */ + int maxLocal; /* Maximum local payload in non-LEAFDATA tables */ + int minLocal; /* Minimum local payload in non-LEAFDATA tables */ + int maxLeaf; /* Maximum local payload in a LEAFDATA table */ + int minLeaf; /* Minimum local payload in a LEAFDATA table */ + BusyHandler *pBusyHandler; /* Callback for when there is lock contention */ + u8 inTransaction; /* Transaction state */ + int nRef; /* Number of references to this structure */ + int nTransaction; /* Number of open transactions (read + write) */ + void *pSchema; /* Pointer to space allocated by sqlite3BtreeSchema() */ + void (*xFreeSchema)(void*); /* Destructor for BtShared.pSchema */ +#ifndef SQLITE_OMIT_SHARED_CACHE + BtLock *pLock; /* List of locks held on this shared-btree struct */ + BtShared *pNext; /* Next in ThreadData.pBtree linked list */ +#endif +}; + +/* +** An instance of the following structure is used to hold information +** about a cell. The parseCellPtr() function fills in this structure +** based on information extract from the raw disk page. +*/ +typedef struct CellInfo CellInfo; +struct CellInfo { + u8 *pCell; /* Pointer to the start of cell content */ + i64 nKey; /* The key for INTKEY tables, or number of bytes in key */ + u32 nData; /* Number of bytes of data */ + u16 nHeader; /* Size of the cell content header in bytes */ + u16 nLocal; /* Amount of payload held locally */ + u16 iOverflow; /* Offset to overflow page number. Zero if no overflow */ + u16 nSize; /* Size of the cell content on the main b-tree page */ +}; + +/* +** A cursor is a pointer to a particular entry in the BTree. +** The entry is identified by its MemPage and the index in +** MemPage.aCell[] of the entry. +*/ +struct BtCursor { + Btree *pBtree; /* The Btree to which this cursor belongs */ + BtCursor *pNext, *pPrev; /* Forms a linked list of all cursors */ + int (*xCompare)(void*,int,const void*,int,const void*); /* Key comp func */ + void *pArg; /* First arg to xCompare() */ + Pgno pgnoRoot; /* The root page of this tree */ + MemPage *pPage; /* Page that contains the entry */ + int idx; /* Index of the entry in pPage->aCell[] */ + CellInfo info; /* A parse of the cell we are pointing at */ + u8 wrFlag; /* True if writable */ + u8 eState; /* One of the CURSOR_XXX constants (see below) */ + void *pKey; /* Saved key that was cursor's last known position */ + i64 nKey; /* Size of pKey, or last integer key */ + int skip; /* (skip<0) -> Prev() is a no-op. (skip>0) -> Next() is */ +}; + +/* +** Potential values for BtCursor.eState. +** +** CURSOR_VALID: +** Cursor points to a valid entry. getPayload() etc. may be called. +** +** CURSOR_INVALID: +** Cursor does not point to a valid entry. This can happen (for example) +** because the table is empty or because BtreeCursorFirst() has not been +** called. +** +** CURSOR_REQUIRESEEK: +** The table that this cursor was opened on still exists, but has been +** modified since the cursor was last used. The cursor position is saved +** in variables BtCursor.pKey and BtCursor.nKey. When a cursor is in +** this state, restoreOrClearCursorPosition() can be called to attempt to +** seek the cursor to the saved position. +*/ +#define CURSOR_INVALID 0 +#define CURSOR_VALID 1 +#define CURSOR_REQUIRESEEK 2 + +/* +** The TRACE macro will print high-level status information about the +** btree operation when the global variable sqlite3_btree_trace is +** enabled. +*/ +#if SQLITE_TEST +# define TRACE(X) if( sqlite3_btree_trace )\ +/* { sqlite3DebugPrintf X; fflush(stdout); } */ \ +{ printf X; fflush(stdout); } +int sqlite3_btree_trace=0; /* True to enable tracing */ +#else +# define TRACE(X) +#endif + +/* +** Forward declaration +*/ +static int checkReadLocks(Btree*,Pgno,BtCursor*); + +/* +** Read or write a two- and four-byte big-endian integer values. +*/ +static u32 get2byte(unsigned char *p){ + return (p[0]<<8) | p[1]; +} +static u32 get4byte(unsigned char *p){ + return (p[0]<<24) | (p[1]<<16) | (p[2]<<8) | p[3]; +} +static void put2byte(unsigned char *p, u32 v){ + p[0] = v>>8; + p[1] = v; +} +static void put4byte(unsigned char *p, u32 v){ + p[0] = v>>24; + p[1] = v>>16; + p[2] = v>>8; + p[3] = v; +} + +/* +** Routines to read and write variable-length integers. These used to +** be defined locally, but now we use the varint routines in the util.c +** file. +*/ +#define getVarint sqlite3GetVarint +/* #define getVarint32 sqlite3GetVarint32 */ +#define getVarint32(A,B) ((*B=*(A))<=0x7f?1:sqlite3GetVarint32(A,B)) +#define putVarint sqlite3PutVarint + +/* The database page the PENDING_BYTE occupies. This page is never used. +** TODO: This macro is very similary to PAGER_MJ_PGNO() in pager.c. They +** should possibly be consolidated (presumably in pager.h). +** +** If disk I/O is omitted (meaning that the database is stored purely +** in memory) then there is no pending byte. +*/ +#ifdef SQLITE_OMIT_DISKIO +# define PENDING_BYTE_PAGE(pBt) 0x7fffffff +#else +# define PENDING_BYTE_PAGE(pBt) ((PENDING_BYTE/(pBt)->pageSize)+1) +#endif + +/* +** A linked list of the following structures is stored at BtShared.pLock. +** Locks are added (or upgraded from READ_LOCK to WRITE_LOCK) when a cursor +** is opened on the table with root page BtShared.iTable. Locks are removed +** from this list when a transaction is committed or rolled back, or when +** a btree handle is closed. +*/ +struct BtLock { + Btree *pBtree; /* Btree handle holding this lock */ + Pgno iTable; /* Root page of table */ + u8 eLock; /* READ_LOCK or WRITE_LOCK */ + BtLock *pNext; /* Next in BtShared.pLock list */ +}; + +/* Candidate values for BtLock.eLock */ +#define READ_LOCK 1 +#define WRITE_LOCK 2 + +#ifdef SQLITE_OMIT_SHARED_CACHE + /* + ** The functions queryTableLock(), lockTable() and unlockAllTables() + ** manipulate entries in the BtShared.pLock linked list used to store + ** shared-cache table level locks. If the library is compiled with the + ** shared-cache feature disabled, then there is only ever one user + ** of each BtShared structure and so this locking is not necessary. + ** So define the lock related functions as no-ops. + */ + #define queryTableLock(a,b,c) SQLITE_OK + #define lockTable(a,b,c) SQLITE_OK + #define unlockAllTables(a) +#else + + +/* +** Query to see if btree handle p may obtain a lock of type eLock +** (READ_LOCK or WRITE_LOCK) on the table with root-page iTab. Return +** SQLITE_OK if the lock may be obtained (by calling lockTable()), or +** SQLITE_LOCKED if not. +*/ +static int queryTableLock(Btree *p, Pgno iTab, u8 eLock){ + BtShared *pBt = p->pBt; + BtLock *pIter; + + /* This is a no-op if the shared-cache is not enabled */ + if( 0==sqlite3ThreadDataReadOnly()->useSharedData ){ + return SQLITE_OK; + } + + /* This (along with lockTable()) is where the ReadUncommitted flag is + ** dealt with. If the caller is querying for a read-lock and the flag is + ** set, it is unconditionally granted - even if there are write-locks + ** on the table. If a write-lock is requested, the ReadUncommitted flag + ** is not considered. + ** + ** In function lockTable(), if a read-lock is demanded and the + ** ReadUncommitted flag is set, no entry is added to the locks list + ** (BtShared.pLock). + ** + ** To summarize: If the ReadUncommitted flag is set, then read cursors do + ** not create or respect table locks. The locking procedure for a + ** write-cursor does not change. + */ + if( + !p->pSqlite || + 0==(p->pSqlite->flags&SQLITE_ReadUncommitted) || + eLock==WRITE_LOCK || + iTab==MASTER_ROOT + ){ + for(pIter=pBt->pLock; pIter; pIter=pIter->pNext){ + if( pIter->pBtree!=p && pIter->iTable==iTab && + (pIter->eLock!=eLock || eLock!=READ_LOCK) ){ + return SQLITE_LOCKED; + } + } + } + return SQLITE_OK; +} + +/* +** Add a lock on the table with root-page iTable to the shared-btree used +** by Btree handle p. Parameter eLock must be either READ_LOCK or +** WRITE_LOCK. +** +** SQLITE_OK is returned if the lock is added successfully. SQLITE_BUSY and +** SQLITE_NOMEM may also be returned. +*/ +static int lockTable(Btree *p, Pgno iTable, u8 eLock){ + BtShared *pBt = p->pBt; + BtLock *pLock = 0; + BtLock *pIter; + + /* This is a no-op if the shared-cache is not enabled */ + if( 0==sqlite3ThreadDataReadOnly()->useSharedData ){ + return SQLITE_OK; + } + + assert( SQLITE_OK==queryTableLock(p, iTable, eLock) ); + + /* If the read-uncommitted flag is set and a read-lock is requested, + ** return early without adding an entry to the BtShared.pLock list. See + ** comment in function queryTableLock() for more info on handling + ** the ReadUncommitted flag. + */ + if( + (p->pSqlite) && + (p->pSqlite->flags&SQLITE_ReadUncommitted) && + (eLock==READ_LOCK) && + iTable!=MASTER_ROOT + ){ + return SQLITE_OK; + } + + /* First search the list for an existing lock on this table. */ + for(pIter=pBt->pLock; pIter; pIter=pIter->pNext){ + if( pIter->iTable==iTable && pIter->pBtree==p ){ + pLock = pIter; + break; + } + } + + /* If the above search did not find a BtLock struct associating Btree p + ** with table iTable, allocate one and link it into the list. + */ + if( !pLock ){ + pLock = (BtLock *)sqliteMalloc(sizeof(BtLock)); + if( !pLock ){ + return SQLITE_NOMEM; + } + pLock->iTable = iTable; + pLock->pBtree = p; + pLock->pNext = pBt->pLock; + pBt->pLock = pLock; + } + + /* Set the BtLock.eLock variable to the maximum of the current lock + ** and the requested lock. This means if a write-lock was already held + ** and a read-lock requested, we don't incorrectly downgrade the lock. + */ + assert( WRITE_LOCK>READ_LOCK ); + if( eLock>pLock->eLock ){ + pLock->eLock = eLock; + } + + return SQLITE_OK; +} + +/* +** Release all the table locks (locks obtained via calls to the lockTable() +** procedure) held by Btree handle p. +*/ +static void unlockAllTables(Btree *p){ + BtLock **ppIter = &p->pBt->pLock; + + /* If the shared-cache extension is not enabled, there should be no + ** locks in the BtShared.pLock list, making this procedure a no-op. Assert + ** that this is the case. + */ + assert( sqlite3ThreadDataReadOnly()->useSharedData || 0==*ppIter ); + + while( *ppIter ){ + BtLock *pLock = *ppIter; + if( pLock->pBtree==p ){ + *ppIter = pLock->pNext; + sqliteFree(pLock); + }else{ + ppIter = &pLock->pNext; + } + } +} +#endif /* SQLITE_OMIT_SHARED_CACHE */ + +static void releasePage(MemPage *pPage); /* Forward reference */ + +/* +** Save the current cursor position in the variables BtCursor.nKey +** and BtCursor.pKey. The cursor's state is set to CURSOR_REQUIRESEEK. +*/ +static int saveCursorPosition(BtCursor *pCur){ + int rc; + + assert( CURSOR_VALID==pCur->eState ); + assert( 0==pCur->pKey ); + + rc = sqlite3BtreeKeySize(pCur, &pCur->nKey); + + /* If this is an intKey table, then the above call to BtreeKeySize() + ** stores the integer key in pCur->nKey. In this case this value is + ** all that is required. Otherwise, if pCur is not open on an intKey + ** table, then malloc space for and store the pCur->nKey bytes of key + ** data. + */ + if( rc==SQLITE_OK && 0==pCur->pPage->intKey){ + void *pKey = sqliteMalloc(pCur->nKey); + if( pKey ){ + rc = sqlite3BtreeKey(pCur, 0, pCur->nKey, pKey); + if( rc==SQLITE_OK ){ + pCur->pKey = pKey; + }else{ + sqliteFree(pKey); + } + }else{ + rc = SQLITE_NOMEM; + } + } + assert( !pCur->pPage->intKey || !pCur->pKey ); + + if( rc==SQLITE_OK ){ + releasePage(pCur->pPage); + pCur->pPage = 0; + pCur->eState = CURSOR_REQUIRESEEK; + } + + return rc; +} + +/* +** Save the positions of all cursors except pExcept open on the table +** with root-page iRoot. Usually, this is called just before cursor +** pExcept is used to modify the table (BtreeDelete() or BtreeInsert()). +*/ +static int saveAllCursors(BtShared *pBt, Pgno iRoot, BtCursor *pExcept){ + BtCursor *p; + for(p=pBt->pCursor; p; p=p->pNext){ + if( p!=pExcept && (0==iRoot || p->pgnoRoot==iRoot) && + p->eState==CURSOR_VALID ){ + int rc = saveCursorPosition(p); + if( SQLITE_OK!=rc ){ + return rc; + } + } + } + return SQLITE_OK; +} + +/* +** Restore the cursor to the position it was in (or as close to as possible) +** when saveCursorPosition() was called. Note that this call deletes the +** saved position info stored by saveCursorPosition(), so there can be +** at most one effective restoreOrClearCursorPosition() call after each +** saveCursorPosition(). +** +** If the second argument argument - doSeek - is false, then instead of +** returning the cursor to it's saved position, any saved position is deleted +** and the cursor state set to CURSOR_INVALID. +*/ +static int restoreOrClearCursorPositionX(BtCursor *pCur, int doSeek){ + int rc = SQLITE_OK; + assert( pCur->eState==CURSOR_REQUIRESEEK ); + pCur->eState = CURSOR_INVALID; + if( doSeek ){ + rc = sqlite3BtreeMoveto(pCur, pCur->pKey, pCur->nKey, &pCur->skip); + } + if( rc==SQLITE_OK ){ + sqliteFree(pCur->pKey); + pCur->pKey = 0; + assert( CURSOR_VALID==pCur->eState || CURSOR_INVALID==pCur->eState ); + } + return rc; +} + +#define restoreOrClearCursorPosition(p,x) \ + (p->eState==CURSOR_REQUIRESEEK?restoreOrClearCursorPositionX(p,x):SQLITE_OK) + +#ifndef SQLITE_OMIT_AUTOVACUUM +/* +** These macros define the location of the pointer-map entry for a +** database page. The first argument to each is the number of usable +** bytes on each page of the database (often 1024). The second is the +** page number to look up in the pointer map. +** +** PTRMAP_PAGENO returns the database page number of the pointer-map +** page that stores the required pointer. PTRMAP_PTROFFSET returns +** the offset of the requested map entry. +** +** If the pgno argument passed to PTRMAP_PAGENO is a pointer-map page, +** then pgno is returned. So (pgno==PTRMAP_PAGENO(pgsz, pgno)) can be +** used to test if pgno is a pointer-map page. PTRMAP_ISPAGE implements +** this test. +*/ +#define PTRMAP_PAGENO(pBt, pgno) ptrmapPageno(pBt, pgno) +#define PTRMAP_PTROFFSET(pBt, pgno) (5*(pgno-ptrmapPageno(pBt, pgno)-1)) +#define PTRMAP_ISPAGE(pBt, pgno) (PTRMAP_PAGENO((pBt),(pgno))==(pgno)) + +static Pgno ptrmapPageno(BtShared *pBt, Pgno pgno){ + int nPagesPerMapPage = (pBt->usableSize/5)+1; + int iPtrMap = (pgno-2)/nPagesPerMapPage; + int ret = (iPtrMap*nPagesPerMapPage) + 2; + if( ret==PENDING_BYTE_PAGE(pBt) ){ + ret++; + } + return ret; +} + +/* +** The pointer map is a lookup table that identifies the parent page for +** each child page in the database file. The parent page is the page that +** contains a pointer to the child. Every page in the database contains +** 0 or 1 parent pages. (In this context 'database page' refers +** to any page that is not part of the pointer map itself.) Each pointer map +** entry consists of a single byte 'type' and a 4 byte parent page number. +** The PTRMAP_XXX identifiers below are the valid types. +** +** The purpose of the pointer map is to facility moving pages from one +** position in the file to another as part of autovacuum. When a page +** is moved, the pointer in its parent must be updated to point to the +** new location. The pointer map is used to locate the parent page quickly. +** +** PTRMAP_ROOTPAGE: The database page is a root-page. The page-number is not +** used in this case. +** +** PTRMAP_FREEPAGE: The database page is an unused (free) page. The page-number +** is not used in this case. +** +** PTRMAP_OVERFLOW1: The database page is the first page in a list of +** overflow pages. The page number identifies the page that +** contains the cell with a pointer to this overflow page. +** +** PTRMAP_OVERFLOW2: The database page is the second or later page in a list of +** overflow pages. The page-number identifies the previous +** page in the overflow page list. +** +** PTRMAP_BTREE: The database page is a non-root btree page. The page number +** identifies the parent page in the btree. +*/ +#define PTRMAP_ROOTPAGE 1 +#define PTRMAP_FREEPAGE 2 +#define PTRMAP_OVERFLOW1 3 +#define PTRMAP_OVERFLOW2 4 +#define PTRMAP_BTREE 5 + +/* +** Write an entry into the pointer map. +** +** This routine updates the pointer map entry for page number 'key' +** so that it maps to type 'eType' and parent page number 'pgno'. +** An error code is returned if something goes wrong, otherwise SQLITE_OK. +*/ +static int ptrmapPut(BtShared *pBt, Pgno key, u8 eType, Pgno parent){ + u8 *pPtrmap; /* The pointer map page */ + Pgno iPtrmap; /* The pointer map page number */ + int offset; /* Offset in pointer map page */ + int rc; + + /* The master-journal page number must never be used as a pointer map page */ + assert( 0==PTRMAP_ISPAGE(pBt, PENDING_BYTE_PAGE(pBt)) ); + + assert( pBt->autoVacuum ); + if( key==0 ){ + return SQLITE_CORRUPT_BKPT; + } + iPtrmap = PTRMAP_PAGENO(pBt, key); + rc = sqlite3pager_get(pBt->pPager, iPtrmap, (void **)&pPtrmap); + if( rc!=SQLITE_OK ){ + return rc; + } + offset = PTRMAP_PTROFFSET(pBt, key); + + if( eType!=pPtrmap[offset] || get4byte(&pPtrmap[offset+1])!=parent ){ + TRACE(("PTRMAP_UPDATE: %d->(%d,%d)\n", key, eType, parent)); + rc = sqlite3pager_write(pPtrmap); + if( rc==SQLITE_OK ){ + pPtrmap[offset] = eType; + put4byte(&pPtrmap[offset+1], parent); + } + } + + sqlite3pager_unref(pPtrmap); + return rc; +} + +/* +** Read an entry from the pointer map. +** +** This routine retrieves the pointer map entry for page 'key', writing +** the type and parent page number to *pEType and *pPgno respectively. +** An error code is returned if something goes wrong, otherwise SQLITE_OK. +*/ +static int ptrmapGet(BtShared *pBt, Pgno key, u8 *pEType, Pgno *pPgno){ + int iPtrmap; /* Pointer map page index */ + u8 *pPtrmap; /* Pointer map page data */ + int offset; /* Offset of entry in pointer map */ + int rc; + + iPtrmap = PTRMAP_PAGENO(pBt, key); + rc = sqlite3pager_get(pBt->pPager, iPtrmap, (void **)&pPtrmap); + if( rc!=0 ){ + return rc; + } + + offset = PTRMAP_PTROFFSET(pBt, key); + assert( pEType!=0 ); + *pEType = pPtrmap[offset]; + if( pPgno ) *pPgno = get4byte(&pPtrmap[offset+1]); + + sqlite3pager_unref(pPtrmap); + if( *pEType<1 || *pEType>5 ) return SQLITE_CORRUPT_BKPT; + return SQLITE_OK; +} + +#endif /* SQLITE_OMIT_AUTOVACUUM */ + +/* +** Given a btree page and a cell index (0 means the first cell on +** the page, 1 means the second cell, and so forth) return a pointer +** to the cell content. +** +** This routine works only for pages that do not contain overflow cells. +*/ +static u8 *findCell(MemPage *pPage, int iCell){ + u8 *data = pPage->aData; + assert( iCell>=0 ); + assert( iCellhdrOffset+3]) ); + return data + get2byte(&data[pPage->cellOffset+2*iCell]); +} + +/* +** This a more complex version of findCell() that works for +** pages that do contain overflow cells. See insert +*/ +static u8 *findOverflowCell(MemPage *pPage, int iCell){ + int i; + for(i=pPage->nOverflow-1; i>=0; i--){ + int k; + struct _OvflCell *pOvfl; + pOvfl = &pPage->aOvfl[i]; + k = pOvfl->idx; + if( k<=iCell ){ + if( k==iCell ){ + return pOvfl->pCell; + } + iCell--; + } + } + return findCell(pPage, iCell); +} + +/* +** Parse a cell content block and fill in the CellInfo structure. There +** are two versions of this function. parseCell() takes a cell index +** as the second argument and parseCellPtr() takes a pointer to the +** body of the cell as its second argument. +*/ +static void parseCellPtr( + MemPage *pPage, /* Page containing the cell */ + u8 *pCell, /* Pointer to the cell text. */ + CellInfo *pInfo /* Fill in this structure */ +){ + int n; /* Number bytes in cell content header */ + u32 nPayload; /* Number of bytes of cell payload */ + + pInfo->pCell = pCell; + assert( pPage->leaf==0 || pPage->leaf==1 ); + n = pPage->childPtrSize; + assert( n==4-4*pPage->leaf ); + if( pPage->hasData ){ + n += getVarint32(&pCell[n], &nPayload); + }else{ + nPayload = 0; + } + pInfo->nData = nPayload; + if( pPage->intKey ){ + n += getVarint(&pCell[n], (u64 *)&pInfo->nKey); + }else{ + u32 x; + n += getVarint32(&pCell[n], &x); + pInfo->nKey = x; + nPayload += x; + } + pInfo->nHeader = n; + if( nPayload<=pPage->maxLocal ){ + /* This is the (easy) common case where the entire payload fits + ** on the local page. No overflow is required. + */ + int nSize; /* Total size of cell content in bytes */ + pInfo->nLocal = nPayload; + pInfo->iOverflow = 0; + nSize = nPayload + n; + if( nSize<4 ){ + nSize = 4; /* Minimum cell size is 4 */ + } + pInfo->nSize = nSize; + }else{ + /* If the payload will not fit completely on the local page, we have + ** to decide how much to store locally and how much to spill onto + ** overflow pages. The strategy is to minimize the amount of unused + ** space on overflow pages while keeping the amount of local storage + ** in between minLocal and maxLocal. + ** + ** Warning: changing the way overflow payload is distributed in any + ** way will result in an incompatible file format. + */ + int minLocal; /* Minimum amount of payload held locally */ + int maxLocal; /* Maximum amount of payload held locally */ + int surplus; /* Overflow payload available for local storage */ + + minLocal = pPage->minLocal; + maxLocal = pPage->maxLocal; + surplus = minLocal + (nPayload - minLocal)%(pPage->pBt->usableSize - 4); + if( surplus <= maxLocal ){ + pInfo->nLocal = surplus; + }else{ + pInfo->nLocal = minLocal; + } + pInfo->iOverflow = pInfo->nLocal + n; + pInfo->nSize = pInfo->iOverflow + 4; + } +} +static void parseCell( + MemPage *pPage, /* Page containing the cell */ + int iCell, /* The cell index. First cell is 0 */ + CellInfo *pInfo /* Fill in this structure */ +){ + parseCellPtr(pPage, findCell(pPage, iCell), pInfo); +} + +/* +** Compute the total number of bytes that a Cell needs in the cell +** data area of the btree-page. The return number includes the cell +** data header and the local payload, but not any overflow page or +** the space used by the cell pointer. +*/ +#ifndef NDEBUG +static int cellSize(MemPage *pPage, int iCell){ + CellInfo info; + parseCell(pPage, iCell, &info); + return info.nSize; +} +#endif +static int cellSizePtr(MemPage *pPage, u8 *pCell){ + CellInfo info; + parseCellPtr(pPage, pCell, &info); + return info.nSize; +} + +#ifndef SQLITE_OMIT_AUTOVACUUM +/* +** If the cell pCell, part of page pPage contains a pointer +** to an overflow page, insert an entry into the pointer-map +** for the overflow page. +*/ +static int ptrmapPutOvflPtr(MemPage *pPage, u8 *pCell){ + if( pCell ){ + CellInfo info; + parseCellPtr(pPage, pCell, &info); + if( (info.nData+(pPage->intKey?0:info.nKey))>info.nLocal ){ + Pgno ovfl = get4byte(&pCell[info.iOverflow]); + return ptrmapPut(pPage->pBt, ovfl, PTRMAP_OVERFLOW1, pPage->pgno); + } + } + return SQLITE_OK; +} +/* +** If the cell with index iCell on page pPage contains a pointer +** to an overflow page, insert an entry into the pointer-map +** for the overflow page. +*/ +static int ptrmapPutOvfl(MemPage *pPage, int iCell){ + u8 *pCell; + pCell = findOverflowCell(pPage, iCell); + return ptrmapPutOvflPtr(pPage, pCell); +} +#endif + + +/* A bunch of assert() statements to check the transaction state variables +** of handle p (type Btree*) are internally consistent. +*/ +#define btreeIntegrity(p) \ + assert( p->inTrans!=TRANS_NONE || p->pBt->nTransactionpBt->nRef ); \ + assert( p->pBt->nTransaction<=p->pBt->nRef ); \ + assert( p->pBt->inTransaction!=TRANS_NONE || p->pBt->nTransaction==0 ); \ + assert( p->pBt->inTransaction>=p->inTrans ); + +/* +** Defragment the page given. All Cells are moved to the +** end of the page and all free space is collected into one +** big FreeBlk that occurs in between the header and cell +** pointer array and the cell content area. +*/ +static int defragmentPage(MemPage *pPage){ + int i; /* Loop counter */ + int pc; /* Address of a i-th cell */ + int addr; /* Offset of first byte after cell pointer array */ + int hdr; /* Offset to the page header */ + int size; /* Size of a cell */ + int usableSize; /* Number of usable bytes on a page */ + int cellOffset; /* Offset to the cell pointer array */ + int brk; /* Offset to the cell content area */ + int nCell; /* Number of cells on the page */ + unsigned char *data; /* The page data */ + unsigned char *temp; /* Temp area for cell content */ + + assert( sqlite3pager_iswriteable(pPage->aData) ); + assert( pPage->pBt!=0 ); + assert( pPage->pBt->usableSize <= SQLITE_MAX_PAGE_SIZE ); + assert( pPage->nOverflow==0 ); + temp = sqliteMalloc( pPage->pBt->pageSize ); + if( temp==0 ) return SQLITE_NOMEM; + data = pPage->aData; + hdr = pPage->hdrOffset; + cellOffset = pPage->cellOffset; + nCell = pPage->nCell; + assert( nCell==get2byte(&data[hdr+3]) ); + usableSize = pPage->pBt->usableSize; + brk = get2byte(&data[hdr+5]); + memcpy(&temp[brk], &data[brk], usableSize - brk); + brk = usableSize; + for(i=0; ipBt->usableSize ); + size = cellSizePtr(pPage, &temp[pc]); + brk -= size; + memcpy(&data[brk], &temp[pc], size); + put2byte(pAddr, brk); + } + assert( brk>=cellOffset+2*nCell ); + put2byte(&data[hdr+5], brk); + data[hdr+1] = 0; + data[hdr+2] = 0; + data[hdr+7] = 0; + addr = cellOffset+2*nCell; + memset(&data[addr], 0, brk-addr); + sqliteFree(temp); + return SQLITE_OK; +} + +/* +** Allocate nByte bytes of space on a page. +** +** Return the index into pPage->aData[] of the first byte of +** the new allocation. Or return 0 if there is not enough free +** space on the page to satisfy the allocation request. +** +** If the page contains nBytes of free space but does not contain +** nBytes of contiguous free space, then this routine automatically +** calls defragementPage() to consolidate all free space before +** allocating the new chunk. +*/ +static int allocateSpace(MemPage *pPage, int nByte){ + int addr, pc, hdr; + int size; + int nFrag; + int top; + int nCell; + int cellOffset; + unsigned char *data; + + data = pPage->aData; + assert( sqlite3pager_iswriteable(data) ); + assert( pPage->pBt ); + if( nByte<4 ) nByte = 4; + if( pPage->nFreenOverflow>0 ) return 0; + pPage->nFree -= nByte; + hdr = pPage->hdrOffset; + + nFrag = data[hdr+7]; + if( nFrag<60 ){ + /* Search the freelist looking for a slot big enough to satisfy the + ** space request. */ + addr = hdr+1; + while( (pc = get2byte(&data[addr]))>0 ){ + size = get2byte(&data[pc+2]); + if( size>=nByte ){ + if( sizecellOffset; + if( nFrag>=60 || cellOffset + 2*nCell > top - nByte ){ + if( defragmentPage(pPage) ) return 0; + top = get2byte(&data[hdr+5]); + } + top -= nByte; + assert( cellOffset + 2*nCell <= top ); + put2byte(&data[hdr+5], top); + return top; +} + +/* +** Return a section of the pPage->aData to the freelist. +** The first byte of the new free block is pPage->aDisk[start] +** and the size of the block is "size" bytes. +** +** Most of the effort here is involved in coalesing adjacent +** free blocks into a single big free block. +*/ +static void freeSpace(MemPage *pPage, int start, int size){ + int addr, pbegin, hdr; + unsigned char *data = pPage->aData; + + assert( pPage->pBt!=0 ); + assert( sqlite3pager_iswriteable(data) ); + assert( start>=pPage->hdrOffset+6+(pPage->leaf?0:4) ); + assert( (start + size)<=pPage->pBt->usableSize ); + if( size<4 ) size = 4; + +#ifdef SQLITE_SECURE_DELETE + /* Overwrite deleted information with zeros when the SECURE_DELETE + ** option is enabled at compile-time */ + memset(&data[start], 0, size); +#endif + + /* Add the space back into the linked list of freeblocks */ + hdr = pPage->hdrOffset; + addr = hdr + 1; + while( (pbegin = get2byte(&data[addr]))0 ){ + assert( pbegin<=pPage->pBt->usableSize-4 ); + assert( pbegin>addr ); + addr = pbegin; + } + assert( pbegin<=pPage->pBt->usableSize-4 ); + assert( pbegin>addr || pbegin==0 ); + put2byte(&data[addr], start); + put2byte(&data[start], pbegin); + put2byte(&data[start+2], size); + pPage->nFree += size; + + /* Coalesce adjacent free blocks */ + addr = pPage->hdrOffset + 1; + while( (pbegin = get2byte(&data[addr]))>0 ){ + int pnext, psize; + assert( pbegin>addr ); + assert( pbegin<=pPage->pBt->usableSize-4 ); + pnext = get2byte(&data[pbegin]); + psize = get2byte(&data[pbegin+2]); + if( pbegin + psize + 3 >= pnext && pnext>0 ){ + int frag = pnext - (pbegin+psize); + assert( frag<=data[pPage->hdrOffset+7] ); + data[pPage->hdrOffset+7] -= frag; + put2byte(&data[pbegin], get2byte(&data[pnext])); + put2byte(&data[pbegin+2], pnext+get2byte(&data[pnext+2])-pbegin); + }else{ + addr = pbegin; + } + } + + /* If the cell content area begins with a freeblock, remove it. */ + if( data[hdr+1]==data[hdr+5] && data[hdr+2]==data[hdr+6] ){ + int top; + pbegin = get2byte(&data[hdr+1]); + memcpy(&data[hdr+1], &data[pbegin], 2); + top = get2byte(&data[hdr+5]); + put2byte(&data[hdr+5], top + get2byte(&data[pbegin+2])); + } +} + +/* +** Decode the flags byte (the first byte of the header) for a page +** and initialize fields of the MemPage structure accordingly. +*/ +static void decodeFlags(MemPage *pPage, int flagByte){ + BtShared *pBt; /* A copy of pPage->pBt */ + + assert( pPage->hdrOffset==(pPage->pgno==1 ? 100 : 0) ); + pPage->intKey = (flagByte & (PTF_INTKEY|PTF_LEAFDATA))!=0; + pPage->zeroData = (flagByte & PTF_ZERODATA)!=0; + pPage->leaf = (flagByte & PTF_LEAF)!=0; + pPage->childPtrSize = 4*(pPage->leaf==0); + pBt = pPage->pBt; + if( flagByte & PTF_LEAFDATA ){ + pPage->leafData = 1; + pPage->maxLocal = pBt->maxLeaf; + pPage->minLocal = pBt->minLeaf; + }else{ + pPage->leafData = 0; + pPage->maxLocal = pBt->maxLocal; + pPage->minLocal = pBt->minLocal; + } + pPage->hasData = !(pPage->zeroData || (!pPage->leaf && pPage->leafData)); +} + +/* +** Initialize the auxiliary information for a disk block. +** +** The pParent parameter must be a pointer to the MemPage which +** is the parent of the page being initialized. The root of a +** BTree has no parent and so for that page, pParent==NULL. +** +** Return SQLITE_OK on success. If we see that the page does +** not contain a well-formed database page, then return +** SQLITE_CORRUPT. Note that a return of SQLITE_OK does not +** guarantee that the page is well-formed. It only shows that +** we failed to detect any corruption. +*/ +static int initPage( + MemPage *pPage, /* The page to be initialized */ + MemPage *pParent /* The parent. Might be NULL */ +){ + int pc; /* Address of a freeblock within pPage->aData[] */ + int hdr; /* Offset to beginning of page header */ + u8 *data; /* Equal to pPage->aData */ + BtShared *pBt; /* The main btree structure */ + int usableSize; /* Amount of usable space on each page */ + int cellOffset; /* Offset from start of page to first cell pointer */ + int nFree; /* Number of unused bytes on the page */ + int top; /* First byte of the cell content area */ + + pBt = pPage->pBt; + assert( pBt!=0 ); + assert( pParent==0 || pParent->pBt==pBt ); + assert( pPage->pgno==sqlite3pager_pagenumber(pPage->aData) ); + assert( pPage->aData == &((unsigned char*)pPage)[-pBt->pageSize] ); + if( pPage->pParent!=pParent && (pPage->pParent!=0 || pPage->isInit) ){ + /* The parent page should never change unless the file is corrupt */ + return SQLITE_CORRUPT_BKPT; + } + if( pPage->isInit ) return SQLITE_OK; + if( pPage->pParent==0 && pParent!=0 ){ + pPage->pParent = pParent; + sqlite3pager_ref(pParent->aData); + } + hdr = pPage->hdrOffset; + data = pPage->aData; + decodeFlags(pPage, data[hdr]); + pPage->nOverflow = 0; + pPage->idxShift = 0; + usableSize = pBt->usableSize; + pPage->cellOffset = cellOffset = hdr + 12 - 4*pPage->leaf; + top = get2byte(&data[hdr+5]); + pPage->nCell = get2byte(&data[hdr+3]); + if( pPage->nCell>MX_CELL(pBt) ){ + /* To many cells for a single page. The page must be corrupt */ + return SQLITE_CORRUPT_BKPT; + } + if( pPage->nCell==0 && pParent!=0 && pParent->pgno!=1 ){ + /* All pages must have at least one cell, except for root pages */ + return SQLITE_CORRUPT_BKPT; + } + + /* Compute the total free space on the page */ + pc = get2byte(&data[hdr+1]); + nFree = data[hdr+7] + top - (cellOffset + 2*pPage->nCell); + while( pc>0 ){ + int next, size; + if( pc>usableSize-4 ){ + /* Free block is off the page */ + return SQLITE_CORRUPT_BKPT; + } + next = get2byte(&data[pc]); + size = get2byte(&data[pc+2]); + if( next>0 && next<=pc+size+3 ){ + /* Free blocks must be in accending order */ + return SQLITE_CORRUPT_BKPT; + } + nFree += size; + pc = next; + } + pPage->nFree = nFree; + if( nFree>=usableSize ){ + /* Free space cannot exceed total page size */ + return SQLITE_CORRUPT_BKPT; + } + + pPage->isInit = 1; + return SQLITE_OK; +} + +/* +** Set up a raw page so that it looks like a database page holding +** no entries. +*/ +static void zeroPage(MemPage *pPage, int flags){ + unsigned char *data = pPage->aData; + BtShared *pBt = pPage->pBt; + int hdr = pPage->hdrOffset; + int first; + + assert( sqlite3pager_pagenumber(data)==pPage->pgno ); + assert( &data[pBt->pageSize] == (unsigned char*)pPage ); + assert( sqlite3pager_iswriteable(data) ); + memset(&data[hdr], 0, pBt->usableSize - hdr); + data[hdr] = flags; + first = hdr + 8 + 4*((flags&PTF_LEAF)==0); + memset(&data[hdr+1], 0, 4); + data[hdr+7] = 0; + put2byte(&data[hdr+5], pBt->usableSize); + pPage->nFree = pBt->usableSize - first; + decodeFlags(pPage, flags); + pPage->hdrOffset = hdr; + pPage->cellOffset = first; + pPage->nOverflow = 0; + pPage->idxShift = 0; + pPage->nCell = 0; + pPage->isInit = 1; +} + +/* +** Get a page from the pager. Initialize the MemPage.pBt and +** MemPage.aData elements if needed. +*/ +static int getPage(BtShared *pBt, Pgno pgno, MemPage **ppPage){ + int rc; + unsigned char *aData; + MemPage *pPage; + rc = sqlite3pager_get(pBt->pPager, pgno, (void**)&aData); + if( rc ) return rc; + pPage = (MemPage*)&aData[pBt->pageSize]; + pPage->aData = aData; + pPage->pBt = pBt; + pPage->pgno = pgno; + pPage->hdrOffset = pPage->pgno==1 ? 100 : 0; + *ppPage = pPage; + return SQLITE_OK; +} + +/* +** Get a page from the pager and initialize it. This routine +** is just a convenience wrapper around separate calls to +** getPage() and initPage(). +*/ +static int getAndInitPage( + BtShared *pBt, /* The database file */ + Pgno pgno, /* Number of the page to get */ + MemPage **ppPage, /* Write the page pointer here */ + MemPage *pParent /* Parent of the page */ +){ + int rc; + if( pgno==0 ){ + return SQLITE_CORRUPT_BKPT; + } + rc = getPage(pBt, pgno, ppPage); + if( rc==SQLITE_OK && (*ppPage)->isInit==0 ){ + rc = initPage(*ppPage, pParent); + } + return rc; +} + +/* +** Release a MemPage. This should be called once for each prior +** call to getPage. +*/ +static void releasePage(MemPage *pPage){ + if( pPage ){ + assert( pPage->aData ); + assert( pPage->pBt ); + assert( &pPage->aData[pPage->pBt->pageSize]==(unsigned char*)pPage ); + sqlite3pager_unref(pPage->aData); + } +} + +/* +** This routine is called when the reference count for a page +** reaches zero. We need to unref the pParent pointer when that +** happens. +*/ +static void pageDestructor(void *pData, int pageSize){ + MemPage *pPage; + assert( (pageSize & 7)==0 ); + pPage = (MemPage*)&((char*)pData)[pageSize]; + if( pPage->pParent ){ + MemPage *pParent = pPage->pParent; + pPage->pParent = 0; + releasePage(pParent); + } + pPage->isInit = 0; +} + +/* +** During a rollback, when the pager reloads information into the cache +** so that the cache is restored to its original state at the start of +** the transaction, for each page restored this routine is called. +** +** This routine needs to reset the extra data section at the end of the +** page to agree with the restored data. +*/ +static void pageReinit(void *pData, int pageSize){ + MemPage *pPage; + assert( (pageSize & 7)==0 ); + pPage = (MemPage*)&((char*)pData)[pageSize]; + if( pPage->isInit ){ + pPage->isInit = 0; + initPage(pPage, pPage->pParent); + } +} + +/* +** Open a database file. +** +** zFilename is the name of the database file. If zFilename is NULL +** a new database with a random name is created. This randomly named +** database file will be deleted when sqlite3BtreeClose() is called. +*/ +int sqlite3BtreeOpen( + const char *zFilename, /* Name of the file containing the BTree database */ + sqlite3 *pSqlite, /* Associated database handle */ + Btree **ppBtree, /* Pointer to new Btree object written here */ + int flags /* Options */ +){ + BtShared *pBt; /* Shared part of btree structure */ + Btree *p; /* Handle to return */ + int rc; + int nReserve; + unsigned char zDbHeader[100]; +#if !defined(SQLITE_OMIT_SHARED_CACHE) && !defined(SQLITE_OMIT_DISKIO) + const ThreadData *pTsdro; +#endif + + /* Set the variable isMemdb to true for an in-memory database, or + ** false for a file-based database. This symbol is only required if + ** either of the shared-data or autovacuum features are compiled + ** into the library. + */ +#if !defined(SQLITE_OMIT_SHARED_CACHE) || !defined(SQLITE_OMIT_AUTOVACUUM) + #ifdef SQLITE_OMIT_MEMORYDB + const int isMemdb = 0; + #else + const int isMemdb = zFilename && !strcmp(zFilename, ":memory:"); + #endif +#endif + + p = sqliteMalloc(sizeof(Btree)); + if( !p ){ + return SQLITE_NOMEM; + } + p->inTrans = TRANS_NONE; + p->pSqlite = pSqlite; + + /* Try to find an existing Btree structure opened on zFilename. */ +#if !defined(SQLITE_OMIT_SHARED_CACHE) && !defined(SQLITE_OMIT_DISKIO) + pTsdro = sqlite3ThreadDataReadOnly(); + if( pTsdro->useSharedData && zFilename && !isMemdb ){ + char *zFullPathname = sqlite3OsFullPathname(zFilename); + if( !zFullPathname ){ + sqliteFree(p); + return SQLITE_NOMEM; + } + for(pBt=pTsdro->pBtree; pBt; pBt=pBt->pNext){ + assert( pBt->nRef>0 ); + if( 0==strcmp(zFullPathname, sqlite3pager_filename(pBt->pPager)) ){ + p->pBt = pBt; + *ppBtree = p; + pBt->nRef++; + sqliteFree(zFullPathname); + return SQLITE_OK; + } + } + sqliteFree(zFullPathname); + } +#endif + + /* + ** The following asserts make sure that structures used by the btree are + ** the right size. This is to guard against size changes that result + ** when compiling on a different architecture. + */ + assert( sizeof(i64)==8 || sizeof(i64)==4 ); + assert( sizeof(u64)==8 || sizeof(u64)==4 ); + assert( sizeof(u32)==4 ); + assert( sizeof(u16)==2 ); + assert( sizeof(Pgno)==4 ); + + pBt = sqliteMalloc( sizeof(*pBt) ); + if( pBt==0 ){ + *ppBtree = 0; + sqliteFree(p); + return SQLITE_NOMEM; + } + rc = sqlite3pager_open(&pBt->pPager, zFilename, EXTRA_SIZE, flags); + if( rc==SQLITE_OK ){ + rc = sqlite3pager_read_fileheader(pBt->pPager,sizeof(zDbHeader),zDbHeader); + } + if( rc!=SQLITE_OK ){ + if( pBt->pPager ){ + sqlite3pager_close(pBt->pPager); + } + sqliteFree(pBt); + sqliteFree(p); + *ppBtree = 0; + return rc; + } + p->pBt = pBt; + + sqlite3pager_set_destructor(pBt->pPager, pageDestructor); + sqlite3pager_set_reiniter(pBt->pPager, pageReinit); + pBt->pCursor = 0; + pBt->pPage1 = 0; + pBt->readOnly = sqlite3pager_isreadonly(pBt->pPager); + pBt->pageSize = get2byte(&zDbHeader[16]); + if( pBt->pageSize<512 || pBt->pageSize>SQLITE_MAX_PAGE_SIZE + || ((pBt->pageSize-1)&pBt->pageSize)!=0 ){ + pBt->pageSize = SQLITE_DEFAULT_PAGE_SIZE; + pBt->maxEmbedFrac = 64; /* 25% */ + pBt->minEmbedFrac = 32; /* 12.5% */ + pBt->minLeafFrac = 32; /* 12.5% */ +#ifndef SQLITE_OMIT_AUTOVACUUM + /* If the magic name ":memory:" will create an in-memory database, then + ** do not set the auto-vacuum flag, even if SQLITE_DEFAULT_AUTOVACUUM + ** is true. On the other hand, if SQLITE_OMIT_MEMORYDB has been defined, + ** then ":memory:" is just a regular file-name. Respect the auto-vacuum + ** default in this case. + */ + if( zFilename && !isMemdb ){ + pBt->autoVacuum = SQLITE_DEFAULT_AUTOVACUUM; + } +#endif + nReserve = 0; + }else{ + nReserve = zDbHeader[20]; + pBt->maxEmbedFrac = zDbHeader[21]; + pBt->minEmbedFrac = zDbHeader[22]; + pBt->minLeafFrac = zDbHeader[23]; + pBt->pageSizeFixed = 1; +#ifndef SQLITE_OMIT_AUTOVACUUM + pBt->autoVacuum = (get4byte(&zDbHeader[36 + 4*4])?1:0); +#endif + } + pBt->usableSize = pBt->pageSize - nReserve; + assert( (pBt->pageSize & 7)==0 ); /* 8-byte alignment of pageSize */ + sqlite3pager_set_pagesize(pBt->pPager, pBt->pageSize); + +#if !defined(SQLITE_OMIT_SHARED_CACHE) && !defined(SQLITE_OMIT_DISKIO) + /* Add the new btree to the linked list starting at ThreadData.pBtree. + ** There is no chance that a malloc() may fail inside of the + ** sqlite3ThreadData() call, as the ThreadData structure must have already + ** been allocated for pTsdro->useSharedData to be non-zero. + */ + if( pTsdro->useSharedData && zFilename && !isMemdb ){ + pBt->pNext = pTsdro->pBtree; + sqlite3ThreadData()->pBtree = pBt; + } +#endif + pBt->nRef = 1; + *ppBtree = p; + return SQLITE_OK; +} + +/* +** Close an open database and invalidate all cursors. +*/ +int sqlite3BtreeClose(Btree *p){ + BtShared *pBt = p->pBt; + BtCursor *pCur; + +#ifndef SQLITE_OMIT_SHARED_CACHE + ThreadData *pTsd; +#endif + + /* Close all cursors opened via this handle. */ + pCur = pBt->pCursor; + while( pCur ){ + BtCursor *pTmp = pCur; + pCur = pCur->pNext; + if( pTmp->pBtree==p ){ + sqlite3BtreeCloseCursor(pTmp); + } + } + + /* Rollback any active transaction and free the handle structure. + ** The call to sqlite3BtreeRollback() drops any table-locks held by + ** this handle. + */ + sqlite3BtreeRollback(p); + sqliteFree(p); + +#ifndef SQLITE_OMIT_SHARED_CACHE + /* If there are still other outstanding references to the shared-btree + ** structure, return now. The remainder of this procedure cleans + ** up the shared-btree. + */ + assert( pBt->nRef>0 ); + pBt->nRef--; + if( pBt->nRef ){ + return SQLITE_OK; + } + + /* Remove the shared-btree from the thread wide list. Call + ** ThreadDataReadOnly() and then cast away the const property of the + ** pointer to avoid allocating thread data if it is not really required. + */ + pTsd = (ThreadData *)sqlite3ThreadDataReadOnly(); + if( pTsd->pBtree==pBt ){ + assert( pTsd==sqlite3ThreadData() ); + pTsd->pBtree = pBt->pNext; + }else{ + BtShared *pPrev; + for(pPrev=pTsd->pBtree; pPrev && pPrev->pNext!=pBt; pPrev=pPrev->pNext){} + if( pPrev ){ + assert( pTsd==sqlite3ThreadData() ); + pPrev->pNext = pBt->pNext; + } + } +#endif + + /* Close the pager and free the shared-btree structure */ + assert( !pBt->pCursor ); + sqlite3pager_close(pBt->pPager); + if( pBt->xFreeSchema && pBt->pSchema ){ + pBt->xFreeSchema(pBt->pSchema); + } + sqliteFree(pBt->pSchema); + sqliteFree(pBt); + return SQLITE_OK; +} + +/* +** Change the busy handler callback function. +*/ +int sqlite3BtreeSetBusyHandler(Btree *p, BusyHandler *pHandler){ + BtShared *pBt = p->pBt; + pBt->pBusyHandler = pHandler; + sqlite3pager_set_busyhandler(pBt->pPager, pHandler); + return SQLITE_OK; +} + +/* +** Change the limit on the number of pages allowed in the cache. +** +** The maximum number of cache pages is set to the absolute +** value of mxPage. If mxPage is negative, the pager will +** operate asynchronously - it will not stop to do fsync()s +** to insure data is written to the disk surface before +** continuing. Transactions still work if synchronous is off, +** and the database cannot be corrupted if this program +** crashes. But if the operating system crashes or there is +** an abrupt power failure when synchronous is off, the database +** could be left in an inconsistent and unrecoverable state. +** Synchronous is on by default so database corruption is not +** normally a worry. +*/ +int sqlite3BtreeSetCacheSize(Btree *p, int mxPage){ + BtShared *pBt = p->pBt; + sqlite3pager_set_cachesize(pBt->pPager, mxPage); + return SQLITE_OK; +} + +/* +** Change the way data is synced to disk in order to increase or decrease +** how well the database resists damage due to OS crashes and power +** failures. Level 1 is the same as asynchronous (no syncs() occur and +** there is a high probability of damage) Level 2 is the default. There +** is a very low but non-zero probability of damage. Level 3 reduces the +** probability of damage to near zero but with a write performance reduction. +*/ +#ifndef SQLITE_OMIT_PAGER_PRAGMAS +int sqlite3BtreeSetSafetyLevel(Btree *p, int level, int fullSync){ + BtShared *pBt = p->pBt; + sqlite3pager_set_safety_level(pBt->pPager, level, fullSync); + return SQLITE_OK; +} +#endif + +/* +** Return TRUE if the given btree is set to safety level 1. In other +** words, return TRUE if no sync() occurs on the disk files. +*/ +int sqlite3BtreeSyncDisabled(Btree *p){ + BtShared *pBt = p->pBt; + assert( pBt && pBt->pPager ); + return sqlite3pager_nosync(pBt->pPager); +} + +#if !defined(SQLITE_OMIT_PAGER_PRAGMAS) || !defined(SQLITE_OMIT_VACUUM) +/* +** Change the default pages size and the number of reserved bytes per page. +** +** The page size must be a power of 2 between 512 and 65536. If the page +** size supplied does not meet this constraint then the page size is not +** changed. +** +** Page sizes are constrained to be a power of two so that the region +** of the database file used for locking (beginning at PENDING_BYTE, +** the first byte past the 1GB boundary, 0x40000000) needs to occur +** at the beginning of a page. +** +** If parameter nReserve is less than zero, then the number of reserved +** bytes per page is left unchanged. +*/ +int sqlite3BtreeSetPageSize(Btree *p, int pageSize, int nReserve){ + BtShared *pBt = p->pBt; + if( pBt->pageSizeFixed ){ + return SQLITE_READONLY; + } + if( nReserve<0 ){ + nReserve = pBt->pageSize - pBt->usableSize; + } + if( pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE && + ((pageSize-1)&pageSize)==0 ){ + assert( (pageSize & 7)==0 ); + assert( !pBt->pPage1 && !pBt->pCursor ); + pBt->pageSize = sqlite3pager_set_pagesize(pBt->pPager, pageSize); + } + pBt->usableSize = pBt->pageSize - nReserve; + return SQLITE_OK; +} + +/* +** Return the currently defined page size +*/ +int sqlite3BtreeGetPageSize(Btree *p){ + return p->pBt->pageSize; +} +int sqlite3BtreeGetReserve(Btree *p){ + return p->pBt->pageSize - p->pBt->usableSize; +} +#endif /* !defined(SQLITE_OMIT_PAGER_PRAGMAS) || !defined(SQLITE_OMIT_VACUUM) */ + +/* +** Change the 'auto-vacuum' property of the database. If the 'autoVacuum' +** parameter is non-zero, then auto-vacuum mode is enabled. If zero, it +** is disabled. The default value for the auto-vacuum property is +** determined by the SQLITE_DEFAULT_AUTOVACUUM macro. +*/ +int sqlite3BtreeSetAutoVacuum(Btree *p, int autoVacuum){ + BtShared *pBt = p->pBt;; +#ifdef SQLITE_OMIT_AUTOVACUUM + return SQLITE_READONLY; +#else + if( pBt->pageSizeFixed ){ + return SQLITE_READONLY; + } + pBt->autoVacuum = (autoVacuum?1:0); + return SQLITE_OK; +#endif +} + +/* +** Return the value of the 'auto-vacuum' property. If auto-vacuum is +** enabled 1 is returned. Otherwise 0. +*/ +int sqlite3BtreeGetAutoVacuum(Btree *p){ +#ifdef SQLITE_OMIT_AUTOVACUUM + return 0; +#else + return p->pBt->autoVacuum; +#endif +} + + +/* +** Get a reference to pPage1 of the database file. This will +** also acquire a readlock on that file. +** +** SQLITE_OK is returned on success. If the file is not a +** well-formed database file, then SQLITE_CORRUPT is returned. +** SQLITE_BUSY is returned if the database is locked. SQLITE_NOMEM +** is returned if we run out of memory. SQLITE_PROTOCOL is returned +** if there is a locking protocol violation. +*/ +static int lockBtree(BtShared *pBt){ + int rc, pageSize; + MemPage *pPage1; + if( pBt->pPage1 ) return SQLITE_OK; + rc = getPage(pBt, 1, &pPage1); + if( rc!=SQLITE_OK ) return rc; + + + /* Do some checking to help insure the file we opened really is + ** a valid database file. + */ + rc = SQLITE_NOTADB; + if( sqlite3pager_pagecount(pBt->pPager)>0 ){ + u8 *page1 = pPage1->aData; + if( memcmp(page1, zMagicHeader, 16)!=0 ){ + goto page1_init_failed; + } + if( page1[18]>1 || page1[19]>1 ){ + goto page1_init_failed; + } + pageSize = get2byte(&page1[16]); + if( ((pageSize-1)&pageSize)!=0 ){ + goto page1_init_failed; + } + assert( (pageSize & 7)==0 ); + pBt->pageSize = pageSize; + pBt->usableSize = pageSize - page1[20]; + if( pBt->usableSize<500 ){ + goto page1_init_failed; + } + pBt->maxEmbedFrac = page1[21]; + pBt->minEmbedFrac = page1[22]; + pBt->minLeafFrac = page1[23]; +#ifndef SQLITE_OMIT_AUTOVACUUM + pBt->autoVacuum = (get4byte(&page1[36 + 4*4])?1:0); +#endif + } + + /* maxLocal is the maximum amount of payload to store locally for + ** a cell. Make sure it is small enough so that at least minFanout + ** cells can will fit on one page. We assume a 10-byte page header. + ** Besides the payload, the cell must store: + ** 2-byte pointer to the cell + ** 4-byte child pointer + ** 9-byte nKey value + ** 4-byte nData value + ** 4-byte overflow page pointer + ** So a cell consists of a 2-byte poiner, a header which is as much as + ** 17 bytes long, 0 to N bytes of payload, and an optional 4 byte overflow + ** page pointer. + */ + pBt->maxLocal = (pBt->usableSize-12)*pBt->maxEmbedFrac/255 - 23; + pBt->minLocal = (pBt->usableSize-12)*pBt->minEmbedFrac/255 - 23; + pBt->maxLeaf = pBt->usableSize - 35; + pBt->minLeaf = (pBt->usableSize-12)*pBt->minLeafFrac/255 - 23; + if( pBt->minLocal>pBt->maxLocal || pBt->maxLocal<0 ){ + goto page1_init_failed; + } + assert( pBt->maxLeaf + 23 <= MX_CELL_SIZE(pBt) ); + pBt->pPage1 = pPage1; + return SQLITE_OK; + +page1_init_failed: + releasePage(pPage1); + pBt->pPage1 = 0; + return rc; +} + +/* +** This routine works like lockBtree() except that it also invokes the +** busy callback if there is lock contention. +*/ +static int lockBtreeWithRetry(Btree *pRef){ + int rc = SQLITE_OK; + if( pRef->inTrans==TRANS_NONE ){ + u8 inTransaction = pRef->pBt->inTransaction; + btreeIntegrity(pRef); + rc = sqlite3BtreeBeginTrans(pRef, 0); + pRef->pBt->inTransaction = inTransaction; + pRef->inTrans = TRANS_NONE; + if( rc==SQLITE_OK ){ + pRef->pBt->nTransaction--; + } + btreeIntegrity(pRef); + } + return rc; +} + + +/* +** If there are no outstanding cursors and we are not in the middle +** of a transaction but there is a read lock on the database, then +** this routine unrefs the first page of the database file which +** has the effect of releasing the read lock. +** +** If there are any outstanding cursors, this routine is a no-op. +** +** If there is a transaction in progress, this routine is a no-op. +*/ +static void unlockBtreeIfUnused(BtShared *pBt){ + if( pBt->inTransaction==TRANS_NONE && pBt->pCursor==0 && pBt->pPage1!=0 ){ + if( sqlite3pager_refcount(pBt->pPager)>=1 ){ + if( pBt->pPage1->aData==0 ){ + MemPage *pPage = pBt->pPage1; + pPage->aData = &((u8*)pPage)[-pBt->pageSize]; + pPage->pBt = pBt; + pPage->pgno = 1; + } + releasePage(pBt->pPage1); + } + pBt->pPage1 = 0; + pBt->inStmt = 0; + } +} + +/* +** Create a new database by initializing the first page of the +** file. +*/ +static int newDatabase(BtShared *pBt){ + MemPage *pP1; + unsigned char *data; + int rc; + if( sqlite3pager_pagecount(pBt->pPager)>0 ) return SQLITE_OK; + pP1 = pBt->pPage1; + assert( pP1!=0 ); + data = pP1->aData; + rc = sqlite3pager_write(data); + if( rc ) return rc; + memcpy(data, zMagicHeader, sizeof(zMagicHeader)); + assert( sizeof(zMagicHeader)==16 ); + put2byte(&data[16], pBt->pageSize); + data[18] = 1; + data[19] = 1; + data[20] = pBt->pageSize - pBt->usableSize; + data[21] = pBt->maxEmbedFrac; + data[22] = pBt->minEmbedFrac; + data[23] = pBt->minLeafFrac; + memset(&data[24], 0, 100-24); + zeroPage(pP1, PTF_INTKEY|PTF_LEAF|PTF_LEAFDATA ); + pBt->pageSizeFixed = 1; +#ifndef SQLITE_OMIT_AUTOVACUUM + if( pBt->autoVacuum ){ + put4byte(&data[36 + 4*4], 1); + } +#endif + return SQLITE_OK; +} + +/* +** Attempt to start a new transaction. A write-transaction +** is started if the second argument is nonzero, otherwise a read- +** transaction. If the second argument is 2 or more and exclusive +** transaction is started, meaning that no other process is allowed +** to access the database. A preexisting transaction may not be +** upgraded to exclusive by calling this routine a second time - the +** exclusivity flag only works for a new transaction. +** +** A write-transaction must be started before attempting any +** changes to the database. None of the following routines +** will work unless a transaction is started first: +** +** sqlite3BtreeCreateTable() +** sqlite3BtreeCreateIndex() +** sqlite3BtreeClearTable() +** sqlite3BtreeDropTable() +** sqlite3BtreeInsert() +** sqlite3BtreeDelete() +** sqlite3BtreeUpdateMeta() +** +** If an initial attempt to acquire the lock fails because of lock contention +** and the database was previously unlocked, then invoke the busy handler +** if there is one. But if there was previously a read-lock, do not +** invoke the busy handler - just return SQLITE_BUSY. SQLITE_BUSY is +** returned when there is already a read-lock in order to avoid a deadlock. +** +** Suppose there are two processes A and B. A has a read lock and B has +** a reserved lock. B tries to promote to exclusive but is blocked because +** of A's read lock. A tries to promote to reserved but is blocked by B. +** One or the other of the two processes must give way or there can be +** no progress. By returning SQLITE_BUSY and not invoking the busy callback +** when A already has a read lock, we encourage A to give up and let B +** proceed. +*/ +int sqlite3BtreeBeginTrans(Btree *p, int wrflag){ + BtShared *pBt = p->pBt; + int rc = SQLITE_OK; + + btreeIntegrity(p); + + /* If the btree is already in a write-transaction, or it + ** is already in a read-transaction and a read-transaction + ** is requested, this is a no-op. + */ + if( p->inTrans==TRANS_WRITE || (p->inTrans==TRANS_READ && !wrflag) ){ + return SQLITE_OK; + } + + /* Write transactions are not possible on a read-only database */ + if( pBt->readOnly && wrflag ){ + return SQLITE_READONLY; + } + + /* If another database handle has already opened a write transaction + ** on this shared-btree structure and a second write transaction is + ** requested, return SQLITE_BUSY. + */ + if( pBt->inTransaction==TRANS_WRITE && wrflag ){ + return SQLITE_BUSY; + } + + do { + if( pBt->pPage1==0 ){ + rc = lockBtree(pBt); + } + + if( rc==SQLITE_OK && wrflag ){ + rc = sqlite3pager_begin(pBt->pPage1->aData, wrflag>1); + if( rc==SQLITE_OK ){ + rc = newDatabase(pBt); + } + } + + if( rc==SQLITE_OK ){ + if( wrflag ) pBt->inStmt = 0; + }else{ + unlockBtreeIfUnused(pBt); + } + }while( rc==SQLITE_BUSY && pBt->inTransaction==TRANS_NONE && + sqlite3InvokeBusyHandler(pBt->pBusyHandler) ); + + if( rc==SQLITE_OK ){ + if( p->inTrans==TRANS_NONE ){ + pBt->nTransaction++; + } + p->inTrans = (wrflag?TRANS_WRITE:TRANS_READ); + if( p->inTrans>pBt->inTransaction ){ + pBt->inTransaction = p->inTrans; + } + } + + btreeIntegrity(p); + return rc; +} + +#ifndef SQLITE_OMIT_AUTOVACUUM + +/* +** Set the pointer-map entries for all children of page pPage. Also, if +** pPage contains cells that point to overflow pages, set the pointer +** map entries for the overflow pages as well. +*/ +static int setChildPtrmaps(MemPage *pPage){ + int i; /* Counter variable */ + int nCell; /* Number of cells in page pPage */ + int rc = SQLITE_OK; /* Return code */ + BtShared *pBt = pPage->pBt; + int isInitOrig = pPage->isInit; + Pgno pgno = pPage->pgno; + + initPage(pPage, 0); + nCell = pPage->nCell; + + for(i=0; ileaf ){ + Pgno childPgno = get4byte(pCell); + rc = ptrmapPut(pBt, childPgno, PTRMAP_BTREE, pgno); + if( rc!=SQLITE_OK ) goto set_child_ptrmaps_out; + } + } + + if( !pPage->leaf ){ + Pgno childPgno = get4byte(&pPage->aData[pPage->hdrOffset+8]); + rc = ptrmapPut(pBt, childPgno, PTRMAP_BTREE, pgno); + } + +set_child_ptrmaps_out: + pPage->isInit = isInitOrig; + return rc; +} + +/* +** Somewhere on pPage, which is guarenteed to be a btree page, not an overflow +** page, is a pointer to page iFrom. Modify this pointer so that it points to +** iTo. Parameter eType describes the type of pointer to be modified, as +** follows: +** +** PTRMAP_BTREE: pPage is a btree-page. The pointer points at a child +** page of pPage. +** +** PTRMAP_OVERFLOW1: pPage is a btree-page. The pointer points at an overflow +** page pointed to by one of the cells on pPage. +** +** PTRMAP_OVERFLOW2: pPage is an overflow-page. The pointer points at the next +** overflow page in the list. +*/ +static int modifyPagePointer(MemPage *pPage, Pgno iFrom, Pgno iTo, u8 eType){ + if( eType==PTRMAP_OVERFLOW2 ){ + /* The pointer is always the first 4 bytes of the page in this case. */ + if( get4byte(pPage->aData)!=iFrom ){ + return SQLITE_CORRUPT_BKPT; + } + put4byte(pPage->aData, iTo); + }else{ + int isInitOrig = pPage->isInit; + int i; + int nCell; + + initPage(pPage, 0); + nCell = pPage->nCell; + + for(i=0; iaData[pPage->hdrOffset+8])!=iFrom ){ + return SQLITE_CORRUPT_BKPT; + } + put4byte(&pPage->aData[pPage->hdrOffset+8], iTo); + } + + pPage->isInit = isInitOrig; + } + return SQLITE_OK; +} + + +/* +** Move the open database page pDbPage to location iFreePage in the +** database. The pDbPage reference remains valid. +*/ +static int relocatePage( + BtShared *pBt, /* Btree */ + MemPage *pDbPage, /* Open page to move */ + u8 eType, /* Pointer map 'type' entry for pDbPage */ + Pgno iPtrPage, /* Pointer map 'page-no' entry for pDbPage */ + Pgno iFreePage /* The location to move pDbPage to */ +){ + MemPage *pPtrPage; /* The page that contains a pointer to pDbPage */ + Pgno iDbPage = pDbPage->pgno; + Pager *pPager = pBt->pPager; + int rc; + + assert( eType==PTRMAP_OVERFLOW2 || eType==PTRMAP_OVERFLOW1 || + eType==PTRMAP_BTREE || eType==PTRMAP_ROOTPAGE ); + + /* Move page iDbPage from it's current location to page number iFreePage */ + TRACE(("AUTOVACUUM: Moving %d to free page %d (ptr page %d type %d)\n", + iDbPage, iFreePage, iPtrPage, eType)); + rc = sqlite3pager_movepage(pPager, pDbPage->aData, iFreePage); + if( rc!=SQLITE_OK ){ + return rc; + } + pDbPage->pgno = iFreePage; + + /* If pDbPage was a btree-page, then it may have child pages and/or cells + ** that point to overflow pages. The pointer map entries for all these + ** pages need to be changed. + ** + ** If pDbPage is an overflow page, then the first 4 bytes may store a + ** pointer to a subsequent overflow page. If this is the case, then + ** the pointer map needs to be updated for the subsequent overflow page. + */ + if( eType==PTRMAP_BTREE || eType==PTRMAP_ROOTPAGE ){ + rc = setChildPtrmaps(pDbPage); + if( rc!=SQLITE_OK ){ + return rc; + } + }else{ + Pgno nextOvfl = get4byte(pDbPage->aData); + if( nextOvfl!=0 ){ + rc = ptrmapPut(pBt, nextOvfl, PTRMAP_OVERFLOW2, iFreePage); + if( rc!=SQLITE_OK ){ + return rc; + } + } + } + + /* Fix the database pointer on page iPtrPage that pointed at iDbPage so + ** that it points at iFreePage. Also fix the pointer map entry for + ** iPtrPage. + */ + if( eType!=PTRMAP_ROOTPAGE ){ + rc = getPage(pBt, iPtrPage, &pPtrPage); + if( rc!=SQLITE_OK ){ + return rc; + } + rc = sqlite3pager_write(pPtrPage->aData); + if( rc!=SQLITE_OK ){ + releasePage(pPtrPage); + return rc; + } + rc = modifyPagePointer(pPtrPage, iDbPage, iFreePage, eType); + releasePage(pPtrPage); + if( rc==SQLITE_OK ){ + rc = ptrmapPut(pBt, iFreePage, eType, iPtrPage); + } + } + return rc; +} + +/* Forward declaration required by autoVacuumCommit(). */ +static int allocatePage(BtShared *, MemPage **, Pgno *, Pgno, u8); + +/* +** This routine is called prior to sqlite3pager_commit when a transaction +** is commited for an auto-vacuum database. +*/ +static int autoVacuumCommit(BtShared *pBt, Pgno *nTrunc){ + Pager *pPager = pBt->pPager; + Pgno nFreeList; /* Number of pages remaining on the free-list. */ + int nPtrMap; /* Number of pointer-map pages deallocated */ + Pgno origSize; /* Pages in the database file */ + Pgno finSize; /* Pages in the database file after truncation */ + int rc; /* Return code */ + u8 eType; + int pgsz = pBt->pageSize; /* Page size for this database */ + Pgno iDbPage; /* The database page to move */ + MemPage *pDbMemPage = 0; /* "" */ + Pgno iPtrPage; /* The page that contains a pointer to iDbPage */ + Pgno iFreePage; /* The free-list page to move iDbPage to */ + MemPage *pFreeMemPage = 0; /* "" */ + +#ifndef NDEBUG + int nRef = sqlite3pager_refcount(pPager); +#endif + + assert( pBt->autoVacuum ); + if( PTRMAP_ISPAGE(pBt, sqlite3pager_pagecount(pPager)) ){ + return SQLITE_CORRUPT_BKPT; + } + + /* Figure out how many free-pages are in the database. If there are no + ** free pages, then auto-vacuum is a no-op. + */ + nFreeList = get4byte(&pBt->pPage1->aData[36]); + if( nFreeList==0 ){ + *nTrunc = 0; + return SQLITE_OK; + } + + /* This block figures out how many pages there are in the database + ** now (variable origSize), and how many there will be after the + ** truncation (variable finSize). + ** + ** The final size is the original size, less the number of free pages + ** in the database, less any pointer-map pages that will no longer + ** be required, less 1 if the pending-byte page was part of the database + ** but is not after the truncation. + **/ + origSize = sqlite3pager_pagecount(pPager); + if( origSize==PENDING_BYTE_PAGE(pBt) ){ + origSize--; + } + nPtrMap = (nFreeList-origSize+PTRMAP_PAGENO(pBt, origSize)+pgsz/5)/(pgsz/5); + finSize = origSize - nFreeList - nPtrMap; + if( origSize>PENDING_BYTE_PAGE(pBt) && finSize<=PENDING_BYTE_PAGE(pBt) ){ + finSize--; + } + while( PTRMAP_ISPAGE(pBt, finSize) || finSize==PENDING_BYTE_PAGE(pBt) ){ + finSize--; + } + TRACE(("AUTOVACUUM: Begin (db size %d->%d)\n", origSize, finSize)); + + /* Variable 'finSize' will be the size of the file in pages after + ** the auto-vacuum has completed (the current file size minus the number + ** of pages on the free list). Loop through the pages that lie beyond + ** this mark, and if they are not already on the free list, move them + ** to a free page earlier in the file (somewhere before finSize). + */ + for( iDbPage=finSize+1; iDbPage<=origSize; iDbPage++ ){ + /* If iDbPage is a pointer map page, or the pending-byte page, skip it. */ + if( PTRMAP_ISPAGE(pBt, iDbPage) || iDbPage==PENDING_BYTE_PAGE(pBt) ){ + continue; + } + + rc = ptrmapGet(pBt, iDbPage, &eType, &iPtrPage); + if( rc!=SQLITE_OK ) goto autovacuum_out; + if( eType==PTRMAP_ROOTPAGE ){ + rc = SQLITE_CORRUPT_BKPT; + goto autovacuum_out; + } + + /* If iDbPage is free, do not swap it. */ + if( eType==PTRMAP_FREEPAGE ){ + continue; + } + rc = getPage(pBt, iDbPage, &pDbMemPage); + if( rc!=SQLITE_OK ) goto autovacuum_out; + + /* Find the next page in the free-list that is not already at the end + ** of the file. A page can be pulled off the free list using the + ** allocatePage() routine. + */ + do{ + if( pFreeMemPage ){ + releasePage(pFreeMemPage); + pFreeMemPage = 0; + } + rc = allocatePage(pBt, &pFreeMemPage, &iFreePage, 0, 0); + if( rc!=SQLITE_OK ){ + releasePage(pDbMemPage); + goto autovacuum_out; + } + assert( iFreePage<=origSize ); + }while( iFreePage>finSize ); + releasePage(pFreeMemPage); + pFreeMemPage = 0; + + /* Relocate the page into the body of the file. Note that although the + ** page has moved within the database file, the pDbMemPage pointer + ** remains valid. This means that this function can run without + ** invalidating cursors open on the btree. This is important in + ** shared-cache mode. + */ + rc = relocatePage(pBt, pDbMemPage, eType, iPtrPage, iFreePage); + releasePage(pDbMemPage); + if( rc!=SQLITE_OK ) goto autovacuum_out; + } + + /* The entire free-list has been swapped to the end of the file. So + ** truncate the database file to finSize pages and consider the + ** free-list empty. + */ + rc = sqlite3pager_write(pBt->pPage1->aData); + if( rc!=SQLITE_OK ) goto autovacuum_out; + put4byte(&pBt->pPage1->aData[32], 0); + put4byte(&pBt->pPage1->aData[36], 0); + *nTrunc = finSize; + assert( finSize!=PENDING_BYTE_PAGE(pBt) ); + +autovacuum_out: + assert( nRef==sqlite3pager_refcount(pPager) ); + if( rc!=SQLITE_OK ){ + sqlite3pager_rollback(pPager); + } + return rc; +} +#endif + +/* +** Commit the transaction currently in progress. +** +** This will release the write lock on the database file. If there +** are no active cursors, it also releases the read lock. +*/ +int sqlite3BtreeCommit(Btree *p){ + BtShared *pBt = p->pBt; + + btreeIntegrity(p); + + /* If the handle has a write-transaction open, commit the shared-btrees + ** transaction and set the shared state to TRANS_READ. + */ + if( p->inTrans==TRANS_WRITE ){ + int rc; + assert( pBt->inTransaction==TRANS_WRITE ); + assert( pBt->nTransaction>0 ); + rc = sqlite3pager_commit(pBt->pPager); + if( rc!=SQLITE_OK ){ + return rc; + } + pBt->inTransaction = TRANS_READ; + pBt->inStmt = 0; + } + unlockAllTables(p); + + /* If the handle has any kind of transaction open, decrement the transaction + ** count of the shared btree. If the transaction count reaches 0, set + ** the shared state to TRANS_NONE. The unlockBtreeIfUnused() call below + ** will unlock the pager. + */ + if( p->inTrans!=TRANS_NONE ){ + pBt->nTransaction--; + if( 0==pBt->nTransaction ){ + pBt->inTransaction = TRANS_NONE; + } + } + + /* Set the handles current transaction state to TRANS_NONE and unlock + ** the pager if this call closed the only read or write transaction. + */ + p->inTrans = TRANS_NONE; + unlockBtreeIfUnused(pBt); + + btreeIntegrity(p); + return SQLITE_OK; +} + +#ifndef NDEBUG +/* +** Return the number of write-cursors open on this handle. This is for use +** in assert() expressions, so it is only compiled if NDEBUG is not +** defined. +*/ +static int countWriteCursors(BtShared *pBt){ + BtCursor *pCur; + int r = 0; + for(pCur=pBt->pCursor; pCur; pCur=pCur->pNext){ + if( pCur->wrFlag ) r++; + } + return r; +} +#endif + +#if defined(SQLITE_TEST) || defined(SQLITE_DEBUG) +/* +** Print debugging information about all cursors to standard output. +*/ +void sqlite3BtreeCursorList(Btree *p){ + BtCursor *pCur; + BtShared *pBt = p->pBt; + for(pCur=pBt->pCursor; pCur; pCur=pCur->pNext){ + MemPage *pPage = pCur->pPage; + char *zMode = pCur->wrFlag ? "rw" : "ro"; + sqlite3DebugPrintf("CURSOR %p rooted at %4d(%s) currently at %d.%d%s\n", + pCur, pCur->pgnoRoot, zMode, + pPage ? pPage->pgno : 0, pCur->idx, + (pCur->eState==CURSOR_VALID) ? "" : " eof" + ); + } +} +#endif + +/* +** Rollback the transaction in progress. All cursors will be +** invalided by this operation. Any attempt to use a cursor +** that was open at the beginning of this operation will result +** in an error. +** +** This will release the write lock on the database file. If there +** are no active cursors, it also releases the read lock. +*/ +int sqlite3BtreeRollback(Btree *p){ + int rc; + BtShared *pBt = p->pBt; + MemPage *pPage1; + + rc = saveAllCursors(pBt, 0, 0); +#ifndef SQLITE_OMIT_SHARED_CACHE + if( rc!=SQLITE_OK ){ + /* This is a horrible situation. An IO or malloc() error occured whilst + ** trying to save cursor positions. If this is an automatic rollback (as + ** the result of a constraint, malloc() failure or IO error) then + ** the cache may be internally inconsistent (not contain valid trees) so + ** we cannot simply return the error to the caller. Instead, abort + ** all queries that may be using any of the cursors that failed to save. + */ + while( pBt->pCursor ){ + sqlite3 *db = pBt->pCursor->pBtree->pSqlite; + if( db ){ + sqlite3AbortOtherActiveVdbes(db, 0); + } + } + } +#endif + btreeIntegrity(p); + unlockAllTables(p); + + if( p->inTrans==TRANS_WRITE ){ + int rc2; + + assert( TRANS_WRITE==pBt->inTransaction ); + rc2 = sqlite3pager_rollback(pBt->pPager); + if( rc2!=SQLITE_OK ){ + rc = rc2; + } + + /* The rollback may have destroyed the pPage1->aData value. So + ** call getPage() on page 1 again to make sure pPage1->aData is + ** set correctly. */ + if( getPage(pBt, 1, &pPage1)==SQLITE_OK ){ + releasePage(pPage1); + } + assert( countWriteCursors(pBt)==0 ); + pBt->inTransaction = TRANS_READ; + } + + if( p->inTrans!=TRANS_NONE ){ + assert( pBt->nTransaction>0 ); + pBt->nTransaction--; + if( 0==pBt->nTransaction ){ + pBt->inTransaction = TRANS_NONE; + } + } + + p->inTrans = TRANS_NONE; + pBt->inStmt = 0; + unlockBtreeIfUnused(pBt); + + btreeIntegrity(p); + return rc; +} + +/* +** Start a statement subtransaction. The subtransaction can +** can be rolled back independently of the main transaction. +** You must start a transaction before starting a subtransaction. +** The subtransaction is ended automatically if the main transaction +** commits or rolls back. +** +** Only one subtransaction may be active at a time. It is an error to try +** to start a new subtransaction if another subtransaction is already active. +** +** Statement subtransactions are used around individual SQL statements +** that are contained within a BEGIN...COMMIT block. If a constraint +** error occurs within the statement, the effect of that one statement +** can be rolled back without having to rollback the entire transaction. +*/ +int sqlite3BtreeBeginStmt(Btree *p){ + int rc; + BtShared *pBt = p->pBt; + if( (p->inTrans!=TRANS_WRITE) || pBt->inStmt ){ + return pBt->readOnly ? SQLITE_READONLY : SQLITE_ERROR; + } + assert( pBt->inTransaction==TRANS_WRITE ); + rc = pBt->readOnly ? SQLITE_OK : sqlite3pager_stmt_begin(pBt->pPager); + pBt->inStmt = 1; + return rc; +} + + +/* +** Commit the statment subtransaction currently in progress. If no +** subtransaction is active, this is a no-op. +*/ +int sqlite3BtreeCommitStmt(Btree *p){ + int rc; + BtShared *pBt = p->pBt; + if( pBt->inStmt && !pBt->readOnly ){ + rc = sqlite3pager_stmt_commit(pBt->pPager); + }else{ + rc = SQLITE_OK; + } + pBt->inStmt = 0; + return rc; +} + +/* +** Rollback the active statement subtransaction. If no subtransaction +** is active this routine is a no-op. +** +** All cursors will be invalidated by this operation. Any attempt +** to use a cursor that was open at the beginning of this operation +** will result in an error. +*/ +int sqlite3BtreeRollbackStmt(Btree *p){ + int rc = SQLITE_OK; + BtShared *pBt = p->pBt; + sqlite3MallocDisallow(); + if( pBt->inStmt && !pBt->readOnly ){ + rc = sqlite3pager_stmt_rollback(pBt->pPager); + assert( countWriteCursors(pBt)==0 ); + pBt->inStmt = 0; + } + sqlite3MallocAllow(); + return rc; +} + +/* +** Default key comparison function to be used if no comparison function +** is specified on the sqlite3BtreeCursor() call. +*/ +static int dfltCompare( + void *NotUsed, /* User data is not used */ + int n1, const void *p1, /* First key to compare */ + int n2, const void *p2 /* Second key to compare */ +){ + int c; + c = memcmp(p1, p2, n1pBt; + + *ppCur = 0; + if( wrFlag ){ + if( pBt->readOnly ){ + return SQLITE_READONLY; + } + if( checkReadLocks(p, iTable, 0) ){ + return SQLITE_LOCKED; + } + } + + if( pBt->pPage1==0 ){ + rc = lockBtreeWithRetry(p); + if( rc!=SQLITE_OK ){ + return rc; + } + } + pCur = sqliteMalloc( sizeof(*pCur) ); + if( pCur==0 ){ + rc = SQLITE_NOMEM; + goto create_cursor_exception; + } + pCur->pgnoRoot = (Pgno)iTable; + if( iTable==1 && sqlite3pager_pagecount(pBt->pPager)==0 ){ + rc = SQLITE_EMPTY; + goto create_cursor_exception; + } + rc = getAndInitPage(pBt, pCur->pgnoRoot, &pCur->pPage, 0); + if( rc!=SQLITE_OK ){ + goto create_cursor_exception; + } + + /* Now that no other errors can occur, finish filling in the BtCursor + ** variables, link the cursor into the BtShared list and set *ppCur (the + ** output argument to this function). + */ + pCur->xCompare = xCmp ? xCmp : dfltCompare; + pCur->pArg = pArg; + pCur->pBtree = p; + pCur->wrFlag = wrFlag; + pCur->pNext = pBt->pCursor; + if( pCur->pNext ){ + pCur->pNext->pPrev = pCur; + } + pBt->pCursor = pCur; + pCur->eState = CURSOR_INVALID; + *ppCur = pCur; + + return SQLITE_OK; +create_cursor_exception: + if( pCur ){ + releasePage(pCur->pPage); + sqliteFree(pCur); + } + unlockBtreeIfUnused(pBt); + return rc; +} + +#if 0 /* Not Used */ +/* +** Change the value of the comparison function used by a cursor. +*/ +void sqlite3BtreeSetCompare( + BtCursor *pCur, /* The cursor to whose comparison function is changed */ + int(*xCmp)(void*,int,const void*,int,const void*), /* New comparison func */ + void *pArg /* First argument to xCmp() */ +){ + pCur->xCompare = xCmp ? xCmp : dfltCompare; + pCur->pArg = pArg; +} +#endif + +/* +** Close a cursor. The read lock on the database file is released +** when the last cursor is closed. +*/ +int sqlite3BtreeCloseCursor(BtCursor *pCur){ + BtShared *pBt = pCur->pBtree->pBt; + restoreOrClearCursorPosition(pCur, 0); + if( pCur->pPrev ){ + pCur->pPrev->pNext = pCur->pNext; + }else{ + pBt->pCursor = pCur->pNext; + } + if( pCur->pNext ){ + pCur->pNext->pPrev = pCur->pPrev; + } + releasePage(pCur->pPage); + unlockBtreeIfUnused(pBt); + sqliteFree(pCur); + return SQLITE_OK; +} + +/* +** Make a temporary cursor by filling in the fields of pTempCur. +** The temporary cursor is not on the cursor list for the Btree. +*/ +static void getTempCursor(BtCursor *pCur, BtCursor *pTempCur){ + memcpy(pTempCur, pCur, sizeof(*pCur)); + pTempCur->pNext = 0; + pTempCur->pPrev = 0; + if( pTempCur->pPage ){ + sqlite3pager_ref(pTempCur->pPage->aData); + } +} + +/* +** Delete a temporary cursor such as was made by the CreateTemporaryCursor() +** function above. +*/ +static void releaseTempCursor(BtCursor *pCur){ + if( pCur->pPage ){ + sqlite3pager_unref(pCur->pPage->aData); + } +} + +/* +** Make sure the BtCursor.info field of the given cursor is valid. +** If it is not already valid, call parseCell() to fill it in. +** +** BtCursor.info is a cache of the information in the current cell. +** Using this cache reduces the number of calls to parseCell(). +*/ +static void getCellInfo(BtCursor *pCur){ + if( pCur->info.nSize==0 ){ + parseCell(pCur->pPage, pCur->idx, &pCur->info); + }else{ +#ifndef NDEBUG + CellInfo info; + memset(&info, 0, sizeof(info)); + parseCell(pCur->pPage, pCur->idx, &info); + assert( memcmp(&info, &pCur->info, sizeof(info))==0 ); +#endif + } +} + +/* +** Set *pSize to the size of the buffer needed to hold the value of +** the key for the current entry. If the cursor is not pointing +** to a valid entry, *pSize is set to 0. +** +** For a table with the INTKEY flag set, this routine returns the key +** itself, not the number of bytes in the key. +*/ +int sqlite3BtreeKeySize(BtCursor *pCur, i64 *pSize){ + int rc = restoreOrClearCursorPosition(pCur, 1); + if( rc==SQLITE_OK ){ + assert( pCur->eState==CURSOR_INVALID || pCur->eState==CURSOR_VALID ); + if( pCur->eState==CURSOR_INVALID ){ + *pSize = 0; + }else{ + getCellInfo(pCur); + *pSize = pCur->info.nKey; + } + } + return rc; +} + +/* +** Set *pSize to the number of bytes of data in the entry the +** cursor currently points to. Always return SQLITE_OK. +** Failure is not possible. If the cursor is not currently +** pointing to an entry (which can happen, for example, if +** the database is empty) then *pSize is set to 0. +*/ +int sqlite3BtreeDataSize(BtCursor *pCur, u32 *pSize){ + int rc = restoreOrClearCursorPosition(pCur, 1); + if( rc==SQLITE_OK ){ + assert( pCur->eState==CURSOR_INVALID || pCur->eState==CURSOR_VALID ); + if( pCur->eState==CURSOR_INVALID ){ + /* Not pointing at a valid entry - set *pSize to 0. */ + *pSize = 0; + }else{ + getCellInfo(pCur); + *pSize = pCur->info.nData; + } + } + return rc; +} + +/* +** Read payload information from the entry that the pCur cursor is +** pointing to. Begin reading the payload at "offset" and read +** a total of "amt" bytes. Put the result in zBuf. +** +** This routine does not make a distinction between key and data. +** It just reads bytes from the payload area. Data might appear +** on the main page or be scattered out on multiple overflow pages. +*/ +static int getPayload( + BtCursor *pCur, /* Cursor pointing to entry to read from */ + int offset, /* Begin reading this far into payload */ + int amt, /* Read this many bytes */ + unsigned char *pBuf, /* Write the bytes into this buffer */ + int skipKey /* offset begins at data if this is true */ +){ + unsigned char *aPayload; + Pgno nextPage; + int rc; + MemPage *pPage; + BtShared *pBt; + int ovflSize; + u32 nKey; + + assert( pCur!=0 && pCur->pPage!=0 ); + assert( pCur->eState==CURSOR_VALID ); + pBt = pCur->pBtree->pBt; + pPage = pCur->pPage; + assert( pCur->idx>=0 && pCur->idxnCell ); + getCellInfo(pCur); + aPayload = pCur->info.pCell + pCur->info.nHeader; + if( pPage->intKey ){ + nKey = 0; + }else{ + nKey = pCur->info.nKey; + } + assert( offset>=0 ); + if( skipKey ){ + offset += nKey; + } + if( offset+amt > nKey+pCur->info.nData ){ + return SQLITE_ERROR; + } + if( offsetinfo.nLocal ){ + int a = amt; + if( a+offset>pCur->info.nLocal ){ + a = pCur->info.nLocal - offset; + } + memcpy(pBuf, &aPayload[offset], a); + if( a==amt ){ + return SQLITE_OK; + } + offset = 0; + pBuf += a; + amt -= a; + }else{ + offset -= pCur->info.nLocal; + } + ovflSize = pBt->usableSize - 4; + if( amt>0 ){ + nextPage = get4byte(&aPayload[pCur->info.nLocal]); + while( amt>0 && nextPage ){ + rc = sqlite3pager_get(pBt->pPager, nextPage, (void**)&aPayload); + if( rc!=0 ){ + return rc; + } + nextPage = get4byte(aPayload); + if( offset ovflSize ){ + a = ovflSize - offset; + } + memcpy(pBuf, &aPayload[offset+4], a); + offset = 0; + amt -= a; + pBuf += a; + }else{ + offset -= ovflSize; + } + sqlite3pager_unref(aPayload); + } + } + + if( amt>0 ){ + return SQLITE_CORRUPT_BKPT; + } + return SQLITE_OK; +} + +/* +** Read part of the key associated with cursor pCur. Exactly +** "amt" bytes will be transfered into pBuf[]. The transfer +** begins at "offset". +** +** Return SQLITE_OK on success or an error code if anything goes +** wrong. An error is returned if "offset+amt" is larger than +** the available payload. +*/ +int sqlite3BtreeKey(BtCursor *pCur, u32 offset, u32 amt, void *pBuf){ + int rc = restoreOrClearCursorPosition(pCur, 1); + if( rc==SQLITE_OK ){ + assert( pCur->eState==CURSOR_VALID ); + assert( pCur->pPage!=0 ); + if( pCur->pPage->intKey ){ + return SQLITE_CORRUPT_BKPT; + } + assert( pCur->pPage->intKey==0 ); + assert( pCur->idx>=0 && pCur->idxpPage->nCell ); + rc = getPayload(pCur, offset, amt, (unsigned char*)pBuf, 0); + } + return rc; +} + +/* +** Read part of the data associated with cursor pCur. Exactly +** "amt" bytes will be transfered into pBuf[]. The transfer +** begins at "offset". +** +** Return SQLITE_OK on success or an error code if anything goes +** wrong. An error is returned if "offset+amt" is larger than +** the available payload. +*/ +int sqlite3BtreeData(BtCursor *pCur, u32 offset, u32 amt, void *pBuf){ + int rc = restoreOrClearCursorPosition(pCur, 1); + if( rc==SQLITE_OK ){ + assert( pCur->eState==CURSOR_VALID ); + assert( pCur->pPage!=0 ); + assert( pCur->idx>=0 && pCur->idxpPage->nCell ); + rc = getPayload(pCur, offset, amt, pBuf, 1); + } + return rc; +} + +/* +** Return a pointer to payload information from the entry that the +** pCur cursor is pointing to. The pointer is to the beginning of +** the key if skipKey==0 and it points to the beginning of data if +** skipKey==1. The number of bytes of available key/data is written +** into *pAmt. If *pAmt==0, then the value returned will not be +** a valid pointer. +** +** This routine is an optimization. It is common for the entire key +** and data to fit on the local page and for there to be no overflow +** pages. When that is so, this routine can be used to access the +** key and data without making a copy. If the key and/or data spills +** onto overflow pages, then getPayload() must be used to reassembly +** the key/data and copy it into a preallocated buffer. +** +** The pointer returned by this routine looks directly into the cached +** page of the database. The data might change or move the next time +** any btree routine is called. +*/ +static const unsigned char *fetchPayload( + BtCursor *pCur, /* Cursor pointing to entry to read from */ + int *pAmt, /* Write the number of available bytes here */ + int skipKey /* read beginning at data if this is true */ +){ + unsigned char *aPayload; + MemPage *pPage; + u32 nKey; + int nLocal; + + assert( pCur!=0 && pCur->pPage!=0 ); + assert( pCur->eState==CURSOR_VALID ); + pPage = pCur->pPage; + assert( pCur->idx>=0 && pCur->idxnCell ); + getCellInfo(pCur); + aPayload = pCur->info.pCell; + aPayload += pCur->info.nHeader; + if( pPage->intKey ){ + nKey = 0; + }else{ + nKey = pCur->info.nKey; + } + if( skipKey ){ + aPayload += nKey; + nLocal = pCur->info.nLocal - nKey; + }else{ + nLocal = pCur->info.nLocal; + if( nLocal>nKey ){ + nLocal = nKey; + } + } + *pAmt = nLocal; + return aPayload; +} + + +/* +** For the entry that cursor pCur is point to, return as +** many bytes of the key or data as are available on the local +** b-tree page. Write the number of available bytes into *pAmt. +** +** The pointer returned is ephemeral. The key/data may move +** or be destroyed on the next call to any Btree routine. +** +** These routines is used to get quick access to key and data +** in the common case where no overflow pages are used. +*/ +const void *sqlite3BtreeKeyFetch(BtCursor *pCur, int *pAmt){ + if( pCur->eState==CURSOR_VALID ){ + return (const void*)fetchPayload(pCur, pAmt, 0); + } + return 0; +} +const void *sqlite3BtreeDataFetch(BtCursor *pCur, int *pAmt){ + if( pCur->eState==CURSOR_VALID ){ + return (const void*)fetchPayload(pCur, pAmt, 1); + } + return 0; +} + + +/* +** Move the cursor down to a new child page. The newPgno argument is the +** page number of the child page to move to. +*/ +static int moveToChild(BtCursor *pCur, u32 newPgno){ + int rc; + MemPage *pNewPage; + MemPage *pOldPage; + BtShared *pBt = pCur->pBtree->pBt; + + assert( pCur->eState==CURSOR_VALID ); + rc = getAndInitPage(pBt, newPgno, &pNewPage, pCur->pPage); + if( rc ) return rc; + pNewPage->idxParent = pCur->idx; + pOldPage = pCur->pPage; + pOldPage->idxShift = 0; + releasePage(pOldPage); + pCur->pPage = pNewPage; + pCur->idx = 0; + pCur->info.nSize = 0; + if( pNewPage->nCell<1 ){ + return SQLITE_CORRUPT_BKPT; + } + return SQLITE_OK; +} + +/* +** Return true if the page is the virtual root of its table. +** +** The virtual root page is the root page for most tables. But +** for the table rooted on page 1, sometime the real root page +** is empty except for the right-pointer. In such cases the +** virtual root page is the page that the right-pointer of page +** 1 is pointing to. +*/ +static int isRootPage(MemPage *pPage){ + MemPage *pParent = pPage->pParent; + if( pParent==0 ) return 1; + if( pParent->pgno>1 ) return 0; + if( get2byte(&pParent->aData[pParent->hdrOffset+3])==0 ) return 1; + return 0; +} + +/* +** Move the cursor up to the parent page. +** +** pCur->idx is set to the cell index that contains the pointer +** to the page we are coming from. If we are coming from the +** right-most child page then pCur->idx is set to one more than +** the largest cell index. +*/ +static void moveToParent(BtCursor *pCur){ + MemPage *pParent; + MemPage *pPage; + int idxParent; + + assert( pCur->eState==CURSOR_VALID ); + pPage = pCur->pPage; + assert( pPage!=0 ); + assert( !isRootPage(pPage) ); + pParent = pPage->pParent; + assert( pParent!=0 ); + idxParent = pPage->idxParent; + sqlite3pager_ref(pParent->aData); + releasePage(pPage); + pCur->pPage = pParent; + pCur->info.nSize = 0; + assert( pParent->idxShift==0 ); + pCur->idx = idxParent; +} + +/* +** Move the cursor to the root page +*/ +static int moveToRoot(BtCursor *pCur){ + MemPage *pRoot; + int rc = SQLITE_OK; + BtShared *pBt = pCur->pBtree->pBt; + + restoreOrClearCursorPosition(pCur, 0); + pRoot = pCur->pPage; + if( pRoot && pRoot->pgno==pCur->pgnoRoot ){ + assert( pRoot->isInit ); + }else{ + if( + SQLITE_OK!=(rc = getAndInitPage(pBt, pCur->pgnoRoot, &pRoot, 0)) + ){ + pCur->eState = CURSOR_INVALID; + return rc; + } + releasePage(pCur->pPage); + pCur->pPage = pRoot; + } + pCur->idx = 0; + pCur->info.nSize = 0; + if( pRoot->nCell==0 && !pRoot->leaf ){ + Pgno subpage; + assert( pRoot->pgno==1 ); + subpage = get4byte(&pRoot->aData[pRoot->hdrOffset+8]); + assert( subpage>0 ); + pCur->eState = CURSOR_VALID; + rc = moveToChild(pCur, subpage); + } + pCur->eState = ((pCur->pPage->nCell>0)?CURSOR_VALID:CURSOR_INVALID); + return rc; +} + +/* +** Move the cursor down to the left-most leaf entry beneath the +** entry to which it is currently pointing. +** +** The left-most leaf is the one with the smallest key - the first +** in ascending order. +*/ +static int moveToLeftmost(BtCursor *pCur){ + Pgno pgno; + int rc; + MemPage *pPage; + + assert( pCur->eState==CURSOR_VALID ); + while( !(pPage = pCur->pPage)->leaf ){ + assert( pCur->idx>=0 && pCur->idxnCell ); + pgno = get4byte(findCell(pPage, pCur->idx)); + rc = moveToChild(pCur, pgno); + if( rc ) return rc; + } + return SQLITE_OK; +} + +/* +** Move the cursor down to the right-most leaf entry beneath the +** page to which it is currently pointing. Notice the difference +** between moveToLeftmost() and moveToRightmost(). moveToLeftmost() +** finds the left-most entry beneath the *entry* whereas moveToRightmost() +** finds the right-most entry beneath the *page*. +** +** The right-most entry is the one with the largest key - the last +** key in ascending order. +*/ +static int moveToRightmost(BtCursor *pCur){ + Pgno pgno; + int rc; + MemPage *pPage; + + assert( pCur->eState==CURSOR_VALID ); + while( !(pPage = pCur->pPage)->leaf ){ + pgno = get4byte(&pPage->aData[pPage->hdrOffset+8]); + pCur->idx = pPage->nCell; + rc = moveToChild(pCur, pgno); + if( rc ) return rc; + } + pCur->idx = pPage->nCell - 1; + pCur->info.nSize = 0; + return SQLITE_OK; +} + +/* Move the cursor to the first entry in the table. Return SQLITE_OK +** on success. Set *pRes to 0 if the cursor actually points to something +** or set *pRes to 1 if the table is empty. +*/ +int sqlite3BtreeFirst(BtCursor *pCur, int *pRes){ + int rc; + rc = moveToRoot(pCur); + if( rc ) return rc; + if( pCur->eState==CURSOR_INVALID ){ + assert( pCur->pPage->nCell==0 ); + *pRes = 1; + return SQLITE_OK; + } + assert( pCur->pPage->nCell>0 ); + *pRes = 0; + rc = moveToLeftmost(pCur); + return rc; +} + +/* Move the cursor to the last entry in the table. Return SQLITE_OK +** on success. Set *pRes to 0 if the cursor actually points to something +** or set *pRes to 1 if the table is empty. +*/ +int sqlite3BtreeLast(BtCursor *pCur, int *pRes){ + int rc; + rc = moveToRoot(pCur); + if( rc ) return rc; + if( CURSOR_INVALID==pCur->eState ){ + assert( pCur->pPage->nCell==0 ); + *pRes = 1; + return SQLITE_OK; + } + assert( pCur->eState==CURSOR_VALID ); + *pRes = 0; + rc = moveToRightmost(pCur); + return rc; +} + +/* Move the cursor so that it points to an entry near pKey/nKey. +** Return a success code. +** +** For INTKEY tables, only the nKey parameter is used. pKey is +** ignored. For other tables, nKey is the number of bytes of data +** in pKey. The comparison function specified when the cursor was +** created is used to compare keys. +** +** If an exact match is not found, then the cursor is always +** left pointing at a leaf page which would hold the entry if it +** were present. The cursor might point to an entry that comes +** before or after the key. +** +** The result of comparing the key with the entry to which the +** cursor is written to *pRes if pRes!=NULL. The meaning of +** this value is as follows: +** +** *pRes<0 The cursor is left pointing at an entry that +** is smaller than pKey or if the table is empty +** and the cursor is therefore left point to nothing. +** +** *pRes==0 The cursor is left pointing at an entry that +** exactly matches pKey. +** +** *pRes>0 The cursor is left pointing at an entry that +** is larger than pKey. +*/ +int sqlite3BtreeMoveto(BtCursor *pCur, const void *pKey, i64 nKey, int *pRes){ + int rc; + int tryRightmost; + rc = moveToRoot(pCur); + if( rc ) return rc; + assert( pCur->pPage ); + assert( pCur->pPage->isInit ); + tryRightmost = pCur->pPage->intKey; + if( pCur->eState==CURSOR_INVALID ){ + *pRes = -1; + assert( pCur->pPage->nCell==0 ); + return SQLITE_OK; + } + for(;;){ + int lwr, upr; + Pgno chldPg; + MemPage *pPage = pCur->pPage; + int c = -1; /* pRes return if table is empty must be -1 */ + lwr = 0; + upr = pPage->nCell-1; + if( !pPage->intKey && pKey==0 ){ + return SQLITE_CORRUPT_BKPT; + } + while( lwr<=upr ){ + void *pCellKey; + i64 nCellKey; + pCur->idx = (lwr+upr)/2; + pCur->info.nSize = 0; + if( pPage->intKey ){ + u8 *pCell; + if( tryRightmost ){ + pCur->idx = upr; + } + pCell = findCell(pPage, pCur->idx) + pPage->childPtrSize; + if( pPage->hasData ){ + u32 dummy; + pCell += getVarint32(pCell, &dummy); + } + getVarint(pCell, (u64 *)&nCellKey); + if( nCellKeynKey ){ + c = +1; + tryRightmost = 0; + }else{ + c = 0; + } + }else{ + int available; + pCellKey = (void *)fetchPayload(pCur, &available, 0); + nCellKey = pCur->info.nKey; + if( available>=nCellKey ){ + c = pCur->xCompare(pCur->pArg, nCellKey, pCellKey, nKey, pKey); + }else{ + pCellKey = sqliteMallocRaw( nCellKey ); + if( pCellKey==0 ) return SQLITE_NOMEM; + rc = sqlite3BtreeKey(pCur, 0, nCellKey, (void *)pCellKey); + c = pCur->xCompare(pCur->pArg, nCellKey, pCellKey, nKey, pKey); + sqliteFree(pCellKey); + if( rc ) return rc; + } + } + if( c==0 ){ + if( pPage->leafData && !pPage->leaf ){ + lwr = pCur->idx; + upr = lwr - 1; + break; + }else{ + if( pRes ) *pRes = 0; + return SQLITE_OK; + } + } + if( c<0 ){ + lwr = pCur->idx+1; + }else{ + upr = pCur->idx-1; + } + } + assert( lwr==upr+1 ); + assert( pPage->isInit ); + if( pPage->leaf ){ + chldPg = 0; + }else if( lwr>=pPage->nCell ){ + chldPg = get4byte(&pPage->aData[pPage->hdrOffset+8]); + }else{ + chldPg = get4byte(findCell(pPage, lwr)); + } + if( chldPg==0 ){ + assert( pCur->idx>=0 && pCur->idxpPage->nCell ); + if( pRes ) *pRes = c; + return SQLITE_OK; + } + pCur->idx = lwr; + pCur->info.nSize = 0; + rc = moveToChild(pCur, chldPg); + if( rc ){ + return rc; + } + } + /* NOT REACHED */ +} + +/* +** Return TRUE if the cursor is not pointing at an entry of the table. +** +** TRUE will be returned after a call to sqlite3BtreeNext() moves +** past the last entry in the table or sqlite3BtreePrev() moves past +** the first entry. TRUE is also returned if the table is empty. +*/ +int sqlite3BtreeEof(BtCursor *pCur){ + /* TODO: What if the cursor is in CURSOR_REQUIRESEEK but all table entries + ** have been deleted? This API will need to change to return an error code + ** as well as the boolean result value. + */ + return (CURSOR_VALID!=pCur->eState); +} + +/* +** Advance the cursor to the next entry in the database. If +** successful then set *pRes=0. If the cursor +** was already pointing to the last entry in the database before +** this routine was called, then set *pRes=1. +*/ +int sqlite3BtreeNext(BtCursor *pCur, int *pRes){ + int rc; + MemPage *pPage; + +#ifndef SQLITE_OMIT_SHARED_CACHE + rc = restoreOrClearCursorPosition(pCur, 1); + if( rc!=SQLITE_OK ){ + return rc; + } + if( pCur->skip>0 ){ + pCur->skip = 0; + *pRes = 0; + return SQLITE_OK; + } + pCur->skip = 0; +#endif + + assert( pRes!=0 ); + pPage = pCur->pPage; + if( CURSOR_INVALID==pCur->eState ){ + *pRes = 1; + return SQLITE_OK; + } + assert( pPage->isInit ); + assert( pCur->idxnCell ); + + pCur->idx++; + pCur->info.nSize = 0; + if( pCur->idx>=pPage->nCell ){ + if( !pPage->leaf ){ + rc = moveToChild(pCur, get4byte(&pPage->aData[pPage->hdrOffset+8])); + if( rc ) return rc; + rc = moveToLeftmost(pCur); + *pRes = 0; + return rc; + } + do{ + if( isRootPage(pPage) ){ + *pRes = 1; + pCur->eState = CURSOR_INVALID; + return SQLITE_OK; + } + moveToParent(pCur); + pPage = pCur->pPage; + }while( pCur->idx>=pPage->nCell ); + *pRes = 0; + if( pPage->leafData ){ + rc = sqlite3BtreeNext(pCur, pRes); + }else{ + rc = SQLITE_OK; + } + return rc; + } + *pRes = 0; + if( pPage->leaf ){ + return SQLITE_OK; + } + rc = moveToLeftmost(pCur); + return rc; +} + +/* +** Step the cursor to the back to the previous entry in the database. If +** successful then set *pRes=0. If the cursor +** was already pointing to the first entry in the database before +** this routine was called, then set *pRes=1. +*/ +int sqlite3BtreePrevious(BtCursor *pCur, int *pRes){ + int rc; + Pgno pgno; + MemPage *pPage; + +#ifndef SQLITE_OMIT_SHARED_CACHE + rc = restoreOrClearCursorPosition(pCur, 1); + if( rc!=SQLITE_OK ){ + return rc; + } + if( pCur->skip<0 ){ + pCur->skip = 0; + *pRes = 0; + return SQLITE_OK; + } + pCur->skip = 0; +#endif + + if( CURSOR_INVALID==pCur->eState ){ + *pRes = 1; + return SQLITE_OK; + } + + pPage = pCur->pPage; + assert( pPage->isInit ); + assert( pCur->idx>=0 ); + if( !pPage->leaf ){ + pgno = get4byte( findCell(pPage, pCur->idx) ); + rc = moveToChild(pCur, pgno); + if( rc ) return rc; + rc = moveToRightmost(pCur); + }else{ + while( pCur->idx==0 ){ + if( isRootPage(pPage) ){ + pCur->eState = CURSOR_INVALID; + *pRes = 1; + return SQLITE_OK; + } + moveToParent(pCur); + pPage = pCur->pPage; + } + pCur->idx--; + pCur->info.nSize = 0; + if( pPage->leafData && !pPage->leaf ){ + rc = sqlite3BtreePrevious(pCur, pRes); + }else{ + rc = SQLITE_OK; + } + } + *pRes = 0; + return rc; +} + +/* +** Allocate a new page from the database file. +** +** The new page is marked as dirty. (In other words, sqlite3pager_write() +** has already been called on the new page.) The new page has also +** been referenced and the calling routine is responsible for calling +** sqlite3pager_unref() on the new page when it is done. +** +** SQLITE_OK is returned on success. Any other return value indicates +** an error. *ppPage and *pPgno are undefined in the event of an error. +** Do not invoke sqlite3pager_unref() on *ppPage if an error is returned. +** +** If the "nearby" parameter is not 0, then a (feeble) effort is made to +** locate a page close to the page number "nearby". This can be used in an +** attempt to keep related pages close to each other in the database file, +** which in turn can make database access faster. +** +** If the "exact" parameter is not 0, and the page-number nearby exists +** anywhere on the free-list, then it is guarenteed to be returned. This +** is only used by auto-vacuum databases when allocating a new table. +*/ +static int allocatePage( + BtShared *pBt, + MemPage **ppPage, + Pgno *pPgno, + Pgno nearby, + u8 exact +){ + MemPage *pPage1; + int rc; + int n; /* Number of pages on the freelist */ + int k; /* Number of leaves on the trunk of the freelist */ + MemPage *pTrunk = 0; + MemPage *pPrevTrunk = 0; + + pPage1 = pBt->pPage1; + n = get4byte(&pPage1->aData[36]); + if( n>0 ){ + /* There are pages on the freelist. Reuse one of those pages. */ + Pgno iTrunk; + u8 searchList = 0; /* If the free-list must be searched for 'nearby' */ + + /* If the 'exact' parameter was true and a query of the pointer-map + ** shows that the page 'nearby' is somewhere on the free-list, then + ** the entire-list will be searched for that page. + */ +#ifndef SQLITE_OMIT_AUTOVACUUM + if( exact ){ + u8 eType; + assert( nearby>0 ); + assert( pBt->autoVacuum ); + rc = ptrmapGet(pBt, nearby, &eType, 0); + if( rc ) return rc; + if( eType==PTRMAP_FREEPAGE ){ + searchList = 1; + } + *pPgno = nearby; + } +#endif + + /* Decrement the free-list count by 1. Set iTrunk to the index of the + ** first free-list trunk page. iPrevTrunk is initially 1. + */ + rc = sqlite3pager_write(pPage1->aData); + if( rc ) return rc; + put4byte(&pPage1->aData[36], n-1); + + /* The code within this loop is run only once if the 'searchList' variable + ** is not true. Otherwise, it runs once for each trunk-page on the + ** free-list until the page 'nearby' is located. + */ + do { + pPrevTrunk = pTrunk; + if( pPrevTrunk ){ + iTrunk = get4byte(&pPrevTrunk->aData[0]); + }else{ + iTrunk = get4byte(&pPage1->aData[32]); + } + rc = getPage(pBt, iTrunk, &pTrunk); + if( rc ){ + pTrunk = 0; + goto end_allocate_page; + } + + k = get4byte(&pTrunk->aData[4]); + if( k==0 && !searchList ){ + /* The trunk has no leaves and the list is not being searched. + ** So extract the trunk page itself and use it as the newly + ** allocated page */ + assert( pPrevTrunk==0 ); + rc = sqlite3pager_write(pTrunk->aData); + if( rc ){ + goto end_allocate_page; + } + *pPgno = iTrunk; + memcpy(&pPage1->aData[32], &pTrunk->aData[0], 4); + *ppPage = pTrunk; + pTrunk = 0; + TRACE(("ALLOCATE: %d trunk - %d free pages left\n", *pPgno, n-1)); + }else if( k>pBt->usableSize/4 - 8 ){ + /* Value of k is out of range. Database corruption */ + rc = SQLITE_CORRUPT_BKPT; + goto end_allocate_page; +#ifndef SQLITE_OMIT_AUTOVACUUM + }else if( searchList && nearby==iTrunk ){ + /* The list is being searched and this trunk page is the page + ** to allocate, regardless of whether it has leaves. + */ + assert( *pPgno==iTrunk ); + *ppPage = pTrunk; + searchList = 0; + rc = sqlite3pager_write(pTrunk->aData); + if( rc ){ + goto end_allocate_page; + } + if( k==0 ){ + if( !pPrevTrunk ){ + memcpy(&pPage1->aData[32], &pTrunk->aData[0], 4); + }else{ + memcpy(&pPrevTrunk->aData[0], &pTrunk->aData[0], 4); + } + }else{ + /* The trunk page is required by the caller but it contains + ** pointers to free-list leaves. The first leaf becomes a trunk + ** page in this case. + */ + MemPage *pNewTrunk; + Pgno iNewTrunk = get4byte(&pTrunk->aData[8]); + rc = getPage(pBt, iNewTrunk, &pNewTrunk); + if( rc!=SQLITE_OK ){ + goto end_allocate_page; + } + rc = sqlite3pager_write(pNewTrunk->aData); + if( rc!=SQLITE_OK ){ + releasePage(pNewTrunk); + goto end_allocate_page; + } + memcpy(&pNewTrunk->aData[0], &pTrunk->aData[0], 4); + put4byte(&pNewTrunk->aData[4], k-1); + memcpy(&pNewTrunk->aData[8], &pTrunk->aData[12], (k-1)*4); + releasePage(pNewTrunk); + if( !pPrevTrunk ){ + put4byte(&pPage1->aData[32], iNewTrunk); + }else{ + rc = sqlite3pager_write(pPrevTrunk->aData); + if( rc ){ + goto end_allocate_page; + } + put4byte(&pPrevTrunk->aData[0], iNewTrunk); + } + } + pTrunk = 0; + TRACE(("ALLOCATE: %d trunk - %d free pages left\n", *pPgno, n-1)); +#endif + }else{ + /* Extract a leaf from the trunk */ + int closest; + Pgno iPage; + unsigned char *aData = pTrunk->aData; + rc = sqlite3pager_write(aData); + if( rc ){ + goto end_allocate_page; + } + if( nearby>0 ){ + int i, dist; + closest = 0; + dist = get4byte(&aData[8]) - nearby; + if( dist<0 ) dist = -dist; + for(i=1; isqlite3pager_pagecount(pBt->pPager) ){ + /* Free page off the end of the file */ + return SQLITE_CORRUPT_BKPT; + } + TRACE(("ALLOCATE: %d was leaf %d of %d on trunk %d" + ": %d more free pages\n", + *pPgno, closest+1, k, pTrunk->pgno, n-1)); + if( closestaData); + rc = sqlite3pager_write((*ppPage)->aData); + if( rc!=SQLITE_OK ){ + releasePage(*ppPage); + } + } + searchList = 0; + } + } + releasePage(pPrevTrunk); + pPrevTrunk = 0; + }while( searchList ); + }else{ + /* There are no pages on the freelist, so create a new page at the + ** end of the file */ + *pPgno = sqlite3pager_pagecount(pBt->pPager) + 1; + +#ifndef SQLITE_OMIT_AUTOVACUUM + if( pBt->autoVacuum && PTRMAP_ISPAGE(pBt, *pPgno) ){ + /* If *pPgno refers to a pointer-map page, allocate two new pages + ** at the end of the file instead of one. The first allocated page + ** becomes a new pointer-map page, the second is used by the caller. + */ + TRACE(("ALLOCATE: %d from end of file (pointer-map page)\n", *pPgno)); + assert( *pPgno!=PENDING_BYTE_PAGE(pBt) ); + (*pPgno)++; + } +#endif + + assert( *pPgno!=PENDING_BYTE_PAGE(pBt) ); + rc = getPage(pBt, *pPgno, ppPage); + if( rc ) return rc; + rc = sqlite3pager_write((*ppPage)->aData); + if( rc!=SQLITE_OK ){ + releasePage(*ppPage); + } + TRACE(("ALLOCATE: %d from end of file\n", *pPgno)); + } + + assert( *pPgno!=PENDING_BYTE_PAGE(pBt) ); + +end_allocate_page: + releasePage(pTrunk); + releasePage(pPrevTrunk); + return rc; +} + +/* +** Add a page of the database file to the freelist. +** +** sqlite3pager_unref() is NOT called for pPage. +*/ +static int freePage(MemPage *pPage){ + BtShared *pBt = pPage->pBt; + MemPage *pPage1 = pBt->pPage1; + int rc, n, k; + + /* Prepare the page for freeing */ + assert( pPage->pgno>1 ); + pPage->isInit = 0; + releasePage(pPage->pParent); + pPage->pParent = 0; + + /* Increment the free page count on pPage1 */ + rc = sqlite3pager_write(pPage1->aData); + if( rc ) return rc; + n = get4byte(&pPage1->aData[36]); + put4byte(&pPage1->aData[36], n+1); + +#ifdef SQLITE_SECURE_DELETE + /* If the SQLITE_SECURE_DELETE compile-time option is enabled, then + ** always fully overwrite deleted information with zeros. + */ + rc = sqlite3pager_write(pPage->aData); + if( rc ) return rc; + memset(pPage->aData, 0, pPage->pBt->pageSize); +#endif + +#ifndef SQLITE_OMIT_AUTOVACUUM + /* If the database supports auto-vacuum, write an entry in the pointer-map + ** to indicate that the page is free. + */ + if( pBt->autoVacuum ){ + rc = ptrmapPut(pBt, pPage->pgno, PTRMAP_FREEPAGE, 0); + if( rc ) return rc; + } +#endif + + if( n==0 ){ + /* This is the first free page */ + rc = sqlite3pager_write(pPage->aData); + if( rc ) return rc; + memset(pPage->aData, 0, 8); + put4byte(&pPage1->aData[32], pPage->pgno); + TRACE(("FREE-PAGE: %d first\n", pPage->pgno)); + }else{ + /* Other free pages already exist. Retrive the first trunk page + ** of the freelist and find out how many leaves it has. */ + MemPage *pTrunk; + rc = getPage(pBt, get4byte(&pPage1->aData[32]), &pTrunk); + if( rc ) return rc; + k = get4byte(&pTrunk->aData[4]); + if( k>=pBt->usableSize/4 - 8 ){ + /* The trunk is full. Turn the page being freed into a new + ** trunk page with no leaves. */ + rc = sqlite3pager_write(pPage->aData); + if( rc ) return rc; + put4byte(pPage->aData, pTrunk->pgno); + put4byte(&pPage->aData[4], 0); + put4byte(&pPage1->aData[32], pPage->pgno); + TRACE(("FREE-PAGE: %d new trunk page replacing %d\n", + pPage->pgno, pTrunk->pgno)); + }else{ + /* Add the newly freed page as a leaf on the current trunk */ + rc = sqlite3pager_write(pTrunk->aData); + if( rc ) return rc; + put4byte(&pTrunk->aData[4], k+1); + put4byte(&pTrunk->aData[8+k*4], pPage->pgno); +#ifndef SQLITE_SECURE_DELETE + sqlite3pager_dont_write(pBt->pPager, pPage->pgno); +#endif + TRACE(("FREE-PAGE: %d leaf on trunk page %d\n",pPage->pgno,pTrunk->pgno)); + } + releasePage(pTrunk); + } + return rc; +} + +/* +** Free any overflow pages associated with the given Cell. +*/ +static int clearCell(MemPage *pPage, unsigned char *pCell){ + BtShared *pBt = pPage->pBt; + CellInfo info; + Pgno ovflPgno; + int rc; + + parseCellPtr(pPage, pCell, &info); + if( info.iOverflow==0 ){ + return SQLITE_OK; /* No overflow pages. Return without doing anything */ + } + ovflPgno = get4byte(&pCell[info.iOverflow]); + while( ovflPgno!=0 ){ + MemPage *pOvfl; + if( ovflPgno>sqlite3pager_pagecount(pBt->pPager) ){ + return SQLITE_CORRUPT_BKPT; + } + rc = getPage(pBt, ovflPgno, &pOvfl); + if( rc ) return rc; + ovflPgno = get4byte(pOvfl->aData); + rc = freePage(pOvfl); + sqlite3pager_unref(pOvfl->aData); + if( rc ) return rc; + } + return SQLITE_OK; +} + +/* +** Create the byte sequence used to represent a cell on page pPage +** and write that byte sequence into pCell[]. Overflow pages are +** allocated and filled in as necessary. The calling procedure +** is responsible for making sure sufficient space has been allocated +** for pCell[]. +** +** Note that pCell does not necessary need to point to the pPage->aData +** area. pCell might point to some temporary storage. The cell will +** be constructed in this temporary area then copied into pPage->aData +** later. +*/ +static int fillInCell( + MemPage *pPage, /* The page that contains the cell */ + unsigned char *pCell, /* Complete text of the cell */ + const void *pKey, i64 nKey, /* The key */ + const void *pData,int nData, /* The data */ + int *pnSize /* Write cell size here */ +){ + int nPayload; + const u8 *pSrc; + int nSrc, n, rc; + int spaceLeft; + MemPage *pOvfl = 0; + MemPage *pToRelease = 0; + unsigned char *pPrior; + unsigned char *pPayload; + BtShared *pBt = pPage->pBt; + Pgno pgnoOvfl = 0; + int nHeader; + CellInfo info; + + /* Fill in the header. */ + nHeader = 0; + if( !pPage->leaf ){ + nHeader += 4; + } + if( pPage->hasData ){ + nHeader += putVarint(&pCell[nHeader], nData); + }else{ + nData = 0; + } + nHeader += putVarint(&pCell[nHeader], *(u64*)&nKey); + parseCellPtr(pPage, pCell, &info); + assert( info.nHeader==nHeader ); + assert( info.nKey==nKey ); + assert( info.nData==nData ); + + /* Fill in the payload */ + nPayload = nData; + if( pPage->intKey ){ + pSrc = pData; + nSrc = nData; + nData = 0; + }else{ + nPayload += nKey; + pSrc = pKey; + nSrc = nKey; + } + *pnSize = info.nSize; + spaceLeft = info.nLocal; + pPayload = &pCell[nHeader]; + pPrior = &pCell[info.iOverflow]; + + while( nPayload>0 ){ + if( spaceLeft==0 ){ +#ifndef SQLITE_OMIT_AUTOVACUUM + Pgno pgnoPtrmap = pgnoOvfl; /* Overflow page pointer-map entry page */ +#endif + rc = allocatePage(pBt, &pOvfl, &pgnoOvfl, pgnoOvfl, 0); +#ifndef SQLITE_OMIT_AUTOVACUUM + /* If the database supports auto-vacuum, and the second or subsequent + ** overflow page is being allocated, add an entry to the pointer-map + ** for that page now. The entry for the first overflow page will be + ** added later, by the insertCell() routine. + */ + if( pBt->autoVacuum && pgnoPtrmap!=0 && rc==SQLITE_OK ){ + rc = ptrmapPut(pBt, pgnoOvfl, PTRMAP_OVERFLOW2, pgnoPtrmap); + } +#endif + if( rc ){ + releasePage(pToRelease); + /* clearCell(pPage, pCell); */ + return rc; + } + put4byte(pPrior, pgnoOvfl); + releasePage(pToRelease); + pToRelease = pOvfl; + pPrior = pOvfl->aData; + put4byte(pPrior, 0); + pPayload = &pOvfl->aData[4]; + spaceLeft = pBt->usableSize - 4; + } + n = nPayload; + if( n>spaceLeft ) n = spaceLeft; + if( n>nSrc ) n = nSrc; + assert( pSrc ); + memcpy(pPayload, pSrc, n); + nPayload -= n; + pPayload += n; + pSrc += n; + nSrc -= n; + spaceLeft -= n; + if( nSrc==0 ){ + nSrc = nData; + pSrc = pData; + } + } + releasePage(pToRelease); + return SQLITE_OK; +} + +/* +** Change the MemPage.pParent pointer on the page whose number is +** given in the second argument so that MemPage.pParent holds the +** pointer in the third argument. +*/ +static int reparentPage(BtShared *pBt, Pgno pgno, MemPage *pNewParent, int idx){ + MemPage *pThis; + unsigned char *aData; + + assert( pNewParent!=0 ); + if( pgno==0 ) return SQLITE_OK; + assert( pBt->pPager!=0 ); + aData = sqlite3pager_lookup(pBt->pPager, pgno); + if( aData ){ + pThis = (MemPage*)&aData[pBt->pageSize]; + assert( pThis->aData==aData ); + if( pThis->isInit ){ + if( pThis->pParent!=pNewParent ){ + if( pThis->pParent ) sqlite3pager_unref(pThis->pParent->aData); + pThis->pParent = pNewParent; + sqlite3pager_ref(pNewParent->aData); + } + pThis->idxParent = idx; + } + sqlite3pager_unref(aData); + } + +#ifndef SQLITE_OMIT_AUTOVACUUM + if( pBt->autoVacuum ){ + return ptrmapPut(pBt, pgno, PTRMAP_BTREE, pNewParent->pgno); + } +#endif + return SQLITE_OK; +} + + + +/* +** Change the pParent pointer of all children of pPage to point back +** to pPage. +** +** In other words, for every child of pPage, invoke reparentPage() +** to make sure that each child knows that pPage is its parent. +** +** This routine gets called after you memcpy() one page into +** another. +*/ +static int reparentChildPages(MemPage *pPage){ + int i; + BtShared *pBt = pPage->pBt; + int rc = SQLITE_OK; + + if( pPage->leaf ) return SQLITE_OK; + + for(i=0; inCell; i++){ + u8 *pCell = findCell(pPage, i); + if( !pPage->leaf ){ + rc = reparentPage(pBt, get4byte(pCell), pPage, i); + if( rc!=SQLITE_OK ) return rc; + } + } + if( !pPage->leaf ){ + rc = reparentPage(pBt, get4byte(&pPage->aData[pPage->hdrOffset+8]), + pPage, i); + pPage->idxShift = 0; + } + return rc; +} + +/* +** Remove the i-th cell from pPage. This routine effects pPage only. +** The cell content is not freed or deallocated. It is assumed that +** the cell content has been copied someplace else. This routine just +** removes the reference to the cell from pPage. +** +** "sz" must be the number of bytes in the cell. +*/ +static void dropCell(MemPage *pPage, int idx, int sz){ + int i; /* Loop counter */ + int pc; /* Offset to cell content of cell being deleted */ + u8 *data; /* pPage->aData */ + u8 *ptr; /* Used to move bytes around within data[] */ + + assert( idx>=0 && idxnCell ); + assert( sz==cellSize(pPage, idx) ); + assert( sqlite3pager_iswriteable(pPage->aData) ); + data = pPage->aData; + ptr = &data[pPage->cellOffset + 2*idx]; + pc = get2byte(ptr); + assert( pc>10 && pc+sz<=pPage->pBt->usableSize ); + freeSpace(pPage, pc, sz); + for(i=idx+1; inCell; i++, ptr+=2){ + ptr[0] = ptr[2]; + ptr[1] = ptr[3]; + } + pPage->nCell--; + put2byte(&data[pPage->hdrOffset+3], pPage->nCell); + pPage->nFree += 2; + pPage->idxShift = 1; +} + +/* +** Insert a new cell on pPage at cell index "i". pCell points to the +** content of the cell. +** +** If the cell content will fit on the page, then put it there. If it +** will not fit, then make a copy of the cell content into pTemp if +** pTemp is not null. Regardless of pTemp, allocate a new entry +** in pPage->aOvfl[] and make it point to the cell content (either +** in pTemp or the original pCell) and also record its index. +** Allocating a new entry in pPage->aCell[] implies that +** pPage->nOverflow is incremented. +** +** If nSkip is non-zero, then do not copy the first nSkip bytes of the +** cell. The caller will overwrite them after this function returns. If +** nSkip is non-zero, then pCell may not point to an invalid memory location +** (but pCell+nSkip is always valid). +*/ +static int insertCell( + MemPage *pPage, /* Page into which we are copying */ + int i, /* New cell becomes the i-th cell of the page */ + u8 *pCell, /* Content of the new cell */ + int sz, /* Bytes of content in pCell */ + u8 *pTemp, /* Temp storage space for pCell, if needed */ + u8 nSkip /* Do not write the first nSkip bytes of the cell */ +){ + int idx; /* Where to write new cell content in data[] */ + int j; /* Loop counter */ + int top; /* First byte of content for any cell in data[] */ + int end; /* First byte past the last cell pointer in data[] */ + int ins; /* Index in data[] where new cell pointer is inserted */ + int hdr; /* Offset into data[] of the page header */ + int cellOffset; /* Address of first cell pointer in data[] */ + u8 *data; /* The content of the whole page */ + u8 *ptr; /* Used for moving information around in data[] */ + + assert( i>=0 && i<=pPage->nCell+pPage->nOverflow ); + assert( sz==cellSizePtr(pPage, pCell) ); + assert( sqlite3pager_iswriteable(pPage->aData) ); + if( pPage->nOverflow || sz+2>pPage->nFree ){ + if( pTemp ){ + memcpy(pTemp+nSkip, pCell+nSkip, sz-nSkip); + pCell = pTemp; + } + j = pPage->nOverflow++; + assert( jaOvfl)/sizeof(pPage->aOvfl[0]) ); + pPage->aOvfl[j].pCell = pCell; + pPage->aOvfl[j].idx = i; + pPage->nFree = 0; + }else{ + data = pPage->aData; + hdr = pPage->hdrOffset; + top = get2byte(&data[hdr+5]); + cellOffset = pPage->cellOffset; + end = cellOffset + 2*pPage->nCell + 2; + ins = cellOffset + 2*i; + if( end > top - sz ){ + int rc = defragmentPage(pPage); + if( rc!=SQLITE_OK ) return rc; + top = get2byte(&data[hdr+5]); + assert( end + sz <= top ); + } + idx = allocateSpace(pPage, sz); + assert( idx>0 ); + assert( end <= get2byte(&data[hdr+5]) ); + pPage->nCell++; + pPage->nFree -= 2; + memcpy(&data[idx+nSkip], pCell+nSkip, sz-nSkip); + for(j=end-2, ptr=&data[j]; j>ins; j-=2, ptr-=2){ + ptr[0] = ptr[-2]; + ptr[1] = ptr[-1]; + } + put2byte(&data[ins], idx); + put2byte(&data[hdr+3], pPage->nCell); + pPage->idxShift = 1; +#ifndef SQLITE_OMIT_AUTOVACUUM + if( pPage->pBt->autoVacuum ){ + /* The cell may contain a pointer to an overflow page. If so, write + ** the entry for the overflow page into the pointer map. + */ + CellInfo info; + parseCellPtr(pPage, pCell, &info); + if( (info.nData+(pPage->intKey?0:info.nKey))>info.nLocal ){ + Pgno pgnoOvfl = get4byte(&pCell[info.iOverflow]); + int rc = ptrmapPut(pPage->pBt, pgnoOvfl, PTRMAP_OVERFLOW1, pPage->pgno); + if( rc!=SQLITE_OK ) return rc; + } + } +#endif + } + + return SQLITE_OK; +} + +/* +** Add a list of cells to a page. The page should be initially empty. +** The cells are guaranteed to fit on the page. +*/ +static void assemblePage( + MemPage *pPage, /* The page to be assemblied */ + int nCell, /* The number of cells to add to this page */ + u8 **apCell, /* Pointers to cell bodies */ + int *aSize /* Sizes of the cells */ +){ + int i; /* Loop counter */ + int totalSize; /* Total size of all cells */ + int hdr; /* Index of page header */ + int cellptr; /* Address of next cell pointer */ + int cellbody; /* Address of next cell body */ + u8 *data; /* Data for the page */ + + assert( pPage->nOverflow==0 ); + totalSize = 0; + for(i=0; inFree ); + assert( pPage->nCell==0 ); + cellptr = pPage->cellOffset; + data = pPage->aData; + hdr = pPage->hdrOffset; + put2byte(&data[hdr+3], nCell); + if( nCell ){ + cellbody = allocateSpace(pPage, totalSize); + assert( cellbody>0 ); + assert( pPage->nFree >= 2*nCell ); + pPage->nFree -= 2*nCell; + for(i=0; ipBt->usableSize ); + } + pPage->nCell = nCell; +} + +/* +** The following parameters determine how many adjacent pages get involved +** in a balancing operation. NN is the number of neighbors on either side +** of the page that participate in the balancing operation. NB is the +** total number of pages that participate, including the target page and +** NN neighbors on either side. +** +** The minimum value of NN is 1 (of course). Increasing NN above 1 +** (to 2 or 3) gives a modest improvement in SELECT and DELETE performance +** in exchange for a larger degradation in INSERT and UPDATE performance. +** The value of NN appears to give the best results overall. +*/ +#define NN 1 /* Number of neighbors on either side of pPage */ +#define NB (NN*2+1) /* Total pages involved in the balance */ + +/* Forward reference */ +static int balance(MemPage*, int); + +#ifndef SQLITE_OMIT_QUICKBALANCE +/* +** This version of balance() handles the common special case where +** a new entry is being inserted on the extreme right-end of the +** tree, in other words, when the new entry will become the largest +** entry in the tree. +** +** Instead of trying balance the 3 right-most leaf pages, just add +** a new page to the right-hand side and put the one new entry in +** that page. This leaves the right side of the tree somewhat +** unbalanced. But odds are that we will be inserting new entries +** at the end soon afterwards so the nearly empty page will quickly +** fill up. On average. +** +** pPage is the leaf page which is the right-most page in the tree. +** pParent is its parent. pPage must have a single overflow entry +** which is also the right-most entry on the page. +*/ +static int balance_quick(MemPage *pPage, MemPage *pParent){ + int rc; + MemPage *pNew; + Pgno pgnoNew; + u8 *pCell; + int szCell; + CellInfo info; + BtShared *pBt = pPage->pBt; + int parentIdx = pParent->nCell; /* pParent new divider cell index */ + int parentSize; /* Size of new divider cell */ + u8 parentCell[64]; /* Space for the new divider cell */ + + /* Allocate a new page. Insert the overflow cell from pPage + ** into it. Then remove the overflow cell from pPage. + */ + rc = allocatePage(pBt, &pNew, &pgnoNew, 0, 0); + if( rc!=SQLITE_OK ){ + return rc; + } + pCell = pPage->aOvfl[0].pCell; + szCell = cellSizePtr(pPage, pCell); + zeroPage(pNew, pPage->aData[0]); + assemblePage(pNew, 1, &pCell, &szCell); + pPage->nOverflow = 0; + + /* Set the parent of the newly allocated page to pParent. */ + pNew->pParent = pParent; + sqlite3pager_ref(pParent->aData); + + /* pPage is currently the right-child of pParent. Change this + ** so that the right-child is the new page allocated above and + ** pPage is the next-to-right child. + */ + assert( pPage->nCell>0 ); + parseCellPtr(pPage, findCell(pPage, pPage->nCell-1), &info); + rc = fillInCell(pParent, parentCell, 0, info.nKey, 0, 0, &parentSize); + if( rc!=SQLITE_OK ){ + return rc; + } + assert( parentSize<64 ); + rc = insertCell(pParent, parentIdx, parentCell, parentSize, 0, 4); + if( rc!=SQLITE_OK ){ + return rc; + } + put4byte(findOverflowCell(pParent,parentIdx), pPage->pgno); + put4byte(&pParent->aData[pParent->hdrOffset+8], pgnoNew); + +#ifndef SQLITE_OMIT_AUTOVACUUM + /* If this is an auto-vacuum database, update the pointer map + ** with entries for the new page, and any pointer from the + ** cell on the page to an overflow page. + */ + if( pBt->autoVacuum ){ + rc = ptrmapPut(pBt, pgnoNew, PTRMAP_BTREE, pParent->pgno); + if( rc!=SQLITE_OK ){ + return rc; + } + rc = ptrmapPutOvfl(pNew, 0); + if( rc!=SQLITE_OK ){ + return rc; + } + } +#endif + + /* Release the reference to the new page and balance the parent page, + ** in case the divider cell inserted caused it to become overfull. + */ + releasePage(pNew); + return balance(pParent, 0); +} +#endif /* SQLITE_OMIT_QUICKBALANCE */ + +/* +** The ISAUTOVACUUM macro is used within balance_nonroot() to determine +** if the database supports auto-vacuum or not. Because it is used +** within an expression that is an argument to another macro +** (sqliteMallocRaw), it is not possible to use conditional compilation. +** So, this macro is defined instead. +*/ +#ifndef SQLITE_OMIT_AUTOVACUUM +#define ISAUTOVACUUM (pBt->autoVacuum) +#else +#define ISAUTOVACUUM 0 +#endif + +/* +** This routine redistributes Cells on pPage and up to NN*2 siblings +** of pPage so that all pages have about the same amount of free space. +** Usually NN siblings on either side of pPage is used in the balancing, +** though more siblings might come from one side if pPage is the first +** or last child of its parent. If pPage has fewer than 2*NN siblings +** (something which can only happen if pPage is the root page or a +** child of root) then all available siblings participate in the balancing. +** +** The number of siblings of pPage might be increased or decreased by one or +** two in an effort to keep pages nearly full but not over full. The root page +** is special and is allowed to be nearly empty. If pPage is +** the root page, then the depth of the tree might be increased +** or decreased by one, as necessary, to keep the root page from being +** overfull or completely empty. +** +** Note that when this routine is called, some of the Cells on pPage +** might not actually be stored in pPage->aData[]. This can happen +** if the page is overfull. Part of the job of this routine is to +** make sure all Cells for pPage once again fit in pPage->aData[]. +** +** In the course of balancing the siblings of pPage, the parent of pPage +** might become overfull or underfull. If that happens, then this routine +** is called recursively on the parent. +** +** If this routine fails for any reason, it might leave the database +** in a corrupted state. So if this routine fails, the database should +** be rolled back. +*/ +static int balance_nonroot(MemPage *pPage){ + MemPage *pParent; /* The parent of pPage */ + BtShared *pBt; /* The whole database */ + int nCell = 0; /* Number of cells in apCell[] */ + int nMaxCells = 0; /* Allocated size of apCell, szCell, aFrom. */ + int nOld; /* Number of pages in apOld[] */ + int nNew; /* Number of pages in apNew[] */ + int nDiv; /* Number of cells in apDiv[] */ + int i, j, k; /* Loop counters */ + int idx; /* Index of pPage in pParent->aCell[] */ + int nxDiv; /* Next divider slot in pParent->aCell[] */ + int rc; /* The return code */ + int leafCorrection; /* 4 if pPage is a leaf. 0 if not */ + int leafData; /* True if pPage is a leaf of a LEAFDATA tree */ + int usableSpace; /* Bytes in pPage beyond the header */ + int pageFlags; /* Value of pPage->aData[0] */ + int subtotal; /* Subtotal of bytes in cells on one page */ + int iSpace = 0; /* First unused byte of aSpace[] */ + MemPage *apOld[NB]; /* pPage and up to two siblings */ + Pgno pgnoOld[NB]; /* Page numbers for each page in apOld[] */ + MemPage *apCopy[NB]; /* Private copies of apOld[] pages */ + MemPage *apNew[NB+2]; /* pPage and up to NB siblings after balancing */ + Pgno pgnoNew[NB+2]; /* Page numbers for each page in apNew[] */ + u8 *apDiv[NB]; /* Divider cells in pParent */ + int cntNew[NB+2]; /* Index in aCell[] of cell after i-th page */ + int szNew[NB+2]; /* Combined size of cells place on i-th page */ + u8 **apCell = 0; /* All cells begin balanced */ + int *szCell; /* Local size of all cells in apCell[] */ + u8 *aCopy[NB]; /* Space for holding data of apCopy[] */ + u8 *aSpace; /* Space to hold copies of dividers cells */ +#ifndef SQLITE_OMIT_AUTOVACUUM + u8 *aFrom = 0; +#endif + + /* + ** Find the parent page. + */ + assert( pPage->isInit ); + assert( sqlite3pager_iswriteable(pPage->aData) ); + pBt = pPage->pBt; + pParent = pPage->pParent; + assert( pParent ); + if( SQLITE_OK!=(rc = sqlite3pager_write(pParent->aData)) ){ + return rc; + } + TRACE(("BALANCE: begin page %d child of %d\n", pPage->pgno, pParent->pgno)); + +#ifndef SQLITE_OMIT_QUICKBALANCE + /* + ** A special case: If a new entry has just been inserted into a + ** table (that is, a btree with integer keys and all data at the leaves) + ** and the new entry is the right-most entry in the tree (it has the + ** largest key) then use the special balance_quick() routine for + ** balancing. balance_quick() is much faster and results in a tighter + ** packing of data in the common case. + */ + if( pPage->leaf && + pPage->intKey && + pPage->leafData && + pPage->nOverflow==1 && + pPage->aOvfl[0].idx==pPage->nCell && + pPage->pParent->pgno!=1 && + get4byte(&pParent->aData[pParent->hdrOffset+8])==pPage->pgno + ){ + /* + ** TODO: Check the siblings to the left of pPage. It may be that + ** they are not full and no new page is required. + */ + return balance_quick(pPage, pParent); + } +#endif + + /* + ** Find the cell in the parent page whose left child points back + ** to pPage. The "idx" variable is the index of that cell. If pPage + ** is the rightmost child of pParent then set idx to pParent->nCell + */ + if( pParent->idxShift ){ + Pgno pgno; + pgno = pPage->pgno; + assert( pgno==sqlite3pager_pagenumber(pPage->aData) ); + for(idx=0; idxnCell; idx++){ + if( get4byte(findCell(pParent, idx))==pgno ){ + break; + } + } + assert( idxnCell + || get4byte(&pParent->aData[pParent->hdrOffset+8])==pgno ); + }else{ + idx = pPage->idxParent; + } + + /* + ** Initialize variables so that it will be safe to jump + ** directly to balance_cleanup at any moment. + */ + nOld = nNew = 0; + sqlite3pager_ref(pParent->aData); + + /* + ** Find sibling pages to pPage and the cells in pParent that divide + ** the siblings. An attempt is made to find NN siblings on either + ** side of pPage. More siblings are taken from one side, however, if + ** pPage there are fewer than NN siblings on the other side. If pParent + ** has NB or fewer children then all children of pParent are taken. + */ + nxDiv = idx - NN; + if( nxDiv + NB > pParent->nCell ){ + nxDiv = pParent->nCell - NB + 1; + } + if( nxDiv<0 ){ + nxDiv = 0; + } + nDiv = 0; + for(i=0, k=nxDiv; inCell ){ + apDiv[i] = findCell(pParent, k); + nDiv++; + assert( !pParent->leaf ); + pgnoOld[i] = get4byte(apDiv[i]); + }else if( k==pParent->nCell ){ + pgnoOld[i] = get4byte(&pParent->aData[pParent->hdrOffset+8]); + }else{ + break; + } + rc = getAndInitPage(pBt, pgnoOld[i], &apOld[i], pParent); + if( rc ) goto balance_cleanup; + apOld[i]->idxParent = k; + apCopy[i] = 0; + assert( i==nOld ); + nOld++; + nMaxCells += 1+apOld[i]->nCell+apOld[i]->nOverflow; + } + + /* Make nMaxCells a multiple of 2 in order to preserve 8-byte + ** alignment */ + nMaxCells = (nMaxCells + 1)&~1; + + /* + ** Allocate space for memory structures + */ + apCell = sqliteMallocRaw( + nMaxCells*sizeof(u8*) /* apCell */ + + nMaxCells*sizeof(int) /* szCell */ + + ROUND8(sizeof(MemPage))*NB /* aCopy */ + + pBt->pageSize*(5+NB) /* aSpace */ + + (ISAUTOVACUUM ? nMaxCells : 0) /* aFrom */ + ); + if( apCell==0 ){ + rc = SQLITE_NOMEM; + goto balance_cleanup; + } + szCell = (int*)&apCell[nMaxCells]; + aCopy[0] = (u8*)&szCell[nMaxCells]; + assert( ((aCopy[0] - (u8*)apCell) & 7)==0 ); /* 8-byte alignment required */ + for(i=1; ipageSize+ROUND8(sizeof(MemPage))]; + assert( ((aCopy[i] - (u8*)apCell) & 7)==0 ); /* 8-byte alignment required */ + } + aSpace = &aCopy[NB-1][pBt->pageSize+ROUND8(sizeof(MemPage))]; + assert( ((aSpace - (u8*)apCell) & 7)==0 ); /* 8-byte alignment required */ +#ifndef SQLITE_OMIT_AUTOVACUUM + if( pBt->autoVacuum ){ + aFrom = &aSpace[5*pBt->pageSize]; + } +#endif + + /* + ** Make copies of the content of pPage and its siblings into aOld[]. + ** The rest of this function will use data from the copies rather + ** that the original pages since the original pages will be in the + ** process of being overwritten. + */ + for(i=0; ipageSize]; + p->aData = &((u8*)p)[-pBt->pageSize]; + memcpy(p->aData, apOld[i]->aData, pBt->pageSize + sizeof(MemPage)); + /* The memcpy() above changes the value of p->aData so we have to + ** set it again. */ + p->aData = &((u8*)p)[-pBt->pageSize]; + } + + /* + ** Load pointers to all cells on sibling pages and the divider cells + ** into the local apCell[] array. Make copies of the divider cells + ** into space obtained form aSpace[] and remove the the divider Cells + ** from pParent. + ** + ** If the siblings are on leaf pages, then the child pointers of the + ** divider cells are stripped from the cells before they are copied + ** into aSpace[]. In this way, all cells in apCell[] are without + ** child pointers. If siblings are not leaves, then all cell in + ** apCell[] include child pointers. Either way, all cells in apCell[] + ** are alike. + ** + ** leafCorrection: 4 if pPage is a leaf. 0 if pPage is not a leaf. + ** leafData: 1 if pPage holds key+data and pParent holds only keys. + */ + nCell = 0; + leafCorrection = pPage->leaf*4; + leafData = pPage->leafData && pPage->leaf; + for(i=0; inCell+pOld->nOverflow; + for(j=0; jautoVacuum ){ + int a; + aFrom[nCell] = i; + for(a=0; anOverflow; a++){ + if( pOld->aOvfl[a].pCell==apCell[nCell] ){ + aFrom[nCell] = 0xFF; + break; + } + } + } +#endif + nCell++; + } + if( ipageSize*5 ); + memcpy(pTemp, apDiv[i], sz); + apCell[nCell] = pTemp+leafCorrection; +#ifndef SQLITE_OMIT_AUTOVACUUM + if( pBt->autoVacuum ){ + aFrom[nCell] = 0xFF; + } +#endif + dropCell(pParent, nxDiv, sz); + szCell[nCell] -= leafCorrection; + assert( get4byte(pTemp)==pgnoOld[i] ); + if( !pOld->leaf ){ + assert( leafCorrection==0 ); + /* The right pointer of the child page pOld becomes the left + ** pointer of the divider cell */ + memcpy(apCell[nCell], &pOld->aData[pOld->hdrOffset+8], 4); + }else{ + assert( leafCorrection==4 ); + } + nCell++; + } + } + } + + /* + ** Figure out the number of pages needed to hold all nCell cells. + ** Store this number in "k". Also compute szNew[] which is the total + ** size of all cells on the i-th page and cntNew[] which is the index + ** in apCell[] of the cell that divides page i from page i+1. + ** cntNew[k] should equal nCell. + ** + ** Values computed by this block: + ** + ** k: The total number of sibling pages + ** szNew[i]: Spaced used on the i-th sibling page. + ** cntNew[i]: Index in apCell[] and szCell[] for the first cell to + ** the right of the i-th sibling page. + ** usableSpace: Number of bytes of space available on each sibling. + ** + */ + usableSpace = pBt->usableSize - 12 + leafCorrection; + for(subtotal=k=i=0; i usableSpace ){ + szNew[k] = subtotal - szCell[i]; + cntNew[k] = i; + if( leafData ){ i--; } + subtotal = 0; + k++; + } + } + szNew[k] = subtotal; + cntNew[k] = nCell; + k++; + + /* + ** The packing computed by the previous block is biased toward the siblings + ** on the left side. The left siblings are always nearly full, while the + ** right-most sibling might be nearly empty. This block of code attempts + ** to adjust the packing of siblings to get a better balance. + ** + ** This adjustment is more than an optimization. The packing above might + ** be so out of balance as to be illegal. For example, the right-most + ** sibling might be completely empty. This adjustment is not optional. + */ + for(i=k-1; i>0; i--){ + int szRight = szNew[i]; /* Size of sibling on the right */ + int szLeft = szNew[i-1]; /* Size of sibling on the left */ + int r; /* Index of right-most cell in left sibling */ + int d; /* Index of first cell to the left of right sibling */ + + r = cntNew[i-1] - 1; + d = r + 1 - leafData; + assert( d0) or we are the + ** a virtual root page. A virtual root page is when the real root + ** page is page 1 and we are the only child of that page. + */ + assert( cntNew[0]>0 || (pParent->pgno==1 && pParent->nCell==0) ); + + /* + ** Allocate k new pages. Reuse old pages where possible. + */ + assert( pPage->pgno>1 ); + pageFlags = pPage->aData[0]; + for(i=0; iaData); + if( rc ) goto balance_cleanup; + }else{ + assert( i>0 ); + rc = allocatePage(pBt, &pNew, &pgnoNew[i], pgnoNew[i-1], 0); + if( rc ) goto balance_cleanup; + apNew[i] = pNew; + } + nNew++; + zeroPage(pNew, pageFlags); + } + + /* Free any old pages that were not reused as new pages. + */ + while( ii ){ + int t; + MemPage *pT; + t = pgnoNew[i]; + pT = apNew[i]; + pgnoNew[i] = pgnoNew[minI]; + apNew[i] = apNew[minI]; + pgnoNew[minI] = t; + apNew[minI] = pT; + } + } + TRACE(("BALANCE: old: %d %d %d new: %d(%d) %d(%d) %d(%d) %d(%d) %d(%d)\n", + pgnoOld[0], + nOld>=2 ? pgnoOld[1] : 0, + nOld>=3 ? pgnoOld[2] : 0, + pgnoNew[0], szNew[0], + nNew>=2 ? pgnoNew[1] : 0, nNew>=2 ? szNew[1] : 0, + nNew>=3 ? pgnoNew[2] : 0, nNew>=3 ? szNew[2] : 0, + nNew>=4 ? pgnoNew[3] : 0, nNew>=4 ? szNew[3] : 0, + nNew>=5 ? pgnoNew[4] : 0, nNew>=5 ? szNew[4] : 0)); + + /* + ** Evenly distribute the data in apCell[] across the new pages. + ** Insert divider cells into pParent as necessary. + */ + j = 0; + for(i=0; ipgno==pgnoNew[i] ); + assemblePage(pNew, cntNew[i]-j, &apCell[j], &szCell[j]); + assert( pNew->nCell>0 || (nNew==1 && cntNew[0]==0) ); + assert( pNew->nOverflow==0 ); + +#ifndef SQLITE_OMIT_AUTOVACUUM + /* If this is an auto-vacuum database, update the pointer map entries + ** that point to the siblings that were rearranged. These can be: left + ** children of cells, the right-child of the page, or overflow pages + ** pointed to by cells. + */ + if( pBt->autoVacuum ){ + for(k=j; kpgno!=pNew->pgno ){ + rc = ptrmapPutOvfl(pNew, k-j); + if( rc!=SQLITE_OK ){ + goto balance_cleanup; + } + } + } + } +#endif + + j = cntNew[i]; + + /* If the sibling page assembled above was not the right-most sibling, + ** insert a divider cell into the parent page. + */ + if( ileaf ){ + memcpy(&pNew->aData[8], pCell, 4); + pTemp = 0; + }else if( leafData ){ + /* If the tree is a leaf-data tree, and the siblings are leaves, + ** then there is no divider cell in apCell[]. Instead, the divider + ** cell consists of the integer key for the right-most cell of + ** the sibling-page assembled above only. + */ + CellInfo info; + j--; + parseCellPtr(pNew, apCell[j], &info); + pCell = &aSpace[iSpace]; + fillInCell(pParent, pCell, 0, info.nKey, 0, 0, &sz); + iSpace += sz; + assert( iSpace<=pBt->pageSize*5 ); + pTemp = 0; + }else{ + pCell -= 4; + pTemp = &aSpace[iSpace]; + iSpace += sz; + assert( iSpace<=pBt->pageSize*5 ); + } + rc = insertCell(pParent, nxDiv, pCell, sz, pTemp, 4); + if( rc!=SQLITE_OK ) goto balance_cleanup; + put4byte(findOverflowCell(pParent,nxDiv), pNew->pgno); +#ifndef SQLITE_OMIT_AUTOVACUUM + /* If this is an auto-vacuum database, and not a leaf-data tree, + ** then update the pointer map with an entry for the overflow page + ** that the cell just inserted points to (if any). + */ + if( pBt->autoVacuum && !leafData ){ + rc = ptrmapPutOvfl(pParent, nxDiv); + if( rc!=SQLITE_OK ){ + goto balance_cleanup; + } + } +#endif + j++; + nxDiv++; + } + } + assert( j==nCell ); + assert( nOld>0 ); + assert( nNew>0 ); + if( (pageFlags & PTF_LEAF)==0 ){ + memcpy(&apNew[nNew-1]->aData[8], &apCopy[nOld-1]->aData[8], 4); + } + if( nxDiv==pParent->nCell+pParent->nOverflow ){ + /* Right-most sibling is the right-most child of pParent */ + put4byte(&pParent->aData[pParent->hdrOffset+8], pgnoNew[nNew-1]); + }else{ + /* Right-most sibling is the left child of the first entry in pParent + ** past the right-most divider entry */ + put4byte(findOverflowCell(pParent, nxDiv), pgnoNew[nNew-1]); + } + + /* + ** Reparent children of all cells. + */ + for(i=0; iisInit ); + rc = balance(pParent, 0); + + /* + ** Cleanup before returning. + */ +balance_cleanup: + sqliteFree(apCell); + for(i=0; ipgno, nOld, nNew, nCell)); + return rc; +} + +/* +** This routine is called for the root page of a btree when the root +** page contains no cells. This is an opportunity to make the tree +** shallower by one level. +*/ +static int balance_shallower(MemPage *pPage){ + MemPage *pChild; /* The only child page of pPage */ + Pgno pgnoChild; /* Page number for pChild */ + int rc = SQLITE_OK; /* Return code from subprocedures */ + BtShared *pBt; /* The main BTree structure */ + int mxCellPerPage; /* Maximum number of cells per page */ + u8 **apCell; /* All cells from pages being balanced */ + int *szCell; /* Local size of all cells */ + + assert( pPage->pParent==0 ); + assert( pPage->nCell==0 ); + pBt = pPage->pBt; + mxCellPerPage = MX_CELL(pBt); + apCell = sqliteMallocRaw( mxCellPerPage*(sizeof(u8*)+sizeof(int)) ); + if( apCell==0 ) return SQLITE_NOMEM; + szCell = (int*)&apCell[mxCellPerPage]; + if( pPage->leaf ){ + /* The table is completely empty */ + TRACE(("BALANCE: empty table %d\n", pPage->pgno)); + }else{ + /* The root page is empty but has one child. Transfer the + ** information from that one child into the root page if it + ** will fit. This reduces the depth of the tree by one. + ** + ** If the root page is page 1, it has less space available than + ** its child (due to the 100 byte header that occurs at the beginning + ** of the database fle), so it might not be able to hold all of the + ** information currently contained in the child. If this is the + ** case, then do not do the transfer. Leave page 1 empty except + ** for the right-pointer to the child page. The child page becomes + ** the virtual root of the tree. + */ + pgnoChild = get4byte(&pPage->aData[pPage->hdrOffset+8]); + assert( pgnoChild>0 ); + assert( pgnoChild<=sqlite3pager_pagecount(pPage->pBt->pPager) ); + rc = getPage(pPage->pBt, pgnoChild, &pChild); + if( rc ) goto end_shallow_balance; + if( pPage->pgno==1 ){ + rc = initPage(pChild, pPage); + if( rc ) goto end_shallow_balance; + assert( pChild->nOverflow==0 ); + if( pChild->nFree>=100 ){ + /* The child information will fit on the root page, so do the + ** copy */ + int i; + zeroPage(pPage, pChild->aData[0]); + for(i=0; inCell; i++){ + apCell[i] = findCell(pChild,i); + szCell[i] = cellSizePtr(pChild, apCell[i]); + } + assemblePage(pPage, pChild->nCell, apCell, szCell); + /* Copy the right-pointer of the child to the parent. */ + put4byte(&pPage->aData[pPage->hdrOffset+8], + get4byte(&pChild->aData[pChild->hdrOffset+8])); + freePage(pChild); + TRACE(("BALANCE: child %d transfer to page 1\n", pChild->pgno)); + }else{ + /* The child has more information that will fit on the root. + ** The tree is already balanced. Do nothing. */ + TRACE(("BALANCE: child %d will not fit on page 1\n", pChild->pgno)); + } + }else{ + memcpy(pPage->aData, pChild->aData, pPage->pBt->usableSize); + pPage->isInit = 0; + pPage->pParent = 0; + rc = initPage(pPage, 0); + assert( rc==SQLITE_OK ); + freePage(pChild); + TRACE(("BALANCE: transfer child %d into root %d\n", + pChild->pgno, pPage->pgno)); + } + rc = reparentChildPages(pPage); + assert( pPage->nOverflow==0 ); +#ifndef SQLITE_OMIT_AUTOVACUUM + if( pBt->autoVacuum ){ + int i; + for(i=0; inCell; i++){ + rc = ptrmapPutOvfl(pPage, i); + if( rc!=SQLITE_OK ){ + goto end_shallow_balance; + } + } + } +#endif + if( rc!=SQLITE_OK ) goto end_shallow_balance; + releasePage(pChild); + } +end_shallow_balance: + sqliteFree(apCell); + return rc; +} + + +/* +** The root page is overfull +** +** When this happens, Create a new child page and copy the +** contents of the root into the child. Then make the root +** page an empty page with rightChild pointing to the new +** child. Finally, call balance_internal() on the new child +** to cause it to split. +*/ +static int balance_deeper(MemPage *pPage){ + int rc; /* Return value from subprocedures */ + MemPage *pChild; /* Pointer to a new child page */ + Pgno pgnoChild; /* Page number of the new child page */ + BtShared *pBt; /* The BTree */ + int usableSize; /* Total usable size of a page */ + u8 *data; /* Content of the parent page */ + u8 *cdata; /* Content of the child page */ + int hdr; /* Offset to page header in parent */ + int brk; /* Offset to content of first cell in parent */ + + assert( pPage->pParent==0 ); + assert( pPage->nOverflow>0 ); + pBt = pPage->pBt; + rc = allocatePage(pBt, &pChild, &pgnoChild, pPage->pgno, 0); + if( rc ) return rc; + assert( sqlite3pager_iswriteable(pChild->aData) ); + usableSize = pBt->usableSize; + data = pPage->aData; + hdr = pPage->hdrOffset; + brk = get2byte(&data[hdr+5]); + cdata = pChild->aData; + memcpy(cdata, &data[hdr], pPage->cellOffset+2*pPage->nCell-hdr); + memcpy(&cdata[brk], &data[brk], usableSize-brk); + assert( pChild->isInit==0 ); + rc = initPage(pChild, pPage); + if( rc ) goto balancedeeper_out; + memcpy(pChild->aOvfl, pPage->aOvfl, pPage->nOverflow*sizeof(pPage->aOvfl[0])); + pChild->nOverflow = pPage->nOverflow; + if( pChild->nOverflow ){ + pChild->nFree = 0; + } + assert( pChild->nCell==pPage->nCell ); + zeroPage(pPage, pChild->aData[0] & ~PTF_LEAF); + put4byte(&pPage->aData[pPage->hdrOffset+8], pgnoChild); + TRACE(("BALANCE: copy root %d into %d\n", pPage->pgno, pChild->pgno)); +#ifndef SQLITE_OMIT_AUTOVACUUM + if( pBt->autoVacuum ){ + int i; + rc = ptrmapPut(pBt, pChild->pgno, PTRMAP_BTREE, pPage->pgno); + if( rc ) goto balancedeeper_out; + for(i=0; inCell; i++){ + rc = ptrmapPutOvfl(pChild, i); + if( rc!=SQLITE_OK ){ + return rc; + } + } + } +#endif + rc = balance_nonroot(pChild); + +balancedeeper_out: + releasePage(pChild); + return rc; +} + +/* +** Decide if the page pPage needs to be balanced. If balancing is +** required, call the appropriate balancing routine. +*/ +static int balance(MemPage *pPage, int insert){ + int rc = SQLITE_OK; + if( pPage->pParent==0 ){ + if( pPage->nOverflow>0 ){ + rc = balance_deeper(pPage); + } + if( rc==SQLITE_OK && pPage->nCell==0 ){ + rc = balance_shallower(pPage); + } + }else{ + if( pPage->nOverflow>0 || + (!insert && pPage->nFree>pPage->pBt->usableSize*2/3) ){ + rc = balance_nonroot(pPage); + } + } + return rc; +} + +/* +** This routine checks all cursors that point to table pgnoRoot. +** If any of those cursors were opened with wrFlag==0 in a different +** database connection (a database connection that shares the pager +** cache with the current connection) and that other connection +** is not in the ReadUncommmitted state, then this routine returns +** SQLITE_LOCKED. +** +** In addition to checking for read-locks (where a read-lock +** means a cursor opened with wrFlag==0) this routine also moves +** all cursors write cursors so that they are pointing to the +** first Cell on the root page. This is necessary because an insert +** or delete might change the number of cells on a page or delete +** a page entirely and we do not want to leave any cursors +** pointing to non-existant pages or cells. +*/ +static int checkReadLocks(Btree *pBtree, Pgno pgnoRoot, BtCursor *pExclude){ + BtCursor *p; + BtShared *pBt = pBtree->pBt; + sqlite3 *db = pBtree->pSqlite; + for(p=pBt->pCursor; p; p=p->pNext){ + if( p==pExclude ) continue; + if( p->eState!=CURSOR_VALID ) continue; + if( p->pgnoRoot!=pgnoRoot ) continue; + if( p->wrFlag==0 ){ + sqlite3 *dbOther = p->pBtree->pSqlite; + if( dbOther==0 || + (dbOther!=db && (dbOther->flags & SQLITE_ReadUncommitted)==0) ){ + return SQLITE_LOCKED; + } + }else if( p->pPage->pgno!=p->pgnoRoot ){ + moveToRoot(p); + } + } + return SQLITE_OK; +} + +/* +** Insert a new record into the BTree. The key is given by (pKey,nKey) +** and the data is given by (pData,nData). The cursor is used only to +** define what table the record should be inserted into. The cursor +** is left pointing at a random location. +** +** For an INTKEY table, only the nKey value of the key is used. pKey is +** ignored. For a ZERODATA table, the pData and nData are both ignored. +*/ +int sqlite3BtreeInsert( + BtCursor *pCur, /* Insert data into the table of this cursor */ + const void *pKey, i64 nKey, /* The key of the new record */ + const void *pData, int nData /* The data of the new record */ +){ + int rc; + int loc; + int szNew; + MemPage *pPage; + BtShared *pBt = pCur->pBtree->pBt; + unsigned char *oldCell; + unsigned char *newCell = 0; + + if( pBt->inTransaction!=TRANS_WRITE ){ + /* Must start a transaction before doing an insert */ + return pBt->readOnly ? SQLITE_READONLY : SQLITE_ERROR; + } + assert( !pBt->readOnly ); + if( !pCur->wrFlag ){ + return SQLITE_PERM; /* Cursor not open for writing */ + } + if( checkReadLocks(pCur->pBtree, pCur->pgnoRoot, pCur) ){ + return SQLITE_LOCKED; /* The table pCur points to has a read lock */ + } + + /* Save the positions of any other cursors open on this table */ + restoreOrClearCursorPosition(pCur, 0); + if( + SQLITE_OK!=(rc = saveAllCursors(pBt, pCur->pgnoRoot, pCur)) || + SQLITE_OK!=(rc = sqlite3BtreeMoveto(pCur, pKey, nKey, &loc)) + ){ + return rc; + } + + pPage = pCur->pPage; + assert( pPage->intKey || nKey>=0 ); + assert( pPage->leaf || !pPage->leafData ); + TRACE(("INSERT: table=%d nkey=%lld ndata=%d page=%d %s\n", + pCur->pgnoRoot, nKey, nData, pPage->pgno, + loc==0 ? "overwrite" : "new entry")); + assert( pPage->isInit ); + rc = sqlite3pager_write(pPage->aData); + if( rc ) return rc; + newCell = sqliteMallocRaw( MX_CELL_SIZE(pBt) ); + if( newCell==0 ) return SQLITE_NOMEM; + rc = fillInCell(pPage, newCell, pKey, nKey, pData, nData, &szNew); + if( rc ) goto end_insert; + assert( szNew==cellSizePtr(pPage, newCell) ); + assert( szNew<=MX_CELL_SIZE(pBt) ); + if( loc==0 && CURSOR_VALID==pCur->eState ){ + int szOld; + assert( pCur->idx>=0 && pCur->idxnCell ); + oldCell = findCell(pPage, pCur->idx); + if( !pPage->leaf ){ + memcpy(newCell, oldCell, 4); + } + szOld = cellSizePtr(pPage, oldCell); + rc = clearCell(pPage, oldCell); + if( rc ) goto end_insert; + dropCell(pPage, pCur->idx, szOld); + }else if( loc<0 && pPage->nCell>0 ){ + assert( pPage->leaf ); + pCur->idx++; + pCur->info.nSize = 0; + }else{ + assert( pPage->leaf ); + } + rc = insertCell(pPage, pCur->idx, newCell, szNew, 0, 0); + if( rc!=SQLITE_OK ) goto end_insert; + rc = balance(pPage, 1); + /* sqlite3BtreePageDump(pCur->pBt, pCur->pgnoRoot, 1); */ + /* fflush(stdout); */ + if( rc==SQLITE_OK ){ + moveToRoot(pCur); + } +end_insert: + sqliteFree(newCell); + return rc; +} + +/* +** Delete the entry that the cursor is pointing to. The cursor +** is left pointing at a random location. +*/ +int sqlite3BtreeDelete(BtCursor *pCur){ + MemPage *pPage = pCur->pPage; + unsigned char *pCell; + int rc; + Pgno pgnoChild = 0; + BtShared *pBt = pCur->pBtree->pBt; + + assert( pPage->isInit ); + if( pBt->inTransaction!=TRANS_WRITE ){ + /* Must start a transaction before doing a delete */ + return pBt->readOnly ? SQLITE_READONLY : SQLITE_ERROR; + } + assert( !pBt->readOnly ); + if( pCur->idx >= pPage->nCell ){ + return SQLITE_ERROR; /* The cursor is not pointing to anything */ + } + if( !pCur->wrFlag ){ + return SQLITE_PERM; /* Did not open this cursor for writing */ + } + if( checkReadLocks(pCur->pBtree, pCur->pgnoRoot, pCur) ){ + return SQLITE_LOCKED; /* The table pCur points to has a read lock */ + } + + /* Restore the current cursor position (a no-op if the cursor is not in + ** CURSOR_REQUIRESEEK state) and save the positions of any other cursors + ** open on the same table. Then call sqlite3pager_write() on the page + ** that the entry will be deleted from. + */ + if( + (rc = restoreOrClearCursorPosition(pCur, 1))!=0 || + (rc = saveAllCursors(pBt, pCur->pgnoRoot, pCur))!=0 || + (rc = sqlite3pager_write(pPage->aData))!=0 + ){ + return rc; + } + + /* Locate the cell within it's page and leave pCell pointing to the + ** data. The clearCell() call frees any overflow pages associated with the + ** cell. The cell itself is still intact. + */ + pCell = findCell(pPage, pCur->idx); + if( !pPage->leaf ){ + pgnoChild = get4byte(pCell); + } + rc = clearCell(pPage, pCell); + if( rc ) return rc; + + if( !pPage->leaf ){ + /* + ** The entry we are about to delete is not a leaf so if we do not + ** do something we will leave a hole on an internal page. + ** We have to fill the hole by moving in a cell from a leaf. The + ** next Cell after the one to be deleted is guaranteed to exist and + ** to be a leaf so we can use it. + */ + BtCursor leafCur; + unsigned char *pNext; + int szNext; /* The compiler warning is wrong: szNext is always + ** initialized before use. Adding an extra initialization + ** to silence the compiler slows down the code. */ + int notUsed; + unsigned char *tempCell = 0; + assert( !pPage->leafData ); + getTempCursor(pCur, &leafCur); + rc = sqlite3BtreeNext(&leafCur, ¬Used); + if( rc!=SQLITE_OK ){ + if( rc!=SQLITE_NOMEM ){ + rc = SQLITE_CORRUPT_BKPT; + } + } + if( rc==SQLITE_OK ){ + rc = sqlite3pager_write(leafCur.pPage->aData); + } + if( rc==SQLITE_OK ){ + TRACE(("DELETE: table=%d delete internal from %d replace from leaf %d\n", + pCur->pgnoRoot, pPage->pgno, leafCur.pPage->pgno)); + dropCell(pPage, pCur->idx, cellSizePtr(pPage, pCell)); + pNext = findCell(leafCur.pPage, leafCur.idx); + szNext = cellSizePtr(leafCur.pPage, pNext); + assert( MX_CELL_SIZE(pBt)>=szNext+4 ); + tempCell = sqliteMallocRaw( MX_CELL_SIZE(pBt) ); + if( tempCell==0 ){ + rc = SQLITE_NOMEM; + } + } + if( rc==SQLITE_OK ){ + rc = insertCell(pPage, pCur->idx, pNext-4, szNext+4, tempCell, 0); + } + if( rc==SQLITE_OK ){ + put4byte(findOverflowCell(pPage, pCur->idx), pgnoChild); + rc = balance(pPage, 0); + } + if( rc==SQLITE_OK ){ + dropCell(leafCur.pPage, leafCur.idx, szNext); + rc = balance(leafCur.pPage, 0); + } + sqliteFree(tempCell); + releaseTempCursor(&leafCur); + }else{ + TRACE(("DELETE: table=%d delete from leaf %d\n", + pCur->pgnoRoot, pPage->pgno)); + dropCell(pPage, pCur->idx, cellSizePtr(pPage, pCell)); + rc = balance(pPage, 0); + } + if( rc==SQLITE_OK ){ + moveToRoot(pCur); + } + return rc; +} + +/* +** Create a new BTree table. Write into *piTable the page +** number for the root page of the new table. +** +** The type of type is determined by the flags parameter. Only the +** following values of flags are currently in use. Other values for +** flags might not work: +** +** BTREE_INTKEY|BTREE_LEAFDATA Used for SQL tables with rowid keys +** BTREE_ZERODATA Used for SQL indices +*/ +int sqlite3BtreeCreateTable(Btree *p, int *piTable, int flags){ + BtShared *pBt = p->pBt; + MemPage *pRoot; + Pgno pgnoRoot; + int rc; + if( pBt->inTransaction!=TRANS_WRITE ){ + /* Must start a transaction first */ + return pBt->readOnly ? SQLITE_READONLY : SQLITE_ERROR; + } + assert( !pBt->readOnly ); + + /* It is illegal to create a table if any cursors are open on the + ** database. This is because in auto-vacuum mode the backend may + ** need to move a database page to make room for the new root-page. + ** If an open cursor was using the page a problem would occur. + */ + if( pBt->pCursor ){ + return SQLITE_LOCKED; + } + +#ifdef SQLITE_OMIT_AUTOVACUUM + rc = allocatePage(pBt, &pRoot, &pgnoRoot, 1, 0); + if( rc ) return rc; +#else + if( pBt->autoVacuum ){ + Pgno pgnoMove; /* Move a page here to make room for the root-page */ + MemPage *pPageMove; /* The page to move to. */ + + /* Read the value of meta[3] from the database to determine where the + ** root page of the new table should go. meta[3] is the largest root-page + ** created so far, so the new root-page is (meta[3]+1). + */ + rc = sqlite3BtreeGetMeta(p, 4, &pgnoRoot); + if( rc!=SQLITE_OK ) return rc; + pgnoRoot++; + + /* The new root-page may not be allocated on a pointer-map page, or the + ** PENDING_BYTE page. + */ + if( pgnoRoot==PTRMAP_PAGENO(pBt, pgnoRoot) || + pgnoRoot==PENDING_BYTE_PAGE(pBt) ){ + pgnoRoot++; + } + assert( pgnoRoot>=3 ); + + /* Allocate a page. The page that currently resides at pgnoRoot will + ** be moved to the allocated page (unless the allocated page happens + ** to reside at pgnoRoot). + */ + rc = allocatePage(pBt, &pPageMove, &pgnoMove, pgnoRoot, 1); + if( rc!=SQLITE_OK ){ + return rc; + } + + if( pgnoMove!=pgnoRoot ){ + u8 eType; + Pgno iPtrPage; + + releasePage(pPageMove); + rc = getPage(pBt, pgnoRoot, &pRoot); + if( rc!=SQLITE_OK ){ + return rc; + } + rc = ptrmapGet(pBt, pgnoRoot, &eType, &iPtrPage); + if( rc!=SQLITE_OK || eType==PTRMAP_ROOTPAGE || eType==PTRMAP_FREEPAGE ){ + releasePage(pRoot); + return rc; + } + assert( eType!=PTRMAP_ROOTPAGE ); + assert( eType!=PTRMAP_FREEPAGE ); + rc = sqlite3pager_write(pRoot->aData); + if( rc!=SQLITE_OK ){ + releasePage(pRoot); + return rc; + } + rc = relocatePage(pBt, pRoot, eType, iPtrPage, pgnoMove); + releasePage(pRoot); + if( rc!=SQLITE_OK ){ + return rc; + } + rc = getPage(pBt, pgnoRoot, &pRoot); + if( rc!=SQLITE_OK ){ + return rc; + } + rc = sqlite3pager_write(pRoot->aData); + if( rc!=SQLITE_OK ){ + releasePage(pRoot); + return rc; + } + }else{ + pRoot = pPageMove; + } + + /* Update the pointer-map and meta-data with the new root-page number. */ + rc = ptrmapPut(pBt, pgnoRoot, PTRMAP_ROOTPAGE, 0); + if( rc ){ + releasePage(pRoot); + return rc; + } + rc = sqlite3BtreeUpdateMeta(p, 4, pgnoRoot); + if( rc ){ + releasePage(pRoot); + return rc; + } + + }else{ + rc = allocatePage(pBt, &pRoot, &pgnoRoot, 1, 0); + if( rc ) return rc; + } +#endif + assert( sqlite3pager_iswriteable(pRoot->aData) ); + zeroPage(pRoot, flags | PTF_LEAF); + sqlite3pager_unref(pRoot->aData); + *piTable = (int)pgnoRoot; + return SQLITE_OK; +} + +/* +** Erase the given database page and all its children. Return +** the page to the freelist. +*/ +static int clearDatabasePage( + BtShared *pBt, /* The BTree that contains the table */ + Pgno pgno, /* Page number to clear */ + MemPage *pParent, /* Parent page. NULL for the root */ + int freePageFlag /* Deallocate page if true */ +){ + MemPage *pPage = 0; + int rc; + unsigned char *pCell; + int i; + + if( pgno>sqlite3pager_pagecount(pBt->pPager) ){ + return SQLITE_CORRUPT_BKPT; + } + + rc = getAndInitPage(pBt, pgno, &pPage, pParent); + if( rc ) goto cleardatabasepage_out; + rc = sqlite3pager_write(pPage->aData); + if( rc ) goto cleardatabasepage_out; + for(i=0; inCell; i++){ + pCell = findCell(pPage, i); + if( !pPage->leaf ){ + rc = clearDatabasePage(pBt, get4byte(pCell), pPage->pParent, 1); + if( rc ) goto cleardatabasepage_out; + } + rc = clearCell(pPage, pCell); + if( rc ) goto cleardatabasepage_out; + } + if( !pPage->leaf ){ + rc = clearDatabasePage(pBt, get4byte(&pPage->aData[8]), pPage->pParent, 1); + if( rc ) goto cleardatabasepage_out; + } + if( freePageFlag ){ + rc = freePage(pPage); + }else{ + zeroPage(pPage, pPage->aData[0] | PTF_LEAF); + } + +cleardatabasepage_out: + releasePage(pPage); + return rc; +} + +/* +** Delete all information from a single table in the database. iTable is +** the page number of the root of the table. After this routine returns, +** the root page is empty, but still exists. +** +** This routine will fail with SQLITE_LOCKED if there are any open +** read cursors on the table. Open write cursors are moved to the +** root of the table. +*/ +int sqlite3BtreeClearTable(Btree *p, int iTable){ + int rc; + BtShared *pBt = p->pBt; + if( p->inTrans!=TRANS_WRITE ){ + return pBt->readOnly ? SQLITE_READONLY : SQLITE_ERROR; + } + rc = checkReadLocks(p, iTable, 0); + if( rc ){ + return rc; + } + + /* Save the position of all cursors open on this table */ + if( SQLITE_OK!=(rc = saveAllCursors(pBt, iTable, 0)) ){ + return rc; + } + + return clearDatabasePage(pBt, (Pgno)iTable, 0, 0); +} + +/* +** Erase all information in a table and add the root of the table to +** the freelist. Except, the root of the principle table (the one on +** page 1) is never added to the freelist. +** +** This routine will fail with SQLITE_LOCKED if there are any open +** cursors on the table. +** +** If AUTOVACUUM is enabled and the page at iTable is not the last +** root page in the database file, then the last root page +** in the database file is moved into the slot formerly occupied by +** iTable and that last slot formerly occupied by the last root page +** is added to the freelist instead of iTable. In this say, all +** root pages are kept at the beginning of the database file, which +** is necessary for AUTOVACUUM to work right. *piMoved is set to the +** page number that used to be the last root page in the file before +** the move. If no page gets moved, *piMoved is set to 0. +** The last root page is recorded in meta[3] and the value of +** meta[3] is updated by this procedure. +*/ +int sqlite3BtreeDropTable(Btree *p, int iTable, int *piMoved){ + int rc; + MemPage *pPage = 0; + BtShared *pBt = p->pBt; + + if( p->inTrans!=TRANS_WRITE ){ + return pBt->readOnly ? SQLITE_READONLY : SQLITE_ERROR; + } + + /* It is illegal to drop a table if any cursors are open on the + ** database. This is because in auto-vacuum mode the backend may + ** need to move another root-page to fill a gap left by the deleted + ** root page. If an open cursor was using this page a problem would + ** occur. + */ + if( pBt->pCursor ){ + return SQLITE_LOCKED; + } + + rc = getPage(pBt, (Pgno)iTable, &pPage); + if( rc ) return rc; + rc = sqlite3BtreeClearTable(p, iTable); + if( rc ){ + releasePage(pPage); + return rc; + } + + *piMoved = 0; + + if( iTable>1 ){ +#ifdef SQLITE_OMIT_AUTOVACUUM + rc = freePage(pPage); + releasePage(pPage); +#else + if( pBt->autoVacuum ){ + Pgno maxRootPgno; + rc = sqlite3BtreeGetMeta(p, 4, &maxRootPgno); + if( rc!=SQLITE_OK ){ + releasePage(pPage); + return rc; + } + + if( iTable==maxRootPgno ){ + /* If the table being dropped is the table with the largest root-page + ** number in the database, put the root page on the free list. + */ + rc = freePage(pPage); + releasePage(pPage); + if( rc!=SQLITE_OK ){ + return rc; + } + }else{ + /* The table being dropped does not have the largest root-page + ** number in the database. So move the page that does into the + ** gap left by the deleted root-page. + */ + MemPage *pMove; + releasePage(pPage); + rc = getPage(pBt, maxRootPgno, &pMove); + if( rc!=SQLITE_OK ){ + return rc; + } + rc = relocatePage(pBt, pMove, PTRMAP_ROOTPAGE, 0, iTable); + releasePage(pMove); + if( rc!=SQLITE_OK ){ + return rc; + } + rc = getPage(pBt, maxRootPgno, &pMove); + if( rc!=SQLITE_OK ){ + return rc; + } + rc = freePage(pMove); + releasePage(pMove); + if( rc!=SQLITE_OK ){ + return rc; + } + *piMoved = maxRootPgno; + } + + /* Set the new 'max-root-page' value in the database header. This + ** is the old value less one, less one more if that happens to + ** be a root-page number, less one again if that is the + ** PENDING_BYTE_PAGE. + */ + maxRootPgno--; + if( maxRootPgno==PENDING_BYTE_PAGE(pBt) ){ + maxRootPgno--; + } + if( maxRootPgno==PTRMAP_PAGENO(pBt, maxRootPgno) ){ + maxRootPgno--; + } + assert( maxRootPgno!=PENDING_BYTE_PAGE(pBt) ); + + rc = sqlite3BtreeUpdateMeta(p, 4, maxRootPgno); + }else{ + rc = freePage(pPage); + releasePage(pPage); + } +#endif + }else{ + /* If sqlite3BtreeDropTable was called on page 1. */ + zeroPage(pPage, PTF_INTKEY|PTF_LEAF ); + releasePage(pPage); + } + return rc; +} + + +/* +** Read the meta-information out of a database file. Meta[0] +** is the number of free pages currently in the database. Meta[1] +** through meta[15] are available for use by higher layers. Meta[0] +** is read-only, the others are read/write. +** +** The schema layer numbers meta values differently. At the schema +** layer (and the SetCookie and ReadCookie opcodes) the number of +** free pages is not visible. So Cookie[0] is the same as Meta[1]. +*/ +int sqlite3BtreeGetMeta(Btree *p, int idx, u32 *pMeta){ + int rc; + unsigned char *pP1; + BtShared *pBt = p->pBt; + + /* Reading a meta-data value requires a read-lock on page 1 (and hence + ** the sqlite_master table. We grab this lock regardless of whether or + ** not the SQLITE_ReadUncommitted flag is set (the table rooted at page + ** 1 is treated as a special case by queryTableLock() and lockTable()). + */ + rc = queryTableLock(p, 1, READ_LOCK); + if( rc!=SQLITE_OK ){ + return rc; + } + + assert( idx>=0 && idx<=15 ); + rc = sqlite3pager_get(pBt->pPager, 1, (void**)&pP1); + if( rc ) return rc; + *pMeta = get4byte(&pP1[36 + idx*4]); + sqlite3pager_unref(pP1); + + /* If autovacuumed is disabled in this build but we are trying to + ** access an autovacuumed database, then make the database readonly. + */ +#ifdef SQLITE_OMIT_AUTOVACUUM + if( idx==4 && *pMeta>0 ) pBt->readOnly = 1; +#endif + + /* Grab the read-lock on page 1. */ + rc = lockTable(p, 1, READ_LOCK); + return rc; +} + +/* +** Write meta-information back into the database. Meta[0] is +** read-only and may not be written. +*/ +int sqlite3BtreeUpdateMeta(Btree *p, int idx, u32 iMeta){ + BtShared *pBt = p->pBt; + unsigned char *pP1; + int rc; + assert( idx>=1 && idx<=15 ); + if( p->inTrans!=TRANS_WRITE ){ + return pBt->readOnly ? SQLITE_READONLY : SQLITE_ERROR; + } + assert( pBt->pPage1!=0 ); + pP1 = pBt->pPage1->aData; + rc = sqlite3pager_write(pP1); + if( rc ) return rc; + put4byte(&pP1[36 + idx*4], iMeta); + return SQLITE_OK; +} + +/* +** Return the flag byte at the beginning of the page that the cursor +** is currently pointing to. +*/ +int sqlite3BtreeFlags(BtCursor *pCur){ + /* TODO: What about CURSOR_REQUIRESEEK state? Probably need to call + ** restoreOrClearCursorPosition() here. + */ + MemPage *pPage = pCur->pPage; + return pPage ? pPage->aData[pPage->hdrOffset] : 0; +} + +#ifdef SQLITE_DEBUG +/* +** Print a disassembly of the given page on standard output. This routine +** is used for debugging and testing only. +*/ +static int btreePageDump(BtShared *pBt, int pgno, int recursive, MemPage *pParent){ + int rc; + MemPage *pPage; + int i, j, c; + int nFree; + u16 idx; + int hdr; + int nCell; + int isInit; + unsigned char *data; + char range[20]; + unsigned char payload[20]; + + rc = getPage(pBt, (Pgno)pgno, &pPage); + isInit = pPage->isInit; + if( pPage->isInit==0 ){ + initPage(pPage, pParent); + } + if( rc ){ + return rc; + } + hdr = pPage->hdrOffset; + data = pPage->aData; + c = data[hdr]; + pPage->intKey = (c & (PTF_INTKEY|PTF_LEAFDATA))!=0; + pPage->zeroData = (c & PTF_ZERODATA)!=0; + pPage->leafData = (c & PTF_LEAFDATA)!=0; + pPage->leaf = (c & PTF_LEAF)!=0; + pPage->hasData = !(pPage->zeroData || (!pPage->leaf && pPage->leafData)); + nCell = get2byte(&data[hdr+3]); + sqlite3DebugPrintf("PAGE %d: flags=0x%02x frag=%d parent=%d\n", pgno, + data[hdr], data[hdr+7], + (pPage->isInit && pPage->pParent) ? pPage->pParent->pgno : 0); + assert( hdr == (pgno==1 ? 100 : 0) ); + idx = hdr + 12 - pPage->leaf*4; + for(i=0; ileaf ){ + child = 0; + }else{ + child = get4byte(pCell); + } + sz = info.nData; + if( !pPage->intKey ) sz += info.nKey; + if( sz>sizeof(payload)-1 ) sz = sizeof(payload)-1; + memcpy(payload, &pCell[info.nHeader], sz); + for(j=0; j0x7f ) payload[j] = '.'; + } + payload[sz] = 0; + sqlite3DebugPrintf( + "cell %2d: i=%-10s chld=%-4d nk=%-4lld nd=%-4d payload=%s\n", + i, range, child, info.nKey, info.nData, payload + ); + } + if( !pPage->leaf ){ + sqlite3DebugPrintf("right_child: %d\n", get4byte(&data[hdr+8])); + } + nFree = 0; + i = 0; + idx = get2byte(&data[hdr+1]); + while( idx>0 && idxpBt->usableSize ){ + int sz = get2byte(&data[idx+2]); + sprintf(range,"%d..%d", idx, idx+sz-1); + nFree += sz; + sqlite3DebugPrintf("freeblock %2d: i=%-10s size=%-4d total=%d\n", + i, range, sz, nFree); + idx = get2byte(&data[idx]); + i++; + } + if( idx!=0 ){ + sqlite3DebugPrintf("ERROR: next freeblock index out of range: %d\n", idx); + } + if( recursive && !pPage->leaf ){ + for(i=0; iisInit = isInit; + sqlite3pager_unref(data); + fflush(stdout); + return SQLITE_OK; +} +int sqlite3BtreePageDump(Btree *p, int pgno, int recursive){ + return btreePageDump(p->pBt, pgno, recursive, 0); +} +#endif + +#if defined(SQLITE_TEST) || defined(SQLITE_DEBUG) +/* +** Fill aResult[] with information about the entry and page that the +** cursor is pointing to. +** +** aResult[0] = The page number +** aResult[1] = The entry number +** aResult[2] = Total number of entries on this page +** aResult[3] = Cell size (local payload + header) +** aResult[4] = Number of free bytes on this page +** aResult[5] = Number of free blocks on the page +** aResult[6] = Total payload size (local + overflow) +** aResult[7] = Header size in bytes +** aResult[8] = Local payload size +** aResult[9] = Parent page number +** +** This routine is used for testing and debugging only. +*/ +int sqlite3BtreeCursorInfo(BtCursor *pCur, int *aResult, int upCnt){ + int cnt, idx; + MemPage *pPage = pCur->pPage; + BtCursor tmpCur; + + int rc = restoreOrClearCursorPosition(pCur, 1); + if( rc!=SQLITE_OK ){ + return rc; + } + + assert( pPage->isInit ); + getTempCursor(pCur, &tmpCur); + while( upCnt-- ){ + moveToParent(&tmpCur); + } + pPage = tmpCur.pPage; + aResult[0] = sqlite3pager_pagenumber(pPage->aData); + assert( aResult[0]==pPage->pgno ); + aResult[1] = tmpCur.idx; + aResult[2] = pPage->nCell; + if( tmpCur.idx>=0 && tmpCur.idxnCell ){ + getCellInfo(&tmpCur); + aResult[3] = tmpCur.info.nSize; + aResult[6] = tmpCur.info.nData; + aResult[7] = tmpCur.info.nHeader; + aResult[8] = tmpCur.info.nLocal; + }else{ + aResult[3] = 0; + aResult[6] = 0; + aResult[7] = 0; + aResult[8] = 0; + } + aResult[4] = pPage->nFree; + cnt = 0; + idx = get2byte(&pPage->aData[pPage->hdrOffset+1]); + while( idx>0 && idxpBt->usableSize ){ + cnt++; + idx = get2byte(&pPage->aData[idx]); + } + aResult[5] = cnt; + if( pPage->pParent==0 || isRootPage(pPage) ){ + aResult[9] = 0; + }else{ + aResult[9] = pPage->pParent->pgno; + } + releaseTempCursor(&tmpCur); + return SQLITE_OK; +} +#endif + +/* +** Return the pager associated with a BTree. This routine is used for +** testing and debugging only. +*/ +Pager *sqlite3BtreePager(Btree *p){ + return p->pBt->pPager; +} + +/* +** This structure is passed around through all the sanity checking routines +** in order to keep track of some global state information. +*/ +typedef struct IntegrityCk IntegrityCk; +struct IntegrityCk { + BtShared *pBt; /* The tree being checked out */ + Pager *pPager; /* The associated pager. Also accessible by pBt->pPager */ + int nPage; /* Number of pages in the database */ + int *anRef; /* Number of times each page is referenced */ + char *zErrMsg; /* An error message. NULL of no errors seen. */ +}; + +#ifndef SQLITE_OMIT_INTEGRITY_CHECK +/* +** Append a message to the error message string. +*/ +static void checkAppendMsg( + IntegrityCk *pCheck, + char *zMsg1, + const char *zFormat, + ... +){ + va_list ap; + char *zMsg2; + va_start(ap, zFormat); + zMsg2 = sqlite3VMPrintf(zFormat, ap); + va_end(ap); + if( zMsg1==0 ) zMsg1 = ""; + if( pCheck->zErrMsg ){ + char *zOld = pCheck->zErrMsg; + pCheck->zErrMsg = 0; + sqlite3SetString(&pCheck->zErrMsg, zOld, "\n", zMsg1, zMsg2, (char*)0); + sqliteFree(zOld); + }else{ + sqlite3SetString(&pCheck->zErrMsg, zMsg1, zMsg2, (char*)0); + } + sqliteFree(zMsg2); +} +#endif /* SQLITE_OMIT_INTEGRITY_CHECK */ + +#ifndef SQLITE_OMIT_INTEGRITY_CHECK +/* +** Add 1 to the reference count for page iPage. If this is the second +** reference to the page, add an error message to pCheck->zErrMsg. +** Return 1 if there are 2 ore more references to the page and 0 if +** if this is the first reference to the page. +** +** Also check that the page number is in bounds. +*/ +static int checkRef(IntegrityCk *pCheck, int iPage, char *zContext){ + if( iPage==0 ) return 1; + if( iPage>pCheck->nPage || iPage<0 ){ + checkAppendMsg(pCheck, zContext, "invalid page number %d", iPage); + return 1; + } + if( pCheck->anRef[iPage]==1 ){ + checkAppendMsg(pCheck, zContext, "2nd reference to page %d", iPage); + return 1; + } + return (pCheck->anRef[iPage]++)>1; +} + +#ifndef SQLITE_OMIT_AUTOVACUUM +/* +** Check that the entry in the pointer-map for page iChild maps to +** page iParent, pointer type ptrType. If not, append an error message +** to pCheck. +*/ +static void checkPtrmap( + IntegrityCk *pCheck, /* Integrity check context */ + Pgno iChild, /* Child page number */ + u8 eType, /* Expected pointer map type */ + Pgno iParent, /* Expected pointer map parent page number */ + char *zContext /* Context description (used for error msg) */ +){ + int rc; + u8 ePtrmapType; + Pgno iPtrmapParent; + + rc = ptrmapGet(pCheck->pBt, iChild, &ePtrmapType, &iPtrmapParent); + if( rc!=SQLITE_OK ){ + checkAppendMsg(pCheck, zContext, "Failed to read ptrmap key=%d", iChild); + return; + } + + if( ePtrmapType!=eType || iPtrmapParent!=iParent ){ + checkAppendMsg(pCheck, zContext, + "Bad ptr map entry key=%d expected=(%d,%d) got=(%d,%d)", + iChild, eType, iParent, ePtrmapType, iPtrmapParent); + } +} +#endif + +/* +** Check the integrity of the freelist or of an overflow page list. +** Verify that the number of pages on the list is N. +*/ +static void checkList( + IntegrityCk *pCheck, /* Integrity checking context */ + int isFreeList, /* True for a freelist. False for overflow page list */ + int iPage, /* Page number for first page in the list */ + int N, /* Expected number of pages in the list */ + char *zContext /* Context for error messages */ +){ + int i; + int expected = N; + int iFirst = iPage; + while( N-- > 0 ){ + unsigned char *pOvfl; + if( iPage<1 ){ + checkAppendMsg(pCheck, zContext, + "%d of %d pages missing from overflow list starting at %d", + N+1, expected, iFirst); + break; + } + if( checkRef(pCheck, iPage, zContext) ) break; + if( sqlite3pager_get(pCheck->pPager, (Pgno)iPage, (void**)&pOvfl) ){ + checkAppendMsg(pCheck, zContext, "failed to get page %d", iPage); + break; + } + if( isFreeList ){ + int n = get4byte(&pOvfl[4]); +#ifndef SQLITE_OMIT_AUTOVACUUM + if( pCheck->pBt->autoVacuum ){ + checkPtrmap(pCheck, iPage, PTRMAP_FREEPAGE, 0, zContext); + } +#endif + if( n>pCheck->pBt->usableSize/4-8 ){ + checkAppendMsg(pCheck, zContext, + "freelist leaf count too big on page %d", iPage); + N--; + }else{ + for(i=0; ipBt->autoVacuum ){ + checkPtrmap(pCheck, iFreePage, PTRMAP_FREEPAGE, 0, zContext); + } +#endif + checkRef(pCheck, iFreePage, zContext); + } + N -= n; + } + } +#ifndef SQLITE_OMIT_AUTOVACUUM + else{ + /* If this database supports auto-vacuum and iPage is not the last + ** page in this overflow list, check that the pointer-map entry for + ** the following page matches iPage. + */ + if( pCheck->pBt->autoVacuum && N>0 ){ + i = get4byte(pOvfl); + checkPtrmap(pCheck, i, PTRMAP_OVERFLOW2, iPage, zContext); + } + } +#endif + iPage = get4byte(pOvfl); + sqlite3pager_unref(pOvfl); + } +} +#endif /* SQLITE_OMIT_INTEGRITY_CHECK */ + +#ifndef SQLITE_OMIT_INTEGRITY_CHECK +/* +** Do various sanity checks on a single page of a tree. Return +** the tree depth. Root pages return 0. Parents of root pages +** return 1, and so forth. +** +** These checks are done: +** +** 1. Make sure that cells and freeblocks do not overlap +** but combine to completely cover the page. +** NO 2. Make sure cell keys are in order. +** NO 3. Make sure no key is less than or equal to zLowerBound. +** NO 4. Make sure no key is greater than or equal to zUpperBound. +** 5. Check the integrity of overflow pages. +** 6. Recursively call checkTreePage on all children. +** 7. Verify that the depth of all children is the same. +** 8. Make sure this page is at least 33% full or else it is +** the root of the tree. +*/ +static int checkTreePage( + IntegrityCk *pCheck, /* Context for the sanity check */ + int iPage, /* Page number of the page to check */ + MemPage *pParent, /* Parent page */ + char *zParentContext /* Parent context */ +){ + MemPage *pPage; + int i, rc, depth, d2, pgno, cnt; + int hdr, cellStart; + int nCell; + u8 *data; + BtShared *pBt; + int usableSize; + char zContext[100]; + char *hit; + + sprintf(zContext, "Page %d: ", iPage); + + /* Check that the page exists + */ + pBt = pCheck->pBt; + usableSize = pBt->usableSize; + if( iPage==0 ) return 0; + if( checkRef(pCheck, iPage, zParentContext) ) return 0; + if( (rc = getPage(pBt, (Pgno)iPage, &pPage))!=0 ){ + checkAppendMsg(pCheck, zContext, + "unable to get the page. error code=%d", rc); + return 0; + } + if( (rc = initPage(pPage, pParent))!=0 ){ + checkAppendMsg(pCheck, zContext, "initPage() returns error code %d", rc); + releasePage(pPage); + return 0; + } + + /* Check out all the cells. + */ + depth = 0; + for(i=0; inCell; i++){ + u8 *pCell; + int sz; + CellInfo info; + + /* Check payload overflow pages + */ + sprintf(zContext, "On tree page %d cell %d: ", iPage, i); + pCell = findCell(pPage,i); + parseCellPtr(pPage, pCell, &info); + sz = info.nData; + if( !pPage->intKey ) sz += info.nKey; + if( sz>info.nLocal ){ + int nPage = (sz - info.nLocal + usableSize - 5)/(usableSize - 4); + Pgno pgnoOvfl = get4byte(&pCell[info.iOverflow]); +#ifndef SQLITE_OMIT_AUTOVACUUM + if( pBt->autoVacuum ){ + checkPtrmap(pCheck, pgnoOvfl, PTRMAP_OVERFLOW1, iPage, zContext); + } +#endif + checkList(pCheck, 0, pgnoOvfl, nPage, zContext); + } + + /* Check sanity of left child page. + */ + if( !pPage->leaf ){ + pgno = get4byte(pCell); +#ifndef SQLITE_OMIT_AUTOVACUUM + if( pBt->autoVacuum ){ + checkPtrmap(pCheck, pgno, PTRMAP_BTREE, iPage, zContext); + } +#endif + d2 = checkTreePage(pCheck,pgno,pPage,zContext); + if( i>0 && d2!=depth ){ + checkAppendMsg(pCheck, zContext, "Child page depth differs"); + } + depth = d2; + } + } + if( !pPage->leaf ){ + pgno = get4byte(&pPage->aData[pPage->hdrOffset+8]); + sprintf(zContext, "On page %d at right child: ", iPage); +#ifndef SQLITE_OMIT_AUTOVACUUM + if( pBt->autoVacuum ){ + checkPtrmap(pCheck, pgno, PTRMAP_BTREE, iPage, 0); + } +#endif + checkTreePage(pCheck, pgno, pPage, zContext); + } + + /* Check for complete coverage of the page + */ + data = pPage->aData; + hdr = pPage->hdrOffset; + hit = sqliteMalloc( usableSize ); + if( hit ){ + memset(hit, 1, get2byte(&data[hdr+5])); + nCell = get2byte(&data[hdr+3]); + cellStart = hdr + 12 - 4*pPage->leaf; + for(i=0; i=usableSize || pc<0 ){ + checkAppendMsg(pCheck, 0, + "Corruption detected in cell %d on page %d",i,iPage,0); + }else{ + for(j=pc+size-1; j>=pc; j--) hit[j]++; + } + } + for(cnt=0, i=get2byte(&data[hdr+1]); i>0 && i=usableSize || i<0 ){ + checkAppendMsg(pCheck, 0, + "Corruption detected in cell %d on page %d",i,iPage,0); + }else{ + for(j=i+size-1; j>=i; j--) hit[j]++; + } + i = get2byte(&data[i]); + } + for(i=cnt=0; i1 ){ + checkAppendMsg(pCheck, 0, + "Multiple uses for byte %d of page %d", i, iPage); + break; + } + } + if( cnt!=data[hdr+7] ){ + checkAppendMsg(pCheck, 0, + "Fragmented space is %d byte reported as %d on page %d", + cnt, data[hdr+7], iPage); + } + } + sqliteFree(hit); + + releasePage(pPage); + return depth+1; +} +#endif /* SQLITE_OMIT_INTEGRITY_CHECK */ + +#ifndef SQLITE_OMIT_INTEGRITY_CHECK +/* +** This routine does a complete check of the given BTree file. aRoot[] is +** an array of pages numbers were each page number is the root page of +** a table. nRoot is the number of entries in aRoot. +** +** If everything checks out, this routine returns NULL. If something is +** amiss, an error message is written into memory obtained from malloc() +** and a pointer to that error message is returned. The calling function +** is responsible for freeing the error message when it is done. +*/ +char *sqlite3BtreeIntegrityCheck(Btree *p, int *aRoot, int nRoot){ + int i; + int nRef; + IntegrityCk sCheck; + BtShared *pBt = p->pBt; + + nRef = sqlite3pager_refcount(pBt->pPager); + if( lockBtreeWithRetry(p)!=SQLITE_OK ){ + return sqliteStrDup("Unable to acquire a read lock on the database"); + } + sCheck.pBt = pBt; + sCheck.pPager = pBt->pPager; + sCheck.nPage = sqlite3pager_pagecount(sCheck.pPager); + if( sCheck.nPage==0 ){ + unlockBtreeIfUnused(pBt); + return 0; + } + sCheck.anRef = sqliteMallocRaw( (sCheck.nPage+1)*sizeof(sCheck.anRef[0]) ); + if( !sCheck.anRef ){ + unlockBtreeIfUnused(pBt); + return sqlite3MPrintf("Unable to malloc %d bytes", + (sCheck.nPage+1)*sizeof(sCheck.anRef[0])); + } + for(i=0; i<=sCheck.nPage; i++){ sCheck.anRef[i] = 0; } + i = PENDING_BYTE_PAGE(pBt); + if( i<=sCheck.nPage ){ + sCheck.anRef[i] = 1; + } + sCheck.zErrMsg = 0; + + /* Check the integrity of the freelist + */ + checkList(&sCheck, 1, get4byte(&pBt->pPage1->aData[32]), + get4byte(&pBt->pPage1->aData[36]), "Main freelist: "); + + /* Check all the tables. + */ + for(i=0; iautoVacuum && aRoot[i]>1 ){ + checkPtrmap(&sCheck, aRoot[i], PTRMAP_ROOTPAGE, 0, 0); + } +#endif + checkTreePage(&sCheck, aRoot[i], 0, "List of tree roots: "); + } + + /* Make sure every page in the file is referenced + */ + for(i=1; i<=sCheck.nPage; i++){ +#ifdef SQLITE_OMIT_AUTOVACUUM + if( sCheck.anRef[i]==0 ){ + checkAppendMsg(&sCheck, 0, "Page %d is never used", i); + } +#else + /* If the database supports auto-vacuum, make sure no tables contain + ** references to pointer-map pages. + */ + if( sCheck.anRef[i]==0 && + (PTRMAP_PAGENO(pBt, i)!=i || !pBt->autoVacuum) ){ + checkAppendMsg(&sCheck, 0, "Page %d is never used", i); + } + if( sCheck.anRef[i]!=0 && + (PTRMAP_PAGENO(pBt, i)==i && pBt->autoVacuum) ){ + checkAppendMsg(&sCheck, 0, "Pointer map page %d is referenced", i); + } +#endif + } + + /* Make sure this analysis did not leave any unref() pages + */ + unlockBtreeIfUnused(pBt); + if( nRef != sqlite3pager_refcount(pBt->pPager) ){ + checkAppendMsg(&sCheck, 0, + "Outstanding page count goes from %d to %d during this analysis", + nRef, sqlite3pager_refcount(pBt->pPager) + ); + } + + /* Clean up and report errors. + */ + sqliteFree(sCheck.anRef); + return sCheck.zErrMsg; +} +#endif /* SQLITE_OMIT_INTEGRITY_CHECK */ + +/* +** Return the full pathname of the underlying database file. +*/ +const char *sqlite3BtreeGetFilename(Btree *p){ + assert( p->pBt->pPager!=0 ); + return sqlite3pager_filename(p->pBt->pPager); +} + +/* +** Return the pathname of the directory that contains the database file. +*/ +const char *sqlite3BtreeGetDirname(Btree *p){ + assert( p->pBt->pPager!=0 ); + return sqlite3pager_dirname(p->pBt->pPager); +} + +/* +** Return the pathname of the journal file for this database. The return +** value of this routine is the same regardless of whether the journal file +** has been created or not. +*/ +const char *sqlite3BtreeGetJournalname(Btree *p){ + assert( p->pBt->pPager!=0 ); + return sqlite3pager_journalname(p->pBt->pPager); +} + +#ifndef SQLITE_OMIT_VACUUM +/* +** Copy the complete content of pBtFrom into pBtTo. A transaction +** must be active for both files. +** +** The size of file pBtFrom may be reduced by this operation. +** If anything goes wrong, the transaction on pBtFrom is rolled back. +*/ +int sqlite3BtreeCopyFile(Btree *pTo, Btree *pFrom){ + int rc = SQLITE_OK; + Pgno i, nPage, nToPage, iSkip; + + BtShared *pBtTo = pTo->pBt; + BtShared *pBtFrom = pFrom->pBt; + + if( pTo->inTrans!=TRANS_WRITE || pFrom->inTrans!=TRANS_WRITE ){ + return SQLITE_ERROR; + } + if( pBtTo->pCursor ) return SQLITE_BUSY; + nToPage = sqlite3pager_pagecount(pBtTo->pPager); + nPage = sqlite3pager_pagecount(pBtFrom->pPager); + iSkip = PENDING_BYTE_PAGE(pBtTo); + for(i=1; rc==SQLITE_OK && i<=nPage; i++){ + void *pPage; + if( i==iSkip ) continue; + rc = sqlite3pager_get(pBtFrom->pPager, i, &pPage); + if( rc ) break; + rc = sqlite3pager_overwrite(pBtTo->pPager, i, pPage); + sqlite3pager_unref(pPage); + } + for(i=nPage+1; rc==SQLITE_OK && i<=nToPage; i++){ + void *pPage; + if( i==iSkip ) continue; + rc = sqlite3pager_get(pBtTo->pPager, i, &pPage); + if( rc ) break; + rc = sqlite3pager_write(pPage); + sqlite3pager_unref(pPage); + sqlite3pager_dont_write(pBtTo->pPager, i); + } + if( !rc && nPagepPager, nPage); + } + if( rc ){ + sqlite3BtreeRollback(pTo); + } + return rc; +} +#endif /* SQLITE_OMIT_VACUUM */ + +/* +** Return non-zero if a transaction is active. +*/ +int sqlite3BtreeIsInTrans(Btree *p){ + return (p && (p->inTrans==TRANS_WRITE)); +} + +/* +** Return non-zero if a statement transaction is active. +*/ +int sqlite3BtreeIsInStmt(Btree *p){ + return (p->pBt && p->pBt->inStmt); +} + +/* +** Return non-zero if a read (or write) transaction is active. +*/ +int sqlite3BtreeIsInReadTrans(Btree *p){ + return (p && (p->inTrans!=TRANS_NONE)); +} + +/* +** This call is a no-op if no write-transaction is currently active on pBt. +** +** Otherwise, sync the database file for the btree pBt. zMaster points to +** the name of a master journal file that should be written into the +** individual journal file, or is NULL, indicating no master journal file +** (single database transaction). +** +** When this is called, the master journal should already have been +** created, populated with this journal pointer and synced to disk. +** +** Once this is routine has returned, the only thing required to commit +** the write-transaction for this database file is to delete the journal. +*/ +int sqlite3BtreeSync(Btree *p, const char *zMaster){ + int rc = SQLITE_OK; + if( p->inTrans==TRANS_WRITE ){ + BtShared *pBt = p->pBt; + Pgno nTrunc = 0; +#ifndef SQLITE_OMIT_AUTOVACUUM + if( pBt->autoVacuum ){ + rc = autoVacuumCommit(pBt, &nTrunc); + if( rc!=SQLITE_OK ){ + return rc; + } + } +#endif + rc = sqlite3pager_sync(pBt->pPager, zMaster, nTrunc); + } + return rc; +} + +/* +** This function returns a pointer to a blob of memory associated with +** a single shared-btree. The memory is used by client code for it's own +** purposes (for example, to store a high-level schema associated with +** the shared-btree). The btree layer manages reference counting issues. +** +** The first time this is called on a shared-btree, nBytes bytes of memory +** are allocated, zeroed, and returned to the caller. For each subsequent +** call the nBytes parameter is ignored and a pointer to the same blob +** of memory returned. +** +** Just before the shared-btree is closed, the function passed as the +** xFree argument when the memory allocation was made is invoked on the +** blob of allocated memory. This function should not call sqliteFree() +** on the memory, the btree layer does that. +*/ +void *sqlite3BtreeSchema(Btree *p, int nBytes, void(*xFree)(void *)){ + BtShared *pBt = p->pBt; + if( !pBt->pSchema ){ + pBt->pSchema = sqliteMalloc(nBytes); + pBt->xFreeSchema = xFree; + } + return pBt->pSchema; +} + +/* +** Return true if another user of the same shared btree as the argument +** handle holds an exclusive lock on the sqlite_master table. +*/ +int sqlite3BtreeSchemaLocked(Btree *p){ + return (queryTableLock(p, MASTER_ROOT, READ_LOCK)!=SQLITE_OK); +} + + +#ifndef SQLITE_OMIT_SHARED_CACHE +/* +** Obtain a lock on the table whose root page is iTab. The +** lock is a write lock if isWritelock is true or a read lock +** if it is false. +*/ +int sqlite3BtreeLockTable(Btree *p, int iTab, u8 isWriteLock){ + int rc = SQLITE_OK; + u8 lockType = (isWriteLock?WRITE_LOCK:READ_LOCK); + rc = queryTableLock(p, iTab, lockType); + if( rc==SQLITE_OK ){ + rc = lockTable(p, iTab, lockType); + } + return rc; +} +#endif + +/* +** The following debugging interface has to be in this file (rather +** than in, for example, test1.c) so that it can get access to +** the definition of BtShared. +*/ +#if defined(SQLITE_DEBUG) && defined(TCLSH) +#include +int sqlite3_shared_cache_report( + void * clientData, + Tcl_Interp *interp, + int objc, + Tcl_Obj *CONST objv[] +){ +#ifndef SQLITE_OMIT_SHARED_CACHE + const ThreadData *pTd = sqlite3ThreadDataReadOnly(); + if( pTd->useSharedData ){ + BtShared *pBt; + Tcl_Obj *pRet = Tcl_NewObj(); + for(pBt=pTd->pBtree; pBt; pBt=pBt->pNext){ + const char *zFile = sqlite3pager_filename(pBt->pPager); + Tcl_ListObjAppendElement(interp, pRet, Tcl_NewStringObj(zFile, -1)); + Tcl_ListObjAppendElement(interp, pRet, Tcl_NewIntObj(pBt->nRef)); + } + Tcl_SetObjResult(interp, pRet); + } +#endif + return TCL_OK; +} +#endif diff --git a/src/dep/src/sqlite/btree.h b/src/dep/src/sqlite/btree.h new file mode 100644 index 0000000..ae24233 --- /dev/null +++ b/src/dep/src/sqlite/btree.h @@ -0,0 +1,149 @@ +/* +** 2001 September 15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This header file defines the interface that the sqlite B-Tree file +** subsystem. See comments in the source code for a detailed description +** of what each interface routine does. +** +** @(#) $Id: btree.h,v 1.71 2006/06/27 16:34:57 danielk1977 Exp $ +*/ +#ifndef _BTREE_H_ +#define _BTREE_H_ + +/* TODO: This definition is just included so other modules compile. It +** needs to be revisited. +*/ +#define SQLITE_N_BTREE_META 10 + +/* +** If defined as non-zero, auto-vacuum is enabled by default. Otherwise +** it must be turned on for each database using "PRAGMA auto_vacuum = 1". +*/ +#ifndef SQLITE_DEFAULT_AUTOVACUUM + #define SQLITE_DEFAULT_AUTOVACUUM 0 +#endif + +/* +** Forward declarations of structure +*/ +typedef struct Btree Btree; +typedef struct BtCursor BtCursor; +typedef struct BtShared BtShared; + + +int sqlite3BtreeOpen( + const char *zFilename, /* Name of database file to open */ + sqlite3 *db, /* Associated database connection */ + Btree **, /* Return open Btree* here */ + int flags /* Flags */ +); + +/* The flags parameter to sqlite3BtreeOpen can be the bitwise or of the +** following values. +** +** NOTE: These values must match the corresponding PAGER_ values in +** pager.h. +*/ +#define BTREE_OMIT_JOURNAL 1 /* Do not use journal. No argument */ +#define BTREE_NO_READLOCK 2 /* Omit readlocks on readonly files */ +#define BTREE_MEMORY 4 /* In-memory DB. No argument */ + +int sqlite3BtreeClose(Btree*); +int sqlite3BtreeSetBusyHandler(Btree*,BusyHandler*); +int sqlite3BtreeSetCacheSize(Btree*,int); +int sqlite3BtreeSetSafetyLevel(Btree*,int,int); +int sqlite3BtreeSyncDisabled(Btree*); +int sqlite3BtreeSetPageSize(Btree*,int,int); +int sqlite3BtreeGetPageSize(Btree*); +int sqlite3BtreeGetReserve(Btree*); +int sqlite3BtreeSetAutoVacuum(Btree *, int); +int sqlite3BtreeGetAutoVacuum(Btree *); +int sqlite3BtreeBeginTrans(Btree*,int); +int sqlite3BtreeCommit(Btree*); +int sqlite3BtreeRollback(Btree*); +int sqlite3BtreeBeginStmt(Btree*); +int sqlite3BtreeCommitStmt(Btree*); +int sqlite3BtreeRollbackStmt(Btree*); +int sqlite3BtreeCreateTable(Btree*, int*, int flags); +int sqlite3BtreeIsInTrans(Btree*); +int sqlite3BtreeIsInStmt(Btree*); +int sqlite3BtreeIsInReadTrans(Btree*); +int sqlite3BtreeSync(Btree*, const char *zMaster); +void *sqlite3BtreeSchema(Btree *, int, void(*)(void *)); +int sqlite3BtreeSchemaLocked(Btree *); +int sqlite3BtreeLockTable(Btree *, int, u8); + +const char *sqlite3BtreeGetFilename(Btree *); +const char *sqlite3BtreeGetDirname(Btree *); +const char *sqlite3BtreeGetJournalname(Btree *); +int sqlite3BtreeCopyFile(Btree *, Btree *); + +/* The flags parameter to sqlite3BtreeCreateTable can be the bitwise OR +** of the following flags: +*/ +#define BTREE_INTKEY 1 /* Table has only 64-bit signed integer keys */ +#define BTREE_ZERODATA 2 /* Table has keys only - no data */ +#define BTREE_LEAFDATA 4 /* Data stored in leaves only. Implies INTKEY */ + +int sqlite3BtreeDropTable(Btree*, int, int*); +int sqlite3BtreeClearTable(Btree*, int); +int sqlite3BtreeGetMeta(Btree*, int idx, u32 *pValue); +int sqlite3BtreeUpdateMeta(Btree*, int idx, u32 value); + +int sqlite3BtreeCursor( + Btree*, /* BTree containing table to open */ + int iTable, /* Index of root page */ + int wrFlag, /* 1 for writing. 0 for read-only */ + int(*)(void*,int,const void*,int,const void*), /* Key comparison function */ + void*, /* First argument to compare function */ + BtCursor **ppCursor /* Returned cursor */ +); + +void sqlite3BtreeSetCompare( + BtCursor *, + int(*)(void*,int,const void*,int,const void*), + void* +); + +int sqlite3BtreeCloseCursor(BtCursor*); +int sqlite3BtreeMoveto(BtCursor*, const void *pKey, i64 nKey, int *pRes); +int sqlite3BtreeDelete(BtCursor*); +int sqlite3BtreeInsert(BtCursor*, const void *pKey, i64 nKey, + const void *pData, int nData); +int sqlite3BtreeFirst(BtCursor*, int *pRes); +int sqlite3BtreeLast(BtCursor*, int *pRes); +int sqlite3BtreeNext(BtCursor*, int *pRes); +int sqlite3BtreeEof(BtCursor*); +int sqlite3BtreeFlags(BtCursor*); +int sqlite3BtreePrevious(BtCursor*, int *pRes); +int sqlite3BtreeKeySize(BtCursor*, i64 *pSize); +int sqlite3BtreeKey(BtCursor*, u32 offset, u32 amt, void*); +const void *sqlite3BtreeKeyFetch(BtCursor*, int *pAmt); +const void *sqlite3BtreeDataFetch(BtCursor*, int *pAmt); +int sqlite3BtreeDataSize(BtCursor*, u32 *pSize); +int sqlite3BtreeData(BtCursor*, u32 offset, u32 amt, void*); + +char *sqlite3BtreeIntegrityCheck(Btree*, int *aRoot, int nRoot); +struct Pager *sqlite3BtreePager(Btree*); + + +#ifdef SQLITE_TEST +int sqlite3BtreeCursorInfo(BtCursor*, int*, int); +void sqlite3BtreeCursorList(Btree*); +#endif + +#ifdef SQLITE_DEBUG +int sqlite3BtreePageDump(Btree*, int, int recursive); +#else +#define sqlite3BtreePageDump(X,Y,Z) SQLITE_OK +#endif + +#endif /* _BTREE_H_ */ diff --git a/src/dep/src/sqlite/build.c b/src/dep/src/sqlite/build.c new file mode 100644 index 0000000..00b89f2 --- /dev/null +++ b/src/dep/src/sqlite/build.c @@ -0,0 +1,3350 @@ +/* +** 2001 September 15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains C code routines that are called by the SQLite parser +** when syntax rules are reduced. The routines in this file handle the +** following kinds of SQL syntax: +** +** CREATE TABLE +** DROP TABLE +** CREATE INDEX +** DROP INDEX +** creating ID lists +** BEGIN TRANSACTION +** COMMIT +** ROLLBACK +** +** $Id: build.c,v 1.412 2006/12/16 16:25:15 drh Exp $ +*/ +#include "sqliteInt.h" +#include + +/* +** This routine is called when a new SQL statement is beginning to +** be parsed. Initialize the pParse structure as needed. +*/ +void sqlite3BeginParse(Parse *pParse, int explainFlag){ + pParse->explain = explainFlag; + pParse->nVar = 0; +} + +#ifndef SQLITE_OMIT_SHARED_CACHE +/* +** The TableLock structure is only used by the sqlite3TableLock() and +** codeTableLocks() functions. +*/ +struct TableLock { + int iDb; /* The database containing the table to be locked */ + int iTab; /* The root page of the table to be locked */ + u8 isWriteLock; /* True for write lock. False for a read lock */ + const char *zName; /* Name of the table */ +}; + +/* +** Record the fact that we want to lock a table at run-time. +** +** The table to be locked has root page iTab and is found in database iDb. +** A read or a write lock can be taken depending on isWritelock. +** +** This routine just records the fact that the lock is desired. The +** code to make the lock occur is generated by a later call to +** codeTableLocks() which occurs during sqlite3FinishCoding(). +*/ +void sqlite3TableLock( + Parse *pParse, /* Parsing context */ + int iDb, /* Index of the database containing the table to lock */ + int iTab, /* Root page number of the table to be locked */ + u8 isWriteLock, /* True for a write lock */ + const char *zName /* Name of the table to be locked */ +){ + int i; + int nBytes; + TableLock *p; + + if( 0==sqlite3ThreadDataReadOnly()->useSharedData || iDb<0 ){ + return; + } + + for(i=0; inTableLock; i++){ + p = &pParse->aTableLock[i]; + if( p->iDb==iDb && p->iTab==iTab ){ + p->isWriteLock = (p->isWriteLock || isWriteLock); + return; + } + } + + nBytes = sizeof(TableLock) * (pParse->nTableLock+1); + sqliteReallocOrFree((void **)&pParse->aTableLock, nBytes); + if( pParse->aTableLock ){ + p = &pParse->aTableLock[pParse->nTableLock++]; + p->iDb = iDb; + p->iTab = iTab; + p->isWriteLock = isWriteLock; + p->zName = zName; + } +} + +/* +** Code an OP_TableLock instruction for each table locked by the +** statement (configured by calls to sqlite3TableLock()). +*/ +static void codeTableLocks(Parse *pParse){ + int i; + Vdbe *pVdbe; + assert( sqlite3ThreadDataReadOnly()->useSharedData || pParse->nTableLock==0 ); + + if( 0==(pVdbe = sqlite3GetVdbe(pParse)) ){ + return; + } + + for(i=0; inTableLock; i++){ + TableLock *p = &pParse->aTableLock[i]; + int p1 = p->iDb; + if( p->isWriteLock ){ + p1 = -1*(p1+1); + } + sqlite3VdbeOp3(pVdbe, OP_TableLock, p1, p->iTab, p->zName, P3_STATIC); + } +} +#else + #define codeTableLocks(x) +#endif + +/* +** This routine is called after a single SQL statement has been +** parsed and a VDBE program to execute that statement has been +** prepared. This routine puts the finishing touches on the +** VDBE program and resets the pParse structure for the next +** parse. +** +** Note that if an error occurred, it might be the case that +** no VDBE code was generated. +*/ +void sqlite3FinishCoding(Parse *pParse){ + sqlite3 *db; + Vdbe *v; + + if( sqlite3MallocFailed() ) return; + if( pParse->nested ) return; + if( !pParse->pVdbe ){ + if( pParse->rc==SQLITE_OK && pParse->nErr ){ + pParse->rc = SQLITE_ERROR; + return; + } + } + + /* Begin by generating some termination code at the end of the + ** vdbe program + */ + db = pParse->db; + v = sqlite3GetVdbe(pParse); + if( v ){ + sqlite3VdbeAddOp(v, OP_Halt, 0, 0); + + /* The cookie mask contains one bit for each database file open. + ** (Bit 0 is for main, bit 1 is for temp, and so forth.) Bits are + ** set for each database that is used. Generate code to start a + ** transaction on each used database and to verify the schema cookie + ** on each used database. + */ + if( pParse->cookieGoto>0 ){ + u32 mask; + int iDb; + sqlite3VdbeJumpHere(v, pParse->cookieGoto-1); + for(iDb=0, mask=1; iDbnDb; mask<<=1, iDb++){ + if( (mask & pParse->cookieMask)==0 ) continue; + sqlite3VdbeAddOp(v, OP_Transaction, iDb, (mask & pParse->writeMask)!=0); + sqlite3VdbeAddOp(v, OP_VerifyCookie, iDb, pParse->cookieValue[iDb]); + } +#ifndef SQLITE_OMIT_VIRTUALTABLE + if( pParse->pVirtualLock ){ + char *vtab = (char *)pParse->pVirtualLock->pVtab; + sqlite3VdbeOp3(v, OP_VBegin, 0, 0, vtab, P3_VTAB); + } +#endif + + /* Once all the cookies have been verified and transactions opened, + ** obtain the required table-locks. This is a no-op unless the + ** shared-cache feature is enabled. + */ + codeTableLocks(pParse); + sqlite3VdbeAddOp(v, OP_Goto, 0, pParse->cookieGoto); + } + +#ifndef SQLITE_OMIT_TRACE + /* Add a No-op that contains the complete text of the compiled SQL + ** statement as its P3 argument. This does not change the functionality + ** of the program. + ** + ** This is used to implement sqlite3_trace(). + */ + sqlite3VdbeOp3(v, OP_Noop, 0, 0, pParse->zSql, pParse->zTail-pParse->zSql); +#endif /* SQLITE_OMIT_TRACE */ + } + + + /* Get the VDBE program ready for execution + */ + if( v && pParse->nErr==0 && !sqlite3MallocFailed() ){ + FILE *trace = (db->flags & SQLITE_VdbeTrace)!=0 ? stdout : 0; + sqlite3VdbeTrace(v, trace); + sqlite3VdbeMakeReady(v, pParse->nVar, pParse->nMem+3, + pParse->nTab+3, pParse->explain); + pParse->rc = SQLITE_DONE; + pParse->colNamesSet = 0; + }else if( pParse->rc==SQLITE_OK ){ + pParse->rc = SQLITE_ERROR; + } + pParse->nTab = 0; + pParse->nMem = 0; + pParse->nSet = 0; + pParse->nVar = 0; + pParse->cookieMask = 0; + pParse->cookieGoto = 0; +} + +/* +** Run the parser and code generator recursively in order to generate +** code for the SQL statement given onto the end of the pParse context +** currently under construction. When the parser is run recursively +** this way, the final OP_Halt is not appended and other initialization +** and finalization steps are omitted because those are handling by the +** outermost parser. +** +** Not everything is nestable. This facility is designed to permit +** INSERT, UPDATE, and DELETE operations against SQLITE_MASTER. Use +** care if you decide to try to use this routine for some other purposes. +*/ +void sqlite3NestedParse(Parse *pParse, const char *zFormat, ...){ + va_list ap; + char *zSql; +# define SAVE_SZ (sizeof(Parse) - offsetof(Parse,nVar)) + char saveBuf[SAVE_SZ]; + + if( pParse->nErr ) return; + assert( pParse->nested<10 ); /* Nesting should only be of limited depth */ + va_start(ap, zFormat); + zSql = sqlite3VMPrintf(zFormat, ap); + va_end(ap); + if( zSql==0 ){ + return; /* A malloc must have failed */ + } + pParse->nested++; + memcpy(saveBuf, &pParse->nVar, SAVE_SZ); + memset(&pParse->nVar, 0, SAVE_SZ); + sqlite3RunParser(pParse, zSql, 0); + sqliteFree(zSql); + memcpy(&pParse->nVar, saveBuf, SAVE_SZ); + pParse->nested--; +} + +/* +** Locate the in-memory structure that describes a particular database +** table given the name of that table and (optionally) the name of the +** database containing the table. Return NULL if not found. +** +** If zDatabase is 0, all databases are searched for the table and the +** first matching table is returned. (No checking for duplicate table +** names is done.) The search order is TEMP first, then MAIN, then any +** auxiliary databases added using the ATTACH command. +** +** See also sqlite3LocateTable(). +*/ +Table *sqlite3FindTable(sqlite3 *db, const char *zName, const char *zDatabase){ + Table *p = 0; + int i; + assert( zName!=0 ); + for(i=OMIT_TEMPDB; inDb; i++){ + int j = (i<2) ? i^1 : i; /* Search TEMP before MAIN */ + if( zDatabase!=0 && sqlite3StrICmp(zDatabase, db->aDb[j].zName) ) continue; + p = sqlite3HashFind(&db->aDb[j].pSchema->tblHash, zName, strlen(zName)+1); + if( p ) break; + } + return p; +} + +/* +** Locate the in-memory structure that describes a particular database +** table given the name of that table and (optionally) the name of the +** database containing the table. Return NULL if not found. Also leave an +** error message in pParse->zErrMsg. +** +** The difference between this routine and sqlite3FindTable() is that this +** routine leaves an error message in pParse->zErrMsg where +** sqlite3FindTable() does not. +*/ +Table *sqlite3LocateTable(Parse *pParse, const char *zName, const char *zDbase){ + Table *p; + + /* Read the database schema. If an error occurs, leave an error message + ** and code in pParse and return NULL. */ + if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){ + return 0; + } + + p = sqlite3FindTable(pParse->db, zName, zDbase); + if( p==0 ){ + if( zDbase ){ + sqlite3ErrorMsg(pParse, "no such table: %s.%s", zDbase, zName); + }else{ + sqlite3ErrorMsg(pParse, "no such table: %s", zName); + } + pParse->checkSchema = 1; + } + return p; +} + +/* +** Locate the in-memory structure that describes +** a particular index given the name of that index +** and the name of the database that contains the index. +** Return NULL if not found. +** +** If zDatabase is 0, all databases are searched for the +** table and the first matching index is returned. (No checking +** for duplicate index names is done.) The search order is +** TEMP first, then MAIN, then any auxiliary databases added +** using the ATTACH command. +*/ +Index *sqlite3FindIndex(sqlite3 *db, const char *zName, const char *zDb){ + Index *p = 0; + int i; + for(i=OMIT_TEMPDB; inDb; i++){ + int j = (i<2) ? i^1 : i; /* Search TEMP before MAIN */ + Schema *pSchema = db->aDb[j].pSchema; + if( zDb && sqlite3StrICmp(zDb, db->aDb[j].zName) ) continue; + assert( pSchema || (j==1 && !db->aDb[1].pBt) ); + if( pSchema ){ + p = sqlite3HashFind(&pSchema->idxHash, zName, strlen(zName)+1); + } + if( p ) break; + } + return p; +} + +/* +** Reclaim the memory used by an index +*/ +static void freeIndex(Index *p){ + sqliteFree(p->zColAff); + sqliteFree(p); +} + +/* +** Remove the given index from the index hash table, and free +** its memory structures. +** +** The index is removed from the database hash tables but +** it is not unlinked from the Table that it indexes. +** Unlinking from the Table must be done by the calling function. +*/ +static void sqliteDeleteIndex(Index *p){ + Index *pOld; + const char *zName = p->zName; + + pOld = sqlite3HashInsert(&p->pSchema->idxHash, zName, strlen( zName)+1, 0); + assert( pOld==0 || pOld==p ); + freeIndex(p); +} + +/* +** For the index called zIdxName which is found in the database iDb, +** unlike that index from its Table then remove the index from +** the index hash table and free all memory structures associated +** with the index. +*/ +void sqlite3UnlinkAndDeleteIndex(sqlite3 *db, int iDb, const char *zIdxName){ + Index *pIndex; + int len; + Hash *pHash = &db->aDb[iDb].pSchema->idxHash; + + len = strlen(zIdxName); + pIndex = sqlite3HashInsert(pHash, zIdxName, len+1, 0); + if( pIndex ){ + if( pIndex->pTable->pIndex==pIndex ){ + pIndex->pTable->pIndex = pIndex->pNext; + }else{ + Index *p; + for(p=pIndex->pTable->pIndex; p && p->pNext!=pIndex; p=p->pNext){} + if( p && p->pNext==pIndex ){ + p->pNext = pIndex->pNext; + } + } + freeIndex(pIndex); + } + db->flags |= SQLITE_InternChanges; +} + +/* +** Erase all schema information from the in-memory hash tables of +** a single database. This routine is called to reclaim memory +** before the database closes. It is also called during a rollback +** if there were schema changes during the transaction or if a +** schema-cookie mismatch occurs. +** +** If iDb<=0 then reset the internal schema tables for all database +** files. If iDb>=2 then reset the internal schema for only the +** single file indicated. +*/ +void sqlite3ResetInternalSchema(sqlite3 *db, int iDb){ + int i, j; + + assert( iDb>=0 && iDbnDb ); + for(i=iDb; inDb; i++){ + Db *pDb = &db->aDb[i]; + if( pDb->pSchema ){ + sqlite3SchemaFree(pDb->pSchema); + } + if( iDb>0 ) return; + } + assert( iDb==0 ); + db->flags &= ~SQLITE_InternChanges; + + /* If one or more of the auxiliary database files has been closed, + ** then remove them from the auxiliary database list. We take the + ** opportunity to do this here since we have just deleted all of the + ** schema hash tables and therefore do not have to make any changes + ** to any of those tables. + */ + for(i=0; inDb; i++){ + struct Db *pDb = &db->aDb[i]; + if( pDb->pBt==0 ){ + if( pDb->pAux && pDb->xFreeAux ) pDb->xFreeAux(pDb->pAux); + pDb->pAux = 0; + } + } + for(i=j=2; inDb; i++){ + struct Db *pDb = &db->aDb[i]; + if( pDb->pBt==0 ){ + sqliteFree(pDb->zName); + pDb->zName = 0; + continue; + } + if( jaDb[j] = db->aDb[i]; + } + j++; + } + memset(&db->aDb[j], 0, (db->nDb-j)*sizeof(db->aDb[j])); + db->nDb = j; + if( db->nDb<=2 && db->aDb!=db->aDbStatic ){ + memcpy(db->aDbStatic, db->aDb, 2*sizeof(db->aDb[0])); + sqliteFree(db->aDb); + db->aDb = db->aDbStatic; + } +} + +/* +** This routine is called whenever a rollback occurs. If there were +** schema changes during the transaction, then we have to reset the +** internal hash tables and reload them from disk. +*/ +void sqlite3RollbackInternalChanges(sqlite3 *db){ + if( db->flags & SQLITE_InternChanges ){ + sqlite3ResetInternalSchema(db, 0); + } +} + +/* +** This routine is called when a commit occurs. +*/ +void sqlite3CommitInternalChanges(sqlite3 *db){ + db->flags &= ~SQLITE_InternChanges; +} + +/* +** Clear the column names from a table or view. +*/ +static void sqliteResetColumnNames(Table *pTable){ + int i; + Column *pCol; + assert( pTable!=0 ); + if( (pCol = pTable->aCol)!=0 ){ + for(i=0; inCol; i++, pCol++){ + sqliteFree(pCol->zName); + sqlite3ExprDelete(pCol->pDflt); + sqliteFree(pCol->zType); + sqliteFree(pCol->zColl); + } + sqliteFree(pTable->aCol); + } + pTable->aCol = 0; + pTable->nCol = 0; +} + +/* +** Remove the memory data structures associated with the given +** Table. No changes are made to disk by this routine. +** +** This routine just deletes the data structure. It does not unlink +** the table data structure from the hash table. Nor does it remove +** foreign keys from the sqlite.aFKey hash table. But it does destroy +** memory structures of the indices and foreign keys associated with +** the table. +** +** Indices associated with the table are unlinked from the "db" +** data structure if db!=NULL. If db==NULL, indices attached to +** the table are deleted, but it is assumed they have already been +** unlinked. +*/ +void sqlite3DeleteTable(sqlite3 *db, Table *pTable){ + Index *pIndex, *pNext; + FKey *pFKey, *pNextFKey; + + db = 0; + + if( pTable==0 ) return; + + /* Do not delete the table until the reference count reaches zero. */ + pTable->nRef--; + if( pTable->nRef>0 ){ + return; + } + assert( pTable->nRef==0 ); + + /* Delete all indices associated with this table + */ + for(pIndex = pTable->pIndex; pIndex; pIndex=pNext){ + pNext = pIndex->pNext; + assert( pIndex->pSchema==pTable->pSchema ); + sqliteDeleteIndex(pIndex); + } + +#ifndef SQLITE_OMIT_FOREIGN_KEY + /* Delete all foreign keys associated with this table. The keys + ** should have already been unlinked from the db->aFKey hash table + */ + for(pFKey=pTable->pFKey; pFKey; pFKey=pNextFKey){ + pNextFKey = pFKey->pNextFrom; + assert( sqlite3HashFind(&pTable->pSchema->aFKey, + pFKey->zTo, strlen(pFKey->zTo)+1)!=pFKey ); + sqliteFree(pFKey); + } +#endif + + /* Delete the Table structure itself. + */ + sqliteResetColumnNames(pTable); + sqliteFree(pTable->zName); + sqliteFree(pTable->zColAff); + sqlite3SelectDelete(pTable->pSelect); +#ifndef SQLITE_OMIT_CHECK + sqlite3ExprDelete(pTable->pCheck); +#endif + sqlite3VtabClear(pTable); + sqliteFree(pTable); +} + +/* +** Unlink the given table from the hash tables and the delete the +** table structure with all its indices and foreign keys. +*/ +void sqlite3UnlinkAndDeleteTable(sqlite3 *db, int iDb, const char *zTabName){ + Table *p; + FKey *pF1, *pF2; + Db *pDb; + + assert( db!=0 ); + assert( iDb>=0 && iDbnDb ); + assert( zTabName && zTabName[0] ); + pDb = &db->aDb[iDb]; + p = sqlite3HashInsert(&pDb->pSchema->tblHash, zTabName, strlen(zTabName)+1,0); + if( p ){ +#ifndef SQLITE_OMIT_FOREIGN_KEY + for(pF1=p->pFKey; pF1; pF1=pF1->pNextFrom){ + int nTo = strlen(pF1->zTo) + 1; + pF2 = sqlite3HashFind(&pDb->pSchema->aFKey, pF1->zTo, nTo); + if( pF2==pF1 ){ + sqlite3HashInsert(&pDb->pSchema->aFKey, pF1->zTo, nTo, pF1->pNextTo); + }else{ + while( pF2 && pF2->pNextTo!=pF1 ){ pF2=pF2->pNextTo; } + if( pF2 ){ + pF2->pNextTo = pF1->pNextTo; + } + } + } +#endif + sqlite3DeleteTable(db, p); + } + db->flags |= SQLITE_InternChanges; +} + +/* +** Given a token, return a string that consists of the text of that +** token with any quotations removed. Space to hold the returned string +** is obtained from sqliteMalloc() and must be freed by the calling +** function. +** +** Tokens are often just pointers into the original SQL text and so +** are not \000 terminated and are not persistent. The returned string +** is \000 terminated and is persistent. +*/ +char *sqlite3NameFromToken(Token *pName){ + char *zName; + if( pName ){ + zName = sqliteStrNDup((char*)pName->z, pName->n); + sqlite3Dequote(zName); + }else{ + zName = 0; + } + return zName; +} + +/* +** Open the sqlite_master table stored in database number iDb for +** writing. The table is opened using cursor 0. +*/ +void sqlite3OpenMasterTable(Parse *p, int iDb){ + Vdbe *v = sqlite3GetVdbe(p); + sqlite3TableLock(p, iDb, MASTER_ROOT, 1, SCHEMA_TABLE(iDb)); + sqlite3VdbeAddOp(v, OP_Integer, iDb, 0); + sqlite3VdbeAddOp(v, OP_OpenWrite, 0, MASTER_ROOT); + sqlite3VdbeAddOp(v, OP_SetNumColumns, 0, 5); /* sqlite_master has 5 columns */ +} + +/* +** The token *pName contains the name of a database (either "main" or +** "temp" or the name of an attached db). This routine returns the +** index of the named database in db->aDb[], or -1 if the named db +** does not exist. +*/ +int sqlite3FindDb(sqlite3 *db, Token *pName){ + int i = -1; /* Database number */ + int n; /* Number of characters in the name */ + Db *pDb; /* A database whose name space is being searched */ + char *zName; /* Name we are searching for */ + + zName = sqlite3NameFromToken(pName); + if( zName ){ + n = strlen(zName); + for(i=(db->nDb-1), pDb=&db->aDb[i]; i>=0; i--, pDb--){ + if( (!OMIT_TEMPDB || i!=1 ) && n==strlen(pDb->zName) && + 0==sqlite3StrICmp(pDb->zName, zName) ){ + break; + } + } + sqliteFree(zName); + } + return i; +} + +/* The table or view or trigger name is passed to this routine via tokens +** pName1 and pName2. If the table name was fully qualified, for example: +** +** CREATE TABLE xxx.yyy (...); +** +** Then pName1 is set to "xxx" and pName2 "yyy". On the other hand if +** the table name is not fully qualified, i.e.: +** +** CREATE TABLE yyy(...); +** +** Then pName1 is set to "yyy" and pName2 is "". +** +** This routine sets the *ppUnqual pointer to point at the token (pName1 or +** pName2) that stores the unqualified table name. The index of the +** database "xxx" is returned. +*/ +int sqlite3TwoPartName( + Parse *pParse, /* Parsing and code generating context */ + Token *pName1, /* The "xxx" in the name "xxx.yyy" or "xxx" */ + Token *pName2, /* The "yyy" in the name "xxx.yyy" */ + Token **pUnqual /* Write the unqualified object name here */ +){ + int iDb; /* Database holding the object */ + sqlite3 *db = pParse->db; + + if( pName2 && pName2->n>0 ){ + assert( !db->init.busy ); + *pUnqual = pName2; + iDb = sqlite3FindDb(db, pName1); + if( iDb<0 ){ + sqlite3ErrorMsg(pParse, "unknown database %T", pName1); + pParse->nErr++; + return -1; + } + }else{ + assert( db->init.iDb==0 || db->init.busy ); + iDb = db->init.iDb; + *pUnqual = pName1; + } + return iDb; +} + +/* +** This routine is used to check if the UTF-8 string zName is a legal +** unqualified name for a new schema object (table, index, view or +** trigger). All names are legal except those that begin with the string +** "sqlite_" (in upper, lower or mixed case). This portion of the namespace +** is reserved for internal use. +*/ +int sqlite3CheckObjectName(Parse *pParse, const char *zName){ + if( !pParse->db->init.busy && pParse->nested==0 + && (pParse->db->flags & SQLITE_WriteSchema)==0 + && 0==sqlite3StrNICmp(zName, "sqlite_", 7) ){ + sqlite3ErrorMsg(pParse, "object name reserved for internal use: %s", zName); + return SQLITE_ERROR; + } + return SQLITE_OK; +} + +/* +** Begin constructing a new table representation in memory. This is +** the first of several action routines that get called in response +** to a CREATE TABLE statement. In particular, this routine is called +** after seeing tokens "CREATE" and "TABLE" and the table name. The isTemp +** flag is true if the table should be stored in the auxiliary database +** file instead of in the main database file. This is normally the case +** when the "TEMP" or "TEMPORARY" keyword occurs in between +** CREATE and TABLE. +** +** The new table record is initialized and put in pParse->pNewTable. +** As more of the CREATE TABLE statement is parsed, additional action +** routines will be called to add more information to this record. +** At the end of the CREATE TABLE statement, the sqlite3EndTable() routine +** is called to complete the construction of the new table record. +*/ +void sqlite3StartTable( + Parse *pParse, /* Parser context */ + Token *pName1, /* First part of the name of the table or view */ + Token *pName2, /* Second part of the name of the table or view */ + int isTemp, /* True if this is a TEMP table */ + int isView, /* True if this is a VIEW */ + int isVirtual, /* True if this is a VIRTUAL table */ + int noErr /* Do nothing if table already exists */ +){ + Table *pTable; + char *zName = 0; /* The name of the new table */ + sqlite3 *db = pParse->db; + Vdbe *v; + int iDb; /* Database number to create the table in */ + Token *pName; /* Unqualified name of the table to create */ + + /* The table or view name to create is passed to this routine via tokens + ** pName1 and pName2. If the table name was fully qualified, for example: + ** + ** CREATE TABLE xxx.yyy (...); + ** + ** Then pName1 is set to "xxx" and pName2 "yyy". On the other hand if + ** the table name is not fully qualified, i.e.: + ** + ** CREATE TABLE yyy(...); + ** + ** Then pName1 is set to "yyy" and pName2 is "". + ** + ** The call below sets the pName pointer to point at the token (pName1 or + ** pName2) that stores the unqualified table name. The variable iDb is + ** set to the index of the database that the table or view is to be + ** created in. + */ + iDb = sqlite3TwoPartName(pParse, pName1, pName2, &pName); + if( iDb<0 ) return; + if( !OMIT_TEMPDB && isTemp && iDb>1 ){ + /* If creating a temp table, the name may not be qualified */ + sqlite3ErrorMsg(pParse, "temporary table name must be unqualified"); + return; + } + if( !OMIT_TEMPDB && isTemp ) iDb = 1; + + pParse->sNameToken = *pName; + zName = sqlite3NameFromToken(pName); + if( zName==0 ) return; + if( SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){ + goto begin_table_error; + } + if( db->init.iDb==1 ) isTemp = 1; +#ifndef SQLITE_OMIT_AUTHORIZATION + assert( (isTemp & 1)==isTemp ); + { + int code; + char *zDb = db->aDb[iDb].zName; + if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(isTemp), 0, zDb) ){ + goto begin_table_error; + } + if( isView ){ + if( !OMIT_TEMPDB && isTemp ){ + code = SQLITE_CREATE_TEMP_VIEW; + }else{ + code = SQLITE_CREATE_VIEW; + } + }else{ + if( !OMIT_TEMPDB && isTemp ){ + code = SQLITE_CREATE_TEMP_TABLE; + }else{ + code = SQLITE_CREATE_TABLE; + } + } + if( !isVirtual && sqlite3AuthCheck(pParse, code, zName, 0, zDb) ){ + goto begin_table_error; + } + } +#endif + + /* Make sure the new table name does not collide with an existing + ** index or table name in the same database. Issue an error message if + ** it does. The exception is if the statement being parsed was passed + ** to an sqlite3_declare_vtab() call. In that case only the column names + ** and types will be used, so there is no need to test for namespace + ** collisions. + */ + if( !IN_DECLARE_VTAB ){ + if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){ + goto begin_table_error; + } + pTable = sqlite3FindTable(db, zName, db->aDb[iDb].zName); + if( pTable ){ + if( !noErr ){ + sqlite3ErrorMsg(pParse, "table %T already exists", pName); + } + goto begin_table_error; + } + if( sqlite3FindIndex(db, zName, 0)!=0 && (iDb==0 || !db->init.busy) ){ + sqlite3ErrorMsg(pParse, "there is already an index named %s", zName); + goto begin_table_error; + } + } + + pTable = sqliteMalloc( sizeof(Table) ); + if( pTable==0 ){ + pParse->rc = SQLITE_NOMEM; + pParse->nErr++; + goto begin_table_error; + } + pTable->zName = zName; + pTable->iPKey = -1; + pTable->pSchema = db->aDb[iDb].pSchema; + pTable->nRef = 1; + if( pParse->pNewTable ) sqlite3DeleteTable(db, pParse->pNewTable); + pParse->pNewTable = pTable; + + /* If this is the magic sqlite_sequence table used by autoincrement, + ** then record a pointer to this table in the main database structure + ** so that INSERT can find the table easily. + */ +#ifndef SQLITE_OMIT_AUTOINCREMENT + if( !pParse->nested && strcmp(zName, "sqlite_sequence")==0 ){ + pTable->pSchema->pSeqTab = pTable; + } +#endif + + /* Begin generating the code that will insert the table record into + ** the SQLITE_MASTER table. Note in particular that we must go ahead + ** and allocate the record number for the table entry now. Before any + ** PRIMARY KEY or UNIQUE keywords are parsed. Those keywords will cause + ** indices to be created and the table record must come before the + ** indices. Hence, the record number for the table must be allocated + ** now. + */ + if( !db->init.busy && (v = sqlite3GetVdbe(pParse))!=0 ){ + int lbl; + int fileFormat; + sqlite3BeginWriteOperation(pParse, 0, iDb); + +#ifndef SQLITE_OMIT_VIRTUALTABLE + if( isVirtual ){ + sqlite3VdbeAddOp(v, OP_VBegin, 0, 0); + } +#endif + + /* If the file format and encoding in the database have not been set, + ** set them now. + */ + sqlite3VdbeAddOp(v, OP_ReadCookie, iDb, 1); /* file_format */ + lbl = sqlite3VdbeMakeLabel(v); + sqlite3VdbeAddOp(v, OP_If, 0, lbl); + fileFormat = (db->flags & SQLITE_LegacyFileFmt)!=0 ? + 1 : SQLITE_MAX_FILE_FORMAT; + sqlite3VdbeAddOp(v, OP_Integer, fileFormat, 0); + sqlite3VdbeAddOp(v, OP_SetCookie, iDb, 1); + sqlite3VdbeAddOp(v, OP_Integer, ENC(db), 0); + sqlite3VdbeAddOp(v, OP_SetCookie, iDb, 4); + sqlite3VdbeResolveLabel(v, lbl); + + /* This just creates a place-holder record in the sqlite_master table. + ** The record created does not contain anything yet. It will be replaced + ** by the real entry in code generated at sqlite3EndTable(). + ** + ** The rowid for the new entry is left on the top of the stack. + ** The rowid value is needed by the code that sqlite3EndTable will + ** generate. + */ +#if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_VIRTUALTABLE) + if( isView || isVirtual ){ + sqlite3VdbeAddOp(v, OP_Integer, 0, 0); + }else +#endif + { + sqlite3VdbeAddOp(v, OP_CreateTable, iDb, 0); + } + sqlite3OpenMasterTable(pParse, iDb); + sqlite3VdbeAddOp(v, OP_NewRowid, 0, 0); + sqlite3VdbeAddOp(v, OP_Dup, 0, 0); + sqlite3VdbeAddOp(v, OP_Null, 0, 0); + sqlite3VdbeAddOp(v, OP_Insert, 0, 0); + sqlite3VdbeAddOp(v, OP_Close, 0, 0); + sqlite3VdbeAddOp(v, OP_Pull, 1, 0); + } + + /* Normal (non-error) return. */ + return; + + /* If an error occurs, we jump here */ +begin_table_error: + sqliteFree(zName); + return; +} + +/* +** This macro is used to compare two strings in a case-insensitive manner. +** It is slightly faster than calling sqlite3StrICmp() directly, but +** produces larger code. +** +** WARNING: This macro is not compatible with the strcmp() family. It +** returns true if the two strings are equal, otherwise false. +*/ +#define STRICMP(x, y) (\ +sqlite3UpperToLower[*(unsigned char *)(x)]== \ +sqlite3UpperToLower[*(unsigned char *)(y)] \ +&& sqlite3StrICmp((x)+1,(y)+1)==0 ) + +/* +** Add a new column to the table currently being constructed. +** +** The parser calls this routine once for each column declaration +** in a CREATE TABLE statement. sqlite3StartTable() gets called +** first to get things going. Then this routine is called for each +** column. +*/ +void sqlite3AddColumn(Parse *pParse, Token *pName){ + Table *p; + int i; + char *z; + Column *pCol; + if( (p = pParse->pNewTable)==0 ) return; + z = sqlite3NameFromToken(pName); + if( z==0 ) return; + for(i=0; inCol; i++){ + if( STRICMP(z, p->aCol[i].zName) ){ + sqlite3ErrorMsg(pParse, "duplicate column name: %s", z); + sqliteFree(z); + return; + } + } + if( (p->nCol & 0x7)==0 ){ + Column *aNew; + aNew = sqliteRealloc( p->aCol, (p->nCol+8)*sizeof(p->aCol[0])); + if( aNew==0 ){ + sqliteFree(z); + return; + } + p->aCol = aNew; + } + pCol = &p->aCol[p->nCol]; + memset(pCol, 0, sizeof(p->aCol[0])); + pCol->zName = z; + + /* If there is no type specified, columns have the default affinity + ** 'NONE'. If there is a type specified, then sqlite3AddColumnType() will + ** be called next to set pCol->affinity correctly. + */ + pCol->affinity = SQLITE_AFF_NONE; + p->nCol++; +} + +/* +** This routine is called by the parser while in the middle of +** parsing a CREATE TABLE statement. A "NOT NULL" constraint has +** been seen on a column. This routine sets the notNull flag on +** the column currently under construction. +*/ +void sqlite3AddNotNull(Parse *pParse, int onError){ + Table *p; + int i; + if( (p = pParse->pNewTable)==0 ) return; + i = p->nCol-1; + if( i>=0 ) p->aCol[i].notNull = onError; +} + +/* +** Scan the column type name zType (length nType) and return the +** associated affinity type. +** +** This routine does a case-independent search of zType for the +** substrings in the following table. If one of the substrings is +** found, the corresponding affinity is returned. If zType contains +** more than one of the substrings, entries toward the top of +** the table take priority. For example, if zType is 'BLOBINT', +** SQLITE_AFF_INTEGER is returned. +** +** Substring | Affinity +** -------------------------------- +** 'INT' | SQLITE_AFF_INTEGER +** 'CHAR' | SQLITE_AFF_TEXT +** 'CLOB' | SQLITE_AFF_TEXT +** 'TEXT' | SQLITE_AFF_TEXT +** 'BLOB' | SQLITE_AFF_NONE +** 'REAL' | SQLITE_AFF_REAL +** 'FLOA' | SQLITE_AFF_REAL +** 'DOUB' | SQLITE_AFF_REAL +** +** If none of the substrings in the above table are found, +** SQLITE_AFF_NUMERIC is returned. +*/ +char sqlite3AffinityType(const Token *pType){ + u32 h = 0; + char aff = SQLITE_AFF_NUMERIC; + const unsigned char *zIn = pType->z; + const unsigned char *zEnd = &pType->z[pType->n]; + + while( zIn!=zEnd ){ + h = (h<<8) + sqlite3UpperToLower[*zIn]; + zIn++; + if( h==(('c'<<24)+('h'<<16)+('a'<<8)+'r') ){ /* CHAR */ + aff = SQLITE_AFF_TEXT; + }else if( h==(('c'<<24)+('l'<<16)+('o'<<8)+'b') ){ /* CLOB */ + aff = SQLITE_AFF_TEXT; + }else if( h==(('t'<<24)+('e'<<16)+('x'<<8)+'t') ){ /* TEXT */ + aff = SQLITE_AFF_TEXT; + }else if( h==(('b'<<24)+('l'<<16)+('o'<<8)+'b') /* BLOB */ + && (aff==SQLITE_AFF_NUMERIC || aff==SQLITE_AFF_REAL) ){ + aff = SQLITE_AFF_NONE; +#ifndef SQLITE_OMIT_FLOATING_POINT + }else if( h==(('r'<<24)+('e'<<16)+('a'<<8)+'l') /* REAL */ + && aff==SQLITE_AFF_NUMERIC ){ + aff = SQLITE_AFF_REAL; + }else if( h==(('f'<<24)+('l'<<16)+('o'<<8)+'a') /* FLOA */ + && aff==SQLITE_AFF_NUMERIC ){ + aff = SQLITE_AFF_REAL; + }else if( h==(('d'<<24)+('o'<<16)+('u'<<8)+'b') /* DOUB */ + && aff==SQLITE_AFF_NUMERIC ){ + aff = SQLITE_AFF_REAL; +#endif + }else if( (h&0x00FFFFFF)==(('i'<<16)+('n'<<8)+'t') ){ /* INT */ + aff = SQLITE_AFF_INTEGER; + break; + } + } + + return aff; +} + +/* +** This routine is called by the parser while in the middle of +** parsing a CREATE TABLE statement. The pFirst token is the first +** token in the sequence of tokens that describe the type of the +** column currently under construction. pLast is the last token +** in the sequence. Use this information to construct a string +** that contains the typename of the column and store that string +** in zType. +*/ +void sqlite3AddColumnType(Parse *pParse, Token *pType){ + Table *p; + int i; + Column *pCol; + + if( (p = pParse->pNewTable)==0 ) return; + i = p->nCol-1; + if( i<0 ) return; + pCol = &p->aCol[i]; + sqliteFree(pCol->zType); + pCol->zType = sqlite3NameFromToken(pType); + pCol->affinity = sqlite3AffinityType(pType); +} + +/* +** The expression is the default value for the most recently added column +** of the table currently under construction. +** +** Default value expressions must be constant. Raise an exception if this +** is not the case. +** +** This routine is called by the parser while in the middle of +** parsing a CREATE TABLE statement. +*/ +void sqlite3AddDefaultValue(Parse *pParse, Expr *pExpr){ + Table *p; + Column *pCol; + if( (p = pParse->pNewTable)!=0 ){ + pCol = &(p->aCol[p->nCol-1]); + if( !sqlite3ExprIsConstantOrFunction(pExpr) ){ + sqlite3ErrorMsg(pParse, "default value of column [%s] is not constant", + pCol->zName); + }else{ + Expr *pCopy; + sqlite3ExprDelete(pCol->pDflt); + pCol->pDflt = pCopy = sqlite3ExprDup(pExpr); + if( pCopy ){ + sqlite3TokenCopy(&pCopy->span, &pExpr->span); + } + } + } + sqlite3ExprDelete(pExpr); +} + +/* +** Designate the PRIMARY KEY for the table. pList is a list of names +** of columns that form the primary key. If pList is NULL, then the +** most recently added column of the table is the primary key. +** +** A table can have at most one primary key. If the table already has +** a primary key (and this is the second primary key) then create an +** error. +** +** If the PRIMARY KEY is on a single column whose datatype is INTEGER, +** then we will try to use that column as the rowid. Set the Table.iPKey +** field of the table under construction to be the index of the +** INTEGER PRIMARY KEY column. Table.iPKey is set to -1 if there is +** no INTEGER PRIMARY KEY. +** +** If the key is not an INTEGER PRIMARY KEY, then create a unique +** index for the key. No index is created for INTEGER PRIMARY KEYs. +*/ +void sqlite3AddPrimaryKey( + Parse *pParse, /* Parsing context */ + ExprList *pList, /* List of field names to be indexed */ + int onError, /* What to do with a uniqueness conflict */ + int autoInc, /* True if the AUTOINCREMENT keyword is present */ + int sortOrder /* SQLITE_SO_ASC or SQLITE_SO_DESC */ +){ + Table *pTab = pParse->pNewTable; + char *zType = 0; + int iCol = -1, i; + if( pTab==0 || IN_DECLARE_VTAB ) goto primary_key_exit; + if( pTab->hasPrimKey ){ + sqlite3ErrorMsg(pParse, + "table \"%s\" has more than one primary key", pTab->zName); + goto primary_key_exit; + } + pTab->hasPrimKey = 1; + if( pList==0 ){ + iCol = pTab->nCol - 1; + pTab->aCol[iCol].isPrimKey = 1; + }else{ + for(i=0; inExpr; i++){ + for(iCol=0; iColnCol; iCol++){ + if( sqlite3StrICmp(pList->a[i].zName, pTab->aCol[iCol].zName)==0 ){ + break; + } + } + if( iColnCol ){ + pTab->aCol[iCol].isPrimKey = 1; + } + } + if( pList->nExpr>1 ) iCol = -1; + } + if( iCol>=0 && iColnCol ){ + zType = pTab->aCol[iCol].zType; + } + if( zType && sqlite3StrICmp(zType, "INTEGER")==0 + && sortOrder==SQLITE_SO_ASC ){ + pTab->iPKey = iCol; + pTab->keyConf = onError; + pTab->autoInc = autoInc; + }else if( autoInc ){ +#ifndef SQLITE_OMIT_AUTOINCREMENT + sqlite3ErrorMsg(pParse, "AUTOINCREMENT is only allowed on an " + "INTEGER PRIMARY KEY"); +#endif + }else{ + sqlite3CreateIndex(pParse, 0, 0, 0, pList, onError, 0, 0, sortOrder, 0); + pList = 0; + } + +primary_key_exit: + sqlite3ExprListDelete(pList); + return; +} + +/* +** Add a new CHECK constraint to the table currently under construction. +*/ +void sqlite3AddCheckConstraint( + Parse *pParse, /* Parsing context */ + Expr *pCheckExpr /* The check expression */ +){ +#ifndef SQLITE_OMIT_CHECK + Table *pTab = pParse->pNewTable; + if( pTab && !IN_DECLARE_VTAB ){ + /* The CHECK expression must be duplicated so that tokens refer + ** to malloced space and not the (ephemeral) text of the CREATE TABLE + ** statement */ + pTab->pCheck = sqlite3ExprAnd(pTab->pCheck, sqlite3ExprDup(pCheckExpr)); + } +#endif + sqlite3ExprDelete(pCheckExpr); +} + +/* +** Set the collation function of the most recently parsed table column +** to the CollSeq given. +*/ +void sqlite3AddCollateType(Parse *pParse, const char *zType, int nType){ + Table *p; + int i; + + if( (p = pParse->pNewTable)==0 ) return; + i = p->nCol-1; + + if( sqlite3LocateCollSeq(pParse, zType, nType) ){ + Index *pIdx; + p->aCol[i].zColl = sqliteStrNDup(zType, nType); + + /* If the column is declared as " PRIMARY KEY COLLATE ", + ** then an index may have been created on this column before the + ** collation type was added. Correct this if it is the case. + */ + for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){ + assert( pIdx->nColumn==1 ); + if( pIdx->aiColumn[0]==i ){ + pIdx->azColl[0] = p->aCol[i].zColl; + } + } + } +} + +/* +** This function returns the collation sequence for database native text +** encoding identified by the string zName, length nName. +** +** If the requested collation sequence is not available, or not available +** in the database native encoding, the collation factory is invoked to +** request it. If the collation factory does not supply such a sequence, +** and the sequence is available in another text encoding, then that is +** returned instead. +** +** If no versions of the requested collations sequence are available, or +** another error occurs, NULL is returned and an error message written into +** pParse. +*/ +CollSeq *sqlite3LocateCollSeq(Parse *pParse, const char *zName, int nName){ + sqlite3 *db = pParse->db; + u8 enc = ENC(db); + u8 initbusy = db->init.busy; + CollSeq *pColl; + + pColl = sqlite3FindCollSeq(db, enc, zName, nName, initbusy); + if( !initbusy && (!pColl || !pColl->xCmp) ){ + pColl = sqlite3GetCollSeq(db, pColl, zName, nName); + if( !pColl ){ + if( nName<0 ){ + nName = strlen(zName); + } + sqlite3ErrorMsg(pParse, "no such collation sequence: %.*s", nName, zName); + pColl = 0; + } + } + + return pColl; +} + + +/* +** Generate code that will increment the schema cookie. +** +** The schema cookie is used to determine when the schema for the +** database changes. After each schema change, the cookie value +** changes. When a process first reads the schema it records the +** cookie. Thereafter, whenever it goes to access the database, +** it checks the cookie to make sure the schema has not changed +** since it was last read. +** +** This plan is not completely bullet-proof. It is possible for +** the schema to change multiple times and for the cookie to be +** set back to prior value. But schema changes are infrequent +** and the probability of hitting the same cookie value is only +** 1 chance in 2^32. So we're safe enough. +*/ +void sqlite3ChangeCookie(sqlite3 *db, Vdbe *v, int iDb){ + sqlite3VdbeAddOp(v, OP_Integer, db->aDb[iDb].pSchema->schema_cookie+1, 0); + sqlite3VdbeAddOp(v, OP_SetCookie, iDb, 0); +} + +/* +** Measure the number of characters needed to output the given +** identifier. The number returned includes any quotes used +** but does not include the null terminator. +** +** The estimate is conservative. It might be larger that what is +** really needed. +*/ +static int identLength(const char *z){ + int n; + for(n=0; *z; n++, z++){ + if( *z=='"' ){ n++; } + } + return n + 2; +} + +/* +** Write an identifier onto the end of the given string. Add +** quote characters as needed. +*/ +static void identPut(char *z, int *pIdx, char *zSignedIdent){ + unsigned char *zIdent = (unsigned char*)zSignedIdent; + int i, j, needQuote; + i = *pIdx; + for(j=0; zIdent[j]; j++){ + if( !isalnum(zIdent[j]) && zIdent[j]!='_' ) break; + } + needQuote = zIdent[j]!=0 || isdigit(zIdent[0]) + || sqlite3KeywordCode(zIdent, j)!=TK_ID; + if( needQuote ) z[i++] = '"'; + for(j=0; zIdent[j]; j++){ + z[i++] = zIdent[j]; + if( zIdent[j]=='"' ) z[i++] = '"'; + } + if( needQuote ) z[i++] = '"'; + z[i] = 0; + *pIdx = i; +} + +/* +** Generate a CREATE TABLE statement appropriate for the given +** table. Memory to hold the text of the statement is obtained +** from sqliteMalloc() and must be freed by the calling function. +*/ +static char *createTableStmt(Table *p, int isTemp){ + int i, k, n; + char *zStmt; + char *zSep, *zSep2, *zEnd, *z; + Column *pCol; + n = 0; + for(pCol = p->aCol, i=0; inCol; i++, pCol++){ + n += identLength(pCol->zName); + z = pCol->zType; + if( z ){ + n += (strlen(z) + 1); + } + } + n += identLength(p->zName); + if( n<50 ){ + zSep = ""; + zSep2 = ","; + zEnd = ")"; + }else{ + zSep = "\n "; + zSep2 = ",\n "; + zEnd = "\n)"; + } + n += 35 + 6*p->nCol; + zStmt = sqliteMallocRaw( n ); + if( zStmt==0 ) return 0; + strcpy(zStmt, !OMIT_TEMPDB&&isTemp ? "CREATE TEMP TABLE ":"CREATE TABLE "); + k = strlen(zStmt); + identPut(zStmt, &k, p->zName); + zStmt[k++] = '('; + for(pCol=p->aCol, i=0; inCol; i++, pCol++){ + strcpy(&zStmt[k], zSep); + k += strlen(&zStmt[k]); + zSep = zSep2; + identPut(zStmt, &k, pCol->zName); + if( (z = pCol->zType)!=0 ){ + zStmt[k++] = ' '; + strcpy(&zStmt[k], z); + k += strlen(z); + } + } + strcpy(&zStmt[k], zEnd); + return zStmt; +} + +/* +** This routine is called to report the final ")" that terminates +** a CREATE TABLE statement. +** +** The table structure that other action routines have been building +** is added to the internal hash tables, assuming no errors have +** occurred. +** +** An entry for the table is made in the master table on disk, unless +** this is a temporary table or db->init.busy==1. When db->init.busy==1 +** it means we are reading the sqlite_master table because we just +** connected to the database or because the sqlite_master table has +** recently changed, so the entry for this table already exists in +** the sqlite_master table. We do not want to create it again. +** +** If the pSelect argument is not NULL, it means that this routine +** was called to create a table generated from a +** "CREATE TABLE ... AS SELECT ..." statement. The column names of +** the new table will match the result set of the SELECT. +*/ +void sqlite3EndTable( + Parse *pParse, /* Parse context */ + Token *pCons, /* The ',' token after the last column defn. */ + Token *pEnd, /* The final ')' token in the CREATE TABLE */ + Select *pSelect /* Select from a "CREATE ... AS SELECT" */ +){ + Table *p; + sqlite3 *db = pParse->db; + int iDb; + + if( (pEnd==0 && pSelect==0) || pParse->nErr || sqlite3MallocFailed() ) { + return; + } + p = pParse->pNewTable; + if( p==0 ) return; + + assert( !db->init.busy || !pSelect ); + + iDb = sqlite3SchemaToIndex(db, p->pSchema); + +#ifndef SQLITE_OMIT_CHECK + /* Resolve names in all CHECK constraint expressions. + */ + if( p->pCheck ){ + SrcList sSrc; /* Fake SrcList for pParse->pNewTable */ + NameContext sNC; /* Name context for pParse->pNewTable */ + + memset(&sNC, 0, sizeof(sNC)); + memset(&sSrc, 0, sizeof(sSrc)); + sSrc.nSrc = 1; + sSrc.a[0].zName = p->zName; + sSrc.a[0].pTab = p; + sSrc.a[0].iCursor = -1; + sNC.pParse = pParse; + sNC.pSrcList = &sSrc; + sNC.isCheck = 1; + if( sqlite3ExprResolveNames(&sNC, p->pCheck) ){ + return; + } + } +#endif /* !defined(SQLITE_OMIT_CHECK) */ + + /* If the db->init.busy is 1 it means we are reading the SQL off the + ** "sqlite_master" or "sqlite_temp_master" table on the disk. + ** So do not write to the disk again. Extract the root page number + ** for the table from the db->init.newTnum field. (The page number + ** should have been put there by the sqliteOpenCb routine.) + */ + if( db->init.busy ){ + p->tnum = db->init.newTnum; + } + + /* If not initializing, then create a record for the new table + ** in the SQLITE_MASTER table of the database. The record number + ** for the new table entry should already be on the stack. + ** + ** If this is a TEMPORARY table, write the entry into the auxiliary + ** file instead of into the main database file. + */ + if( !db->init.busy ){ + int n; + Vdbe *v; + char *zType; /* "view" or "table" */ + char *zType2; /* "VIEW" or "TABLE" */ + char *zStmt; /* Text of the CREATE TABLE or CREATE VIEW statement */ + + v = sqlite3GetVdbe(pParse); + if( v==0 ) return; + + sqlite3VdbeAddOp(v, OP_Close, 0, 0); + + /* Create the rootpage for the new table and push it onto the stack. + ** A view has no rootpage, so just push a zero onto the stack for + ** views. Initialize zType at the same time. + */ + if( p->pSelect==0 ){ + /* A regular table */ + zType = "table"; + zType2 = "TABLE"; +#ifndef SQLITE_OMIT_VIEW + }else{ + /* A view */ + zType = "view"; + zType2 = "VIEW"; +#endif + } + + /* If this is a CREATE TABLE xx AS SELECT ..., execute the SELECT + ** statement to populate the new table. The root-page number for the + ** new table is on the top of the vdbe stack. + ** + ** Once the SELECT has been coded by sqlite3Select(), it is in a + ** suitable state to query for the column names and types to be used + ** by the new table. + ** + ** A shared-cache write-lock is not required to write to the new table, + ** as a schema-lock must have already been obtained to create it. Since + ** a schema-lock excludes all other database users, the write-lock would + ** be redundant. + */ + if( pSelect ){ + Table *pSelTab; + sqlite3VdbeAddOp(v, OP_Dup, 0, 0); + sqlite3VdbeAddOp(v, OP_Integer, iDb, 0); + sqlite3VdbeAddOp(v, OP_OpenWrite, 1, 0); + pParse->nTab = 2; + sqlite3Select(pParse, pSelect, SRT_Table, 1, 0, 0, 0, 0); + sqlite3VdbeAddOp(v, OP_Close, 1, 0); + if( pParse->nErr==0 ){ + pSelTab = sqlite3ResultSetOfSelect(pParse, 0, pSelect); + if( pSelTab==0 ) return; + assert( p->aCol==0 ); + p->nCol = pSelTab->nCol; + p->aCol = pSelTab->aCol; + pSelTab->nCol = 0; + pSelTab->aCol = 0; + sqlite3DeleteTable(0, pSelTab); + } + } + + /* Compute the complete text of the CREATE statement */ + if( pSelect ){ + zStmt = createTableStmt(p, p->pSchema==pParse->db->aDb[1].pSchema); + }else{ + n = pEnd->z - pParse->sNameToken.z + 1; + zStmt = sqlite3MPrintf("CREATE %s %.*s", zType2, n, pParse->sNameToken.z); + } + + /* A slot for the record has already been allocated in the + ** SQLITE_MASTER table. We just need to update that slot with all + ** the information we've collected. The rowid for the preallocated + ** slot is the 2nd item on the stack. The top of the stack is the + ** root page for the new table (or a 0 if this is a view). + */ + sqlite3NestedParse(pParse, + "UPDATE %Q.%s " + "SET type='%s', name=%Q, tbl_name=%Q, rootpage=#0, sql=%Q " + "WHERE rowid=#1", + db->aDb[iDb].zName, SCHEMA_TABLE(iDb), + zType, + p->zName, + p->zName, + zStmt + ); + sqliteFree(zStmt); + sqlite3ChangeCookie(db, v, iDb); + +#ifndef SQLITE_OMIT_AUTOINCREMENT + /* Check to see if we need to create an sqlite_sequence table for + ** keeping track of autoincrement keys. + */ + if( p->autoInc ){ + Db *pDb = &db->aDb[iDb]; + if( pDb->pSchema->pSeqTab==0 ){ + sqlite3NestedParse(pParse, + "CREATE TABLE %Q.sqlite_sequence(name,seq)", + pDb->zName + ); + } + } +#endif + + /* Reparse everything to update our internal data structures */ + sqlite3VdbeOp3(v, OP_ParseSchema, iDb, 0, + sqlite3MPrintf("tbl_name='%q'",p->zName), P3_DYNAMIC); + } + + + /* Add the table to the in-memory representation of the database. + */ + if( db->init.busy && pParse->nErr==0 ){ + Table *pOld; + FKey *pFKey; + Schema *pSchema = p->pSchema; + pOld = sqlite3HashInsert(&pSchema->tblHash, p->zName, strlen(p->zName)+1,p); + if( pOld ){ + assert( p==pOld ); /* Malloc must have failed inside HashInsert() */ + return; + } +#ifndef SQLITE_OMIT_FOREIGN_KEY + for(pFKey=p->pFKey; pFKey; pFKey=pFKey->pNextFrom){ + int nTo = strlen(pFKey->zTo) + 1; + pFKey->pNextTo = sqlite3HashFind(&pSchema->aFKey, pFKey->zTo, nTo); + sqlite3HashInsert(&pSchema->aFKey, pFKey->zTo, nTo, pFKey); + } +#endif + pParse->pNewTable = 0; + db->nTable++; + db->flags |= SQLITE_InternChanges; + +#ifndef SQLITE_OMIT_ALTERTABLE + if( !p->pSelect ){ + const char *zName = (const char *)pParse->sNameToken.z; + int nName; + assert( !pSelect && pCons && pEnd ); + if( pCons->z==0 ){ + pCons = pEnd; + } + nName = (const char *)pCons->z - zName; + p->addColOffset = 13 + sqlite3utf8CharLen(zName, nName); + } +#endif + } +} + +#ifndef SQLITE_OMIT_VIEW +/* +** The parser calls this routine in order to create a new VIEW +*/ +void sqlite3CreateView( + Parse *pParse, /* The parsing context */ + Token *pBegin, /* The CREATE token that begins the statement */ + Token *pName1, /* The token that holds the name of the view */ + Token *pName2, /* The token that holds the name of the view */ + Select *pSelect, /* A SELECT statement that will become the new view */ + int isTemp, /* TRUE for a TEMPORARY view */ + int noErr /* Suppress error messages if VIEW already exists */ +){ + Table *p; + int n; + const unsigned char *z; + Token sEnd; + DbFixer sFix; + Token *pName; + int iDb; + + if( pParse->nVar>0 ){ + sqlite3ErrorMsg(pParse, "parameters are not allowed in views"); + sqlite3SelectDelete(pSelect); + return; + } + sqlite3StartTable(pParse, pName1, pName2, isTemp, 1, 0, noErr); + p = pParse->pNewTable; + if( p==0 || pParse->nErr ){ + sqlite3SelectDelete(pSelect); + return; + } + sqlite3TwoPartName(pParse, pName1, pName2, &pName); + iDb = sqlite3SchemaToIndex(pParse->db, p->pSchema); + if( sqlite3FixInit(&sFix, pParse, iDb, "view", pName) + && sqlite3FixSelect(&sFix, pSelect) + ){ + sqlite3SelectDelete(pSelect); + return; + } + + /* Make a copy of the entire SELECT statement that defines the view. + ** This will force all the Expr.token.z values to be dynamically + ** allocated rather than point to the input string - which means that + ** they will persist after the current sqlite3_exec() call returns. + */ + p->pSelect = sqlite3SelectDup(pSelect); + sqlite3SelectDelete(pSelect); + if( sqlite3MallocFailed() ){ + return; + } + if( !pParse->db->init.busy ){ + sqlite3ViewGetColumnNames(pParse, p); + } + + /* Locate the end of the CREATE VIEW statement. Make sEnd point to + ** the end. + */ + sEnd = pParse->sLastToken; + if( sEnd.z[0]!=0 && sEnd.z[0]!=';' ){ + sEnd.z += sEnd.n; + } + sEnd.n = 0; + n = sEnd.z - pBegin->z; + z = (const unsigned char*)pBegin->z; + while( n>0 && (z[n-1]==';' || isspace(z[n-1])) ){ n--; } + sEnd.z = &z[n-1]; + sEnd.n = 1; + + /* Use sqlite3EndTable() to add the view to the SQLITE_MASTER table */ + sqlite3EndTable(pParse, 0, &sEnd, 0); + return; +} +#endif /* SQLITE_OMIT_VIEW */ + +#if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_VIRTUALTABLE) +/* +** The Table structure pTable is really a VIEW. Fill in the names of +** the columns of the view in the pTable structure. Return the number +** of errors. If an error is seen leave an error message in pParse->zErrMsg. +*/ +int sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable){ + Table *pSelTab; /* A fake table from which we get the result set */ + Select *pSel; /* Copy of the SELECT that implements the view */ + int nErr = 0; /* Number of errors encountered */ + int n; /* Temporarily holds the number of cursors assigned */ + + assert( pTable ); + +#ifndef SQLITE_OMIT_VIRTUALTABLE + if( sqlite3VtabCallConnect(pParse, pTable) ){ + return SQLITE_ERROR; + } + if( IsVirtual(pTable) ) return 0; +#endif + +#ifndef SQLITE_OMIT_VIEW + /* A positive nCol means the columns names for this view are + ** already known. + */ + if( pTable->nCol>0 ) return 0; + + /* A negative nCol is a special marker meaning that we are currently + ** trying to compute the column names. If we enter this routine with + ** a negative nCol, it means two or more views form a loop, like this: + ** + ** CREATE VIEW one AS SELECT * FROM two; + ** CREATE VIEW two AS SELECT * FROM one; + ** + ** Actually, this error is caught previously and so the following test + ** should always fail. But we will leave it in place just to be safe. + */ + if( pTable->nCol<0 ){ + sqlite3ErrorMsg(pParse, "view %s is circularly defined", pTable->zName); + return 1; + } + assert( pTable->nCol>=0 ); + + /* If we get this far, it means we need to compute the table names. + ** Note that the call to sqlite3ResultSetOfSelect() will expand any + ** "*" elements in the results set of the view and will assign cursors + ** to the elements of the FROM clause. But we do not want these changes + ** to be permanent. So the computation is done on a copy of the SELECT + ** statement that defines the view. + */ + assert( pTable->pSelect ); + pSel = sqlite3SelectDup(pTable->pSelect); + if( pSel ){ + n = pParse->nTab; + sqlite3SrcListAssignCursors(pParse, pSel->pSrc); + pTable->nCol = -1; + pSelTab = sqlite3ResultSetOfSelect(pParse, 0, pSel); + pParse->nTab = n; + if( pSelTab ){ + assert( pTable->aCol==0 ); + pTable->nCol = pSelTab->nCol; + pTable->aCol = pSelTab->aCol; + pSelTab->nCol = 0; + pSelTab->aCol = 0; + sqlite3DeleteTable(0, pSelTab); + pTable->pSchema->flags |= DB_UnresetViews; + }else{ + pTable->nCol = 0; + nErr++; + } + sqlite3SelectDelete(pSel); + } else { + nErr++; + } +#endif /* SQLITE_OMIT_VIEW */ + return nErr; +} +#endif /* !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_VIRTUALTABLE) */ + +#ifndef SQLITE_OMIT_VIEW +/* +** Clear the column names from every VIEW in database idx. +*/ +static void sqliteViewResetAll(sqlite3 *db, int idx){ + HashElem *i; + if( !DbHasProperty(db, idx, DB_UnresetViews) ) return; + for(i=sqliteHashFirst(&db->aDb[idx].pSchema->tblHash); i;i=sqliteHashNext(i)){ + Table *pTab = sqliteHashData(i); + if( pTab->pSelect ){ + sqliteResetColumnNames(pTab); + } + } + DbClearProperty(db, idx, DB_UnresetViews); +} +#else +# define sqliteViewResetAll(A,B) +#endif /* SQLITE_OMIT_VIEW */ + +/* +** This function is called by the VDBE to adjust the internal schema +** used by SQLite when the btree layer moves a table root page. The +** root-page of a table or index in database iDb has changed from iFrom +** to iTo. +** +** Ticket #1728: The symbol table might still contain information +** on tables and/or indices that are the process of being deleted. +** If you are unlucky, one of those deleted indices or tables might +** have the same rootpage number as the real table or index that is +** being moved. So we cannot stop searching after the first match +** because the first match might be for one of the deleted indices +** or tables and not the table/index that is actually being moved. +** We must continue looping until all tables and indices with +** rootpage==iFrom have been converted to have a rootpage of iTo +** in order to be certain that we got the right one. +*/ +#ifndef SQLITE_OMIT_AUTOVACUUM +void sqlite3RootPageMoved(Db *pDb, int iFrom, int iTo){ + HashElem *pElem; + Hash *pHash; + + pHash = &pDb->pSchema->tblHash; + for(pElem=sqliteHashFirst(pHash); pElem; pElem=sqliteHashNext(pElem)){ + Table *pTab = sqliteHashData(pElem); + if( pTab->tnum==iFrom ){ + pTab->tnum = iTo; + } + } + pHash = &pDb->pSchema->idxHash; + for(pElem=sqliteHashFirst(pHash); pElem; pElem=sqliteHashNext(pElem)){ + Index *pIdx = sqliteHashData(pElem); + if( pIdx->tnum==iFrom ){ + pIdx->tnum = iTo; + } + } +} +#endif + +/* +** Write code to erase the table with root-page iTable from database iDb. +** Also write code to modify the sqlite_master table and internal schema +** if a root-page of another table is moved by the btree-layer whilst +** erasing iTable (this can happen with an auto-vacuum database). +*/ +static void destroyRootPage(Parse *pParse, int iTable, int iDb){ + Vdbe *v = sqlite3GetVdbe(pParse); + sqlite3VdbeAddOp(v, OP_Destroy, iTable, iDb); +#ifndef SQLITE_OMIT_AUTOVACUUM + /* OP_Destroy pushes an integer onto the stack. If this integer + ** is non-zero, then it is the root page number of a table moved to + ** location iTable. The following code modifies the sqlite_master table to + ** reflect this. + ** + ** The "#0" in the SQL is a special constant that means whatever value + ** is on the top of the stack. See sqlite3RegisterExpr(). + */ + sqlite3NestedParse(pParse, + "UPDATE %Q.%s SET rootpage=%d WHERE #0 AND rootpage=#0", + pParse->db->aDb[iDb].zName, SCHEMA_TABLE(iDb), iTable); +#endif +} + +/* +** Write VDBE code to erase table pTab and all associated indices on disk. +** Code to update the sqlite_master tables and internal schema definitions +** in case a root-page belonging to another table is moved by the btree layer +** is also added (this can happen with an auto-vacuum database). +*/ +static void destroyTable(Parse *pParse, Table *pTab){ +#ifdef SQLITE_OMIT_AUTOVACUUM + Index *pIdx; + int iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); + destroyRootPage(pParse, pTab->tnum, iDb); + for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ + destroyRootPage(pParse, pIdx->tnum, iDb); + } +#else + /* If the database may be auto-vacuum capable (if SQLITE_OMIT_AUTOVACUUM + ** is not defined), then it is important to call OP_Destroy on the + ** table and index root-pages in order, starting with the numerically + ** largest root-page number. This guarantees that none of the root-pages + ** to be destroyed is relocated by an earlier OP_Destroy. i.e. if the + ** following were coded: + ** + ** OP_Destroy 4 0 + ** ... + ** OP_Destroy 5 0 + ** + ** and root page 5 happened to be the largest root-page number in the + ** database, then root page 5 would be moved to page 4 by the + ** "OP_Destroy 4 0" opcode. The subsequent "OP_Destroy 5 0" would hit + ** a free-list page. + */ + int iTab = pTab->tnum; + int iDestroyed = 0; + + while( 1 ){ + Index *pIdx; + int iLargest = 0; + + if( iDestroyed==0 || iTabpIndex; pIdx; pIdx=pIdx->pNext){ + int iIdx = pIdx->tnum; + assert( pIdx->pSchema==pTab->pSchema ); + if( (iDestroyed==0 || (iIdxiLargest ){ + iLargest = iIdx; + } + } + if( iLargest==0 ){ + return; + }else{ + int iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); + destroyRootPage(pParse, iLargest, iDb); + iDestroyed = iLargest; + } + } +#endif +} + +/* +** This routine is called to do the work of a DROP TABLE statement. +** pName is the name of the table to be dropped. +*/ +void sqlite3DropTable(Parse *pParse, SrcList *pName, int isView, int noErr){ + Table *pTab; + Vdbe *v; + sqlite3 *db = pParse->db; + int iDb; + + if( pParse->nErr || sqlite3MallocFailed() ){ + goto exit_drop_table; + } + assert( pName->nSrc==1 ); + pTab = sqlite3LocateTable(pParse, pName->a[0].zName, pName->a[0].zDatabase); + + if( pTab==0 ){ + if( noErr ){ + sqlite3ErrorClear(pParse); + } + goto exit_drop_table; + } + iDb = sqlite3SchemaToIndex(db, pTab->pSchema); + assert( iDb>=0 && iDbnDb ); +#ifndef SQLITE_OMIT_AUTHORIZATION + { + int code; + const char *zTab = SCHEMA_TABLE(iDb); + const char *zDb = db->aDb[iDb].zName; + const char *zArg2 = 0; + if( sqlite3AuthCheck(pParse, SQLITE_DELETE, zTab, 0, zDb)){ + goto exit_drop_table; + } + if( isView ){ + if( !OMIT_TEMPDB && iDb==1 ){ + code = SQLITE_DROP_TEMP_VIEW; + }else{ + code = SQLITE_DROP_VIEW; + } +#ifndef SQLITE_OMIT_VIRTUALTABLE + }else if( IsVirtual(pTab) ){ + if( sqlite3ViewGetColumnNames(pParse, pTab) ){ + goto exit_drop_table; + } + code = SQLITE_DROP_VTABLE; + zArg2 = pTab->pMod->zName; +#endif + }else{ + if( !OMIT_TEMPDB && iDb==1 ){ + code = SQLITE_DROP_TEMP_TABLE; + }else{ + code = SQLITE_DROP_TABLE; + } + } + if( sqlite3AuthCheck(pParse, code, pTab->zName, zArg2, zDb) ){ + goto exit_drop_table; + } + if( sqlite3AuthCheck(pParse, SQLITE_DELETE, pTab->zName, 0, zDb) ){ + goto exit_drop_table; + } + } +#endif + if( pTab->readOnly || pTab==db->aDb[iDb].pSchema->pSeqTab ){ + sqlite3ErrorMsg(pParse, "table %s may not be dropped", pTab->zName); + goto exit_drop_table; + } + +#ifndef SQLITE_OMIT_VIEW + /* Ensure DROP TABLE is not used on a view, and DROP VIEW is not used + ** on a table. + */ + if( isView && pTab->pSelect==0 ){ + sqlite3ErrorMsg(pParse, "use DROP TABLE to delete table %s", pTab->zName); + goto exit_drop_table; + } + if( !isView && pTab->pSelect ){ + sqlite3ErrorMsg(pParse, "use DROP VIEW to delete view %s", pTab->zName); + goto exit_drop_table; + } +#endif + + /* Generate code to remove the table from the master table + ** on disk. + */ + v = sqlite3GetVdbe(pParse); + if( v ){ + Trigger *pTrigger; + Db *pDb = &db->aDb[iDb]; + sqlite3BeginWriteOperation(pParse, 0, iDb); + +#ifndef SQLITE_OMIT_VIRTUALTABLE + if( IsVirtual(pTab) ){ + Vdbe *v = sqlite3GetVdbe(pParse); + if( v ){ + sqlite3VdbeAddOp(v, OP_VBegin, 0, 0); + } + } +#endif + + /* Drop all triggers associated with the table being dropped. Code + ** is generated to remove entries from sqlite_master and/or + ** sqlite_temp_master if required. + */ + pTrigger = pTab->pTrigger; + while( pTrigger ){ + assert( pTrigger->pSchema==pTab->pSchema || + pTrigger->pSchema==db->aDb[1].pSchema ); + sqlite3DropTriggerPtr(pParse, pTrigger); + pTrigger = pTrigger->pNext; + } + +#ifndef SQLITE_OMIT_AUTOINCREMENT + /* Remove any entries of the sqlite_sequence table associated with + ** the table being dropped. This is done before the table is dropped + ** at the btree level, in case the sqlite_sequence table needs to + ** move as a result of the drop (can happen in auto-vacuum mode). + */ + if( pTab->autoInc ){ + sqlite3NestedParse(pParse, + "DELETE FROM %s.sqlite_sequence WHERE name=%Q", + pDb->zName, pTab->zName + ); + } +#endif + + /* Drop all SQLITE_MASTER table and index entries that refer to the + ** table. The program name loops through the master table and deletes + ** every row that refers to a table of the same name as the one being + ** dropped. Triggers are handled seperately because a trigger can be + ** created in the temp database that refers to a table in another + ** database. + */ + sqlite3NestedParse(pParse, + "DELETE FROM %Q.%s WHERE tbl_name=%Q and type!='trigger'", + pDb->zName, SCHEMA_TABLE(iDb), pTab->zName); + if( !isView && !IsVirtual(pTab) ){ + destroyTable(pParse, pTab); + } + + /* Remove the table entry from SQLite's internal schema and modify + ** the schema cookie. + */ + if( IsVirtual(pTab) ){ + sqlite3VdbeOp3(v, OP_VDestroy, iDb, 0, pTab->zName, 0); + } + sqlite3VdbeOp3(v, OP_DropTable, iDb, 0, pTab->zName, 0); + sqlite3ChangeCookie(db, v, iDb); + } + sqliteViewResetAll(db, iDb); + +exit_drop_table: + sqlite3SrcListDelete(pName); +} + +/* +** This routine is called to create a new foreign key on the table +** currently under construction. pFromCol determines which columns +** in the current table point to the foreign key. If pFromCol==0 then +** connect the key to the last column inserted. pTo is the name of +** the table referred to. pToCol is a list of tables in the other +** pTo table that the foreign key points to. flags contains all +** information about the conflict resolution algorithms specified +** in the ON DELETE, ON UPDATE and ON INSERT clauses. +** +** An FKey structure is created and added to the table currently +** under construction in the pParse->pNewTable field. The new FKey +** is not linked into db->aFKey at this point - that does not happen +** until sqlite3EndTable(). +** +** The foreign key is set for IMMEDIATE processing. A subsequent call +** to sqlite3DeferForeignKey() might change this to DEFERRED. +*/ +void sqlite3CreateForeignKey( + Parse *pParse, /* Parsing context */ + ExprList *pFromCol, /* Columns in this table that point to other table */ + Token *pTo, /* Name of the other table */ + ExprList *pToCol, /* Columns in the other table */ + int flags /* Conflict resolution algorithms. */ +){ +#ifndef SQLITE_OMIT_FOREIGN_KEY + FKey *pFKey = 0; + Table *p = pParse->pNewTable; + int nByte; + int i; + int nCol; + char *z; + + assert( pTo!=0 ); + if( p==0 || pParse->nErr || IN_DECLARE_VTAB ) goto fk_end; + if( pFromCol==0 ){ + int iCol = p->nCol-1; + if( iCol<0 ) goto fk_end; + if( pToCol && pToCol->nExpr!=1 ){ + sqlite3ErrorMsg(pParse, "foreign key on %s" + " should reference only one column of table %T", + p->aCol[iCol].zName, pTo); + goto fk_end; + } + nCol = 1; + }else if( pToCol && pToCol->nExpr!=pFromCol->nExpr ){ + sqlite3ErrorMsg(pParse, + "number of columns in foreign key does not match the number of " + "columns in the referenced table"); + goto fk_end; + }else{ + nCol = pFromCol->nExpr; + } + nByte = sizeof(*pFKey) + nCol*sizeof(pFKey->aCol[0]) + pTo->n + 1; + if( pToCol ){ + for(i=0; inExpr; i++){ + nByte += strlen(pToCol->a[i].zName) + 1; + } + } + pFKey = sqliteMalloc( nByte ); + if( pFKey==0 ) goto fk_end; + pFKey->pFrom = p; + pFKey->pNextFrom = p->pFKey; + z = (char*)&pFKey[1]; + pFKey->aCol = (struct sColMap*)z; + z += sizeof(struct sColMap)*nCol; + pFKey->zTo = z; + memcpy(z, pTo->z, pTo->n); + z[pTo->n] = 0; + z += pTo->n+1; + pFKey->pNextTo = 0; + pFKey->nCol = nCol; + if( pFromCol==0 ){ + pFKey->aCol[0].iFrom = p->nCol-1; + }else{ + for(i=0; inCol; j++){ + if( sqlite3StrICmp(p->aCol[j].zName, pFromCol->a[i].zName)==0 ){ + pFKey->aCol[i].iFrom = j; + break; + } + } + if( j>=p->nCol ){ + sqlite3ErrorMsg(pParse, + "unknown column \"%s\" in foreign key definition", + pFromCol->a[i].zName); + goto fk_end; + } + } + } + if( pToCol ){ + for(i=0; ia[i].zName); + pFKey->aCol[i].zCol = z; + memcpy(z, pToCol->a[i].zName, n); + z[n] = 0; + z += n+1; + } + } + pFKey->isDeferred = 0; + pFKey->deleteConf = flags & 0xff; + pFKey->updateConf = (flags >> 8 ) & 0xff; + pFKey->insertConf = (flags >> 16 ) & 0xff; + + /* Link the foreign key to the table as the last step. + */ + p->pFKey = pFKey; + pFKey = 0; + +fk_end: + sqliteFree(pFKey); +#endif /* !defined(SQLITE_OMIT_FOREIGN_KEY) */ + sqlite3ExprListDelete(pFromCol); + sqlite3ExprListDelete(pToCol); +} + +/* +** This routine is called when an INITIALLY IMMEDIATE or INITIALLY DEFERRED +** clause is seen as part of a foreign key definition. The isDeferred +** parameter is 1 for INITIALLY DEFERRED and 0 for INITIALLY IMMEDIATE. +** The behavior of the most recently created foreign key is adjusted +** accordingly. +*/ +void sqlite3DeferForeignKey(Parse *pParse, int isDeferred){ +#ifndef SQLITE_OMIT_FOREIGN_KEY + Table *pTab; + FKey *pFKey; + if( (pTab = pParse->pNewTable)==0 || (pFKey = pTab->pFKey)==0 ) return; + pFKey->isDeferred = isDeferred; +#endif +} + +/* +** Generate code that will erase and refill index *pIdx. This is +** used to initialize a newly created index or to recompute the +** content of an index in response to a REINDEX command. +** +** if memRootPage is not negative, it means that the index is newly +** created. The memory cell specified by memRootPage contains the +** root page number of the index. If memRootPage is negative, then +** the index already exists and must be cleared before being refilled and +** the root page number of the index is taken from pIndex->tnum. +*/ +static void sqlite3RefillIndex(Parse *pParse, Index *pIndex, int memRootPage){ + Table *pTab = pIndex->pTable; /* The table that is indexed */ + int iTab = pParse->nTab; /* Btree cursor used for pTab */ + int iIdx = pParse->nTab+1; /* Btree cursor used for pIndex */ + int addr1; /* Address of top of loop */ + int tnum; /* Root page of index */ + Vdbe *v; /* Generate code into this virtual machine */ + KeyInfo *pKey; /* KeyInfo for index */ + int iDb = sqlite3SchemaToIndex(pParse->db, pIndex->pSchema); + +#ifndef SQLITE_OMIT_AUTHORIZATION + if( sqlite3AuthCheck(pParse, SQLITE_REINDEX, pIndex->zName, 0, + pParse->db->aDb[iDb].zName ) ){ + return; + } +#endif + + /* Require a write-lock on the table to perform this operation */ + sqlite3TableLock(pParse, iDb, pTab->tnum, 1, pTab->zName); + + v = sqlite3GetVdbe(pParse); + if( v==0 ) return; + if( memRootPage>=0 ){ + sqlite3VdbeAddOp(v, OP_MemLoad, memRootPage, 0); + tnum = 0; + }else{ + tnum = pIndex->tnum; + sqlite3VdbeAddOp(v, OP_Clear, tnum, iDb); + } + sqlite3VdbeAddOp(v, OP_Integer, iDb, 0); + pKey = sqlite3IndexKeyinfo(pParse, pIndex); + sqlite3VdbeOp3(v, OP_OpenWrite, iIdx, tnum, (char *)pKey, P3_KEYINFO_HANDOFF); + sqlite3OpenTable(pParse, iTab, iDb, pTab, OP_OpenRead); + addr1 = sqlite3VdbeAddOp(v, OP_Rewind, iTab, 0); + sqlite3GenerateIndexKey(v, pIndex, iTab); + if( pIndex->onError!=OE_None ){ + int curaddr = sqlite3VdbeCurrentAddr(v); + int addr2 = curaddr+4; + sqlite3VdbeChangeP2(v, curaddr-1, addr2); + sqlite3VdbeAddOp(v, OP_Rowid, iTab, 0); + sqlite3VdbeAddOp(v, OP_AddImm, 1, 0); + sqlite3VdbeAddOp(v, OP_IsUnique, iIdx, addr2); + sqlite3VdbeOp3(v, OP_Halt, SQLITE_CONSTRAINT, OE_Abort, + "indexed columns are not unique", P3_STATIC); + assert( addr2==sqlite3VdbeCurrentAddr(v) ); + } + sqlite3VdbeAddOp(v, OP_IdxInsert, iIdx, 0); + sqlite3VdbeAddOp(v, OP_Next, iTab, addr1+1); + sqlite3VdbeJumpHere(v, addr1); + sqlite3VdbeAddOp(v, OP_Close, iTab, 0); + sqlite3VdbeAddOp(v, OP_Close, iIdx, 0); +} + +/* +** Create a new index for an SQL table. pName1.pName2 is the name of the index +** and pTblList is the name of the table that is to be indexed. Both will +** be NULL for a primary key or an index that is created to satisfy a +** UNIQUE constraint. If pTable and pIndex are NULL, use pParse->pNewTable +** as the table to be indexed. pParse->pNewTable is a table that is +** currently being constructed by a CREATE TABLE statement. +** +** pList is a list of columns to be indexed. pList will be NULL if this +** is a primary key or unique-constraint on the most recent column added +** to the table currently under construction. +*/ +void sqlite3CreateIndex( + Parse *pParse, /* All information about this parse */ + Token *pName1, /* First part of index name. May be NULL */ + Token *pName2, /* Second part of index name. May be NULL */ + SrcList *pTblName, /* Table to index. Use pParse->pNewTable if 0 */ + ExprList *pList, /* A list of columns to be indexed */ + int onError, /* OE_Abort, OE_Ignore, OE_Replace, or OE_None */ + Token *pStart, /* The CREATE token that begins a CREATE TABLE statement */ + Token *pEnd, /* The ")" that closes the CREATE INDEX statement */ + int sortOrder, /* Sort order of primary key when pList==NULL */ + int ifNotExist /* Omit error if index already exists */ +){ + Table *pTab = 0; /* Table to be indexed */ + Index *pIndex = 0; /* The index to be created */ + char *zName = 0; /* Name of the index */ + int nName; /* Number of characters in zName */ + int i, j; + Token nullId; /* Fake token for an empty ID list */ + DbFixer sFix; /* For assigning database names to pTable */ + int sortOrderMask; /* 1 to honor DESC in index. 0 to ignore. */ + sqlite3 *db = pParse->db; + Db *pDb; /* The specific table containing the indexed database */ + int iDb; /* Index of the database that is being written */ + Token *pName = 0; /* Unqualified name of the index to create */ + struct ExprList_item *pListItem; /* For looping over pList */ + int nCol; + int nExtra = 0; + char *zExtra; + + if( pParse->nErr || sqlite3MallocFailed() || IN_DECLARE_VTAB ){ + goto exit_create_index; + } + + /* + ** Find the table that is to be indexed. Return early if not found. + */ + if( pTblName!=0 ){ + + /* Use the two-part index name to determine the database + ** to search for the table. 'Fix' the table name to this db + ** before looking up the table. + */ + assert( pName1 && pName2 ); + iDb = sqlite3TwoPartName(pParse, pName1, pName2, &pName); + if( iDb<0 ) goto exit_create_index; + +#ifndef SQLITE_OMIT_TEMPDB + /* If the index name was unqualified, check if the the table + ** is a temp table. If so, set the database to 1. + */ + pTab = sqlite3SrcListLookup(pParse, pTblName); + if( pName2 && pName2->n==0 && pTab && pTab->pSchema==db->aDb[1].pSchema ){ + iDb = 1; + } +#endif + + if( sqlite3FixInit(&sFix, pParse, iDb, "index", pName) && + sqlite3FixSrcList(&sFix, pTblName) + ){ + /* Because the parser constructs pTblName from a single identifier, + ** sqlite3FixSrcList can never fail. */ + assert(0); + } + pTab = sqlite3LocateTable(pParse, pTblName->a[0].zName, + pTblName->a[0].zDatabase); + if( !pTab ) goto exit_create_index; + assert( db->aDb[iDb].pSchema==pTab->pSchema ); + }else{ + assert( pName==0 ); + pTab = pParse->pNewTable; + if( !pTab ) goto exit_create_index; + iDb = sqlite3SchemaToIndex(db, pTab->pSchema); + } + pDb = &db->aDb[iDb]; + + if( pTab==0 || pParse->nErr ) goto exit_create_index; + if( pTab->readOnly ){ + sqlite3ErrorMsg(pParse, "table %s may not be indexed", pTab->zName); + goto exit_create_index; + } +#ifndef SQLITE_OMIT_VIEW + if( pTab->pSelect ){ + sqlite3ErrorMsg(pParse, "views may not be indexed"); + goto exit_create_index; + } +#endif +#ifndef SQLITE_OMIT_VIRTUALTABLE + if( IsVirtual(pTab) ){ + sqlite3ErrorMsg(pParse, "virtual tables may not be indexed"); + goto exit_create_index; + } +#endif + + /* + ** Find the name of the index. Make sure there is not already another + ** index or table with the same name. + ** + ** Exception: If we are reading the names of permanent indices from the + ** sqlite_master table (because some other process changed the schema) and + ** one of the index names collides with the name of a temporary table or + ** index, then we will continue to process this index. + ** + ** If pName==0 it means that we are + ** dealing with a primary key or UNIQUE constraint. We have to invent our + ** own name. + */ + if( pName ){ + zName = sqlite3NameFromToken(pName); + if( SQLITE_OK!=sqlite3ReadSchema(pParse) ) goto exit_create_index; + if( zName==0 ) goto exit_create_index; + if( SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){ + goto exit_create_index; + } + if( !db->init.busy ){ + if( SQLITE_OK!=sqlite3ReadSchema(pParse) ) goto exit_create_index; + if( sqlite3FindIndex(db, zName, pDb->zName)!=0 ){ + if( !ifNotExist ){ + sqlite3ErrorMsg(pParse, "index %s already exists", zName); + } + goto exit_create_index; + } + if( sqlite3FindTable(db, zName, 0)!=0 ){ + sqlite3ErrorMsg(pParse, "there is already a table named %s", zName); + goto exit_create_index; + } + } + }else{ + char zBuf[30]; + int n; + Index *pLoop; + for(pLoop=pTab->pIndex, n=1; pLoop; pLoop=pLoop->pNext, n++){} + sprintf(zBuf,"_%d",n); + zName = 0; + sqlite3SetString(&zName, "sqlite_autoindex_", pTab->zName, zBuf, (char*)0); + if( zName==0 ) goto exit_create_index; + } + + /* Check for authorization to create an index. + */ +#ifndef SQLITE_OMIT_AUTHORIZATION + { + const char *zDb = pDb->zName; + if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(iDb), 0, zDb) ){ + goto exit_create_index; + } + i = SQLITE_CREATE_INDEX; + if( !OMIT_TEMPDB && iDb==1 ) i = SQLITE_CREATE_TEMP_INDEX; + if( sqlite3AuthCheck(pParse, i, zName, pTab->zName, zDb) ){ + goto exit_create_index; + } + } +#endif + + /* If pList==0, it means this routine was called to make a primary + ** key out of the last column added to the table under construction. + ** So create a fake list to simulate this. + */ + if( pList==0 ){ + nullId.z = (u8*)pTab->aCol[pTab->nCol-1].zName; + nullId.n = strlen((char*)nullId.z); + pList = sqlite3ExprListAppend(0, 0, &nullId); + if( pList==0 ) goto exit_create_index; + pList->a[0].sortOrder = sortOrder; + } + + /* Figure out how many bytes of space are required to store explicitly + ** specified collation sequence names. + */ + for(i=0; inExpr; i++){ + Expr *pExpr = pList->a[i].pExpr; + if( pExpr ){ + nExtra += (1 + strlen(pExpr->pColl->zName)); + } + } + + /* + ** Allocate the index structure. + */ + nName = strlen(zName); + nCol = pList->nExpr; + pIndex = sqliteMalloc( + sizeof(Index) + /* Index structure */ + sizeof(int)*nCol + /* Index.aiColumn */ + sizeof(int)*(nCol+1) + /* Index.aiRowEst */ + sizeof(char *)*nCol + /* Index.azColl */ + sizeof(u8)*nCol + /* Index.aSortOrder */ + nName + 1 + /* Index.zName */ + nExtra /* Collation sequence names */ + ); + if( sqlite3MallocFailed() ) goto exit_create_index; + pIndex->azColl = (char**)(&pIndex[1]); + pIndex->aiColumn = (int *)(&pIndex->azColl[nCol]); + pIndex->aiRowEst = (unsigned *)(&pIndex->aiColumn[nCol]); + pIndex->aSortOrder = (u8 *)(&pIndex->aiRowEst[nCol+1]); + pIndex->zName = (char *)(&pIndex->aSortOrder[nCol]); + zExtra = (char *)(&pIndex->zName[nName+1]); + strcpy(pIndex->zName, zName); + pIndex->pTable = pTab; + pIndex->nColumn = pList->nExpr; + pIndex->onError = onError; + pIndex->autoIndex = pName==0; + pIndex->pSchema = db->aDb[iDb].pSchema; + + /* Check to see if we should honor DESC requests on index columns + */ + if( pDb->pSchema->file_format>=4 ){ + sortOrderMask = -1; /* Honor DESC */ + }else{ + sortOrderMask = 0; /* Ignore DESC */ + } + + /* Scan the names of the columns of the table to be indexed and + ** load the column indices into the Index structure. Report an error + ** if any column is not found. + */ + for(i=0, pListItem=pList->a; inExpr; i++, pListItem++){ + const char *zColName = pListItem->zName; + Column *pTabCol; + int requestedSortOrder; + char *zColl; /* Collation sequence */ + + for(j=0, pTabCol=pTab->aCol; jnCol; j++, pTabCol++){ + if( sqlite3StrICmp(zColName, pTabCol->zName)==0 ) break; + } + if( j>=pTab->nCol ){ + sqlite3ErrorMsg(pParse, "table %s has no column named %s", + pTab->zName, zColName); + goto exit_create_index; + } + pIndex->aiColumn[i] = j; + if( pListItem->pExpr ){ + assert( pListItem->pExpr->pColl ); + zColl = zExtra; + strcpy(zExtra, pListItem->pExpr->pColl->zName); + zExtra += (strlen(zColl) + 1); + }else{ + zColl = pTab->aCol[j].zColl; + if( !zColl ){ + zColl = db->pDfltColl->zName; + } + } + if( !db->init.busy && !sqlite3LocateCollSeq(pParse, zColl, -1) ){ + goto exit_create_index; + } + pIndex->azColl[i] = zColl; + requestedSortOrder = pListItem->sortOrder & sortOrderMask; + pIndex->aSortOrder[i] = requestedSortOrder; + } + sqlite3DefaultRowEst(pIndex); + + if( pTab==pParse->pNewTable ){ + /* This routine has been called to create an automatic index as a + ** result of a PRIMARY KEY or UNIQUE clause on a column definition, or + ** a PRIMARY KEY or UNIQUE clause following the column definitions. + ** i.e. one of: + ** + ** CREATE TABLE t(x PRIMARY KEY, y); + ** CREATE TABLE t(x, y, UNIQUE(x, y)); + ** + ** Either way, check to see if the table already has such an index. If + ** so, don't bother creating this one. This only applies to + ** automatically created indices. Users can do as they wish with + ** explicit indices. + */ + Index *pIdx; + for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ + int k; + assert( pIdx->onError!=OE_None ); + assert( pIdx->autoIndex ); + assert( pIndex->onError!=OE_None ); + + if( pIdx->nColumn!=pIndex->nColumn ) continue; + for(k=0; knColumn; k++){ + const char *z1 = pIdx->azColl[k]; + const char *z2 = pIndex->azColl[k]; + if( pIdx->aiColumn[k]!=pIndex->aiColumn[k] ) break; + if( pIdx->aSortOrder[k]!=pIndex->aSortOrder[k] ) break; + if( z1!=z2 && sqlite3StrICmp(z1, z2) ) break; + } + if( k==pIdx->nColumn ){ + if( pIdx->onError!=pIndex->onError ){ + /* This constraint creates the same index as a previous + ** constraint specified somewhere in the CREATE TABLE statement. + ** However the ON CONFLICT clauses are different. If both this + ** constraint and the previous equivalent constraint have explicit + ** ON CONFLICT clauses this is an error. Otherwise, use the + ** explicitly specified behaviour for the index. + */ + if( !(pIdx->onError==OE_Default || pIndex->onError==OE_Default) ){ + sqlite3ErrorMsg(pParse, + "conflicting ON CONFLICT clauses specified", 0); + } + if( pIdx->onError==OE_Default ){ + pIdx->onError = pIndex->onError; + } + } + goto exit_create_index; + } + } + } + + /* Link the new Index structure to its table and to the other + ** in-memory database structures. + */ + if( db->init.busy ){ + Index *p; + p = sqlite3HashInsert(&pIndex->pSchema->idxHash, + pIndex->zName, strlen(pIndex->zName)+1, pIndex); + if( p ){ + assert( p==pIndex ); /* Malloc must have failed */ + goto exit_create_index; + } + db->flags |= SQLITE_InternChanges; + if( pTblName!=0 ){ + pIndex->tnum = db->init.newTnum; + } + } + + /* If the db->init.busy is 0 then create the index on disk. This + ** involves writing the index into the master table and filling in the + ** index with the current table contents. + ** + ** The db->init.busy is 0 when the user first enters a CREATE INDEX + ** command. db->init.busy is 1 when a database is opened and + ** CREATE INDEX statements are read out of the master table. In + ** the latter case the index already exists on disk, which is why + ** we don't want to recreate it. + ** + ** If pTblName==0 it means this index is generated as a primary key + ** or UNIQUE constraint of a CREATE TABLE statement. Since the table + ** has just been created, it contains no data and the index initialization + ** step can be skipped. + */ + else if( db->init.busy==0 ){ + Vdbe *v; + char *zStmt; + int iMem = pParse->nMem++; + + v = sqlite3GetVdbe(pParse); + if( v==0 ) goto exit_create_index; + + + /* Create the rootpage for the index + */ + sqlite3BeginWriteOperation(pParse, 1, iDb); + sqlite3VdbeAddOp(v, OP_CreateIndex, iDb, 0); + sqlite3VdbeAddOp(v, OP_MemStore, iMem, 0); + + /* Gather the complete text of the CREATE INDEX statement into + ** the zStmt variable + */ + if( pStart && pEnd ){ + /* A named index with an explicit CREATE INDEX statement */ + zStmt = sqlite3MPrintf("CREATE%s INDEX %.*s", + onError==OE_None ? "" : " UNIQUE", + pEnd->z - pName->z + 1, + pName->z); + }else{ + /* An automatic index created by a PRIMARY KEY or UNIQUE constraint */ + /* zStmt = sqlite3MPrintf(""); */ + zStmt = 0; + } + + /* Add an entry in sqlite_master for this index + */ + sqlite3NestedParse(pParse, + "INSERT INTO %Q.%s VALUES('index',%Q,%Q,#0,%Q);", + db->aDb[iDb].zName, SCHEMA_TABLE(iDb), + pIndex->zName, + pTab->zName, + zStmt + ); + sqlite3VdbeAddOp(v, OP_Pop, 1, 0); + sqliteFree(zStmt); + + /* Fill the index with data and reparse the schema. Code an OP_Expire + ** to invalidate all pre-compiled statements. + */ + if( pTblName ){ + sqlite3RefillIndex(pParse, pIndex, iMem); + sqlite3ChangeCookie(db, v, iDb); + sqlite3VdbeOp3(v, OP_ParseSchema, iDb, 0, + sqlite3MPrintf("name='%q'", pIndex->zName), P3_DYNAMIC); + sqlite3VdbeAddOp(v, OP_Expire, 0, 0); + } + } + + /* When adding an index to the list of indices for a table, make + ** sure all indices labeled OE_Replace come after all those labeled + ** OE_Ignore. This is necessary for the correct operation of UPDATE + ** and INSERT. + */ + if( db->init.busy || pTblName==0 ){ + if( onError!=OE_Replace || pTab->pIndex==0 + || pTab->pIndex->onError==OE_Replace){ + pIndex->pNext = pTab->pIndex; + pTab->pIndex = pIndex; + }else{ + Index *pOther = pTab->pIndex; + while( pOther->pNext && pOther->pNext->onError!=OE_Replace ){ + pOther = pOther->pNext; + } + pIndex->pNext = pOther->pNext; + pOther->pNext = pIndex; + } + pIndex = 0; + } + + /* Clean up before exiting */ +exit_create_index: + if( pIndex ){ + freeIndex(pIndex); + } + sqlite3ExprListDelete(pList); + sqlite3SrcListDelete(pTblName); + sqliteFree(zName); + return; +} + +/* +** Generate code to make sure the file format number is at least minFormat. +** The generated code will increase the file format number if necessary. +*/ +void sqlite3MinimumFileFormat(Parse *pParse, int iDb, int minFormat){ + Vdbe *v; + v = sqlite3GetVdbe(pParse); + if( v ){ + sqlite3VdbeAddOp(v, OP_ReadCookie, iDb, 1); + sqlite3VdbeAddOp(v, OP_Integer, minFormat, 0); + sqlite3VdbeAddOp(v, OP_Ge, 0, sqlite3VdbeCurrentAddr(v)+3); + sqlite3VdbeAddOp(v, OP_Integer, minFormat, 0); + sqlite3VdbeAddOp(v, OP_SetCookie, iDb, 1); + } +} + +/* +** Fill the Index.aiRowEst[] array with default information - information +** to be used when we have not run the ANALYZE command. +** +** aiRowEst[0] is suppose to contain the number of elements in the index. +** Since we do not know, guess 1 million. aiRowEst[1] is an estimate of the +** number of rows in the table that match any particular value of the +** first column of the index. aiRowEst[2] is an estimate of the number +** of rows that match any particular combiniation of the first 2 columns +** of the index. And so forth. It must always be the case that +* +** aiRowEst[N]<=aiRowEst[N-1] +** aiRowEst[N]>=1 +** +** Apart from that, we have little to go on besides intuition as to +** how aiRowEst[] should be initialized. The numbers generated here +** are based on typical values found in actual indices. +*/ +void sqlite3DefaultRowEst(Index *pIdx){ + unsigned *a = pIdx->aiRowEst; + int i; + assert( a!=0 ); + a[0] = 1000000; + for(i=pIdx->nColumn; i>=5; i--){ + a[i] = 5; + } + while( i>=1 ){ + a[i] = 11 - i; + i--; + } + if( pIdx->onError!=OE_None ){ + a[pIdx->nColumn] = 1; + } +} + +/* +** This routine will drop an existing named index. This routine +** implements the DROP INDEX statement. +*/ +void sqlite3DropIndex(Parse *pParse, SrcList *pName, int ifExists){ + Index *pIndex; + Vdbe *v; + sqlite3 *db = pParse->db; + int iDb; + + if( pParse->nErr || sqlite3MallocFailed() ){ + goto exit_drop_index; + } + assert( pName->nSrc==1 ); + if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){ + goto exit_drop_index; + } + pIndex = sqlite3FindIndex(db, pName->a[0].zName, pName->a[0].zDatabase); + if( pIndex==0 ){ + if( !ifExists ){ + sqlite3ErrorMsg(pParse, "no such index: %S", pName, 0); + } + pParse->checkSchema = 1; + goto exit_drop_index; + } + if( pIndex->autoIndex ){ + sqlite3ErrorMsg(pParse, "index associated with UNIQUE " + "or PRIMARY KEY constraint cannot be dropped", 0); + goto exit_drop_index; + } + iDb = sqlite3SchemaToIndex(db, pIndex->pSchema); +#ifndef SQLITE_OMIT_AUTHORIZATION + { + int code = SQLITE_DROP_INDEX; + Table *pTab = pIndex->pTable; + const char *zDb = db->aDb[iDb].zName; + const char *zTab = SCHEMA_TABLE(iDb); + if( sqlite3AuthCheck(pParse, SQLITE_DELETE, zTab, 0, zDb) ){ + goto exit_drop_index; + } + if( !OMIT_TEMPDB && iDb ) code = SQLITE_DROP_TEMP_INDEX; + if( sqlite3AuthCheck(pParse, code, pIndex->zName, pTab->zName, zDb) ){ + goto exit_drop_index; + } + } +#endif + + /* Generate code to remove the index and from the master table */ + v = sqlite3GetVdbe(pParse); + if( v ){ + sqlite3NestedParse(pParse, + "DELETE FROM %Q.%s WHERE name=%Q", + db->aDb[iDb].zName, SCHEMA_TABLE(iDb), + pIndex->zName + ); + sqlite3ChangeCookie(db, v, iDb); + destroyRootPage(pParse, pIndex->tnum, iDb); + sqlite3VdbeOp3(v, OP_DropIndex, iDb, 0, pIndex->zName, 0); + } + +exit_drop_index: + sqlite3SrcListDelete(pName); +} + +/* +** ppArray points into a structure where there is an array pointer +** followed by two integers. The first integer is the +** number of elements in the structure array. The second integer +** is the number of allocated slots in the array. +** +** In other words, the structure looks something like this: +** +** struct Example1 { +** struct subElem *aEntry; +** int nEntry; +** int nAlloc; +** } +** +** The pnEntry parameter points to the equivalent of Example1.nEntry. +** +** This routine allocates a new slot in the array, zeros it out, +** and returns its index. If malloc fails a negative number is returned. +** +** szEntry is the sizeof of a single array entry. initSize is the +** number of array entries allocated on the initial allocation. +*/ +int sqlite3ArrayAllocate(void **ppArray, int szEntry, int initSize){ + char *p; + int *an = (int*)&ppArray[1]; + if( an[0]>=an[1] ){ + void *pNew; + int newSize; + newSize = an[1]*2 + initSize; + pNew = sqliteRealloc(*ppArray, newSize*szEntry); + if( pNew==0 ){ + return -1; + } + an[1] = newSize; + *ppArray = pNew; + } + p = *ppArray; + memset(&p[an[0]*szEntry], 0, szEntry); + return an[0]++; +} + +/* +** Append a new element to the given IdList. Create a new IdList if +** need be. +** +** A new IdList is returned, or NULL if malloc() fails. +*/ +IdList *sqlite3IdListAppend(IdList *pList, Token *pToken){ + int i; + if( pList==0 ){ + pList = sqliteMalloc( sizeof(IdList) ); + if( pList==0 ) return 0; + pList->nAlloc = 0; + } + i = sqlite3ArrayAllocate((void**)&pList->a, sizeof(pList->a[0]), 5); + if( i<0 ){ + sqlite3IdListDelete(pList); + return 0; + } + pList->a[i].zName = sqlite3NameFromToken(pToken); + return pList; +} + +/* +** Delete an IdList. +*/ +void sqlite3IdListDelete(IdList *pList){ + int i; + if( pList==0 ) return; + for(i=0; inId; i++){ + sqliteFree(pList->a[i].zName); + } + sqliteFree(pList->a); + sqliteFree(pList); +} + +/* +** Return the index in pList of the identifier named zId. Return -1 +** if not found. +*/ +int sqlite3IdListIndex(IdList *pList, const char *zName){ + int i; + if( pList==0 ) return -1; + for(i=0; inId; i++){ + if( sqlite3StrICmp(pList->a[i].zName, zName)==0 ) return i; + } + return -1; +} + +/* +** Append a new table name to the given SrcList. Create a new SrcList if +** need be. A new entry is created in the SrcList even if pToken is NULL. +** +** A new SrcList is returned, or NULL if malloc() fails. +** +** If pDatabase is not null, it means that the table has an optional +** database name prefix. Like this: "database.table". The pDatabase +** points to the table name and the pTable points to the database name. +** The SrcList.a[].zName field is filled with the table name which might +** come from pTable (if pDatabase is NULL) or from pDatabase. +** SrcList.a[].zDatabase is filled with the database name from pTable, +** or with NULL if no database is specified. +** +** In other words, if call like this: +** +** sqlite3SrcListAppend(A,B,0); +** +** Then B is a table name and the database name is unspecified. If called +** like this: +** +** sqlite3SrcListAppend(A,B,C); +** +** Then C is the table name and B is the database name. +*/ +SrcList *sqlite3SrcListAppend(SrcList *pList, Token *pTable, Token *pDatabase){ + struct SrcList_item *pItem; + if( pList==0 ){ + pList = sqliteMalloc( sizeof(SrcList) ); + if( pList==0 ) return 0; + pList->nAlloc = 1; + } + if( pList->nSrc>=pList->nAlloc ){ + SrcList *pNew; + pList->nAlloc *= 2; + pNew = sqliteRealloc(pList, + sizeof(*pList) + (pList->nAlloc-1)*sizeof(pList->a[0]) ); + if( pNew==0 ){ + sqlite3SrcListDelete(pList); + return 0; + } + pList = pNew; + } + pItem = &pList->a[pList->nSrc]; + memset(pItem, 0, sizeof(pList->a[0])); + if( pDatabase && pDatabase->z==0 ){ + pDatabase = 0; + } + if( pDatabase && pTable ){ + Token *pTemp = pDatabase; + pDatabase = pTable; + pTable = pTemp; + } + pItem->zName = sqlite3NameFromToken(pTable); + pItem->zDatabase = sqlite3NameFromToken(pDatabase); + pItem->iCursor = -1; + pItem->isPopulated = 0; + pList->nSrc++; + return pList; +} + +/* +** Assign cursors to all tables in a SrcList +*/ +void sqlite3SrcListAssignCursors(Parse *pParse, SrcList *pList){ + int i; + struct SrcList_item *pItem; + assert(pList || sqlite3MallocFailed() ); + if( pList ){ + for(i=0, pItem=pList->a; inSrc; i++, pItem++){ + if( pItem->iCursor>=0 ) break; + pItem->iCursor = pParse->nTab++; + if( pItem->pSelect ){ + sqlite3SrcListAssignCursors(pParse, pItem->pSelect->pSrc); + } + } + } +} + +/* +** Delete an entire SrcList including all its substructure. +*/ +void sqlite3SrcListDelete(SrcList *pList){ + int i; + struct SrcList_item *pItem; + if( pList==0 ) return; + for(pItem=pList->a, i=0; inSrc; i++, pItem++){ + sqliteFree(pItem->zDatabase); + sqliteFree(pItem->zName); + sqliteFree(pItem->zAlias); + sqlite3DeleteTable(0, pItem->pTab); + sqlite3SelectDelete(pItem->pSelect); + sqlite3ExprDelete(pItem->pOn); + sqlite3IdListDelete(pItem->pUsing); + } + sqliteFree(pList); +} + +/* +** This routine is called by the parser to add a new term to the +** end of a growing FROM clause. The "p" parameter is the part of +** the FROM clause that has already been constructed. "p" is NULL +** if this is the first term of the FROM clause. pTable and pDatabase +** are the name of the table and database named in the FROM clause term. +** pDatabase is NULL if the database name qualifier is missing - the +** usual case. If the term has a alias, then pAlias points to the +** alias token. If the term is a subquery, then pSubquery is the +** SELECT statement that the subquery encodes. The pTable and +** pDatabase parameters are NULL for subqueries. The pOn and pUsing +** parameters are the content of the ON and USING clauses. +** +** Return a new SrcList which encodes is the FROM with the new +** term added. +*/ +SrcList *sqlite3SrcListAppendFromTerm( + SrcList *p, /* The left part of the FROM clause already seen */ + Token *pTable, /* Name of the table to add to the FROM clause */ + Token *pDatabase, /* Name of the database containing pTable */ + Token *pAlias, /* The right-hand side of the AS subexpression */ + Select *pSubquery, /* A subquery used in place of a table name */ + Expr *pOn, /* The ON clause of a join */ + IdList *pUsing /* The USING clause of a join */ +){ + struct SrcList_item *pItem; + p = sqlite3SrcListAppend(p, pTable, pDatabase); + if( p==0 || p->nSrc==0 ){ + sqlite3ExprDelete(pOn); + sqlite3IdListDelete(pUsing); + sqlite3SelectDelete(pSubquery); + return p; + } + pItem = &p->a[p->nSrc-1]; + if( pAlias && pAlias->n ){ + pItem->zAlias = sqlite3NameFromToken(pAlias); + } + pItem->pSelect = pSubquery; + pItem->pOn = pOn; + pItem->pUsing = pUsing; + return p; +} + +/* +** When building up a FROM clause in the parser, the join operator +** is initially attached to the left operand. But the code generator +** expects the join operator to be on the right operand. This routine +** Shifts all join operators from left to right for an entire FROM +** clause. +** +** Example: Suppose the join is like this: +** +** A natural cross join B +** +** The operator is "natural cross join". The A and B operands are stored +** in p->a[0] and p->a[1], respectively. The parser initially stores the +** operator with A. This routine shifts that operator over to B. +*/ +void sqlite3SrcListShiftJoinType(SrcList *p){ + if( p && p->a ){ + int i; + for(i=p->nSrc-1; i>0; i--){ + p->a[i].jointype = p->a[i-1].jointype; + } + p->a[0].jointype = 0; + } +} + +/* +** Begin a transaction +*/ +void sqlite3BeginTransaction(Parse *pParse, int type){ + sqlite3 *db; + Vdbe *v; + int i; + + if( pParse==0 || (db=pParse->db)==0 || db->aDb[0].pBt==0 ) return; + if( pParse->nErr || sqlite3MallocFailed() ) return; + if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION, "BEGIN", 0, 0) ) return; + + v = sqlite3GetVdbe(pParse); + if( !v ) return; + if( type!=TK_DEFERRED ){ + for(i=0; inDb; i++){ + sqlite3VdbeAddOp(v, OP_Transaction, i, (type==TK_EXCLUSIVE)+1); + } + } + sqlite3VdbeAddOp(v, OP_AutoCommit, 0, 0); +} + +/* +** Commit a transaction +*/ +void sqlite3CommitTransaction(Parse *pParse){ + sqlite3 *db; + Vdbe *v; + + if( pParse==0 || (db=pParse->db)==0 || db->aDb[0].pBt==0 ) return; + if( pParse->nErr || sqlite3MallocFailed() ) return; + if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION, "COMMIT", 0, 0) ) return; + + v = sqlite3GetVdbe(pParse); + if( v ){ + sqlite3VdbeAddOp(v, OP_AutoCommit, 1, 0); + } +} + +/* +** Rollback a transaction +*/ +void sqlite3RollbackTransaction(Parse *pParse){ + sqlite3 *db; + Vdbe *v; + + if( pParse==0 || (db=pParse->db)==0 || db->aDb[0].pBt==0 ) return; + if( pParse->nErr || sqlite3MallocFailed() ) return; + if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION, "ROLLBACK", 0, 0) ) return; + + v = sqlite3GetVdbe(pParse); + if( v ){ + sqlite3VdbeAddOp(v, OP_AutoCommit, 1, 1); + } +} + +/* +** Make sure the TEMP database is open and available for use. Return +** the number of errors. Leave any error messages in the pParse structure. +*/ +int sqlite3OpenTempDatabase(Parse *pParse){ + sqlite3 *db = pParse->db; + if( db->aDb[1].pBt==0 && !pParse->explain ){ + int rc = sqlite3BtreeFactory(db, 0, 0, MAX_PAGES, &db->aDb[1].pBt); + if( rc!=SQLITE_OK ){ + sqlite3ErrorMsg(pParse, "unable to open a temporary database " + "file for storing temporary tables"); + pParse->rc = rc; + return 1; + } + if( db->flags & !db->autoCommit ){ + rc = sqlite3BtreeBeginTrans(db->aDb[1].pBt, 1); + if( rc!=SQLITE_OK ){ + sqlite3ErrorMsg(pParse, "unable to get a write lock on " + "the temporary database file"); + pParse->rc = rc; + return 1; + } + } + assert( db->aDb[1].pSchema ); + } + return 0; +} + +/* +** Generate VDBE code that will verify the schema cookie and start +** a read-transaction for all named database files. +** +** It is important that all schema cookies be verified and all +** read transactions be started before anything else happens in +** the VDBE program. But this routine can be called after much other +** code has been generated. So here is what we do: +** +** The first time this routine is called, we code an OP_Goto that +** will jump to a subroutine at the end of the program. Then we +** record every database that needs its schema verified in the +** pParse->cookieMask field. Later, after all other code has been +** generated, the subroutine that does the cookie verifications and +** starts the transactions will be coded and the OP_Goto P2 value +** will be made to point to that subroutine. The generation of the +** cookie verification subroutine code happens in sqlite3FinishCoding(). +** +** If iDb<0 then code the OP_Goto only - don't set flag to verify the +** schema on any databases. This can be used to position the OP_Goto +** early in the code, before we know if any database tables will be used. +*/ +void sqlite3CodeVerifySchema(Parse *pParse, int iDb){ + sqlite3 *db; + Vdbe *v; + int mask; + + v = sqlite3GetVdbe(pParse); + if( v==0 ) return; /* This only happens if there was a prior error */ + db = pParse->db; + if( pParse->cookieGoto==0 ){ + pParse->cookieGoto = sqlite3VdbeAddOp(v, OP_Goto, 0, 0)+1; + } + if( iDb>=0 ){ + assert( iDbnDb ); + assert( db->aDb[iDb].pBt!=0 || iDb==1 ); + assert( iDbcookieMask & mask)==0 ){ + pParse->cookieMask |= mask; + pParse->cookieValue[iDb] = db->aDb[iDb].pSchema->schema_cookie; + if( !OMIT_TEMPDB && iDb==1 ){ + sqlite3OpenTempDatabase(pParse); + } + } + } +} + +/* +** Generate VDBE code that prepares for doing an operation that +** might change the database. +** +** This routine starts a new transaction if we are not already within +** a transaction. If we are already within a transaction, then a checkpoint +** is set if the setStatement parameter is true. A checkpoint should +** be set for operations that might fail (due to a constraint) part of +** the way through and which will need to undo some writes without having to +** rollback the whole transaction. For operations where all constraints +** can be checked before any changes are made to the database, it is never +** necessary to undo a write and the checkpoint should not be set. +** +** Only database iDb and the temp database are made writable by this call. +** If iDb==0, then the main and temp databases are made writable. If +** iDb==1 then only the temp database is made writable. If iDb>1 then the +** specified auxiliary database and the temp database are made writable. +*/ +void sqlite3BeginWriteOperation(Parse *pParse, int setStatement, int iDb){ + Vdbe *v = sqlite3GetVdbe(pParse); + if( v==0 ) return; + sqlite3CodeVerifySchema(pParse, iDb); + pParse->writeMask |= 1<nested==0 ){ + sqlite3VdbeAddOp(v, OP_Statement, iDb, 0); + } + if( (OMIT_TEMPDB || iDb!=1) && pParse->db->aDb[1].pBt!=0 ){ + sqlite3BeginWriteOperation(pParse, setStatement, 1); + } +} + +/* +** Check to see if pIndex uses the collating sequence pColl. Return +** true if it does and false if it does not. +*/ +#ifndef SQLITE_OMIT_REINDEX +static int collationMatch(const char *zColl, Index *pIndex){ + int i; + for(i=0; inColumn; i++){ + const char *z = pIndex->azColl[i]; + if( z==zColl || (z && zColl && 0==sqlite3StrICmp(z, zColl)) ){ + return 1; + } + } + return 0; +} +#endif + +/* +** Recompute all indices of pTab that use the collating sequence pColl. +** If pColl==0 then recompute all indices of pTab. +*/ +#ifndef SQLITE_OMIT_REINDEX +static void reindexTable(Parse *pParse, Table *pTab, char const *zColl){ + Index *pIndex; /* An index associated with pTab */ + + for(pIndex=pTab->pIndex; pIndex; pIndex=pIndex->pNext){ + if( zColl==0 || collationMatch(zColl, pIndex) ){ + int iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); + sqlite3BeginWriteOperation(pParse, 0, iDb); + sqlite3RefillIndex(pParse, pIndex, -1); + } + } +} +#endif + +/* +** Recompute all indices of all tables in all databases where the +** indices use the collating sequence pColl. If pColl==0 then recompute +** all indices everywhere. +*/ +#ifndef SQLITE_OMIT_REINDEX +static void reindexDatabases(Parse *pParse, char const *zColl){ + Db *pDb; /* A single database */ + int iDb; /* The database index number */ + sqlite3 *db = pParse->db; /* The database connection */ + HashElem *k; /* For looping over tables in pDb */ + Table *pTab; /* A table in the database */ + + for(iDb=0, pDb=db->aDb; iDbnDb; iDb++, pDb++){ + assert( pDb!=0 ); + for(k=sqliteHashFirst(&pDb->pSchema->tblHash); k; k=sqliteHashNext(k)){ + pTab = (Table*)sqliteHashData(k); + reindexTable(pParse, pTab, zColl); + } + } +} +#endif + +/* +** Generate code for the REINDEX command. +** +** REINDEX -- 1 +** REINDEX -- 2 +** REINDEX ?.? -- 3 +** REINDEX ?.? -- 4 +** +** Form 1 causes all indices in all attached databases to be rebuilt. +** Form 2 rebuilds all indices in all databases that use the named +** collating function. Forms 3 and 4 rebuild the named index or all +** indices associated with the named table. +*/ +#ifndef SQLITE_OMIT_REINDEX +void sqlite3Reindex(Parse *pParse, Token *pName1, Token *pName2){ + CollSeq *pColl; /* Collating sequence to be reindexed, or NULL */ + char *z; /* Name of a table or index */ + const char *zDb; /* Name of the database */ + Table *pTab; /* A table in the database */ + Index *pIndex; /* An index associated with pTab */ + int iDb; /* The database index number */ + sqlite3 *db = pParse->db; /* The database connection */ + Token *pObjName; /* Name of the table or index to be reindexed */ + + /* Read the database schema. If an error occurs, leave an error message + ** and code in pParse and return NULL. */ + if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){ + return; + } + + if( pName1==0 || pName1->z==0 ){ + reindexDatabases(pParse, 0); + return; + }else if( pName2==0 || pName2->z==0 ){ + assert( pName1->z ); + pColl = sqlite3FindCollSeq(db, ENC(db), (char*)pName1->z, pName1->n, 0); + if( pColl ){ + char *zColl = sqliteStrNDup((const char *)pName1->z, pName1->n); + if( zColl ){ + reindexDatabases(pParse, zColl); + sqliteFree(zColl); + } + return; + } + } + iDb = sqlite3TwoPartName(pParse, pName1, pName2, &pObjName); + if( iDb<0 ) return; + z = sqlite3NameFromToken(pObjName); + zDb = db->aDb[iDb].zName; + pTab = sqlite3FindTable(db, z, zDb); + if( pTab ){ + reindexTable(pParse, pTab, 0); + sqliteFree(z); + return; + } + pIndex = sqlite3FindIndex(db, z, zDb); + sqliteFree(z); + if( pIndex ){ + sqlite3BeginWriteOperation(pParse, 0, iDb); + sqlite3RefillIndex(pParse, pIndex, -1); + return; + } + sqlite3ErrorMsg(pParse, "unable to identify the object to be reindexed"); +} +#endif + +/* +** Return a dynamicly allocated KeyInfo structure that can be used +** with OP_OpenRead or OP_OpenWrite to access database index pIdx. +** +** If successful, a pointer to the new structure is returned. In this case +** the caller is responsible for calling sqliteFree() on the returned +** pointer. If an error occurs (out of memory or missing collation +** sequence), NULL is returned and the state of pParse updated to reflect +** the error. +*/ +KeyInfo *sqlite3IndexKeyinfo(Parse *pParse, Index *pIdx){ + int i; + int nCol = pIdx->nColumn; + int nBytes = sizeof(KeyInfo) + (nCol-1)*sizeof(CollSeq*) + nCol; + KeyInfo *pKey = (KeyInfo *)sqliteMalloc(nBytes); + + if( pKey ){ + pKey->aSortOrder = (u8 *)&(pKey->aColl[nCol]); + assert( &pKey->aSortOrder[nCol]==&(((u8 *)pKey)[nBytes]) ); + for(i=0; iazColl[i]; + assert( zColl ); + pKey->aColl[i] = sqlite3LocateCollSeq(pParse, zColl, -1); + pKey->aSortOrder[i] = pIdx->aSortOrder[i]; + } + pKey->nField = nCol; + } + + if( pParse->nErr ){ + sqliteFree(pKey); + pKey = 0; + } + return pKey; +} diff --git a/src/dep/src/sqlite/callback.c b/src/dep/src/sqlite/callback.c new file mode 100644 index 0000000..2a87677 --- /dev/null +++ b/src/dep/src/sqlite/callback.c @@ -0,0 +1,368 @@ +/* +** 2005 May 23 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** +** This file contains functions used to access the internal hash tables +** of user defined functions and collation sequences. +** +** $Id: callback.c,v 1.15 2006/05/24 12:43:27 drh Exp $ +*/ + +#include "sqliteInt.h" + +/* +** Invoke the 'collation needed' callback to request a collation sequence +** in the database text encoding of name zName, length nName. +** If the collation sequence +*/ +static void callCollNeeded(sqlite3 *db, const char *zName, int nName){ + assert( !db->xCollNeeded || !db->xCollNeeded16 ); + if( nName<0 ) nName = strlen(zName); + if( db->xCollNeeded ){ + char *zExternal = sqliteStrNDup(zName, nName); + if( !zExternal ) return; + db->xCollNeeded(db->pCollNeededArg, db, (int)ENC(db), zExternal); + sqliteFree(zExternal); + } +#ifndef SQLITE_OMIT_UTF16 + if( db->xCollNeeded16 ){ + char const *zExternal; + sqlite3_value *pTmp = sqlite3ValueNew(); + sqlite3ValueSetStr(pTmp, nName, zName, SQLITE_UTF8, SQLITE_STATIC); + zExternal = sqlite3ValueText(pTmp, SQLITE_UTF16NATIVE); + if( zExternal ){ + db->xCollNeeded16(db->pCollNeededArg, db, (int)ENC(db), zExternal); + } + sqlite3ValueFree(pTmp); + } +#endif +} + +/* +** This routine is called if the collation factory fails to deliver a +** collation function in the best encoding but there may be other versions +** of this collation function (for other text encodings) available. Use one +** of these instead if they exist. Avoid a UTF-8 <-> UTF-16 conversion if +** possible. +*/ +static int synthCollSeq(sqlite3 *db, CollSeq *pColl){ + CollSeq *pColl2; + char *z = pColl->zName; + int n = strlen(z); + int i; + static const u8 aEnc[] = { SQLITE_UTF16BE, SQLITE_UTF16LE, SQLITE_UTF8 }; + for(i=0; i<3; i++){ + pColl2 = sqlite3FindCollSeq(db, aEnc[i], z, n, 0); + if( pColl2->xCmp!=0 ){ + memcpy(pColl, pColl2, sizeof(CollSeq)); + return SQLITE_OK; + } + } + return SQLITE_ERROR; +} + +/* +** This function is responsible for invoking the collation factory callback +** or substituting a collation sequence of a different encoding when the +** requested collation sequence is not available in the database native +** encoding. +** +** If it is not NULL, then pColl must point to the database native encoding +** collation sequence with name zName, length nName. +** +** The return value is either the collation sequence to be used in database +** db for collation type name zName, length nName, or NULL, if no collation +** sequence can be found. +*/ +CollSeq *sqlite3GetCollSeq( + sqlite3* db, + CollSeq *pColl, + const char *zName, + int nName +){ + CollSeq *p; + + p = pColl; + if( !p ){ + p = sqlite3FindCollSeq(db, ENC(db), zName, nName, 0); + } + if( !p || !p->xCmp ){ + /* No collation sequence of this type for this encoding is registered. + ** Call the collation factory to see if it can supply us with one. + */ + callCollNeeded(db, zName, nName); + p = sqlite3FindCollSeq(db, ENC(db), zName, nName, 0); + } + if( p && !p->xCmp && synthCollSeq(db, p) ){ + p = 0; + } + assert( !p || p->xCmp ); + return p; +} + +/* +** This routine is called on a collation sequence before it is used to +** check that it is defined. An undefined collation sequence exists when +** a database is loaded that contains references to collation sequences +** that have not been defined by sqlite3_create_collation() etc. +** +** If required, this routine calls the 'collation needed' callback to +** request a definition of the collating sequence. If this doesn't work, +** an equivalent collating sequence that uses a text encoding different +** from the main database is substituted, if one is available. +*/ +int sqlite3CheckCollSeq(Parse *pParse, CollSeq *pColl){ + if( pColl ){ + const char *zName = pColl->zName; + CollSeq *p = sqlite3GetCollSeq(pParse->db, pColl, zName, -1); + if( !p ){ + if( pParse->nErr==0 ){ + sqlite3ErrorMsg(pParse, "no such collation sequence: %s", zName); + } + pParse->nErr++; + return SQLITE_ERROR; + } + assert( p==pColl ); + } + return SQLITE_OK; +} + + + +/* +** Locate and return an entry from the db.aCollSeq hash table. If the entry +** specified by zName and nName is not found and parameter 'create' is +** true, then create a new entry. Otherwise return NULL. +** +** Each pointer stored in the sqlite3.aCollSeq hash table contains an +** array of three CollSeq structures. The first is the collation sequence +** prefferred for UTF-8, the second UTF-16le, and the third UTF-16be. +** +** Stored immediately after the three collation sequences is a copy of +** the collation sequence name. A pointer to this string is stored in +** each collation sequence structure. +*/ +static CollSeq *findCollSeqEntry( + sqlite3 *db, + const char *zName, + int nName, + int create +){ + CollSeq *pColl; + if( nName<0 ) nName = strlen(zName); + pColl = sqlite3HashFind(&db->aCollSeq, zName, nName); + + if( 0==pColl && create ){ + pColl = sqliteMalloc( 3*sizeof(*pColl) + nName + 1 ); + if( pColl ){ + CollSeq *pDel = 0; + pColl[0].zName = (char*)&pColl[3]; + pColl[0].enc = SQLITE_UTF8; + pColl[1].zName = (char*)&pColl[3]; + pColl[1].enc = SQLITE_UTF16LE; + pColl[2].zName = (char*)&pColl[3]; + pColl[2].enc = SQLITE_UTF16BE; + memcpy(pColl[0].zName, zName, nName); + pColl[0].zName[nName] = 0; + pDel = sqlite3HashInsert(&db->aCollSeq, pColl[0].zName, nName, pColl); + + /* If a malloc() failure occured in sqlite3HashInsert(), it will + ** return the pColl pointer to be deleted (because it wasn't added + ** to the hash table). + */ + assert( !pDel || (sqlite3MallocFailed() && pDel==pColl) ); + if( pDel ){ + sqliteFree(pDel); + pColl = 0; + } + } + } + return pColl; +} + +/* +** Parameter zName points to a UTF-8 encoded string nName bytes long. +** Return the CollSeq* pointer for the collation sequence named zName +** for the encoding 'enc' from the database 'db'. +** +** If the entry specified is not found and 'create' is true, then create a +** new entry. Otherwise return NULL. +*/ +CollSeq *sqlite3FindCollSeq( + sqlite3 *db, + u8 enc, + const char *zName, + int nName, + int create +){ + CollSeq *pColl; + if( zName ){ + pColl = findCollSeqEntry(db, zName, nName, create); + }else{ + pColl = db->pDfltColl; + } + assert( SQLITE_UTF8==1 && SQLITE_UTF16LE==2 && SQLITE_UTF16BE==3 ); + assert( enc>=SQLITE_UTF8 && enc<=SQLITE_UTF16BE ); + if( pColl ) pColl += enc-1; + return pColl; +} + +/* +** Locate a user function given a name, a number of arguments and a flag +** indicating whether the function prefers UTF-16 over UTF-8. Return a +** pointer to the FuncDef structure that defines that function, or return +** NULL if the function does not exist. +** +** If the createFlag argument is true, then a new (blank) FuncDef +** structure is created and liked into the "db" structure if a +** no matching function previously existed. When createFlag is true +** and the nArg parameter is -1, then only a function that accepts +** any number of arguments will be returned. +** +** If createFlag is false and nArg is -1, then the first valid +** function found is returned. A function is valid if either xFunc +** or xStep is non-zero. +** +** If createFlag is false, then a function with the required name and +** number of arguments may be returned even if the eTextRep flag does not +** match that requested. +*/ +FuncDef *sqlite3FindFunction( + sqlite3 *db, /* An open database */ + const char *zName, /* Name of the function. Not null-terminated */ + int nName, /* Number of characters in the name */ + int nArg, /* Number of arguments. -1 means any number */ + u8 enc, /* Preferred text encoding */ + int createFlag /* Create new entry if true and does not otherwise exist */ +){ + FuncDef *p; /* Iterator variable */ + FuncDef *pFirst; /* First function with this name */ + FuncDef *pBest = 0; /* Best match found so far */ + int bestmatch = 0; + + + assert( enc==SQLITE_UTF8 || enc==SQLITE_UTF16LE || enc==SQLITE_UTF16BE ); + if( nArg<-1 ) nArg = -1; + + pFirst = (FuncDef*)sqlite3HashFind(&db->aFunc, zName, nName); + for(p=pFirst; p; p=p->pNext){ + /* During the search for the best function definition, bestmatch is set + ** as follows to indicate the quality of the match with the definition + ** pointed to by pBest: + ** + ** 0: pBest is NULL. No match has been found. + ** 1: A variable arguments function that prefers UTF-8 when a UTF-16 + ** encoding is requested, or vice versa. + ** 2: A variable arguments function that uses UTF-16BE when UTF-16LE is + ** requested, or vice versa. + ** 3: A variable arguments function using the same text encoding. + ** 4: A function with the exact number of arguments requested that + ** prefers UTF-8 when a UTF-16 encoding is requested, or vice versa. + ** 5: A function with the exact number of arguments requested that + ** prefers UTF-16LE when UTF-16BE is requested, or vice versa. + ** 6: An exact match. + ** + ** A larger value of 'matchqual' indicates a more desirable match. + */ + if( p->nArg==-1 || p->nArg==nArg || nArg==-1 ){ + int match = 1; /* Quality of this match */ + if( p->nArg==nArg || nArg==-1 ){ + match = 4; + } + if( enc==p->iPrefEnc ){ + match += 2; + } + else if( (enc==SQLITE_UTF16LE && p->iPrefEnc==SQLITE_UTF16BE) || + (enc==SQLITE_UTF16BE && p->iPrefEnc==SQLITE_UTF16LE) ){ + match += 1; + } + + if( match>bestmatch ){ + pBest = p; + bestmatch = match; + } + } + } + + /* If the createFlag parameter is true, and the seach did not reveal an + ** exact match for the name, number of arguments and encoding, then add a + ** new entry to the hash table and return it. + */ + if( createFlag && bestmatch<6 && + (pBest = sqliteMalloc(sizeof(*pBest)+nName))!=0 ){ + pBest->nArg = nArg; + pBest->pNext = pFirst; + pBest->iPrefEnc = enc; + memcpy(pBest->zName, zName, nName); + pBest->zName[nName] = 0; + if( pBest==sqlite3HashInsert(&db->aFunc,pBest->zName,nName,(void*)pBest) ){ + sqliteFree(pBest); + return 0; + } + } + + if( pBest && (pBest->xStep || pBest->xFunc || createFlag) ){ + return pBest; + } + return 0; +} + +/* +** Free all resources held by the schema structure. The void* argument points +** at a Schema struct. This function does not call sqliteFree() on the +** pointer itself, it just cleans up subsiduary resources (i.e. the contents +** of the schema hash tables). +*/ +void sqlite3SchemaFree(void *p){ + Hash temp1; + Hash temp2; + HashElem *pElem; + Schema *pSchema = (Schema *)p; + + temp1 = pSchema->tblHash; + temp2 = pSchema->trigHash; + sqlite3HashInit(&pSchema->trigHash, SQLITE_HASH_STRING, 0); + sqlite3HashClear(&pSchema->aFKey); + sqlite3HashClear(&pSchema->idxHash); + for(pElem=sqliteHashFirst(&temp2); pElem; pElem=sqliteHashNext(pElem)){ + sqlite3DeleteTrigger((Trigger*)sqliteHashData(pElem)); + } + sqlite3HashClear(&temp2); + sqlite3HashInit(&pSchema->tblHash, SQLITE_HASH_STRING, 0); + for(pElem=sqliteHashFirst(&temp1); pElem; pElem=sqliteHashNext(pElem)){ + Table *pTab = sqliteHashData(pElem); + sqlite3DeleteTable(0, pTab); + } + sqlite3HashClear(&temp1); + pSchema->pSeqTab = 0; + pSchema->flags &= ~DB_SchemaLoaded; +} + +/* +** Find and return the schema associated with a BTree. Create +** a new one if necessary. +*/ +Schema *sqlite3SchemaGet(Btree *pBt){ + Schema * p; + if( pBt ){ + p = (Schema *)sqlite3BtreeSchema(pBt,sizeof(Schema),sqlite3SchemaFree); + }else{ + p = (Schema *)sqliteMalloc(sizeof(Schema)); + } + if( p && 0==p->file_format ){ + sqlite3HashInit(&p->tblHash, SQLITE_HASH_STRING, 0); + sqlite3HashInit(&p->idxHash, SQLITE_HASH_STRING, 0); + sqlite3HashInit(&p->trigHash, SQLITE_HASH_STRING, 0); + sqlite3HashInit(&p->aFKey, SQLITE_HASH_STRING, 1); + p->enc = SQLITE_UTF8; + } + return p; +} diff --git a/src/dep/src/sqlite/complete.c b/src/dep/src/sqlite/complete.c new file mode 100644 index 0000000..536ffad --- /dev/null +++ b/src/dep/src/sqlite/complete.c @@ -0,0 +1,263 @@ +/* +** 2001 September 15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** An tokenizer for SQL +** +** This file contains C code that implements the sqlite3_complete() API. +** This code used to be part of the tokenizer.c source file. But by +** separating it out, the code will be automatically omitted from +** static links that do not use it. +** +** $Id: complete.c,v 1.3 2006/01/18 15:25:17 danielk1977 Exp $ +*/ +#include "sqliteInt.h" +#ifndef SQLITE_OMIT_COMPLETE + +/* +** This is defined in tokenize.c. We just have to import the definition. +*/ +extern const char sqlite3IsIdChar[]; +#define IdChar(C) (((c=C)&0x80)!=0 || (c>0x1f && sqlite3IsIdChar[c-0x20])) + + +/* +** Token types used by the sqlite3_complete() routine. See the header +** comments on that procedure for additional information. +*/ +#define tkSEMI 0 +#define tkWS 1 +#define tkOTHER 2 +#define tkEXPLAIN 3 +#define tkCREATE 4 +#define tkTEMP 5 +#define tkTRIGGER 6 +#define tkEND 7 + +/* +** Return TRUE if the given SQL string ends in a semicolon. +** +** Special handling is require for CREATE TRIGGER statements. +** Whenever the CREATE TRIGGER keywords are seen, the statement +** must end with ";END;". +** +** This implementation uses a state machine with 7 states: +** +** (0) START At the beginning or end of an SQL statement. This routine +** returns 1 if it ends in the START state and 0 if it ends +** in any other state. +** +** (1) NORMAL We are in the middle of statement which ends with a single +** semicolon. +** +** (2) EXPLAIN The keyword EXPLAIN has been seen at the beginning of +** a statement. +** +** (3) CREATE The keyword CREATE has been seen at the beginning of a +** statement, possibly preceeded by EXPLAIN and/or followed by +** TEMP or TEMPORARY +** +** (4) TRIGGER We are in the middle of a trigger definition that must be +** ended by a semicolon, the keyword END, and another semicolon. +** +** (5) SEMI We've seen the first semicolon in the ";END;" that occurs at +** the end of a trigger definition. +** +** (6) END We've seen the ";END" of the ";END;" that occurs at the end +** of a trigger difinition. +** +** Transitions between states above are determined by tokens extracted +** from the input. The following tokens are significant: +** +** (0) tkSEMI A semicolon. +** (1) tkWS Whitespace +** (2) tkOTHER Any other SQL token. +** (3) tkEXPLAIN The "explain" keyword. +** (4) tkCREATE The "create" keyword. +** (5) tkTEMP The "temp" or "temporary" keyword. +** (6) tkTRIGGER The "trigger" keyword. +** (7) tkEND The "end" keyword. +** +** Whitespace never causes a state transition and is always ignored. +** +** If we compile with SQLITE_OMIT_TRIGGER, all of the computation needed +** to recognize the end of a trigger can be omitted. All we have to do +** is look for a semicolon that is not part of an string or comment. +*/ +int sqlite3_complete(const char *zSql){ + u8 state = 0; /* Current state, using numbers defined in header comment */ + u8 token; /* Value of the next token */ + +#ifndef SQLITE_OMIT_TRIGGER + /* A complex statement machine used to detect the end of a CREATE TRIGGER + ** statement. This is the normal case. + */ + static const u8 trans[7][8] = { + /* Token: */ + /* State: ** SEMI WS OTHER EXPLAIN CREATE TEMP TRIGGER END */ + /* 0 START: */ { 0, 0, 1, 2, 3, 1, 1, 1, }, + /* 1 NORMAL: */ { 0, 1, 1, 1, 1, 1, 1, 1, }, + /* 2 EXPLAIN: */ { 0, 2, 1, 1, 3, 1, 1, 1, }, + /* 3 CREATE: */ { 0, 3, 1, 1, 1, 3, 4, 1, }, + /* 4 TRIGGER: */ { 5, 4, 4, 4, 4, 4, 4, 4, }, + /* 5 SEMI: */ { 5, 5, 4, 4, 4, 4, 4, 6, }, + /* 6 END: */ { 0, 6, 4, 4, 4, 4, 4, 4, }, + }; +#else + /* If triggers are not suppored by this compile then the statement machine + ** used to detect the end of a statement is much simplier + */ + static const u8 trans[2][3] = { + /* Token: */ + /* State: ** SEMI WS OTHER */ + /* 0 START: */ { 0, 0, 1, }, + /* 1 NORMAL: */ { 0, 1, 1, }, + }; +#endif /* SQLITE_OMIT_TRIGGER */ + + while( *zSql ){ + switch( *zSql ){ + case ';': { /* A semicolon */ + token = tkSEMI; + break; + } + case ' ': + case '\r': + case '\t': + case '\n': + case '\f': { /* White space is ignored */ + token = tkWS; + break; + } + case '/': { /* C-style comments */ + if( zSql[1]!='*' ){ + token = tkOTHER; + break; + } + zSql += 2; + while( zSql[0] && (zSql[0]!='*' || zSql[1]!='/') ){ zSql++; } + if( zSql[0]==0 ) return 0; + zSql++; + token = tkWS; + break; + } + case '-': { /* SQL-style comments from "--" to end of line */ + if( zSql[1]!='-' ){ + token = tkOTHER; + break; + } + while( *zSql && *zSql!='\n' ){ zSql++; } + if( *zSql==0 ) return state==0; + token = tkWS; + break; + } + case '[': { /* Microsoft-style identifiers in [...] */ + zSql++; + while( *zSql && *zSql!=']' ){ zSql++; } + if( *zSql==0 ) return 0; + token = tkOTHER; + break; + } + case '`': /* Grave-accent quoted symbols used by MySQL */ + case '"': /* single- and double-quoted strings */ + case '\'': { + int c = *zSql; + zSql++; + while( *zSql && *zSql!=c ){ zSql++; } + if( *zSql==0 ) return 0; + token = tkOTHER; + break; + } + default: { + int c; + if( IdChar((u8)*zSql) ){ + /* Keywords and unquoted identifiers */ + int nId; + for(nId=1; IdChar(zSql[nId]); nId++){} +#ifdef SQLITE_OMIT_TRIGGER + token = tkOTHER; +#else + switch( *zSql ){ + case 'c': case 'C': { + if( nId==6 && sqlite3StrNICmp(zSql, "create", 6)==0 ){ + token = tkCREATE; + }else{ + token = tkOTHER; + } + break; + } + case 't': case 'T': { + if( nId==7 && sqlite3StrNICmp(zSql, "trigger", 7)==0 ){ + token = tkTRIGGER; + }else if( nId==4 && sqlite3StrNICmp(zSql, "temp", 4)==0 ){ + token = tkTEMP; + }else if( nId==9 && sqlite3StrNICmp(zSql, "temporary", 9)==0 ){ + token = tkTEMP; + }else{ + token = tkOTHER; + } + break; + } + case 'e': case 'E': { + if( nId==3 && sqlite3StrNICmp(zSql, "end", 3)==0 ){ + token = tkEND; + }else +#ifndef SQLITE_OMIT_EXPLAIN + if( nId==7 && sqlite3StrNICmp(zSql, "explain", 7)==0 ){ + token = tkEXPLAIN; + }else +#endif + { + token = tkOTHER; + } + break; + } + default: { + token = tkOTHER; + break; + } + } +#endif /* SQLITE_OMIT_TRIGGER */ + zSql += nId-1; + }else{ + /* Operators and special symbols */ + token = tkOTHER; + } + break; + } + } + state = trans[state][token]; + zSql++; + } + return state==0; +} + +#ifndef SQLITE_OMIT_UTF16 +/* +** This routine is the same as the sqlite3_complete() routine described +** above, except that the parameter is required to be UTF-16 encoded, not +** UTF-8. +*/ +int sqlite3_complete16(const void *zSql){ + sqlite3_value *pVal; + char const *zSql8; + int rc = 0; + + pVal = sqlite3ValueNew(); + sqlite3ValueSetStr(pVal, -1, zSql, SQLITE_UTF16NATIVE, SQLITE_STATIC); + zSql8 = sqlite3ValueText(pVal, SQLITE_UTF8); + if( zSql8 ){ + rc = sqlite3_complete(zSql8); + } + sqlite3ValueFree(pVal); + return sqlite3ApiExit(0, rc); +} +#endif /* SQLITE_OMIT_UTF16 */ +#endif /* SQLITE_OMIT_COMPLETE */ diff --git a/src/dep/src/sqlite/date.c b/src/dep/src/sqlite/date.c new file mode 100644 index 0000000..1a92c4f --- /dev/null +++ b/src/dep/src/sqlite/date.c @@ -0,0 +1,1026 @@ +/* +** 2003 October 31 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains the C functions that implement date and time +** functions for SQLite. +** +** There is only one exported symbol in this file - the function +** sqlite3RegisterDateTimeFunctions() found at the bottom of the file. +** All other code has file scope. +** +** $Id: date.c,v 1.60 2007/01/08 16:19:07 drh Exp $ +** +** NOTES: +** +** SQLite processes all times and dates as Julian Day numbers. The +** dates and times are stored as the number of days since noon +** in Greenwich on November 24, 4714 B.C. according to the Gregorian +** calendar system. +** +** 1970-01-01 00:00:00 is JD 2440587.5 +** 2000-01-01 00:00:00 is JD 2451544.5 +** +** This implemention requires years to be expressed as a 4-digit number +** which means that only dates between 0000-01-01 and 9999-12-31 can +** be represented, even though julian day numbers allow a much wider +** range of dates. +** +** The Gregorian calendar system is used for all dates and times, +** even those that predate the Gregorian calendar. Historians usually +** use the Julian calendar for dates prior to 1582-10-15 and for some +** dates afterwards, depending on locale. Beware of this difference. +** +** The conversion algorithms are implemented based on descriptions +** in the following text: +** +** Jean Meeus +** Astronomical Algorithms, 2nd Edition, 1998 +** ISBM 0-943396-61-1 +** Willmann-Bell, Inc +** Richmond, Virginia (USA) +*/ +#include "sqliteInt.h" +#include "os.h" +#include +#include +#include +#include + +#ifndef SQLITE_OMIT_DATETIME_FUNCS + +/* +** A structure for holding a single date and time. +*/ +typedef struct DateTime DateTime; +struct DateTime { + double rJD; /* The julian day number */ + int Y, M, D; /* Year, month, and day */ + int h, m; /* Hour and minutes */ + int tz; /* Timezone offset in minutes */ + double s; /* Seconds */ + char validYMD; /* True if Y,M,D are valid */ + char validHMS; /* True if h,m,s are valid */ + char validJD; /* True if rJD is valid */ + char validTZ; /* True if tz is valid */ +}; + + +/* +** Convert zDate into one or more integers. Additional arguments +** come in groups of 5 as follows: +** +** N number of digits in the integer +** min minimum allowed value of the integer +** max maximum allowed value of the integer +** nextC first character after the integer +** pVal where to write the integers value. +** +** Conversions continue until one with nextC==0 is encountered. +** The function returns the number of successful conversions. +*/ +static int getDigits(const char *zDate, ...){ + va_list ap; + int val; + int N; + int min; + int max; + int nextC; + int *pVal; + int cnt = 0; + va_start(ap, zDate); + do{ + N = va_arg(ap, int); + min = va_arg(ap, int); + max = va_arg(ap, int); + nextC = va_arg(ap, int); + pVal = va_arg(ap, int*); + val = 0; + while( N-- ){ + if( !isdigit(*(u8*)zDate) ){ + goto end_getDigits; + } + val = val*10 + *zDate - '0'; + zDate++; + } + if( valmax || (nextC!=0 && nextC!=*zDate) ){ + goto end_getDigits; + } + *pVal = val; + zDate++; + cnt++; + }while( nextC ); +end_getDigits: + va_end(ap); + return cnt; +} + +/* +** Read text from z[] and convert into a floating point number. Return +** the number of digits converted. +*/ +#define getValue sqlite3AtoF + +/* +** Parse a timezone extension on the end of a date-time. +** The extension is of the form: +** +** (+/-)HH:MM +** +** If the parse is successful, write the number of minutes +** of change in *pnMin and return 0. If a parser error occurs, +** return 0. +** +** A missing specifier is not considered an error. +*/ +static int parseTimezone(const char *zDate, DateTime *p){ + int sgn = 0; + int nHr, nMn; + while( isspace(*(u8*)zDate) ){ zDate++; } + p->tz = 0; + if( *zDate=='-' ){ + sgn = -1; + }else if( *zDate=='+' ){ + sgn = +1; + }else{ + return *zDate!=0; + } + zDate++; + if( getDigits(zDate, 2, 0, 14, ':', &nHr, 2, 0, 59, 0, &nMn)!=2 ){ + return 1; + } + zDate += 5; + p->tz = sgn*(nMn + nHr*60); + while( isspace(*(u8*)zDate) ){ zDate++; } + return *zDate!=0; +} + +/* +** Parse times of the form HH:MM or HH:MM:SS or HH:MM:SS.FFFF. +** The HH, MM, and SS must each be exactly 2 digits. The +** fractional seconds FFFF can be one or more digits. +** +** Return 1 if there is a parsing error and 0 on success. +*/ +static int parseHhMmSs(const char *zDate, DateTime *p){ + int h, m, s; + double ms = 0.0; + if( getDigits(zDate, 2, 0, 24, ':', &h, 2, 0, 59, 0, &m)!=2 ){ + return 1; + } + zDate += 5; + if( *zDate==':' ){ + zDate++; + if( getDigits(zDate, 2, 0, 59, 0, &s)!=1 ){ + return 1; + } + zDate += 2; + if( *zDate=='.' && isdigit((u8)zDate[1]) ){ + double rScale = 1.0; + zDate++; + while( isdigit(*(u8*)zDate) ){ + ms = ms*10.0 + *zDate - '0'; + rScale *= 10.0; + zDate++; + } + ms /= rScale; + } + }else{ + s = 0; + } + p->validJD = 0; + p->validHMS = 1; + p->h = h; + p->m = m; + p->s = s + ms; + if( parseTimezone(zDate, p) ) return 1; + p->validTZ = p->tz!=0; + return 0; +} + +/* +** Convert from YYYY-MM-DD HH:MM:SS to julian day. We always assume +** that the YYYY-MM-DD is according to the Gregorian calendar. +** +** Reference: Meeus page 61 +*/ +static void computeJD(DateTime *p){ + int Y, M, D, A, B, X1, X2; + + if( p->validJD ) return; + if( p->validYMD ){ + Y = p->Y; + M = p->M; + D = p->D; + }else{ + Y = 2000; /* If no YMD specified, assume 2000-Jan-01 */ + M = 1; + D = 1; + } + if( M<=2 ){ + Y--; + M += 12; + } + A = Y/100; + B = 2 - A + (A/4); + X1 = 365.25*(Y+4716); + X2 = 30.6001*(M+1); + p->rJD = X1 + X2 + D + B - 1524.5; + p->validJD = 1; + if( p->validHMS ){ + p->rJD += (p->h*3600.0 + p->m*60.0 + p->s)/86400.0; + if( p->validTZ ){ + p->rJD -= p->tz*60/86400.0; + p->validYMD = 0; + p->validHMS = 0; + p->validTZ = 0; + } + } +} + +/* +** Parse dates of the form +** +** YYYY-MM-DD HH:MM:SS.FFF +** YYYY-MM-DD HH:MM:SS +** YYYY-MM-DD HH:MM +** YYYY-MM-DD +** +** Write the result into the DateTime structure and return 0 +** on success and 1 if the input string is not a well-formed +** date. +*/ +static int parseYyyyMmDd(const char *zDate, DateTime *p){ + int Y, M, D, neg; + + if( zDate[0]=='-' ){ + zDate++; + neg = 1; + }else{ + neg = 0; + } + if( getDigits(zDate,4,0,9999,'-',&Y,2,1,12,'-',&M,2,1,31,0,&D)!=3 ){ + return 1; + } + zDate += 10; + while( isspace(*(u8*)zDate) || 'T'==*(u8*)zDate ){ zDate++; } + if( parseHhMmSs(zDate, p)==0 ){ + /* We got the time */ + }else if( *zDate==0 ){ + p->validHMS = 0; + }else{ + return 1; + } + p->validJD = 0; + p->validYMD = 1; + p->Y = neg ? -Y : Y; + p->M = M; + p->D = D; + if( p->validTZ ){ + computeJD(p); + } + return 0; +} + +/* +** Attempt to parse the given string into a Julian Day Number. Return +** the number of errors. +** +** The following are acceptable forms for the input string: +** +** YYYY-MM-DD HH:MM:SS.FFF +/-HH:MM +** DDDD.DD +** now +** +** In the first form, the +/-HH:MM is always optional. The fractional +** seconds extension (the ".FFF") is optional. The seconds portion +** (":SS.FFF") is option. The year and date can be omitted as long +** as there is a time string. The time string can be omitted as long +** as there is a year and date. +*/ +static int parseDateOrTime(const char *zDate, DateTime *p){ + memset(p, 0, sizeof(*p)); + if( parseYyyyMmDd(zDate,p)==0 ){ + return 0; + }else if( parseHhMmSs(zDate, p)==0 ){ + return 0; + }else if( sqlite3StrICmp(zDate,"now")==0){ + double r; + sqlite3OsCurrentTime(&r); + p->rJD = r; + p->validJD = 1; + return 0; + }else if( sqlite3IsNumber(zDate, 0, SQLITE_UTF8) ){ + getValue(zDate, &p->rJD); + p->validJD = 1; + return 0; + } + return 1; +} + +/* +** Compute the Year, Month, and Day from the julian day number. +*/ +static void computeYMD(DateTime *p){ + int Z, A, B, C, D, E, X1; + if( p->validYMD ) return; + if( !p->validJD ){ + p->Y = 2000; + p->M = 1; + p->D = 1; + }else{ + Z = p->rJD + 0.5; + A = (Z - 1867216.25)/36524.25; + A = Z + 1 + A - (A/4); + B = A + 1524; + C = (B - 122.1)/365.25; + D = 365.25*C; + E = (B-D)/30.6001; + X1 = 30.6001*E; + p->D = B - D - X1; + p->M = E<14 ? E-1 : E-13; + p->Y = p->M>2 ? C - 4716 : C - 4715; + } + p->validYMD = 1; +} + +/* +** Compute the Hour, Minute, and Seconds from the julian day number. +*/ +static void computeHMS(DateTime *p){ + int Z, s; + if( p->validHMS ) return; + computeJD(p); + Z = p->rJD + 0.5; + s = (p->rJD + 0.5 - Z)*86400000.0 + 0.5; + p->s = 0.001*s; + s = p->s; + p->s -= s; + p->h = s/3600; + s -= p->h*3600; + p->m = s/60; + p->s += s - p->m*60; + p->validHMS = 1; +} + +/* +** Compute both YMD and HMS +*/ +static void computeYMD_HMS(DateTime *p){ + computeYMD(p); + computeHMS(p); +} + +/* +** Clear the YMD and HMS and the TZ +*/ +static void clearYMD_HMS_TZ(DateTime *p){ + p->validYMD = 0; + p->validHMS = 0; + p->validTZ = 0; +} + +/* +** Compute the difference (in days) between localtime and UTC (a.k.a. GMT) +** for the time value p where p is in UTC. +*/ +static double localtimeOffset(DateTime *p){ + DateTime x, y; + time_t t; + x = *p; + computeYMD_HMS(&x); + if( x.Y<1971 || x.Y>=2038 ){ + x.Y = 2000; + x.M = 1; + x.D = 1; + x.h = 0; + x.m = 0; + x.s = 0.0; + } else { + int s = x.s + 0.5; + x.s = s; + } + x.tz = 0; + x.validJD = 0; + computeJD(&x); + t = (x.rJD-2440587.5)*86400.0 + 0.5; +#ifdef HAVE_LOCALTIME_R + { + struct tm sLocal; + localtime_r(&t, &sLocal); + y.Y = sLocal.tm_year + 1900; + y.M = sLocal.tm_mon + 1; + y.D = sLocal.tm_mday; + y.h = sLocal.tm_hour; + y.m = sLocal.tm_min; + y.s = sLocal.tm_sec; + } +#else + { + struct tm *pTm; + sqlite3OsEnterMutex(); + pTm = localtime(&t); + y.Y = pTm->tm_year + 1900; + y.M = pTm->tm_mon + 1; + y.D = pTm->tm_mday; + y.h = pTm->tm_hour; + y.m = pTm->tm_min; + y.s = pTm->tm_sec; + sqlite3OsLeaveMutex(); + } +#endif + y.validYMD = 1; + y.validHMS = 1; + y.validJD = 0; + y.validTZ = 0; + computeJD(&y); + return y.rJD - x.rJD; +} + +/* +** Process a modifier to a date-time stamp. The modifiers are +** as follows: +** +** NNN days +** NNN hours +** NNN minutes +** NNN.NNNN seconds +** NNN months +** NNN years +** start of month +** start of year +** start of week +** start of day +** weekday N +** unixepoch +** localtime +** utc +** +** Return 0 on success and 1 if there is any kind of error. +*/ +static int parseModifier(const char *zMod, DateTime *p){ + int rc = 1; + int n; + double r; + char *z, zBuf[30]; + z = zBuf; + for(n=0; nrJD += localtimeOffset(p); + clearYMD_HMS_TZ(p); + rc = 0; + } + break; + } + case 'u': { + /* + ** unixepoch + ** + ** Treat the current value of p->rJD as the number of + ** seconds since 1970. Convert to a real julian day number. + */ + if( strcmp(z, "unixepoch")==0 && p->validJD ){ + p->rJD = p->rJD/86400.0 + 2440587.5; + clearYMD_HMS_TZ(p); + rc = 0; + }else if( strcmp(z, "utc")==0 ){ + double c1; + computeJD(p); + c1 = localtimeOffset(p); + p->rJD -= c1; + clearYMD_HMS_TZ(p); + p->rJD += c1 - localtimeOffset(p); + rc = 0; + } + break; + } + case 'w': { + /* + ** weekday N + ** + ** Move the date to the same time on the next occurrence of + ** weekday N where 0==Sunday, 1==Monday, and so forth. If the + ** date is already on the appropriate weekday, this is a no-op. + */ + if( strncmp(z, "weekday ", 8)==0 && getValue(&z[8],&r)>0 + && (n=r)==r && n>=0 && r<7 ){ + int Z; + computeYMD_HMS(p); + p->validTZ = 0; + p->validJD = 0; + computeJD(p); + Z = p->rJD + 1.5; + Z %= 7; + if( Z>n ) Z -= 7; + p->rJD += n - Z; + clearYMD_HMS_TZ(p); + rc = 0; + } + break; + } + case 's': { + /* + ** start of TTTTT + ** + ** Move the date backwards to the beginning of the current day, + ** or month or year. + */ + if( strncmp(z, "start of ", 9)!=0 ) break; + z += 9; + computeYMD(p); + p->validHMS = 1; + p->h = p->m = 0; + p->s = 0.0; + p->validTZ = 0; + p->validJD = 0; + if( strcmp(z,"month")==0 ){ + p->D = 1; + rc = 0; + }else if( strcmp(z,"year")==0 ){ + computeYMD(p); + p->M = 1; + p->D = 1; + rc = 0; + }else if( strcmp(z,"day")==0 ){ + rc = 0; + } + break; + } + case '+': + case '-': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': { + n = getValue(z, &r); + if( n<=0 ) break; + if( z[n]==':' ){ + /* A modifier of the form (+|-)HH:MM:SS.FFF adds (or subtracts) the + ** specified number of hours, minutes, seconds, and fractional seconds + ** to the time. The ".FFF" may be omitted. The ":SS.FFF" may be + ** omitted. + */ + const char *z2 = z; + DateTime tx; + int day; + if( !isdigit(*(u8*)z2) ) z2++; + memset(&tx, 0, sizeof(tx)); + if( parseHhMmSs(z2, &tx) ) break; + computeJD(&tx); + tx.rJD -= 0.5; + day = (int)tx.rJD; + tx.rJD -= day; + if( z[0]=='-' ) tx.rJD = -tx.rJD; + computeJD(p); + clearYMD_HMS_TZ(p); + p->rJD += tx.rJD; + rc = 0; + break; + } + z += n; + while( isspace(*(u8*)z) ) z++; + n = strlen(z); + if( n>10 || n<3 ) break; + if( z[n-1]=='s' ){ z[n-1] = 0; n--; } + computeJD(p); + rc = 0; + if( n==3 && strcmp(z,"day")==0 ){ + p->rJD += r; + }else if( n==4 && strcmp(z,"hour")==0 ){ + p->rJD += r/24.0; + }else if( n==6 && strcmp(z,"minute")==0 ){ + p->rJD += r/(24.0*60.0); + }else if( n==6 && strcmp(z,"second")==0 ){ + p->rJD += r/(24.0*60.0*60.0); + }else if( n==5 && strcmp(z,"month")==0 ){ + int x, y; + computeYMD_HMS(p); + p->M += r; + x = p->M>0 ? (p->M-1)/12 : (p->M-12)/12; + p->Y += x; + p->M -= x*12; + p->validJD = 0; + computeJD(p); + y = r; + if( y!=r ){ + p->rJD += (r - y)*30.0; + } + }else if( n==4 && strcmp(z,"year")==0 ){ + computeYMD_HMS(p); + p->Y += r; + p->validJD = 0; + computeJD(p); + }else{ + rc = 1; + } + clearYMD_HMS_TZ(p); + break; + } + default: { + break; + } + } + return rc; +} + +/* +** Process time function arguments. argv[0] is a date-time stamp. +** argv[1] and following are modifiers. Parse them all and write +** the resulting time into the DateTime structure p. Return 0 +** on success and 1 if there are any errors. +*/ +static int isDate(int argc, sqlite3_value **argv, DateTime *p){ + int i; + if( argc==0 ) return 1; + if( SQLITE_NULL==sqlite3_value_type(argv[0]) || + parseDateOrTime((char*)sqlite3_value_text(argv[0]), p) ) return 1; + for(i=1; i59.999 ) s = 59.999; + sqlite3_snprintf(7, &z[j],"%02.3f", s); + j += strlen(&z[j]); + break; + } + case 'H': sprintf(&z[j],"%02d",x.h); j+=2; break; + case 'W': /* Fall thru */ + case 'j': { + int nDay; /* Number of days since 1st day of year */ + DateTime y = x; + y.validJD = 0; + y.M = 1; + y.D = 1; + computeJD(&y); + nDay = x.rJD - y.rJD + 0.5; + if( zFmt[i]=='W' ){ + int wd; /* 0=Monday, 1=Tuesday, ... 6=Sunday */ + wd = ((int)(x.rJD+0.5)) % 7; + sprintf(&z[j],"%02d",(nDay+7-wd)/7); + j += 2; + }else{ + sprintf(&z[j],"%03d",nDay+1); + j += 3; + } + break; + } + case 'J': sprintf(&z[j],"%.16g",x.rJD); j+=strlen(&z[j]); break; + case 'm': sprintf(&z[j],"%02d",x.M); j+=2; break; + case 'M': sprintf(&z[j],"%02d",x.m); j+=2; break; + case 's': { + sprintf(&z[j],"%d",(int)((x.rJD-2440587.5)*86400.0 + 0.5)); + j += strlen(&z[j]); + break; + } + case 'S': sprintf(&z[j],"%02d",(int)x.s); j+=2; break; + case 'w': z[j++] = (((int)(x.rJD+1.5)) % 7) + '0'; break; + case 'Y': sprintf(&z[j],"%04d",x.Y); j+=strlen(&z[j]); break; + case '%': z[j++] = '%'; break; + } + } + } + z[j] = 0; + sqlite3_result_text(context, z, -1, SQLITE_TRANSIENT); + if( z!=zBuf ){ + sqliteFree(z); + } +} + +/* +** current_time() +** +** This function returns the same value as time('now'). +*/ +static void ctimeFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + sqlite3_value *pVal = sqlite3ValueNew(); + if( pVal ){ + sqlite3ValueSetStr(pVal, -1, "now", SQLITE_UTF8, SQLITE_STATIC); + timeFunc(context, 1, &pVal); + sqlite3ValueFree(pVal); + } +} + +/* +** current_date() +** +** This function returns the same value as date('now'). +*/ +static void cdateFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + sqlite3_value *pVal = sqlite3ValueNew(); + if( pVal ){ + sqlite3ValueSetStr(pVal, -1, "now", SQLITE_UTF8, SQLITE_STATIC); + dateFunc(context, 1, &pVal); + sqlite3ValueFree(pVal); + } +} + +/* +** current_timestamp() +** +** This function returns the same value as datetime('now'). +*/ +static void ctimestampFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + sqlite3_value *pVal = sqlite3ValueNew(); + if( pVal ){ + sqlite3ValueSetStr(pVal, -1, "now", SQLITE_UTF8, SQLITE_STATIC); + datetimeFunc(context, 1, &pVal); + sqlite3ValueFree(pVal); + } +} +#endif /* !defined(SQLITE_OMIT_DATETIME_FUNCS) */ + +#ifdef SQLITE_OMIT_DATETIME_FUNCS +/* +** If the library is compiled to omit the full-scale date and time +** handling (to get a smaller binary), the following minimal version +** of the functions current_time(), current_date() and current_timestamp() +** are included instead. This is to support column declarations that +** include "DEFAULT CURRENT_TIME" etc. +** +** This function uses the C-library functions time(), gmtime() +** and strftime(). The format string to pass to strftime() is supplied +** as the user-data for the function. +*/ +static void currentTimeFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + time_t t; + char *zFormat = (char *)sqlite3_user_data(context); + char zBuf[20]; + + time(&t); +#ifdef SQLITE_TEST + { + extern int sqlite3_current_time; /* See os_XXX.c */ + if( sqlite3_current_time ){ + t = sqlite3_current_time; + } + } +#endif + +#ifdef HAVE_GMTIME_R + { + struct tm sNow; + gmtime_r(&t, &sNow); + strftime(zBuf, 20, zFormat, &sNow); + } +#else + { + struct tm *pTm; + sqlite3OsEnterMutex(); + pTm = gmtime(&t); + strftime(zBuf, 20, zFormat, pTm); + sqlite3OsLeaveMutex(); + } +#endif + + sqlite3_result_text(context, zBuf, -1, SQLITE_TRANSIENT); +} +#endif + +/* +** This function registered all of the above C functions as SQL +** functions. This should be the only routine in this file with +** external linkage. +*/ +void sqlite3RegisterDateTimeFunctions(sqlite3 *db){ +#ifndef SQLITE_OMIT_DATETIME_FUNCS + static const struct { + char *zName; + int nArg; + void (*xFunc)(sqlite3_context*,int,sqlite3_value**); + } aFuncs[] = { + { "julianday", -1, juliandayFunc }, + { "date", -1, dateFunc }, + { "time", -1, timeFunc }, + { "datetime", -1, datetimeFunc }, + { "strftime", -1, strftimeFunc }, + { "current_time", 0, ctimeFunc }, + { "current_timestamp", 0, ctimestampFunc }, + { "current_date", 0, cdateFunc }, + }; + int i; + + for(i=0; izErrMsg and return NULL. If all tables +** are found, return a pointer to the last table. +*/ +Table *sqlite3SrcListLookup(Parse *pParse, SrcList *pSrc){ + Table *pTab = 0; + int i; + struct SrcList_item *pItem; + for(i=0, pItem=pSrc->a; inSrc; i++, pItem++){ + pTab = sqlite3LocateTable(pParse, pItem->zName, pItem->zDatabase); + sqlite3DeleteTable(pParse->db, pItem->pTab); + pItem->pTab = pTab; + if( pTab ){ + pTab->nRef++; + } + } + return pTab; +} + +/* +** Check to make sure the given table is writable. If it is not +** writable, generate an error message and return 1. If it is +** writable return 0; +*/ +int sqlite3IsReadOnly(Parse *pParse, Table *pTab, int viewOk){ + if( (pTab->readOnly && (pParse->db->flags & SQLITE_WriteSchema)==0 + && pParse->nested==0) +#ifndef SQLITE_OMIT_VIRTUALTABLE + || (pTab->pMod && pTab->pMod->pModule->xUpdate==0) +#endif + ){ + sqlite3ErrorMsg(pParse, "table %s may not be modified", pTab->zName); + return 1; + } +#ifndef SQLITE_OMIT_VIEW + if( !viewOk && pTab->pSelect ){ + sqlite3ErrorMsg(pParse,"cannot modify %s because it is a view",pTab->zName); + return 1; + } +#endif + return 0; +} + +/* +** Generate code that will open a table for reading. +*/ +void sqlite3OpenTable( + Parse *p, /* Generate code into this VDBE */ + int iCur, /* The cursor number of the table */ + int iDb, /* The database index in sqlite3.aDb[] */ + Table *pTab, /* The table to be opened */ + int opcode /* OP_OpenRead or OP_OpenWrite */ +){ + Vdbe *v; + if( IsVirtual(pTab) ) return; + v = sqlite3GetVdbe(p); + assert( opcode==OP_OpenWrite || opcode==OP_OpenRead ); + sqlite3TableLock(p, iDb, pTab->tnum, (opcode==OP_OpenWrite), pTab->zName); + sqlite3VdbeAddOp(v, OP_Integer, iDb, 0); + VdbeComment((v, "# %s", pTab->zName)); + sqlite3VdbeAddOp(v, opcode, iCur, pTab->tnum); + sqlite3VdbeAddOp(v, OP_SetNumColumns, iCur, pTab->nCol); +} + + +/* +** Generate code for a DELETE FROM statement. +** +** DELETE FROM table_wxyz WHERE a<5 AND b NOT NULL; +** \________/ \________________/ +** pTabList pWhere +*/ +void sqlite3DeleteFrom( + Parse *pParse, /* The parser context */ + SrcList *pTabList, /* The table from which we should delete things */ + Expr *pWhere /* The WHERE clause. May be null */ +){ + Vdbe *v; /* The virtual database engine */ + Table *pTab; /* The table from which records will be deleted */ + const char *zDb; /* Name of database holding pTab */ + int end, addr = 0; /* A couple addresses of generated code */ + int i; /* Loop counter */ + WhereInfo *pWInfo; /* Information about the WHERE clause */ + Index *pIdx; /* For looping over indices of the table */ + int iCur; /* VDBE Cursor number for pTab */ + sqlite3 *db; /* Main database structure */ + AuthContext sContext; /* Authorization context */ + int oldIdx = -1; /* Cursor for the OLD table of AFTER triggers */ + NameContext sNC; /* Name context to resolve expressions in */ + int iDb; + +#ifndef SQLITE_OMIT_TRIGGER + int isView; /* True if attempting to delete from a view */ + int triggers_exist = 0; /* True if any triggers exist */ +#endif + + sContext.pParse = 0; + if( pParse->nErr || sqlite3MallocFailed() ){ + goto delete_from_cleanup; + } + db = pParse->db; + assert( pTabList->nSrc==1 ); + + /* Locate the table which we want to delete. This table has to be + ** put in an SrcList structure because some of the subroutines we + ** will be calling are designed to work with multiple tables and expect + ** an SrcList* parameter instead of just a Table* parameter. + */ + pTab = sqlite3SrcListLookup(pParse, pTabList); + if( pTab==0 ) goto delete_from_cleanup; + + /* Figure out if we have any triggers and if the table being + ** deleted from is a view + */ +#ifndef SQLITE_OMIT_TRIGGER + triggers_exist = sqlite3TriggersExist(pParse, pTab, TK_DELETE, 0); + isView = pTab->pSelect!=0; +#else +# define triggers_exist 0 +# define isView 0 +#endif +#ifdef SQLITE_OMIT_VIEW +# undef isView +# define isView 0 +#endif + + if( sqlite3IsReadOnly(pParse, pTab, triggers_exist) ){ + goto delete_from_cleanup; + } + iDb = sqlite3SchemaToIndex(db, pTab->pSchema); + assert( iDbnDb ); + zDb = db->aDb[iDb].zName; + if( sqlite3AuthCheck(pParse, SQLITE_DELETE, pTab->zName, 0, zDb) ){ + goto delete_from_cleanup; + } + + /* If pTab is really a view, make sure it has been initialized. + */ + if( sqlite3ViewGetColumnNames(pParse, pTab) ){ + goto delete_from_cleanup; + } + + /* Allocate a cursor used to store the old.* data for a trigger. + */ + if( triggers_exist ){ + oldIdx = pParse->nTab++; + } + + /* Resolve the column names in the WHERE clause. + */ + assert( pTabList->nSrc==1 ); + iCur = pTabList->a[0].iCursor = pParse->nTab++; + memset(&sNC, 0, sizeof(sNC)); + sNC.pParse = pParse; + sNC.pSrcList = pTabList; + if( sqlite3ExprResolveNames(&sNC, pWhere) ){ + goto delete_from_cleanup; + } + + /* Start the view context + */ + if( isView ){ + sqlite3AuthContextPush(pParse, &sContext, pTab->zName); + } + + /* Begin generating code. + */ + v = sqlite3GetVdbe(pParse); + if( v==0 ){ + goto delete_from_cleanup; + } + if( pParse->nested==0 ) sqlite3VdbeCountChanges(v); + sqlite3BeginWriteOperation(pParse, triggers_exist, iDb); + + /* If we are trying to delete from a view, realize that view into + ** a ephemeral table. + */ + if( isView ){ + Select *pView = sqlite3SelectDup(pTab->pSelect); + sqlite3Select(pParse, pView, SRT_EphemTab, iCur, 0, 0, 0, 0); + sqlite3SelectDelete(pView); + } + + /* Initialize the counter of the number of rows deleted, if + ** we are counting rows. + */ + if( db->flags & SQLITE_CountRows ){ + sqlite3VdbeAddOp(v, OP_Integer, 0, 0); + } + + /* Special case: A DELETE without a WHERE clause deletes everything. + ** It is easier just to erase the whole table. Note, however, that + ** this means that the row change count will be incorrect. + */ + if( pWhere==0 && !triggers_exist && !IsVirtual(pTab) ){ + if( db->flags & SQLITE_CountRows ){ + /* If counting rows deleted, just count the total number of + ** entries in the table. */ + int endOfLoop = sqlite3VdbeMakeLabel(v); + int addr2; + if( !isView ){ + sqlite3OpenTable(pParse, iCur, iDb, pTab, OP_OpenRead); + } + sqlite3VdbeAddOp(v, OP_Rewind, iCur, sqlite3VdbeCurrentAddr(v)+2); + addr2 = sqlite3VdbeAddOp(v, OP_AddImm, 1, 0); + sqlite3VdbeAddOp(v, OP_Next, iCur, addr2); + sqlite3VdbeResolveLabel(v, endOfLoop); + sqlite3VdbeAddOp(v, OP_Close, iCur, 0); + } + if( !isView ){ + sqlite3VdbeAddOp(v, OP_Clear, pTab->tnum, iDb); + if( !pParse->nested ){ + sqlite3VdbeChangeP3(v, -1, pTab->zName, P3_STATIC); + } + for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ + assert( pIdx->pSchema==pTab->pSchema ); + sqlite3VdbeAddOp(v, OP_Clear, pIdx->tnum, iDb); + } + } + } + /* The usual case: There is a WHERE clause so we have to scan through + ** the table and pick which records to delete. + */ + else{ + /* Begin the database scan + */ + pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, 0); + if( pWInfo==0 ) goto delete_from_cleanup; + + /* Remember the rowid of every item to be deleted. + */ + sqlite3VdbeAddOp(v, IsVirtual(pTab) ? OP_VRowid : OP_Rowid, iCur, 0); + sqlite3VdbeAddOp(v, OP_FifoWrite, 0, 0); + if( db->flags & SQLITE_CountRows ){ + sqlite3VdbeAddOp(v, OP_AddImm, 1, 0); + } + + /* End the database scan loop. + */ + sqlite3WhereEnd(pWInfo); + + /* Open the pseudo-table used to store OLD if there are triggers. + */ + if( triggers_exist ){ + sqlite3VdbeAddOp(v, OP_OpenPseudo, oldIdx, 0); + sqlite3VdbeAddOp(v, OP_SetNumColumns, oldIdx, pTab->nCol); + } + + /* Delete every item whose key was written to the list during the + ** database scan. We have to delete items after the scan is complete + ** because deleting an item can change the scan order. + */ + end = sqlite3VdbeMakeLabel(v); + + /* This is the beginning of the delete loop when there are + ** row triggers. + */ + if( triggers_exist ){ + addr = sqlite3VdbeAddOp(v, OP_FifoRead, 0, end); + if( !isView ){ + sqlite3VdbeAddOp(v, OP_Dup, 0, 0); + sqlite3OpenTable(pParse, iCur, iDb, pTab, OP_OpenRead); + } + sqlite3VdbeAddOp(v, OP_MoveGe, iCur, 0); + sqlite3VdbeAddOp(v, OP_Rowid, iCur, 0); + sqlite3VdbeAddOp(v, OP_RowData, iCur, 0); + sqlite3VdbeAddOp(v, OP_Insert, oldIdx, 0); + if( !isView ){ + sqlite3VdbeAddOp(v, OP_Close, iCur, 0); + } + + (void)sqlite3CodeRowTrigger(pParse, TK_DELETE, 0, TRIGGER_BEFORE, pTab, + -1, oldIdx, (pParse->trigStack)?pParse->trigStack->orconf:OE_Default, + addr); + } + + if( !isView ){ + /* Open cursors for the table we are deleting from and all its + ** indices. If there are row triggers, this happens inside the + ** OP_FifoRead loop because the cursor have to all be closed + ** before the trigger fires. If there are no row triggers, the + ** cursors are opened only once on the outside the loop. + */ + sqlite3OpenTableAndIndices(pParse, pTab, iCur, OP_OpenWrite); + + /* This is the beginning of the delete loop when there are no + ** row triggers */ + if( !triggers_exist ){ + addr = sqlite3VdbeAddOp(v, OP_FifoRead, 0, end); + } + + /* Delete the row */ +#ifndef SQLITE_OMIT_VIRTUALTABLE + if( IsVirtual(pTab) ){ + pParse->pVirtualLock = pTab; + sqlite3VdbeOp3(v, OP_VUpdate, 0, 1, (const char*)pTab->pVtab, P3_VTAB); + }else +#endif + { + sqlite3GenerateRowDelete(db, v, pTab, iCur, pParse->nested==0); + } + } + + /* If there are row triggers, close all cursors then invoke + ** the AFTER triggers + */ + if( triggers_exist ){ + if( !isView ){ + for(i=1, pIdx=pTab->pIndex; pIdx; i++, pIdx=pIdx->pNext){ + sqlite3VdbeAddOp(v, OP_Close, iCur + i, pIdx->tnum); + } + sqlite3VdbeAddOp(v, OP_Close, iCur, 0); + } + (void)sqlite3CodeRowTrigger(pParse, TK_DELETE, 0, TRIGGER_AFTER, pTab, -1, + oldIdx, (pParse->trigStack)?pParse->trigStack->orconf:OE_Default, + addr); + } + + /* End of the delete loop */ + sqlite3VdbeAddOp(v, OP_Goto, 0, addr); + sqlite3VdbeResolveLabel(v, end); + + /* Close the cursors after the loop if there are no row triggers */ + if( !triggers_exist && !IsVirtual(pTab) ){ + for(i=1, pIdx=pTab->pIndex; pIdx; i++, pIdx=pIdx->pNext){ + sqlite3VdbeAddOp(v, OP_Close, iCur + i, pIdx->tnum); + } + sqlite3VdbeAddOp(v, OP_Close, iCur, 0); + } + } + + /* + ** Return the number of rows that were deleted. If this routine is + ** generating code because of a call to sqlite3NestedParse(), do not + ** invoke the callback function. + */ + if( db->flags & SQLITE_CountRows && pParse->nested==0 && !pParse->trigStack ){ + sqlite3VdbeAddOp(v, OP_Callback, 1, 0); + sqlite3VdbeSetNumCols(v, 1); + sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "rows deleted", P3_STATIC); + } + +delete_from_cleanup: + sqlite3AuthContextPop(&sContext); + sqlite3SrcListDelete(pTabList); + sqlite3ExprDelete(pWhere); + return; +} + +/* +** This routine generates VDBE code that causes a single row of a +** single table to be deleted. +** +** The VDBE must be in a particular state when this routine is called. +** These are the requirements: +** +** 1. A read/write cursor pointing to pTab, the table containing the row +** to be deleted, must be opened as cursor number "base". +** +** 2. Read/write cursors for all indices of pTab must be open as +** cursor number base+i for the i-th index. +** +** 3. The record number of the row to be deleted must be on the top +** of the stack. +** +** This routine pops the top of the stack to remove the record number +** and then generates code to remove both the table record and all index +** entries that point to that record. +*/ +void sqlite3GenerateRowDelete( + sqlite3 *db, /* The database containing the index */ + Vdbe *v, /* Generate code into this VDBE */ + Table *pTab, /* Table containing the row to be deleted */ + int iCur, /* Cursor number for the table */ + int count /* Increment the row change counter */ +){ + int addr; + addr = sqlite3VdbeAddOp(v, OP_NotExists, iCur, 0); + sqlite3GenerateRowIndexDelete(v, pTab, iCur, 0); + sqlite3VdbeAddOp(v, OP_Delete, iCur, (count?OPFLAG_NCHANGE:0)); + if( count ){ + sqlite3VdbeChangeP3(v, -1, pTab->zName, P3_STATIC); + } + sqlite3VdbeJumpHere(v, addr); +} + +/* +** This routine generates VDBE code that causes the deletion of all +** index entries associated with a single row of a single table. +** +** The VDBE must be in a particular state when this routine is called. +** These are the requirements: +** +** 1. A read/write cursor pointing to pTab, the table containing the row +** to be deleted, must be opened as cursor number "iCur". +** +** 2. Read/write cursors for all indices of pTab must be open as +** cursor number iCur+i for the i-th index. +** +** 3. The "iCur" cursor must be pointing to the row that is to be +** deleted. +*/ +void sqlite3GenerateRowIndexDelete( + Vdbe *v, /* Generate code into this VDBE */ + Table *pTab, /* Table containing the row to be deleted */ + int iCur, /* Cursor number for the table */ + char *aIdxUsed /* Only delete if aIdxUsed!=0 && aIdxUsed[i]!=0 */ +){ + int i; + Index *pIdx; + + for(i=1, pIdx=pTab->pIndex; pIdx; i++, pIdx=pIdx->pNext){ + if( aIdxUsed!=0 && aIdxUsed[i-1]==0 ) continue; + sqlite3GenerateIndexKey(v, pIdx, iCur); + sqlite3VdbeAddOp(v, OP_IdxDelete, iCur+i, 0); + } +} + +/* +** Generate code that will assemble an index key and put it on the top +** of the tack. The key with be for index pIdx which is an index on pTab. +** iCur is the index of a cursor open on the pTab table and pointing to +** the entry that needs indexing. +*/ +void sqlite3GenerateIndexKey( + Vdbe *v, /* Generate code into this VDBE */ + Index *pIdx, /* The index for which to generate a key */ + int iCur /* Cursor number for the pIdx->pTable table */ +){ + int j; + Table *pTab = pIdx->pTable; + + sqlite3VdbeAddOp(v, OP_Rowid, iCur, 0); + for(j=0; jnColumn; j++){ + int idx = pIdx->aiColumn[j]; + if( idx==pTab->iPKey ){ + sqlite3VdbeAddOp(v, OP_Dup, j, 0); + }else{ + sqlite3VdbeAddOp(v, OP_Column, iCur, idx); + sqlite3ColumnDefault(v, pTab, idx); + } + } + sqlite3VdbeAddOp(v, OP_MakeIdxRec, pIdx->nColumn, 0); + sqlite3IndexAffinityStr(v, pIdx); +} diff --git a/src/dep/src/sqlite/expr.c b/src/dep/src/sqlite/expr.c new file mode 100644 index 0000000..aa70bdd --- /dev/null +++ b/src/dep/src/sqlite/expr.c @@ -0,0 +1,2358 @@ +/* +** 2001 September 15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains routines used for analyzing expressions and +** for generating VDBE code that evaluates expressions in SQLite. +** +** $Id: expr.c,v 1.271 2007/01/04 01:20:29 drh Exp $ +*/ +#include "sqliteInt.h" +#include + +/* +** Return the 'affinity' of the expression pExpr if any. +** +** If pExpr is a column, a reference to a column via an 'AS' alias, +** or a sub-select with a column as the return value, then the +** affinity of that column is returned. Otherwise, 0x00 is returned, +** indicating no affinity for the expression. +** +** i.e. the WHERE clause expresssions in the following statements all +** have an affinity: +** +** CREATE TABLE t1(a); +** SELECT * FROM t1 WHERE a; +** SELECT a AS b FROM t1 WHERE b; +** SELECT * FROM t1 WHERE (select a from t1); +*/ +char sqlite3ExprAffinity(Expr *pExpr){ + int op = pExpr->op; + if( op==TK_AS ){ + return sqlite3ExprAffinity(pExpr->pLeft); + } + if( op==TK_SELECT ){ + return sqlite3ExprAffinity(pExpr->pSelect->pEList->a[0].pExpr); + } +#ifndef SQLITE_OMIT_CAST + if( op==TK_CAST ){ + return sqlite3AffinityType(&pExpr->token); + } +#endif + return pExpr->affinity; +} + +/* +** Return the default collation sequence for the expression pExpr. If +** there is no default collation type, return 0. +*/ +CollSeq *sqlite3ExprCollSeq(Parse *pParse, Expr *pExpr){ + CollSeq *pColl = 0; + if( pExpr ){ + pColl = pExpr->pColl; + if( (pExpr->op==TK_AS || pExpr->op==TK_CAST) && !pColl ){ + return sqlite3ExprCollSeq(pParse, pExpr->pLeft); + } + } + if( sqlite3CheckCollSeq(pParse, pColl) ){ + pColl = 0; + } + return pColl; +} + +/* +** pExpr is an operand of a comparison operator. aff2 is the +** type affinity of the other operand. This routine returns the +** type affinity that should be used for the comparison operator. +*/ +char sqlite3CompareAffinity(Expr *pExpr, char aff2){ + char aff1 = sqlite3ExprAffinity(pExpr); + if( aff1 && aff2 ){ + /* Both sides of the comparison are columns. If one has numeric + ** affinity, use that. Otherwise use no affinity. + */ + if( sqlite3IsNumericAffinity(aff1) || sqlite3IsNumericAffinity(aff2) ){ + return SQLITE_AFF_NUMERIC; + }else{ + return SQLITE_AFF_NONE; + } + }else if( !aff1 && !aff2 ){ + /* Neither side of the comparison is a column. Compare the + ** results directly. + */ + return SQLITE_AFF_NONE; + }else{ + /* One side is a column, the other is not. Use the columns affinity. */ + assert( aff1==0 || aff2==0 ); + return (aff1 + aff2); + } +} + +/* +** pExpr is a comparison operator. Return the type affinity that should +** be applied to both operands prior to doing the comparison. +*/ +static char comparisonAffinity(Expr *pExpr){ + char aff; + assert( pExpr->op==TK_EQ || pExpr->op==TK_IN || pExpr->op==TK_LT || + pExpr->op==TK_GT || pExpr->op==TK_GE || pExpr->op==TK_LE || + pExpr->op==TK_NE ); + assert( pExpr->pLeft ); + aff = sqlite3ExprAffinity(pExpr->pLeft); + if( pExpr->pRight ){ + aff = sqlite3CompareAffinity(pExpr->pRight, aff); + } + else if( pExpr->pSelect ){ + aff = sqlite3CompareAffinity(pExpr->pSelect->pEList->a[0].pExpr, aff); + } + else if( !aff ){ + aff = SQLITE_AFF_NUMERIC; + } + return aff; +} + +/* +** pExpr is a comparison expression, eg. '=', '<', IN(...) etc. +** idx_affinity is the affinity of an indexed column. Return true +** if the index with affinity idx_affinity may be used to implement +** the comparison in pExpr. +*/ +int sqlite3IndexAffinityOk(Expr *pExpr, char idx_affinity){ + char aff = comparisonAffinity(pExpr); + switch( aff ){ + case SQLITE_AFF_NONE: + return 1; + case SQLITE_AFF_TEXT: + return idx_affinity==SQLITE_AFF_TEXT; + default: + return sqlite3IsNumericAffinity(idx_affinity); + } +} + +/* +** Return the P1 value that should be used for a binary comparison +** opcode (OP_Eq, OP_Ge etc.) used to compare pExpr1 and pExpr2. +** If jumpIfNull is true, then set the low byte of the returned +** P1 value to tell the opcode to jump if either expression +** evaluates to NULL. +*/ +static int binaryCompareP1(Expr *pExpr1, Expr *pExpr2, int jumpIfNull){ + char aff = sqlite3ExprAffinity(pExpr2); + return ((int)sqlite3CompareAffinity(pExpr1, aff))+(jumpIfNull?0x100:0); +} + +/* +** Return a pointer to the collation sequence that should be used by +** a binary comparison operator comparing pLeft and pRight. +** +** If the left hand expression has a collating sequence type, then it is +** used. Otherwise the collation sequence for the right hand expression +** is used, or the default (BINARY) if neither expression has a collating +** type. +*/ +static CollSeq* binaryCompareCollSeq(Parse *pParse, Expr *pLeft, Expr *pRight){ + CollSeq *pColl = sqlite3ExprCollSeq(pParse, pLeft); + if( !pColl ){ + pColl = sqlite3ExprCollSeq(pParse, pRight); + } + return pColl; +} + +/* +** Generate code for a comparison operator. +*/ +static int codeCompare( + Parse *pParse, /* The parsing (and code generating) context */ + Expr *pLeft, /* The left operand */ + Expr *pRight, /* The right operand */ + int opcode, /* The comparison opcode */ + int dest, /* Jump here if true. */ + int jumpIfNull /* If true, jump if either operand is NULL */ +){ + int p1 = binaryCompareP1(pLeft, pRight, jumpIfNull); + CollSeq *p3 = binaryCompareCollSeq(pParse, pLeft, pRight); + return sqlite3VdbeOp3(pParse->pVdbe, opcode, p1, dest, (void*)p3, P3_COLLSEQ); +} + +/* +** Construct a new expression node and return a pointer to it. Memory +** for this node is obtained from sqliteMalloc(). The calling function +** is responsible for making sure the node eventually gets freed. +*/ +Expr *sqlite3Expr(int op, Expr *pLeft, Expr *pRight, const Token *pToken){ + Expr *pNew; + pNew = sqliteMalloc( sizeof(Expr) ); + if( pNew==0 ){ + /* When malloc fails, delete pLeft and pRight. Expressions passed to + ** this function must always be allocated with sqlite3Expr() for this + ** reason. + */ + sqlite3ExprDelete(pLeft); + sqlite3ExprDelete(pRight); + return 0; + } + pNew->op = op; + pNew->pLeft = pLeft; + pNew->pRight = pRight; + pNew->iAgg = -1; + if( pToken ){ + assert( pToken->dyn==0 ); + pNew->span = pNew->token = *pToken; + }else if( pLeft && pRight ){ + sqlite3ExprSpan(pNew, &pLeft->span, &pRight->span); + } + return pNew; +} + +/* +** Works like sqlite3Expr() but frees its pLeft and pRight arguments +** if it fails due to a malloc problem. +*/ +Expr *sqlite3ExprOrFree(int op, Expr *pLeft, Expr *pRight, const Token *pToken){ + Expr *pNew = sqlite3Expr(op, pLeft, pRight, pToken); + if( pNew==0 ){ + sqlite3ExprDelete(pLeft); + sqlite3ExprDelete(pRight); + } + return pNew; +} + +/* +** When doing a nested parse, you can include terms in an expression +** that look like this: #0 #1 #2 ... These terms refer to elements +** on the stack. "#0" means the top of the stack. +** "#1" means the next down on the stack. And so forth. +** +** This routine is called by the parser to deal with on of those terms. +** It immediately generates code to store the value in a memory location. +** The returns an expression that will code to extract the value from +** that memory location as needed. +*/ +Expr *sqlite3RegisterExpr(Parse *pParse, Token *pToken){ + Vdbe *v = pParse->pVdbe; + Expr *p; + int depth; + if( pParse->nested==0 ){ + sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", pToken); + return 0; + } + if( v==0 ) return 0; + p = sqlite3Expr(TK_REGISTER, 0, 0, pToken); + if( p==0 ){ + return 0; /* Malloc failed */ + } + depth = atoi((char*)&pToken->z[1]); + p->iTable = pParse->nMem++; + sqlite3VdbeAddOp(v, OP_Dup, depth, 0); + sqlite3VdbeAddOp(v, OP_MemStore, p->iTable, 1); + return p; +} + +/* +** Join two expressions using an AND operator. If either expression is +** NULL, then just return the other expression. +*/ +Expr *sqlite3ExprAnd(Expr *pLeft, Expr *pRight){ + if( pLeft==0 ){ + return pRight; + }else if( pRight==0 ){ + return pLeft; + }else{ + return sqlite3Expr(TK_AND, pLeft, pRight, 0); + } +} + +/* +** Set the Expr.span field of the given expression to span all +** text between the two given tokens. +*/ +void sqlite3ExprSpan(Expr *pExpr, Token *pLeft, Token *pRight){ + assert( pRight!=0 ); + assert( pLeft!=0 ); + if( !sqlite3MallocFailed() && pRight->z && pLeft->z ){ + assert( pLeft->dyn==0 || pLeft->z[pLeft->n]==0 ); + if( pLeft->dyn==0 && pRight->dyn==0 ){ + pExpr->span.z = pLeft->z; + pExpr->span.n = pRight->n + (pRight->z - pLeft->z); + }else{ + pExpr->span.z = 0; + } + } +} + +/* +** Construct a new expression node for a function with multiple +** arguments. +*/ +Expr *sqlite3ExprFunction(ExprList *pList, Token *pToken){ + Expr *pNew; + assert( pToken ); + pNew = sqliteMalloc( sizeof(Expr) ); + if( pNew==0 ){ + sqlite3ExprListDelete(pList); /* Avoid leaking memory when malloc fails */ + return 0; + } + pNew->op = TK_FUNCTION; + pNew->pList = pList; + assert( pToken->dyn==0 ); + pNew->token = *pToken; + pNew->span = pNew->token; + return pNew; +} + +/* +** Assign a variable number to an expression that encodes a wildcard +** in the original SQL statement. +** +** Wildcards consisting of a single "?" are assigned the next sequential +** variable number. +** +** Wildcards of the form "?nnn" are assigned the number "nnn". We make +** sure "nnn" is not too be to avoid a denial of service attack when +** the SQL statement comes from an external source. +** +** Wildcards of the form ":aaa" or "$aaa" are assigned the same number +** as the previous instance of the same wildcard. Or if this is the first +** instance of the wildcard, the next sequenial variable number is +** assigned. +*/ +void sqlite3ExprAssignVarNumber(Parse *pParse, Expr *pExpr){ + Token *pToken; + if( pExpr==0 ) return; + pToken = &pExpr->token; + assert( pToken->n>=1 ); + assert( pToken->z!=0 ); + assert( pToken->z[0]!=0 ); + if( pToken->n==1 ){ + /* Wildcard of the form "?". Assign the next variable number */ + pExpr->iTable = ++pParse->nVar; + }else if( pToken->z[0]=='?' ){ + /* Wildcard of the form "?nnn". Convert "nnn" to an integer and + ** use it as the variable number */ + int i; + pExpr->iTable = i = atoi((char*)&pToken->z[1]); + if( i<1 || i>SQLITE_MAX_VARIABLE_NUMBER ){ + sqlite3ErrorMsg(pParse, "variable number must be between ?1 and ?%d", + SQLITE_MAX_VARIABLE_NUMBER); + } + if( i>pParse->nVar ){ + pParse->nVar = i; + } + }else{ + /* Wildcards of the form ":aaa" or "$aaa". Reuse the same variable + ** number as the prior appearance of the same name, or if the name + ** has never appeared before, reuse the same variable number + */ + int i, n; + n = pToken->n; + for(i=0; inVarExpr; i++){ + Expr *pE; + if( (pE = pParse->apVarExpr[i])!=0 + && pE->token.n==n + && memcmp(pE->token.z, pToken->z, n)==0 ){ + pExpr->iTable = pE->iTable; + break; + } + } + if( i>=pParse->nVarExpr ){ + pExpr->iTable = ++pParse->nVar; + if( pParse->nVarExpr>=pParse->nVarExprAlloc-1 ){ + pParse->nVarExprAlloc += pParse->nVarExprAlloc + 10; + sqliteReallocOrFree((void**)&pParse->apVarExpr, + pParse->nVarExprAlloc*sizeof(pParse->apVarExpr[0]) ); + } + if( !sqlite3MallocFailed() ){ + assert( pParse->apVarExpr!=0 ); + pParse->apVarExpr[pParse->nVarExpr++] = pExpr; + } + } + } +} + +/* +** Recursively delete an expression tree. +*/ +void sqlite3ExprDelete(Expr *p){ + if( p==0 ) return; + if( p->span.dyn ) sqliteFree((char*)p->span.z); + if( p->token.dyn ) sqliteFree((char*)p->token.z); + sqlite3ExprDelete(p->pLeft); + sqlite3ExprDelete(p->pRight); + sqlite3ExprListDelete(p->pList); + sqlite3SelectDelete(p->pSelect); + sqliteFree(p); +} + +/* +** The Expr.token field might be a string literal that is quoted. +** If so, remove the quotation marks. +*/ +void sqlite3DequoteExpr(Expr *p){ + if( ExprHasAnyProperty(p, EP_Dequoted) ){ + return; + } + ExprSetProperty(p, EP_Dequoted); + if( p->token.dyn==0 ){ + sqlite3TokenCopy(&p->token, &p->token); + } + sqlite3Dequote((char*)p->token.z); +} + + +/* +** The following group of routines make deep copies of expressions, +** expression lists, ID lists, and select statements. The copies can +** be deleted (by being passed to their respective ...Delete() routines) +** without effecting the originals. +** +** The expression list, ID, and source lists return by sqlite3ExprListDup(), +** sqlite3IdListDup(), and sqlite3SrcListDup() can not be further expanded +** by subsequent calls to sqlite*ListAppend() routines. +** +** Any tables that the SrcList might point to are not duplicated. +*/ +Expr *sqlite3ExprDup(Expr *p){ + Expr *pNew; + if( p==0 ) return 0; + pNew = sqliteMallocRaw( sizeof(*p) ); + if( pNew==0 ) return 0; + memcpy(pNew, p, sizeof(*pNew)); + if( p->token.z!=0 ){ + pNew->token.z = (u8*)sqliteStrNDup((char*)p->token.z, p->token.n); + pNew->token.dyn = 1; + }else{ + assert( pNew->token.z==0 ); + } + pNew->span.z = 0; + pNew->pLeft = sqlite3ExprDup(p->pLeft); + pNew->pRight = sqlite3ExprDup(p->pRight); + pNew->pList = sqlite3ExprListDup(p->pList); + pNew->pSelect = sqlite3SelectDup(p->pSelect); + pNew->pTab = p->pTab; + return pNew; +} +void sqlite3TokenCopy(Token *pTo, Token *pFrom){ + if( pTo->dyn ) sqliteFree((char*)pTo->z); + if( pFrom->z ){ + pTo->n = pFrom->n; + pTo->z = (u8*)sqliteStrNDup((char*)pFrom->z, pFrom->n); + pTo->dyn = 1; + }else{ + pTo->z = 0; + } +} +ExprList *sqlite3ExprListDup(ExprList *p){ + ExprList *pNew; + struct ExprList_item *pItem, *pOldItem; + int i; + if( p==0 ) return 0; + pNew = sqliteMalloc( sizeof(*pNew) ); + if( pNew==0 ) return 0; + pNew->nExpr = pNew->nAlloc = p->nExpr; + pNew->a = pItem = sqliteMalloc( p->nExpr*sizeof(p->a[0]) ); + if( pItem==0 ){ + sqliteFree(pNew); + return 0; + } + pOldItem = p->a; + for(i=0; inExpr; i++, pItem++, pOldItem++){ + Expr *pNewExpr, *pOldExpr; + pItem->pExpr = pNewExpr = sqlite3ExprDup(pOldExpr = pOldItem->pExpr); + if( pOldExpr->span.z!=0 && pNewExpr ){ + /* Always make a copy of the span for top-level expressions in the + ** expression list. The logic in SELECT processing that determines + ** the names of columns in the result set needs this information */ + sqlite3TokenCopy(&pNewExpr->span, &pOldExpr->span); + } + assert( pNewExpr==0 || pNewExpr->span.z!=0 + || pOldExpr->span.z==0 + || sqlite3MallocFailed() ); + pItem->zName = sqliteStrDup(pOldItem->zName); + pItem->sortOrder = pOldItem->sortOrder; + pItem->isAgg = pOldItem->isAgg; + pItem->done = 0; + } + return pNew; +} + +/* +** If cursors, triggers, views and subqueries are all omitted from +** the build, then none of the following routines, except for +** sqlite3SelectDup(), can be called. sqlite3SelectDup() is sometimes +** called with a NULL argument. +*/ +#if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_TRIGGER) \ + || !defined(SQLITE_OMIT_SUBQUERY) +SrcList *sqlite3SrcListDup(SrcList *p){ + SrcList *pNew; + int i; + int nByte; + if( p==0 ) return 0; + nByte = sizeof(*p) + (p->nSrc>0 ? sizeof(p->a[0]) * (p->nSrc-1) : 0); + pNew = sqliteMallocRaw( nByte ); + if( pNew==0 ) return 0; + pNew->nSrc = pNew->nAlloc = p->nSrc; + for(i=0; inSrc; i++){ + struct SrcList_item *pNewItem = &pNew->a[i]; + struct SrcList_item *pOldItem = &p->a[i]; + Table *pTab; + pNewItem->zDatabase = sqliteStrDup(pOldItem->zDatabase); + pNewItem->zName = sqliteStrDup(pOldItem->zName); + pNewItem->zAlias = sqliteStrDup(pOldItem->zAlias); + pNewItem->jointype = pOldItem->jointype; + pNewItem->iCursor = pOldItem->iCursor; + pNewItem->isPopulated = pOldItem->isPopulated; + pTab = pNewItem->pTab = pOldItem->pTab; + if( pTab ){ + pTab->nRef++; + } + pNewItem->pSelect = sqlite3SelectDup(pOldItem->pSelect); + pNewItem->pOn = sqlite3ExprDup(pOldItem->pOn); + pNewItem->pUsing = sqlite3IdListDup(pOldItem->pUsing); + pNewItem->colUsed = pOldItem->colUsed; + } + return pNew; +} +IdList *sqlite3IdListDup(IdList *p){ + IdList *pNew; + int i; + if( p==0 ) return 0; + pNew = sqliteMallocRaw( sizeof(*pNew) ); + if( pNew==0 ) return 0; + pNew->nId = pNew->nAlloc = p->nId; + pNew->a = sqliteMallocRaw( p->nId*sizeof(p->a[0]) ); + if( pNew->a==0 ){ + sqliteFree(pNew); + return 0; + } + for(i=0; inId; i++){ + struct IdList_item *pNewItem = &pNew->a[i]; + struct IdList_item *pOldItem = &p->a[i]; + pNewItem->zName = sqliteStrDup(pOldItem->zName); + pNewItem->idx = pOldItem->idx; + } + return pNew; +} +Select *sqlite3SelectDup(Select *p){ + Select *pNew; + if( p==0 ) return 0; + pNew = sqliteMallocRaw( sizeof(*p) ); + if( pNew==0 ) return 0; + pNew->isDistinct = p->isDistinct; + pNew->pEList = sqlite3ExprListDup(p->pEList); + pNew->pSrc = sqlite3SrcListDup(p->pSrc); + pNew->pWhere = sqlite3ExprDup(p->pWhere); + pNew->pGroupBy = sqlite3ExprListDup(p->pGroupBy); + pNew->pHaving = sqlite3ExprDup(p->pHaving); + pNew->pOrderBy = sqlite3ExprListDup(p->pOrderBy); + pNew->op = p->op; + pNew->pPrior = sqlite3SelectDup(p->pPrior); + pNew->pLimit = sqlite3ExprDup(p->pLimit); + pNew->pOffset = sqlite3ExprDup(p->pOffset); + pNew->iLimit = -1; + pNew->iOffset = -1; + pNew->isResolved = p->isResolved; + pNew->isAgg = p->isAgg; + pNew->usesEphm = 0; + pNew->disallowOrderBy = 0; + pNew->pRightmost = 0; + pNew->addrOpenEphm[0] = -1; + pNew->addrOpenEphm[1] = -1; + pNew->addrOpenEphm[2] = -1; + return pNew; +} +#else +Select *sqlite3SelectDup(Select *p){ + assert( p==0 ); + return 0; +} +#endif + + +/* +** Add a new element to the end of an expression list. If pList is +** initially NULL, then create a new expression list. +*/ +ExprList *sqlite3ExprListAppend(ExprList *pList, Expr *pExpr, Token *pName){ + if( pList==0 ){ + pList = sqliteMalloc( sizeof(ExprList) ); + if( pList==0 ){ + goto no_mem; + } + assert( pList->nAlloc==0 ); + } + if( pList->nAlloc<=pList->nExpr ){ + struct ExprList_item *a; + int n = pList->nAlloc*2 + 4; + a = sqliteRealloc(pList->a, n*sizeof(pList->a[0])); + if( a==0 ){ + goto no_mem; + } + pList->a = a; + pList->nAlloc = n; + } + assert( pList->a!=0 ); + if( pExpr || pName ){ + struct ExprList_item *pItem = &pList->a[pList->nExpr++]; + memset(pItem, 0, sizeof(*pItem)); + pItem->zName = sqlite3NameFromToken(pName); + pItem->pExpr = pExpr; + } + return pList; + +no_mem: + /* Avoid leaking memory if malloc has failed. */ + sqlite3ExprDelete(pExpr); + sqlite3ExprListDelete(pList); + return 0; +} + +/* +** Delete an entire expression list. +*/ +void sqlite3ExprListDelete(ExprList *pList){ + int i; + struct ExprList_item *pItem; + if( pList==0 ) return; + assert( pList->a!=0 || (pList->nExpr==0 && pList->nAlloc==0) ); + assert( pList->nExpr<=pList->nAlloc ); + for(pItem=pList->a, i=0; inExpr; i++, pItem++){ + sqlite3ExprDelete(pItem->pExpr); + sqliteFree(pItem->zName); + } + sqliteFree(pList->a); + sqliteFree(pList); +} + +/* +** Walk an expression tree. Call xFunc for each node visited. +** +** The return value from xFunc determines whether the tree walk continues. +** 0 means continue walking the tree. 1 means do not walk children +** of the current node but continue with siblings. 2 means abandon +** the tree walk completely. +** +** The return value from this routine is 1 to abandon the tree walk +** and 0 to continue. +** +** NOTICE: This routine does *not* descend into subqueries. +*/ +static int walkExprList(ExprList *, int (*)(void *, Expr*), void *); +static int walkExprTree(Expr *pExpr, int (*xFunc)(void*,Expr*), void *pArg){ + int rc; + if( pExpr==0 ) return 0; + rc = (*xFunc)(pArg, pExpr); + if( rc==0 ){ + if( walkExprTree(pExpr->pLeft, xFunc, pArg) ) return 1; + if( walkExprTree(pExpr->pRight, xFunc, pArg) ) return 1; + if( walkExprList(pExpr->pList, xFunc, pArg) ) return 1; + } + return rc>1; +} + +/* +** Call walkExprTree() for every expression in list p. +*/ +static int walkExprList(ExprList *p, int (*xFunc)(void *, Expr*), void *pArg){ + int i; + struct ExprList_item *pItem; + if( !p ) return 0; + for(i=p->nExpr, pItem=p->a; i>0; i--, pItem++){ + if( walkExprTree(pItem->pExpr, xFunc, pArg) ) return 1; + } + return 0; +} + +/* +** Call walkExprTree() for every expression in Select p, not including +** expressions that are part of sub-selects in any FROM clause or the LIMIT +** or OFFSET expressions.. +*/ +static int walkSelectExpr(Select *p, int (*xFunc)(void *, Expr*), void *pArg){ + walkExprList(p->pEList, xFunc, pArg); + walkExprTree(p->pWhere, xFunc, pArg); + walkExprList(p->pGroupBy, xFunc, pArg); + walkExprTree(p->pHaving, xFunc, pArg); + walkExprList(p->pOrderBy, xFunc, pArg); + return 0; +} + + +/* +** This routine is designed as an xFunc for walkExprTree(). +** +** pArg is really a pointer to an integer. If we can tell by looking +** at pExpr that the expression that contains pExpr is not a constant +** expression, then set *pArg to 0 and return 2 to abandon the tree walk. +** If pExpr does does not disqualify the expression from being a constant +** then do nothing. +** +** After walking the whole tree, if no nodes are found that disqualify +** the expression as constant, then we assume the whole expression +** is constant. See sqlite3ExprIsConstant() for additional information. +*/ +static int exprNodeIsConstant(void *pArg, Expr *pExpr){ + switch( pExpr->op ){ + /* Consider functions to be constant if all their arguments are constant + ** and *pArg==2 */ + case TK_FUNCTION: + if( *((int*)pArg)==2 ) return 0; + /* Fall through */ + case TK_ID: + case TK_COLUMN: + case TK_DOT: + case TK_AGG_FUNCTION: + case TK_AGG_COLUMN: +#ifndef SQLITE_OMIT_SUBQUERY + case TK_SELECT: + case TK_EXISTS: +#endif + *((int*)pArg) = 0; + return 2; + case TK_IN: + if( pExpr->pSelect ){ + *((int*)pArg) = 0; + return 2; + } + default: + return 0; + } +} + +/* +** Walk an expression tree. Return 1 if the expression is constant +** and 0 if it involves variables or function calls. +** +** For the purposes of this function, a double-quoted string (ex: "abc") +** is considered a variable but a single-quoted string (ex: 'abc') is +** a constant. +*/ +int sqlite3ExprIsConstant(Expr *p){ + int isConst = 1; + walkExprTree(p, exprNodeIsConstant, &isConst); + return isConst; +} + +/* +** Walk an expression tree. Return 1 if the expression is constant +** or a function call with constant arguments. Return and 0 if there +** are any variables. +** +** For the purposes of this function, a double-quoted string (ex: "abc") +** is considered a variable but a single-quoted string (ex: 'abc') is +** a constant. +*/ +int sqlite3ExprIsConstantOrFunction(Expr *p){ + int isConst = 2; + walkExprTree(p, exprNodeIsConstant, &isConst); + return isConst!=0; +} + +/* +** If the expression p codes a constant integer that is small enough +** to fit in a 32-bit integer, return 1 and put the value of the integer +** in *pValue. If the expression is not an integer or if it is too big +** to fit in a signed 32-bit integer, return 0 and leave *pValue unchanged. +*/ +int sqlite3ExprIsInteger(Expr *p, int *pValue){ + switch( p->op ){ + case TK_INTEGER: { + if( sqlite3GetInt32((char*)p->token.z, pValue) ){ + return 1; + } + break; + } + case TK_UPLUS: { + return sqlite3ExprIsInteger(p->pLeft, pValue); + } + case TK_UMINUS: { + int v; + if( sqlite3ExprIsInteger(p->pLeft, &v) ){ + *pValue = -v; + return 1; + } + break; + } + default: break; + } + return 0; +} + +/* +** Return TRUE if the given string is a row-id column name. +*/ +int sqlite3IsRowid(const char *z){ + if( sqlite3StrICmp(z, "_ROWID_")==0 ) return 1; + if( sqlite3StrICmp(z, "ROWID")==0 ) return 1; + if( sqlite3StrICmp(z, "OID")==0 ) return 1; + return 0; +} + +/* +** Given the name of a column of the form X.Y.Z or Y.Z or just Z, look up +** that name in the set of source tables in pSrcList and make the pExpr +** expression node refer back to that source column. The following changes +** are made to pExpr: +** +** pExpr->iDb Set the index in db->aDb[] of the database holding +** the table. +** pExpr->iTable Set to the cursor number for the table obtained +** from pSrcList. +** pExpr->iColumn Set to the column number within the table. +** pExpr->op Set to TK_COLUMN. +** pExpr->pLeft Any expression this points to is deleted +** pExpr->pRight Any expression this points to is deleted. +** +** The pDbToken is the name of the database (the "X"). This value may be +** NULL meaning that name is of the form Y.Z or Z. Any available database +** can be used. The pTableToken is the name of the table (the "Y"). This +** value can be NULL if pDbToken is also NULL. If pTableToken is NULL it +** means that the form of the name is Z and that columns from any table +** can be used. +** +** If the name cannot be resolved unambiguously, leave an error message +** in pParse and return non-zero. Return zero on success. +*/ +static int lookupName( + Parse *pParse, /* The parsing context */ + Token *pDbToken, /* Name of the database containing table, or NULL */ + Token *pTableToken, /* Name of table containing column, or NULL */ + Token *pColumnToken, /* Name of the column. */ + NameContext *pNC, /* The name context used to resolve the name */ + Expr *pExpr /* Make this EXPR node point to the selected column */ +){ + char *zDb = 0; /* Name of the database. The "X" in X.Y.Z */ + char *zTab = 0; /* Name of the table. The "Y" in X.Y.Z or Y.Z */ + char *zCol = 0; /* Name of the column. The "Z" */ + int i, j; /* Loop counters */ + int cnt = 0; /* Number of matching column names */ + int cntTab = 0; /* Number of matching table names */ + sqlite3 *db = pParse->db; /* The database */ + struct SrcList_item *pItem; /* Use for looping over pSrcList items */ + struct SrcList_item *pMatch = 0; /* The matching pSrcList item */ + NameContext *pTopNC = pNC; /* First namecontext in the list */ + + assert( pColumnToken && pColumnToken->z ); /* The Z in X.Y.Z cannot be NULL */ + zDb = sqlite3NameFromToken(pDbToken); + zTab = sqlite3NameFromToken(pTableToken); + zCol = sqlite3NameFromToken(pColumnToken); + if( sqlite3MallocFailed() ){ + goto lookupname_end; + } + + pExpr->iTable = -1; + while( pNC && cnt==0 ){ + ExprList *pEList; + SrcList *pSrcList = pNC->pSrcList; + + if( pSrcList ){ + for(i=0, pItem=pSrcList->a; inSrc; i++, pItem++){ + Table *pTab; + int iDb; + Column *pCol; + + pTab = pItem->pTab; + assert( pTab!=0 ); + iDb = sqlite3SchemaToIndex(db, pTab->pSchema); + assert( pTab->nCol>0 ); + if( zTab ){ + if( pItem->zAlias ){ + char *zTabName = pItem->zAlias; + if( sqlite3StrICmp(zTabName, zTab)!=0 ) continue; + }else{ + char *zTabName = pTab->zName; + if( zTabName==0 || sqlite3StrICmp(zTabName, zTab)!=0 ) continue; + if( zDb!=0 && sqlite3StrICmp(db->aDb[iDb].zName, zDb)!=0 ){ + continue; + } + } + } + if( 0==(cntTab++) ){ + pExpr->iTable = pItem->iCursor; + pExpr->pSchema = pTab->pSchema; + pMatch = pItem; + } + for(j=0, pCol=pTab->aCol; jnCol; j++, pCol++){ + if( sqlite3StrICmp(pCol->zName, zCol)==0 ){ + const char *zColl = pTab->aCol[j].zColl; + IdList *pUsing; + cnt++; + pExpr->iTable = pItem->iCursor; + pMatch = pItem; + pExpr->pSchema = pTab->pSchema; + /* Substitute the rowid (column -1) for the INTEGER PRIMARY KEY */ + pExpr->iColumn = j==pTab->iPKey ? -1 : j; + pExpr->affinity = pTab->aCol[j].affinity; + pExpr->pColl = sqlite3FindCollSeq(db, ENC(db), zColl,-1, 0); + if( inSrc-1 ){ + if( pItem[1].jointype & JT_NATURAL ){ + /* If this match occurred in the left table of a natural join, + ** then skip the right table to avoid a duplicate match */ + pItem++; + i++; + }else if( (pUsing = pItem[1].pUsing)!=0 ){ + /* If this match occurs on a column that is in the USING clause + ** of a join, skip the search of the right table of the join + ** to avoid a duplicate match there. */ + int k; + for(k=0; knId; k++){ + if( sqlite3StrICmp(pUsing->a[k].zName, zCol)==0 ){ + pItem++; + i++; + break; + } + } + } + } + break; + } + } + } + } + +#ifndef SQLITE_OMIT_TRIGGER + /* If we have not already resolved the name, then maybe + ** it is a new.* or old.* trigger argument reference + */ + if( zDb==0 && zTab!=0 && cnt==0 && pParse->trigStack!=0 ){ + TriggerStack *pTriggerStack = pParse->trigStack; + Table *pTab = 0; + if( pTriggerStack->newIdx != -1 && sqlite3StrICmp("new", zTab) == 0 ){ + pExpr->iTable = pTriggerStack->newIdx; + assert( pTriggerStack->pTab ); + pTab = pTriggerStack->pTab; + }else if( pTriggerStack->oldIdx != -1 && sqlite3StrICmp("old", zTab)==0 ){ + pExpr->iTable = pTriggerStack->oldIdx; + assert( pTriggerStack->pTab ); + pTab = pTriggerStack->pTab; + } + + if( pTab ){ + int iCol; + Column *pCol = pTab->aCol; + + pExpr->pSchema = pTab->pSchema; + cntTab++; + for(iCol=0; iCol < pTab->nCol; iCol++, pCol++) { + if( sqlite3StrICmp(pCol->zName, zCol)==0 ){ + const char *zColl = pTab->aCol[iCol].zColl; + cnt++; + pExpr->iColumn = iCol==pTab->iPKey ? -1 : iCol; + pExpr->affinity = pTab->aCol[iCol].affinity; + pExpr->pColl = sqlite3FindCollSeq(db, ENC(db), zColl,-1, 0); + pExpr->pTab = pTab; + break; + } + } + } + } +#endif /* !defined(SQLITE_OMIT_TRIGGER) */ + + /* + ** Perhaps the name is a reference to the ROWID + */ + if( cnt==0 && cntTab==1 && sqlite3IsRowid(zCol) ){ + cnt = 1; + pExpr->iColumn = -1; + pExpr->affinity = SQLITE_AFF_INTEGER; + } + + /* + ** If the input is of the form Z (not Y.Z or X.Y.Z) then the name Z + ** might refer to an result-set alias. This happens, for example, when + ** we are resolving names in the WHERE clause of the following command: + ** + ** SELECT a+b AS x FROM table WHERE x<10; + ** + ** In cases like this, replace pExpr with a copy of the expression that + ** forms the result set entry ("a+b" in the example) and return immediately. + ** Note that the expression in the result set should have already been + ** resolved by the time the WHERE clause is resolved. + */ + if( cnt==0 && (pEList = pNC->pEList)!=0 && zTab==0 ){ + for(j=0; jnExpr; j++){ + char *zAs = pEList->a[j].zName; + if( zAs!=0 && sqlite3StrICmp(zAs, zCol)==0 ){ + assert( pExpr->pLeft==0 && pExpr->pRight==0 ); + pExpr->op = TK_AS; + pExpr->iColumn = j; + pExpr->pLeft = sqlite3ExprDup(pEList->a[j].pExpr); + cnt = 1; + assert( zTab==0 && zDb==0 ); + goto lookupname_end_2; + } + } + } + + /* Advance to the next name context. The loop will exit when either + ** we have a match (cnt>0) or when we run out of name contexts. + */ + if( cnt==0 ){ + pNC = pNC->pNext; + } + } + + /* + ** If X and Y are NULL (in other words if only the column name Z is + ** supplied) and the value of Z is enclosed in double-quotes, then + ** Z is a string literal if it doesn't match any column names. In that + ** case, we need to return right away and not make any changes to + ** pExpr. + ** + ** Because no reference was made to outer contexts, the pNC->nRef + ** fields are not changed in any context. + */ + if( cnt==0 && zTab==0 && pColumnToken->z[0]=='"' ){ + sqliteFree(zCol); + return 0; + } + + /* + ** cnt==0 means there was not match. cnt>1 means there were two or + ** more matches. Either way, we have an error. + */ + if( cnt!=1 ){ + char *z = 0; + char *zErr; + zErr = cnt==0 ? "no such column: %s" : "ambiguous column name: %s"; + if( zDb ){ + sqlite3SetString(&z, zDb, ".", zTab, ".", zCol, (char*)0); + }else if( zTab ){ + sqlite3SetString(&z, zTab, ".", zCol, (char*)0); + }else{ + z = sqliteStrDup(zCol); + } + sqlite3ErrorMsg(pParse, zErr, z); + sqliteFree(z); + pTopNC->nErr++; + } + + /* If a column from a table in pSrcList is referenced, then record + ** this fact in the pSrcList.a[].colUsed bitmask. Column 0 causes + ** bit 0 to be set. Column 1 sets bit 1. And so forth. If the + ** column number is greater than the number of bits in the bitmask + ** then set the high-order bit of the bitmask. + */ + if( pExpr->iColumn>=0 && pMatch!=0 ){ + int n = pExpr->iColumn; + if( n>=sizeof(Bitmask)*8 ){ + n = sizeof(Bitmask)*8-1; + } + assert( pMatch->iCursor==pExpr->iTable ); + pMatch->colUsed |= 1<pLeft); + pExpr->pLeft = 0; + sqlite3ExprDelete(pExpr->pRight); + pExpr->pRight = 0; + pExpr->op = TK_COLUMN; +lookupname_end_2: + sqliteFree(zCol); + if( cnt==1 ){ + assert( pNC!=0 ); + sqlite3AuthRead(pParse, pExpr, pNC->pSrcList); + if( pMatch && !pMatch->pSelect ){ + pExpr->pTab = pMatch->pTab; + } + /* Increment the nRef value on all name contexts from TopNC up to + ** the point where the name matched. */ + for(;;){ + assert( pTopNC!=0 ); + pTopNC->nRef++; + if( pTopNC==pNC ) break; + pTopNC = pTopNC->pNext; + } + return 0; + } else { + return 1; + } +} + +/* +** This routine is designed as an xFunc for walkExprTree(). +** +** Resolve symbolic names into TK_COLUMN operators for the current +** node in the expression tree. Return 0 to continue the search down +** the tree or 2 to abort the tree walk. +** +** This routine also does error checking and name resolution for +** function names. The operator for aggregate functions is changed +** to TK_AGG_FUNCTION. +*/ +static int nameResolverStep(void *pArg, Expr *pExpr){ + NameContext *pNC = (NameContext*)pArg; + Parse *pParse; + + if( pExpr==0 ) return 1; + assert( pNC!=0 ); + pParse = pNC->pParse; + + if( ExprHasAnyProperty(pExpr, EP_Resolved) ) return 1; + ExprSetProperty(pExpr, EP_Resolved); +#ifndef NDEBUG + if( pNC->pSrcList && pNC->pSrcList->nAlloc>0 ){ + SrcList *pSrcList = pNC->pSrcList; + int i; + for(i=0; ipSrcList->nSrc; i++){ + assert( pSrcList->a[i].iCursor>=0 && pSrcList->a[i].iCursornTab); + } + } +#endif + switch( pExpr->op ){ + /* Double-quoted strings (ex: "abc") are used as identifiers if + ** possible. Otherwise they remain as strings. Single-quoted + ** strings (ex: 'abc') are always string literals. + */ + case TK_STRING: { + if( pExpr->token.z[0]=='\'' ) break; + /* Fall thru into the TK_ID case if this is a double-quoted string */ + } + /* A lone identifier is the name of a column. + */ + case TK_ID: { + lookupName(pParse, 0, 0, &pExpr->token, pNC, pExpr); + return 1; + } + + /* A table name and column name: ID.ID + ** Or a database, table and column: ID.ID.ID + */ + case TK_DOT: { + Token *pColumn; + Token *pTable; + Token *pDb; + Expr *pRight; + + /* if( pSrcList==0 ) break; */ + pRight = pExpr->pRight; + if( pRight->op==TK_ID ){ + pDb = 0; + pTable = &pExpr->pLeft->token; + pColumn = &pRight->token; + }else{ + assert( pRight->op==TK_DOT ); + pDb = &pExpr->pLeft->token; + pTable = &pRight->pLeft->token; + pColumn = &pRight->pRight->token; + } + lookupName(pParse, pDb, pTable, pColumn, pNC, pExpr); + return 1; + } + + /* Resolve function names + */ + case TK_CONST_FUNC: + case TK_FUNCTION: { + ExprList *pList = pExpr->pList; /* The argument list */ + int n = pList ? pList->nExpr : 0; /* Number of arguments */ + int no_such_func = 0; /* True if no such function exists */ + int wrong_num_args = 0; /* True if wrong number of arguments */ + int is_agg = 0; /* True if is an aggregate function */ + int i; + int auth; /* Authorization to use the function */ + int nId; /* Number of characters in function name */ + const char *zId; /* The function name. */ + FuncDef *pDef; /* Information about the function */ + int enc = ENC(pParse->db); /* The database encoding */ + + zId = (char*)pExpr->token.z; + nId = pExpr->token.n; + pDef = sqlite3FindFunction(pParse->db, zId, nId, n, enc, 0); + if( pDef==0 ){ + pDef = sqlite3FindFunction(pParse->db, zId, nId, -1, enc, 0); + if( pDef==0 ){ + no_such_func = 1; + }else{ + wrong_num_args = 1; + } + }else{ + is_agg = pDef->xFunc==0; + } +#ifndef SQLITE_OMIT_AUTHORIZATION + if( pDef ){ + auth = sqlite3AuthCheck(pParse, SQLITE_FUNCTION, 0, pDef->zName, 0); + if( auth!=SQLITE_OK ){ + if( auth==SQLITE_DENY ){ + sqlite3ErrorMsg(pParse, "not authorized to use function: %s", + pDef->zName); + pNC->nErr++; + } + pExpr->op = TK_NULL; + return 1; + } + } +#endif + if( is_agg && !pNC->allowAgg ){ + sqlite3ErrorMsg(pParse, "misuse of aggregate function %.*s()", nId,zId); + pNC->nErr++; + is_agg = 0; + }else if( no_such_func ){ + sqlite3ErrorMsg(pParse, "no such function: %.*s", nId, zId); + pNC->nErr++; + }else if( wrong_num_args ){ + sqlite3ErrorMsg(pParse,"wrong number of arguments to function %.*s()", + nId, zId); + pNC->nErr++; + } + if( is_agg ){ + pExpr->op = TK_AGG_FUNCTION; + pNC->hasAgg = 1; + } + if( is_agg ) pNC->allowAgg = 0; + for(i=0; pNC->nErr==0 && ia[i].pExpr, nameResolverStep, pNC); + } + if( is_agg ) pNC->allowAgg = 1; + /* FIX ME: Compute pExpr->affinity based on the expected return + ** type of the function + */ + return is_agg; + } +#ifndef SQLITE_OMIT_SUBQUERY + case TK_SELECT: + case TK_EXISTS: +#endif + case TK_IN: { + if( pExpr->pSelect ){ + int nRef = pNC->nRef; +#ifndef SQLITE_OMIT_CHECK + if( pNC->isCheck ){ + sqlite3ErrorMsg(pParse,"subqueries prohibited in CHECK constraints"); + } +#endif + sqlite3SelectResolve(pParse, pExpr->pSelect, pNC); + assert( pNC->nRef>=nRef ); + if( nRef!=pNC->nRef ){ + ExprSetProperty(pExpr, EP_VarSelect); + } + } + break; + } +#ifndef SQLITE_OMIT_CHECK + case TK_VARIABLE: { + if( pNC->isCheck ){ + sqlite3ErrorMsg(pParse,"parameters prohibited in CHECK constraints"); + } + break; + } +#endif + } + return 0; +} + +/* +** This routine walks an expression tree and resolves references to +** table columns. Nodes of the form ID.ID or ID resolve into an +** index to the table in the table list and a column offset. The +** Expr.opcode for such nodes is changed to TK_COLUMN. The Expr.iTable +** value is changed to the index of the referenced table in pTabList +** plus the "base" value. The base value will ultimately become the +** VDBE cursor number for a cursor that is pointing into the referenced +** table. The Expr.iColumn value is changed to the index of the column +** of the referenced table. The Expr.iColumn value for the special +** ROWID column is -1. Any INTEGER PRIMARY KEY column is tried as an +** alias for ROWID. +** +** Also resolve function names and check the functions for proper +** usage. Make sure all function names are recognized and all functions +** have the correct number of arguments. Leave an error message +** in pParse->zErrMsg if anything is amiss. Return the number of errors. +** +** If the expression contains aggregate functions then set the EP_Agg +** property on the expression. +*/ +int sqlite3ExprResolveNames( + NameContext *pNC, /* Namespace to resolve expressions in. */ + Expr *pExpr /* The expression to be analyzed. */ +){ + int savedHasAgg; + if( pExpr==0 ) return 0; + savedHasAgg = pNC->hasAgg; + pNC->hasAgg = 0; + walkExprTree(pExpr, nameResolverStep, pNC); + if( pNC->nErr>0 ){ + ExprSetProperty(pExpr, EP_Error); + } + if( pNC->hasAgg ){ + ExprSetProperty(pExpr, EP_Agg); + }else if( savedHasAgg ){ + pNC->hasAgg = 1; + } + return ExprHasProperty(pExpr, EP_Error); +} + +/* +** A pointer instance of this structure is used to pass information +** through walkExprTree into codeSubqueryStep(). +*/ +typedef struct QueryCoder QueryCoder; +struct QueryCoder { + Parse *pParse; /* The parsing context */ + NameContext *pNC; /* Namespace of first enclosing query */ +}; + + +/* +** Generate code for scalar subqueries used as an expression +** and IN operators. Examples: +** +** (SELECT a FROM b) -- subquery +** EXISTS (SELECT a FROM b) -- EXISTS subquery +** x IN (4,5,11) -- IN operator with list on right-hand side +** x IN (SELECT a FROM b) -- IN operator with subquery on the right +** +** The pExpr parameter describes the expression that contains the IN +** operator or subquery. +*/ +#ifndef SQLITE_OMIT_SUBQUERY +void sqlite3CodeSubselect(Parse *pParse, Expr *pExpr){ + int testAddr = 0; /* One-time test address */ + Vdbe *v = sqlite3GetVdbe(pParse); + if( v==0 ) return; + + /* This code must be run in its entirety every time it is encountered + ** if any of the following is true: + ** + ** * The right-hand side is a correlated subquery + ** * The right-hand side is an expression list containing variables + ** * We are inside a trigger + ** + ** If all of the above are false, then we can run this code just once + ** save the results, and reuse the same result on subsequent invocations. + */ + if( !ExprHasAnyProperty(pExpr, EP_VarSelect) && !pParse->trigStack ){ + int mem = pParse->nMem++; + sqlite3VdbeAddOp(v, OP_MemLoad, mem, 0); + testAddr = sqlite3VdbeAddOp(v, OP_If, 0, 0); + assert( testAddr>0 || sqlite3MallocFailed() ); + sqlite3VdbeAddOp(v, OP_MemInt, 1, mem); + } + + switch( pExpr->op ){ + case TK_IN: { + char affinity; + KeyInfo keyInfo; + int addr; /* Address of OP_OpenEphemeral instruction */ + + affinity = sqlite3ExprAffinity(pExpr->pLeft); + + /* Whether this is an 'x IN(SELECT...)' or an 'x IN()' + ** expression it is handled the same way. A virtual table is + ** filled with single-field index keys representing the results + ** from the SELECT or the . + ** + ** If the 'x' expression is a column value, or the SELECT... + ** statement returns a column value, then the affinity of that + ** column is used to build the index keys. If both 'x' and the + ** SELECT... statement are columns, then numeric affinity is used + ** if either column has NUMERIC or INTEGER affinity. If neither + ** 'x' nor the SELECT... statement are columns, then numeric affinity + ** is used. + */ + pExpr->iTable = pParse->nTab++; + addr = sqlite3VdbeAddOp(v, OP_OpenEphemeral, pExpr->iTable, 0); + memset(&keyInfo, 0, sizeof(keyInfo)); + keyInfo.nField = 1; + sqlite3VdbeAddOp(v, OP_SetNumColumns, pExpr->iTable, 1); + + if( pExpr->pSelect ){ + /* Case 1: expr IN (SELECT ...) + ** + ** Generate code to write the results of the select into the temporary + ** table allocated and opened above. + */ + int iParm = pExpr->iTable + (((int)affinity)<<16); + ExprList *pEList; + assert( (pExpr->iTable&0x0000FFFF)==pExpr->iTable ); + sqlite3Select(pParse, pExpr->pSelect, SRT_Set, iParm, 0, 0, 0, 0); + pEList = pExpr->pSelect->pEList; + if( pEList && pEList->nExpr>0 ){ + keyInfo.aColl[0] = binaryCompareCollSeq(pParse, pExpr->pLeft, + pEList->a[0].pExpr); + } + }else if( pExpr->pList ){ + /* Case 2: expr IN (exprlist) + ** + ** For each expression, build an index key from the evaluation and + ** store it in the temporary table. If is a column, then use + ** that columns affinity when building index keys. If is not + ** a column, use numeric affinity. + */ + int i; + ExprList *pList = pExpr->pList; + struct ExprList_item *pItem; + + if( !affinity ){ + affinity = SQLITE_AFF_NONE; + } + keyInfo.aColl[0] = pExpr->pLeft->pColl; + + /* Loop through each expression in . */ + for(i=pList->nExpr, pItem=pList->a; i>0; i--, pItem++){ + Expr *pE2 = pItem->pExpr; + + /* If the expression is not constant then we will need to + ** disable the test that was generated above that makes sure + ** this code only executes once. Because for a non-constant + ** expression we need to rerun this code each time. + */ + if( testAddr>0 && !sqlite3ExprIsConstant(pE2) ){ + sqlite3VdbeChangeToNoop(v, testAddr-1, 3); + testAddr = 0; + } + + /* Evaluate the expression and insert it into the temp table */ + sqlite3ExprCode(pParse, pE2); + sqlite3VdbeOp3(v, OP_MakeRecord, 1, 0, &affinity, 1); + sqlite3VdbeAddOp(v, OP_IdxInsert, pExpr->iTable, 0); + } + } + sqlite3VdbeChangeP3(v, addr, (void *)&keyInfo, P3_KEYINFO); + break; + } + + case TK_EXISTS: + case TK_SELECT: { + /* This has to be a scalar SELECT. Generate code to put the + ** value of this select in a memory cell and record the number + ** of the memory cell in iColumn. + */ + static const Token one = { (u8*)"1", 0, 1 }; + Select *pSel; + int iMem; + int sop; + + pExpr->iColumn = iMem = pParse->nMem++; + pSel = pExpr->pSelect; + if( pExpr->op==TK_SELECT ){ + sop = SRT_Mem; + sqlite3VdbeAddOp(v, OP_MemNull, iMem, 0); + VdbeComment((v, "# Init subquery result")); + }else{ + sop = SRT_Exists; + sqlite3VdbeAddOp(v, OP_MemInt, 0, iMem); + VdbeComment((v, "# Init EXISTS result")); + } + sqlite3ExprDelete(pSel->pLimit); + pSel->pLimit = sqlite3Expr(TK_INTEGER, 0, 0, &one); + sqlite3Select(pParse, pSel, sop, iMem, 0, 0, 0, 0); + break; + } + } + + if( testAddr ){ + sqlite3VdbeJumpHere(v, testAddr); + } + return; +} +#endif /* SQLITE_OMIT_SUBQUERY */ + +/* +** Generate an instruction that will put the integer describe by +** text z[0..n-1] on the stack. +*/ +static void codeInteger(Vdbe *v, const char *z, int n){ + int i; + if( sqlite3GetInt32(z, &i) ){ + sqlite3VdbeAddOp(v, OP_Integer, i, 0); + }else if( sqlite3FitsIn64Bits(z) ){ + sqlite3VdbeOp3(v, OP_Int64, 0, 0, z, n); + }else{ + sqlite3VdbeOp3(v, OP_Real, 0, 0, z, n); + } +} + +/* +** Generate code into the current Vdbe to evaluate the given +** expression and leave the result on the top of stack. +** +** This code depends on the fact that certain token values (ex: TK_EQ) +** are the same as opcode values (ex: OP_Eq) that implement the corresponding +** operation. Special comments in vdbe.c and the mkopcodeh.awk script in +** the make process cause these values to align. Assert()s in the code +** below verify that the numbers are aligned correctly. +*/ +void sqlite3ExprCode(Parse *pParse, Expr *pExpr){ + Vdbe *v = pParse->pVdbe; + int op; + int stackChng = 1; /* Amount of change to stack depth */ + + if( v==0 ) return; + if( pExpr==0 ){ + sqlite3VdbeAddOp(v, OP_Null, 0, 0); + return; + } + op = pExpr->op; + switch( op ){ + case TK_AGG_COLUMN: { + AggInfo *pAggInfo = pExpr->pAggInfo; + struct AggInfo_col *pCol = &pAggInfo->aCol[pExpr->iAgg]; + if( !pAggInfo->directMode ){ + sqlite3VdbeAddOp(v, OP_MemLoad, pCol->iMem, 0); + break; + }else if( pAggInfo->useSortingIdx ){ + sqlite3VdbeAddOp(v, OP_Column, pAggInfo->sortingIdx, + pCol->iSorterColumn); + break; + } + /* Otherwise, fall thru into the TK_COLUMN case */ + } + case TK_COLUMN: { + if( pExpr->iTable<0 ){ + /* This only happens when coding check constraints */ + assert( pParse->ckOffset>0 ); + sqlite3VdbeAddOp(v, OP_Dup, pParse->ckOffset-pExpr->iColumn-1, 1); + }else if( pExpr->iColumn>=0 ){ + Table *pTab = pExpr->pTab; + int iCol = pExpr->iColumn; + int op = (pTab && IsVirtual(pTab)) ? OP_VColumn : OP_Column; + sqlite3VdbeAddOp(v, op, pExpr->iTable, iCol); + sqlite3ColumnDefault(v, pTab, iCol); +#ifndef SQLITE_OMIT_FLOATING_POINT + if( pTab && pTab->aCol[iCol].affinity==SQLITE_AFF_REAL ){ + sqlite3VdbeAddOp(v, OP_RealAffinity, 0, 0); + } +#endif + }else{ + Table *pTab = pExpr->pTab; + int op = (pTab && IsVirtual(pTab)) ? OP_VRowid : OP_Rowid; + sqlite3VdbeAddOp(v, op, pExpr->iTable, 0); + } + break; + } + case TK_INTEGER: { + codeInteger(v, (char*)pExpr->token.z, pExpr->token.n); + break; + } + case TK_FLOAT: + case TK_STRING: { + assert( TK_FLOAT==OP_Real ); + assert( TK_STRING==OP_String8 ); + sqlite3DequoteExpr(pExpr); + sqlite3VdbeOp3(v, op, 0, 0, (char*)pExpr->token.z, pExpr->token.n); + break; + } + case TK_NULL: { + sqlite3VdbeAddOp(v, OP_Null, 0, 0); + break; + } +#ifndef SQLITE_OMIT_BLOB_LITERAL + case TK_BLOB: { + int n; + const char *z; + assert( TK_BLOB==OP_HexBlob ); + n = pExpr->token.n - 3; + z = (char*)pExpr->token.z + 2; + assert( n>=0 ); + if( n==0 ){ + z = ""; + } + sqlite3VdbeOp3(v, op, 0, 0, z, n); + break; + } +#endif + case TK_VARIABLE: { + sqlite3VdbeAddOp(v, OP_Variable, pExpr->iTable, 0); + if( pExpr->token.n>1 ){ + sqlite3VdbeChangeP3(v, -1, (char*)pExpr->token.z, pExpr->token.n); + } + break; + } + case TK_REGISTER: { + sqlite3VdbeAddOp(v, OP_MemLoad, pExpr->iTable, 0); + break; + } +#ifndef SQLITE_OMIT_CAST + case TK_CAST: { + /* Expressions of the form: CAST(pLeft AS token) */ + int aff, to_op; + sqlite3ExprCode(pParse, pExpr->pLeft); + aff = sqlite3AffinityType(&pExpr->token); + to_op = aff - SQLITE_AFF_TEXT + OP_ToText; + assert( to_op==OP_ToText || aff!=SQLITE_AFF_TEXT ); + assert( to_op==OP_ToBlob || aff!=SQLITE_AFF_NONE ); + assert( to_op==OP_ToNumeric || aff!=SQLITE_AFF_NUMERIC ); + assert( to_op==OP_ToInt || aff!=SQLITE_AFF_INTEGER ); + assert( to_op==OP_ToReal || aff!=SQLITE_AFF_REAL ); + sqlite3VdbeAddOp(v, to_op, 0, 0); + stackChng = 0; + break; + } +#endif /* SQLITE_OMIT_CAST */ + case TK_LT: + case TK_LE: + case TK_GT: + case TK_GE: + case TK_NE: + case TK_EQ: { + assert( TK_LT==OP_Lt ); + assert( TK_LE==OP_Le ); + assert( TK_GT==OP_Gt ); + assert( TK_GE==OP_Ge ); + assert( TK_EQ==OP_Eq ); + assert( TK_NE==OP_Ne ); + sqlite3ExprCode(pParse, pExpr->pLeft); + sqlite3ExprCode(pParse, pExpr->pRight); + codeCompare(pParse, pExpr->pLeft, pExpr->pRight, op, 0, 0); + stackChng = -1; + break; + } + case TK_AND: + case TK_OR: + case TK_PLUS: + case TK_STAR: + case TK_MINUS: + case TK_REM: + case TK_BITAND: + case TK_BITOR: + case TK_SLASH: + case TK_LSHIFT: + case TK_RSHIFT: + case TK_CONCAT: { + assert( TK_AND==OP_And ); + assert( TK_OR==OP_Or ); + assert( TK_PLUS==OP_Add ); + assert( TK_MINUS==OP_Subtract ); + assert( TK_REM==OP_Remainder ); + assert( TK_BITAND==OP_BitAnd ); + assert( TK_BITOR==OP_BitOr ); + assert( TK_SLASH==OP_Divide ); + assert( TK_LSHIFT==OP_ShiftLeft ); + assert( TK_RSHIFT==OP_ShiftRight ); + assert( TK_CONCAT==OP_Concat ); + sqlite3ExprCode(pParse, pExpr->pLeft); + sqlite3ExprCode(pParse, pExpr->pRight); + sqlite3VdbeAddOp(v, op, 0, 0); + stackChng = -1; + break; + } + case TK_UMINUS: { + Expr *pLeft = pExpr->pLeft; + assert( pLeft ); + if( pLeft->op==TK_FLOAT || pLeft->op==TK_INTEGER ){ + Token *p = &pLeft->token; + char *z = sqlite3MPrintf("-%.*s", p->n, p->z); + if( pLeft->op==TK_FLOAT ){ + sqlite3VdbeOp3(v, OP_Real, 0, 0, z, p->n+1); + }else{ + codeInteger(v, z, p->n+1); + } + sqliteFree(z); + break; + } + /* Fall through into TK_NOT */ + } + case TK_BITNOT: + case TK_NOT: { + assert( TK_BITNOT==OP_BitNot ); + assert( TK_NOT==OP_Not ); + sqlite3ExprCode(pParse, pExpr->pLeft); + sqlite3VdbeAddOp(v, op, 0, 0); + stackChng = 0; + break; + } + case TK_ISNULL: + case TK_NOTNULL: { + int dest; + assert( TK_ISNULL==OP_IsNull ); + assert( TK_NOTNULL==OP_NotNull ); + sqlite3VdbeAddOp(v, OP_Integer, 1, 0); + sqlite3ExprCode(pParse, pExpr->pLeft); + dest = sqlite3VdbeCurrentAddr(v) + 2; + sqlite3VdbeAddOp(v, op, 1, dest); + sqlite3VdbeAddOp(v, OP_AddImm, -1, 0); + stackChng = 0; + break; + } + case TK_AGG_FUNCTION: { + AggInfo *pInfo = pExpr->pAggInfo; + if( pInfo==0 ){ + sqlite3ErrorMsg(pParse, "misuse of aggregate: %T", + &pExpr->span); + }else{ + sqlite3VdbeAddOp(v, OP_MemLoad, pInfo->aFunc[pExpr->iAgg].iMem, 0); + } + break; + } + case TK_CONST_FUNC: + case TK_FUNCTION: { + ExprList *pList = pExpr->pList; + int nExpr = pList ? pList->nExpr : 0; + FuncDef *pDef; + int nId; + const char *zId; + int constMask = 0; + int i; + u8 enc = ENC(pParse->db); + CollSeq *pColl = 0; + zId = (char*)pExpr->token.z; + nId = pExpr->token.n; + pDef = sqlite3FindFunction(pParse->db, zId, nId, nExpr, enc, 0); + assert( pDef!=0 ); + nExpr = sqlite3ExprCodeExprList(pParse, pList); +#ifndef SQLITE_OMIT_VIRTUALTABLE + /* Possibly overload the function if the first argument is + ** a virtual table column. + ** + ** For infix functions (LIKE, GLOB, REGEXP, and MATCH) use the + ** second argument, not the first, as the argument to test to + ** see if it is a column in a virtual table. This is done because + ** the left operand of infix functions (the operand we want to + ** control overloading) ends up as the second argument to the + ** function. The expression "A glob B" is equivalent to + ** "glob(B,A). We want to use the A in "A glob B" to test + ** for function overloading. But we use the B term in "glob(B,A)". + */ + if( nExpr>=2 && (pExpr->flags & EP_InfixFunc) ){ + pDef = sqlite3VtabOverloadFunction(pDef, nExpr, pList->a[1].pExpr); + }else if( nExpr>0 ){ + pDef = sqlite3VtabOverloadFunction(pDef, nExpr, pList->a[0].pExpr); + } +#endif + for(i=0; ia[i].pExpr) ){ + constMask |= (1<needCollSeq && !pColl ){ + pColl = sqlite3ExprCollSeq(pParse, pList->a[i].pExpr); + } + } + if( pDef->needCollSeq ){ + if( !pColl ) pColl = pParse->db->pDfltColl; + sqlite3VdbeOp3(v, OP_CollSeq, 0, 0, (char *)pColl, P3_COLLSEQ); + } + sqlite3VdbeOp3(v, OP_Function, constMask, nExpr, (char*)pDef, P3_FUNCDEF); + stackChng = 1-nExpr; + break; + } +#ifndef SQLITE_OMIT_SUBQUERY + case TK_EXISTS: + case TK_SELECT: { + if( pExpr->iColumn==0 ){ + sqlite3CodeSubselect(pParse, pExpr); + } + sqlite3VdbeAddOp(v, OP_MemLoad, pExpr->iColumn, 0); + VdbeComment((v, "# load subquery result")); + break; + } + case TK_IN: { + int addr; + char affinity; + int ckOffset = pParse->ckOffset; + sqlite3CodeSubselect(pParse, pExpr); + + /* Figure out the affinity to use to create a key from the results + ** of the expression. affinityStr stores a static string suitable for + ** P3 of OP_MakeRecord. + */ + affinity = comparisonAffinity(pExpr); + + sqlite3VdbeAddOp(v, OP_Integer, 1, 0); + pParse->ckOffset = ckOffset+1; + + /* Code the from " IN (...)". The temporary table + ** pExpr->iTable contains the values that make up the (...) set. + */ + sqlite3ExprCode(pParse, pExpr->pLeft); + addr = sqlite3VdbeCurrentAddr(v); + sqlite3VdbeAddOp(v, OP_NotNull, -1, addr+4); /* addr + 0 */ + sqlite3VdbeAddOp(v, OP_Pop, 2, 0); + sqlite3VdbeAddOp(v, OP_Null, 0, 0); + sqlite3VdbeAddOp(v, OP_Goto, 0, addr+7); + sqlite3VdbeOp3(v, OP_MakeRecord, 1, 0, &affinity, 1); /* addr + 4 */ + sqlite3VdbeAddOp(v, OP_Found, pExpr->iTable, addr+7); + sqlite3VdbeAddOp(v, OP_AddImm, -1, 0); /* addr + 6 */ + + break; + } +#endif + case TK_BETWEEN: { + Expr *pLeft = pExpr->pLeft; + struct ExprList_item *pLItem = pExpr->pList->a; + Expr *pRight = pLItem->pExpr; + sqlite3ExprCode(pParse, pLeft); + sqlite3VdbeAddOp(v, OP_Dup, 0, 0); + sqlite3ExprCode(pParse, pRight); + codeCompare(pParse, pLeft, pRight, OP_Ge, 0, 0); + sqlite3VdbeAddOp(v, OP_Pull, 1, 0); + pLItem++; + pRight = pLItem->pExpr; + sqlite3ExprCode(pParse, pRight); + codeCompare(pParse, pLeft, pRight, OP_Le, 0, 0); + sqlite3VdbeAddOp(v, OP_And, 0, 0); + break; + } + case TK_UPLUS: + case TK_AS: { + sqlite3ExprCode(pParse, pExpr->pLeft); + stackChng = 0; + break; + } + case TK_CASE: { + int expr_end_label; + int jumpInst; + int nExpr; + int i; + ExprList *pEList; + struct ExprList_item *aListelem; + + assert(pExpr->pList); + assert((pExpr->pList->nExpr % 2) == 0); + assert(pExpr->pList->nExpr > 0); + pEList = pExpr->pList; + aListelem = pEList->a; + nExpr = pEList->nExpr; + expr_end_label = sqlite3VdbeMakeLabel(v); + if( pExpr->pLeft ){ + sqlite3ExprCode(pParse, pExpr->pLeft); + } + for(i=0; ipLeft ){ + sqlite3VdbeAddOp(v, OP_Dup, 1, 1); + jumpInst = codeCompare(pParse, pExpr->pLeft, aListelem[i].pExpr, + OP_Ne, 0, 1); + sqlite3VdbeAddOp(v, OP_Pop, 1, 0); + }else{ + jumpInst = sqlite3VdbeAddOp(v, OP_IfNot, 1, 0); + } + sqlite3ExprCode(pParse, aListelem[i+1].pExpr); + sqlite3VdbeAddOp(v, OP_Goto, 0, expr_end_label); + sqlite3VdbeJumpHere(v, jumpInst); + } + if( pExpr->pLeft ){ + sqlite3VdbeAddOp(v, OP_Pop, 1, 0); + } + if( pExpr->pRight ){ + sqlite3ExprCode(pParse, pExpr->pRight); + }else{ + sqlite3VdbeAddOp(v, OP_Null, 0, 0); + } + sqlite3VdbeResolveLabel(v, expr_end_label); + break; + } +#ifndef SQLITE_OMIT_TRIGGER + case TK_RAISE: { + if( !pParse->trigStack ){ + sqlite3ErrorMsg(pParse, + "RAISE() may only be used within a trigger-program"); + return; + } + if( pExpr->iColumn!=OE_Ignore ){ + assert( pExpr->iColumn==OE_Rollback || + pExpr->iColumn == OE_Abort || + pExpr->iColumn == OE_Fail ); + sqlite3DequoteExpr(pExpr); + sqlite3VdbeOp3(v, OP_Halt, SQLITE_CONSTRAINT, pExpr->iColumn, + (char*)pExpr->token.z, pExpr->token.n); + } else { + assert( pExpr->iColumn == OE_Ignore ); + sqlite3VdbeAddOp(v, OP_ContextPop, 0, 0); + sqlite3VdbeAddOp(v, OP_Goto, 0, pParse->trigStack->ignoreJump); + VdbeComment((v, "# raise(IGNORE)")); + } + stackChng = 0; + break; + } +#endif + } + + if( pParse->ckOffset ){ + pParse->ckOffset += stackChng; + assert( pParse->ckOffset ); + } +} + +#ifndef SQLITE_OMIT_TRIGGER +/* +** Generate code that evalutes the given expression and leaves the result +** on the stack. See also sqlite3ExprCode(). +** +** This routine might also cache the result and modify the pExpr tree +** so that it will make use of the cached result on subsequent evaluations +** rather than evaluate the whole expression again. Trivial expressions are +** not cached. If the expression is cached, its result is stored in a +** memory location. +*/ +void sqlite3ExprCodeAndCache(Parse *pParse, Expr *pExpr){ + Vdbe *v = pParse->pVdbe; + int iMem; + int addr1, addr2; + if( v==0 ) return; + addr1 = sqlite3VdbeCurrentAddr(v); + sqlite3ExprCode(pParse, pExpr); + addr2 = sqlite3VdbeCurrentAddr(v); + if( addr2>addr1+1 || sqlite3VdbeGetOp(v, addr1)->opcode==OP_Function ){ + iMem = pExpr->iTable = pParse->nMem++; + sqlite3VdbeAddOp(v, OP_MemStore, iMem, 0); + pExpr->op = TK_REGISTER; + } +} +#endif + +/* +** Generate code that pushes the value of every element of the given +** expression list onto the stack. +** +** Return the number of elements pushed onto the stack. +*/ +int sqlite3ExprCodeExprList( + Parse *pParse, /* Parsing context */ + ExprList *pList /* The expression list to be coded */ +){ + struct ExprList_item *pItem; + int i, n; + if( pList==0 ) return 0; + n = pList->nExpr; + for(pItem=pList->a, i=n; i>0; i--, pItem++){ + sqlite3ExprCode(pParse, pItem->pExpr); + } + return n; +} + +/* +** Generate code for a boolean expression such that a jump is made +** to the label "dest" if the expression is true but execution +** continues straight thru if the expression is false. +** +** If the expression evaluates to NULL (neither true nor false), then +** take the jump if the jumpIfNull flag is true. +** +** This code depends on the fact that certain token values (ex: TK_EQ) +** are the same as opcode values (ex: OP_Eq) that implement the corresponding +** operation. Special comments in vdbe.c and the mkopcodeh.awk script in +** the make process cause these values to align. Assert()s in the code +** below verify that the numbers are aligned correctly. +*/ +void sqlite3ExprIfTrue(Parse *pParse, Expr *pExpr, int dest, int jumpIfNull){ + Vdbe *v = pParse->pVdbe; + int op = 0; + int ckOffset = pParse->ckOffset; + if( v==0 || pExpr==0 ) return; + op = pExpr->op; + switch( op ){ + case TK_AND: { + int d2 = sqlite3VdbeMakeLabel(v); + sqlite3ExprIfFalse(pParse, pExpr->pLeft, d2, !jumpIfNull); + sqlite3ExprIfTrue(pParse, pExpr->pRight, dest, jumpIfNull); + sqlite3VdbeResolveLabel(v, d2); + break; + } + case TK_OR: { + sqlite3ExprIfTrue(pParse, pExpr->pLeft, dest, jumpIfNull); + sqlite3ExprIfTrue(pParse, pExpr->pRight, dest, jumpIfNull); + break; + } + case TK_NOT: { + sqlite3ExprIfFalse(pParse, pExpr->pLeft, dest, jumpIfNull); + break; + } + case TK_LT: + case TK_LE: + case TK_GT: + case TK_GE: + case TK_NE: + case TK_EQ: { + assert( TK_LT==OP_Lt ); + assert( TK_LE==OP_Le ); + assert( TK_GT==OP_Gt ); + assert( TK_GE==OP_Ge ); + assert( TK_EQ==OP_Eq ); + assert( TK_NE==OP_Ne ); + sqlite3ExprCode(pParse, pExpr->pLeft); + sqlite3ExprCode(pParse, pExpr->pRight); + codeCompare(pParse, pExpr->pLeft, pExpr->pRight, op, dest, jumpIfNull); + break; + } + case TK_ISNULL: + case TK_NOTNULL: { + assert( TK_ISNULL==OP_IsNull ); + assert( TK_NOTNULL==OP_NotNull ); + sqlite3ExprCode(pParse, pExpr->pLeft); + sqlite3VdbeAddOp(v, op, 1, dest); + break; + } + case TK_BETWEEN: { + /* The expression "x BETWEEN y AND z" is implemented as: + ** + ** 1 IF (x < y) GOTO 3 + ** 2 IF (x <= z) GOTO + ** 3 ... + */ + int addr; + Expr *pLeft = pExpr->pLeft; + Expr *pRight = pExpr->pList->a[0].pExpr; + sqlite3ExprCode(pParse, pLeft); + sqlite3VdbeAddOp(v, OP_Dup, 0, 0); + sqlite3ExprCode(pParse, pRight); + addr = codeCompare(pParse, pLeft, pRight, OP_Lt, 0, !jumpIfNull); + + pRight = pExpr->pList->a[1].pExpr; + sqlite3ExprCode(pParse, pRight); + codeCompare(pParse, pLeft, pRight, OP_Le, dest, jumpIfNull); + + sqlite3VdbeAddOp(v, OP_Integer, 0, 0); + sqlite3VdbeJumpHere(v, addr); + sqlite3VdbeAddOp(v, OP_Pop, 1, 0); + break; + } + default: { + sqlite3ExprCode(pParse, pExpr); + sqlite3VdbeAddOp(v, OP_If, jumpIfNull, dest); + break; + } + } + pParse->ckOffset = ckOffset; +} + +/* +** Generate code for a boolean expression such that a jump is made +** to the label "dest" if the expression is false but execution +** continues straight thru if the expression is true. +** +** If the expression evaluates to NULL (neither true nor false) then +** jump if jumpIfNull is true or fall through if jumpIfNull is false. +*/ +void sqlite3ExprIfFalse(Parse *pParse, Expr *pExpr, int dest, int jumpIfNull){ + Vdbe *v = pParse->pVdbe; + int op = 0; + int ckOffset = pParse->ckOffset; + if( v==0 || pExpr==0 ) return; + + /* The value of pExpr->op and op are related as follows: + ** + ** pExpr->op op + ** --------- ---------- + ** TK_ISNULL OP_NotNull + ** TK_NOTNULL OP_IsNull + ** TK_NE OP_Eq + ** TK_EQ OP_Ne + ** TK_GT OP_Le + ** TK_LE OP_Gt + ** TK_GE OP_Lt + ** TK_LT OP_Ge + ** + ** For other values of pExpr->op, op is undefined and unused. + ** The value of TK_ and OP_ constants are arranged such that we + ** can compute the mapping above using the following expression. + ** Assert()s verify that the computation is correct. + */ + op = ((pExpr->op+(TK_ISNULL&1))^1)-(TK_ISNULL&1); + + /* Verify correct alignment of TK_ and OP_ constants + */ + assert( pExpr->op!=TK_ISNULL || op==OP_NotNull ); + assert( pExpr->op!=TK_NOTNULL || op==OP_IsNull ); + assert( pExpr->op!=TK_NE || op==OP_Eq ); + assert( pExpr->op!=TK_EQ || op==OP_Ne ); + assert( pExpr->op!=TK_LT || op==OP_Ge ); + assert( pExpr->op!=TK_LE || op==OP_Gt ); + assert( pExpr->op!=TK_GT || op==OP_Le ); + assert( pExpr->op!=TK_GE || op==OP_Lt ); + + switch( pExpr->op ){ + case TK_AND: { + sqlite3ExprIfFalse(pParse, pExpr->pLeft, dest, jumpIfNull); + sqlite3ExprIfFalse(pParse, pExpr->pRight, dest, jumpIfNull); + break; + } + case TK_OR: { + int d2 = sqlite3VdbeMakeLabel(v); + sqlite3ExprIfTrue(pParse, pExpr->pLeft, d2, !jumpIfNull); + sqlite3ExprIfFalse(pParse, pExpr->pRight, dest, jumpIfNull); + sqlite3VdbeResolveLabel(v, d2); + break; + } + case TK_NOT: { + sqlite3ExprIfTrue(pParse, pExpr->pLeft, dest, jumpIfNull); + break; + } + case TK_LT: + case TK_LE: + case TK_GT: + case TK_GE: + case TK_NE: + case TK_EQ: { + sqlite3ExprCode(pParse, pExpr->pLeft); + sqlite3ExprCode(pParse, pExpr->pRight); + codeCompare(pParse, pExpr->pLeft, pExpr->pRight, op, dest, jumpIfNull); + break; + } + case TK_ISNULL: + case TK_NOTNULL: { + sqlite3ExprCode(pParse, pExpr->pLeft); + sqlite3VdbeAddOp(v, op, 1, dest); + break; + } + case TK_BETWEEN: { + /* The expression is "x BETWEEN y AND z". It is implemented as: + ** + ** 1 IF (x >= y) GOTO 3 + ** 2 GOTO + ** 3 IF (x > z) GOTO + */ + int addr; + Expr *pLeft = pExpr->pLeft; + Expr *pRight = pExpr->pList->a[0].pExpr; + sqlite3ExprCode(pParse, pLeft); + sqlite3VdbeAddOp(v, OP_Dup, 0, 0); + sqlite3ExprCode(pParse, pRight); + addr = sqlite3VdbeCurrentAddr(v); + codeCompare(pParse, pLeft, pRight, OP_Ge, addr+3, !jumpIfNull); + + sqlite3VdbeAddOp(v, OP_Pop, 1, 0); + sqlite3VdbeAddOp(v, OP_Goto, 0, dest); + pRight = pExpr->pList->a[1].pExpr; + sqlite3ExprCode(pParse, pRight); + codeCompare(pParse, pLeft, pRight, OP_Gt, dest, jumpIfNull); + break; + } + default: { + sqlite3ExprCode(pParse, pExpr); + sqlite3VdbeAddOp(v, OP_IfNot, jumpIfNull, dest); + break; + } + } + pParse->ckOffset = ckOffset; +} + +/* +** Do a deep comparison of two expression trees. Return TRUE (non-zero) +** if they are identical and return FALSE if they differ in any way. +*/ +int sqlite3ExprCompare(Expr *pA, Expr *pB){ + int i; + if( pA==0||pB==0 ){ + return pB==pA; + } + if( pA->op!=pB->op ) return 0; + if( (pA->flags & EP_Distinct)!=(pB->flags & EP_Distinct) ) return 0; + if( !sqlite3ExprCompare(pA->pLeft, pB->pLeft) ) return 0; + if( !sqlite3ExprCompare(pA->pRight, pB->pRight) ) return 0; + if( pA->pList ){ + if( pB->pList==0 ) return 0; + if( pA->pList->nExpr!=pB->pList->nExpr ) return 0; + for(i=0; ipList->nExpr; i++){ + if( !sqlite3ExprCompare(pA->pList->a[i].pExpr, pB->pList->a[i].pExpr) ){ + return 0; + } + } + }else if( pB->pList ){ + return 0; + } + if( pA->pSelect || pB->pSelect ) return 0; + if( pA->iTable!=pB->iTable || pA->iColumn!=pB->iColumn ) return 0; + if( pA->token.z ){ + if( pB->token.z==0 ) return 0; + if( pB->token.n!=pA->token.n ) return 0; + if( sqlite3StrNICmp((char*)pA->token.z,(char*)pB->token.z,pB->token.n)!=0 ){ + return 0; + } + } + return 1; +} + + +/* +** Add a new element to the pAggInfo->aCol[] array. Return the index of +** the new element. Return a negative number if malloc fails. +*/ +static int addAggInfoColumn(AggInfo *pInfo){ + int i; + i = sqlite3ArrayAllocate((void**)&pInfo->aCol, sizeof(pInfo->aCol[0]), 3); + if( i<0 ){ + return -1; + } + return i; +} + +/* +** Add a new element to the pAggInfo->aFunc[] array. Return the index of +** the new element. Return a negative number if malloc fails. +*/ +static int addAggInfoFunc(AggInfo *pInfo){ + int i; + i = sqlite3ArrayAllocate((void**)&pInfo->aFunc, sizeof(pInfo->aFunc[0]), 2); + if( i<0 ){ + return -1; + } + return i; +} + +/* +** This is an xFunc for walkExprTree() used to implement +** sqlite3ExprAnalyzeAggregates(). See sqlite3ExprAnalyzeAggregates +** for additional information. +** +** This routine analyzes the aggregate function at pExpr. +*/ +static int analyzeAggregate(void *pArg, Expr *pExpr){ + int i; + NameContext *pNC = (NameContext *)pArg; + Parse *pParse = pNC->pParse; + SrcList *pSrcList = pNC->pSrcList; + AggInfo *pAggInfo = pNC->pAggInfo; + + + switch( pExpr->op ){ + case TK_AGG_COLUMN: + case TK_COLUMN: { + /* Check to see if the column is in one of the tables in the FROM + ** clause of the aggregate query */ + if( pSrcList ){ + struct SrcList_item *pItem = pSrcList->a; + for(i=0; inSrc; i++, pItem++){ + struct AggInfo_col *pCol; + if( pExpr->iTable==pItem->iCursor ){ + /* If we reach this point, it means that pExpr refers to a table + ** that is in the FROM clause of the aggregate query. + ** + ** Make an entry for the column in pAggInfo->aCol[] if there + ** is not an entry there already. + */ + pCol = pAggInfo->aCol; + for(i=0; inColumn; i++, pCol++){ + if( pCol->iTable==pExpr->iTable && + pCol->iColumn==pExpr->iColumn ){ + break; + } + } + if( i>=pAggInfo->nColumn && (i = addAggInfoColumn(pAggInfo))>=0 ){ + pCol = &pAggInfo->aCol[i]; + pCol->iTable = pExpr->iTable; + pCol->iColumn = pExpr->iColumn; + pCol->iMem = pParse->nMem++; + pCol->iSorterColumn = -1; + pCol->pExpr = pExpr; + if( pAggInfo->pGroupBy ){ + int j, n; + ExprList *pGB = pAggInfo->pGroupBy; + struct ExprList_item *pTerm = pGB->a; + n = pGB->nExpr; + for(j=0; jpExpr; + if( pE->op==TK_COLUMN && pE->iTable==pExpr->iTable && + pE->iColumn==pExpr->iColumn ){ + pCol->iSorterColumn = j; + break; + } + } + } + if( pCol->iSorterColumn<0 ){ + pCol->iSorterColumn = pAggInfo->nSortingColumn++; + } + } + /* There is now an entry for pExpr in pAggInfo->aCol[] (either + ** because it was there before or because we just created it). + ** Convert the pExpr to be a TK_AGG_COLUMN referring to that + ** pAggInfo->aCol[] entry. + */ + pExpr->pAggInfo = pAggInfo; + pExpr->op = TK_AGG_COLUMN; + pExpr->iAgg = i; + break; + } /* endif pExpr->iTable==pItem->iCursor */ + } /* end loop over pSrcList */ + } + return 1; + } + case TK_AGG_FUNCTION: { + /* The pNC->nDepth==0 test causes aggregate functions in subqueries + ** to be ignored */ + if( pNC->nDepth==0 ){ + /* Check to see if pExpr is a duplicate of another aggregate + ** function that is already in the pAggInfo structure + */ + struct AggInfo_func *pItem = pAggInfo->aFunc; + for(i=0; inFunc; i++, pItem++){ + if( sqlite3ExprCompare(pItem->pExpr, pExpr) ){ + break; + } + } + if( i>=pAggInfo->nFunc ){ + /* pExpr is original. Make a new entry in pAggInfo->aFunc[] + */ + u8 enc = ENC(pParse->db); + i = addAggInfoFunc(pAggInfo); + if( i>=0 ){ + pItem = &pAggInfo->aFunc[i]; + pItem->pExpr = pExpr; + pItem->iMem = pParse->nMem++; + pItem->pFunc = sqlite3FindFunction(pParse->db, + (char*)pExpr->token.z, pExpr->token.n, + pExpr->pList ? pExpr->pList->nExpr : 0, enc, 0); + if( pExpr->flags & EP_Distinct ){ + pItem->iDistinct = pParse->nTab++; + }else{ + pItem->iDistinct = -1; + } + } + } + /* Make pExpr point to the appropriate pAggInfo->aFunc[] entry + */ + pExpr->iAgg = i; + pExpr->pAggInfo = pAggInfo; + return 1; + } + } + } + + /* Recursively walk subqueries looking for TK_COLUMN nodes that need + ** to be changed to TK_AGG_COLUMN. But increment nDepth so that + ** TK_AGG_FUNCTION nodes in subqueries will be unchanged. + */ + if( pExpr->pSelect ){ + pNC->nDepth++; + walkSelectExpr(pExpr->pSelect, analyzeAggregate, pNC); + pNC->nDepth--; + } + return 0; +} + +/* +** Analyze the given expression looking for aggregate functions and +** for variables that need to be added to the pParse->aAgg[] array. +** Make additional entries to the pParse->aAgg[] array as necessary. +** +** This routine should only be called after the expression has been +** analyzed by sqlite3ExprResolveNames(). +** +** If errors are seen, leave an error message in zErrMsg and return +** the number of errors. +*/ +int sqlite3ExprAnalyzeAggregates(NameContext *pNC, Expr *pExpr){ + int nErr = pNC->pParse->nErr; + walkExprTree(pExpr, analyzeAggregate, pNC); + return pNC->pParse->nErr - nErr; +} + +/* +** Call sqlite3ExprAnalyzeAggregates() for every expression in an +** expression list. Return the number of errors. +** +** If an error is found, the analysis is cut short. +*/ +int sqlite3ExprAnalyzeAggList(NameContext *pNC, ExprList *pList){ + struct ExprList_item *pItem; + int i; + int nErr = 0; + if( pList ){ + for(pItem=pList->a, i=0; nErr==0 && inExpr; i++, pItem++){ + nErr += sqlite3ExprAnalyzeAggregates(pNC, pItem->pExpr); + } + } + return nErr; +} diff --git a/src/dep/src/sqlite/fts1.c b/src/dep/src/sqlite/fts1.c new file mode 100644 index 0000000..735b699 --- /dev/null +++ b/src/dep/src/sqlite/fts1.c @@ -0,0 +1,3272 @@ +/* The author disclaims copyright to this source code. + * + * This is an SQLite module implementing full-text search. + */ + +/* +** The code in this file is only compiled if: +** +** * The FTS1 module is being built as an extension +** (in which case SQLITE_CORE is not defined), or +** +** * The FTS1 module is being built into the core of +** SQLite (in which case SQLITE_ENABLE_FTS1 is defined). +*/ +#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS1) + +#if defined(SQLITE_ENABLE_FTS1) && !defined(SQLITE_CORE) +# define SQLITE_CORE 1 +#endif + +#include +#if !defined(__APPLE__) +#include +#else +#include +#endif +#include +#include +#include + +#include "fts1.h" +#include "fts1_hash.h" +#include "fts1_tokenizer.h" +#include "sqlite3.h" +#include "sqlite3ext.h" +SQLITE_EXTENSION_INIT1 + + +#if 0 +# define TRACE(A) printf A; fflush(stdout) +#else +# define TRACE(A) +#endif + +/* utility functions */ + +typedef struct StringBuffer { + int len; /* length, not including null terminator */ + int alloced; /* Space allocated for s[] */ + char *s; /* Content of the string */ +} StringBuffer; + +static void initStringBuffer(StringBuffer *sb){ + sb->len = 0; + sb->alloced = 100; + sb->s = malloc(100); + sb->s[0] = '\0'; +} + +static void nappend(StringBuffer *sb, const char *zFrom, int nFrom){ + if( sb->len + nFrom >= sb->alloced ){ + sb->alloced = sb->len + nFrom + 100; + sb->s = realloc(sb->s, sb->alloced+1); + if( sb->s==0 ){ + initStringBuffer(sb); + return; + } + } + memcpy(sb->s + sb->len, zFrom, nFrom); + sb->len += nFrom; + sb->s[sb->len] = 0; +} +static void append(StringBuffer *sb, const char *zFrom){ + nappend(sb, zFrom, strlen(zFrom)); +} + +/* We encode variable-length integers in little-endian order using seven bits + * per byte as follows: +** +** KEY: +** A = 0xxxxxxx 7 bits of data and one flag bit +** B = 1xxxxxxx 7 bits of data and one flag bit +** +** 7 bits - A +** 14 bits - BA +** 21 bits - BBA +** and so on. +*/ + +/* We may need up to VARINT_MAX bytes to store an encoded 64-bit integer. */ +#define VARINT_MAX 10 + +/* Write a 64-bit variable-length integer to memory starting at p[0]. + * The length of data written will be between 1 and VARINT_MAX bytes. + * The number of bytes written is returned. */ +static int putVarint(char *p, sqlite_int64 v){ + unsigned char *q = (unsigned char *) p; + sqlite_uint64 vu = v; + do{ + *q++ = (unsigned char) ((vu & 0x7f) | 0x80); + vu >>= 7; + }while( vu!=0 ); + q[-1] &= 0x7f; /* turn off high bit in final byte */ + assert( q - (unsigned char *)p <= VARINT_MAX ); + return (int) (q - (unsigned char *)p); +} + +/* Read a 64-bit variable-length integer from memory starting at p[0]. + * Return the number of bytes read, or 0 on error. + * The value is stored in *v. */ +static int getVarint(const char *p, sqlite_int64 *v){ + const unsigned char *q = (const unsigned char *) p; + sqlite_uint64 x = 0, y = 1; + while( (*q & 0x80) == 0x80 ){ + x += y * (*q++ & 0x7f); + y <<= 7; + if( q - (unsigned char *)p >= VARINT_MAX ){ /* bad data */ + assert( 0 ); + return 0; + } + } + x += y * (*q++); + *v = (sqlite_int64) x; + return (int) (q - (unsigned char *)p); +} + +static int getVarint32(const char *p, int *pi){ + sqlite_int64 i; + int ret = getVarint(p, &i); + *pi = (int) i; + assert( *pi==i ); + return ret; +} + +/*** Document lists *** + * + * A document list holds a sorted list of varint-encoded document IDs. + * + * A doclist with type DL_POSITIONS_OFFSETS is stored like this: + * + * array { + * varint docid; + * array { + * varint position; (delta from previous position plus POS_BASE) + * varint startOffset; (delta from previous startOffset) + * varint endOffset; (delta from startOffset) + * } + * } + * + * Here, array { X } means zero or more occurrences of X, adjacent in memory. + * + * A position list may hold positions for text in multiple columns. A position + * POS_COLUMN is followed by a varint containing the index of the column for + * following positions in the list. Any positions appearing before any + * occurrences of POS_COLUMN are for column 0. + * + * A doclist with type DL_POSITIONS is like the above, but holds only docids + * and positions without offset information. + * + * A doclist with type DL_DOCIDS is like the above, but holds only docids + * without positions or offset information. + * + * On disk, every document list has positions and offsets, so we don't bother + * to serialize a doclist's type. + * + * We don't yet delta-encode document IDs; doing so will probably be a + * modest win. + * + * NOTE(shess) I've thought of a slightly (1%) better offset encoding. + * After the first offset, estimate the next offset by using the + * current token position and the previous token position and offset, + * offset to handle some variance. So the estimate would be + * (iPosition*w->iStartOffset/w->iPosition-64), which is delta-encoded + * as normal. Offsets more than 64 chars from the estimate are + * encoded as the delta to the previous start offset + 128. An + * additional tiny increment can be gained by using the end offset of + * the previous token to make the estimate a tiny bit more precise. +*/ + +typedef enum DocListType { + DL_DOCIDS, /* docids only */ + DL_POSITIONS, /* docids + positions */ + DL_POSITIONS_OFFSETS /* docids + positions + offsets */ +} DocListType; + +/* +** By default, only positions and not offsets are stored in the doclists. +** To change this so that offsets are stored too, compile with +** +** -DDL_DEFAULT=DL_POSITIONS_OFFSETS +** +*/ +#ifndef DL_DEFAULT +# define DL_DEFAULT DL_POSITIONS +#endif + +typedef struct DocList { + char *pData; + int nData; + DocListType iType; + int iLastColumn; /* the last column written */ + int iLastPos; /* the last position written */ + int iLastOffset; /* the last start offset written */ +} DocList; + +enum { + POS_END = 0, /* end of this position list */ + POS_COLUMN, /* followed by new column number */ + POS_BASE +}; + +/* Initialize a new DocList to hold the given data. */ +static void docListInit(DocList *d, DocListType iType, + const char *pData, int nData){ + d->nData = nData; + if( nData>0 ){ + d->pData = malloc(nData); + memcpy(d->pData, pData, nData); + } else { + d->pData = NULL; + } + d->iType = iType; + d->iLastColumn = 0; + d->iLastPos = d->iLastOffset = 0; +} + +/* Create a new dynamically-allocated DocList. */ +static DocList *docListNew(DocListType iType){ + DocList *d = (DocList *) malloc(sizeof(DocList)); + docListInit(d, iType, 0, 0); + return d; +} + +static void docListDestroy(DocList *d){ + free(d->pData); +#ifndef NDEBUG + memset(d, 0x55, sizeof(*d)); +#endif +} + +static void docListDelete(DocList *d){ + docListDestroy(d); + free(d); +} + +static char *docListEnd(DocList *d){ + return d->pData + d->nData; +} + +/* Append a varint to a DocList's data. */ +static void appendVarint(DocList *d, sqlite_int64 i){ + char c[VARINT_MAX]; + int n = putVarint(c, i); + d->pData = realloc(d->pData, d->nData + n); + memcpy(d->pData + d->nData, c, n); + d->nData += n; +} + +static void docListAddDocid(DocList *d, sqlite_int64 iDocid){ + appendVarint(d, iDocid); + if( d->iType>=DL_POSITIONS ){ + appendVarint(d, POS_END); /* initially empty position list */ + d->iLastColumn = 0; + d->iLastPos = d->iLastOffset = 0; + } +} + +/* helper function for docListAddPos and docListAddPosOffset */ +static void addPos(DocList *d, int iColumn, int iPos){ + assert( d->nData>0 ); + --d->nData; /* remove previous terminator */ + if( iColumn!=d->iLastColumn ){ + assert( iColumn>d->iLastColumn ); + appendVarint(d, POS_COLUMN); + appendVarint(d, iColumn); + d->iLastColumn = iColumn; + d->iLastPos = d->iLastOffset = 0; + } + assert( iPos>=d->iLastPos ); + appendVarint(d, iPos-d->iLastPos+POS_BASE); + d->iLastPos = iPos; +} + +/* Add a position to the last position list in a doclist. */ +static void docListAddPos(DocList *d, int iColumn, int iPos){ + assert( d->iType==DL_POSITIONS ); + addPos(d, iColumn, iPos); + appendVarint(d, POS_END); /* add new terminator */ +} + +/* +** Add a position and starting and ending offsets to a doclist. +** +** If the doclist is setup to handle only positions, then insert +** the position only and ignore the offsets. +*/ +static void docListAddPosOffset( + DocList *d, /* Doclist under construction */ + int iColumn, /* Column the inserted term is part of */ + int iPos, /* Position of the inserted term */ + int iStartOffset, /* Starting offset of inserted term */ + int iEndOffset /* Ending offset of inserted term */ +){ + assert( d->iType>=DL_POSITIONS ); + addPos(d, iColumn, iPos); + if( d->iType==DL_POSITIONS_OFFSETS ){ + assert( iStartOffset>=d->iLastOffset ); + appendVarint(d, iStartOffset-d->iLastOffset); + d->iLastOffset = iStartOffset; + assert( iEndOffset>=iStartOffset ); + appendVarint(d, iEndOffset-iStartOffset); + } + appendVarint(d, POS_END); /* add new terminator */ +} + +/* +** A DocListReader object is a cursor into a doclist. Initialize +** the cursor to the beginning of the doclist by calling readerInit(). +** Then use routines +** +** peekDocid() +** readDocid() +** readPosition() +** skipPositionList() +** and so forth... +** +** to read information out of the doclist. When we reach the end +** of the doclist, atEnd() returns TRUE. +*/ +typedef struct DocListReader { + DocList *pDoclist; /* The document list we are stepping through */ + char *p; /* Pointer to next unread byte in the doclist */ + int iLastColumn; + int iLastPos; /* the last position read, or -1 when not in a position list */ +} DocListReader; + +/* +** Initialize the DocListReader r to point to the beginning of pDoclist. +*/ +static void readerInit(DocListReader *r, DocList *pDoclist){ + r->pDoclist = pDoclist; + if( pDoclist!=NULL ){ + r->p = pDoclist->pData; + } + r->iLastColumn = -1; + r->iLastPos = -1; +} + +/* +** Return TRUE if we have reached then end of pReader and there is +** nothing else left to read. +*/ +static int atEnd(DocListReader *pReader){ + return pReader->pDoclist==0 || (pReader->p >= docListEnd(pReader->pDoclist)); +} + +/* Peek at the next docid without advancing the read pointer. +*/ +static sqlite_int64 peekDocid(DocListReader *pReader){ + sqlite_int64 ret; + assert( !atEnd(pReader) ); + assert( pReader->iLastPos==-1 ); + getVarint(pReader->p, &ret); + return ret; +} + +/* Read the next docid. See also nextDocid(). +*/ +static sqlite_int64 readDocid(DocListReader *pReader){ + sqlite_int64 ret; + assert( !atEnd(pReader) ); + assert( pReader->iLastPos==-1 ); + pReader->p += getVarint(pReader->p, &ret); + if( pReader->pDoclist->iType>=DL_POSITIONS ){ + pReader->iLastColumn = 0; + pReader->iLastPos = 0; + } + return ret; +} + +/* Read the next position and column index from a position list. + * Returns the position, or -1 at the end of the list. */ +static int readPosition(DocListReader *pReader, int *iColumn){ + int i; + int iType = pReader->pDoclist->iType; + + if( pReader->iLastPos==-1 ){ + return -1; + } + assert( !atEnd(pReader) ); + + if( iTypep += getVarint32(pReader->p, &i); + if( i==POS_END ){ + pReader->iLastColumn = pReader->iLastPos = -1; + *iColumn = -1; + return -1; + } + if( i==POS_COLUMN ){ + pReader->p += getVarint32(pReader->p, &pReader->iLastColumn); + pReader->iLastPos = 0; + pReader->p += getVarint32(pReader->p, &i); + assert( i>=POS_BASE ); + } + pReader->iLastPos += ((int) i)-POS_BASE; + if( iType>=DL_POSITIONS_OFFSETS ){ + /* Skip over offsets, ignoring them for now. */ + int iStart, iEnd; + pReader->p += getVarint32(pReader->p, &iStart); + pReader->p += getVarint32(pReader->p, &iEnd); + } + *iColumn = pReader->iLastColumn; + return pReader->iLastPos; +} + +/* Skip past the end of a position list. */ +static void skipPositionList(DocListReader *pReader){ + DocList *p = pReader->pDoclist; + if( p && p->iType>=DL_POSITIONS ){ + int iColumn; + while( readPosition(pReader, &iColumn)!=-1 ){} + } +} + +/* Skip over a docid, including its position list if the doclist has + * positions. */ +static void skipDocument(DocListReader *pReader){ + readDocid(pReader); + skipPositionList(pReader); +} + +/* Skip past all docids which are less than [iDocid]. Returns 1 if a docid + * matching [iDocid] was found. */ +static int skipToDocid(DocListReader *pReader, sqlite_int64 iDocid){ + sqlite_int64 d = 0; + while( !atEnd(pReader) && (d=peekDocid(pReader))iType>=DL_POSITIONS ){ + int iPos, iCol; + const char *zDiv = ""; + printf("("); + while( (iPos = readPosition(&r, &iCol))>=0 ){ + printf("%s%d:%d", zDiv, iCol, iPos); + zDiv = ":"; + } + printf(")"); + } + } + printf("\n"); + fflush(stdout); +} +#endif /* SQLITE_DEBUG */ + +/* Trim the given doclist to contain only positions in column + * [iRestrictColumn]. */ +static void docListRestrictColumn(DocList *in, int iRestrictColumn){ + DocListReader r; + DocList out; + + assert( in->iType>=DL_POSITIONS ); + readerInit(&r, in); + docListInit(&out, DL_POSITIONS, NULL, 0); + + while( !atEnd(&r) ){ + sqlite_int64 iDocid = readDocid(&r); + int iPos, iColumn; + + docListAddDocid(&out, iDocid); + while( (iPos = readPosition(&r, &iColumn)) != -1 ){ + if( iColumn==iRestrictColumn ){ + docListAddPos(&out, iColumn, iPos); + } + } + } + + docListDestroy(in); + *in = out; +} + +/* Trim the given doclist by discarding any docids without any remaining + * positions. */ +static void docListDiscardEmpty(DocList *in) { + DocListReader r; + DocList out; + + /* TODO: It would be nice to implement this operation in place; that + * could save a significant amount of memory in queries with long doclists. */ + assert( in->iType>=DL_POSITIONS ); + readerInit(&r, in); + docListInit(&out, DL_POSITIONS, NULL, 0); + + while( !atEnd(&r) ){ + sqlite_int64 iDocid = readDocid(&r); + int match = 0; + int iPos, iColumn; + while( (iPos = readPosition(&r, &iColumn)) != -1 ){ + if( !match ){ + docListAddDocid(&out, iDocid); + match = 1; + } + docListAddPos(&out, iColumn, iPos); + } + } + + docListDestroy(in); + *in = out; +} + +/* Helper function for docListUpdate() and docListAccumulate(). +** Splices a doclist element into the doclist represented by r, +** leaving r pointing after the newly spliced element. +*/ +static void docListSpliceElement(DocListReader *r, sqlite_int64 iDocid, + const char *pSource, int nSource){ + DocList *d = r->pDoclist; + char *pTarget; + int nTarget, found; + + found = skipToDocid(r, iDocid); + + /* Describe slice in d to place pSource/nSource. */ + pTarget = r->p; + if( found ){ + skipDocument(r); + nTarget = r->p-pTarget; + }else{ + nTarget = 0; + } + + /* The sense of the following is that there are three possibilities. + ** If nTarget==nSource, we should not move any memory nor realloc. + ** If nTarget>nSource, trim target and realloc. + ** If nTargetnSource ){ + memmove(pTarget+nSource, pTarget+nTarget, docListEnd(d)-(pTarget+nTarget)); + } + if( nTarget!=nSource ){ + int iDoclist = pTarget-d->pData; + d->pData = realloc(d->pData, d->nData+nSource-nTarget); + pTarget = d->pData+iDoclist; + } + if( nTargetnData += nSource-nTarget; + r->p = pTarget+nSource; +} + +/* Insert/update pUpdate into the doclist. */ +static void docListUpdate(DocList *d, DocList *pUpdate){ + DocListReader reader; + + assert( d!=NULL && pUpdate!=NULL ); + assert( d->iType==pUpdate->iType); + + readerInit(&reader, d); + docListSpliceElement(&reader, firstDocid(pUpdate), + pUpdate->pData, pUpdate->nData); +} + +/* Propagate elements from pUpdate to pAcc, overwriting elements with +** matching docids. +*/ +static void docListAccumulate(DocList *pAcc, DocList *pUpdate){ + DocListReader accReader, updateReader; + + /* Handle edge cases where one doclist is empty. */ + assert( pAcc!=NULL ); + if( pUpdate==NULL || pUpdate->nData==0 ) return; + if( pAcc->nData==0 ){ + pAcc->pData = malloc(pUpdate->nData); + memcpy(pAcc->pData, pUpdate->pData, pUpdate->nData); + pAcc->nData = pUpdate->nData; + return; + } + + readerInit(&accReader, pAcc); + readerInit(&updateReader, pUpdate); + + while( !atEnd(&updateReader) ){ + char *pSource = updateReader.p; + sqlite_int64 iDocid = readDocid(&updateReader); + skipPositionList(&updateReader); + docListSpliceElement(&accReader, iDocid, pSource, updateReader.p-pSource); + } +} + +/* +** Read the next docid off of pIn. Return 0 if we reach the end. +* +* TODO: This assumes that docids are never 0, but they may actually be 0 since +* users can choose docids when inserting into a full-text table. Fix this. +*/ +static sqlite_int64 nextDocid(DocListReader *pIn){ + skipPositionList(pIn); + return atEnd(pIn) ? 0 : readDocid(pIn); +} + +/* +** pLeft and pRight are two DocListReaders that are pointing to +** positions lists of the same document: iDocid. +** +** If there are no instances in pLeft or pRight where the position +** of pLeft is one less than the position of pRight, then this +** routine adds nothing to pOut. +** +** If there are one or more instances where positions from pLeft +** are exactly one less than positions from pRight, then add a new +** document record to pOut. If pOut wants to hold positions, then +** include the positions from pRight that are one more than a +** position in pLeft. In other words: pRight.iPos==pLeft.iPos+1. +** +** pLeft and pRight are left pointing at the next document record. +*/ +static void mergePosList( + DocListReader *pLeft, /* Left position list */ + DocListReader *pRight, /* Right position list */ + sqlite_int64 iDocid, /* The docid from pLeft and pRight */ + DocList *pOut /* Write the merged document record here */ +){ + int iLeftCol, iLeftPos = readPosition(pLeft, &iLeftCol); + int iRightCol, iRightPos = readPosition(pRight, &iRightCol); + int match = 0; + + /* Loop until we've reached the end of both position lists. */ + while( iLeftPos!=-1 && iRightPos!=-1 ){ + if( iLeftCol==iRightCol && iLeftPos+1==iRightPos ){ + if( !match ){ + docListAddDocid(pOut, iDocid); + match = 1; + } + if( pOut->iType>=DL_POSITIONS ){ + docListAddPos(pOut, iRightCol, iRightPos); + } + iLeftPos = readPosition(pLeft, &iLeftCol); + iRightPos = readPosition(pRight, &iRightCol); + }else if( iRightCol=0 ) skipPositionList(pLeft); + if( iRightPos>=0 ) skipPositionList(pRight); +} + +/* We have two doclists: pLeft and pRight. +** Write the phrase intersection of these two doclists into pOut. +** +** A phrase intersection means that two documents only match +** if pLeft.iPos+1==pRight.iPos. +** +** The output pOut may or may not contain positions. If pOut +** does contain positions, they are the positions of pRight. +*/ +static void docListPhraseMerge( + DocList *pLeft, /* Doclist resulting from the words on the left */ + DocList *pRight, /* Doclist for the next word to the right */ + DocList *pOut /* Write the combined doclist here */ +){ + DocListReader left, right; + sqlite_int64 docidLeft, docidRight; + + readerInit(&left, pLeft); + readerInit(&right, pRight); + docidLeft = nextDocid(&left); + docidRight = nextDocid(&right); + + while( docidLeft>0 && docidRight>0 ){ + if( docidLeftiType0 && docidRight>0 ){ + if( docidLeft0 && docidRight>0 ){ + if( docidLeft<=docidRight ){ + docListAddDocid(pOut, docidLeft); + }else{ + docListAddDocid(pOut, docidRight); + } + priorLeft = docidLeft; + if( docidLeft<=docidRight ){ + docidLeft = nextDocid(&left); + } + if( docidRight>0 && docidRight<=priorLeft ){ + docidRight = nextDocid(&right); + } + } + while( docidLeft>0 ){ + docListAddDocid(pOut, docidLeft); + docidLeft = nextDocid(&left); + } + while( docidRight>0 ){ + docListAddDocid(pOut, docidRight); + docidRight = nextDocid(&right); + } +} + +/* We have two doclists: pLeft and pRight. +** Write into pOut all documents that occur in pLeft but not +** in pRight. +** +** Only docids are matched. Position information is ignored. +** +** The output pOut never holds positions. +*/ +static void docListExceptMerge( + DocList *pLeft, /* Doclist resulting from the words on the left */ + DocList *pRight, /* Doclist for the next word to the right */ + DocList *pOut /* Write the combined doclist here */ +){ + DocListReader left, right; + sqlite_int64 docidLeft, docidRight, priorLeft; + + readerInit(&left, pLeft); + readerInit(&right, pRight); + docidLeft = nextDocid(&left); + docidRight = nextDocid(&right); + + while( docidLeft>0 && docidRight>0 ){ + priorLeft = docidLeft; + if( docidLeft0 && docidRight<=priorLeft ){ + docidRight = nextDocid(&right); + } + } + while( docidLeft>0 ){ + docListAddDocid(pOut, docidLeft); + docidLeft = nextDocid(&left); + } +} + +static char *string_dup_n(const char *s, int n){ + char *str = malloc(n + 1); + memcpy(str, s, n); + str[n] = '\0'; + return str; +} + +/* Duplicate a string; the caller must free() the returned string. + * (We don't use strdup() since it's not part of the standard C library and + * may not be available everywhere.) */ +static char *string_dup(const char *s){ + return string_dup_n(s, strlen(s)); +} + +/* Format a string, replacing each occurrence of the % character with + * zName. This may be more convenient than sqlite_mprintf() + * when one string is used repeatedly in a format string. + * The caller must free() the returned string. */ +static char *string_format(const char *zFormat, const char *zName){ + const char *p; + size_t len = 0; + size_t nName = strlen(zName); + char *result; + char *r; + + /* first compute length needed */ + for(p = zFormat ; *p ; ++p){ + len += (*p=='%' ? nName : 1); + } + len += 1; /* for null terminator */ + + r = result = malloc(len); + for(p = zFormat; *p; ++p){ + if( *p=='%' ){ + memcpy(r, zName, nName); + r += nName; + } else { + *r++ = *p; + } + } + *r++ = '\0'; + assert( r == result + len ); + return result; +} + +static int sql_exec(sqlite3 *db, const char *zName, const char *zFormat){ + char *zCommand = string_format(zFormat, zName); + int rc; + TRACE(("FTS1 sql: %s\n", zCommand)); + rc = sqlite3_exec(db, zCommand, NULL, 0, NULL); + free(zCommand); + return rc; +} + +static int sql_prepare(sqlite3 *db, const char *zName, sqlite3_stmt **ppStmt, + const char *zFormat){ + char *zCommand = string_format(zFormat, zName); + int rc; + TRACE(("FTS1 prepare: %s\n", zCommand)); + rc = sqlite3_prepare(db, zCommand, -1, ppStmt, NULL); + free(zCommand); + return rc; +} + +/* end utility functions */ + +/* Forward reference */ +typedef struct fulltext_vtab fulltext_vtab; + +/* A single term in a query is represented by an instances of +** the following structure. +*/ +typedef struct QueryTerm { + short int nPhrase; /* How many following terms are part of the same phrase */ + short int iPhrase; /* This is the i-th term of a phrase. */ + short int iColumn; /* Column of the index that must match this term */ + signed char isOr; /* this term is preceded by "OR" */ + signed char isNot; /* this term is preceded by "-" */ + char *pTerm; /* text of the term. '\000' terminated. malloced */ + int nTerm; /* Number of bytes in pTerm[] */ +} QueryTerm; + + +/* A query string is parsed into a Query structure. + * + * We could, in theory, allow query strings to be complicated + * nested expressions with precedence determined by parentheses. + * But none of the major search engines do this. (Perhaps the + * feeling is that an parenthesized expression is two complex of + * an idea for the average user to grasp.) Taking our lead from + * the major search engines, we will allow queries to be a list + * of terms (with an implied AND operator) or phrases in double-quotes, + * with a single optional "-" before each non-phrase term to designate + * negation and an optional OR connector. + * + * OR binds more tightly than the implied AND, which is what the + * major search engines seem to do. So, for example: + * + * [one two OR three] ==> one AND (two OR three) + * [one OR two three] ==> (one OR two) AND three + * + * A "-" before a term matches all entries that lack that term. + * The "-" must occur immediately before the term with in intervening + * space. This is how the search engines do it. + * + * A NOT term cannot be the right-hand operand of an OR. If this + * occurs in the query string, the NOT is ignored: + * + * [one OR -two] ==> one OR two + * + */ +typedef struct Query { + fulltext_vtab *pFts; /* The full text index */ + int nTerms; /* Number of terms in the query */ + QueryTerm *pTerms; /* Array of terms. Space obtained from malloc() */ + int nextIsOr; /* Set the isOr flag on the next inserted term */ + int nextColumn; /* Next word parsed must be in this column */ + int dfltColumn; /* The default column */ +} Query; + + +/* +** An instance of the following structure keeps track of generated +** matching-word offset information and snippets. +*/ +typedef struct Snippet { + int nMatch; /* Total number of matches */ + int nAlloc; /* Space allocated for aMatch[] */ + struct snippetMatch { /* One entry for each matching term */ + char snStatus; /* Status flag for use while constructing snippets */ + short int iCol; /* The column that contains the match */ + short int iTerm; /* The index in Query.pTerms[] of the matching term */ + short int nByte; /* Number of bytes in the term */ + int iStart; /* The offset to the first character of the term */ + } *aMatch; /* Points to space obtained from malloc */ + char *zOffset; /* Text rendering of aMatch[] */ + int nOffset; /* strlen(zOffset) */ + char *zSnippet; /* Snippet text */ + int nSnippet; /* strlen(zSnippet) */ +} Snippet; + + +typedef enum QueryType { + QUERY_GENERIC, /* table scan */ + QUERY_ROWID, /* lookup by rowid */ + QUERY_FULLTEXT /* QUERY_FULLTEXT + [i] is a full-text search for column i*/ +} QueryType; + +/* TODO(shess) CHUNK_MAX controls how much data we allow in segment 0 +** before we start aggregating into larger segments. Lower CHUNK_MAX +** means that for a given input we have more individual segments per +** term, which means more rows in the table and a bigger index (due to +** both more rows and bigger rowids). But it also reduces the average +** cost of adding new elements to the segment 0 doclist, and it seems +** to reduce the number of pages read and written during inserts. 256 +** was chosen by measuring insertion times for a certain input (first +** 10k documents of Enron corpus), though including query performance +** in the decision may argue for a larger value. +*/ +#define CHUNK_MAX 256 + +typedef enum fulltext_statement { + CONTENT_INSERT_STMT, + CONTENT_SELECT_STMT, + CONTENT_UPDATE_STMT, + CONTENT_DELETE_STMT, + + TERM_SELECT_STMT, + TERM_SELECT_ALL_STMT, + TERM_INSERT_STMT, + TERM_UPDATE_STMT, + TERM_DELETE_STMT, + + MAX_STMT /* Always at end! */ +} fulltext_statement; + +/* These must exactly match the enum above. */ +/* TODO(adam): Is there some risk that a statement (in particular, +** pTermSelectStmt) will be used in two cursors at once, e.g. if a +** query joins a virtual table to itself? If so perhaps we should +** move some of these to the cursor object. +*/ +static const char *const fulltext_zStatement[MAX_STMT] = { + /* CONTENT_INSERT */ NULL, /* generated in contentInsertStatement() */ + /* CONTENT_SELECT */ "select * from %_content where rowid = ?", + /* CONTENT_UPDATE */ NULL, /* generated in contentUpdateStatement() */ + /* CONTENT_DELETE */ "delete from %_content where rowid = ?", + + /* TERM_SELECT */ + "select rowid, doclist from %_term where term = ? and segment = ?", + /* TERM_SELECT_ALL */ + "select doclist from %_term where term = ? order by segment", + /* TERM_INSERT */ + "insert into %_term (rowid, term, segment, doclist) values (?, ?, ?, ?)", + /* TERM_UPDATE */ "update %_term set doclist = ? where rowid = ?", + /* TERM_DELETE */ "delete from %_term where rowid = ?", +}; + +/* +** A connection to a fulltext index is an instance of the following +** structure. The xCreate and xConnect methods create an instance +** of this structure and xDestroy and xDisconnect free that instance. +** All other methods receive a pointer to the structure as one of their +** arguments. +*/ +struct fulltext_vtab { + sqlite3_vtab base; /* Base class used by SQLite core */ + sqlite3 *db; /* The database connection */ + const char *zName; /* virtual table name */ + int nColumn; /* number of columns in virtual table */ + char **azColumn; /* column names. malloced */ + char **azContentColumn; /* column names in content table; malloced */ + sqlite3_tokenizer *pTokenizer; /* tokenizer for inserts and queries */ + + /* Precompiled statements which we keep as long as the table is + ** open. + */ + sqlite3_stmt *pFulltextStatements[MAX_STMT]; +}; + +/* +** When the core wants to do a query, it create a cursor using a +** call to xOpen. This structure is an instance of a cursor. It +** is destroyed by xClose. +*/ +typedef struct fulltext_cursor { + sqlite3_vtab_cursor base; /* Base class used by SQLite core */ + QueryType iCursorType; /* Copy of sqlite3_index_info.idxNum */ + sqlite3_stmt *pStmt; /* Prepared statement in use by the cursor */ + int eof; /* True if at End Of Results */ + Query q; /* Parsed query string */ + Snippet snippet; /* Cached snippet for the current row */ + int iColumn; /* Column being searched */ + DocListReader result; /* used when iCursorType == QUERY_FULLTEXT */ +} fulltext_cursor; + +static struct fulltext_vtab *cursor_vtab(fulltext_cursor *c){ + return (fulltext_vtab *) c->base.pVtab; +} + +static const sqlite3_module fulltextModule; /* forward declaration */ + +/* Append a list of strings separated by commas to a StringBuffer. */ +static void appendList(StringBuffer *sb, int nString, char **azString){ + int i; + for(i=0; i0 ) append(sb, ", "); + append(sb, azString[i]); + } +} + +/* Return a dynamically generated statement of the form + * insert into %_content (rowid, ...) values (?, ...) + */ +static const char *contentInsertStatement(fulltext_vtab *v){ + StringBuffer sb; + int i; + + initStringBuffer(&sb); + append(&sb, "insert into %_content (rowid, "); + appendList(&sb, v->nColumn, v->azContentColumn); + append(&sb, ") values (?"); + for(i=0; inColumn; ++i) + append(&sb, ", ?"); + append(&sb, ")"); + return sb.s; +} + +/* Return a dynamically generated statement of the form + * update %_content set [col_0] = ?, [col_1] = ?, ... + * where rowid = ? + */ +static const char *contentUpdateStatement(fulltext_vtab *v){ + StringBuffer sb; + int i; + + initStringBuffer(&sb); + append(&sb, "update %_content set "); + for(i=0; inColumn; ++i) { + if( i>0 ){ + append(&sb, ", "); + } + append(&sb, v->azContentColumn[i]); + append(&sb, " = ?"); + } + append(&sb, " where rowid = ?"); + return sb.s; +} + +/* Puts a freshly-prepared statement determined by iStmt in *ppStmt. +** If the indicated statement has never been prepared, it is prepared +** and cached, otherwise the cached version is reset. +*/ +static int sql_get_statement(fulltext_vtab *v, fulltext_statement iStmt, + sqlite3_stmt **ppStmt){ + assert( iStmtpFulltextStatements[iStmt]==NULL ){ + const char *zStmt; + int rc; + switch( iStmt ){ + case CONTENT_INSERT_STMT: + zStmt = contentInsertStatement(v); break; + case CONTENT_UPDATE_STMT: + zStmt = contentUpdateStatement(v); break; + default: + zStmt = fulltext_zStatement[iStmt]; + } + rc = sql_prepare(v->db, v->zName, &v->pFulltextStatements[iStmt], + zStmt); + if( zStmt != fulltext_zStatement[iStmt]) free((void *) zStmt); + if( rc!=SQLITE_OK ) return rc; + } else { + int rc = sqlite3_reset(v->pFulltextStatements[iStmt]); + if( rc!=SQLITE_OK ) return rc; + } + + *ppStmt = v->pFulltextStatements[iStmt]; + return SQLITE_OK; +} + +/* Step the indicated statement, handling errors SQLITE_BUSY (by +** retrying) and SQLITE_SCHEMA (by re-preparing and transferring +** bindings to the new statement). +** TODO(adam): We should extend this function so that it can work with +** statements declared locally, not only globally cached statements. +*/ +static int sql_step_statement(fulltext_vtab *v, fulltext_statement iStmt, + sqlite3_stmt **ppStmt){ + int rc; + sqlite3_stmt *s = *ppStmt; + assert( iStmtpFulltextStatements[iStmt] ); + + while( (rc=sqlite3_step(s))!=SQLITE_DONE && rc!=SQLITE_ROW ){ + sqlite3_stmt *pNewStmt; + + if( rc==SQLITE_BUSY ) continue; + if( rc!=SQLITE_ERROR ) return rc; + + rc = sqlite3_reset(s); + if( rc!=SQLITE_SCHEMA ) return SQLITE_ERROR; + + v->pFulltextStatements[iStmt] = NULL; /* Still in s */ + rc = sql_get_statement(v, iStmt, &pNewStmt); + if( rc!=SQLITE_OK ) goto err; + *ppStmt = pNewStmt; + + rc = sqlite3_transfer_bindings(s, pNewStmt); + if( rc!=SQLITE_OK ) goto err; + + rc = sqlite3_finalize(s); + if( rc!=SQLITE_OK ) return rc; + s = pNewStmt; + } + return rc; + + err: + sqlite3_finalize(s); + return rc; +} + +/* Like sql_step_statement(), but convert SQLITE_DONE to SQLITE_OK. +** Useful for statements like UPDATE, where we expect no results. +*/ +static int sql_single_step_statement(fulltext_vtab *v, + fulltext_statement iStmt, + sqlite3_stmt **ppStmt){ + int rc = sql_step_statement(v, iStmt, ppStmt); + return (rc==SQLITE_DONE) ? SQLITE_OK : rc; +} + +/* insert into %_content (rowid, ...) values ([rowid], [pValues]) */ +static int content_insert(fulltext_vtab *v, sqlite3_value *rowid, + sqlite3_value **pValues){ + sqlite3_stmt *s; + int i; + int rc = sql_get_statement(v, CONTENT_INSERT_STMT, &s); + if( rc!=SQLITE_OK ) return rc; + + rc = sqlite3_bind_value(s, 1, rowid); + if( rc!=SQLITE_OK ) return rc; + + for(i=0; inColumn; ++i){ + rc = sqlite3_bind_value(s, 2+i, pValues[i]); + if( rc!=SQLITE_OK ) return rc; + } + + return sql_single_step_statement(v, CONTENT_INSERT_STMT, &s); +} + +/* update %_content set col0 = pValues[0], col1 = pValues[1], ... + * where rowid = [iRowid] */ +static int content_update(fulltext_vtab *v, sqlite3_value **pValues, + sqlite_int64 iRowid){ + sqlite3_stmt *s; + int i; + int rc = sql_get_statement(v, CONTENT_UPDATE_STMT, &s); + if( rc!=SQLITE_OK ) return rc; + + for(i=0; inColumn; ++i){ + rc = sqlite3_bind_value(s, 1+i, pValues[i]); + if( rc!=SQLITE_OK ) return rc; + } + + rc = sqlite3_bind_int64(s, 1+v->nColumn, iRowid); + if( rc!=SQLITE_OK ) return rc; + + return sql_single_step_statement(v, CONTENT_UPDATE_STMT, &s); +} + +static void freeStringArray(int nString, const char **pString){ + int i; + + for (i=0 ; i < nString ; ++i) { + free((void *) pString[i]); + } + free((void *) pString); +} + +/* select * from %_content where rowid = [iRow] + * The caller must delete the returned array and all strings in it. + * + * TODO: Perhaps we should return pointer/length strings here for consistency + * with other code which uses pointer/length. */ +static int content_select(fulltext_vtab *v, sqlite_int64 iRow, + const char ***pValues){ + sqlite3_stmt *s; + const char **values; + int i; + int rc; + + *pValues = NULL; + + rc = sql_get_statement(v, CONTENT_SELECT_STMT, &s); + if( rc!=SQLITE_OK ) return rc; + + rc = sqlite3_bind_int64(s, 1, iRow); + if( rc!=SQLITE_OK ) return rc; + + rc = sql_step_statement(v, CONTENT_SELECT_STMT, &s); + if( rc!=SQLITE_ROW ) return rc; + + values = (const char **) malloc(v->nColumn * sizeof(const char *)); + for(i=0; inColumn; ++i){ + values[i] = string_dup((char*)sqlite3_column_text(s, i)); + } + + /* We expect only one row. We must execute another sqlite3_step() + * to complete the iteration; otherwise the table will remain locked. */ + rc = sqlite3_step(s); + if( rc==SQLITE_DONE ){ + *pValues = values; + return SQLITE_OK; + } + + freeStringArray(v->nColumn, values); + return rc; +} + +/* delete from %_content where rowid = [iRow ] */ +static int content_delete(fulltext_vtab *v, sqlite_int64 iRow){ + sqlite3_stmt *s; + int rc = sql_get_statement(v, CONTENT_DELETE_STMT, &s); + if( rc!=SQLITE_OK ) return rc; + + rc = sqlite3_bind_int64(s, 1, iRow); + if( rc!=SQLITE_OK ) return rc; + + return sql_single_step_statement(v, CONTENT_DELETE_STMT, &s); +} + +/* select rowid, doclist from %_term + * where term = [pTerm] and segment = [iSegment] + * If found, returns SQLITE_ROW; the caller must free the + * returned doclist. If no rows found, returns SQLITE_DONE. */ +static int term_select(fulltext_vtab *v, const char *pTerm, int nTerm, + int iSegment, + sqlite_int64 *rowid, DocList *out){ + sqlite3_stmt *s; + int rc = sql_get_statement(v, TERM_SELECT_STMT, &s); + if( rc!=SQLITE_OK ) return rc; + + rc = sqlite3_bind_text(s, 1, pTerm, nTerm, SQLITE_STATIC); + if( rc!=SQLITE_OK ) return rc; + + rc = sqlite3_bind_int(s, 2, iSegment); + if( rc!=SQLITE_OK ) return rc; + + rc = sql_step_statement(v, TERM_SELECT_STMT, &s); + if( rc!=SQLITE_ROW ) return rc; + + *rowid = sqlite3_column_int64(s, 0); + docListInit(out, DL_DEFAULT, + sqlite3_column_blob(s, 1), sqlite3_column_bytes(s, 1)); + + /* We expect only one row. We must execute another sqlite3_step() + * to complete the iteration; otherwise the table will remain locked. */ + rc = sqlite3_step(s); + return rc==SQLITE_DONE ? SQLITE_ROW : rc; +} + +/* Load the segment doclists for term pTerm and merge them in +** appropriate order into out. Returns SQLITE_OK if successful. If +** there are no segments for pTerm, successfully returns an empty +** doclist in out. +** +** Each document consists of 1 or more "columns". The number of +** columns is v->nColumn. If iColumn==v->nColumn, then return +** position information about all columns. If iColumnnColumn, +** then only return position information about the iColumn-th column +** (where the first column is 0). +*/ +static int term_select_all( + fulltext_vtab *v, /* The fulltext index we are querying against */ + int iColumn, /* If nColumn ){ /* querying a single column */ + docListRestrictColumn(&old, iColumn); + } + + /* doclist contains the newer data, so write it over old. Then + ** steal accumulated result for doclist. + */ + docListAccumulate(&old, &doclist); + docListDestroy(&doclist); + doclist = old; + } + if( rc!=SQLITE_DONE ){ + docListDestroy(&doclist); + return rc; + } + + docListDiscardEmpty(&doclist); + *out = doclist; + return SQLITE_OK; +} + +/* insert into %_term (rowid, term, segment, doclist) + values ([piRowid], [pTerm], [iSegment], [doclist]) +** Lets sqlite select rowid if piRowid is NULL, else uses *piRowid. +** +** NOTE(shess) piRowid is IN, with values of "space of int64" plus +** null, it is not used to pass data back to the caller. +*/ +static int term_insert(fulltext_vtab *v, sqlite_int64 *piRowid, + const char *pTerm, int nTerm, + int iSegment, DocList *doclist){ + sqlite3_stmt *s; + int rc = sql_get_statement(v, TERM_INSERT_STMT, &s); + if( rc!=SQLITE_OK ) return rc; + + if( piRowid==NULL ){ + rc = sqlite3_bind_null(s, 1); + }else{ + rc = sqlite3_bind_int64(s, 1, *piRowid); + } + if( rc!=SQLITE_OK ) return rc; + + rc = sqlite3_bind_text(s, 2, pTerm, nTerm, SQLITE_STATIC); + if( rc!=SQLITE_OK ) return rc; + + rc = sqlite3_bind_int(s, 3, iSegment); + if( rc!=SQLITE_OK ) return rc; + + rc = sqlite3_bind_blob(s, 4, doclist->pData, doclist->nData, SQLITE_STATIC); + if( rc!=SQLITE_OK ) return rc; + + return sql_single_step_statement(v, TERM_INSERT_STMT, &s); +} + +/* update %_term set doclist = [doclist] where rowid = [rowid] */ +static int term_update(fulltext_vtab *v, sqlite_int64 rowid, + DocList *doclist){ + sqlite3_stmt *s; + int rc = sql_get_statement(v, TERM_UPDATE_STMT, &s); + if( rc!=SQLITE_OK ) return rc; + + rc = sqlite3_bind_blob(s, 1, doclist->pData, doclist->nData, SQLITE_STATIC); + if( rc!=SQLITE_OK ) return rc; + + rc = sqlite3_bind_int64(s, 2, rowid); + if( rc!=SQLITE_OK ) return rc; + + return sql_single_step_statement(v, TERM_UPDATE_STMT, &s); +} + +static int term_delete(fulltext_vtab *v, sqlite_int64 rowid){ + sqlite3_stmt *s; + int rc = sql_get_statement(v, TERM_DELETE_STMT, &s); + if( rc!=SQLITE_OK ) return rc; + + rc = sqlite3_bind_int64(s, 1, rowid); + if( rc!=SQLITE_OK ) return rc; + + return sql_single_step_statement(v, TERM_DELETE_STMT, &s); +} + +/* +** Free the memory used to contain a fulltext_vtab structure. +*/ +static void fulltext_vtab_destroy(fulltext_vtab *v){ + int iStmt, i; + + TRACE(("FTS1 Destroy %p\n", v)); + for( iStmt=0; iStmtpFulltextStatements[iStmt]!=NULL ){ + sqlite3_finalize(v->pFulltextStatements[iStmt]); + v->pFulltextStatements[iStmt] = NULL; + } + } + + if( v->pTokenizer!=NULL ){ + v->pTokenizer->pModule->xDestroy(v->pTokenizer); + v->pTokenizer = NULL; + } + + free(v->azColumn); + for(i = 0; i < v->nColumn; ++i) { + sqlite3_free(v->azContentColumn[i]); + } + free(v->azContentColumn); + free(v); +} + +/* +** Token types for parsing the arguments to xConnect or xCreate. +*/ +#define TOKEN_EOF 0 /* End of file */ +#define TOKEN_SPACE 1 /* Any kind of whitespace */ +#define TOKEN_ID 2 /* An identifier */ +#define TOKEN_STRING 3 /* A string literal */ +#define TOKEN_PUNCT 4 /* A single punctuation character */ + +/* +** If X is a character that can be used in an identifier then +** IdChar(X) will be true. Otherwise it is false. +** +** For ASCII, any character with the high-order bit set is +** allowed in an identifier. For 7-bit characters, +** sqlite3IsIdChar[X] must be 1. +** +** Ticket #1066. the SQL standard does not allow '$' in the +** middle of identfiers. But many SQL implementations do. +** SQLite will allow '$' in identifiers for compatibility. +** But the feature is undocumented. +*/ +static const char isIdChar[] = { +/* x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 2x */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* 3x */ + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 4x */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /* 5x */ + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 6x */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, /* 7x */ +}; +#define IdChar(C) (((c=C)&0x80)!=0 || (c>0x1f && isIdChar[c-0x20])) + + +/* +** Return the length of the token that begins at z[0]. +** Store the token type in *tokenType before returning. +*/ +static int getToken(const char *z, int *tokenType){ + int i, c; + switch( *z ){ + case 0: { + *tokenType = TOKEN_EOF; + return 0; + } + case ' ': case '\t': case '\n': case '\f': case '\r': { + for(i=1; isspace(z[i]); i++){} + *tokenType = TOKEN_SPACE; + return i; + } + case '\'': + case '"': { + int delim = z[0]; + for(i=1; (c=z[i])!=0; i++){ + if( c==delim ){ + if( z[i+1]==delim ){ + i++; + }else{ + break; + } + } + } + *tokenType = TOKEN_STRING; + return i + (c!=0); + } + case '[': { + for(i=1, c=z[0]; c!=']' && (c=z[i])!=0; i++){} + *tokenType = TOKEN_ID; + return i; + } + default: { + if( !IdChar(*z) ){ + break; + } + for(i=1; IdChar(z[i]); i++){} + *tokenType = TOKEN_ID; + return i; + } + } + *tokenType = TOKEN_PUNCT; + return 1; +} + +/* +** A token extracted from a string is an instance of the following +** structure. +*/ +typedef struct Token { + const char *z; /* Pointer to token text. Not '\000' terminated */ + short int n; /* Length of the token text in bytes. */ +} Token; + +/* +** Given a input string (which is really one of the argv[] parameters +** passed into xConnect or xCreate) split the string up into tokens. +** Return an array of pointers to '\000' terminated strings, one string +** for each non-whitespace token. +** +** The returned array is terminated by a single NULL pointer. +** +** Space to hold the returned array is obtained from a single +** malloc and should be freed by passing the return value to free(). +** The individual strings within the token list are all a part of +** the single memory allocation and will all be freed at once. +*/ +static char **tokenizeString(const char *z, int *pnToken){ + int nToken = 0; + Token *aToken = malloc( strlen(z) * sizeof(aToken[0]) ); + int n = 1; + int e, i; + int totalSize = 0; + char **azToken; + char *zCopy; + while( n>0 ){ + n = getToken(z, &e); + if( e!=TOKEN_SPACE ){ + aToken[nToken].z = z; + aToken[nToken].n = n; + nToken++; + totalSize += n+1; + } + z += n; + } + azToken = (char**)malloc( nToken*sizeof(char*) + totalSize ); + zCopy = (char*)&azToken[nToken]; + nToken--; + for(i=0; i=0 ){ + azIn[j] = azIn[i]; + } + j++; + } + } + azIn[j] = 0; + } +} + + +/* +** Find the first alphanumeric token in the string zIn. Null-terminate +** this token. Remove any quotation marks. And return a pointer to +** the result. +*/ +static char *firstToken(char *zIn, char **pzTail){ + int n, ttype; + while(1){ + n = getToken(zIn, &ttype); + if( ttype==TOKEN_SPACE ){ + zIn += n; + }else if( ttype==TOKEN_EOF ){ + *pzTail = zIn; + return 0; + }else{ + zIn[n] = 0; + *pzTail = &zIn[1]; + dequoteString(zIn); + return zIn; + } + } + /*NOTREACHED*/ +} + +/* Return true if... +** +** * s begins with the string t, ignoring case +** * s is longer than t +** * The first character of s beyond t is not a alphanumeric +** +** Ignore leading space in *s. +** +** To put it another way, return true if the first token of +** s[] is t[]. +*/ +static int startsWith(const char *s, const char *t){ + while( isspace(*s) ){ s++; } + while( *t ){ + if( tolower(*s++)!=tolower(*t++) ) return 0; + } + return *s!='_' && !isalnum(*s); +} + +/* +** An instance of this structure defines the "spec" of a +** full text index. This structure is populated by parseSpec +** and use by fulltextConnect and fulltextCreate. +*/ +typedef struct TableSpec { + const char *zName; /* Name of the full-text index */ + int nColumn; /* Number of columns to be indexed */ + char **azColumn; /* Original names of columns to be indexed */ + char **azContentColumn; /* Column names for %_content */ + char **azTokenizer; /* Name of tokenizer and its arguments */ +} TableSpec; + +/* +** Reclaim all of the memory used by a TableSpec +*/ +static void clearTableSpec(TableSpec *p) { + free(p->azColumn); + free(p->azContentColumn); + free(p->azTokenizer); +} + +/* Parse a CREATE VIRTUAL TABLE statement, which looks like this: + * + * CREATE VIRTUAL TABLE email + * USING fts1(subject, body, tokenize mytokenizer(myarg)) + * + * We return parsed information in a TableSpec structure. + * + */ +static int parseSpec(TableSpec *pSpec, int argc, const char *const*argv, + char**pzErr){ + int i, n; + char *z, *zDummy; + char **azArg; + const char *zTokenizer = 0; /* argv[] entry describing the tokenizer */ + + assert( argc>=3 ); + /* Current interface: + ** argv[0] - module name + ** argv[1] - database name + ** argv[2] - table name + ** argv[3..] - columns, optionally followed by tokenizer specification + ** and snippet delimiters specification. + */ + + /* Make a copy of the complete argv[][] array in a single allocation. + ** The argv[][] array is read-only and transient. We can write to the + ** copy in order to modify things and the copy is persistent. + */ + memset(pSpec, 0, sizeof(*pSpec)); + for(i=n=0; izName = azArg[2]; + pSpec->nColumn = 0; + pSpec->azColumn = azArg; + zTokenizer = "tokenize simple"; + for(i=3; inColumn] = firstToken(azArg[i], &zDummy); + pSpec->nColumn++; + } + } + if( pSpec->nColumn==0 ){ + azArg[0] = "content"; + pSpec->nColumn = 1; + } + + /* + ** Construct the list of content column names. + ** + ** Each content column name will be of the form cNNAAAA + ** where NN is the column number and AAAA is the sanitized + ** column name. "sanitized" means that special characters are + ** converted to "_". The cNN prefix guarantees that all column + ** names are unique. + ** + ** The AAAA suffix is not strictly necessary. It is included + ** for the convenience of people who might examine the generated + ** %_content table and wonder what the columns are used for. + */ + pSpec->azContentColumn = malloc( pSpec->nColumn * sizeof(char *) ); + if( pSpec->azContentColumn==0 ){ + clearTableSpec(pSpec); + return SQLITE_NOMEM; + } + for(i=0; inColumn; i++){ + char *p; + pSpec->azContentColumn[i] = sqlite3_mprintf("c%d%s", i, azArg[i]); + for (p = pSpec->azContentColumn[i]; *p ; ++p) { + if( !isalnum(*p) ) *p = '_'; + } + } + + /* + ** Parse the tokenizer specification string. + */ + pSpec->azTokenizer = tokenizeString(zTokenizer, &n); + tokenListToIdList(pSpec->azTokenizer); + + return SQLITE_OK; +} + +/* +** Generate a CREATE TABLE statement that describes the schema of +** the virtual table. Return a pointer to this schema string. +** +** Space is obtained from sqlite3_mprintf() and should be freed +** using sqlite3_free(). +*/ +static char *fulltextSchema( + int nColumn, /* Number of columns */ + const char *const* azColumn, /* List of columns */ + const char *zTableName /* Name of the table */ +){ + int i; + char *zSchema, *zNext; + const char *zSep = "("; + zSchema = sqlite3_mprintf("CREATE TABLE x"); + for(i=0; ibase */ + v->db = db; + v->zName = spec->zName; /* Freed when azColumn is freed */ + v->nColumn = spec->nColumn; + v->azContentColumn = spec->azContentColumn; + spec->azContentColumn = 0; + v->azColumn = spec->azColumn; + spec->azColumn = 0; + + if( spec->azTokenizer==0 ){ + return SQLITE_NOMEM; + } + /* TODO(shess) For now, add new tokenizers as else if clauses. */ + if( spec->azTokenizer[0]==0 || startsWith(spec->azTokenizer[0], "simple") ){ + sqlite3Fts1SimpleTokenizerModule(&m); + }else if( startsWith(spec->azTokenizer[0], "porter") ){ + sqlite3Fts1PorterTokenizerModule(&m); + }else{ + *pzErr = sqlite3_mprintf("unknown tokenizer: %s", spec->azTokenizer[0]); + rc = SQLITE_ERROR; + goto err; + } + for(n=0; spec->azTokenizer[n]; n++){} + if( n ){ + rc = m->xCreate(n-1, (const char*const*)&spec->azTokenizer[1], + &v->pTokenizer); + }else{ + rc = m->xCreate(0, 0, &v->pTokenizer); + } + if( rc!=SQLITE_OK ) goto err; + v->pTokenizer->pModule = m; + + /* TODO: verify the existence of backing tables foo_content, foo_term */ + + schema = fulltextSchema(v->nColumn, (const char*const*)v->azColumn, + spec->zName); + rc = sqlite3_declare_vtab(db, schema); + sqlite3_free(schema); + if( rc!=SQLITE_OK ) goto err; + + memset(v->pFulltextStatements, 0, sizeof(v->pFulltextStatements)); + + *ppVTab = &v->base; + TRACE(("FTS1 Connect %p\n", v)); + + return rc; + +err: + fulltext_vtab_destroy(v); + return rc; +} + +static int fulltextConnect( + sqlite3 *db, + void *pAux, + int argc, const char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr +){ + TableSpec spec; + int rc = parseSpec(&spec, argc, argv, pzErr); + if( rc!=SQLITE_OK ) return rc; + + rc = constructVtab(db, &spec, ppVTab, pzErr); + clearTableSpec(&spec); + return rc; +} + + /* The %_content table holds the text of each document, with + ** the rowid used as the docid. + ** + ** The %_term table maps each term to a document list blob + ** containing elements sorted by ascending docid, each element + ** encoded as: + ** + ** docid varint-encoded + ** token elements: + ** position+1 varint-encoded as delta from previous position + ** start offset varint-encoded as delta from previous start offset + ** end offset varint-encoded as delta from start offset + ** + ** The sentinel position of 0 indicates the end of the token list. + ** + ** Additionally, doclist blobs are chunked into multiple segments, + ** using segment to order the segments. New elements are added to + ** the segment at segment 0, until it exceeds CHUNK_MAX. Then + ** segment 0 is deleted, and the doclist is inserted at segment 1. + ** If there is already a doclist at segment 1, the segment 0 doclist + ** is merged with it, the segment 1 doclist is deleted, and the + ** merged doclist is inserted at segment 2, repeating those + ** operations until an insert succeeds. + ** + ** Since this structure doesn't allow us to update elements in place + ** in case of deletion or update, these are simply written to + ** segment 0 (with an empty token list in case of deletion), with + ** docListAccumulate() taking care to retain lower-segment + ** information in preference to higher-segment information. + */ + /* TODO(shess) Provide a VACUUM type operation which both removes + ** deleted elements which are no longer necessary, and duplicated + ** elements. I suspect this will probably not be necessary in + ** practice, though. + */ +static int fulltextCreate(sqlite3 *db, void *pAux, + int argc, const char * const *argv, + sqlite3_vtab **ppVTab, char **pzErr){ + int rc; + TableSpec spec; + StringBuffer schema; + TRACE(("FTS1 Create\n")); + + rc = parseSpec(&spec, argc, argv, pzErr); + if( rc!=SQLITE_OK ) return rc; + + initStringBuffer(&schema); + append(&schema, "CREATE TABLE %_content("); + appendList(&schema, spec.nColumn, spec.azContentColumn); + append(&schema, ")"); + rc = sql_exec(db, spec.zName, schema.s); + free(schema.s); + if( rc!=SQLITE_OK ) goto out; + + rc = sql_exec(db, spec.zName, + "create table %_term(term text, segment integer, doclist blob, " + "primary key(term, segment));"); + if( rc!=SQLITE_OK ) goto out; + + rc = constructVtab(db, &spec, ppVTab, pzErr); + +out: + clearTableSpec(&spec); + return rc; +} + +/* Decide how to handle an SQL query. */ +static int fulltextBestIndex(sqlite3_vtab *pVTab, sqlite3_index_info *pInfo){ + int i; + TRACE(("FTS1 BestIndex\n")); + + for(i=0; inConstraint; ++i){ + const struct sqlite3_index_constraint *pConstraint; + pConstraint = &pInfo->aConstraint[i]; + if( pConstraint->usable ) { + if( pConstraint->iColumn==-1 && + pConstraint->op==SQLITE_INDEX_CONSTRAINT_EQ ){ + pInfo->idxNum = QUERY_ROWID; /* lookup by rowid */ + TRACE(("FTS1 QUERY_ROWID\n")); + } else if( pConstraint->iColumn>=0 && + pConstraint->op==SQLITE_INDEX_CONSTRAINT_MATCH ){ + /* full-text search */ + pInfo->idxNum = QUERY_FULLTEXT + pConstraint->iColumn; + TRACE(("FTS1 QUERY_FULLTEXT %d\n", pConstraint->iColumn)); + } else continue; + + pInfo->aConstraintUsage[i].argvIndex = 1; + pInfo->aConstraintUsage[i].omit = 1; + + /* An arbitrary value for now. + * TODO: Perhaps rowid matches should be considered cheaper than + * full-text searches. */ + pInfo->estimatedCost = 1.0; + + return SQLITE_OK; + } + } + pInfo->idxNum = QUERY_GENERIC; + return SQLITE_OK; +} + +static int fulltextDisconnect(sqlite3_vtab *pVTab){ + TRACE(("FTS1 Disconnect %p\n", pVTab)); + fulltext_vtab_destroy((fulltext_vtab *)pVTab); + return SQLITE_OK; +} + +static int fulltextDestroy(sqlite3_vtab *pVTab){ + fulltext_vtab *v = (fulltext_vtab *)pVTab; + int rc; + + TRACE(("FTS1 Destroy %p\n", pVTab)); + rc = sql_exec(v->db, v->zName, + "drop table if exists %_content;" + "drop table if exists %_term;" + ); + if( rc!=SQLITE_OK ) return rc; + + fulltext_vtab_destroy((fulltext_vtab *)pVTab); + return SQLITE_OK; +} + +static int fulltextOpen(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor){ + fulltext_cursor *c; + + c = (fulltext_cursor *) calloc(sizeof(fulltext_cursor), 1); + /* sqlite will initialize c->base */ + *ppCursor = &c->base; + TRACE(("FTS1 Open %p: %p\n", pVTab, c)); + + return SQLITE_OK; +} + + +/* Free all of the dynamically allocated memory held by *q +*/ +static void queryClear(Query *q){ + int i; + for(i = 0; i < q->nTerms; ++i){ + free(q->pTerms[i].pTerm); + } + free(q->pTerms); + memset(q, 0, sizeof(*q)); +} + +/* Free all of the dynamically allocated memory held by the +** Snippet +*/ +static void snippetClear(Snippet *p){ + free(p->aMatch); + free(p->zOffset); + free(p->zSnippet); + memset(p, 0, sizeof(*p)); +} +/* +** Append a single entry to the p->aMatch[] log. +*/ +static void snippetAppendMatch( + Snippet *p, /* Append the entry to this snippet */ + int iCol, int iTerm, /* The column and query term */ + int iStart, int nByte /* Offset and size of the match */ +){ + int i; + struct snippetMatch *pMatch; + if( p->nMatch+1>=p->nAlloc ){ + p->nAlloc = p->nAlloc*2 + 10; + p->aMatch = realloc(p->aMatch, p->nAlloc*sizeof(p->aMatch[0]) ); + if( p->aMatch==0 ){ + p->nMatch = 0; + p->nAlloc = 0; + return; + } + } + i = p->nMatch++; + pMatch = &p->aMatch[i]; + pMatch->iCol = iCol; + pMatch->iTerm = iTerm; + pMatch->iStart = iStart; + pMatch->nByte = nByte; +} + +/* +** Sizing information for the circular buffer used in snippetOffsetsOfColumn() +*/ +#define FTS1_ROTOR_SZ (32) +#define FTS1_ROTOR_MASK (FTS1_ROTOR_SZ-1) + +/* +** Add entries to pSnippet->aMatch[] for every match that occurs against +** document zDoc[0..nDoc-1] which is stored in column iColumn. +*/ +static void snippetOffsetsOfColumn( + Query *pQuery, + Snippet *pSnippet, + int iColumn, + const char *zDoc, + int nDoc +){ + const sqlite3_tokenizer_module *pTModule; /* The tokenizer module */ + sqlite3_tokenizer *pTokenizer; /* The specific tokenizer */ + sqlite3_tokenizer_cursor *pTCursor; /* Tokenizer cursor */ + fulltext_vtab *pVtab; /* The full text index */ + int nColumn; /* Number of columns in the index */ + const QueryTerm *aTerm; /* Query string terms */ + int nTerm; /* Number of query string terms */ + int i, j; /* Loop counters */ + int rc; /* Return code */ + unsigned int match, prevMatch; /* Phrase search bitmasks */ + const char *zToken; /* Next token from the tokenizer */ + int nToken; /* Size of zToken */ + int iBegin, iEnd, iPos; /* Offsets of beginning and end */ + + /* The following variables keep a circular buffer of the last + ** few tokens */ + unsigned int iRotor = 0; /* Index of current token */ + int iRotorBegin[FTS1_ROTOR_SZ]; /* Beginning offset of token */ + int iRotorLen[FTS1_ROTOR_SZ]; /* Length of token */ + + pVtab = pQuery->pFts; + nColumn = pVtab->nColumn; + pTokenizer = pVtab->pTokenizer; + pTModule = pTokenizer->pModule; + rc = pTModule->xOpen(pTokenizer, zDoc, nDoc, &pTCursor); + if( rc ) return; + pTCursor->pTokenizer = pTokenizer; + aTerm = pQuery->pTerms; + nTerm = pQuery->nTerms; + if( nTerm>=FTS1_ROTOR_SZ ){ + nTerm = FTS1_ROTOR_SZ - 1; + } + prevMatch = 0; + while(1){ + rc = pTModule->xNext(pTCursor, &zToken, &nToken, &iBegin, &iEnd, &iPos); + if( rc ) break; + iRotorBegin[iRotor&FTS1_ROTOR_MASK] = iBegin; + iRotorLen[iRotor&FTS1_ROTOR_MASK] = iEnd-iBegin; + match = 0; + for(i=0; i=0 && iCol1 && (prevMatch & (1<=0; j--){ + int k = (iRotor-j) & FTS1_ROTOR_MASK; + snippetAppendMatch(pSnippet, iColumn, i-j, + iRotorBegin[k], iRotorLen[k]); + } + } + } + prevMatch = match<<1; + iRotor++; + } + pTModule->xClose(pTCursor); +} + + +/* +** Compute all offsets for the current row of the query. +** If the offsets have already been computed, this routine is a no-op. +*/ +static void snippetAllOffsets(fulltext_cursor *p){ + int nColumn; + int iColumn, i; + int iFirst, iLast; + fulltext_vtab *pFts; + + if( p->snippet.nMatch ) return; + if( p->q.nTerms==0 ) return; + pFts = p->q.pFts; + nColumn = pFts->nColumn; + iColumn = p->iCursorType; + if( iColumn<0 || iColumn>=nColumn ){ + iFirst = 0; + iLast = nColumn-1; + }else{ + iFirst = iColumn; + iLast = iColumn; + } + for(i=iFirst; i<=iLast; i++){ + const char *zDoc; + int nDoc; + zDoc = (const char*)sqlite3_column_text(p->pStmt, i+1); + nDoc = sqlite3_column_bytes(p->pStmt, i+1); + snippetOffsetsOfColumn(&p->q, &p->snippet, i, zDoc, nDoc); + } +} + +/* +** Convert the information in the aMatch[] array of the snippet +** into the string zOffset[0..nOffset-1]. +*/ +static void snippetOffsetText(Snippet *p){ + int i; + int cnt = 0; + StringBuffer sb; + char zBuf[200]; + if( p->zOffset ) return; + initStringBuffer(&sb); + for(i=0; inMatch; i++){ + struct snippetMatch *pMatch = &p->aMatch[i]; + zBuf[0] = ' '; + sprintf(&zBuf[cnt>0], "%d %d %d %d", pMatch->iCol, + pMatch->iTerm, pMatch->iStart, pMatch->nByte); + append(&sb, zBuf); + cnt++; + } + p->zOffset = sb.s; + p->nOffset = sb.len; +} + +/* +** zDoc[0..nDoc-1] is phrase of text. aMatch[0..nMatch-1] are a set +** of matching words some of which might be in zDoc. zDoc is column +** number iCol. +** +** iBreak is suggested spot in zDoc where we could begin or end an +** excerpt. Return a value similar to iBreak but possibly adjusted +** to be a little left or right so that the break point is better. +*/ +static int wordBoundary( + int iBreak, /* The suggested break point */ + const char *zDoc, /* Document text */ + int nDoc, /* Number of bytes in zDoc[] */ + struct snippetMatch *aMatch, /* Matching words */ + int nMatch, /* Number of entries in aMatch[] */ + int iCol /* The column number for zDoc[] */ +){ + int i; + if( iBreak<=10 ){ + return 0; + } + if( iBreak>=nDoc-10 ){ + return nDoc; + } + for(i=0; i0 && aMatch[i-1].iStart+aMatch[i-1].nByte>=iBreak ){ + return aMatch[i-1].iStart; + } + } + for(i=1; i<=10; i++){ + if( isspace(zDoc[iBreak-i]) ){ + return iBreak - i + 1; + } + if( isspace(zDoc[iBreak+i]) ){ + return iBreak + i + 1; + } + } + return iBreak; +} + +/* +** If the StringBuffer does not end in white space, add a single +** space character to the end. +*/ +static void appendWhiteSpace(StringBuffer *p){ + if( p->len==0 ) return; + if( isspace(p->s[p->len-1]) ) return; + append(p, " "); +} + +/* +** Remove white space from teh end of the StringBuffer +*/ +static void trimWhiteSpace(StringBuffer *p){ + while( p->len>0 && isspace(p->s[p->len-1]) ){ + p->len--; + } +} + + + +/* +** Allowed values for Snippet.aMatch[].snStatus +*/ +#define SNIPPET_IGNORE 0 /* It is ok to omit this match from the snippet */ +#define SNIPPET_DESIRED 1 /* We want to include this match in the snippet */ + +/* +** Generate the text of a snippet. +*/ +static void snippetText( + fulltext_cursor *pCursor, /* The cursor we need the snippet for */ + const char *zStartMark, /* Markup to appear before each match */ + const char *zEndMark, /* Markup to appear after each match */ + const char *zEllipsis /* Ellipsis mark */ +){ + int i, j; + struct snippetMatch *aMatch; + int nMatch; + int nDesired; + StringBuffer sb; + int tailCol; + int tailOffset; + int iCol; + int nDoc; + const char *zDoc; + int iStart, iEnd; + int tailEllipsis = 0; + int iMatch; + + + free(pCursor->snippet.zSnippet); + pCursor->snippet.zSnippet = 0; + aMatch = pCursor->snippet.aMatch; + nMatch = pCursor->snippet.nMatch; + initStringBuffer(&sb); + + for(i=0; iq.nTerms; i++){ + for(j=0; j0; i++){ + if( aMatch[i].snStatus!=SNIPPET_DESIRED ) continue; + nDesired--; + iCol = aMatch[i].iCol; + zDoc = (const char*)sqlite3_column_text(pCursor->pStmt, iCol+1); + nDoc = sqlite3_column_bytes(pCursor->pStmt, iCol+1); + iStart = aMatch[i].iStart - 40; + iStart = wordBoundary(iStart, zDoc, nDoc, aMatch, nMatch, iCol); + if( iStart<=10 ){ + iStart = 0; + } + if( iCol==tailCol && iStart<=tailOffset+20 ){ + iStart = tailOffset; + } + if( (iCol!=tailCol && tailCol>=0) || iStart!=tailOffset ){ + trimWhiteSpace(&sb); + appendWhiteSpace(&sb); + append(&sb, zEllipsis); + appendWhiteSpace(&sb); + } + iEnd = aMatch[i].iStart + aMatch[i].nByte + 40; + iEnd = wordBoundary(iEnd, zDoc, nDoc, aMatch, nMatch, iCol); + if( iEnd>=nDoc-10 ){ + iEnd = nDoc; + tailEllipsis = 0; + }else{ + tailEllipsis = 1; + } + while( iMatchsnippet.zSnippet = sb.s; + pCursor->snippet.nSnippet = sb.len; +} + + +/* +** Close the cursor. For additional information see the documentation +** on the xClose method of the virtual table interface. +*/ +static int fulltextClose(sqlite3_vtab_cursor *pCursor){ + fulltext_cursor *c = (fulltext_cursor *) pCursor; + TRACE(("FTS1 Close %p\n", c)); + sqlite3_finalize(c->pStmt); + queryClear(&c->q); + snippetClear(&c->snippet); + if( c->result.pDoclist!=NULL ){ + docListDelete(c->result.pDoclist); + } + free(c); + return SQLITE_OK; +} + +static int fulltextNext(sqlite3_vtab_cursor *pCursor){ + fulltext_cursor *c = (fulltext_cursor *) pCursor; + sqlite_int64 iDocid; + int rc; + + TRACE(("FTS1 Next %p\n", pCursor)); + snippetClear(&c->snippet); + if( c->iCursorType < QUERY_FULLTEXT ){ + /* TODO(shess) Handle SQLITE_SCHEMA AND SQLITE_BUSY. */ + rc = sqlite3_step(c->pStmt); + switch( rc ){ + case SQLITE_ROW: + c->eof = 0; + return SQLITE_OK; + case SQLITE_DONE: + c->eof = 1; + return SQLITE_OK; + default: + c->eof = 1; + return rc; + } + } else { /* full-text query */ + rc = sqlite3_reset(c->pStmt); + if( rc!=SQLITE_OK ) return rc; + + iDocid = nextDocid(&c->result); + if( iDocid==0 ){ + c->eof = 1; + return SQLITE_OK; + } + rc = sqlite3_bind_int64(c->pStmt, 1, iDocid); + if( rc!=SQLITE_OK ) return rc; + /* TODO(shess) Handle SQLITE_SCHEMA AND SQLITE_BUSY. */ + rc = sqlite3_step(c->pStmt); + if( rc==SQLITE_ROW ){ /* the case we expect */ + c->eof = 0; + return SQLITE_OK; + } + /* an error occurred; abort */ + return rc==SQLITE_DONE ? SQLITE_ERROR : rc; + } +} + + +/* Return a DocList corresponding to the query term *pTerm. If *pTerm +** is the first term of a phrase query, go ahead and evaluate the phrase +** query and return the doclist for the entire phrase query. +** +** The result is stored in pTerm->doclist. +*/ +static int docListOfTerm( + fulltext_vtab *v, /* The full text index */ + int iColumn, /* column to restrict to. No restrition if >=nColumn */ + QueryTerm *pQTerm, /* Term we are looking for, or 1st term of a phrase */ + DocList **ppResult /* Write the result here */ +){ + DocList *pLeft, *pRight, *pNew; + int i, rc; + + pLeft = docListNew(DL_POSITIONS); + rc = term_select_all(v, iColumn, pQTerm->pTerm, pQTerm->nTerm, pLeft); + if( rc ) return rc; + for(i=1; i<=pQTerm->nPhrase; i++){ + pRight = docListNew(DL_POSITIONS); + rc = term_select_all(v, iColumn, pQTerm[i].pTerm, pQTerm[i].nTerm, pRight); + if( rc ){ + docListDelete(pLeft); + return rc; + } + pNew = docListNew(inPhrase ? DL_POSITIONS : DL_DOCIDS); + docListPhraseMerge(pLeft, pRight, pNew); + docListDelete(pLeft); + docListDelete(pRight); + pLeft = pNew; + } + *ppResult = pLeft; + return SQLITE_OK; +} + +/* Add a new term pTerm[0..nTerm-1] to the query *q. +*/ +static void queryAdd(Query *q, const char *pTerm, int nTerm){ + QueryTerm *t; + ++q->nTerms; + q->pTerms = realloc(q->pTerms, q->nTerms * sizeof(q->pTerms[0])); + if( q->pTerms==0 ){ + q->nTerms = 0; + return; + } + t = &q->pTerms[q->nTerms - 1]; + memset(t, 0, sizeof(*t)); + t->pTerm = malloc(nTerm+1); + memcpy(t->pTerm, pTerm, nTerm); + t->pTerm[nTerm] = 0; + t->nTerm = nTerm; + t->isOr = q->nextIsOr; + q->nextIsOr = 0; + t->iColumn = q->nextColumn; + q->nextColumn = q->dfltColumn; +} + +/* +** Check to see if the string zToken[0...nToken-1] matches any +** column name in the virtual table. If it does, +** return the zero-indexed column number. If not, return -1. +*/ +static int checkColumnSpecifier( + fulltext_vtab *pVtab, /* The virtual table */ + const char *zToken, /* Text of the token */ + int nToken /* Number of characters in the token */ +){ + int i; + for(i=0; inColumn; i++){ + if( memcmp(pVtab->azColumn[i], zToken, nToken)==0 + && pVtab->azColumn[i][nToken]==0 ){ + return i; + } + } + return -1; +} + +/* +** Parse the text at pSegment[0..nSegment-1]. Add additional terms +** to the query being assemblied in pQuery. +** +** inPhrase is true if pSegment[0..nSegement-1] is contained within +** double-quotes. If inPhrase is true, then the first term +** is marked with the number of terms in the phrase less one and +** OR and "-" syntax is ignored. If inPhrase is false, then every +** term found is marked with nPhrase=0 and OR and "-" syntax is significant. +*/ +static int tokenizeSegment( + sqlite3_tokenizer *pTokenizer, /* The tokenizer to use */ + const char *pSegment, int nSegment, /* Query expression being parsed */ + int inPhrase, /* True if within "..." */ + Query *pQuery /* Append results here */ +){ + const sqlite3_tokenizer_module *pModule = pTokenizer->pModule; + sqlite3_tokenizer_cursor *pCursor; + int firstIndex = pQuery->nTerms; + int iCol; + int nTerm = 1; + + int rc = pModule->xOpen(pTokenizer, pSegment, nSegment, &pCursor); + if( rc!=SQLITE_OK ) return rc; + pCursor->pTokenizer = pTokenizer; + + while( 1 ){ + const char *pToken; + int nToken, iBegin, iEnd, iPos; + + rc = pModule->xNext(pCursor, + &pToken, &nToken, + &iBegin, &iEnd, &iPos); + if( rc!=SQLITE_OK ) break; + if( !inPhrase && + pSegment[iEnd]==':' && + (iCol = checkColumnSpecifier(pQuery->pFts, pToken, nToken))>=0 ){ + pQuery->nextColumn = iCol; + continue; + } + if( !inPhrase && pQuery->nTerms>0 && nToken==2 + && pSegment[iBegin]=='O' && pSegment[iBegin+1]=='R' ){ + pQuery->nextIsOr = 1; + continue; + } + queryAdd(pQuery, pToken, nToken); + if( !inPhrase && iBegin>0 && pSegment[iBegin-1]=='-' ){ + pQuery->pTerms[pQuery->nTerms-1].isNot = 1; + } + pQuery->pTerms[pQuery->nTerms-1].iPhrase = nTerm; + if( inPhrase ){ + nTerm++; + } + } + + if( inPhrase && pQuery->nTerms>firstIndex ){ + pQuery->pTerms[firstIndex].nPhrase = pQuery->nTerms - firstIndex - 1; + } + + return pModule->xClose(pCursor); +} + +/* Parse a query string, yielding a Query object pQuery. +** +** The calling function will need to queryClear() to clean up +** the dynamically allocated memory held by pQuery. +*/ +static int parseQuery( + fulltext_vtab *v, /* The fulltext index */ + const char *zInput, /* Input text of the query string */ + int nInput, /* Size of the input text */ + int dfltColumn, /* Default column of the index to match against */ + Query *pQuery /* Write the parse results here. */ +){ + int iInput, inPhrase = 0; + + if( zInput==0 ) nInput = 0; + if( nInput<0 ) nInput = strlen(zInput); + pQuery->nTerms = 0; + pQuery->pTerms = NULL; + pQuery->nextIsOr = 0; + pQuery->nextColumn = dfltColumn; + pQuery->dfltColumn = dfltColumn; + pQuery->pFts = v; + + for(iInput=0; iInputiInput ){ + tokenizeSegment(v->pTokenizer, zInput+iInput, i-iInput, inPhrase, + pQuery); + } + iInput = i; + if( i=nColumn +** they are allowed to match against any column. +*/ +static int fulltextQuery( + fulltext_vtab *v, /* The full text index */ + int iColumn, /* Match against this column by default */ + const char *zInput, /* The query string */ + int nInput, /* Number of bytes in zInput[] */ + DocList **pResult, /* Write the result doclist here */ + Query *pQuery /* Put parsed query string here */ +){ + int i, iNext, rc; + DocList *pLeft = NULL; + DocList *pRight, *pNew, *pOr; + int nNot = 0; + QueryTerm *aTerm; + + rc = parseQuery(v, zInput, nInput, iColumn, pQuery); + if( rc!=SQLITE_OK ) return rc; + + /* Merge AND terms. */ + aTerm = pQuery->pTerms; + for(i = 0; inTerms; i=iNext){ + if( aTerm[i].isNot ){ + /* Handle all NOT terms in a separate pass */ + nNot++; + iNext = i + aTerm[i].nPhrase+1; + continue; + } + iNext = i + aTerm[i].nPhrase + 1; + rc = docListOfTerm(v, aTerm[i].iColumn, &aTerm[i], &pRight); + if( rc ){ + queryClear(pQuery); + return rc; + } + while( iNextnTerms && aTerm[iNext].isOr ){ + rc = docListOfTerm(v, aTerm[iNext].iColumn, &aTerm[iNext], &pOr); + iNext += aTerm[iNext].nPhrase + 1; + if( rc ){ + queryClear(pQuery); + return rc; + } + pNew = docListNew(DL_DOCIDS); + docListOrMerge(pRight, pOr, pNew); + docListDelete(pRight); + docListDelete(pOr); + pRight = pNew; + } + if( pLeft==0 ){ + pLeft = pRight; + }else{ + pNew = docListNew(DL_DOCIDS); + docListAndMerge(pLeft, pRight, pNew); + docListDelete(pRight); + docListDelete(pLeft); + pLeft = pNew; + } + } + + if( nNot && pLeft==0 ){ + /* We do not yet know how to handle a query of only NOT terms */ + return SQLITE_ERROR; + } + + /* Do the EXCEPT terms */ + for(i=0; inTerms; i += aTerm[i].nPhrase + 1){ + if( !aTerm[i].isNot ) continue; + rc = docListOfTerm(v, aTerm[i].iColumn, &aTerm[i], &pRight); + if( rc ){ + queryClear(pQuery); + docListDelete(pLeft); + return rc; + } + pNew = docListNew(DL_DOCIDS); + docListExceptMerge(pLeft, pRight, pNew); + docListDelete(pRight); + docListDelete(pLeft); + pLeft = pNew; + } + + *pResult = pLeft; + return rc; +} + +/* +** This is the xFilter interface for the virtual table. See +** the virtual table xFilter method documentation for additional +** information. +** +** If idxNum==QUERY_GENERIC then do a full table scan against +** the %_content table. +** +** If idxNum==QUERY_ROWID then do a rowid lookup for a single entry +** in the %_content table. +** +** If idxNum>=QUERY_FULLTEXT then use the full text index. The +** column on the left-hand side of the MATCH operator is column +** number idxNum-QUERY_FULLTEXT, 0 indexed. argv[0] is the right-hand +** side of the MATCH operator. +*/ +/* TODO(shess) Upgrade the cursor initialization and destruction to +** account for fulltextFilter() being called multiple times on the +** same cursor. The current solution is very fragile. Apply fix to +** fts2 as appropriate. +*/ +static int fulltextFilter( + sqlite3_vtab_cursor *pCursor, /* The cursor used for this query */ + int idxNum, const char *idxStr, /* Which indexing scheme to use */ + int argc, sqlite3_value **argv /* Arguments for the indexing scheme */ +){ + fulltext_cursor *c = (fulltext_cursor *) pCursor; + fulltext_vtab *v = cursor_vtab(c); + int rc; + char *zSql; + + TRACE(("FTS1 Filter %p\n",pCursor)); + + zSql = sqlite3_mprintf("select rowid, * from %%_content %s", + idxNum==QUERY_GENERIC ? "" : "where rowid=?"); + sqlite3_finalize(c->pStmt); + rc = sql_prepare(v->db, v->zName, &c->pStmt, zSql); + sqlite3_free(zSql); + if( rc!=SQLITE_OK ) return rc; + + c->iCursorType = idxNum; + switch( idxNum ){ + case QUERY_GENERIC: + break; + + case QUERY_ROWID: + rc = sqlite3_bind_int64(c->pStmt, 1, sqlite3_value_int64(argv[0])); + if( rc!=SQLITE_OK ) return rc; + break; + + default: /* full-text search */ + { + const char *zQuery = (const char *)sqlite3_value_text(argv[0]); + DocList *pResult; + assert( idxNum<=QUERY_FULLTEXT+v->nColumn); + assert( argc==1 ); + queryClear(&c->q); + rc = fulltextQuery(v, idxNum-QUERY_FULLTEXT, zQuery, -1, &pResult, &c->q); + if( rc!=SQLITE_OK ) return rc; + if( c->result.pDoclist!=NULL ) docListDelete(c->result.pDoclist); + readerInit(&c->result, pResult); + break; + } + } + + return fulltextNext(pCursor); +} + +/* This is the xEof method of the virtual table. The SQLite core +** calls this routine to find out if it has reached the end of +** a query's results set. +*/ +static int fulltextEof(sqlite3_vtab_cursor *pCursor){ + fulltext_cursor *c = (fulltext_cursor *) pCursor; + return c->eof; +} + +/* This is the xColumn method of the virtual table. The SQLite +** core calls this method during a query when it needs the value +** of a column from the virtual table. This method needs to use +** one of the sqlite3_result_*() routines to store the requested +** value back in the pContext. +*/ +static int fulltextColumn(sqlite3_vtab_cursor *pCursor, + sqlite3_context *pContext, int idxCol){ + fulltext_cursor *c = (fulltext_cursor *) pCursor; + fulltext_vtab *v = cursor_vtab(c); + + if( idxColnColumn ){ + sqlite3_value *pVal = sqlite3_column_value(c->pStmt, idxCol+1); + sqlite3_result_value(pContext, pVal); + }else if( idxCol==v->nColumn ){ + /* The extra column whose name is the same as the table. + ** Return a blob which is a pointer to the cursor + */ + sqlite3_result_blob(pContext, &c, sizeof(c), SQLITE_TRANSIENT); + } + return SQLITE_OK; +} + +/* This is the xRowid method. The SQLite core calls this routine to +** retrive the rowid for the current row of the result set. The +** rowid should be written to *pRowid. +*/ +static int fulltextRowid(sqlite3_vtab_cursor *pCursor, sqlite_int64 *pRowid){ + fulltext_cursor *c = (fulltext_cursor *) pCursor; + + *pRowid = sqlite3_column_int64(c->pStmt, 0); + return SQLITE_OK; +} + +/* Add all terms in [zText] to the given hash table. If [iColumn] > 0, + * we also store positions and offsets in the hash table using the given + * column number. */ +static int buildTerms(fulltext_vtab *v, fts1Hash *terms, sqlite_int64 iDocid, + const char *zText, int iColumn){ + sqlite3_tokenizer *pTokenizer = v->pTokenizer; + sqlite3_tokenizer_cursor *pCursor; + const char *pToken; + int nTokenBytes; + int iStartOffset, iEndOffset, iPosition; + int rc; + + rc = pTokenizer->pModule->xOpen(pTokenizer, zText, -1, &pCursor); + if( rc!=SQLITE_OK ) return rc; + + pCursor->pTokenizer = pTokenizer; + while( SQLITE_OK==pTokenizer->pModule->xNext(pCursor, + &pToken, &nTokenBytes, + &iStartOffset, &iEndOffset, + &iPosition) ){ + DocList *p; + + /* Positions can't be negative; we use -1 as a terminator internally. */ + if( iPosition<0 ){ + pTokenizer->pModule->xClose(pCursor); + return SQLITE_ERROR; + } + + p = fts1HashFind(terms, pToken, nTokenBytes); + if( p==NULL ){ + p = docListNew(DL_DEFAULT); + docListAddDocid(p, iDocid); + fts1HashInsert(terms, pToken, nTokenBytes, p); + } + if( iColumn>=0 ){ + docListAddPosOffset(p, iColumn, iPosition, iStartOffset, iEndOffset); + } + } + + /* TODO(shess) Check return? Should this be able to cause errors at + ** this point? Actually, same question about sqlite3_finalize(), + ** though one could argue that failure there means that the data is + ** not durable. *ponder* + */ + pTokenizer->pModule->xClose(pCursor); + return rc; +} + +/* Update the %_terms table to map the term [pTerm] to the given rowid. */ +static int index_insert_term(fulltext_vtab *v, const char *pTerm, int nTerm, + DocList *d){ + sqlite_int64 iIndexRow; + DocList doclist; + int iSegment = 0, rc; + + rc = term_select(v, pTerm, nTerm, iSegment, &iIndexRow, &doclist); + if( rc==SQLITE_DONE ){ + docListInit(&doclist, DL_DEFAULT, 0, 0); + docListUpdate(&doclist, d); + /* TODO(shess) Consider length(doclist)>CHUNK_MAX? */ + rc = term_insert(v, NULL, pTerm, nTerm, iSegment, &doclist); + goto err; + } + if( rc!=SQLITE_ROW ) return SQLITE_ERROR; + + docListUpdate(&doclist, d); + if( doclist.nData<=CHUNK_MAX ){ + rc = term_update(v, iIndexRow, &doclist); + goto err; + } + + /* Doclist doesn't fit, delete what's there, and accumulate + ** forward. + */ + rc = term_delete(v, iIndexRow); + if( rc!=SQLITE_OK ) goto err; + + /* Try to insert the doclist into a higher segment bucket. On + ** failure, accumulate existing doclist with the doclist from that + ** bucket, and put results in the next bucket. + */ + iSegment++; + while( (rc=term_insert(v, &iIndexRow, pTerm, nTerm, iSegment, + &doclist))!=SQLITE_OK ){ + sqlite_int64 iSegmentRow; + DocList old; + int rc2; + + /* Retain old error in case the term_insert() error was really an + ** error rather than a bounced insert. + */ + rc2 = term_select(v, pTerm, nTerm, iSegment, &iSegmentRow, &old); + if( rc2!=SQLITE_ROW ) goto err; + + rc = term_delete(v, iSegmentRow); + if( rc!=SQLITE_OK ) goto err; + + /* Reusing lowest-number deleted row keeps the index smaller. */ + if( iSegmentRownColumn ; ++i){ + char *zText = (char*)sqlite3_value_text(pValues[i]); + int rc = buildTerms(v, terms, iRowid, zText, i); + if( rc!=SQLITE_OK ) return rc; + } + return SQLITE_OK; +} + +/* Add empty doclists for all terms in the given row's content to the hash + * table [pTerms]. */ +static int deleteTerms(fulltext_vtab *v, fts1Hash *pTerms, sqlite_int64 iRowid){ + const char **pValues; + int i; + + int rc = content_select(v, iRowid, &pValues); + if( rc!=SQLITE_OK ) return rc; + + for(i = 0 ; i < v->nColumn; ++i) { + rc = buildTerms(v, pTerms, iRowid, pValues[i], -1); + if( rc!=SQLITE_OK ) break; + } + + freeStringArray(v->nColumn, pValues); + return SQLITE_OK; +} + +/* Insert a row into the %_content table; set *piRowid to be the ID of the + * new row. Fill [pTerms] with new doclists for the %_term table. */ +static int index_insert(fulltext_vtab *v, sqlite3_value *pRequestRowid, + sqlite3_value **pValues, + sqlite_int64 *piRowid, fts1Hash *pTerms){ + int rc; + + rc = content_insert(v, pRequestRowid, pValues); /* execute an SQL INSERT */ + if( rc!=SQLITE_OK ) return rc; + *piRowid = sqlite3_last_insert_rowid(v->db); + return insertTerms(v, pTerms, *piRowid, pValues); +} + +/* Delete a row from the %_content table; fill [pTerms] with empty doclists + * to be written to the %_term table. */ +static int index_delete(fulltext_vtab *v, sqlite_int64 iRow, fts1Hash *pTerms){ + int rc = deleteTerms(v, pTerms, iRow); + if( rc!=SQLITE_OK ) return rc; + return content_delete(v, iRow); /* execute an SQL DELETE */ +} + +/* Update a row in the %_content table; fill [pTerms] with new doclists for the + * %_term table. */ +static int index_update(fulltext_vtab *v, sqlite_int64 iRow, + sqlite3_value **pValues, fts1Hash *pTerms){ + /* Generate an empty doclist for each term that previously appeared in this + * row. */ + int rc = deleteTerms(v, pTerms, iRow); + if( rc!=SQLITE_OK ) return rc; + + /* Now add positions for terms which appear in the updated row. */ + rc = insertTerms(v, pTerms, iRow, pValues); + if( rc!=SQLITE_OK ) return rc; + + return content_update(v, pValues, iRow); /* execute an SQL UPDATE */ +} + +/* This function implements the xUpdate callback; it's the top-level entry + * point for inserting, deleting or updating a row in a full-text table. */ +static int fulltextUpdate(sqlite3_vtab *pVtab, int nArg, sqlite3_value **ppArg, + sqlite_int64 *pRowid){ + fulltext_vtab *v = (fulltext_vtab *) pVtab; + fts1Hash terms; /* maps term string -> PosList */ + int rc; + fts1HashElem *e; + + TRACE(("FTS1 Update %p\n", pVtab)); + + fts1HashInit(&terms, FTS1_HASH_STRING, 1); + + if( nArg<2 ){ + rc = index_delete(v, sqlite3_value_int64(ppArg[0]), &terms); + } else if( sqlite3_value_type(ppArg[0]) != SQLITE_NULL ){ + /* An update: + * ppArg[0] = old rowid + * ppArg[1] = new rowid + * ppArg[2..2+v->nColumn-1] = values + * ppArg[2+v->nColumn] = value for magic column (we ignore this) + */ + sqlite_int64 rowid = sqlite3_value_int64(ppArg[0]); + if( sqlite3_value_type(ppArg[1]) != SQLITE_INTEGER || + sqlite3_value_int64(ppArg[1]) != rowid ){ + rc = SQLITE_ERROR; /* we don't allow changing the rowid */ + } else { + assert( nArg==2+v->nColumn+1); + rc = index_update(v, rowid, &ppArg[2], &terms); + } + } else { + /* An insert: + * ppArg[1] = requested rowid + * ppArg[2..2+v->nColumn-1] = values + * ppArg[2+v->nColumn] = value for magic column (we ignore this) + */ + assert( nArg==2+v->nColumn+1); + rc = index_insert(v, ppArg[1], &ppArg[2], pRowid, &terms); + } + + if( rc==SQLITE_OK ){ + /* Write updated doclists to disk. */ + for(e=fts1HashFirst(&terms); e; e=fts1HashNext(e)){ + DocList *p = fts1HashData(e); + rc = index_insert_term(v, fts1HashKey(e), fts1HashKeysize(e), p); + if( rc!=SQLITE_OK ) break; + } + } + + /* clean up */ + for(e=fts1HashFirst(&terms); e; e=fts1HashNext(e)){ + DocList *p = fts1HashData(e); + docListDelete(p); + } + fts1HashClear(&terms); + + return rc; +} + +/* +** Implementation of the snippet() function for FTS1 +*/ +static void snippetFunc( + sqlite3_context *pContext, + int argc, + sqlite3_value **argv +){ + fulltext_cursor *pCursor; + if( argc<1 ) return; + if( sqlite3_value_type(argv[0])!=SQLITE_BLOB || + sqlite3_value_bytes(argv[0])!=sizeof(pCursor) ){ + sqlite3_result_error(pContext, "illegal first argument to html_snippet",-1); + }else{ + const char *zStart = ""; + const char *zEnd = ""; + const char *zEllipsis = "..."; + memcpy(&pCursor, sqlite3_value_blob(argv[0]), sizeof(pCursor)); + if( argc>=2 ){ + zStart = (const char*)sqlite3_value_text(argv[1]); + if( argc>=3 ){ + zEnd = (const char*)sqlite3_value_text(argv[2]); + if( argc>=4 ){ + zEllipsis = (const char*)sqlite3_value_text(argv[3]); + } + } + } + snippetAllOffsets(pCursor); + snippetText(pCursor, zStart, zEnd, zEllipsis); + sqlite3_result_text(pContext, pCursor->snippet.zSnippet, + pCursor->snippet.nSnippet, SQLITE_STATIC); + } +} + +/* +** Implementation of the offsets() function for FTS1 +*/ +static void snippetOffsetsFunc( + sqlite3_context *pContext, + int argc, + sqlite3_value **argv +){ + fulltext_cursor *pCursor; + if( argc<1 ) return; + if( sqlite3_value_type(argv[0])!=SQLITE_BLOB || + sqlite3_value_bytes(argv[0])!=sizeof(pCursor) ){ + sqlite3_result_error(pContext, "illegal first argument to offsets",-1); + }else{ + memcpy(&pCursor, sqlite3_value_blob(argv[0]), sizeof(pCursor)); + snippetAllOffsets(pCursor); + snippetOffsetText(&pCursor->snippet); + sqlite3_result_text(pContext, + pCursor->snippet.zOffset, pCursor->snippet.nOffset, + SQLITE_STATIC); + } +} + +/* +** This routine implements the xFindFunction method for the FTS1 +** virtual table. +*/ +static int fulltextFindFunction( + sqlite3_vtab *pVtab, + int nArg, + const char *zName, + void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), + void **ppArg +){ + if( strcmp(zName,"snippet")==0 ){ + *pxFunc = snippetFunc; + return 1; + }else if( strcmp(zName,"offsets")==0 ){ + *pxFunc = snippetOffsetsFunc; + return 1; + } + return 0; +} + +static const sqlite3_module fulltextModule = { + /* iVersion */ 0, + /* xCreate */ fulltextCreate, + /* xConnect */ fulltextConnect, + /* xBestIndex */ fulltextBestIndex, + /* xDisconnect */ fulltextDisconnect, + /* xDestroy */ fulltextDestroy, + /* xOpen */ fulltextOpen, + /* xClose */ fulltextClose, + /* xFilter */ fulltextFilter, + /* xNext */ fulltextNext, + /* xEof */ fulltextEof, + /* xColumn */ fulltextColumn, + /* xRowid */ fulltextRowid, + /* xUpdate */ fulltextUpdate, + /* xBegin */ 0, + /* xSync */ 0, + /* xCommit */ 0, + /* xRollback */ 0, + /* xFindFunction */ fulltextFindFunction, +}; + +int sqlite3Fts1Init(sqlite3 *db){ + sqlite3_overload_function(db, "snippet", -1); + sqlite3_overload_function(db, "offsets", -1); + return sqlite3_create_module(db, "fts1", &fulltextModule, 0); +} + +#if !SQLITE_CORE +int sqlite3_extension_init(sqlite3 *db, char **pzErrMsg, + const sqlite3_api_routines *pApi){ + SQLITE_EXTENSION_INIT2(pApi) + return sqlite3Fts1Init(db); +} +#endif + +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS1) */ diff --git a/src/dep/src/sqlite/fts1.h b/src/dep/src/sqlite/fts1.h new file mode 100644 index 0000000..d55e689 --- /dev/null +++ b/src/dep/src/sqlite/fts1.h @@ -0,0 +1,11 @@ +#include "sqlite3.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +int sqlite3Fts1Init(sqlite3 *db); + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* __cplusplus */ diff --git a/src/dep/src/sqlite/fts1_hash.c b/src/dep/src/sqlite/fts1_hash.c new file mode 100644 index 0000000..463a52b --- /dev/null +++ b/src/dep/src/sqlite/fts1_hash.c @@ -0,0 +1,369 @@ +/* +** 2001 September 22 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This is the implementation of generic hash-tables used in SQLite. +** We've modified it slightly to serve as a standalone hash table +** implementation for the full-text indexing module. +*/ +#include +#include +#include + +/* +** The code in this file is only compiled if: +** +** * The FTS1 module is being built as an extension +** (in which case SQLITE_CORE is not defined), or +** +** * The FTS1 module is being built into the core of +** SQLite (in which case SQLITE_ENABLE_FTS1 is defined). +*/ +#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS1) + + +#include "fts1_hash.h" + +static void *malloc_and_zero(int n){ + void *p = malloc(n); + if( p ){ + memset(p, 0, n); + } + return p; +} + +/* Turn bulk memory into a hash table object by initializing the +** fields of the Hash structure. +** +** "pNew" is a pointer to the hash table that is to be initialized. +** keyClass is one of the constants +** FTS1_HASH_BINARY or FTS1_HASH_STRING. The value of keyClass +** determines what kind of key the hash table will use. "copyKey" is +** true if the hash table should make its own private copy of keys and +** false if it should just use the supplied pointer. +*/ +void sqlite3Fts1HashInit(fts1Hash *pNew, int keyClass, int copyKey){ + assert( pNew!=0 ); + assert( keyClass>=FTS1_HASH_STRING && keyClass<=FTS1_HASH_BINARY ); + pNew->keyClass = keyClass; + pNew->copyKey = copyKey; + pNew->first = 0; + pNew->count = 0; + pNew->htsize = 0; + pNew->ht = 0; + pNew->xMalloc = malloc_and_zero; + pNew->xFree = free; +} + +/* Remove all entries from a hash table. Reclaim all memory. +** Call this routine to delete a hash table or to reset a hash table +** to the empty state. +*/ +void sqlite3Fts1HashClear(fts1Hash *pH){ + fts1HashElem *elem; /* For looping over all elements of the table */ + + assert( pH!=0 ); + elem = pH->first; + pH->first = 0; + if( pH->ht ) pH->xFree(pH->ht); + pH->ht = 0; + pH->htsize = 0; + while( elem ){ + fts1HashElem *next_elem = elem->next; + if( pH->copyKey && elem->pKey ){ + pH->xFree(elem->pKey); + } + pH->xFree(elem); + elem = next_elem; + } + pH->count = 0; +} + +/* +** Hash and comparison functions when the mode is FTS1_HASH_STRING +*/ +static int strHash(const void *pKey, int nKey){ + const char *z = (const char *)pKey; + int h = 0; + if( nKey<=0 ) nKey = (int) strlen(z); + while( nKey > 0 ){ + h = (h<<3) ^ h ^ *z++; + nKey--; + } + return h & 0x7fffffff; +} +static int strCompare(const void *pKey1, int n1, const void *pKey2, int n2){ + if( n1!=n2 ) return 1; + return strncmp((const char*)pKey1,(const char*)pKey2,n1); +} + +/* +** Hash and comparison functions when the mode is FTS1_HASH_BINARY +*/ +static int binHash(const void *pKey, int nKey){ + int h = 0; + const char *z = (const char *)pKey; + while( nKey-- > 0 ){ + h = (h<<3) ^ h ^ *(z++); + } + return h & 0x7fffffff; +} +static int binCompare(const void *pKey1, int n1, const void *pKey2, int n2){ + if( n1!=n2 ) return 1; + return memcmp(pKey1,pKey2,n1); +} + +/* +** Return a pointer to the appropriate hash function given the key class. +** +** The C syntax in this function definition may be unfamilar to some +** programmers, so we provide the following additional explanation: +** +** The name of the function is "hashFunction". The function takes a +** single parameter "keyClass". The return value of hashFunction() +** is a pointer to another function. Specifically, the return value +** of hashFunction() is a pointer to a function that takes two parameters +** with types "const void*" and "int" and returns an "int". +*/ +static int (*hashFunction(int keyClass))(const void*,int){ + if( keyClass==FTS1_HASH_STRING ){ + return &strHash; + }else{ + assert( keyClass==FTS1_HASH_BINARY ); + return &binHash; + } +} + +/* +** Return a pointer to the appropriate hash function given the key class. +** +** For help in interpreted the obscure C code in the function definition, +** see the header comment on the previous function. +*/ +static int (*compareFunction(int keyClass))(const void*,int,const void*,int){ + if( keyClass==FTS1_HASH_STRING ){ + return &strCompare; + }else{ + assert( keyClass==FTS1_HASH_BINARY ); + return &binCompare; + } +} + +/* Link an element into the hash table +*/ +static void insertElement( + fts1Hash *pH, /* The complete hash table */ + struct _fts1ht *pEntry, /* The entry into which pNew is inserted */ + fts1HashElem *pNew /* The element to be inserted */ +){ + fts1HashElem *pHead; /* First element already in pEntry */ + pHead = pEntry->chain; + if( pHead ){ + pNew->next = pHead; + pNew->prev = pHead->prev; + if( pHead->prev ){ pHead->prev->next = pNew; } + else { pH->first = pNew; } + pHead->prev = pNew; + }else{ + pNew->next = pH->first; + if( pH->first ){ pH->first->prev = pNew; } + pNew->prev = 0; + pH->first = pNew; + } + pEntry->count++; + pEntry->chain = pNew; +} + + +/* Resize the hash table so that it cantains "new_size" buckets. +** "new_size" must be a power of 2. The hash table might fail +** to resize if sqliteMalloc() fails. +*/ +static void rehash(fts1Hash *pH, int new_size){ + struct _fts1ht *new_ht; /* The new hash table */ + fts1HashElem *elem, *next_elem; /* For looping over existing elements */ + int (*xHash)(const void*,int); /* The hash function */ + + assert( (new_size & (new_size-1))==0 ); + new_ht = (struct _fts1ht *)pH->xMalloc( new_size*sizeof(struct _fts1ht) ); + if( new_ht==0 ) return; + if( pH->ht ) pH->xFree(pH->ht); + pH->ht = new_ht; + pH->htsize = new_size; + xHash = hashFunction(pH->keyClass); + for(elem=pH->first, pH->first=0; elem; elem = next_elem){ + int h = (*xHash)(elem->pKey, elem->nKey) & (new_size-1); + next_elem = elem->next; + insertElement(pH, &new_ht[h], elem); + } +} + +/* This function (for internal use only) locates an element in an +** hash table that matches the given key. The hash for this key has +** already been computed and is passed as the 4th parameter. +*/ +static fts1HashElem *findElementGivenHash( + const fts1Hash *pH, /* The pH to be searched */ + const void *pKey, /* The key we are searching for */ + int nKey, + int h /* The hash for this key. */ +){ + fts1HashElem *elem; /* Used to loop thru the element list */ + int count; /* Number of elements left to test */ + int (*xCompare)(const void*,int,const void*,int); /* comparison function */ + + if( pH->ht ){ + struct _fts1ht *pEntry = &pH->ht[h]; + elem = pEntry->chain; + count = pEntry->count; + xCompare = compareFunction(pH->keyClass); + while( count-- && elem ){ + if( (*xCompare)(elem->pKey,elem->nKey,pKey,nKey)==0 ){ + return elem; + } + elem = elem->next; + } + } + return 0; +} + +/* Remove a single entry from the hash table given a pointer to that +** element and a hash on the element's key. +*/ +static void removeElementGivenHash( + fts1Hash *pH, /* The pH containing "elem" */ + fts1HashElem* elem, /* The element to be removed from the pH */ + int h /* Hash value for the element */ +){ + struct _fts1ht *pEntry; + if( elem->prev ){ + elem->prev->next = elem->next; + }else{ + pH->first = elem->next; + } + if( elem->next ){ + elem->next->prev = elem->prev; + } + pEntry = &pH->ht[h]; + if( pEntry->chain==elem ){ + pEntry->chain = elem->next; + } + pEntry->count--; + if( pEntry->count<=0 ){ + pEntry->chain = 0; + } + if( pH->copyKey && elem->pKey ){ + pH->xFree(elem->pKey); + } + pH->xFree( elem ); + pH->count--; + if( pH->count<=0 ){ + assert( pH->first==0 ); + assert( pH->count==0 ); + fts1HashClear(pH); + } +} + +/* Attempt to locate an element of the hash table pH with a key +** that matches pKey,nKey. Return the data for this element if it is +** found, or NULL if there is no match. +*/ +void *sqlite3Fts1HashFind(const fts1Hash *pH, const void *pKey, int nKey){ + int h; /* A hash on key */ + fts1HashElem *elem; /* The element that matches key */ + int (*xHash)(const void*,int); /* The hash function */ + + if( pH==0 || pH->ht==0 ) return 0; + xHash = hashFunction(pH->keyClass); + assert( xHash!=0 ); + h = (*xHash)(pKey,nKey); + assert( (pH->htsize & (pH->htsize-1))==0 ); + elem = findElementGivenHash(pH,pKey,nKey, h & (pH->htsize-1)); + return elem ? elem->data : 0; +} + +/* Insert an element into the hash table pH. The key is pKey,nKey +** and the data is "data". +** +** If no element exists with a matching key, then a new +** element is created. A copy of the key is made if the copyKey +** flag is set. NULL is returned. +** +** If another element already exists with the same key, then the +** new data replaces the old data and the old data is returned. +** The key is not copied in this instance. If a malloc fails, then +** the new data is returned and the hash table is unchanged. +** +** If the "data" parameter to this function is NULL, then the +** element corresponding to "key" is removed from the hash table. +*/ +void *sqlite3Fts1HashInsert( + fts1Hash *pH, /* The hash table to insert into */ + const void *pKey, /* The key */ + int nKey, /* Number of bytes in the key */ + void *data /* The data */ +){ + int hraw; /* Raw hash value of the key */ + int h; /* the hash of the key modulo hash table size */ + fts1HashElem *elem; /* Used to loop thru the element list */ + fts1HashElem *new_elem; /* New element added to the pH */ + int (*xHash)(const void*,int); /* The hash function */ + + assert( pH!=0 ); + xHash = hashFunction(pH->keyClass); + assert( xHash!=0 ); + hraw = (*xHash)(pKey, nKey); + assert( (pH->htsize & (pH->htsize-1))==0 ); + h = hraw & (pH->htsize-1); + elem = findElementGivenHash(pH,pKey,nKey,h); + if( elem ){ + void *old_data = elem->data; + if( data==0 ){ + removeElementGivenHash(pH,elem,h); + }else{ + elem->data = data; + } + return old_data; + } + if( data==0 ) return 0; + new_elem = (fts1HashElem*)pH->xMalloc( sizeof(fts1HashElem) ); + if( new_elem==0 ) return data; + if( pH->copyKey && pKey!=0 ){ + new_elem->pKey = pH->xMalloc( nKey ); + if( new_elem->pKey==0 ){ + pH->xFree(new_elem); + return data; + } + memcpy((void*)new_elem->pKey, pKey, nKey); + }else{ + new_elem->pKey = (void*)pKey; + } + new_elem->nKey = nKey; + pH->count++; + if( pH->htsize==0 ){ + rehash(pH,8); + if( pH->htsize==0 ){ + pH->count = 0; + pH->xFree(new_elem); + return data; + } + } + if( pH->count > pH->htsize ){ + rehash(pH,pH->htsize*2); + } + assert( pH->htsize>0 ); + assert( (pH->htsize & (pH->htsize-1))==0 ); + h = hraw & (pH->htsize-1); + insertElement(pH, &pH->ht[h], new_elem); + new_elem->data = data; + return 0; +} + +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS1) */ diff --git a/src/dep/src/sqlite/fts1_hash.h b/src/dep/src/sqlite/fts1_hash.h new file mode 100644 index 0000000..c31c430 --- /dev/null +++ b/src/dep/src/sqlite/fts1_hash.h @@ -0,0 +1,112 @@ +/* +** 2001 September 22 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This is the header file for the generic hash-table implemenation +** used in SQLite. We've modified it slightly to serve as a standalone +** hash table implementation for the full-text indexing module. +** +*/ +#ifndef _FTS1_HASH_H_ +#define _FTS1_HASH_H_ + +/* Forward declarations of structures. */ +typedef struct fts1Hash fts1Hash; +typedef struct fts1HashElem fts1HashElem; + +/* A complete hash table is an instance of the following structure. +** The internals of this structure are intended to be opaque -- client +** code should not attempt to access or modify the fields of this structure +** directly. Change this structure only by using the routines below. +** However, many of the "procedures" and "functions" for modifying and +** accessing this structure are really macros, so we can't really make +** this structure opaque. +*/ +struct fts1Hash { + char keyClass; /* HASH_INT, _POINTER, _STRING, _BINARY */ + char copyKey; /* True if copy of key made on insert */ + int count; /* Number of entries in this table */ + fts1HashElem *first; /* The first element of the array */ + void *(*xMalloc)(int); /* malloc() function to use */ + void (*xFree)(void *); /* free() function to use */ + int htsize; /* Number of buckets in the hash table */ + struct _fts1ht { /* the hash table */ + int count; /* Number of entries with this hash */ + fts1HashElem *chain; /* Pointer to first entry with this hash */ + } *ht; +}; + +/* Each element in the hash table is an instance of the following +** structure. All elements are stored on a single doubly-linked list. +** +** Again, this structure is intended to be opaque, but it can't really +** be opaque because it is used by macros. +*/ +struct fts1HashElem { + fts1HashElem *next, *prev; /* Next and previous elements in the table */ + void *data; /* Data associated with this element */ + void *pKey; int nKey; /* Key associated with this element */ +}; + +/* +** There are 2 different modes of operation for a hash table: +** +** FTS1_HASH_STRING pKey points to a string that is nKey bytes long +** (including the null-terminator, if any). Case +** is respected in comparisons. +** +** FTS1_HASH_BINARY pKey points to binary data nKey bytes long. +** memcmp() is used to compare keys. +** +** A copy of the key is made if the copyKey parameter to fts1HashInit is 1. +*/ +#define FTS1_HASH_STRING 1 +#define FTS1_HASH_BINARY 2 + +/* +** Access routines. To delete, insert a NULL pointer. +*/ +void sqlite3Fts1HashInit(fts1Hash*, int keytype, int copyKey); +void *sqlite3Fts1HashInsert(fts1Hash*, const void *pKey, int nKey, void *pData); +void *sqlite3Fts1HashFind(const fts1Hash*, const void *pKey, int nKey); +void sqlite3Fts1HashClear(fts1Hash*); + +/* +** Shorthand for the functions above +*/ +#define fts1HashInit sqlite3Fts1HashInit +#define fts1HashInsert sqlite3Fts1HashInsert +#define fts1HashFind sqlite3Fts1HashFind +#define fts1HashClear sqlite3Fts1HashClear + +/* +** Macros for looping over all elements of a hash table. The idiom is +** like this: +** +** fts1Hash h; +** fts1HashElem *p; +** ... +** for(p=fts1HashFirst(&h); p; p=fts1HashNext(p)){ +** SomeStructure *pData = fts1HashData(p); +** // do something with pData +** } +*/ +#define fts1HashFirst(H) ((H)->first) +#define fts1HashNext(E) ((E)->next) +#define fts1HashData(E) ((E)->data) +#define fts1HashKey(E) ((E)->pKey) +#define fts1HashKeysize(E) ((E)->nKey) + +/* +** Number of entries in a hash table +*/ +#define fts1HashCount(H) ((H)->count) + +#endif /* _FTS1_HASH_H_ */ diff --git a/src/dep/src/sqlite/fts1_porter.c b/src/dep/src/sqlite/fts1_porter.c new file mode 100644 index 0000000..13bef7d --- /dev/null +++ b/src/dep/src/sqlite/fts1_porter.c @@ -0,0 +1,642 @@ +/* +** 2006 September 30 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** Implementation of the full-text-search tokenizer that implements +** a Porter stemmer. +*/ + +/* +** The code in this file is only compiled if: +** +** * The FTS1 module is being built as an extension +** (in which case SQLITE_CORE is not defined), or +** +** * The FTS1 module is being built into the core of +** SQLite (in which case SQLITE_ENABLE_FTS1 is defined). +*/ +#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS1) + + +#include +#if !defined(__APPLE__) +#include +#else +#include +#endif +#include +#include +#include + +#include "fts1_tokenizer.h" + +/* +** Class derived from sqlite3_tokenizer +*/ +typedef struct porter_tokenizer { + sqlite3_tokenizer base; /* Base class */ +} porter_tokenizer; + +/* +** Class derived from sqlit3_tokenizer_cursor +*/ +typedef struct porter_tokenizer_cursor { + sqlite3_tokenizer_cursor base; + const char *zInput; /* input we are tokenizing */ + int nInput; /* size of the input */ + int iOffset; /* current position in zInput */ + int iToken; /* index of next token to be returned */ + char *zToken; /* storage for current token */ + int nAllocated; /* space allocated to zToken buffer */ +} porter_tokenizer_cursor; + + +/* Forward declaration */ +static const sqlite3_tokenizer_module porterTokenizerModule; + + +/* +** Create a new tokenizer instance. +*/ +static int porterCreate( + int argc, const char * const *argv, + sqlite3_tokenizer **ppTokenizer +){ + porter_tokenizer *t; + t = (porter_tokenizer *) calloc(sizeof(porter_tokenizer), 1); + *ppTokenizer = &t->base; + return SQLITE_OK; +} + +/* +** Destroy a tokenizer +*/ +static int porterDestroy(sqlite3_tokenizer *pTokenizer){ + free(pTokenizer); + return SQLITE_OK; +} + +/* +** Prepare to begin tokenizing a particular string. The input +** string to be tokenized is zInput[0..nInput-1]. A cursor +** used to incrementally tokenize this string is returned in +** *ppCursor. +*/ +static int porterOpen( + sqlite3_tokenizer *pTokenizer, /* The tokenizer */ + const char *zInput, int nInput, /* String to be tokenized */ + sqlite3_tokenizer_cursor **ppCursor /* OUT: Tokenization cursor */ +){ + porter_tokenizer_cursor *c; + + c = (porter_tokenizer_cursor *) malloc(sizeof(porter_tokenizer_cursor)); + c->zInput = zInput; + if( zInput==0 ){ + c->nInput = 0; + }else if( nInput<0 ){ + c->nInput = (int)strlen(zInput); + }else{ + c->nInput = nInput; + } + c->iOffset = 0; /* start tokenizing at the beginning */ + c->iToken = 0; + c->zToken = NULL; /* no space allocated, yet. */ + c->nAllocated = 0; + + *ppCursor = &c->base; + return SQLITE_OK; +} + +/* +** Close a tokenization cursor previously opened by a call to +** porterOpen() above. +*/ +static int porterClose(sqlite3_tokenizer_cursor *pCursor){ + porter_tokenizer_cursor *c = (porter_tokenizer_cursor *) pCursor; + free(c->zToken); + free(c); + return SQLITE_OK; +} +/* +** Vowel or consonant +*/ +static const char cType[] = { + 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 2, 1 +}; + +/* +** isConsonant() and isVowel() determine if their first character in +** the string they point to is a consonant or a vowel, according +** to Porter ruls. +** +** A consonate is any letter other than 'a', 'e', 'i', 'o', or 'u'. +** 'Y' is a consonant unless it follows another consonant, +** in which case it is a vowel. +** +** In these routine, the letters are in reverse order. So the 'y' rule +** is that 'y' is a consonant unless it is followed by another +** consonent. +*/ +static int isVowel(const char*); +static int isConsonant(const char *z){ + int j; + char x = *z; + if( x==0 ) return 0; + assert( x>='a' && x<='z' ); + j = cType[x-'a']; + if( j<2 ) return j; + return z[1]==0 || isVowel(z + 1); +} +static int isVowel(const char *z){ + int j; + char x = *z; + if( x==0 ) return 0; + assert( x>='a' && x<='z' ); + j = cType[x-'a']; + if( j<2 ) return 1-j; + return isConsonant(z + 1); +} + +/* +** Let any sequence of one or more vowels be represented by V and let +** C be sequence of one or more consonants. Then every word can be +** represented as: +** +** [C] (VC){m} [V] +** +** In prose: A word is an optional consonant followed by zero or +** vowel-consonant pairs followed by an optional vowel. "m" is the +** number of vowel consonant pairs. This routine computes the value +** of m for the first i bytes of a word. +** +** Return true if the m-value for z is 1 or more. In other words, +** return true if z contains at least one vowel that is followed +** by a consonant. +** +** In this routine z[] is in reverse order. So we are really looking +** for an instance of of a consonant followed by a vowel. +*/ +static int m_gt_0(const char *z){ + while( isVowel(z) ){ z++; } + if( *z==0 ) return 0; + while( isConsonant(z) ){ z++; } + return *z!=0; +} + +/* Like mgt0 above except we are looking for a value of m which is +** exactly 1 +*/ +static int m_eq_1(const char *z){ + while( isVowel(z) ){ z++; } + if( *z==0 ) return 0; + while( isConsonant(z) ){ z++; } + if( *z==0 ) return 0; + while( isVowel(z) ){ z++; } + if( *z==0 ) return 1; + while( isConsonant(z) ){ z++; } + return *z==0; +} + +/* Like mgt0 above except we are looking for a value of m>1 instead +** or m>0 +*/ +static int m_gt_1(const char *z){ + while( isVowel(z) ){ z++; } + if( *z==0 ) return 0; + while( isConsonant(z) ){ z++; } + if( *z==0 ) return 0; + while( isVowel(z) ){ z++; } + if( *z==0 ) return 0; + while( isConsonant(z) ){ z++; } + return *z!=0; +} + +/* +** Return TRUE if there is a vowel anywhere within z[0..n-1] +*/ +static int hasVowel(const char *z){ + while( isConsonant(z) ){ z++; } + return *z!=0; +} + +/* +** Return TRUE if the word ends in a double consonant. +** +** The text is reversed here. So we are really looking at +** the first two characters of z[]. +*/ +static int doubleConsonant(const char *z){ + return isConsonant(z) && z[0]==z[1] && isConsonant(z+1); +} + +/* +** Return TRUE if the word ends with three letters which +** are consonant-vowel-consonent and where the final consonant +** is not 'w', 'x', or 'y'. +** +** The word is reversed here. So we are really checking the +** first three letters and the first one cannot be in [wxy]. +*/ +static int star_oh(const char *z){ + return + z[0]!=0 && isConsonant(z) && + z[0]!='w' && z[0]!='x' && z[0]!='y' && + z[1]!=0 && isVowel(z+1) && + z[2]!=0 && isConsonant(z+2); +} + +/* +** If the word ends with zFrom and xCond() is true for the stem +** of the word that preceeds the zFrom ending, then change the +** ending to zTo. +** +** The input word *pz and zFrom are both in reverse order. zTo +** is in normal order. +** +** Return TRUE if zFrom matches. Return FALSE if zFrom does not +** match. Not that TRUE is returned even if xCond() fails and +** no substitution occurs. +*/ +static int stem( + char **pz, /* The word being stemmed (Reversed) */ + const char *zFrom, /* If the ending matches this... (Reversed) */ + const char *zTo, /* ... change the ending to this (not reversed) */ + int (*xCond)(const char*) /* Condition that must be true */ +){ + char *z = *pz; + while( *zFrom && *zFrom==*z ){ z++; zFrom++; } + if( *zFrom!=0 ) return 0; + if( xCond && !xCond(z) ) return 1; + while( *zTo ){ + *(--z) = *(zTo++); + } + *pz = z; + return 1; +} + +/* +** This is the fallback stemmer used when the porter stemmer is +** inappropriate. The input word is copied into the output with +** US-ASCII case folding. If the input word is too long (more +** than 20 bytes if it contains no digits or more than 6 bytes if +** it contains digits) then word is truncated to 20 or 6 bytes +** by taking 10 or 3 bytes from the beginning and end. +*/ +static void copy_stemmer(const char *zIn, int nIn, char *zOut, int *pnOut){ + int i, mx, j; + int hasDigit = 0; + for(i=0; i='A' && c<='Z' ){ + zOut[i] = c - 'A' + 'a'; + }else{ + if( c>='0' && c<='9' ) hasDigit = 1; + zOut[i] = c; + } + } + mx = hasDigit ? 3 : 10; + if( nIn>mx*2 ){ + for(j=mx, i=nIn-mx; i=sizeof(zReverse)-7 ){ + /* The word is too big or too small for the porter stemmer. + ** Fallback to the copy stemmer */ + copy_stemmer(zIn, nIn, zOut, pnOut); + return; + } + for(i=0, j=sizeof(zReverse)-6; i='A' && c<='Z' ){ + zReverse[j] = c + 'a' - 'A'; + }else if( c>='a' && c<='z' ){ + zReverse[j] = c; + }else{ + /* The use of a character not in [a-zA-Z] means that we fallback + ** to the copy stemmer */ + copy_stemmer(zIn, nIn, zOut, pnOut); + return; + } + } + memset(&zReverse[sizeof(zReverse)-5], 0, 5); + z = &zReverse[j+1]; + + + /* Step 1a */ + if( z[0]=='s' ){ + if( + !stem(&z, "sess", "ss", 0) && + !stem(&z, "sei", "i", 0) && + !stem(&z, "ss", "ss", 0) + ){ + z++; + } + } + + /* Step 1b */ + z2 = z; + if( stem(&z, "dee", "ee", m_gt_0) ){ + /* Do nothing. The work was all in the test */ + }else if( + (stem(&z, "gni", "", hasVowel) || stem(&z, "de", "", hasVowel)) + && z!=z2 + ){ + if( stem(&z, "ta", "ate", 0) || + stem(&z, "lb", "ble", 0) || + stem(&z, "zi", "ize", 0) ){ + /* Do nothing. The work was all in the test */ + }else if( doubleConsonant(z) && (*z!='l' && *z!='s' && *z!='z') ){ + z++; + }else if( m_eq_1(z) && star_oh(z) ){ + *(--z) = 'e'; + } + } + + /* Step 1c */ + if( z[0]=='y' && hasVowel(z+1) ){ + z[0] = 'i'; + } + + /* Step 2 */ + switch( z[1] ){ + case 'a': + stem(&z, "lanoita", "ate", m_gt_0) || + stem(&z, "lanoit", "tion", m_gt_0); + break; + case 'c': + stem(&z, "icne", "ence", m_gt_0) || + stem(&z, "icna", "ance", m_gt_0); + break; + case 'e': + stem(&z, "rezi", "ize", m_gt_0); + break; + case 'g': + stem(&z, "igol", "log", m_gt_0); + break; + case 'l': + stem(&z, "ilb", "ble", m_gt_0) || + stem(&z, "illa", "al", m_gt_0) || + stem(&z, "iltne", "ent", m_gt_0) || + stem(&z, "ile", "e", m_gt_0) || + stem(&z, "ilsuo", "ous", m_gt_0); + break; + case 'o': + stem(&z, "noitazi", "ize", m_gt_0) || + stem(&z, "noita", "ate", m_gt_0) || + stem(&z, "rota", "ate", m_gt_0); + break; + case 's': + stem(&z, "msila", "al", m_gt_0) || + stem(&z, "ssenevi", "ive", m_gt_0) || + stem(&z, "ssenluf", "ful", m_gt_0) || + stem(&z, "ssensuo", "ous", m_gt_0); + break; + case 't': + stem(&z, "itila", "al", m_gt_0) || + stem(&z, "itivi", "ive", m_gt_0) || + stem(&z, "itilib", "ble", m_gt_0); + break; + } + + /* Step 3 */ + switch( z[0] ){ + case 'e': + stem(&z, "etaci", "ic", m_gt_0) || + stem(&z, "evita", "", m_gt_0) || + stem(&z, "ezila", "al", m_gt_0); + break; + case 'i': + stem(&z, "itici", "ic", m_gt_0); + break; + case 'l': + stem(&z, "laci", "ic", m_gt_0) || + stem(&z, "luf", "", m_gt_0); + break; + case 's': + stem(&z, "ssen", "", m_gt_0); + break; + } + + /* Step 4 */ + switch( z[1] ){ + case 'a': + if( z[0]=='l' && m_gt_1(z+2) ){ + z += 2; + } + break; + case 'c': + if( z[0]=='e' && z[2]=='n' && (z[3]=='a' || z[3]=='e') && m_gt_1(z+4) ){ + z += 4; + } + break; + case 'e': + if( z[0]=='r' && m_gt_1(z+2) ){ + z += 2; + } + break; + case 'i': + if( z[0]=='c' && m_gt_1(z+2) ){ + z += 2; + } + break; + case 'l': + if( z[0]=='e' && z[2]=='b' && (z[3]=='a' || z[3]=='i') && m_gt_1(z+4) ){ + z += 4; + } + break; + case 'n': + if( z[0]=='t' ){ + if( z[2]=='a' ){ + if( m_gt_1(z+3) ){ + z += 3; + } + }else if( z[2]=='e' ){ + stem(&z, "tneme", "", m_gt_1) || + stem(&z, "tnem", "", m_gt_1) || + stem(&z, "tne", "", m_gt_1); + } + } + break; + case 'o': + if( z[0]=='u' ){ + if( m_gt_1(z+2) ){ + z += 2; + } + }else if( z[3]=='s' || z[3]=='t' ){ + stem(&z, "noi", "", m_gt_1); + } + break; + case 's': + if( z[0]=='m' && z[2]=='i' && m_gt_1(z+3) ){ + z += 3; + } + break; + case 't': + stem(&z, "eta", "", m_gt_1) || + stem(&z, "iti", "", m_gt_1); + break; + case 'u': + if( z[0]=='s' && z[2]=='o' && m_gt_1(z+3) ){ + z += 3; + } + break; + case 'v': + case 'z': + if( z[0]=='e' && z[2]=='i' && m_gt_1(z+3) ){ + z += 3; + } + break; + } + + /* Step 5a */ + if( z[0]=='e' ){ + if( m_gt_1(z+1) ){ + z++; + }else if( m_eq_1(z+1) && !star_oh(z+1) ){ + z++; + } + } + + /* Step 5b */ + if( m_gt_1(z) && z[0]=='l' && z[1]=='l' ){ + z++; + } + + /* z[] is now the stemmed word in reverse order. Flip it back + ** around into forward order and return. + */ + *pnOut = i = strlen(z); + zOut[i] = 0; + while( *z ){ + zOut[--i] = *(z++); + } +} + +/* +** Characters that can be part of a token. We assume any character +** whose value is greater than 0x80 (any UTF character) can be +** part of a token. In other words, delimiters all must have +** values of 0x7f or lower. +*/ +static const char isIdChar[] = { +/* x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* 3x */ + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 4x */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /* 5x */ + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 6x */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, /* 7x */ +}; +#define idChar(C) (((ch=C)&0x80)!=0 || (ch>0x2f && isIdChar[ch-0x30])) +#define isDelim(C) (((ch=C)&0x80)==0 && (ch<0x30 || !isIdChar[ch-0x30])) + +/* +** Extract the next token from a tokenization cursor. The cursor must +** have been opened by a prior call to porterOpen(). +*/ +static int porterNext( + sqlite3_tokenizer_cursor *pCursor, /* Cursor returned by porterOpen */ + const char **pzToken, /* OUT: *pzToken is the token text */ + int *pnBytes, /* OUT: Number of bytes in token */ + int *piStartOffset, /* OUT: Starting offset of token */ + int *piEndOffset, /* OUT: Ending offset of token */ + int *piPosition /* OUT: Position integer of token */ +){ + porter_tokenizer_cursor *c = (porter_tokenizer_cursor *) pCursor; + const char *z = c->zInput; + + while( c->iOffsetnInput ){ + int iStartOffset, ch; + + /* Scan past delimiter characters */ + while( c->iOffsetnInput && isDelim(z[c->iOffset]) ){ + c->iOffset++; + } + + /* Count non-delimiter characters. */ + iStartOffset = c->iOffset; + while( c->iOffsetnInput && !isDelim(z[c->iOffset]) ){ + c->iOffset++; + } + + if( c->iOffset>iStartOffset ){ + int n = c->iOffset-iStartOffset; + if( n>c->nAllocated ){ + c->nAllocated = n+20; + c->zToken = realloc(c->zToken, c->nAllocated); + } + porter_stemmer(&z[iStartOffset], n, c->zToken, pnBytes); + *pzToken = c->zToken; + *piStartOffset = iStartOffset; + *piEndOffset = c->iOffset; + *piPosition = c->iToken++; + return SQLITE_OK; + } + } + return SQLITE_DONE; +} + +/* +** The set of routines that implement the porter-stemmer tokenizer +*/ +static const sqlite3_tokenizer_module porterTokenizerModule = { + 0, + porterCreate, + porterDestroy, + porterOpen, + porterClose, + porterNext, +}; + +/* +** Allocate a new porter tokenizer. Return a pointer to the new +** tokenizer in *ppModule +*/ +void sqlite3Fts1PorterTokenizerModule( + sqlite3_tokenizer_module const**ppModule +){ + *ppModule = &porterTokenizerModule; +} + +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS1) */ diff --git a/src/dep/src/sqlite/fts1_tokenizer.h b/src/dep/src/sqlite/fts1_tokenizer.h new file mode 100644 index 0000000..a48cb74 --- /dev/null +++ b/src/dep/src/sqlite/fts1_tokenizer.h @@ -0,0 +1,90 @@ +/* +** 2006 July 10 +** +** The author disclaims copyright to this source code. +** +************************************************************************* +** Defines the interface to tokenizers used by fulltext-search. There +** are three basic components: +** +** sqlite3_tokenizer_module is a singleton defining the tokenizer +** interface functions. This is essentially the class structure for +** tokenizers. +** +** sqlite3_tokenizer is used to define a particular tokenizer, perhaps +** including customization information defined at creation time. +** +** sqlite3_tokenizer_cursor is generated by a tokenizer to generate +** tokens from a particular input. +*/ +#ifndef _FTS1_TOKENIZER_H_ +#define _FTS1_TOKENIZER_H_ + +/* TODO(shess) Only used for SQLITE_OK and SQLITE_DONE at this time. +** If tokenizers are to be allowed to call sqlite3_*() functions, then +** we will need a way to register the API consistently. +*/ +#include "sqlite3.h" + +/* +** Structures used by the tokenizer interface. +*/ +typedef struct sqlite3_tokenizer sqlite3_tokenizer; +typedef struct sqlite3_tokenizer_cursor sqlite3_tokenizer_cursor; +typedef struct sqlite3_tokenizer_module sqlite3_tokenizer_module; + +struct sqlite3_tokenizer_module { + int iVersion; /* currently 0 */ + + /* + ** Create and destroy a tokenizer. argc/argv are passed down from + ** the fulltext virtual table creation to allow customization. + */ + int (*xCreate)(int argc, const char *const*argv, + sqlite3_tokenizer **ppTokenizer); + int (*xDestroy)(sqlite3_tokenizer *pTokenizer); + + /* + ** Tokenize a particular input. Call xOpen() to prepare to + ** tokenize, xNext() repeatedly until it returns SQLITE_DONE, then + ** xClose() to free any internal state. The pInput passed to + ** xOpen() must exist until the cursor is closed. The ppToken + ** result from xNext() is only valid until the next call to xNext() + ** or until xClose() is called. + */ + /* TODO(shess) current implementation requires pInput to be + ** nul-terminated. This should either be fixed, or pInput/nBytes + ** should be converted to zInput. + */ + int (*xOpen)(sqlite3_tokenizer *pTokenizer, + const char *pInput, int nBytes, + sqlite3_tokenizer_cursor **ppCursor); + int (*xClose)(sqlite3_tokenizer_cursor *pCursor); + int (*xNext)(sqlite3_tokenizer_cursor *pCursor, + const char **ppToken, int *pnBytes, + int *piStartOffset, int *piEndOffset, int *piPosition); +}; + +struct sqlite3_tokenizer { + const sqlite3_tokenizer_module *pModule; /* The module for this tokenizer */ + /* Tokenizer implementations will typically add additional fields */ +}; + +struct sqlite3_tokenizer_cursor { + sqlite3_tokenizer *pTokenizer; /* Tokenizer for this cursor. */ + /* Tokenizer implementations will typically add additional fields */ +}; + +/* +** Get the module for a tokenizer which generates tokens based on a +** set of non-token characters. The default is to break tokens at any +** non-alnum character, though the set of delimiters can also be +** specified by the first argv argument to xCreate(). +*/ +/* TODO(shess) This doesn't belong here. Need some sort of +** registration process. +*/ +void sqlite3Fts1SimpleTokenizerModule(sqlite3_tokenizer_module const**ppModule); +void sqlite3Fts1PorterTokenizerModule(sqlite3_tokenizer_module const**ppModule); + +#endif /* _FTS1_TOKENIZER_H_ */ diff --git a/src/dep/src/sqlite/fts1_tokenizer1.c b/src/dep/src/sqlite/fts1_tokenizer1.c new file mode 100644 index 0000000..a680c5e --- /dev/null +++ b/src/dep/src/sqlite/fts1_tokenizer1.c @@ -0,0 +1,220 @@ +/* +** The author disclaims copyright to this source code. +** +************************************************************************* +** Implementation of the "simple" full-text-search tokenizer. +*/ + +/* +** The code in this file is only compiled if: +** +** * The FTS1 module is being built as an extension +** (in which case SQLITE_CORE is not defined), or +** +** * The FTS1 module is being built into the core of +** SQLite (in which case SQLITE_ENABLE_FTS1 is defined). +*/ +#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS1) + + +#include +#if !defined(__APPLE__) +#include +#else +#include +#endif +#include +#include +#include + +#include "fts1_tokenizer.h" + +typedef struct simple_tokenizer { + sqlite3_tokenizer base; + char delim[128]; /* flag ASCII delimiters */ +} simple_tokenizer; + +typedef struct simple_tokenizer_cursor { + sqlite3_tokenizer_cursor base; + const char *pInput; /* input we are tokenizing */ + int nBytes; /* size of the input */ + int iOffset; /* current position in pInput */ + int iToken; /* index of next token to be returned */ + char *pToken; /* storage for current token */ + int nTokenAllocated; /* space allocated to zToken buffer */ +} simple_tokenizer_cursor; + + +/* Forward declaration */ +static const sqlite3_tokenizer_module simpleTokenizerModule; + +static int isDelim(simple_tokenizer *t, unsigned char c){ + return c<0x80 && t->delim[c]; +} + +/* +** Create a new tokenizer instance. +*/ +static int simpleCreate( + int argc, const char * const *argv, + sqlite3_tokenizer **ppTokenizer +){ + simple_tokenizer *t; + + t = (simple_tokenizer *) calloc(sizeof(simple_tokenizer), 1); + /* TODO(shess) Delimiters need to remain the same from run to run, + ** else we need to reindex. One solution would be a meta-table to + ** track such information in the database, then we'd only want this + ** information on the initial create. + */ + if( argc>1 ){ + int i, n = strlen(argv[1]); + for(i=0; i=0x80 ){ + free(t); + return SQLITE_ERROR; + } + t->delim[ch] = 1; + } + } else { + /* Mark non-alphanumeric ASCII characters as delimiters */ + int i; + for(i=1; i<0x80; i++){ + t->delim[i] = !isalnum(i); + } + } + + *ppTokenizer = &t->base; + return SQLITE_OK; +} + +/* +** Destroy a tokenizer +*/ +static int simpleDestroy(sqlite3_tokenizer *pTokenizer){ + free(pTokenizer); + return SQLITE_OK; +} + +/* +** Prepare to begin tokenizing a particular string. The input +** string to be tokenized is pInput[0..nBytes-1]. A cursor +** used to incrementally tokenize this string is returned in +** *ppCursor. +*/ +static int simpleOpen( + sqlite3_tokenizer *pTokenizer, /* The tokenizer */ + const char *pInput, int nBytes, /* String to be tokenized */ + sqlite3_tokenizer_cursor **ppCursor /* OUT: Tokenization cursor */ +){ + simple_tokenizer_cursor *c; + + c = (simple_tokenizer_cursor *) malloc(sizeof(simple_tokenizer_cursor)); + c->pInput = pInput; + if( pInput==0 ){ + c->nBytes = 0; + }else if( nBytes<0 ){ + c->nBytes = (int)strlen(pInput); + }else{ + c->nBytes = nBytes; + } + c->iOffset = 0; /* start tokenizing at the beginning */ + c->iToken = 0; + c->pToken = NULL; /* no space allocated, yet. */ + c->nTokenAllocated = 0; + + *ppCursor = &c->base; + return SQLITE_OK; +} + +/* +** Close a tokenization cursor previously opened by a call to +** simpleOpen() above. +*/ +static int simpleClose(sqlite3_tokenizer_cursor *pCursor){ + simple_tokenizer_cursor *c = (simple_tokenizer_cursor *) pCursor; + free(c->pToken); + free(c); + return SQLITE_OK; +} + +/* +** Extract the next token from a tokenization cursor. The cursor must +** have been opened by a prior call to simpleOpen(). +*/ +static int simpleNext( + sqlite3_tokenizer_cursor *pCursor, /* Cursor returned by simpleOpen */ + const char **ppToken, /* OUT: *ppToken is the token text */ + int *pnBytes, /* OUT: Number of bytes in token */ + int *piStartOffset, /* OUT: Starting offset of token */ + int *piEndOffset, /* OUT: Ending offset of token */ + int *piPosition /* OUT: Position integer of token */ +){ + simple_tokenizer_cursor *c = (simple_tokenizer_cursor *) pCursor; + simple_tokenizer *t = (simple_tokenizer *) pCursor->pTokenizer; + unsigned char *p = (unsigned char *)c->pInput; + + while( c->iOffsetnBytes ){ + int iStartOffset; + + /* Scan past delimiter characters */ + while( c->iOffsetnBytes && isDelim(t, p[c->iOffset]) ){ + c->iOffset++; + } + + /* Count non-delimiter characters. */ + iStartOffset = c->iOffset; + while( c->iOffsetnBytes && !isDelim(t, p[c->iOffset]) ){ + c->iOffset++; + } + + if( c->iOffset>iStartOffset ){ + int i, n = c->iOffset-iStartOffset; + if( n>c->nTokenAllocated ){ + c->nTokenAllocated = n+20; + c->pToken = realloc(c->pToken, c->nTokenAllocated); + } + for(i=0; ipToken[i] = ch<0x80 ? tolower(ch) : ch; + } + *ppToken = c->pToken; + *pnBytes = n; + *piStartOffset = iStartOffset; + *piEndOffset = c->iOffset; + *piPosition = c->iToken++; + + return SQLITE_OK; + } + } + return SQLITE_DONE; +} + +/* +** The set of routines that implement the simple tokenizer +*/ +static const sqlite3_tokenizer_module simpleTokenizerModule = { + 0, + simpleCreate, + simpleDestroy, + simpleOpen, + simpleClose, + simpleNext, +}; + +/* +** Allocate a new simple tokenizer. Return a pointer to the new +** tokenizer in *ppModule +*/ +void sqlite3Fts1SimpleTokenizerModule( + sqlite3_tokenizer_module const**ppModule +){ + *ppModule = &simpleTokenizerModule; +} + +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS1) */ diff --git a/src/dep/src/sqlite/func.c b/src/dep/src/sqlite/func.c new file mode 100644 index 0000000..11a6e1a --- /dev/null +++ b/src/dep/src/sqlite/func.c @@ -0,0 +1,1179 @@ +/* +** 2002 February 23 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains the C functions that implement various SQL +** functions of SQLite. +** +** There is only one exported symbol in this file - the function +** sqliteRegisterBuildinFunctions() found at the bottom of the file. +** All other code has file scope. +** +** $Id: func.c,v 1.134 2006/09/16 21:45:14 drh Exp $ +*/ +#include "sqliteInt.h" +#include +/* #include */ +#include +#include +#include "vdbeInt.h" +#include "os.h" + +/* +** Return the collating function associated with a function. +*/ +static CollSeq *sqlite3GetFuncCollSeq(sqlite3_context *context){ + return context->pColl; +} + +/* +** Implementation of the non-aggregate min() and max() functions +*/ +static void minmaxFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + int i; + int mask; /* 0 for min() or 0xffffffff for max() */ + int iBest; + CollSeq *pColl; + + if( argc==0 ) return; + mask = sqlite3_user_data(context)==0 ? 0 : -1; + pColl = sqlite3GetFuncCollSeq(context); + assert( pColl ); + assert( mask==-1 || mask==0 ); + iBest = 0; + if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; + for(i=1; i=0 ){ + iBest = i; + } + } + sqlite3_result_value(context, argv[iBest]); +} + +/* +** Return the type of the argument. +*/ +static void typeofFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + const char *z = 0; + switch( sqlite3_value_type(argv[0]) ){ + case SQLITE_NULL: z = "null"; break; + case SQLITE_INTEGER: z = "integer"; break; + case SQLITE_TEXT: z = "text"; break; + case SQLITE_FLOAT: z = "real"; break; + case SQLITE_BLOB: z = "blob"; break; + } + sqlite3_result_text(context, z, -1, SQLITE_STATIC); +} + + +/* +** Implementation of the length() function +*/ +static void lengthFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + int len; + + assert( argc==1 ); + switch( sqlite3_value_type(argv[0]) ){ + case SQLITE_BLOB: + case SQLITE_INTEGER: + case SQLITE_FLOAT: { + sqlite3_result_int(context, sqlite3_value_bytes(argv[0])); + break; + } + case SQLITE_TEXT: { + const unsigned char *z = sqlite3_value_text(argv[0]); + for(len=0; *z; z++){ if( (0xc0&*z)!=0x80 ) len++; } + sqlite3_result_int(context, len); + break; + } + default: { + sqlite3_result_null(context); + break; + } + } +} + +/* +** Implementation of the abs() function +*/ +static void absFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + assert( argc==1 ); + switch( sqlite3_value_type(argv[0]) ){ + case SQLITE_INTEGER: { + i64 iVal = sqlite3_value_int64(argv[0]); + if( iVal<0 ){ + if( (iVal<<1)==0 ){ + sqlite3_result_error(context, "integer overflow", -1); + return; + } + iVal = -iVal; + } + sqlite3_result_int64(context, iVal); + break; + } + case SQLITE_NULL: { + sqlite3_result_null(context); + break; + } + default: { + double rVal = sqlite3_value_double(argv[0]); + if( rVal<0 ) rVal = -rVal; + sqlite3_result_double(context, rVal); + break; + } + } +} + +/* +** Implementation of the substr() function +*/ +static void substrFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + const unsigned char *z; + const unsigned char *z2; + int i; + int p1, p2, len; + + assert( argc==3 ); + z = sqlite3_value_text(argv[0]); + if( z==0 ) return; + p1 = sqlite3_value_int(argv[1]); + p2 = sqlite3_value_int(argv[2]); + for(len=0, z2=z; *z2; z2++){ if( (0xc0&*z2)!=0x80 ) len++; } + if( p1<0 ){ + p1 += len; + if( p1<0 ){ + p2 += p1; + p1 = 0; + } + }else if( p1>0 ){ + p1--; + } + if( p1+p2>len ){ + p2 = len-p1; + } + for(i=0; i30 ) n = 30; + if( n<0 ) n = 0; + } + if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; + r = sqlite3_value_double(argv[0]); + sqlite3_snprintf(sizeof(zBuf),zBuf,"%.*f",n,r); + sqlite3AtoF(zBuf, &r); + sqlite3_result_double(context, r); +} + +/* +** Implementation of the upper() and lower() SQL functions. +*/ +static void upperFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + unsigned char *z; + int i; + if( argc<1 || SQLITE_NULL==sqlite3_value_type(argv[0]) ) return; + z = sqliteMalloc(sqlite3_value_bytes(argv[0])+1); + if( z==0 ) return; + strcpy((char*)z, (char*)sqlite3_value_text(argv[0])); + for(i=0; z[i]; i++){ + z[i] = toupper(z[i]); + } + sqlite3_result_text(context, (char*)z, -1, SQLITE_TRANSIENT); + sqliteFree(z); +} +static void lowerFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + unsigned char *z; + int i; + if( argc<1 || SQLITE_NULL==sqlite3_value_type(argv[0]) ) return; + z = sqliteMalloc(sqlite3_value_bytes(argv[0])+1); + if( z==0 ) return; + strcpy((char*)z, (char*)sqlite3_value_text(argv[0])); + for(i=0; z[i]; i++){ + z[i] = tolower(z[i]); + } + sqlite3_result_text(context, (char*)z, -1, SQLITE_TRANSIENT); + sqliteFree(z); +} + +/* +** Implementation of the IFNULL(), NVL(), and COALESCE() functions. +** All three do the same thing. They return the first non-NULL +** argument. +*/ +static void ifnullFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + int i; + for(i=0; imatchOne; + u8 matchAll = pInfo->matchAll; + u8 matchSet = pInfo->matchSet; + u8 noCase = pInfo->noCase; + int prevEscape = 0; /* True if the previous character was 'escape' */ + + while( (c = *zPattern)!=0 ){ + if( !prevEscape && c==matchAll ){ + while( (c=zPattern[1]) == matchAll || c == matchOne ){ + if( c==matchOne ){ + if( *zString==0 ) return 0; + sqliteNextChar(zString); + } + zPattern++; + } + if( c && esc && sqlite3ReadUtf8(&zPattern[1])==esc ){ + u8 const *zTemp = &zPattern[1]; + sqliteNextChar(zTemp); + c = *zTemp; + } + if( c==0 ) return 1; + if( c==matchSet ){ + assert( esc==0 ); /* This is GLOB, not LIKE */ + while( *zString && patternCompare(&zPattern[1],zString,pInfo,esc)==0 ){ + sqliteNextChar(zString); + } + return *zString!=0; + }else{ + while( (c2 = *zString)!=0 ){ + if( noCase ){ + c2 = sqlite3UpperToLower[c2]; + c = sqlite3UpperToLower[c]; + while( c2 != 0 && c2 != c ){ c2 = sqlite3UpperToLower[*++zString]; } + }else{ + while( c2 != 0 && c2 != c ){ c2 = *++zString; } + } + if( c2==0 ) return 0; + if( patternCompare(&zPattern[1],zString,pInfo,esc) ) return 1; + sqliteNextChar(zString); + } + return 0; + } + }else if( !prevEscape && c==matchOne ){ + if( *zString==0 ) return 0; + sqliteNextChar(zString); + zPattern++; + }else if( c==matchSet ){ + int prior_c = 0; + assert( esc==0 ); /* This only occurs for GLOB, not LIKE */ + seen = 0; + invert = 0; + c = sqliteCharVal(zString); + if( c==0 ) return 0; + c2 = *++zPattern; + if( c2=='^' ){ invert = 1; c2 = *++zPattern; } + if( c2==']' ){ + if( c==']' ) seen = 1; + c2 = *++zPattern; + } + while( (c2 = sqliteCharVal(zPattern))!=0 && c2!=']' ){ + if( c2=='-' && zPattern[1]!=']' && zPattern[1]!=0 && prior_c>0 ){ + zPattern++; + c2 = sqliteCharVal(zPattern); + if( c>=prior_c && c<=c2 ) seen = 1; + prior_c = 0; + }else if( c==c2 ){ + seen = 1; + prior_c = c2; + }else{ + prior_c = c2; + } + sqliteNextChar(zPattern); + } + if( c2==0 || (seen ^ invert)==0 ) return 0; + sqliteNextChar(zString); + zPattern++; + }else if( esc && !prevEscape && sqlite3ReadUtf8(zPattern)==esc){ + prevEscape = 1; + sqliteNextChar(zPattern); + }else{ + if( noCase ){ + if( sqlite3UpperToLower[c] != sqlite3UpperToLower[*zString] ) return 0; + }else{ + if( c != *zString ) return 0; + } + zPattern++; + zString++; + prevEscape = 0; + } + } + return *zString==0; +} + +/* +** Count the number of times that the LIKE operator (or GLOB which is +** just a variation of LIKE) gets called. This is used for testing +** only. +*/ +#ifdef SQLITE_TEST +int sqlite3_like_count = 0; +#endif + + +/* +** Implementation of the like() SQL function. This function implements +** the build-in LIKE operator. The first argument to the function is the +** pattern and the second argument is the string. So, the SQL statements: +** +** A LIKE B +** +** is implemented as like(B,A). +** +** This same function (with a different compareInfo structure) computes +** the GLOB operator. +*/ +static void likeFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + const unsigned char *zA = sqlite3_value_text(argv[0]); + const unsigned char *zB = sqlite3_value_text(argv[1]); + int escape = 0; + if( argc==3 ){ + /* The escape character string must consist of a single UTF-8 character. + ** Otherwise, return an error. + */ + const unsigned char *zEsc = sqlite3_value_text(argv[2]); + if( sqlite3utf8CharLen((char*)zEsc, -1)!=1 ){ + sqlite3_result_error(context, + "ESCAPE expression must be a single character", -1); + return; + } + escape = sqlite3ReadUtf8(zEsc); + } + if( zA && zB ){ + struct compareInfo *pInfo = sqlite3_user_data(context); +#ifdef SQLITE_TEST + sqlite3_like_count++; +#endif + sqlite3_result_int(context, patternCompare(zA, zB, pInfo, escape)); + } +} + +/* +** Implementation of the NULLIF(x,y) function. The result is the first +** argument if the arguments are different. The result is NULL if the +** arguments are equal to each other. +*/ +static void nullifFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + CollSeq *pColl = sqlite3GetFuncCollSeq(context); + if( sqlite3MemCompare(argv[0], argv[1], pColl)!=0 ){ + sqlite3_result_value(context, argv[0]); + } +} + +/* +** Implementation of the VERSION(*) function. The result is the version +** of the SQLite library that is running. +*/ +static void versionFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + sqlite3_result_text(context, sqlite3_version, -1, SQLITE_STATIC); +} + + +/* +** EXPERIMENTAL - This is not an official function. The interface may +** change. This function may disappear. Do not write code that depends +** on this function. +** +** Implementation of the QUOTE() function. This function takes a single +** argument. If the argument is numeric, the return value is the same as +** the argument. If the argument is NULL, the return value is the string +** "NULL". Otherwise, the argument is enclosed in single quotes with +** single-quote escapes. +*/ +static void quoteFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + if( argc<1 ) return; + switch( sqlite3_value_type(argv[0]) ){ + case SQLITE_NULL: { + sqlite3_result_text(context, "NULL", 4, SQLITE_STATIC); + break; + } + case SQLITE_INTEGER: + case SQLITE_FLOAT: { + sqlite3_result_value(context, argv[0]); + break; + } + case SQLITE_BLOB: { + static const char hexdigits[] = { + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' + }; + char *zText = 0; + int nBlob = sqlite3_value_bytes(argv[0]); + char const *zBlob = sqlite3_value_blob(argv[0]); + + zText = (char *)sqliteMalloc((2*nBlob)+4); + if( !zText ){ + sqlite3_result_error(context, "out of memory", -1); + }else{ + int i; + for(i=0; i>4)&0x0F]; + zText[(i*2)+3] = hexdigits[(zBlob[i])&0x0F]; + } + zText[(nBlob*2)+2] = '\''; + zText[(nBlob*2)+3] = '\0'; + zText[0] = 'X'; + zText[1] = '\''; + sqlite3_result_text(context, zText, -1, SQLITE_TRANSIENT); + sqliteFree(zText); + } + break; + } + case SQLITE_TEXT: { + int i,j,n; + const unsigned char *zArg = sqlite3_value_text(argv[0]); + char *z; + + for(i=n=0; zArg[i]; i++){ if( zArg[i]=='\'' ) n++; } + z = sqliteMalloc( i+n+3 ); + if( z==0 ) return; + z[0] = '\''; + for(i=0, j=1; zArg[i]; i++){ + z[j++] = zArg[i]; + if( zArg[i]=='\'' ){ + z[j++] = '\''; + } + } + z[j++] = '\''; + z[j] = 0; + sqlite3_result_text(context, z, j, SQLITE_TRANSIENT); + sqliteFree(z); + } + } +} + +#ifdef SQLITE_SOUNDEX +/* +** Compute the soundex encoding of a word. +*/ +static void soundexFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ + char zResult[8]; + const u8 *zIn; + int i, j; + static const unsigned char iCode[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 3, 0, 1, 2, 0, 0, 2, 2, 4, 5, 5, 0, + 1, 2, 6, 2, 3, 0, 1, 0, 2, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 3, 0, 1, 2, 0, 0, 2, 2, 4, 5, 5, 0, + 1, 2, 6, 2, 3, 0, 1, 0, 2, 0, 2, 0, 0, 0, 0, 0, + }; + assert( argc==1 ); + zIn = (u8*)sqlite3_value_text(argv[0]); + if( zIn==0 ) zIn = (u8*)""; + for(i=0; zIn[i] && !isalpha(zIn[i]); i++){} + if( zIn[i] ){ + u8 prevcode = iCode[zIn[i]&0x7f]; + zResult[0] = toupper(zIn[i]); + for(j=1; j<4 && zIn[i]; i++){ + int code = iCode[zIn[i]&0x7f]; + if( code>0 ){ + if( code!=prevcode ){ + prevcode = code; + zResult[j++] = code + '0'; + } + }else{ + prevcode = 0; + } + } + while( j<4 ){ + zResult[j++] = '0'; + } + zResult[j] = 0; + sqlite3_result_text(context, zResult, 4, SQLITE_TRANSIENT); + }else{ + sqlite3_result_text(context, "?000", 4, SQLITE_STATIC); + } +} +#endif + +#ifndef SQLITE_OMIT_LOAD_EXTENSION +/* +** A function that loads a shared-library extension then returns NULL. +*/ +static void loadExt(sqlite3_context *context, int argc, sqlite3_value **argv){ + const char *zFile = (const char *)sqlite3_value_text(argv[0]); + const char *zProc = 0; + sqlite3 *db = sqlite3_user_data(context); + char *zErrMsg = 0; + + if( argc==2 ){ + zProc = (const char *)sqlite3_value_text(argv[1]); + } + if( sqlite3_load_extension(db, zFile, zProc, &zErrMsg) ){ + sqlite3_result_error(context, zErrMsg, -1); + sqlite3_free(zErrMsg); + } +} +#endif + +#ifdef SQLITE_TEST +/* +** This function generates a string of random characters. Used for +** generating test data. +*/ +static void randStr(sqlite3_context *context, int argc, sqlite3_value **argv){ + static const unsigned char zSrc[] = + "abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "0123456789" + ".-!,:*^+=_|?/<> "; + int iMin, iMax, n, r, i; + unsigned char zBuf[1000]; + if( argc>=1 ){ + iMin = sqlite3_value_int(argv[0]); + if( iMin<0 ) iMin = 0; + if( iMin>=sizeof(zBuf) ) iMin = sizeof(zBuf)-1; + }else{ + iMin = 1; + } + if( argc>=2 ){ + iMax = sqlite3_value_int(argv[1]); + if( iMax=sizeof(zBuf) ) iMax = sizeof(zBuf)-1; + }else{ + iMax = 50; + } + n = iMin; + if( iMax>iMin ){ + sqlite3Randomness(sizeof(r), &r); + r &= 0x7fffffff; + n += r%(iMax + 1 - iMin); + } + assert( ncnt++; + if( type==SQLITE_INTEGER ){ + i64 v = sqlite3_value_int64(argv[0]); + p->rSum += v; + if( (p->approx|p->overflow)==0 ){ + i64 iNewSum = p->iSum + v; + int s1 = p->iSum >> (sizeof(i64)*8-1); + int s2 = v >> (sizeof(i64)*8-1); + int s3 = iNewSum >> (sizeof(i64)*8-1); + p->overflow = (s1&s2&~s3) | (~s1&~s2&s3); + p->iSum = iNewSum; + } + }else{ + p->rSum += sqlite3_value_double(argv[0]); + p->approx = 1; + } + } +} +static void sumFinalize(sqlite3_context *context){ + SumCtx *p; + p = sqlite3_aggregate_context(context, 0); + if( p && p->cnt>0 ){ + if( p->overflow ){ + sqlite3_result_error(context,"integer overflow",-1); + }else if( p->approx ){ + sqlite3_result_double(context, p->rSum); + }else{ + sqlite3_result_int64(context, p->iSum); + } + } +} +static void avgFinalize(sqlite3_context *context){ + SumCtx *p; + p = sqlite3_aggregate_context(context, 0); + if( p && p->cnt>0 ){ + sqlite3_result_double(context, p->rSum/(double)p->cnt); + } +} +static void totalFinalize(sqlite3_context *context){ + SumCtx *p; + p = sqlite3_aggregate_context(context, 0); + sqlite3_result_double(context, p ? p->rSum : 0.0); +} + +/* +** The following structure keeps track of state information for the +** count() aggregate function. +*/ +typedef struct CountCtx CountCtx; +struct CountCtx { + i64 n; +}; + +/* +** Routines to implement the count() aggregate function. +*/ +static void countStep(sqlite3_context *context, int argc, sqlite3_value **argv){ + CountCtx *p; + p = sqlite3_aggregate_context(context, sizeof(*p)); + if( (argc==0 || SQLITE_NULL!=sqlite3_value_type(argv[0])) && p ){ + p->n++; + } +} +static void countFinalize(sqlite3_context *context){ + CountCtx *p; + p = sqlite3_aggregate_context(context, 0); + sqlite3_result_int64(context, p ? p->n : 0); +} + +/* +** Routines to implement min() and max() aggregate functions. +*/ +static void minmaxStep(sqlite3_context *context, int argc, sqlite3_value **argv){ + Mem *pArg = (Mem *)argv[0]; + Mem *pBest; + + if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; + pBest = (Mem *)sqlite3_aggregate_context(context, sizeof(*pBest)); + if( !pBest ) return; + + if( pBest->flags ){ + int max; + int cmp; + CollSeq *pColl = sqlite3GetFuncCollSeq(context); + /* This step function is used for both the min() and max() aggregates, + ** the only difference between the two being that the sense of the + ** comparison is inverted. For the max() aggregate, the + ** sqlite3_user_data() function returns (void *)-1. For min() it + ** returns (void *)db, where db is the sqlite3* database pointer. + ** Therefore the next statement sets variable 'max' to 1 for the max() + ** aggregate, or 0 for min(). + */ + max = ((sqlite3_user_data(context)==(void *)-1)?1:0); + cmp = sqlite3MemCompare(pBest, pArg, pColl); + if( (max && cmp<0) || (!max && cmp>0) ){ + sqlite3VdbeMemCopy(pBest, pArg); + } + }else{ + sqlite3VdbeMemCopy(pBest, pArg); + } +} +static void minMaxFinalize(sqlite3_context *context){ + sqlite3_value *pRes; + pRes = (sqlite3_value *)sqlite3_aggregate_context(context, 0); + if( pRes ){ + if( pRes->flags ){ + sqlite3_result_value(context, pRes); + } + sqlite3VdbeMemRelease(pRes); + } +} + + +/* +** This function registered all of the above C functions as SQL +** functions. This should be the only routine in this file with +** external linkage. +*/ +void sqlite3RegisterBuiltinFunctions(sqlite3 *db){ + static const struct { + char *zName; + signed char nArg; + u8 argType; /* 0: none. 1: db 2: (-1) */ + u8 eTextRep; /* 1: UTF-16. 0: UTF-8 */ + u8 needCollSeq; + void (*xFunc)(sqlite3_context*,int,sqlite3_value **); + } aFuncs[] = { + { "min", -1, 0, SQLITE_UTF8, 1, minmaxFunc }, + { "min", 0, 0, SQLITE_UTF8, 1, 0 }, + { "max", -1, 2, SQLITE_UTF8, 1, minmaxFunc }, + { "max", 0, 2, SQLITE_UTF8, 1, 0 }, + { "typeof", 1, 0, SQLITE_UTF8, 0, typeofFunc }, + { "length", 1, 0, SQLITE_UTF8, 0, lengthFunc }, + { "substr", 3, 0, SQLITE_UTF8, 0, substrFunc }, +#ifndef SQLITE_OMIT_UTF16 + { "substr", 3, 0, SQLITE_UTF16LE, 0, sqlite3utf16Substr }, +#endif + { "abs", 1, 0, SQLITE_UTF8, 0, absFunc }, + { "round", 1, 0, SQLITE_UTF8, 0, roundFunc }, + { "round", 2, 0, SQLITE_UTF8, 0, roundFunc }, + { "upper", 1, 0, SQLITE_UTF8, 0, upperFunc }, + { "lower", 1, 0, SQLITE_UTF8, 0, lowerFunc }, + { "coalesce", -1, 0, SQLITE_UTF8, 0, ifnullFunc }, + { "coalesce", 0, 0, SQLITE_UTF8, 0, 0 }, + { "coalesce", 1, 0, SQLITE_UTF8, 0, 0 }, + { "ifnull", 2, 0, SQLITE_UTF8, 1, ifnullFunc }, + { "random", -1, 0, SQLITE_UTF8, 0, randomFunc }, + { "nullif", 2, 0, SQLITE_UTF8, 1, nullifFunc }, + { "sqlite_version", 0, 0, SQLITE_UTF8, 0, versionFunc}, + { "quote", 1, 0, SQLITE_UTF8, 0, quoteFunc }, + { "last_insert_rowid", 0, 1, SQLITE_UTF8, 0, last_insert_rowid }, + { "changes", 0, 1, SQLITE_UTF8, 0, changes }, + { "total_changes", 0, 1, SQLITE_UTF8, 0, total_changes }, +#ifdef SQLITE_SOUNDEX + { "soundex", 1, 0, SQLITE_UTF8, 0, soundexFunc}, +#endif +#ifndef SQLITE_OMIT_LOAD_EXTENSION + { "load_extension", 1, 1, SQLITE_UTF8, 0, loadExt }, + { "load_extension", 2, 1, SQLITE_UTF8, 0, loadExt }, +#endif +#ifdef SQLITE_TEST + { "randstr", 2, 0, SQLITE_UTF8, 0, randStr }, + { "test_destructor", 1, 1, SQLITE_UTF8, 0, test_destructor}, + { "test_destructor_count", 0, 0, SQLITE_UTF8, 0, test_destructor_count}, + { "test_auxdata", -1, 0, SQLITE_UTF8, 0, test_auxdata}, + { "test_error", 1, 0, SQLITE_UTF8, 0, test_error}, +#endif + }; + static const struct { + char *zName; + signed char nArg; + u8 argType; + u8 needCollSeq; + void (*xStep)(sqlite3_context*,int,sqlite3_value**); + void (*xFinalize)(sqlite3_context*); + } aAggs[] = { + { "min", 1, 0, 1, minmaxStep, minMaxFinalize }, + { "max", 1, 2, 1, minmaxStep, minMaxFinalize }, + { "sum", 1, 0, 0, sumStep, sumFinalize }, + { "total", 1, 0, 0, sumStep, totalFinalize }, + { "avg", 1, 0, 0, sumStep, avgFinalize }, + { "count", 0, 0, 0, countStep, countFinalize }, + { "count", 1, 0, 0, countStep, countFinalize }, + }; + int i; + + for(i=0; ineedCollSeq = 1; + } + } + } +#ifndef SQLITE_OMIT_ALTERTABLE + sqlite3AlterFunctions(db); +#endif +#ifndef SQLITE_OMIT_PARSER + sqlite3AttachFunctions(db); +#endif + for(i=0; ineedCollSeq = 1; + } + } + } + sqlite3RegisterDateTimeFunctions(db); + sqlite3_overload_function(db, "MATCH", 2); +#ifdef SQLITE_SSE + (void)sqlite3SseFunctions(db); +#endif +#ifdef SQLITE_CASE_SENSITIVE_LIKE + sqlite3RegisterLikeFunctions(db, 1); +#else + sqlite3RegisterLikeFunctions(db, 0); +#endif +} + +/* +** Set the LIKEOPT flag on the 2-argument function with the given name. +*/ +static void setLikeOptFlag(sqlite3 *db, const char *zName, int flagVal){ + FuncDef *pDef; + pDef = sqlite3FindFunction(db, zName, strlen(zName), 2, SQLITE_UTF8, 0); + if( pDef ){ + pDef->flags = flagVal; + } +} + +/* +** Register the built-in LIKE and GLOB functions. The caseSensitive +** parameter determines whether or not the LIKE operator is case +** sensitive. GLOB is always case sensitive. +*/ +void sqlite3RegisterLikeFunctions(sqlite3 *db, int caseSensitive){ + struct compareInfo *pInfo; + if( caseSensitive ){ + pInfo = (struct compareInfo*)&likeInfoAlt; + }else{ + pInfo = (struct compareInfo*)&likeInfoNorm; + } + sqlite3CreateFunc(db, "like", 2, SQLITE_UTF8, pInfo, likeFunc, 0, 0); + sqlite3CreateFunc(db, "like", 3, SQLITE_UTF8, pInfo, likeFunc, 0, 0); + sqlite3CreateFunc(db, "glob", 2, SQLITE_UTF8, + (struct compareInfo*)&globInfo, likeFunc, 0,0); + setLikeOptFlag(db, "glob", SQLITE_FUNC_LIKE | SQLITE_FUNC_CASE); + setLikeOptFlag(db, "like", + caseSensitive ? (SQLITE_FUNC_LIKE | SQLITE_FUNC_CASE) : SQLITE_FUNC_LIKE); +} + +/* +** pExpr points to an expression which implements a function. If +** it is appropriate to apply the LIKE optimization to that function +** then set aWc[0] through aWc[2] to the wildcard characters and +** return TRUE. If the function is not a LIKE-style function then +** return FALSE. +*/ +int sqlite3IsLikeFunction(sqlite3 *db, Expr *pExpr, int *pIsNocase, char *aWc){ + FuncDef *pDef; + if( pExpr->op!=TK_FUNCTION ){ + return 0; + } + if( pExpr->pList->nExpr!=2 ){ + return 0; + } + pDef = sqlite3FindFunction(db, (char*)pExpr->token.z, pExpr->token.n, 2, + SQLITE_UTF8, 0); + if( pDef==0 || (pDef->flags & SQLITE_FUNC_LIKE)==0 ){ + return 0; + } + + /* The memcpy() statement assumes that the wildcard characters are + ** the first three statements in the compareInfo structure. The + ** asserts() that follow verify that assumption + */ + memcpy(aWc, pDef->pUserData, 3); + assert( (char*)&likeInfoAlt == (char*)&likeInfoAlt.matchAll ); + assert( &((char*)&likeInfoAlt)[1] == (char*)&likeInfoAlt.matchOne ); + assert( &((char*)&likeInfoAlt)[2] == (char*)&likeInfoAlt.matchSet ); + *pIsNocase = (pDef->flags & SQLITE_FUNC_CASE)==0; + return 1; +} diff --git a/src/dep/src/sqlite/hash.c b/src/dep/src/sqlite/hash.c new file mode 100644 index 0000000..f15613e --- /dev/null +++ b/src/dep/src/sqlite/hash.c @@ -0,0 +1,394 @@ +/* +** 2001 September 22 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This is the implementation of generic hash-tables +** used in SQLite. +** +** $Id: hash.c,v 1.18 2006/02/14 10:48:39 danielk1977 Exp $ +*/ +#include "sqliteInt.h" +#include + +/* Turn bulk memory into a hash table object by initializing the +** fields of the Hash structure. +** +** "pNew" is a pointer to the hash table that is to be initialized. +** keyClass is one of the constants SQLITE_HASH_INT, SQLITE_HASH_POINTER, +** SQLITE_HASH_BINARY, or SQLITE_HASH_STRING. The value of keyClass +** determines what kind of key the hash table will use. "copyKey" is +** true if the hash table should make its own private copy of keys and +** false if it should just use the supplied pointer. CopyKey only makes +** sense for SQLITE_HASH_STRING and SQLITE_HASH_BINARY and is ignored +** for other key classes. +*/ +void sqlite3HashInit(Hash *pNew, int keyClass, int copyKey){ + assert( pNew!=0 ); + assert( keyClass>=SQLITE_HASH_STRING && keyClass<=SQLITE_HASH_BINARY ); + pNew->keyClass = keyClass; +#if 0 + if( keyClass==SQLITE_HASH_POINTER || keyClass==SQLITE_HASH_INT ) copyKey = 0; +#endif + pNew->copyKey = copyKey; + pNew->first = 0; + pNew->count = 0; + pNew->htsize = 0; + pNew->ht = 0; + pNew->xMalloc = sqlite3MallocX; + pNew->xFree = sqlite3FreeX; +} + +/* Remove all entries from a hash table. Reclaim all memory. +** Call this routine to delete a hash table or to reset a hash table +** to the empty state. +*/ +void sqlite3HashClear(Hash *pH){ + HashElem *elem; /* For looping over all elements of the table */ + + assert( pH!=0 ); + elem = pH->first; + pH->first = 0; + if( pH->ht ) pH->xFree(pH->ht); + pH->ht = 0; + pH->htsize = 0; + while( elem ){ + HashElem *next_elem = elem->next; + if( pH->copyKey && elem->pKey ){ + pH->xFree(elem->pKey); + } + pH->xFree(elem); + elem = next_elem; + } + pH->count = 0; +} + +#if 0 /* NOT USED */ +/* +** Hash and comparison functions when the mode is SQLITE_HASH_INT +*/ +static int intHash(const void *pKey, int nKey){ + return nKey ^ (nKey<<8) ^ (nKey>>8); +} +static int intCompare(const void *pKey1, int n1, const void *pKey2, int n2){ + return n2 - n1; +} +#endif + +#if 0 /* NOT USED */ +/* +** Hash and comparison functions when the mode is SQLITE_HASH_POINTER +*/ +static int ptrHash(const void *pKey, int nKey){ + uptr x = Addr(pKey); + return x ^ (x<<8) ^ (x>>8); +} +static int ptrCompare(const void *pKey1, int n1, const void *pKey2, int n2){ + if( pKey1==pKey2 ) return 0; + if( pKey1 0 ){ + h = (h<<3) ^ h ^ sqlite3UpperToLower[(unsigned char)*z++]; + nKey--; + } + return h & 0x7fffffff; +} +static int strCompare(const void *pKey1, int n1, const void *pKey2, int n2){ + if( n1!=n2 ) return 1; + return sqlite3StrNICmp((const char*)pKey1,(const char*)pKey2,n1); +} + +/* +** Hash and comparison functions when the mode is SQLITE_HASH_BINARY +*/ +static int binHash(const void *pKey, int nKey){ + int h = 0; + const char *z = (const char *)pKey; + while( nKey-- > 0 ){ + h = (h<<3) ^ h ^ *(z++); + } + return h & 0x7fffffff; +} +static int binCompare(const void *pKey1, int n1, const void *pKey2, int n2){ + if( n1!=n2 ) return 1; + return memcmp(pKey1,pKey2,n1); +} + +/* +** Return a pointer to the appropriate hash function given the key class. +** +** The C syntax in this function definition may be unfamilar to some +** programmers, so we provide the following additional explanation: +** +** The name of the function is "hashFunction". The function takes a +** single parameter "keyClass". The return value of hashFunction() +** is a pointer to another function. Specifically, the return value +** of hashFunction() is a pointer to a function that takes two parameters +** with types "const void*" and "int" and returns an "int". +*/ +static int (*hashFunction(int keyClass))(const void*,int){ +#if 0 /* HASH_INT and HASH_POINTER are never used */ + switch( keyClass ){ + case SQLITE_HASH_INT: return &intHash; + case SQLITE_HASH_POINTER: return &ptrHash; + case SQLITE_HASH_STRING: return &strHash; + case SQLITE_HASH_BINARY: return &binHash;; + default: break; + } + return 0; +#else + if( keyClass==SQLITE_HASH_STRING ){ + return &strHash; + }else{ + assert( keyClass==SQLITE_HASH_BINARY ); + return &binHash; + } +#endif +} + +/* +** Return a pointer to the appropriate hash function given the key class. +** +** For help in interpreted the obscure C code in the function definition, +** see the header comment on the previous function. +*/ +static int (*compareFunction(int keyClass))(const void*,int,const void*,int){ +#if 0 /* HASH_INT and HASH_POINTER are never used */ + switch( keyClass ){ + case SQLITE_HASH_INT: return &intCompare; + case SQLITE_HASH_POINTER: return &ptrCompare; + case SQLITE_HASH_STRING: return &strCompare; + case SQLITE_HASH_BINARY: return &binCompare; + default: break; + } + return 0; +#else + if( keyClass==SQLITE_HASH_STRING ){ + return &strCompare; + }else{ + assert( keyClass==SQLITE_HASH_BINARY ); + return &binCompare; + } +#endif +} + +/* Link an element into the hash table +*/ +static void insertElement( + Hash *pH, /* The complete hash table */ + struct _ht *pEntry, /* The entry into which pNew is inserted */ + HashElem *pNew /* The element to be inserted */ +){ + HashElem *pHead; /* First element already in pEntry */ + pHead = pEntry->chain; + if( pHead ){ + pNew->next = pHead; + pNew->prev = pHead->prev; + if( pHead->prev ){ pHead->prev->next = pNew; } + else { pH->first = pNew; } + pHead->prev = pNew; + }else{ + pNew->next = pH->first; + if( pH->first ){ pH->first->prev = pNew; } + pNew->prev = 0; + pH->first = pNew; + } + pEntry->count++; + pEntry->chain = pNew; +} + + +/* Resize the hash table so that it cantains "new_size" buckets. +** "new_size" must be a power of 2. The hash table might fail +** to resize if sqliteMalloc() fails. +*/ +static void rehash(Hash *pH, int new_size){ + struct _ht *new_ht; /* The new hash table */ + HashElem *elem, *next_elem; /* For looping over existing elements */ + int (*xHash)(const void*,int); /* The hash function */ + + assert( (new_size & (new_size-1))==0 ); + new_ht = (struct _ht *)pH->xMalloc( new_size*sizeof(struct _ht) ); + if( new_ht==0 ) return; + if( pH->ht ) pH->xFree(pH->ht); + pH->ht = new_ht; + pH->htsize = new_size; + xHash = hashFunction(pH->keyClass); + for(elem=pH->first, pH->first=0; elem; elem = next_elem){ + int h = (*xHash)(elem->pKey, elem->nKey) & (new_size-1); + next_elem = elem->next; + insertElement(pH, &new_ht[h], elem); + } +} + +/* This function (for internal use only) locates an element in an +** hash table that matches the given key. The hash for this key has +** already been computed and is passed as the 4th parameter. +*/ +static HashElem *findElementGivenHash( + const Hash *pH, /* The pH to be searched */ + const void *pKey, /* The key we are searching for */ + int nKey, + int h /* The hash for this key. */ +){ + HashElem *elem; /* Used to loop thru the element list */ + int count; /* Number of elements left to test */ + int (*xCompare)(const void*,int,const void*,int); /* comparison function */ + + if( pH->ht ){ + struct _ht *pEntry = &pH->ht[h]; + elem = pEntry->chain; + count = pEntry->count; + xCompare = compareFunction(pH->keyClass); + while( count-- && elem ){ + if( (*xCompare)(elem->pKey,elem->nKey,pKey,nKey)==0 ){ + return elem; + } + elem = elem->next; + } + } + return 0; +} + +/* Remove a single entry from the hash table given a pointer to that +** element and a hash on the element's key. +*/ +static void removeElementGivenHash( + Hash *pH, /* The pH containing "elem" */ + HashElem* elem, /* The element to be removed from the pH */ + int h /* Hash value for the element */ +){ + struct _ht *pEntry; + if( elem->prev ){ + elem->prev->next = elem->next; + }else{ + pH->first = elem->next; + } + if( elem->next ){ + elem->next->prev = elem->prev; + } + pEntry = &pH->ht[h]; + if( pEntry->chain==elem ){ + pEntry->chain = elem->next; + } + pEntry->count--; + if( pEntry->count<=0 ){ + pEntry->chain = 0; + } + if( pH->copyKey && elem->pKey ){ + pH->xFree(elem->pKey); + } + pH->xFree( elem ); + pH->count--; + if( pH->count<=0 ){ + assert( pH->first==0 ); + assert( pH->count==0 ); + sqlite3HashClear(pH); + } +} + +/* Attempt to locate an element of the hash table pH with a key +** that matches pKey,nKey. Return the data for this element if it is +** found, or NULL if there is no match. +*/ +void *sqlite3HashFind(const Hash *pH, const void *pKey, int nKey){ + int h; /* A hash on key */ + HashElem *elem; /* The element that matches key */ + int (*xHash)(const void*,int); /* The hash function */ + + if( pH==0 || pH->ht==0 ) return 0; + xHash = hashFunction(pH->keyClass); + assert( xHash!=0 ); + h = (*xHash)(pKey,nKey); + assert( (pH->htsize & (pH->htsize-1))==0 ); + elem = findElementGivenHash(pH,pKey,nKey, h & (pH->htsize-1)); + return elem ? elem->data : 0; +} + +/* Insert an element into the hash table pH. The key is pKey,nKey +** and the data is "data". +** +** If no element exists with a matching key, then a new +** element is created. A copy of the key is made if the copyKey +** flag is set. NULL is returned. +** +** If another element already exists with the same key, then the +** new data replaces the old data and the old data is returned. +** The key is not copied in this instance. If a malloc fails, then +** the new data is returned and the hash table is unchanged. +** +** If the "data" parameter to this function is NULL, then the +** element corresponding to "key" is removed from the hash table. +*/ +void *sqlite3HashInsert(Hash *pH, const void *pKey, int nKey, void *data){ + int hraw; /* Raw hash value of the key */ + int h; /* the hash of the key modulo hash table size */ + HashElem *elem; /* Used to loop thru the element list */ + HashElem *new_elem; /* New element added to the pH */ + int (*xHash)(const void*,int); /* The hash function */ + + assert( pH!=0 ); + xHash = hashFunction(pH->keyClass); + assert( xHash!=0 ); + hraw = (*xHash)(pKey, nKey); + assert( (pH->htsize & (pH->htsize-1))==0 ); + h = hraw & (pH->htsize-1); + elem = findElementGivenHash(pH,pKey,nKey,h); + if( elem ){ + void *old_data = elem->data; + if( data==0 ){ + removeElementGivenHash(pH,elem,h); + }else{ + elem->data = data; + } + return old_data; + } + if( data==0 ) return 0; + new_elem = (HashElem*)pH->xMalloc( sizeof(HashElem) ); + if( new_elem==0 ) return data; + if( pH->copyKey && pKey!=0 ){ + new_elem->pKey = pH->xMalloc( nKey ); + if( new_elem->pKey==0 ){ + pH->xFree(new_elem); + return data; + } + memcpy((void*)new_elem->pKey, pKey, nKey); + }else{ + new_elem->pKey = (void*)pKey; + } + new_elem->nKey = nKey; + pH->count++; + if( pH->htsize==0 ){ + rehash(pH,8); + if( pH->htsize==0 ){ + pH->count = 0; + pH->xFree(new_elem); + return data; + } + } + if( pH->count > pH->htsize ){ + rehash(pH,pH->htsize*2); + } + assert( pH->htsize>0 ); + assert( (pH->htsize & (pH->htsize-1))==0 ); + h = hraw & (pH->htsize-1); + insertElement(pH, &pH->ht[h], new_elem); + new_elem->data = data; + return 0; +} diff --git a/src/dep/src/sqlite/hash.h b/src/dep/src/sqlite/hash.h new file mode 100644 index 0000000..78f60b4 --- /dev/null +++ b/src/dep/src/sqlite/hash.h @@ -0,0 +1,111 @@ +/* +** 2001 September 22 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This is the header file for the generic hash-table implemenation +** used in SQLite. +** +** $Id: hash.h,v 1.9 2006/02/14 10:48:39 danielk1977 Exp $ +*/ +#ifndef _SQLITE_HASH_H_ +#define _SQLITE_HASH_H_ + +/* Forward declarations of structures. */ +typedef struct Hash Hash; +typedef struct HashElem HashElem; + +/* A complete hash table is an instance of the following structure. +** The internals of this structure are intended to be opaque -- client +** code should not attempt to access or modify the fields of this structure +** directly. Change this structure only by using the routines below. +** However, many of the "procedures" and "functions" for modifying and +** accessing this structure are really macros, so we can't really make +** this structure opaque. +*/ +struct Hash { + char keyClass; /* SQLITE_HASH_INT, _POINTER, _STRING, _BINARY */ + char copyKey; /* True if copy of key made on insert */ + int count; /* Number of entries in this table */ + HashElem *first; /* The first element of the array */ + void *(*xMalloc)(int); /* malloc() function to use */ + void (*xFree)(void *); /* free() function to use */ + int htsize; /* Number of buckets in the hash table */ + struct _ht { /* the hash table */ + int count; /* Number of entries with this hash */ + HashElem *chain; /* Pointer to first entry with this hash */ + } *ht; +}; + +/* Each element in the hash table is an instance of the following +** structure. All elements are stored on a single doubly-linked list. +** +** Again, this structure is intended to be opaque, but it can't really +** be opaque because it is used by macros. +*/ +struct HashElem { + HashElem *next, *prev; /* Next and previous elements in the table */ + void *data; /* Data associated with this element */ + void *pKey; int nKey; /* Key associated with this element */ +}; + +/* +** There are 4 different modes of operation for a hash table: +** +** SQLITE_HASH_INT nKey is used as the key and pKey is ignored. +** +** SQLITE_HASH_POINTER pKey is used as the key and nKey is ignored. +** +** SQLITE_HASH_STRING pKey points to a string that is nKey bytes long +** (including the null-terminator, if any). Case +** is ignored in comparisons. +** +** SQLITE_HASH_BINARY pKey points to binary data nKey bytes long. +** memcmp() is used to compare keys. +** +** A copy of the key is made for SQLITE_HASH_STRING and SQLITE_HASH_BINARY +** if the copyKey parameter to HashInit is 1. +*/ +/* #define SQLITE_HASH_INT 1 // NOT USED */ +/* #define SQLITE_HASH_POINTER 2 // NOT USED */ +#define SQLITE_HASH_STRING 3 +#define SQLITE_HASH_BINARY 4 + +/* +** Access routines. To delete, insert a NULL pointer. +*/ +void sqlite3HashInit(Hash*, int keytype, int copyKey); +void *sqlite3HashInsert(Hash*, const void *pKey, int nKey, void *pData); +void *sqlite3HashFind(const Hash*, const void *pKey, int nKey); +void sqlite3HashClear(Hash*); + +/* +** Macros for looping over all elements of a hash table. The idiom is +** like this: +** +** Hash h; +** HashElem *p; +** ... +** for(p=sqliteHashFirst(&h); p; p=sqliteHashNext(p)){ +** SomeStructure *pData = sqliteHashData(p); +** // do something with pData +** } +*/ +#define sqliteHashFirst(H) ((H)->first) +#define sqliteHashNext(E) ((E)->next) +#define sqliteHashData(E) ((E)->data) +#define sqliteHashKey(E) ((E)->pKey) +#define sqliteHashKeysize(E) ((E)->nKey) + +/* +** Number of entries in a hash table +*/ +#define sqliteHashCount(H) ((H)->count) + +#endif /* _SQLITE_HASH_H_ */ diff --git a/src/dep/src/sqlite/insert.c b/src/dep/src/sqlite/insert.c new file mode 100644 index 0000000..e108673 --- /dev/null +++ b/src/dep/src/sqlite/insert.c @@ -0,0 +1,1142 @@ +/* +** 2001 September 15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains C code routines that are called by the parser +** to handle INSERT statements in SQLite. +** +** $Id: insert.c,v 1.172 2006/08/29 18:46:14 drh Exp $ +*/ +#include "sqliteInt.h" + +/* +** Set P3 of the most recently inserted opcode to a column affinity +** string for index pIdx. A column affinity string has one character +** for each column in the table, according to the affinity of the column: +** +** Character Column affinity +** ------------------------------ +** 'a' TEXT +** 'b' NONE +** 'c' NUMERIC +** 'd' INTEGER +** 'e' REAL +*/ +void sqlite3IndexAffinityStr(Vdbe *v, Index *pIdx){ + if( !pIdx->zColAff ){ + /* The first time a column affinity string for a particular index is + ** required, it is allocated and populated here. It is then stored as + ** a member of the Index structure for subsequent use. + ** + ** The column affinity string will eventually be deleted by + ** sqliteDeleteIndex() when the Index structure itself is cleaned + ** up. + */ + int n; + Table *pTab = pIdx->pTable; + pIdx->zColAff = (char *)sqliteMalloc(pIdx->nColumn+1); + if( !pIdx->zColAff ){ + return; + } + for(n=0; nnColumn; n++){ + pIdx->zColAff[n] = pTab->aCol[pIdx->aiColumn[n]].affinity; + } + pIdx->zColAff[pIdx->nColumn] = '\0'; + } + + sqlite3VdbeChangeP3(v, -1, pIdx->zColAff, 0); +} + +/* +** Set P3 of the most recently inserted opcode to a column affinity +** string for table pTab. A column affinity string has one character +** for each column indexed by the index, according to the affinity of the +** column: +** +** Character Column affinity +** ------------------------------ +** 'a' TEXT +** 'b' NONE +** 'c' NUMERIC +** 'd' INTEGER +** 'e' REAL +*/ +void sqlite3TableAffinityStr(Vdbe *v, Table *pTab){ + /* The first time a column affinity string for a particular table + ** is required, it is allocated and populated here. It is then + ** stored as a member of the Table structure for subsequent use. + ** + ** The column affinity string will eventually be deleted by + ** sqlite3DeleteTable() when the Table structure itself is cleaned up. + */ + if( !pTab->zColAff ){ + char *zColAff; + int i; + + zColAff = (char *)sqliteMalloc(pTab->nCol+1); + if( !zColAff ){ + return; + } + + for(i=0; inCol; i++){ + zColAff[i] = pTab->aCol[i].affinity; + } + zColAff[pTab->nCol] = '\0'; + + pTab->zColAff = zColAff; + } + + sqlite3VdbeChangeP3(v, -1, pTab->zColAff, 0); +} + +/* +** Return non-zero if SELECT statement p opens the table with rootpage +** iTab in database iDb. This is used to see if a statement of the form +** "INSERT INTO SELECT ..." can run without using temporary +** table for the results of the SELECT. +** +** No checking is done for sub-selects that are part of expressions. +*/ +static int selectReadsTable(Select *p, Schema *pSchema, int iTab){ + int i; + struct SrcList_item *pItem; + if( p->pSrc==0 ) return 0; + for(i=0, pItem=p->pSrc->a; ipSrc->nSrc; i++, pItem++){ + if( pItem->pSelect ){ + if( selectReadsTable(pItem->pSelect, pSchema, iTab) ) return 1; + }else{ + if( pItem->pTab->pSchema==pSchema && pItem->pTab->tnum==iTab ) return 1; + } + } + return 0; +} + +/* +** This routine is call to handle SQL of the following forms: +** +** insert into TABLE (IDLIST) values(EXPRLIST) +** insert into TABLE (IDLIST) select +** +** The IDLIST following the table name is always optional. If omitted, +** then a list of all columns for the table is substituted. The IDLIST +** appears in the pColumn parameter. pColumn is NULL if IDLIST is omitted. +** +** The pList parameter holds EXPRLIST in the first form of the INSERT +** statement above, and pSelect is NULL. For the second form, pList is +** NULL and pSelect is a pointer to the select statement used to generate +** data for the insert. +** +** The code generated follows one of three templates. For a simple +** select with data coming from a VALUES clause, the code executes +** once straight down through. The template looks like this: +** +** open write cursor to and its indices +** puts VALUES clause expressions onto the stack +** write the resulting record into
    +** cleanup +** +** If the statement is of the form +** +** INSERT INTO
    SELECT ... +** +** And the SELECT clause does not read from
    at any time, then +** the generated code follows this template: +** +** goto B +** A: setup for the SELECT +** loop over the tables in the SELECT +** gosub C +** end loop +** cleanup after the SELECT +** goto D +** B: open write cursor to
    and its indices +** goto A +** C: insert the select result into
    +** return +** D: cleanup +** +** The third template is used if the insert statement takes its +** values from a SELECT but the data is being inserted into a table +** that is also read as part of the SELECT. In the third form, +** we have to use a intermediate table to store the results of +** the select. The template is like this: +** +** goto B +** A: setup for the SELECT +** loop over the tables in the SELECT +** gosub C +** end loop +** cleanup after the SELECT +** goto D +** C: insert the select result into the intermediate table +** return +** B: open a cursor to an intermediate table +** goto A +** D: open write cursor to
    and its indices +** loop over the intermediate table +** transfer values form intermediate table into
    +** end the loop +** cleanup +*/ +void sqlite3Insert( + Parse *pParse, /* Parser context */ + SrcList *pTabList, /* Name of table into which we are inserting */ + ExprList *pList, /* List of values to be inserted */ + Select *pSelect, /* A SELECT statement to use as the data source */ + IdList *pColumn, /* Column names corresponding to IDLIST. */ + int onError /* How to handle constraint errors */ +){ + Table *pTab; /* The table to insert into */ + char *zTab; /* Name of the table into which we are inserting */ + const char *zDb; /* Name of the database holding this table */ + int i, j, idx; /* Loop counters */ + Vdbe *v; /* Generate code into this virtual machine */ + Index *pIdx; /* For looping over indices of the table */ + int nColumn; /* Number of columns in the data */ + int base = 0; /* VDBE Cursor number for pTab */ + int iCont=0,iBreak=0; /* Beginning and end of the loop over srcTab */ + sqlite3 *db; /* The main database structure */ + int keyColumn = -1; /* Column that is the INTEGER PRIMARY KEY */ + int endOfLoop; /* Label for the end of the insertion loop */ + int useTempTable = 0; /* Store SELECT results in intermediate table */ + int srcTab = 0; /* Data comes from this temporary cursor if >=0 */ + int iSelectLoop = 0; /* Address of code that implements the SELECT */ + int iCleanup = 0; /* Address of the cleanup code */ + int iInsertBlock = 0; /* Address of the subroutine used to insert data */ + int iCntMem = 0; /* Memory cell used for the row counter */ + int newIdx = -1; /* Cursor for the NEW table */ + Db *pDb; /* The database containing table being inserted into */ + int counterMem = 0; /* Memory cell holding AUTOINCREMENT counter */ + int iDb; + +#ifndef SQLITE_OMIT_TRIGGER + int isView; /* True if attempting to insert into a view */ + int triggers_exist = 0; /* True if there are FOR EACH ROW triggers */ +#endif + +#ifndef SQLITE_OMIT_AUTOINCREMENT + int counterRowid = 0; /* Memory cell holding rowid of autoinc counter */ +#endif + + if( pParse->nErr || sqlite3MallocFailed() ){ + goto insert_cleanup; + } + db = pParse->db; + + /* Locate the table into which we will be inserting new information. + */ + assert( pTabList->nSrc==1 ); + zTab = pTabList->a[0].zName; + if( zTab==0 ) goto insert_cleanup; + pTab = sqlite3SrcListLookup(pParse, pTabList); + if( pTab==0 ){ + goto insert_cleanup; + } + iDb = sqlite3SchemaToIndex(db, pTab->pSchema); + assert( iDbnDb ); + pDb = &db->aDb[iDb]; + zDb = pDb->zName; + if( sqlite3AuthCheck(pParse, SQLITE_INSERT, pTab->zName, 0, zDb) ){ + goto insert_cleanup; + } + + /* Figure out if we have any triggers and if the table being + ** inserted into is a view + */ +#ifndef SQLITE_OMIT_TRIGGER + triggers_exist = sqlite3TriggersExist(pParse, pTab, TK_INSERT, 0); + isView = pTab->pSelect!=0; +#else +# define triggers_exist 0 +# define isView 0 +#endif +#ifdef SQLITE_OMIT_VIEW +# undef isView +# define isView 0 +#endif + + /* Ensure that: + * (a) the table is not read-only, + * (b) that if it is a view then ON INSERT triggers exist + */ + if( sqlite3IsReadOnly(pParse, pTab, triggers_exist) ){ + goto insert_cleanup; + } + assert( pTab!=0 ); + + /* If pTab is really a view, make sure it has been initialized. + ** ViewGetColumnNames() is a no-op if pTab is not a view (or virtual + ** module table). + */ + if( sqlite3ViewGetColumnNames(pParse, pTab) ){ + goto insert_cleanup; + } + + /* Allocate a VDBE + */ + v = sqlite3GetVdbe(pParse); + if( v==0 ) goto insert_cleanup; + if( pParse->nested==0 ) sqlite3VdbeCountChanges(v); + sqlite3BeginWriteOperation(pParse, pSelect || triggers_exist, iDb); + + /* if there are row triggers, allocate a temp table for new.* references. */ + if( triggers_exist ){ + newIdx = pParse->nTab++; + } + +#ifndef SQLITE_OMIT_AUTOINCREMENT + /* If this is an AUTOINCREMENT table, look up the sequence number in the + ** sqlite_sequence table and store it in memory cell counterMem. Also + ** remember the rowid of the sqlite_sequence table entry in memory cell + ** counterRowid. + */ + if( pTab->autoInc ){ + int iCur = pParse->nTab; + int addr = sqlite3VdbeCurrentAddr(v); + counterRowid = pParse->nMem++; + counterMem = pParse->nMem++; + sqlite3OpenTable(pParse, iCur, iDb, pDb->pSchema->pSeqTab, OP_OpenRead); + sqlite3VdbeAddOp(v, OP_Rewind, iCur, addr+13); + sqlite3VdbeAddOp(v, OP_Column, iCur, 0); + sqlite3VdbeOp3(v, OP_String8, 0, 0, pTab->zName, 0); + sqlite3VdbeAddOp(v, OP_Ne, 0x100, addr+12); + sqlite3VdbeAddOp(v, OP_Rowid, iCur, 0); + sqlite3VdbeAddOp(v, OP_MemStore, counterRowid, 1); + sqlite3VdbeAddOp(v, OP_Column, iCur, 1); + sqlite3VdbeAddOp(v, OP_MemStore, counterMem, 1); + sqlite3VdbeAddOp(v, OP_Goto, 0, addr+13); + sqlite3VdbeAddOp(v, OP_Next, iCur, addr+4); + sqlite3VdbeAddOp(v, OP_Close, iCur, 0); + } +#endif /* SQLITE_OMIT_AUTOINCREMENT */ + + /* Figure out how many columns of data are supplied. If the data + ** is coming from a SELECT statement, then this step also generates + ** all the code to implement the SELECT statement and invoke a subroutine + ** to process each row of the result. (Template 2.) If the SELECT + ** statement uses the the table that is being inserted into, then the + ** subroutine is also coded here. That subroutine stores the SELECT + ** results in a temporary table. (Template 3.) + */ + if( pSelect ){ + /* Data is coming from a SELECT. Generate code to implement that SELECT + */ + int rc, iInitCode; + iInitCode = sqlite3VdbeAddOp(v, OP_Goto, 0, 0); + iSelectLoop = sqlite3VdbeCurrentAddr(v); + iInsertBlock = sqlite3VdbeMakeLabel(v); + + /* Resolve the expressions in the SELECT statement and execute it. */ + rc = sqlite3Select(pParse, pSelect, SRT_Subroutine, iInsertBlock,0,0,0,0); + if( rc || pParse->nErr || sqlite3MallocFailed() ){ + goto insert_cleanup; + } + + iCleanup = sqlite3VdbeMakeLabel(v); + sqlite3VdbeAddOp(v, OP_Goto, 0, iCleanup); + assert( pSelect->pEList ); + nColumn = pSelect->pEList->nExpr; + + /* Set useTempTable to TRUE if the result of the SELECT statement + ** should be written into a temporary table. Set to FALSE if each + ** row of the SELECT can be written directly into the result table. + ** + ** A temp table must be used if the table being updated is also one + ** of the tables being read by the SELECT statement. Also use a + ** temp table in the case of row triggers. + */ + if( triggers_exist || selectReadsTable(pSelect,pTab->pSchema,pTab->tnum) ){ + useTempTable = 1; + } + + if( useTempTable ){ + /* Generate the subroutine that SELECT calls to process each row of + ** the result. Store the result in a temporary table + */ + srcTab = pParse->nTab++; + sqlite3VdbeResolveLabel(v, iInsertBlock); + sqlite3VdbeAddOp(v, OP_MakeRecord, nColumn, 0); + sqlite3VdbeAddOp(v, OP_NewRowid, srcTab, 0); + sqlite3VdbeAddOp(v, OP_Pull, 1, 0); + sqlite3VdbeAddOp(v, OP_Insert, srcTab, 0); + sqlite3VdbeAddOp(v, OP_Return, 0, 0); + + /* The following code runs first because the GOTO at the very top + ** of the program jumps to it. Create the temporary table, then jump + ** back up and execute the SELECT code above. + */ + sqlite3VdbeJumpHere(v, iInitCode); + sqlite3VdbeAddOp(v, OP_OpenEphemeral, srcTab, 0); + sqlite3VdbeAddOp(v, OP_SetNumColumns, srcTab, nColumn); + sqlite3VdbeAddOp(v, OP_Goto, 0, iSelectLoop); + sqlite3VdbeResolveLabel(v, iCleanup); + }else{ + sqlite3VdbeJumpHere(v, iInitCode); + } + }else{ + /* This is the case if the data for the INSERT is coming from a VALUES + ** clause + */ + NameContext sNC; + memset(&sNC, 0, sizeof(sNC)); + sNC.pParse = pParse; + srcTab = -1; + useTempTable = 0; + nColumn = pList ? pList->nExpr : 0; + for(i=0; ia[i].pExpr) ){ + goto insert_cleanup; + } + } + } + + /* Make sure the number of columns in the source data matches the number + ** of columns to be inserted into the table. + */ + if( pColumn==0 && nColumn && nColumn!=pTab->nCol ){ + sqlite3ErrorMsg(pParse, + "table %S has %d columns but %d values were supplied", + pTabList, 0, pTab->nCol, nColumn); + goto insert_cleanup; + } + if( pColumn!=0 && nColumn!=pColumn->nId ){ + sqlite3ErrorMsg(pParse, "%d values for %d columns", nColumn, pColumn->nId); + goto insert_cleanup; + } + + /* If the INSERT statement included an IDLIST term, then make sure + ** all elements of the IDLIST really are columns of the table and + ** remember the column indices. + ** + ** If the table has an INTEGER PRIMARY KEY column and that column + ** is named in the IDLIST, then record in the keyColumn variable + ** the index into IDLIST of the primary key column. keyColumn is + ** the index of the primary key as it appears in IDLIST, not as + ** is appears in the original table. (The index of the primary + ** key in the original table is pTab->iPKey.) + */ + if( pColumn ){ + for(i=0; inId; i++){ + pColumn->a[i].idx = -1; + } + for(i=0; inId; i++){ + for(j=0; jnCol; j++){ + if( sqlite3StrICmp(pColumn->a[i].zName, pTab->aCol[j].zName)==0 ){ + pColumn->a[i].idx = j; + if( j==pTab->iPKey ){ + keyColumn = i; + } + break; + } + } + if( j>=pTab->nCol ){ + if( sqlite3IsRowid(pColumn->a[i].zName) ){ + keyColumn = i; + }else{ + sqlite3ErrorMsg(pParse, "table %S has no column named %s", + pTabList, 0, pColumn->a[i].zName); + pParse->nErr++; + goto insert_cleanup; + } + } + } + } + + /* If there is no IDLIST term but the table has an integer primary + ** key, the set the keyColumn variable to the primary key column index + ** in the original table definition. + */ + if( pColumn==0 && nColumn>0 ){ + keyColumn = pTab->iPKey; + } + + /* Open the temp table for FOR EACH ROW triggers + */ + if( triggers_exist ){ + sqlite3VdbeAddOp(v, OP_OpenPseudo, newIdx, 0); + sqlite3VdbeAddOp(v, OP_SetNumColumns, newIdx, pTab->nCol); + } + + /* Initialize the count of rows to be inserted + */ + if( db->flags & SQLITE_CountRows ){ + iCntMem = pParse->nMem++; + sqlite3VdbeAddOp(v, OP_MemInt, 0, iCntMem); + } + + /* Open tables and indices if there are no row triggers */ + if( !triggers_exist ){ + base = pParse->nTab; + sqlite3OpenTableAndIndices(pParse, pTab, base, OP_OpenWrite); + } + + /* If the data source is a temporary table, then we have to create + ** a loop because there might be multiple rows of data. If the data + ** source is a subroutine call from the SELECT statement, then we need + ** to launch the SELECT statement processing. + */ + if( useTempTable ){ + iBreak = sqlite3VdbeMakeLabel(v); + sqlite3VdbeAddOp(v, OP_Rewind, srcTab, iBreak); + iCont = sqlite3VdbeCurrentAddr(v); + }else if( pSelect ){ + sqlite3VdbeAddOp(v, OP_Goto, 0, iSelectLoop); + sqlite3VdbeResolveLabel(v, iInsertBlock); + } + + /* Run the BEFORE and INSTEAD OF triggers, if there are any + */ + endOfLoop = sqlite3VdbeMakeLabel(v); + if( triggers_exist & TRIGGER_BEFORE ){ + + /* build the NEW.* reference row. Note that if there is an INTEGER + ** PRIMARY KEY into which a NULL is being inserted, that NULL will be + ** translated into a unique ID for the row. But on a BEFORE trigger, + ** we do not know what the unique ID will be (because the insert has + ** not happened yet) so we substitute a rowid of -1 + */ + if( keyColumn<0 ){ + sqlite3VdbeAddOp(v, OP_Integer, -1, 0); + }else if( useTempTable ){ + sqlite3VdbeAddOp(v, OP_Column, srcTab, keyColumn); + }else{ + assert( pSelect==0 ); /* Otherwise useTempTable is true */ + sqlite3ExprCode(pParse, pList->a[keyColumn].pExpr); + sqlite3VdbeAddOp(v, OP_NotNull, -1, sqlite3VdbeCurrentAddr(v)+3); + sqlite3VdbeAddOp(v, OP_Pop, 1, 0); + sqlite3VdbeAddOp(v, OP_Integer, -1, 0); + sqlite3VdbeAddOp(v, OP_MustBeInt, 0, 0); + } + + /* Create the new column data + */ + for(i=0; inCol; i++){ + if( pColumn==0 ){ + j = i; + }else{ + for(j=0; jnId; j++){ + if( pColumn->a[j].idx==i ) break; + } + } + if( pColumn && j>=pColumn->nId ){ + sqlite3ExprCode(pParse, pTab->aCol[i].pDflt); + }else if( useTempTable ){ + sqlite3VdbeAddOp(v, OP_Column, srcTab, j); + }else{ + assert( pSelect==0 ); /* Otherwise useTempTable is true */ + sqlite3ExprCodeAndCache(pParse, pList->a[j].pExpr); + } + } + sqlite3VdbeAddOp(v, OP_MakeRecord, pTab->nCol, 0); + + /* If this is an INSERT on a view with an INSTEAD OF INSERT trigger, + ** do not attempt any conversions before assembling the record. + ** If this is a real table, attempt conversions as required by the + ** table column affinities. + */ + if( !isView ){ + sqlite3TableAffinityStr(v, pTab); + } + sqlite3VdbeAddOp(v, OP_Insert, newIdx, 0); + + /* Fire BEFORE or INSTEAD OF triggers */ + if( sqlite3CodeRowTrigger(pParse, TK_INSERT, 0, TRIGGER_BEFORE, pTab, + newIdx, -1, onError, endOfLoop) ){ + goto insert_cleanup; + } + } + + /* If any triggers exists, the opening of tables and indices is deferred + ** until now. + */ + if( triggers_exist && !isView ){ + base = pParse->nTab; + sqlite3OpenTableAndIndices(pParse, pTab, base, OP_OpenWrite); + } + + /* Push the record number for the new entry onto the stack. The + ** record number is a randomly generate integer created by NewRowid + ** except when the table has an INTEGER PRIMARY KEY column, in which + ** case the record number is the same as that column. + */ + if( !isView ){ + if( IsVirtual(pTab) ){ + /* The row that the VUpdate opcode will delete: none */ + sqlite3VdbeAddOp(v, OP_Null, 0, 0); + } + if( keyColumn>=0 ){ + if( useTempTable ){ + sqlite3VdbeAddOp(v, OP_Column, srcTab, keyColumn); + }else if( pSelect ){ + sqlite3VdbeAddOp(v, OP_Dup, nColumn - keyColumn - 1, 1); + }else{ + sqlite3ExprCode(pParse, pList->a[keyColumn].pExpr); + } + /* If the PRIMARY KEY expression is NULL, then use OP_NewRowid + ** to generate a unique primary key value. + */ + sqlite3VdbeAddOp(v, OP_NotNull, -1, sqlite3VdbeCurrentAddr(v)+3); + sqlite3VdbeAddOp(v, OP_Pop, 1, 0); + sqlite3VdbeAddOp(v, OP_NewRowid, base, counterMem); + sqlite3VdbeAddOp(v, OP_MustBeInt, 0, 0); + }else if( IsVirtual(pTab) ){ + sqlite3VdbeAddOp(v, OP_Null, 0, 0); + }else{ + sqlite3VdbeAddOp(v, OP_NewRowid, base, counterMem); + } +#ifndef SQLITE_OMIT_AUTOINCREMENT + if( pTab->autoInc ){ + sqlite3VdbeAddOp(v, OP_MemMax, counterMem, 0); + } +#endif /* SQLITE_OMIT_AUTOINCREMENT */ + + /* Push onto the stack, data for all columns of the new entry, beginning + ** with the first column. + */ + for(i=0; inCol; i++){ + if( i==pTab->iPKey ){ + /* The value of the INTEGER PRIMARY KEY column is always a NULL. + ** Whenever this column is read, the record number will be substituted + ** in its place. So will fill this column with a NULL to avoid + ** taking up data space with information that will never be used. */ + sqlite3VdbeAddOp(v, OP_Null, 0, 0); + continue; + } + if( pColumn==0 ){ + j = i; + }else{ + for(j=0; jnId; j++){ + if( pColumn->a[j].idx==i ) break; + } + } + if( nColumn==0 || (pColumn && j>=pColumn->nId) ){ + sqlite3ExprCode(pParse, pTab->aCol[i].pDflt); + }else if( useTempTable ){ + sqlite3VdbeAddOp(v, OP_Column, srcTab, j); + }else if( pSelect ){ + sqlite3VdbeAddOp(v, OP_Dup, i+nColumn-j+IsVirtual(pTab), 1); + }else{ + sqlite3ExprCode(pParse, pList->a[j].pExpr); + } + } + + /* Generate code to check constraints and generate index keys and + ** do the insertion. + */ +#ifndef SQLITE_OMIT_VIRTUALTABLE + if( IsVirtual(pTab) ){ + pParse->pVirtualLock = pTab; + sqlite3VdbeOp3(v, OP_VUpdate, 1, pTab->nCol+2, + (const char*)pTab->pVtab, P3_VTAB); + }else +#endif + { + sqlite3GenerateConstraintChecks(pParse, pTab, base, 0, keyColumn>=0, + 0, onError, endOfLoop); + sqlite3CompleteInsertion(pParse, pTab, base, 0,0,0, + (triggers_exist & TRIGGER_AFTER)!=0 ? newIdx : -1); + } + } + + /* Update the count of rows that are inserted + */ + if( (db->flags & SQLITE_CountRows)!=0 ){ + sqlite3VdbeAddOp(v, OP_MemIncr, 1, iCntMem); + } + + if( triggers_exist ){ + /* Close all tables opened */ + if( !isView ){ + sqlite3VdbeAddOp(v, OP_Close, base, 0); + for(idx=1, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, idx++){ + sqlite3VdbeAddOp(v, OP_Close, idx+base, 0); + } + } + + /* Code AFTER triggers */ + if( sqlite3CodeRowTrigger(pParse, TK_INSERT, 0, TRIGGER_AFTER, pTab, + newIdx, -1, onError, endOfLoop) ){ + goto insert_cleanup; + } + } + + /* The bottom of the loop, if the data source is a SELECT statement + */ + sqlite3VdbeResolveLabel(v, endOfLoop); + if( useTempTable ){ + sqlite3VdbeAddOp(v, OP_Next, srcTab, iCont); + sqlite3VdbeResolveLabel(v, iBreak); + sqlite3VdbeAddOp(v, OP_Close, srcTab, 0); + }else if( pSelect ){ + sqlite3VdbeAddOp(v, OP_Pop, nColumn, 0); + sqlite3VdbeAddOp(v, OP_Return, 0, 0); + sqlite3VdbeResolveLabel(v, iCleanup); + } + + if( !triggers_exist && !IsVirtual(pTab) ){ + /* Close all tables opened */ + sqlite3VdbeAddOp(v, OP_Close, base, 0); + for(idx=1, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, idx++){ + sqlite3VdbeAddOp(v, OP_Close, idx+base, 0); + } + } + +#ifndef SQLITE_OMIT_AUTOINCREMENT + /* Update the sqlite_sequence table by storing the content of the + ** counter value in memory counterMem back into the sqlite_sequence + ** table. + */ + if( pTab->autoInc ){ + int iCur = pParse->nTab; + int addr = sqlite3VdbeCurrentAddr(v); + sqlite3OpenTable(pParse, iCur, iDb, pDb->pSchema->pSeqTab, OP_OpenWrite); + sqlite3VdbeAddOp(v, OP_MemLoad, counterRowid, 0); + sqlite3VdbeAddOp(v, OP_NotNull, -1, addr+7); + sqlite3VdbeAddOp(v, OP_Pop, 1, 0); + sqlite3VdbeAddOp(v, OP_NewRowid, iCur, 0); + sqlite3VdbeOp3(v, OP_String8, 0, 0, pTab->zName, 0); + sqlite3VdbeAddOp(v, OP_MemLoad, counterMem, 0); + sqlite3VdbeAddOp(v, OP_MakeRecord, 2, 0); + sqlite3VdbeAddOp(v, OP_Insert, iCur, 0); + sqlite3VdbeAddOp(v, OP_Close, iCur, 0); + } +#endif + + /* + ** Return the number of rows inserted. If this routine is + ** generating code because of a call to sqlite3NestedParse(), do not + ** invoke the callback function. + */ + if( db->flags & SQLITE_CountRows && pParse->nested==0 && !pParse->trigStack ){ + sqlite3VdbeAddOp(v, OP_MemLoad, iCntMem, 0); + sqlite3VdbeAddOp(v, OP_Callback, 1, 0); + sqlite3VdbeSetNumCols(v, 1); + sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "rows inserted", P3_STATIC); + } + +insert_cleanup: + sqlite3SrcListDelete(pTabList); + sqlite3ExprListDelete(pList); + sqlite3SelectDelete(pSelect); + sqlite3IdListDelete(pColumn); +} + +/* +** Generate code to do a constraint check prior to an INSERT or an UPDATE. +** +** When this routine is called, the stack contains (from bottom to top) +** the following values: +** +** 1. The rowid of the row to be updated before the update. This +** value is omitted unless we are doing an UPDATE that involves a +** change to the record number. +** +** 2. The rowid of the row after the update. +** +** 3. The data in the first column of the entry after the update. +** +** i. Data from middle columns... +** +** N. The data in the last column of the entry after the update. +** +** The old rowid shown as entry (1) above is omitted unless both isUpdate +** and rowidChng are 1. isUpdate is true for UPDATEs and false for +** INSERTs and rowidChng is true if the record number is being changed. +** +** The code generated by this routine pushes additional entries onto +** the stack which are the keys for new index entries for the new record. +** The order of index keys is the same as the order of the indices on +** the pTable->pIndex list. A key is only created for index i if +** aIdxUsed!=0 and aIdxUsed[i]!=0. +** +** This routine also generates code to check constraints. NOT NULL, +** CHECK, and UNIQUE constraints are all checked. If a constraint fails, +** then the appropriate action is performed. There are five possible +** actions: ROLLBACK, ABORT, FAIL, REPLACE, and IGNORE. +** +** Constraint type Action What Happens +** --------------- ---------- ---------------------------------------- +** any ROLLBACK The current transaction is rolled back and +** sqlite3_exec() returns immediately with a +** return code of SQLITE_CONSTRAINT. +** +** any ABORT Back out changes from the current command +** only (do not do a complete rollback) then +** cause sqlite3_exec() to return immediately +** with SQLITE_CONSTRAINT. +** +** any FAIL Sqlite_exec() returns immediately with a +** return code of SQLITE_CONSTRAINT. The +** transaction is not rolled back and any +** prior changes are retained. +** +** any IGNORE The record number and data is popped from +** the stack and there is an immediate jump +** to label ignoreDest. +** +** NOT NULL REPLACE The NULL value is replace by the default +** value for that column. If the default value +** is NULL, the action is the same as ABORT. +** +** UNIQUE REPLACE The other row that conflicts with the row +** being inserted is removed. +** +** CHECK REPLACE Illegal. The results in an exception. +** +** Which action to take is determined by the overrideError parameter. +** Or if overrideError==OE_Default, then the pParse->onError parameter +** is used. Or if pParse->onError==OE_Default then the onError value +** for the constraint is used. +** +** The calling routine must open a read/write cursor for pTab with +** cursor number "base". All indices of pTab must also have open +** read/write cursors with cursor number base+i for the i-th cursor. +** Except, if there is no possibility of a REPLACE action then +** cursors do not need to be open for indices where aIdxUsed[i]==0. +** +** If the isUpdate flag is true, it means that the "base" cursor is +** initially pointing to an entry that is being updated. The isUpdate +** flag causes extra code to be generated so that the "base" cursor +** is still pointing at the same entry after the routine returns. +** Without the isUpdate flag, the "base" cursor might be moved. +*/ +void sqlite3GenerateConstraintChecks( + Parse *pParse, /* The parser context */ + Table *pTab, /* the table into which we are inserting */ + int base, /* Index of a read/write cursor pointing at pTab */ + char *aIdxUsed, /* Which indices are used. NULL means all are used */ + int rowidChng, /* True if the record number will change */ + int isUpdate, /* True for UPDATE, False for INSERT */ + int overrideError, /* Override onError to this if not OE_Default */ + int ignoreDest /* Jump to this label on an OE_Ignore resolution */ +){ + int i; + Vdbe *v; + int nCol; + int onError; + int addr; + int extra; + int iCur; + Index *pIdx; + int seenReplace = 0; + int jumpInst1=0, jumpInst2; + int hasTwoRowids = (isUpdate && rowidChng); + + v = sqlite3GetVdbe(pParse); + assert( v!=0 ); + assert( pTab->pSelect==0 ); /* This table is not a VIEW */ + nCol = pTab->nCol; + + /* Test all NOT NULL constraints. + */ + for(i=0; iiPKey ){ + continue; + } + onError = pTab->aCol[i].notNull; + if( onError==OE_None ) continue; + if( overrideError!=OE_Default ){ + onError = overrideError; + }else if( onError==OE_Default ){ + onError = OE_Abort; + } + if( onError==OE_Replace && pTab->aCol[i].pDflt==0 ){ + onError = OE_Abort; + } + sqlite3VdbeAddOp(v, OP_Dup, nCol-1-i, 1); + addr = sqlite3VdbeAddOp(v, OP_NotNull, 1, 0); + assert( onError==OE_Rollback || onError==OE_Abort || onError==OE_Fail + || onError==OE_Ignore || onError==OE_Replace ); + switch( onError ){ + case OE_Rollback: + case OE_Abort: + case OE_Fail: { + char *zMsg = 0; + sqlite3VdbeAddOp(v, OP_Halt, SQLITE_CONSTRAINT, onError); + sqlite3SetString(&zMsg, pTab->zName, ".", pTab->aCol[i].zName, + " may not be NULL", (char*)0); + sqlite3VdbeChangeP3(v, -1, zMsg, P3_DYNAMIC); + break; + } + case OE_Ignore: { + sqlite3VdbeAddOp(v, OP_Pop, nCol+1+hasTwoRowids, 0); + sqlite3VdbeAddOp(v, OP_Goto, 0, ignoreDest); + break; + } + case OE_Replace: { + sqlite3ExprCode(pParse, pTab->aCol[i].pDflt); + sqlite3VdbeAddOp(v, OP_Push, nCol-i, 0); + break; + } + } + sqlite3VdbeJumpHere(v, addr); + } + + /* Test all CHECK constraints + */ +#ifndef SQLITE_OMIT_CHECK + if( pTab->pCheck && (pParse->db->flags & SQLITE_IgnoreChecks)==0 ){ + int allOk = sqlite3VdbeMakeLabel(v); + assert( pParse->ckOffset==0 ); + pParse->ckOffset = nCol; + sqlite3ExprIfTrue(pParse, pTab->pCheck, allOk, 1); + assert( pParse->ckOffset==nCol ); + pParse->ckOffset = 0; + onError = overrideError!=OE_Default ? overrideError : OE_Abort; + if( onError==OE_Ignore || onError==OE_Replace ){ + sqlite3VdbeAddOp(v, OP_Pop, nCol+1+hasTwoRowids, 0); + sqlite3VdbeAddOp(v, OP_Goto, 0, ignoreDest); + }else{ + sqlite3VdbeAddOp(v, OP_Halt, SQLITE_CONSTRAINT, onError); + } + sqlite3VdbeResolveLabel(v, allOk); + } +#endif /* !defined(SQLITE_OMIT_CHECK) */ + + /* If we have an INTEGER PRIMARY KEY, make sure the primary key + ** of the new record does not previously exist. Except, if this + ** is an UPDATE and the primary key is not changing, that is OK. + */ + if( rowidChng ){ + onError = pTab->keyConf; + if( overrideError!=OE_Default ){ + onError = overrideError; + }else if( onError==OE_Default ){ + onError = OE_Abort; + } + + if( isUpdate ){ + sqlite3VdbeAddOp(v, OP_Dup, nCol+1, 1); + sqlite3VdbeAddOp(v, OP_Dup, nCol+1, 1); + jumpInst1 = sqlite3VdbeAddOp(v, OP_Eq, 0, 0); + } + sqlite3VdbeAddOp(v, OP_Dup, nCol, 1); + jumpInst2 = sqlite3VdbeAddOp(v, OP_NotExists, base, 0); + switch( onError ){ + default: { + onError = OE_Abort; + /* Fall thru into the next case */ + } + case OE_Rollback: + case OE_Abort: + case OE_Fail: { + sqlite3VdbeOp3(v, OP_Halt, SQLITE_CONSTRAINT, onError, + "PRIMARY KEY must be unique", P3_STATIC); + break; + } + case OE_Replace: { + sqlite3GenerateRowIndexDelete(v, pTab, base, 0); + if( isUpdate ){ + sqlite3VdbeAddOp(v, OP_Dup, nCol+hasTwoRowids, 1); + sqlite3VdbeAddOp(v, OP_MoveGe, base, 0); + } + seenReplace = 1; + break; + } + case OE_Ignore: { + assert( seenReplace==0 ); + sqlite3VdbeAddOp(v, OP_Pop, nCol+1+hasTwoRowids, 0); + sqlite3VdbeAddOp(v, OP_Goto, 0, ignoreDest); + break; + } + } + sqlite3VdbeJumpHere(v, jumpInst2); + if( isUpdate ){ + sqlite3VdbeJumpHere(v, jumpInst1); + sqlite3VdbeAddOp(v, OP_Dup, nCol+1, 1); + sqlite3VdbeAddOp(v, OP_MoveGe, base, 0); + } + } + + /* Test all UNIQUE constraints by creating entries for each UNIQUE + ** index and making sure that duplicate entries do not already exist. + ** Add the new records to the indices as we go. + */ + extra = -1; + for(iCur=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, iCur++){ + if( aIdxUsed && aIdxUsed[iCur]==0 ) continue; /* Skip unused indices */ + extra++; + + /* Create a key for accessing the index entry */ + sqlite3VdbeAddOp(v, OP_Dup, nCol+extra, 1); + for(i=0; inColumn; i++){ + int idx = pIdx->aiColumn[i]; + if( idx==pTab->iPKey ){ + sqlite3VdbeAddOp(v, OP_Dup, i+extra+nCol+1, 1); + }else{ + sqlite3VdbeAddOp(v, OP_Dup, i+extra+nCol-idx, 1); + } + } + jumpInst1 = sqlite3VdbeAddOp(v, OP_MakeIdxRec, pIdx->nColumn, 0); + sqlite3IndexAffinityStr(v, pIdx); + + /* Find out what action to take in case there is an indexing conflict */ + onError = pIdx->onError; + if( onError==OE_None ) continue; /* pIdx is not a UNIQUE index */ + if( overrideError!=OE_Default ){ + onError = overrideError; + }else if( onError==OE_Default ){ + onError = OE_Abort; + } + if( seenReplace ){ + if( onError==OE_Ignore ) onError = OE_Replace; + else if( onError==OE_Fail ) onError = OE_Abort; + } + + + /* Check to see if the new index entry will be unique */ + sqlite3VdbeAddOp(v, OP_Dup, extra+nCol+1+hasTwoRowids, 1); + jumpInst2 = sqlite3VdbeAddOp(v, OP_IsUnique, base+iCur+1, 0); + + /* Generate code that executes if the new index entry is not unique */ + assert( onError==OE_Rollback || onError==OE_Abort || onError==OE_Fail + || onError==OE_Ignore || onError==OE_Replace ); + switch( onError ){ + case OE_Rollback: + case OE_Abort: + case OE_Fail: { + int j, n1, n2; + char zErrMsg[200]; + strcpy(zErrMsg, pIdx->nColumn>1 ? "columns " : "column "); + n1 = strlen(zErrMsg); + for(j=0; jnColumn && n1aCol[pIdx->aiColumn[j]].zName; + n2 = strlen(zCol); + if( j>0 ){ + strcpy(&zErrMsg[n1], ", "); + n1 += 2; + } + if( n1+n2>sizeof(zErrMsg)-30 ){ + strcpy(&zErrMsg[n1], "..."); + n1 += 3; + break; + }else{ + strcpy(&zErrMsg[n1], zCol); + n1 += n2; + } + } + strcpy(&zErrMsg[n1], + pIdx->nColumn>1 ? " are not unique" : " is not unique"); + sqlite3VdbeOp3(v, OP_Halt, SQLITE_CONSTRAINT, onError, zErrMsg, 0); + break; + } + case OE_Ignore: { + assert( seenReplace==0 ); + sqlite3VdbeAddOp(v, OP_Pop, nCol+extra+3+hasTwoRowids, 0); + sqlite3VdbeAddOp(v, OP_Goto, 0, ignoreDest); + break; + } + case OE_Replace: { + sqlite3GenerateRowDelete(pParse->db, v, pTab, base, 0); + if( isUpdate ){ + sqlite3VdbeAddOp(v, OP_Dup, nCol+extra+1+hasTwoRowids, 1); + sqlite3VdbeAddOp(v, OP_MoveGe, base, 0); + } + seenReplace = 1; + break; + } + } +#if NULL_DISTINCT_FOR_UNIQUE + sqlite3VdbeJumpHere(v, jumpInst1); +#endif + sqlite3VdbeJumpHere(v, jumpInst2); + } +} + +/* +** This routine generates code to finish the INSERT or UPDATE operation +** that was started by a prior call to sqlite3GenerateConstraintChecks. +** The stack must contain keys for all active indices followed by data +** and the rowid for the new entry. This routine creates the new +** entries in all indices and in the main table. +** +** The arguments to this routine should be the same as the first six +** arguments to sqlite3GenerateConstraintChecks. +*/ +void sqlite3CompleteInsertion( + Parse *pParse, /* The parser context */ + Table *pTab, /* the table into which we are inserting */ + int base, /* Index of a read/write cursor pointing at pTab */ + char *aIdxUsed, /* Which indices are used. NULL means all are used */ + int rowidChng, /* True if the record number will change */ + int isUpdate, /* True for UPDATE, False for INSERT */ + int newIdx /* Index of NEW table for triggers. -1 if none */ +){ + int i; + Vdbe *v; + int nIdx; + Index *pIdx; + int pik_flags; + + v = sqlite3GetVdbe(pParse); + assert( v!=0 ); + assert( pTab->pSelect==0 ); /* This table is not a VIEW */ + for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){} + for(i=nIdx-1; i>=0; i--){ + if( aIdxUsed && aIdxUsed[i]==0 ) continue; + sqlite3VdbeAddOp(v, OP_IdxInsert, base+i+1, 0); + } + sqlite3VdbeAddOp(v, OP_MakeRecord, pTab->nCol, 0); + sqlite3TableAffinityStr(v, pTab); +#ifndef SQLITE_OMIT_TRIGGER + if( newIdx>=0 ){ + sqlite3VdbeAddOp(v, OP_Dup, 1, 0); + sqlite3VdbeAddOp(v, OP_Dup, 1, 0); + sqlite3VdbeAddOp(v, OP_Insert, newIdx, 0); + } +#endif + if( pParse->nested ){ + pik_flags = 0; + }else{ + pik_flags = OPFLAG_NCHANGE; + pik_flags |= (isUpdate?OPFLAG_ISUPDATE:OPFLAG_LASTROWID); + } + sqlite3VdbeAddOp(v, OP_Insert, base, pik_flags); + if( !pParse->nested ){ + sqlite3VdbeChangeP3(v, -1, pTab->zName, P3_STATIC); + } + + if( isUpdate && rowidChng ){ + sqlite3VdbeAddOp(v, OP_Pop, 1, 0); + } +} + +/* +** Generate code that will open cursors for a table and for all +** indices of that table. The "base" parameter is the cursor number used +** for the table. Indices are opened on subsequent cursors. +*/ +void sqlite3OpenTableAndIndices( + Parse *pParse, /* Parsing context */ + Table *pTab, /* Table to be opened */ + int base, /* Cursor number assigned to the table */ + int op /* OP_OpenRead or OP_OpenWrite */ +){ + int i; + int iDb; + Index *pIdx; + Vdbe *v; + + if( IsVirtual(pTab) ) return; + iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); + v = sqlite3GetVdbe(pParse); + assert( v!=0 ); + sqlite3OpenTable(pParse, base, iDb, pTab, op); + for(i=1, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){ + KeyInfo *pKey = sqlite3IndexKeyinfo(pParse, pIdx); + assert( pIdx->pSchema==pTab->pSchema ); + sqlite3VdbeAddOp(v, OP_Integer, iDb, 0); + VdbeComment((v, "# %s", pIdx->zName)); + sqlite3VdbeOp3(v, op, i+base, pIdx->tnum, (char*)pKey, P3_KEYINFO_HANDOFF); + } + if( pParse->nTab<=base+i ){ + pParse->nTab = base+i; + } +} diff --git a/src/dep/src/sqlite/keywordhash.h b/src/dep/src/sqlite/keywordhash.h new file mode 100644 index 0000000..bc0898f --- /dev/null +++ b/src/dep/src/sqlite/keywordhash.h @@ -0,0 +1,98 @@ +/* Hash score: 167 */ +static int keywordCode(const char *z, int n){ + static const char zText[544] = + "ABORTABLEFTEMPORARYADDATABASELECTHENDEFAULTRANSACTIONATURALTER" + "AISEACHECKEYAFTEREFERENCESCAPELSEXCEPTRIGGEREGEXPLAINITIALLYANALYZE" + "XCLUSIVEXISTSTATEMENTANDEFERRABLEATTACHAVINGLOBEFOREIGNOREINDEX" + "AUTOINCREMENTBEGINNERENAMEBETWEENOTNULLIKEBYCASCADEFERREDELETE" + "CASECASTCOLLATECOLUMNCOMMITCONFLICTCONSTRAINTERSECTCREATECROSS" + "CURRENT_DATECURRENT_TIMESTAMPLANDESCDETACHDISTINCTDROPRAGMATCH" + "FAILIMITFROMFULLGROUPDATEIFIMMEDIATEINSERTINSTEADINTOFFSETISNULL" + "JOINORDEREPLACEOUTERESTRICTPRIMARYQUERYRIGHTROLLBACKROWHENUNION" + "UNIQUEUSINGVACUUMVALUESVIEWHEREVIRTUAL"; + static const unsigned char aHash[127] = { + 92, 80, 107, 91, 0, 4, 0, 0, 114, 0, 83, 0, 0, + 95, 44, 76, 93, 0, 106, 109, 97, 90, 0, 10, 0, 0, + 113, 0, 117, 103, 0, 28, 48, 0, 41, 0, 0, 65, 71, + 0, 63, 19, 0, 105, 36, 104, 0, 108, 74, 0, 0, 33, + 0, 61, 37, 0, 8, 0, 115, 38, 12, 0, 77, 40, 25, + 66, 0, 0, 31, 81, 53, 30, 50, 20, 88, 0, 34, 0, + 75, 26, 0, 72, 0, 0, 0, 64, 47, 67, 22, 87, 29, + 69, 86, 0, 1, 0, 9, 101, 58, 18, 0, 112, 82, 99, + 54, 6, 85, 0, 0, 49, 94, 0, 102, 0, 70, 0, 0, + 15, 0, 116, 51, 56, 0, 2, 55, 0, 111, + }; + static const unsigned char aNext[117] = { + 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, + 0, 11, 0, 0, 0, 0, 5, 13, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 23, 52, 0, 0, 0, 0, 45, 0, 59, + 0, 0, 0, 0, 0, 0, 0, 0, 73, 42, 0, 24, 60, + 21, 0, 79, 0, 0, 68, 0, 0, 84, 46, 0, 0, 0, + 0, 0, 0, 0, 0, 39, 96, 98, 0, 0, 100, 0, 32, + 0, 14, 27, 78, 0, 57, 89, 0, 35, 0, 62, 0, 110, + }; + static const unsigned char aLen[117] = { + 5, 5, 4, 4, 9, 2, 3, 8, 2, 6, 4, 3, 7, + 11, 2, 7, 5, 5, 4, 5, 3, 5, 10, 6, 4, 6, + 7, 6, 7, 9, 3, 7, 9, 6, 9, 3, 10, 6, 6, + 4, 6, 3, 7, 6, 7, 5, 13, 2, 2, 5, 5, 6, + 7, 3, 7, 4, 4, 2, 7, 3, 8, 6, 4, 4, 7, + 6, 6, 8, 10, 9, 6, 5, 12, 12, 17, 4, 4, 6, + 8, 2, 4, 6, 5, 4, 5, 4, 4, 5, 6, 2, 9, + 6, 7, 4, 2, 6, 3, 6, 4, 5, 7, 5, 8, 7, + 5, 5, 8, 3, 4, 5, 6, 5, 6, 6, 4, 5, 7, + }; + static const unsigned short int aOffset[117] = { + 0, 4, 7, 10, 10, 14, 19, 21, 26, 27, 32, 34, 36, + 42, 51, 52, 57, 61, 65, 67, 71, 74, 78, 86, 91, 94, + 99, 105, 108, 113, 118, 122, 128, 136, 141, 150, 152, 162, 167, + 172, 175, 177, 177, 181, 185, 187, 192, 194, 196, 205, 208, 212, + 218, 224, 224, 227, 230, 234, 236, 237, 241, 248, 254, 258, 262, + 269, 275, 281, 289, 296, 305, 311, 316, 328, 328, 344, 348, 352, + 358, 359, 366, 369, 373, 378, 381, 386, 390, 394, 397, 403, 405, + 414, 420, 427, 430, 430, 433, 436, 442, 446, 450, 457, 461, 469, + 476, 481, 486, 494, 496, 500, 505, 511, 516, 522, 528, 531, 536, + }; + static const unsigned char aCode[117] = { + TK_ABORT, TK_TABLE, TK_JOIN_KW, TK_TEMP, TK_TEMP, + TK_OR, TK_ADD, TK_DATABASE, TK_AS, TK_SELECT, + TK_THEN, TK_END, TK_DEFAULT, TK_TRANSACTION,TK_ON, + TK_JOIN_KW, TK_ALTER, TK_RAISE, TK_EACH, TK_CHECK, + TK_KEY, TK_AFTER, TK_REFERENCES, TK_ESCAPE, TK_ELSE, + TK_EXCEPT, TK_TRIGGER, TK_LIKE_KW, TK_EXPLAIN, TK_INITIALLY, + TK_ALL, TK_ANALYZE, TK_EXCLUSIVE, TK_EXISTS, TK_STATEMENT, + TK_AND, TK_DEFERRABLE, TK_ATTACH, TK_HAVING, TK_LIKE_KW, + TK_BEFORE, TK_FOR, TK_FOREIGN, TK_IGNORE, TK_REINDEX, + TK_INDEX, TK_AUTOINCR, TK_TO, TK_IN, TK_BEGIN, + TK_JOIN_KW, TK_RENAME, TK_BETWEEN, TK_NOT, TK_NOTNULL, + TK_NULL, TK_LIKE_KW, TK_BY, TK_CASCADE, TK_ASC, + TK_DEFERRED, TK_DELETE, TK_CASE, TK_CAST, TK_COLLATE, + TK_COLUMNKW, TK_COMMIT, TK_CONFLICT, TK_CONSTRAINT, TK_INTERSECT, + TK_CREATE, TK_JOIN_KW, TK_CTIME_KW, TK_CTIME_KW, TK_CTIME_KW, + TK_PLAN, TK_DESC, TK_DETACH, TK_DISTINCT, TK_IS, + TK_DROP, TK_PRAGMA, TK_MATCH, TK_FAIL, TK_LIMIT, + TK_FROM, TK_JOIN_KW, TK_GROUP, TK_UPDATE, TK_IF, + TK_IMMEDIATE, TK_INSERT, TK_INSTEAD, TK_INTO, TK_OF, + TK_OFFSET, TK_SET, TK_ISNULL, TK_JOIN, TK_ORDER, + TK_REPLACE, TK_JOIN_KW, TK_RESTRICT, TK_PRIMARY, TK_QUERY, + TK_JOIN_KW, TK_ROLLBACK, TK_ROW, TK_WHEN, TK_UNION, + TK_UNIQUE, TK_USING, TK_VACUUM, TK_VALUES, TK_VIEW, + TK_WHERE, TK_VIRTUAL, + }; + int h, i; + if( n<2 ) return TK_ID; + h = ((charMap(z[0])*4) ^ + (charMap(z[n-1])*3) ^ + n) % 127; + for(i=((int)aHash[h])-1; i>=0; i=((int)aNext[i])-1){ + if( aLen[i]==n && sqlite3StrNICmp(&zText[aOffset[i]],z,n)==0 ){ + return aCode[i]; + } + } + return TK_ID; +} +int sqlite3KeywordCode(const unsigned char *z, int n){ + return keywordCode((char*)z, n); +} diff --git a/src/dep/src/sqlite/legacy.c b/src/dep/src/sqlite/legacy.c new file mode 100644 index 0000000..a74ad4f --- /dev/null +++ b/src/dep/src/sqlite/legacy.c @@ -0,0 +1,136 @@ +/* +** 2001 September 15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** Main file for the SQLite library. The routines in this file +** implement the programmer interface to the library. Routines in +** other files are for internal use by SQLite and should not be +** accessed by users of the library. +** +** $Id: legacy.c,v 1.16 2006/09/15 07:28:50 drh Exp $ +*/ + +#include "sqliteInt.h" +#include "os.h" +#include + +/* +** Execute SQL code. Return one of the SQLITE_ success/failure +** codes. Also write an error message into memory obtained from +** malloc() and make *pzErrMsg point to that message. +** +** If the SQL is a query, then for each row in the query result +** the xCallback() function is called. pArg becomes the first +** argument to xCallback(). If xCallback=NULL then no callback +** is invoked, even for queries. +*/ +int sqlite3_exec( + sqlite3 *db, /* The database on which the SQL executes */ + const char *zSql, /* The SQL to be executed */ + sqlite3_callback xCallback, /* Invoke this callback routine */ + void *pArg, /* First argument to xCallback() */ + char **pzErrMsg /* Write error messages here */ +){ + int rc = SQLITE_OK; + const char *zLeftover; + sqlite3_stmt *pStmt = 0; + char **azCols = 0; + + int nRetry = 0; + int nChange = 0; + int nCallback; + + if( zSql==0 ) return SQLITE_OK; + while( (rc==SQLITE_OK || (rc==SQLITE_SCHEMA && (++nRetry)<2)) && zSql[0] ){ + int nCol; + char **azVals = 0; + + pStmt = 0; + rc = sqlite3_prepare(db, zSql, -1, &pStmt, &zLeftover); + assert( rc==SQLITE_OK || pStmt==0 ); + if( rc!=SQLITE_OK ){ + continue; + } + if( !pStmt ){ + /* this happens for a comment or white-space */ + zSql = zLeftover; + continue; + } + + db->nChange += nChange; + nCallback = 0; + + nCol = sqlite3_column_count(pStmt); + azCols = sqliteMalloc(2*nCol*sizeof(const char *) + 1); + if( azCols==0 ){ + goto exec_out; + } + + while( 1 ){ + int i; + rc = sqlite3_step(pStmt); + + /* Invoke the callback function if required */ + if( xCallback && (SQLITE_ROW==rc || + (SQLITE_DONE==rc && !nCallback && db->flags&SQLITE_NullCallback)) ){ + if( 0==nCallback ){ + for(i=0; ipVdbe==0 ){ + nChange = db->nChange; + } + if( rc!=SQLITE_SCHEMA ){ + nRetry = 0; + zSql = zLeftover; + while( isspace((unsigned char)zSql[0]) ) zSql++; + } + break; + } + } + + sqliteFree(azCols); + azCols = 0; + } + +exec_out: + if( pStmt ) sqlite3_finalize(pStmt); + if( azCols ) sqliteFree(azCols); + + rc = sqlite3ApiExit(0, rc); + if( rc!=SQLITE_OK && rc==sqlite3_errcode(db) && pzErrMsg ){ + *pzErrMsg = sqlite3_malloc(1+strlen(sqlite3_errmsg(db))); + if( *pzErrMsg ){ + strcpy(*pzErrMsg, sqlite3_errmsg(db)); + } + }else if( pzErrMsg ){ + *pzErrMsg = 0; + } + + assert( (rc&db->errMask)==rc ); + return rc; +} diff --git a/src/dep/src/sqlite/loadext.c b/src/dep/src/sqlite/loadext.c new file mode 100644 index 0000000..095dbcc --- /dev/null +++ b/src/dep/src/sqlite/loadext.c @@ -0,0 +1,408 @@ +/* +** 2006 June 7 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains code used to dynamically load extensions into +** the SQLite library. +*/ +#ifndef SQLITE_OMIT_LOAD_EXTENSION + +#define SQLITE_CORE 1 /* Disable the API redefinition in sqlite3ext.h */ +#include "sqlite3ext.h" +#include "sqliteInt.h" +#include "os.h" +#include +#include + +/* +** Some API routines are omitted when various features are +** excluded from a build of SQLite. Substitute a NULL pointer +** for any missing APIs. +*/ +#ifndef SQLITE_ENABLE_COLUMN_METADATA +# define sqlite3_column_database_name 0 +# define sqlite3_column_database_name16 0 +# define sqlite3_column_table_name 0 +# define sqlite3_column_table_name16 0 +# define sqlite3_column_origin_name 0 +# define sqlite3_column_origin_name16 0 +# define sqlite3_table_column_metadata 0 +#endif + +#ifdef SQLITE_OMIT_AUTHORIZATION +# define sqlite3_set_authorizer 0 +#endif + +#ifdef SQLITE_OMIT_UTF16 +# define sqlite3_bind_text16 0 +# define sqlite3_collation_needed16 0 +# define sqlite3_column_decltype16 0 +# define sqlite3_column_name16 0 +# define sqlite3_column_text16 0 +# define sqlite3_complete16 0 +# define sqlite3_create_collation16 0 +# define sqlite3_create_function16 0 +# define sqlite3_errmsg16 0 +# define sqlite3_open16 0 +# define sqlite3_prepare16 0 +# define sqlite3_result_error16 0 +# define sqlite3_result_text16 0 +# define sqlite3_result_text16be 0 +# define sqlite3_result_text16le 0 +# define sqlite3_value_text16 0 +# define sqlite3_value_text16be 0 +# define sqlite3_value_text16le 0 +#endif + +#ifdef SQLITE_OMIT_COMPLETE +# define sqlite3_complete 0 +# define sqlite3_complete16 0 +#endif + +#ifdef SQLITE_OMIT_PROGRESS_CALLBACK +# define sqlite3_progress_handler 0 +#endif + +#ifdef SQLITE_OMIT_VIRTUALTABLE +# define sqlite3_create_module 0 +# define sqlite3_declare_vtab 0 +#endif + +/* +** The following structure contains pointers to all SQLite API routines. +** A pointer to this structure is passed into extensions when they are +** loaded so that the extension can make calls back into the SQLite +** library. +** +** When adding new APIs, add them to the bottom of this structure +** in order to preserve backwards compatibility. +** +** Extensions that use newer APIs should first call the +** sqlite3_libversion_number() to make sure that the API they +** intend to use is supported by the library. Extensions should +** also check to make sure that the pointer to the function is +** not NULL before calling it. +*/ +const sqlite3_api_routines sqlite3_apis = { + sqlite3_aggregate_context, + sqlite3_aggregate_count, + sqlite3_bind_blob, + sqlite3_bind_double, + sqlite3_bind_int, + sqlite3_bind_int64, + sqlite3_bind_null, + sqlite3_bind_parameter_count, + sqlite3_bind_parameter_index, + sqlite3_bind_parameter_name, + sqlite3_bind_text, + sqlite3_bind_text16, + sqlite3_bind_value, + sqlite3_busy_handler, + sqlite3_busy_timeout, + sqlite3_changes, + sqlite3_close, + sqlite3_collation_needed, + sqlite3_collation_needed16, + sqlite3_column_blob, + sqlite3_column_bytes, + sqlite3_column_bytes16, + sqlite3_column_count, + sqlite3_column_database_name, + sqlite3_column_database_name16, + sqlite3_column_decltype, + sqlite3_column_decltype16, + sqlite3_column_double, + sqlite3_column_int, + sqlite3_column_int64, + sqlite3_column_name, + sqlite3_column_name16, + sqlite3_column_origin_name, + sqlite3_column_origin_name16, + sqlite3_column_table_name, + sqlite3_column_table_name16, + sqlite3_column_text, + sqlite3_column_text16, + sqlite3_column_type, + sqlite3_column_value, + sqlite3_commit_hook, + sqlite3_complete, + sqlite3_complete16, + sqlite3_create_collation, + sqlite3_create_collation16, + sqlite3_create_function, + sqlite3_create_function16, + sqlite3_create_module, + sqlite3_data_count, + sqlite3_db_handle, + sqlite3_declare_vtab, + sqlite3_enable_shared_cache, + sqlite3_errcode, + sqlite3_errmsg, + sqlite3_errmsg16, + sqlite3_exec, + sqlite3_expired, + sqlite3_finalize, + sqlite3_free, + sqlite3_free_table, + sqlite3_get_autocommit, + sqlite3_get_auxdata, + sqlite3_get_table, + sqlite3_global_recover, + sqlite3_interrupt, + sqlite3_last_insert_rowid, + sqlite3_libversion, + sqlite3_libversion_number, + sqlite3_malloc, + sqlite3_mprintf, + sqlite3_open, + sqlite3_open16, + sqlite3_prepare, + sqlite3_prepare16, + sqlite3_profile, + sqlite3_progress_handler, + sqlite3_realloc, + sqlite3_reset, + sqlite3_result_blob, + sqlite3_result_double, + sqlite3_result_error, + sqlite3_result_error16, + sqlite3_result_int, + sqlite3_result_int64, + sqlite3_result_null, + sqlite3_result_text, + sqlite3_result_text16, + sqlite3_result_text16be, + sqlite3_result_text16le, + sqlite3_result_value, + sqlite3_rollback_hook, + sqlite3_set_authorizer, + sqlite3_set_auxdata, + sqlite3_snprintf, + sqlite3_step, + sqlite3_table_column_metadata, + sqlite3_thread_cleanup, + sqlite3_total_changes, + sqlite3_trace, + sqlite3_transfer_bindings, + sqlite3_update_hook, + sqlite3_user_data, + sqlite3_value_blob, + sqlite3_value_bytes, + sqlite3_value_bytes16, + sqlite3_value_double, + sqlite3_value_int, + sqlite3_value_int64, + sqlite3_value_numeric_type, + sqlite3_value_text, + sqlite3_value_text16, + sqlite3_value_text16be, + sqlite3_value_text16le, + sqlite3_value_type, + sqlite3_vmprintf, + /* + ** The original API set ends here. All extensions can call any + ** of the APIs above provided that the pointer is not NULL. But + ** before calling APIs that follow, extension should check the + ** sqlite3_libversion_number() to make sure they are dealing with + ** a library that is new enough to support that API. + ************************************************************************* + */ + sqlite3_overload_function, +}; + +/* +** Attempt to load an SQLite extension library contained in the file +** zFile. The entry point is zProc. zProc may be 0 in which case a +** default entry point name (sqlite3_extension_init) is used. Use +** of the default name is recommended. +** +** Return SQLITE_OK on success and SQLITE_ERROR if something goes wrong. +** +** If an error occurs and pzErrMsg is not 0, then fill *pzErrMsg with +** error message text. The calling function should free this memory +** by calling sqlite3_free(). +*/ +int sqlite3_load_extension( + sqlite3 *db, /* Load the extension into this database connection */ + const char *zFile, /* Name of the shared library containing extension */ + const char *zProc, /* Entry point. Use "sqlite3_extension_init" if 0 */ + char **pzErrMsg /* Put error message here if not 0 */ +){ + void *handle; + int (*xInit)(sqlite3*,char**,const sqlite3_api_routines*); + char *zErrmsg = 0; + void **aHandle; + + /* Ticket #1863. To avoid a creating security problems for older + ** applications that relink against newer versions of SQLite, the + ** ability to run load_extension is turned off by default. One + ** must call sqlite3_enable_load_extension() to turn on extension + ** loading. Otherwise you get the following error. + */ + if( (db->flags & SQLITE_LoadExtension)==0 ){ + if( pzErrMsg ){ + *pzErrMsg = sqlite3_mprintf("not authorized"); + } + return SQLITE_ERROR; + } + + if( zProc==0 ){ + zProc = "sqlite3_extension_init"; + } + + handle = sqlite3OsDlopen(zFile); + if( handle==0 ){ + if( pzErrMsg ){ + *pzErrMsg = sqlite3_mprintf("unable to open shared library [%s]", zFile); + } + return SQLITE_ERROR; + } + xInit = (int(*)(sqlite3*,char**,const sqlite3_api_routines*)) + sqlite3OsDlsym(handle, zProc); + if( xInit==0 ){ + if( pzErrMsg ){ + *pzErrMsg = sqlite3_mprintf("no entry point [%s] in shared library [%s]", + zProc, zFile); + } + sqlite3OsDlclose(handle); + return SQLITE_ERROR; + }else if( xInit(db, &zErrmsg, &sqlite3_apis) ){ + if( pzErrMsg ){ + *pzErrMsg = sqlite3_mprintf("error during initialization: %s", zErrmsg); + } + sqlite3_free(zErrmsg); + sqlite3OsDlclose(handle); + return SQLITE_ERROR; + } + + /* Append the new shared library handle to the db->aExtension array. */ + db->nExtension++; + aHandle = sqliteMalloc(sizeof(handle)*db->nExtension); + if( aHandle==0 ){ + return SQLITE_NOMEM; + } + if( db->nExtension>0 ){ + memcpy(aHandle, db->aExtension, sizeof(handle)*(db->nExtension-1)); + } + sqliteFree(db->aExtension); + db->aExtension = aHandle; + + db->aExtension[db->nExtension-1] = handle; + return SQLITE_OK; +} + +/* +** Call this routine when the database connection is closing in order +** to clean up loaded extensions +*/ +void sqlite3CloseExtensions(sqlite3 *db){ + int i; + for(i=0; inExtension; i++){ + sqlite3OsDlclose(db->aExtension[i]); + } + sqliteFree(db->aExtension); +} + +/* +** Enable or disable extension loading. Extension loading is disabled by +** default so as not to open security holes in older applications. +*/ +int sqlite3_enable_load_extension(sqlite3 *db, int onoff){ + if( onoff ){ + db->flags |= SQLITE_LoadExtension; + }else{ + db->flags &= ~SQLITE_LoadExtension; + } + return SQLITE_OK; +} + +/* +** A list of automatically loaded extensions. +** +** This list is shared across threads, so be sure to hold the +** mutex while accessing or changing it. +*/ +static int nAutoExtension = 0; +static void **aAutoExtension = 0; + + +/* +** Register a statically linked extension that is automatically +** loaded by every new database connection. +*/ +int sqlite3_auto_extension(void *xInit){ + int i; + int rc = SQLITE_OK; + sqlite3OsEnterMutex(); + for(i=0; i=nAutoExtension ){ + xInit = 0; + go = 0; + }else{ + xInit = (int(*)(sqlite3*,char**,const sqlite3_api_routines*)) + aAutoExtension[i]; + } + sqlite3OsLeaveMutex(); + if( xInit && xInit(db, &zErrmsg, &sqlite3_apis) ){ + sqlite3Error(db, SQLITE_ERROR, + "automatic extension loading failed: %s", zErrmsg); + go = 0; + rc = SQLITE_ERROR; + } + } + return rc; +} + +#endif /* SQLITE_OMIT_LOAD_EXTENSION */ diff --git a/src/dep/src/sqlite/main.c b/src/dep/src/sqlite/main.c new file mode 100644 index 0000000..2e30150 --- /dev/null +++ b/src/dep/src/sqlite/main.c @@ -0,0 +1,1342 @@ +/* +** 2001 September 15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** Main file for the SQLite library. The routines in this file +** implement the programmer interface to the library. Routines in +** other files are for internal use by SQLite and should not be +** accessed by users of the library. +** +** $Id: main.c,v 1.360 2006/12/19 18:57:11 drh Exp $ +*/ +#include "sqliteInt.h" +#include "os.h" +#include + +/* +** The following constant value is used by the SQLITE_BIGENDIAN and +** SQLITE_LITTLEENDIAN macros. +*/ +const int sqlite3one = 1; + +/* +** The version of the library +*/ +const char sqlite3_version[] = SQLITE_VERSION; +const char *sqlite3_libversion(void){ return sqlite3_version; } +int sqlite3_libversion_number(void){ return SQLITE_VERSION_NUMBER; } + +/* +** This is the default collating function named "BINARY" which is always +** available. +*/ +static int binCollFunc( + void *NotUsed, + int nKey1, const void *pKey1, + int nKey2, const void *pKey2 +){ + int rc, n; + n = nKey1lastRowid; +} + +/* +** Return the number of changes in the most recent call to sqlite3_exec(). +*/ +int sqlite3_changes(sqlite3 *db){ + return db->nChange; +} + +/* +** Return the number of changes since the database handle was opened. +*/ +int sqlite3_total_changes(sqlite3 *db){ + return db->nTotalChange; +} + +/* +** Close an existing SQLite database +*/ +int sqlite3_close(sqlite3 *db){ + HashElem *i; + int j; + + if( !db ){ + return SQLITE_OK; + } + if( sqlite3SafetyCheck(db) ){ + return SQLITE_MISUSE; + } + +#ifdef SQLITE_SSE + { + extern void sqlite3SseCleanup(sqlite3*); + sqlite3SseCleanup(db); + } +#endif + + /* If there are any outstanding VMs, return SQLITE_BUSY. */ + sqlite3ResetInternalSchema(db, 0); + if( db->pVdbe ){ + sqlite3Error(db, SQLITE_BUSY, + "Unable to close due to unfinalised statements"); + return SQLITE_BUSY; + } + assert( !sqlite3SafetyCheck(db) ); + + /* FIX ME: db->magic may be set to SQLITE_MAGIC_CLOSED if the database + ** cannot be opened for some reason. So this routine needs to run in + ** that case. But maybe there should be an extra magic value for the + ** "failed to open" state. + */ + if( db->magic!=SQLITE_MAGIC_CLOSED && sqlite3SafetyOn(db) ){ + /* printf("DID NOT CLOSE\n"); fflush(stdout); */ + return SQLITE_ERROR; + } + + sqlite3VtabRollback(db); + + for(j=0; jnDb; j++){ + struct Db *pDb = &db->aDb[j]; + if( pDb->pBt ){ + sqlite3BtreeClose(pDb->pBt); + pDb->pBt = 0; + if( j!=1 ){ + pDb->pSchema = 0; + } + } + } + sqlite3ResetInternalSchema(db, 0); + assert( db->nDb<=2 ); + assert( db->aDb==db->aDbStatic ); + for(i=sqliteHashFirst(&db->aFunc); i; i=sqliteHashNext(i)){ + FuncDef *pFunc, *pNext; + for(pFunc = (FuncDef*)sqliteHashData(i); pFunc; pFunc=pNext){ + pNext = pFunc->pNext; + sqliteFree(pFunc); + } + } + + for(i=sqliteHashFirst(&db->aCollSeq); i; i=sqliteHashNext(i)){ + CollSeq *pColl = (CollSeq *)sqliteHashData(i); + sqliteFree(pColl); + } + sqlite3HashClear(&db->aCollSeq); +#ifndef SQLITE_OMIT_VIRTUALTABLE + for(i=sqliteHashFirst(&db->aModule); i; i=sqliteHashNext(i)){ + Module *pMod = (Module *)sqliteHashData(i); + sqliteFree(pMod); + } + sqlite3HashClear(&db->aModule); +#endif + + sqlite3HashClear(&db->aFunc); + sqlite3Error(db, SQLITE_OK, 0); /* Deallocates any cached error strings. */ + if( db->pErr ){ + sqlite3ValueFree(db->pErr); + } + sqlite3CloseExtensions(db); + + db->magic = SQLITE_MAGIC_ERROR; + + /* The temp-database schema is allocated differently from the other schema + ** objects (using sqliteMalloc() directly, instead of sqlite3BtreeSchema()). + ** So it needs to be freed here. Todo: Why not roll the temp schema into + ** the same sqliteMalloc() as the one that allocates the database + ** structure? + */ + sqliteFree(db->aDb[1].pSchema); + sqliteFree(db); + sqlite3ReleaseThreadData(); + return SQLITE_OK; +} + +/* +** Rollback all database files. +*/ +void sqlite3RollbackAll(sqlite3 *db){ + int i; + int inTrans = 0; + for(i=0; inDb; i++){ + if( db->aDb[i].pBt ){ + if( sqlite3BtreeIsInTrans(db->aDb[i].pBt) ){ + inTrans = 1; + } + sqlite3BtreeRollback(db->aDb[i].pBt); + db->aDb[i].inTrans = 0; + } + } + sqlite3VtabRollback(db); + if( db->flags&SQLITE_InternChanges ){ + sqlite3ResetInternalSchema(db, 0); + } + + /* If one has been configured, invoke the rollback-hook callback */ + if( db->xRollbackCallback && (inTrans || !db->autoCommit) ){ + db->xRollbackCallback(db->pRollbackArg); + } +} + +/* +** Return a static string that describes the kind of error specified in the +** argument. +*/ +const char *sqlite3ErrStr(int rc){ + const char *z; + switch( rc & 0xff ){ + case SQLITE_ROW: + case SQLITE_DONE: + case SQLITE_OK: z = "not an error"; break; + case SQLITE_ERROR: z = "SQL logic error or missing database"; break; + case SQLITE_PERM: z = "access permission denied"; break; + case SQLITE_ABORT: z = "callback requested query abort"; break; + case SQLITE_BUSY: z = "database is locked"; break; + case SQLITE_LOCKED: z = "database table is locked"; break; + case SQLITE_NOMEM: z = "out of memory"; break; + case SQLITE_READONLY: z = "attempt to write a readonly database"; break; + case SQLITE_INTERRUPT: z = "interrupted"; break; + case SQLITE_IOERR: z = "disk I/O error"; break; + case SQLITE_CORRUPT: z = "database disk image is malformed"; break; + case SQLITE_FULL: z = "database or disk is full"; break; + case SQLITE_CANTOPEN: z = "unable to open database file"; break; + case SQLITE_PROTOCOL: z = "database locking protocol failure"; break; + case SQLITE_EMPTY: z = "table contains no data"; break; + case SQLITE_SCHEMA: z = "database schema has changed"; break; + case SQLITE_CONSTRAINT: z = "constraint failed"; break; + case SQLITE_MISMATCH: z = "datatype mismatch"; break; + case SQLITE_MISUSE: z = "library routine called out of sequence";break; + case SQLITE_NOLFS: z = "kernel lacks large file support"; break; + case SQLITE_AUTH: z = "authorization denied"; break; + case SQLITE_FORMAT: z = "auxiliary database format error"; break; + case SQLITE_RANGE: z = "bind or column index out of range"; break; + case SQLITE_NOTADB: z = "file is encrypted or is not a database";break; + default: z = "unknown error"; break; + } + return z; +} + +/* +** This routine implements a busy callback that sleeps and tries +** again until a timeout value is reached. The timeout value is +** an integer number of milliseconds passed in as the first +** argument. +*/ +static int sqliteDefaultBusyCallback( + void *ptr, /* Database connection */ + int count /* Number of times table has been busy */ +){ +#if OS_WIN || (defined(HAVE_USLEEP) && HAVE_USLEEP) + static const u8 delays[] = + { 1, 2, 5, 10, 15, 20, 25, 25, 25, 50, 50, 100 }; + static const u8 totals[] = + { 0, 1, 3, 8, 18, 33, 53, 78, 103, 128, 178, 228 }; +# define NDELAY (sizeof(delays)/sizeof(delays[0])) + int timeout = ((sqlite3 *)ptr)->busyTimeout; + int delay, prior; + + assert( count>=0 ); + if( count < NDELAY ){ + delay = delays[count]; + prior = totals[count]; + }else{ + delay = delays[NDELAY-1]; + prior = totals[NDELAY-1] + delay*(count-(NDELAY-1)); + } + if( prior + delay > timeout ){ + delay = timeout - prior; + if( delay<=0 ) return 0; + } + sqlite3OsSleep(delay); + return 1; +#else + int timeout = ((sqlite3 *)ptr)->busyTimeout; + if( (count+1)*1000 > timeout ){ + return 0; + } + sqlite3OsSleep(1000); + return 1; +#endif +} + +/* +** Invoke the given busy handler. +** +** This routine is called when an operation failed with a lock. +** If this routine returns non-zero, the lock is retried. If it +** returns 0, the operation aborts with an SQLITE_BUSY error. +*/ +int sqlite3InvokeBusyHandler(BusyHandler *p){ + int rc; + if( p==0 || p->xFunc==0 || p->nBusy<0 ) return 0; + rc = p->xFunc(p->pArg, p->nBusy); + if( rc==0 ){ + p->nBusy = -1; + }else{ + p->nBusy++; + } + return rc; +} + +/* +** This routine sets the busy callback for an Sqlite database to the +** given callback function with the given argument. +*/ +int sqlite3_busy_handler( + sqlite3 *db, + int (*xBusy)(void*,int), + void *pArg +){ + if( sqlite3SafetyCheck(db) ){ + return SQLITE_MISUSE; + } + db->busyHandler.xFunc = xBusy; + db->busyHandler.pArg = pArg; + db->busyHandler.nBusy = 0; + return SQLITE_OK; +} + +#ifndef SQLITE_OMIT_PROGRESS_CALLBACK +/* +** This routine sets the progress callback for an Sqlite database to the +** given callback function with the given argument. The progress callback will +** be invoked every nOps opcodes. +*/ +void sqlite3_progress_handler( + sqlite3 *db, + int nOps, + int (*xProgress)(void*), + void *pArg +){ + if( !sqlite3SafetyCheck(db) ){ + if( nOps>0 ){ + db->xProgress = xProgress; + db->nProgressOps = nOps; + db->pProgressArg = pArg; + }else{ + db->xProgress = 0; + db->nProgressOps = 0; + db->pProgressArg = 0; + } + } +} +#endif + + +/* +** This routine installs a default busy handler that waits for the +** specified number of milliseconds before returning 0. +*/ +int sqlite3_busy_timeout(sqlite3 *db, int ms){ + if( sqlite3SafetyCheck(db) ){ + return SQLITE_MISUSE; + } + if( ms>0 ){ + db->busyTimeout = ms; + sqlite3_busy_handler(db, sqliteDefaultBusyCallback, (void*)db); + }else{ + sqlite3_busy_handler(db, 0, 0); + } + return SQLITE_OK; +} + +/* +** Cause any pending operation to stop at its earliest opportunity. +*/ +void sqlite3_interrupt(sqlite3 *db){ + if( db && (db->magic==SQLITE_MAGIC_OPEN || db->magic==SQLITE_MAGIC_BUSY) ){ + db->u1.isInterrupted = 1; + } +} + +/* +** Memory allocation routines that use SQLites internal memory +** memory allocator. Depending on how SQLite is compiled, the +** internal memory allocator might be just an alias for the +** system default malloc/realloc/free. Or the built-in allocator +** might do extra stuff like put sentinals around buffers to +** check for overruns or look for memory leaks. +** +** Use sqlite3_free() to free memory returned by sqlite3_mprintf(). +*/ +void sqlite3_free(void *p){ if( p ) sqlite3OsFree(p); } +void *sqlite3_malloc(int nByte){ return nByte>0 ? sqlite3OsMalloc(nByte) : 0; } +void *sqlite3_realloc(void *pOld, int nByte){ + if( pOld ){ + if( nByte>0 ){ + return sqlite3OsRealloc(pOld, nByte); + }else{ + sqlite3OsFree(pOld); + return 0; + } + }else{ + return sqlite3_malloc(nByte); + } +} + +/* +** This function is exactly the same as sqlite3_create_function(), except +** that it is designed to be called by internal code. The difference is +** that if a malloc() fails in sqlite3_create_function(), an error code +** is returned and the mallocFailed flag cleared. +*/ +int sqlite3CreateFunc( + sqlite3 *db, + const char *zFunctionName, + int nArg, + int enc, + void *pUserData, + void (*xFunc)(sqlite3_context*,int,sqlite3_value **), + void (*xStep)(sqlite3_context*,int,sqlite3_value **), + void (*xFinal)(sqlite3_context*) +){ + FuncDef *p; + int nName; + + if( sqlite3SafetyCheck(db) ){ + return SQLITE_MISUSE; + } + if( zFunctionName==0 || + (xFunc && (xFinal || xStep)) || + (!xFunc && (xFinal && !xStep)) || + (!xFunc && (!xFinal && xStep)) || + (nArg<-1 || nArg>127) || + (255<(nName = strlen(zFunctionName))) ){ + sqlite3Error(db, SQLITE_ERROR, "bad parameters"); + return SQLITE_ERROR; + } + +#ifndef SQLITE_OMIT_UTF16 + /* If SQLITE_UTF16 is specified as the encoding type, transform this + ** to one of SQLITE_UTF16LE or SQLITE_UTF16BE using the + ** SQLITE_UTF16NATIVE macro. SQLITE_UTF16 is not used internally. + ** + ** If SQLITE_ANY is specified, add three versions of the function + ** to the hash table. + */ + if( enc==SQLITE_UTF16 ){ + enc = SQLITE_UTF16NATIVE; + }else if( enc==SQLITE_ANY ){ + int rc; + rc = sqlite3CreateFunc(db, zFunctionName, nArg, SQLITE_UTF8, + pUserData, xFunc, xStep, xFinal); + if( rc!=SQLITE_OK ) return rc; + rc = sqlite3CreateFunc(db, zFunctionName, nArg, SQLITE_UTF16LE, + pUserData, xFunc, xStep, xFinal); + if( rc!=SQLITE_OK ) return rc; + enc = SQLITE_UTF16BE; + } +#else + enc = SQLITE_UTF8; +#endif + + /* Check if an existing function is being overridden or deleted. If so, + ** and there are active VMs, then return SQLITE_BUSY. If a function + ** is being overridden/deleted but there are no active VMs, allow the + ** operation to continue but invalidate all precompiled statements. + */ + p = sqlite3FindFunction(db, zFunctionName, nName, nArg, enc, 0); + if( p && p->iPrefEnc==enc && p->nArg==nArg ){ + if( db->activeVdbeCnt ){ + sqlite3Error(db, SQLITE_BUSY, + "Unable to delete/modify user-function due to active statements"); + assert( !sqlite3MallocFailed() ); + return SQLITE_BUSY; + }else{ + sqlite3ExpirePreparedStatements(db); + } + } + + p = sqlite3FindFunction(db, zFunctionName, nName, nArg, enc, 1); + if( p ){ + p->flags = 0; + p->xFunc = xFunc; + p->xStep = xStep; + p->xFinalize = xFinal; + p->pUserData = pUserData; + p->nArg = nArg; + } + return SQLITE_OK; +} + +/* +** Create new user functions. +*/ +int sqlite3_create_function( + sqlite3 *db, + const char *zFunctionName, + int nArg, + int enc, + void *p, + void (*xFunc)(sqlite3_context*,int,sqlite3_value **), + void (*xStep)(sqlite3_context*,int,sqlite3_value **), + void (*xFinal)(sqlite3_context*) +){ + int rc; + assert( !sqlite3MallocFailed() ); + rc = sqlite3CreateFunc(db, zFunctionName, nArg, enc, p, xFunc, xStep, xFinal); + + return sqlite3ApiExit(db, rc); +} + +#ifndef SQLITE_OMIT_UTF16 +int sqlite3_create_function16( + sqlite3 *db, + const void *zFunctionName, + int nArg, + int eTextRep, + void *p, + void (*xFunc)(sqlite3_context*,int,sqlite3_value**), + void (*xStep)(sqlite3_context*,int,sqlite3_value**), + void (*xFinal)(sqlite3_context*) +){ + int rc; + char *zFunc8; + assert( !sqlite3MallocFailed() ); + + zFunc8 = sqlite3utf16to8(zFunctionName, -1); + rc = sqlite3CreateFunc(db, zFunc8, nArg, eTextRep, p, xFunc, xStep, xFinal); + sqliteFree(zFunc8); + + return sqlite3ApiExit(db, rc); +} +#endif + + +/* +** Declare that a function has been overloaded by a virtual table. +** +** If the function already exists as a regular global function, then +** this routine is a no-op. If the function does not exist, then create +** a new one that always throws a run-time error. +** +** When virtual tables intend to provide an overloaded function, they +** should call this routine to make sure the global function exists. +** A global function must exist in order for name resolution to work +** properly. +*/ +int sqlite3_overload_function( + sqlite3 *db, + const char *zName, + int nArg +){ + int nName = strlen(zName); + if( sqlite3FindFunction(db, zName, nName, nArg, SQLITE_UTF8, 0)==0 ){ + sqlite3CreateFunc(db, zName, nArg, SQLITE_UTF8, + 0, sqlite3InvalidFunction, 0, 0); + } + return sqlite3ApiExit(db, SQLITE_OK); +} + +#ifndef SQLITE_OMIT_TRACE +/* +** Register a trace function. The pArg from the previously registered trace +** is returned. +** +** A NULL trace function means that no tracing is executes. A non-NULL +** trace is a pointer to a function that is invoked at the start of each +** SQL statement. +*/ +void *sqlite3_trace(sqlite3 *db, void (*xTrace)(void*,const char*), void *pArg){ + void *pOld = db->pTraceArg; + db->xTrace = xTrace; + db->pTraceArg = pArg; + return pOld; +} +/* +** Register a profile function. The pArg from the previously registered +** profile function is returned. +** +** A NULL profile function means that no profiling is executes. A non-NULL +** profile is a pointer to a function that is invoked at the conclusion of +** each SQL statement that is run. +*/ +void *sqlite3_profile( + sqlite3 *db, + void (*xProfile)(void*,const char*,sqlite_uint64), + void *pArg +){ + void *pOld = db->pProfileArg; + db->xProfile = xProfile; + db->pProfileArg = pArg; + return pOld; +} +#endif /* SQLITE_OMIT_TRACE */ + +/*** EXPERIMENTAL *** +** +** Register a function to be invoked when a transaction comments. +** If the invoked function returns non-zero, then the commit becomes a +** rollback. +*/ +void *sqlite3_commit_hook( + sqlite3 *db, /* Attach the hook to this database */ + int (*xCallback)(void*), /* Function to invoke on each commit */ + void *pArg /* Argument to the function */ +){ + void *pOld = db->pCommitArg; + db->xCommitCallback = xCallback; + db->pCommitArg = pArg; + return pOld; +} + +/* +** Register a callback to be invoked each time a row is updated, +** inserted or deleted using this database connection. +*/ +void *sqlite3_update_hook( + sqlite3 *db, /* Attach the hook to this database */ + void (*xCallback)(void*,int,char const *,char const *,sqlite_int64), + void *pArg /* Argument to the function */ +){ + void *pRet = db->pUpdateArg; + db->xUpdateCallback = xCallback; + db->pUpdateArg = pArg; + return pRet; +} + +/* +** Register a callback to be invoked each time a transaction is rolled +** back by this database connection. +*/ +void *sqlite3_rollback_hook( + sqlite3 *db, /* Attach the hook to this database */ + void (*xCallback)(void*), /* Callback function */ + void *pArg /* Argument to the function */ +){ + void *pRet = db->pRollbackArg; + db->xRollbackCallback = xCallback; + db->pRollbackArg = pArg; + return pRet; +} + +/* +** This routine is called to create a connection to a database BTree +** driver. If zFilename is the name of a file, then that file is +** opened and used. If zFilename is the magic name ":memory:" then +** the database is stored in memory (and is thus forgotten as soon as +** the connection is closed.) If zFilename is NULL then the database +** is a "virtual" database for transient use only and is deleted as +** soon as the connection is closed. +** +** A virtual database can be either a disk file (that is automatically +** deleted when the file is closed) or it an be held entirely in memory, +** depending on the values of the TEMP_STORE compile-time macro and the +** db->temp_store variable, according to the following chart: +** +** TEMP_STORE db->temp_store Location of temporary database +** ---------- -------------- ------------------------------ +** 0 any file +** 1 1 file +** 1 2 memory +** 1 0 file +** 2 1 file +** 2 2 memory +** 2 0 memory +** 3 any memory +*/ +int sqlite3BtreeFactory( + const sqlite3 *db, /* Main database when opening aux otherwise 0 */ + const char *zFilename, /* Name of the file containing the BTree database */ + int omitJournal, /* if TRUE then do not journal this file */ + int nCache, /* How many pages in the page cache */ + Btree **ppBtree /* Pointer to new Btree object written here */ +){ + int btree_flags = 0; + int rc; + + assert( ppBtree != 0); + if( omitJournal ){ + btree_flags |= BTREE_OMIT_JOURNAL; + } + if( db->flags & SQLITE_NoReadlock ){ + btree_flags |= BTREE_NO_READLOCK; + } + if( zFilename==0 ){ +#if TEMP_STORE==0 + /* Do nothing */ +#endif +#ifndef SQLITE_OMIT_MEMORYDB +#if TEMP_STORE==1 + if( db->temp_store==2 ) zFilename = ":memory:"; +#endif +#if TEMP_STORE==2 + if( db->temp_store!=1 ) zFilename = ":memory:"; +#endif +#if TEMP_STORE==3 + zFilename = ":memory:"; +#endif +#endif /* SQLITE_OMIT_MEMORYDB */ + } + + rc = sqlite3BtreeOpen(zFilename, (sqlite3 *)db, ppBtree, btree_flags); + if( rc==SQLITE_OK ){ + sqlite3BtreeSetBusyHandler(*ppBtree, (void*)&db->busyHandler); + sqlite3BtreeSetCacheSize(*ppBtree, nCache); + } + return rc; +} + +/* +** Return UTF-8 encoded English language explanation of the most recent +** error. +*/ +const char *sqlite3_errmsg(sqlite3 *db){ + const char *z; + if( !db || sqlite3MallocFailed() ){ + return sqlite3ErrStr(SQLITE_NOMEM); + } + if( sqlite3SafetyCheck(db) || db->errCode==SQLITE_MISUSE ){ + return sqlite3ErrStr(SQLITE_MISUSE); + } + z = (char*)sqlite3_value_text(db->pErr); + if( z==0 ){ + z = sqlite3ErrStr(db->errCode); + } + return z; +} + +#ifndef SQLITE_OMIT_UTF16 +/* +** Return UTF-16 encoded English language explanation of the most recent +** error. +*/ +const void *sqlite3_errmsg16(sqlite3 *db){ + /* Because all the characters in the string are in the unicode + ** range 0x00-0xFF, if we pad the big-endian string with a + ** zero byte, we can obtain the little-endian string with + ** &big_endian[1]. + */ + static const char outOfMemBe[] = { + 0, 'o', 0, 'u', 0, 't', 0, ' ', + 0, 'o', 0, 'f', 0, ' ', + 0, 'm', 0, 'e', 0, 'm', 0, 'o', 0, 'r', 0, 'y', 0, 0, 0 + }; + static const char misuseBe [] = { + 0, 'l', 0, 'i', 0, 'b', 0, 'r', 0, 'a', 0, 'r', 0, 'y', 0, ' ', + 0, 'r', 0, 'o', 0, 'u', 0, 't', 0, 'i', 0, 'n', 0, 'e', 0, ' ', + 0, 'c', 0, 'a', 0, 'l', 0, 'l', 0, 'e', 0, 'd', 0, ' ', + 0, 'o', 0, 'u', 0, 't', 0, ' ', + 0, 'o', 0, 'f', 0, ' ', + 0, 's', 0, 'e', 0, 'q', 0, 'u', 0, 'e', 0, 'n', 0, 'c', 0, 'e', 0, 0, 0 + }; + + const void *z; + if( sqlite3MallocFailed() ){ + return (void *)(&outOfMemBe[SQLITE_UTF16NATIVE==SQLITE_UTF16LE?1:0]); + } + if( sqlite3SafetyCheck(db) || db->errCode==SQLITE_MISUSE ){ + return (void *)(&misuseBe[SQLITE_UTF16NATIVE==SQLITE_UTF16LE?1:0]); + } + z = sqlite3_value_text16(db->pErr); + if( z==0 ){ + sqlite3ValueSetStr(db->pErr, -1, sqlite3ErrStr(db->errCode), + SQLITE_UTF8, SQLITE_STATIC); + z = sqlite3_value_text16(db->pErr); + } + sqlite3ApiExit(0, 0); + return z; +} +#endif /* SQLITE_OMIT_UTF16 */ + +/* +** Return the most recent error code generated by an SQLite routine. If NULL is +** passed to this function, we assume a malloc() failed during sqlite3_open(). +*/ +int sqlite3_errcode(sqlite3 *db){ + if( !db || sqlite3MallocFailed() ){ + return SQLITE_NOMEM; + } + if( sqlite3SafetyCheck(db) ){ + return SQLITE_MISUSE; + } + return db->errCode & db->errMask; +} + +/* +** Create a new collating function for database "db". The name is zName +** and the encoding is enc. +*/ +static int createCollation( + sqlite3* db, + const char *zName, + int enc, + void* pCtx, + int(*xCompare)(void*,int,const void*,int,const void*) +){ + CollSeq *pColl; + int enc2; + + if( sqlite3SafetyCheck(db) ){ + return SQLITE_MISUSE; + } + + /* If SQLITE_UTF16 is specified as the encoding type, transform this + ** to one of SQLITE_UTF16LE or SQLITE_UTF16BE using the + ** SQLITE_UTF16NATIVE macro. SQLITE_UTF16 is not used internally. + */ + enc2 = enc & ~SQLITE_UTF16_ALIGNED; + if( enc2==SQLITE_UTF16 ){ + enc2 = SQLITE_UTF16NATIVE; + } + + if( (enc2&~3)!=0 ){ + sqlite3Error(db, SQLITE_ERROR, "unknown encoding"); + return SQLITE_ERROR; + } + + /* Check if this call is removing or replacing an existing collation + ** sequence. If so, and there are active VMs, return busy. If there + ** are no active VMs, invalidate any pre-compiled statements. + */ + pColl = sqlite3FindCollSeq(db, (u8)enc2, zName, strlen(zName), 0); + if( pColl && pColl->xCmp ){ + if( db->activeVdbeCnt ){ + sqlite3Error(db, SQLITE_BUSY, + "Unable to delete/modify collation sequence due to active statements"); + return SQLITE_BUSY; + } + sqlite3ExpirePreparedStatements(db); + } + + pColl = sqlite3FindCollSeq(db, (u8)enc2, zName, strlen(zName), 1); + if( pColl ){ + pColl->xCmp = xCompare; + pColl->pUser = pCtx; + pColl->enc = enc2 | (enc & SQLITE_UTF16_ALIGNED); + } + sqlite3Error(db, SQLITE_OK, 0); + return SQLITE_OK; +} + + +/* +** This routine does the work of opening a database on behalf of +** sqlite3_open() and sqlite3_open16(). The database filename "zFilename" +** is UTF-8 encoded. +*/ +static int openDatabase( + const char *zFilename, /* Database filename UTF-8 encoded */ + sqlite3 **ppDb /* OUT: Returned database handle */ +){ + sqlite3 *db; + int rc; + CollSeq *pColl; + + assert( !sqlite3MallocFailed() ); + + /* Allocate the sqlite data structure */ + db = sqliteMalloc( sizeof(sqlite3) ); + if( db==0 ) goto opendb_out; + db->errMask = 0xff; + db->priorNewRowid = 0; + db->magic = SQLITE_MAGIC_BUSY; + db->nDb = 2; + db->aDb = db->aDbStatic; + db->autoCommit = 1; + db->flags |= SQLITE_ShortColNames +#if SQLITE_DEFAULT_FILE_FORMAT<4 + | SQLITE_LegacyFileFmt +#endif + ; + sqlite3HashInit(&db->aFunc, SQLITE_HASH_STRING, 0); + sqlite3HashInit(&db->aCollSeq, SQLITE_HASH_STRING, 0); +#ifndef SQLITE_OMIT_VIRTUALTABLE + sqlite3HashInit(&db->aModule, SQLITE_HASH_STRING, 0); +#endif + + /* Add the default collation sequence BINARY. BINARY works for both UTF-8 + ** and UTF-16, so add a version for each to avoid any unnecessary + ** conversions. The only error that can occur here is a malloc() failure. + */ + if( createCollation(db, "BINARY", SQLITE_UTF8, 0, binCollFunc) || + createCollation(db, "BINARY", SQLITE_UTF16BE, 0, binCollFunc) || + createCollation(db, "BINARY", SQLITE_UTF16LE, 0, binCollFunc) || + (db->pDfltColl = sqlite3FindCollSeq(db, SQLITE_UTF8, "BINARY", 6, 0))==0 + ){ + assert( sqlite3MallocFailed() ); + db->magic = SQLITE_MAGIC_CLOSED; + goto opendb_out; + } + + /* Also add a UTF-8 case-insensitive collation sequence. */ + createCollation(db, "NOCASE", SQLITE_UTF8, 0, nocaseCollatingFunc); + + /* Set flags on the built-in collating sequences */ + db->pDfltColl->type = SQLITE_COLL_BINARY; + pColl = sqlite3FindCollSeq(db, SQLITE_UTF8, "NOCASE", 6, 0); + if( pColl ){ + pColl->type = SQLITE_COLL_NOCASE; + } + + /* Open the backend database driver */ + rc = sqlite3BtreeFactory(db, zFilename, 0, MAX_PAGES, &db->aDb[0].pBt); + if( rc!=SQLITE_OK ){ + sqlite3Error(db, rc, 0); + db->magic = SQLITE_MAGIC_CLOSED; + goto opendb_out; + } + db->aDb[0].pSchema = sqlite3SchemaGet(db->aDb[0].pBt); + db->aDb[1].pSchema = sqlite3SchemaGet(0); + + + /* The default safety_level for the main database is 'full'; for the temp + ** database it is 'NONE'. This matches the pager layer defaults. + */ + db->aDb[0].zName = "main"; + db->aDb[0].safety_level = 3; +#ifndef SQLITE_OMIT_TEMPDB + db->aDb[1].zName = "temp"; + db->aDb[1].safety_level = 1; +#endif + + /* Register all built-in functions, but do not attempt to read the + ** database schema yet. This is delayed until the first time the database + ** is accessed. + */ + if( !sqlite3MallocFailed() ){ + sqlite3Error(db, SQLITE_OK, 0); + sqlite3RegisterBuiltinFunctions(db); + } + db->magic = SQLITE_MAGIC_OPEN; + + /* Load automatic extensions - extensions that have been registered + ** using the sqlite3_automatic_extension() API. + */ + (void)sqlite3AutoLoadExtensions(db); + +#ifdef SQLITE_ENABLE_FTS1 + { + extern int sqlite3Fts1Init(sqlite3*); + sqlite3Fts1Init(db); + } +#endif + +#ifdef SQLITE_ENABLE_FTS2 + { + extern int sqlite3Fts2Init(sqlite3*); + sqlite3Fts2Init(db); + } +#endif + +opendb_out: + if( SQLITE_NOMEM==(rc = sqlite3_errcode(db)) ){ + sqlite3_close(db); + db = 0; + } + *ppDb = db; + return sqlite3ApiExit(0, rc); +} + +/* +** Open a new database handle. +*/ +int sqlite3_open( + const char *zFilename, + sqlite3 **ppDb +){ + return openDatabase(zFilename, ppDb); +} + +#ifndef SQLITE_OMIT_UTF16 +/* +** Open a new database handle. +*/ +int sqlite3_open16( + const void *zFilename, + sqlite3 **ppDb +){ + char const *zFilename8; /* zFilename encoded in UTF-8 instead of UTF-16 */ + int rc = SQLITE_OK; + sqlite3_value *pVal; + + assert( zFilename ); + assert( ppDb ); + *ppDb = 0; + pVal = sqlite3ValueNew(); + sqlite3ValueSetStr(pVal, -1, zFilename, SQLITE_UTF16NATIVE, SQLITE_STATIC); + zFilename8 = sqlite3ValueText(pVal, SQLITE_UTF8); + if( zFilename8 ){ + rc = openDatabase(zFilename8, ppDb); + if( rc==SQLITE_OK && *ppDb ){ + rc = sqlite3_exec(*ppDb, "PRAGMA encoding = 'UTF-16'", 0, 0, 0); + if( rc!=SQLITE_OK ){ + sqlite3_close(*ppDb); + *ppDb = 0; + } + } + } + sqlite3ValueFree(pVal); + + return sqlite3ApiExit(0, rc); +} +#endif /* SQLITE_OMIT_UTF16 */ + +/* +** The following routine destroys a virtual machine that is created by +** the sqlite3_compile() routine. The integer returned is an SQLITE_ +** success/failure code that describes the result of executing the virtual +** machine. +** +** This routine sets the error code and string returned by +** sqlite3_errcode(), sqlite3_errmsg() and sqlite3_errmsg16(). +*/ +int sqlite3_finalize(sqlite3_stmt *pStmt){ + int rc; + if( pStmt==0 ){ + rc = SQLITE_OK; + }else{ + rc = sqlite3VdbeFinalize((Vdbe*)pStmt); + } + return rc; +} + +/* +** Terminate the current execution of an SQL statement and reset it +** back to its starting state so that it can be reused. A success code from +** the prior execution is returned. +** +** This routine sets the error code and string returned by +** sqlite3_errcode(), sqlite3_errmsg() and sqlite3_errmsg16(). +*/ +int sqlite3_reset(sqlite3_stmt *pStmt){ + int rc; + if( pStmt==0 ){ + rc = SQLITE_OK; + }else{ + rc = sqlite3VdbeReset((Vdbe*)pStmt); + sqlite3VdbeMakeReady((Vdbe*)pStmt, -1, 0, 0, 0); + assert( (rc & (sqlite3_db_handle(pStmt)->errMask))==rc ); + } + return rc; +} + +/* +** Register a new collation sequence with the database handle db. +*/ +int sqlite3_create_collation( + sqlite3* db, + const char *zName, + int enc, + void* pCtx, + int(*xCompare)(void*,int,const void*,int,const void*) +){ + int rc; + assert( !sqlite3MallocFailed() ); + rc = createCollation(db, zName, enc, pCtx, xCompare); + return sqlite3ApiExit(db, rc); +} + +#ifndef SQLITE_OMIT_UTF16 +/* +** Register a new collation sequence with the database handle db. +*/ +int sqlite3_create_collation16( + sqlite3* db, + const char *zName, + int enc, + void* pCtx, + int(*xCompare)(void*,int,const void*,int,const void*) +){ + int rc = SQLITE_OK; + char *zName8; + assert( !sqlite3MallocFailed() ); + zName8 = sqlite3utf16to8(zName, -1); + if( zName8 ){ + rc = createCollation(db, zName8, enc, pCtx, xCompare); + sqliteFree(zName8); + } + return sqlite3ApiExit(db, rc); +} +#endif /* SQLITE_OMIT_UTF16 */ + +/* +** Register a collation sequence factory callback with the database handle +** db. Replace any previously installed collation sequence factory. +*/ +int sqlite3_collation_needed( + sqlite3 *db, + void *pCollNeededArg, + void(*xCollNeeded)(void*,sqlite3*,int eTextRep,const char*) +){ + if( sqlite3SafetyCheck(db) ){ + return SQLITE_MISUSE; + } + db->xCollNeeded = xCollNeeded; + db->xCollNeeded16 = 0; + db->pCollNeededArg = pCollNeededArg; + return SQLITE_OK; +} + +#ifndef SQLITE_OMIT_UTF16 +/* +** Register a collation sequence factory callback with the database handle +** db. Replace any previously installed collation sequence factory. +*/ +int sqlite3_collation_needed16( + sqlite3 *db, + void *pCollNeededArg, + void(*xCollNeeded16)(void*,sqlite3*,int eTextRep,const void*) +){ + if( sqlite3SafetyCheck(db) ){ + return SQLITE_MISUSE; + } + db->xCollNeeded = 0; + db->xCollNeeded16 = xCollNeeded16; + db->pCollNeededArg = pCollNeededArg; + return SQLITE_OK; +} +#endif /* SQLITE_OMIT_UTF16 */ + +#ifndef SQLITE_OMIT_GLOBALRECOVER +/* +** This function is now an anachronism. It used to be used to recover from a +** malloc() failure, but SQLite now does this automatically. +*/ +int sqlite3_global_recover(){ + return SQLITE_OK; +} +#endif + +/* +** Test to see whether or not the database connection is in autocommit +** mode. Return TRUE if it is and FALSE if not. Autocommit mode is on +** by default. Autocommit is disabled by a BEGIN statement and reenabled +** by the next COMMIT or ROLLBACK. +** +******* THIS IS AN EXPERIMENTAL API AND IS SUBJECT TO CHANGE ****** +*/ +int sqlite3_get_autocommit(sqlite3 *db){ + return db->autoCommit; +} + +#ifdef SQLITE_DEBUG +/* +** The following routine is subtituted for constant SQLITE_CORRUPT in +** debugging builds. This provides a way to set a breakpoint for when +** corruption is first detected. +*/ +int sqlite3Corrupt(void){ + return SQLITE_CORRUPT; +} +#endif + + +#ifndef SQLITE_OMIT_SHARED_CACHE +/* +** Enable or disable the shared pager and schema features for the +** current thread. +** +** This routine should only be called when there are no open +** database connections. +*/ +int sqlite3_enable_shared_cache(int enable){ + ThreadData *pTd = sqlite3ThreadData(); + if( pTd ){ + /* It is only legal to call sqlite3_enable_shared_cache() when there + ** are no currently open b-trees that were opened by the calling thread. + ** This condition is only easy to detect if the shared-cache were + ** previously enabled (and is being disabled). + */ + if( pTd->pBtree && !enable ){ + assert( pTd->useSharedData ); + return SQLITE_MISUSE; + } + + pTd->useSharedData = enable; + sqlite3ReleaseThreadData(); + } + return sqlite3ApiExit(0, SQLITE_OK); +} +#endif + +/* +** This is a convenience routine that makes sure that all thread-specific +** data for this thread has been deallocated. +*/ +void sqlite3_thread_cleanup(void){ + ThreadData *pTd = sqlite3OsThreadSpecificData(0); + if( pTd ){ + memset(pTd, 0, sizeof(*pTd)); + sqlite3OsThreadSpecificData(-1); + } +} + +/* +** Return meta information about a specific column of a database table. +** See comment in sqlite3.h (sqlite.h.in) for details. +*/ +#ifdef SQLITE_ENABLE_COLUMN_METADATA +int sqlite3_table_column_metadata( + sqlite3 *db, /* Connection handle */ + const char *zDbName, /* Database name or NULL */ + const char *zTableName, /* Table name */ + const char *zColumnName, /* Column name */ + char const **pzDataType, /* OUTPUT: Declared data type */ + char const **pzCollSeq, /* OUTPUT: Collation sequence name */ + int *pNotNull, /* OUTPUT: True if NOT NULL constraint exists */ + int *pPrimaryKey, /* OUTPUT: True if column part of PK */ + int *pAutoinc /* OUTPUT: True if colums is auto-increment */ +){ + int rc; + char *zErrMsg = 0; + Table *pTab = 0; + Column *pCol = 0; + int iCol; + + char const *zDataType = 0; + char const *zCollSeq = 0; + int notnull = 0; + int primarykey = 0; + int autoinc = 0; + + /* Ensure the database schema has been loaded */ + if( sqlite3SafetyOn(db) ){ + return SQLITE_MISUSE; + } + rc = sqlite3Init(db, &zErrMsg); + if( SQLITE_OK!=rc ){ + goto error_out; + } + + /* Locate the table in question */ + pTab = sqlite3FindTable(db, zTableName, zDbName); + if( !pTab || pTab->pSelect ){ + pTab = 0; + goto error_out; + } + + /* Find the column for which info is requested */ + if( sqlite3IsRowid(zColumnName) ){ + iCol = pTab->iPKey; + if( iCol>=0 ){ + pCol = &pTab->aCol[iCol]; + } + }else{ + for(iCol=0; iColnCol; iCol++){ + pCol = &pTab->aCol[iCol]; + if( 0==sqlite3StrICmp(pCol->zName, zColumnName) ){ + break; + } + } + if( iCol==pTab->nCol ){ + pTab = 0; + goto error_out; + } + } + + /* The following block stores the meta information that will be returned + ** to the caller in local variables zDataType, zCollSeq, notnull, primarykey + ** and autoinc. At this point there are two possibilities: + ** + ** 1. The specified column name was rowid", "oid" or "_rowid_" + ** and there is no explicitly declared IPK column. + ** + ** 2. The table is not a view and the column name identified an + ** explicitly declared column. Copy meta information from *pCol. + */ + if( pCol ){ + zDataType = pCol->zType; + zCollSeq = pCol->zColl; + notnull = (pCol->notNull?1:0); + primarykey = (pCol->isPrimKey?1:0); + autoinc = ((pTab->iPKey==iCol && pTab->autoInc)?1:0); + }else{ + zDataType = "INTEGER"; + primarykey = 1; + } + if( !zCollSeq ){ + zCollSeq = "BINARY"; + } + +error_out: + if( sqlite3SafetyOff(db) ){ + rc = SQLITE_MISUSE; + } + + /* Whether the function call succeeded or failed, set the output parameters + ** to whatever their local counterparts contain. If an error did occur, + ** this has the effect of zeroing all output parameters. + */ + if( pzDataType ) *pzDataType = zDataType; + if( pzCollSeq ) *pzCollSeq = zCollSeq; + if( pNotNull ) *pNotNull = notnull; + if( pPrimaryKey ) *pPrimaryKey = primarykey; + if( pAutoinc ) *pAutoinc = autoinc; + + if( SQLITE_OK==rc && !pTab ){ + sqlite3SetString(&zErrMsg, "no such table column: ", zTableName, ".", + zColumnName, 0); + rc = SQLITE_ERROR; + } + sqlite3Error(db, rc, (zErrMsg?"%s":0), zErrMsg); + sqliteFree(zErrMsg); + return sqlite3ApiExit(db, rc); +} +#endif + +/* +** Set all the parameters in the compiled SQL statement to NULL. +*/ +int sqlite3_clear_bindings(sqlite3_stmt *pStmt){ + int i; + int rc = SQLITE_OK; + for(i=1; rc==SQLITE_OK && i<=sqlite3_bind_parameter_count(pStmt); i++){ + rc = sqlite3_bind_null(pStmt, i); + } + return rc; +} + +/* +** Sleep for a little while. Return the amount of time slept. +*/ +int sqlite3_sleep(int ms){ + return sqlite3OsSleep(ms); +} + +/* +** Enable or disable the extended result codes. +*/ +int sqlite3_extended_result_codes(sqlite3 *db, int onoff){ + db->errMask = onoff ? 0xffffffff : 0xff; + return SQLITE_OK; +} diff --git a/src/dep/src/sqlite/opcodes.c b/src/dep/src/sqlite/opcodes.c new file mode 100644 index 0000000..9498f9a --- /dev/null +++ b/src/dep/src/sqlite/opcodes.c @@ -0,0 +1,149 @@ +/* Automatically generated. Do not edit */ +/* See the mkopcodec.awk script for details. */ +#if !defined(SQLITE_OMIT_EXPLAIN) || !defined(NDEBUG) || defined(VDBE_PROFILE) || defined(SQLITE_DEBUG) +const char *const sqlite3OpcodeNames[] = { "?", + /* 1 */ "MemLoad", + /* 2 */ "VNext", + /* 3 */ "Column", + /* 4 */ "SetCookie", + /* 5 */ "IfMemPos", + /* 6 */ "Sequence", + /* 7 */ "MoveGt", + /* 8 */ "RowKey", + /* 9 */ "OpenWrite", + /* 10 */ "If", + /* 11 */ "Pop", + /* 12 */ "VRowid", + /* 13 */ "CollSeq", + /* 14 */ "OpenRead", + /* 15 */ "Expire", + /* 16 */ "Not", + /* 17 */ "AutoCommit", + /* 18 */ "IntegrityCk", + /* 19 */ "Sort", + /* 20 */ "Function", + /* 21 */ "Noop", + /* 22 */ "Return", + /* 23 */ "NewRowid", + /* 24 */ "IfMemNeg", + /* 25 */ "Variable", + /* 26 */ "String", + /* 27 */ "RealAffinity", + /* 28 */ "ParseSchema", + /* 29 */ "VOpen", + /* 30 */ "Close", + /* 31 */ "CreateIndex", + /* 32 */ "IsUnique", + /* 33 */ "NotFound", + /* 34 */ "Int64", + /* 35 */ "MustBeInt", + /* 36 */ "Halt", + /* 37 */ "Rowid", + /* 38 */ "IdxLT", + /* 39 */ "AddImm", + /* 40 */ "Statement", + /* 41 */ "RowData", + /* 42 */ "MemMax", + /* 43 */ "Push", + /* 44 */ "NotExists", + /* 45 */ "MemIncr", + /* 46 */ "Gosub", + /* 47 */ "Integer", + /* 48 */ "MemInt", + /* 49 */ "Prev", + /* 50 */ "VColumn", + /* 51 */ "CreateTable", + /* 52 */ "Last", + /* 53 */ "IdxRowid", + /* 54 */ "MakeIdxRec", + /* 55 */ "ResetCount", + /* 56 */ "FifoWrite", + /* 57 */ "Callback", + /* 58 */ "ContextPush", + /* 59 */ "DropTrigger", + /* 60 */ "DropIndex", + /* 61 */ "Or", + /* 62 */ "And", + /* 63 */ "IdxGE", + /* 64 */ "IdxDelete", + /* 65 */ "Vacuum", + /* 66 */ "IsNull", + /* 67 */ "NotNull", + /* 68 */ "Ne", + /* 69 */ "Eq", + /* 70 */ "Gt", + /* 71 */ "Le", + /* 72 */ "Lt", + /* 73 */ "Ge", + /* 74 */ "MoveLe", + /* 75 */ "BitAnd", + /* 76 */ "BitOr", + /* 77 */ "ShiftLeft", + /* 78 */ "ShiftRight", + /* 79 */ "Add", + /* 80 */ "Subtract", + /* 81 */ "Multiply", + /* 82 */ "Divide", + /* 83 */ "Remainder", + /* 84 */ "Concat", + /* 85 */ "Negative", + /* 86 */ "IfNot", + /* 87 */ "BitNot", + /* 88 */ "String8", + /* 89 */ "DropTable", + /* 90 */ "MakeRecord", + /* 91 */ "Delete", + /* 92 */ "AggFinal", + /* 93 */ "Dup", + /* 94 */ "Goto", + /* 95 */ "TableLock", + /* 96 */ "FifoRead", + /* 97 */ "Clear", + /* 98 */ "IdxGT", + /* 99 */ "MoveLt", + /* 100 */ "VerifyCookie", + /* 101 */ "AggStep", + /* 102 */ "Pull", + /* 103 */ "SetNumColumns", + /* 104 */ "AbsValue", + /* 105 */ "Transaction", + /* 106 */ "VFilter", + /* 107 */ "VDestroy", + /* 108 */ "ContextPop", + /* 109 */ "Next", + /* 110 */ "IdxInsert", + /* 111 */ "Distinct", + /* 112 */ "Insert", + /* 113 */ "Destroy", + /* 114 */ "ReadCookie", + /* 115 */ "ForceInt", + /* 116 */ "LoadAnalysis", + /* 117 */ "Explain", + /* 118 */ "IfMemZero", + /* 119 */ "OpenPseudo", + /* 120 */ "OpenEphemeral", + /* 121 */ "Null", + /* 122 */ "Blob", + /* 123 */ "MemStore", + /* 124 */ "Rewind", + /* 125 */ "MoveGe", + /* 126 */ "Real", + /* 127 */ "HexBlob", + /* 128 */ "VBegin", + /* 129 */ "VUpdate", + /* 130 */ "VCreate", + /* 131 */ "MemMove", + /* 132 */ "MemNull", + /* 133 */ "Found", + /* 134 */ "NullRow", + /* 135 */ "NotUsed_135", + /* 136 */ "NotUsed_136", + /* 137 */ "NotUsed_137", + /* 138 */ "NotUsed_138", + /* 139 */ "ToText", + /* 140 */ "ToBlob", + /* 141 */ "ToNumeric", + /* 142 */ "ToInt", + /* 143 */ "ToReal", +}; +#endif diff --git a/src/dep/src/sqlite/opcodes.h b/src/dep/src/sqlite/opcodes.h new file mode 100644 index 0000000..2f4b1ad --- /dev/null +++ b/src/dep/src/sqlite/opcodes.h @@ -0,0 +1,161 @@ +/* Automatically generated. Do not edit */ +/* See the mkopcodeh.awk script for details */ +#define OP_MemLoad 1 +#define OP_VNext 2 +#define OP_HexBlob 127 /* same as TK_BLOB */ +#define OP_Column 3 +#define OP_SetCookie 4 +#define OP_IfMemPos 5 +#define OP_Real 126 /* same as TK_FLOAT */ +#define OP_Sequence 6 +#define OP_MoveGt 7 +#define OP_Ge 73 /* same as TK_GE */ +#define OP_RowKey 8 +#define OP_Eq 69 /* same as TK_EQ */ +#define OP_OpenWrite 9 +#define OP_NotNull 67 /* same as TK_NOTNULL */ +#define OP_If 10 +#define OP_ToInt 142 /* same as TK_TO_INT */ +#define OP_String8 88 /* same as TK_STRING */ +#define OP_Pop 11 +#define OP_VRowid 12 +#define OP_CollSeq 13 +#define OP_OpenRead 14 +#define OP_Expire 15 +#define OP_AutoCommit 17 +#define OP_Gt 70 /* same as TK_GT */ +#define OP_IntegrityCk 18 +#define OP_Sort 19 +#define OP_Function 20 +#define OP_And 62 /* same as TK_AND */ +#define OP_Subtract 80 /* same as TK_MINUS */ +#define OP_Noop 21 +#define OP_Return 22 +#define OP_Remainder 83 /* same as TK_REM */ +#define OP_NewRowid 23 +#define OP_Multiply 81 /* same as TK_STAR */ +#define OP_IfMemNeg 24 +#define OP_Variable 25 +#define OP_String 26 +#define OP_RealAffinity 27 +#define OP_ParseSchema 28 +#define OP_VOpen 29 +#define OP_Close 30 +#define OP_CreateIndex 31 +#define OP_IsUnique 32 +#define OP_NotFound 33 +#define OP_Int64 34 +#define OP_MustBeInt 35 +#define OP_Halt 36 +#define OP_Rowid 37 +#define OP_IdxLT 38 +#define OP_AddImm 39 +#define OP_Statement 40 +#define OP_RowData 41 +#define OP_MemMax 42 +#define OP_Push 43 +#define OP_Or 61 /* same as TK_OR */ +#define OP_NotExists 44 +#define OP_MemIncr 45 +#define OP_Gosub 46 +#define OP_Divide 82 /* same as TK_SLASH */ +#define OP_Integer 47 +#define OP_ToNumeric 141 /* same as TK_TO_NUMERIC*/ +#define OP_MemInt 48 +#define OP_Prev 49 +#define OP_Concat 84 /* same as TK_CONCAT */ +#define OP_BitAnd 75 /* same as TK_BITAND */ +#define OP_VColumn 50 +#define OP_CreateTable 51 +#define OP_Last 52 +#define OP_IsNull 66 /* same as TK_ISNULL */ +#define OP_IdxRowid 53 +#define OP_MakeIdxRec 54 +#define OP_ShiftRight 78 /* same as TK_RSHIFT */ +#define OP_ResetCount 55 +#define OP_FifoWrite 56 +#define OP_Callback 57 +#define OP_ContextPush 58 +#define OP_DropTrigger 59 +#define OP_DropIndex 60 +#define OP_IdxGE 63 +#define OP_IdxDelete 64 +#define OP_Vacuum 65 +#define OP_MoveLe 74 +#define OP_IfNot 86 +#define OP_DropTable 89 +#define OP_MakeRecord 90 +#define OP_ToBlob 140 /* same as TK_TO_BLOB */ +#define OP_Delete 91 +#define OP_AggFinal 92 +#define OP_ShiftLeft 77 /* same as TK_LSHIFT */ +#define OP_Dup 93 +#define OP_Goto 94 +#define OP_TableLock 95 +#define OP_FifoRead 96 +#define OP_Clear 97 +#define OP_IdxGT 98 +#define OP_MoveLt 99 +#define OP_Le 71 /* same as TK_LE */ +#define OP_VerifyCookie 100 +#define OP_AggStep 101 +#define OP_Pull 102 +#define OP_ToText 139 /* same as TK_TO_TEXT */ +#define OP_Not 16 /* same as TK_NOT */ +#define OP_ToReal 143 /* same as TK_TO_REAL */ +#define OP_SetNumColumns 103 +#define OP_AbsValue 104 +#define OP_Transaction 105 +#define OP_VFilter 106 +#define OP_Negative 85 /* same as TK_UMINUS */ +#define OP_Ne 68 /* same as TK_NE */ +#define OP_VDestroy 107 +#define OP_ContextPop 108 +#define OP_BitOr 76 /* same as TK_BITOR */ +#define OP_Next 109 +#define OP_IdxInsert 110 +#define OP_Distinct 111 +#define OP_Lt 72 /* same as TK_LT */ +#define OP_Insert 112 +#define OP_Destroy 113 +#define OP_ReadCookie 114 +#define OP_ForceInt 115 +#define OP_LoadAnalysis 116 +#define OP_Explain 117 +#define OP_IfMemZero 118 +#define OP_OpenPseudo 119 +#define OP_OpenEphemeral 120 +#define OP_Null 121 +#define OP_Blob 122 +#define OP_Add 79 /* same as TK_PLUS */ +#define OP_MemStore 123 +#define OP_Rewind 124 +#define OP_MoveGe 125 +#define OP_VBegin 128 +#define OP_VUpdate 129 +#define OP_BitNot 87 /* same as TK_BITNOT */ +#define OP_VCreate 130 +#define OP_MemMove 131 +#define OP_MemNull 132 +#define OP_Found 133 +#define OP_NullRow 134 + +/* The following opcode values are never used */ +#define OP_NotUsed_135 135 +#define OP_NotUsed_136 136 +#define OP_NotUsed_137 137 +#define OP_NotUsed_138 138 + +/* Opcodes that are guaranteed to never push a value onto the stack +** contain a 1 their corresponding position of the following mask +** set. See the opcodeNoPush() function in vdbeaux.c */ +#define NOPUSH_MASK_0 0xeeb4 +#define NOPUSH_MASK_1 0x796b +#define NOPUSH_MASK_2 0x7ddb +#define NOPUSH_MASK_3 0xff92 +#define NOPUSH_MASK_4 0xffff +#define NOPUSH_MASK_5 0xdaef +#define NOPUSH_MASK_6 0xfefe +#define NOPUSH_MASK_7 0x39d9 +#define NOPUSH_MASK_8 0xf867 +#define NOPUSH_MASK_9 0x0000 diff --git a/src/dep/src/sqlite/os.c b/src/dep/src/sqlite/os.c new file mode 100644 index 0000000..ec482fe --- /dev/null +++ b/src/dep/src/sqlite/os.c @@ -0,0 +1,92 @@ +/* +** 2005 November 29 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** This file contains OS interface code that is common to all +** architectures. +*/ +#define _SQLITE_OS_C_ 1 +#include "sqliteInt.h" +#include "os.h" + +/* +** The following routines are convenience wrappers around methods +** of the OsFile object. This is mostly just syntactic sugar. All +** of this would be completely automatic if SQLite were coded using +** C++ instead of plain old C. +*/ +int sqlite3OsClose(OsFile **pId){ + OsFile *id; + if( pId!=0 && (id = *pId)!=0 ){ + return id->pMethod->xClose(pId); + }else{ + return SQLITE_OK; + } +} +int sqlite3OsOpenDirectory(OsFile *id, const char *zName){ + return id->pMethod->xOpenDirectory(id, zName); +} +int sqlite3OsRead(OsFile *id, void *pBuf, int amt){ + return id->pMethod->xRead(id, pBuf, amt); +} +int sqlite3OsWrite(OsFile *id, const void *pBuf, int amt){ + return id->pMethod->xWrite(id, pBuf, amt); +} +int sqlite3OsSeek(OsFile *id, i64 offset){ + return id->pMethod->xSeek(id, offset); +} +int sqlite3OsTruncate(OsFile *id, i64 size){ + return id->pMethod->xTruncate(id, size); +} +int sqlite3OsSync(OsFile *id, int fullsync){ + return id->pMethod->xSync(id, fullsync); +} +void sqlite3OsSetFullSync(OsFile *id, int value){ + id->pMethod->xSetFullSync(id, value); +} +#if defined(SQLITE_TEST) || defined(SQLITE_DEBUG) +/* This method is currently only used while interactively debugging the +** pager. More specificly, it can only be used when sqlite3DebugPrintf() is +** included in the build. */ +int sqlite3OsFileHandle(OsFile *id){ + return id->pMethod->xFileHandle(id); +} +#endif +int sqlite3OsFileSize(OsFile *id, i64 *pSize){ + return id->pMethod->xFileSize(id, pSize); +} +int sqlite3OsLock(OsFile *id, int lockType){ + return id->pMethod->xLock(id, lockType); +} +int sqlite3OsUnlock(OsFile *id, int lockType){ + return id->pMethod->xUnlock(id, lockType); +} +int sqlite3OsLockState(OsFile *id){ + return id->pMethod->xLockState(id); +} +int sqlite3OsCheckReservedLock(OsFile *id){ + return id->pMethod->xCheckReservedLock(id); +} + +#ifdef SQLITE_ENABLE_REDEF_IO +/* +** A function to return a pointer to the virtual function table. +** This routine really does not accomplish very much since the +** virtual function table is a global variable and anybody who +** can call this function can just as easily access the variable +** for themselves. Nevertheless, we include this routine for +** backwards compatibility with an earlier redefinable I/O +** interface design. +*/ +struct sqlite3OsVtbl *sqlite3_os_switch(void){ + return &sqlite3Os; +} +#endif diff --git a/src/dep/src/sqlite/os.h b/src/dep/src/sqlite/os.h new file mode 100644 index 0000000..0fe7b15 --- /dev/null +++ b/src/dep/src/sqlite/os.h @@ -0,0 +1,517 @@ +/* +** 2001 September 16 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** This header file (together with is companion C source-code file +** "os.c") attempt to abstract the underlying operating system so that +** the SQLite library will work on both POSIX and windows systems. +*/ +#ifndef _SQLITE_OS_H_ +#define _SQLITE_OS_H_ + +/* +** Figure out if we are dealing with Unix, Windows, or some other +** operating system. +*/ +#if !defined(OS_UNIX) && !defined(OS_OTHER) +# define OS_OTHER 0 +# ifndef OS_WIN +# if defined(_WIN32) || defined(WIN32) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__BORLANDC__) +# define OS_WIN 1 +# define OS_UNIX 0 +# define OS_OS2 0 +# elif defined(_EMX_) || defined(_OS2) || defined(OS2) || defined(_OS2_) || defined(__OS2__) +# define OS_WIN 0 +# define OS_UNIX 0 +# define OS_OS2 1 +# else +# define OS_WIN 0 +# define OS_UNIX 1 +# define OS_OS2 0 +# endif +# else +# define OS_UNIX 0 +# define OS_OS2 0 +# endif +#else +# ifndef OS_WIN +# define OS_WIN 0 +# endif +#endif + + +/* +** Define the maximum size of a temporary filename +*/ +#if OS_WIN +# include +# define SQLITE_TEMPNAME_SIZE (MAX_PATH+50) +#elif OS_OS2 +# define INCL_DOSDATETIME +# define INCL_DOSFILEMGR +# define INCL_DOSERRORS +# define INCL_DOSMISC +# define INCL_DOSPROCESS +# include +# define SQLITE_TEMPNAME_SIZE (CCHMAXPATHCOMP) +#else +# define SQLITE_TEMPNAME_SIZE 200 +#endif + +/* If the SET_FULLSYNC macro is not defined above, then make it +** a no-op +*/ +#ifndef SET_FULLSYNC +# define SET_FULLSYNC(x,y) +#endif + +/* +** Temporary files are named starting with this prefix followed by 16 random +** alphanumeric characters, and no file extension. They are stored in the +** OS's standard temporary file directory, and are deleted prior to exit. +** If sqlite is being embedded in another program, you may wish to change the +** prefix to reflect your program's name, so that if your program exits +** prematurely, old temporary files can be easily identified. This can be done +** using -DTEMP_FILE_PREFIX=myprefix_ on the compiler command line. +** +** 2006-10-31: The default prefix used to be "sqlite_". But then +** Mcafee started using SQLite in their anti-virus product and it +** started putting files with the "sqlite" name in the c:/temp folder. +** This annoyed many windows users. Those users would then do a +** Google search for "sqlite", find the telephone numbers of the +** developers and call to wake them up at night and complain. +** For this reason, the default name prefix is changed to be "sqlite" +** spelled backwards. So the temp files are still identified, but +** anybody smart enough to figure out the code is also likely smart +** enough to know that calling the developer will not help get rid +** of the file. +*/ +#ifndef TEMP_FILE_PREFIX +# define TEMP_FILE_PREFIX "etilqs_" +#endif + +/* +** Define the interfaces for Unix, Windows, and OS/2. +*/ +#if OS_UNIX +#define sqlite3OsOpenReadWrite sqlite3UnixOpenReadWrite +#define sqlite3OsOpenExclusive sqlite3UnixOpenExclusive +#define sqlite3OsOpenReadOnly sqlite3UnixOpenReadOnly +#define sqlite3OsDelete sqlite3UnixDelete +#define sqlite3OsFileExists sqlite3UnixFileExists +#define sqlite3OsFullPathname sqlite3UnixFullPathname +#define sqlite3OsIsDirWritable sqlite3UnixIsDirWritable +#define sqlite3OsSyncDirectory sqlite3UnixSyncDirectory +#define sqlite3OsTempFileName sqlite3UnixTempFileName +#define sqlite3OsRandomSeed sqlite3UnixRandomSeed +#define sqlite3OsSleep sqlite3UnixSleep +#define sqlite3OsCurrentTime sqlite3UnixCurrentTime +#define sqlite3OsEnterMutex sqlite3UnixEnterMutex +#define sqlite3OsLeaveMutex sqlite3UnixLeaveMutex +#define sqlite3OsInMutex sqlite3UnixInMutex +#define sqlite3OsThreadSpecificData sqlite3UnixThreadSpecificData +#define sqlite3OsMalloc sqlite3GenericMalloc +#define sqlite3OsRealloc sqlite3GenericRealloc +#define sqlite3OsFree sqlite3GenericFree +#define sqlite3OsAllocationSize sqlite3GenericAllocationSize +#define sqlite3OsDlopen sqlite3UnixDlopen +#define sqlite3OsDlsym sqlite3UnixDlsym +#define sqlite3OsDlclose sqlite3UnixDlclose +#endif +#if OS_WIN +#define sqlite3OsOpenReadWrite sqlite3WinOpenReadWrite +#define sqlite3OsOpenExclusive sqlite3WinOpenExclusive +#define sqlite3OsOpenReadOnly sqlite3WinOpenReadOnly +#define sqlite3OsDelete sqlite3WinDelete +#define sqlite3OsFileExists sqlite3WinFileExists +#define sqlite3OsFullPathname sqlite3WinFullPathname +#define sqlite3OsIsDirWritable sqlite3WinIsDirWritable +#define sqlite3OsSyncDirectory sqlite3WinSyncDirectory +#define sqlite3OsTempFileName sqlite3WinTempFileName +#define sqlite3OsRandomSeed sqlite3WinRandomSeed +#define sqlite3OsSleep sqlite3WinSleep +#define sqlite3OsCurrentTime sqlite3WinCurrentTime +#define sqlite3OsEnterMutex sqlite3WinEnterMutex +#define sqlite3OsLeaveMutex sqlite3WinLeaveMutex +#define sqlite3OsInMutex sqlite3WinInMutex +#define sqlite3OsThreadSpecificData sqlite3WinThreadSpecificData +#define sqlite3OsMalloc sqlite3GenericMalloc +#define sqlite3OsRealloc sqlite3GenericRealloc +#define sqlite3OsFree sqlite3GenericFree +#define sqlite3OsAllocationSize sqlite3GenericAllocationSize +#define sqlite3OsDlopen sqlite3WinDlopen +#define sqlite3OsDlsym sqlite3WinDlsym +#define sqlite3OsDlclose sqlite3WinDlclose +#endif +#if OS_OS2 +#define sqlite3OsOpenReadWrite sqlite3Os2OpenReadWrite +#define sqlite3OsOpenExclusive sqlite3Os2OpenExclusive +#define sqlite3OsOpenReadOnly sqlite3Os2OpenReadOnly +#define sqlite3OsDelete sqlite3Os2Delete +#define sqlite3OsFileExists sqlite3Os2FileExists +#define sqlite3OsFullPathname sqlite3Os2FullPathname +#define sqlite3OsIsDirWritable sqlite3Os2IsDirWritable +#define sqlite3OsSyncDirectory sqlite3Os2SyncDirectory +#define sqlite3OsTempFileName sqlite3Os2TempFileName +#define sqlite3OsRandomSeed sqlite3Os2RandomSeed +#define sqlite3OsSleep sqlite3Os2Sleep +#define sqlite3OsCurrentTime sqlite3Os2CurrentTime +#define sqlite3OsEnterMutex sqlite3Os2EnterMutex +#define sqlite3OsLeaveMutex sqlite3Os2LeaveMutex +#define sqlite3OsInMutex sqlite3Os2InMutex +#define sqlite3OsThreadSpecificData sqlite3Os2ThreadSpecificData +#define sqlite3OsMalloc sqlite3GenericMalloc +#define sqlite3OsRealloc sqlite3GenericRealloc +#define sqlite3OsFree sqlite3GenericFree +#define sqlite3OsAllocationSize sqlite3GenericAllocationSize +#define sqlite3OsDlopen sqlite3Os2Dlopen +#define sqlite3OsDlsym sqlite3Os2Dlsym +#define sqlite3OsDlclose sqlite3Os2Dlclose +#endif + + + + +/* +** If using an alternative OS interface, then we must have an "os_other.h" +** header file available for that interface. Presumably the "os_other.h" +** header file contains #defines similar to those above. +*/ +#if OS_OTHER +# include "os_other.h" +#endif + + + +/* +** Forward declarations +*/ +typedef struct OsFile OsFile; +typedef struct IoMethod IoMethod; + +/* +** An instance of the following structure contains pointers to all +** methods on an OsFile object. +*/ +struct IoMethod { + int (*xClose)(OsFile**); + int (*xOpenDirectory)(OsFile*, const char*); + int (*xRead)(OsFile*, void*, int amt); + int (*xWrite)(OsFile*, const void*, int amt); + int (*xSeek)(OsFile*, i64 offset); + int (*xTruncate)(OsFile*, i64 size); + int (*xSync)(OsFile*, int); + void (*xSetFullSync)(OsFile *id, int setting); + int (*xFileHandle)(OsFile *id); + int (*xFileSize)(OsFile*, i64 *pSize); + int (*xLock)(OsFile*, int); + int (*xUnlock)(OsFile*, int); + int (*xLockState)(OsFile *id); + int (*xCheckReservedLock)(OsFile *id); +}; + +/* +** The OsFile object describes an open disk file in an OS-dependent way. +** The version of OsFile defined here is a generic version. Each OS +** implementation defines its own subclass of this structure that contains +** additional information needed to handle file I/O. But the pMethod +** entry (pointing to the virtual function table) always occurs first +** so that we can always find the appropriate methods. +*/ +struct OsFile { + IoMethod const *pMethod; +}; + +/* +** The following values may be passed as the second argument to +** sqlite3OsLock(). The various locks exhibit the following semantics: +** +** SHARED: Any number of processes may hold a SHARED lock simultaneously. +** RESERVED: A single process may hold a RESERVED lock on a file at +** any time. Other processes may hold and obtain new SHARED locks. +** PENDING: A single process may hold a PENDING lock on a file at +** any one time. Existing SHARED locks may persist, but no new +** SHARED locks may be obtained by other processes. +** EXCLUSIVE: An EXCLUSIVE lock precludes all other locks. +** +** PENDING_LOCK may not be passed directly to sqlite3OsLock(). Instead, a +** process that requests an EXCLUSIVE lock may actually obtain a PENDING +** lock. This can be upgraded to an EXCLUSIVE lock by a subsequent call to +** sqlite3OsLock(). +*/ +#define NO_LOCK 0 +#define SHARED_LOCK 1 +#define RESERVED_LOCK 2 +#define PENDING_LOCK 3 +#define EXCLUSIVE_LOCK 4 + +/* +** File Locking Notes: (Mostly about windows but also some info for Unix) +** +** We cannot use LockFileEx() or UnlockFileEx() on Win95/98/ME because +** those functions are not available. So we use only LockFile() and +** UnlockFile(). +** +** LockFile() prevents not just writing but also reading by other processes. +** A SHARED_LOCK is obtained by locking a single randomly-chosen +** byte out of a specific range of bytes. The lock byte is obtained at +** random so two separate readers can probably access the file at the +** same time, unless they are unlucky and choose the same lock byte. +** An EXCLUSIVE_LOCK is obtained by locking all bytes in the range. +** There can only be one writer. A RESERVED_LOCK is obtained by locking +** a single byte of the file that is designated as the reserved lock byte. +** A PENDING_LOCK is obtained by locking a designated byte different from +** the RESERVED_LOCK byte. +** +** On WinNT/2K/XP systems, LockFileEx() and UnlockFileEx() are available, +** which means we can use reader/writer locks. When reader/writer locks +** are used, the lock is placed on the same range of bytes that is used +** for probabilistic locking in Win95/98/ME. Hence, the locking scheme +** will support two or more Win95 readers or two or more WinNT readers. +** But a single Win95 reader will lock out all WinNT readers and a single +** WinNT reader will lock out all other Win95 readers. +** +** The following #defines specify the range of bytes used for locking. +** SHARED_SIZE is the number of bytes available in the pool from which +** a random byte is selected for a shared lock. The pool of bytes for +** shared locks begins at SHARED_FIRST. +** +** These #defines are available in sqlite_aux.h so that adaptors for +** connecting SQLite to other operating systems can use the same byte +** ranges for locking. In particular, the same locking strategy and +** byte ranges are used for Unix. This leaves open the possiblity of having +** clients on win95, winNT, and unix all talking to the same shared file +** and all locking correctly. To do so would require that samba (or whatever +** tool is being used for file sharing) implements locks correctly between +** windows and unix. I'm guessing that isn't likely to happen, but by +** using the same locking range we are at least open to the possibility. +** +** Locking in windows is manditory. For this reason, we cannot store +** actual data in the bytes used for locking. The pager never allocates +** the pages involved in locking therefore. SHARED_SIZE is selected so +** that all locks will fit on a single page even at the minimum page size. +** PENDING_BYTE defines the beginning of the locks. By default PENDING_BYTE +** is set high so that we don't have to allocate an unused page except +** for very large databases. But one should test the page skipping logic +** by setting PENDING_BYTE low and running the entire regression suite. +** +** Changing the value of PENDING_BYTE results in a subtly incompatible +** file format. Depending on how it is changed, you might not notice +** the incompatibility right away, even running a full regression test. +** The default location of PENDING_BYTE is the first byte past the +** 1GB boundary. +** +*/ +#ifndef SQLITE_TEST +#define PENDING_BYTE 0x40000000 /* First byte past the 1GB boundary */ +#else +extern unsigned int sqlite3_pending_byte; +#define PENDING_BYTE sqlite3_pending_byte +#endif + +#define RESERVED_BYTE (PENDING_BYTE+1) +#define SHARED_FIRST (PENDING_BYTE+2) +#define SHARED_SIZE 510 + +/* +** Prototypes for operating system interface routines. +*/ +int sqlite3OsClose(OsFile**); +int sqlite3OsOpenDirectory(OsFile*, const char*); +int sqlite3OsRead(OsFile*, void*, int amt); +int sqlite3OsWrite(OsFile*, const void*, int amt); +int sqlite3OsSeek(OsFile*, i64 offset); +int sqlite3OsTruncate(OsFile*, i64 size); +int sqlite3OsSync(OsFile*, int); +void sqlite3OsSetFullSync(OsFile *id, int setting); +int sqlite3OsFileHandle(OsFile *id); +int sqlite3OsFileSize(OsFile*, i64 *pSize); +int sqlite3OsLock(OsFile*, int); +int sqlite3OsUnlock(OsFile*, int); +int sqlite3OsLockState(OsFile *id); +int sqlite3OsCheckReservedLock(OsFile *id); +int sqlite3OsOpenReadWrite(const char*, OsFile**, int*); +int sqlite3OsOpenExclusive(const char*, OsFile**, int); +int sqlite3OsOpenReadOnly(const char*, OsFile**); +int sqlite3OsDelete(const char*); +int sqlite3OsFileExists(const char*); +char *sqlite3OsFullPathname(const char*); +int sqlite3OsIsDirWritable(char*); +int sqlite3OsSyncDirectory(const char*); +int sqlite3OsTempFileName(char*); +int sqlite3OsRandomSeed(char*); +int sqlite3OsSleep(int ms); +int sqlite3OsCurrentTime(double*); +void sqlite3OsEnterMutex(void); +void sqlite3OsLeaveMutex(void); +int sqlite3OsInMutex(int); +ThreadData *sqlite3OsThreadSpecificData(int); +void *sqlite3OsMalloc(int); +void *sqlite3OsRealloc(void *, int); +void sqlite3OsFree(void *); +int sqlite3OsAllocationSize(void *); +void *sqlite3OsDlopen(const char*); +void *sqlite3OsDlsym(void*, const char*); +int sqlite3OsDlclose(void*); + +/* +** If the SQLITE_ENABLE_REDEF_IO macro is defined, then the OS-layer +** interface routines are not called directly but are invoked using +** pointers to functions. This allows the implementation of various +** OS-layer interface routines to be modified at run-time. There are +** obscure but legitimate reasons for wanting to do this. But for +** most users, a direct call to the underlying interface is preferable +** so the the redefinable I/O interface is turned off by default. +*/ +#ifdef SQLITE_ENABLE_REDEF_IO + +/* +** When redefinable I/O is enabled, a single global instance of the +** following structure holds pointers to the routines that SQLite +** uses to talk with the underlying operating system. Modify this +** structure (before using any SQLite API!) to accomodate perculiar +** operating system interfaces or behaviors. +*/ +struct sqlite3OsVtbl { + int (*xOpenReadWrite)(const char*, OsFile**, int*); + int (*xOpenExclusive)(const char*, OsFile**, int); + int (*xOpenReadOnly)(const char*, OsFile**); + + int (*xDelete)(const char*); + int (*xFileExists)(const char*); + char *(*xFullPathname)(const char*); + int (*xIsDirWritable)(char*); + int (*xSyncDirectory)(const char*); + int (*xTempFileName)(char*); + + int (*xRandomSeed)(char*); + int (*xSleep)(int ms); + int (*xCurrentTime)(double*); + + void (*xEnterMutex)(void); + void (*xLeaveMutex)(void); + int (*xInMutex)(int); + ThreadData *(*xThreadSpecificData)(int); + + void *(*xMalloc)(int); + void *(*xRealloc)(void *, int); + void (*xFree)(void *); + int (*xAllocationSize)(void *); + + void *(*xDlopen)(const char*); + void *(*xDlsym)(void*, const char*); + int (*xDlclose)(void*); +}; + +/* Macro used to comment out routines that do not exists when there is +** no disk I/O or extension loading +*/ +#ifdef SQLITE_OMIT_DISKIO +# define IF_DISKIO(X) 0 +#else +# define IF_DISKIO(X) X +#endif +#ifdef SQLITE_OMIT_LOAD_EXTENSION +# define IF_DLOPEN(X) 0 +#else +# define IF_DLOPEN(X) X +#endif + + +#ifdef _SQLITE_OS_C_ + /* + ** The os.c file implements the global virtual function table. + */ + struct sqlite3OsVtbl sqlite3Os = { + IF_DISKIO( sqlite3OsOpenReadWrite ), + IF_DISKIO( sqlite3OsOpenExclusive ), + IF_DISKIO( sqlite3OsOpenReadOnly ), + IF_DISKIO( sqlite3OsDelete ), + IF_DISKIO( sqlite3OsFileExists ), + IF_DISKIO( sqlite3OsFullPathname ), + IF_DISKIO( sqlite3OsIsDirWritable ), + IF_DISKIO( sqlite3OsSyncDirectory ), + IF_DISKIO( sqlite3OsTempFileName ), + sqlite3OsRandomSeed, + sqlite3OsSleep, + sqlite3OsCurrentTime, + sqlite3OsEnterMutex, + sqlite3OsLeaveMutex, + sqlite3OsInMutex, + sqlite3OsThreadSpecificData, + sqlite3OsMalloc, + sqlite3OsRealloc, + sqlite3OsFree, + sqlite3OsAllocationSize, + IF_DLOPEN( sqlite3OsDlopen ), + IF_DLOPEN( sqlite3OsDlsym ), + IF_DLOPEN( sqlite3OsDlclose ), + }; +#else + /* + ** Files other than os.c just reference the global virtual function table. + */ + extern struct sqlite3OsVtbl sqlite3Os; +#endif /* _SQLITE_OS_C_ */ + + +/* This additional API routine is available with redefinable I/O */ +struct sqlite3OsVtbl *sqlite3_os_switch(void); + + +/* +** Redefine the OS interface to go through the virtual function table +** rather than calling routines directly. +*/ +#undef sqlite3OsOpenReadWrite +#undef sqlite3OsOpenExclusive +#undef sqlite3OsOpenReadOnly +#undef sqlite3OsDelete +#undef sqlite3OsFileExists +#undef sqlite3OsFullPathname +#undef sqlite3OsIsDirWritable +#undef sqlite3OsSyncDirectory +#undef sqlite3OsTempFileName +#undef sqlite3OsRandomSeed +#undef sqlite3OsSleep +#undef sqlite3OsCurrentTime +#undef sqlite3OsEnterMutex +#undef sqlite3OsLeaveMutex +#undef sqlite3OsInMutex +#undef sqlite3OsThreadSpecificData +#undef sqlite3OsMalloc +#undef sqlite3OsRealloc +#undef sqlite3OsFree +#undef sqlite3OsAllocationSize +#define sqlite3OsOpenReadWrite sqlite3Os.xOpenReadWrite +#define sqlite3OsOpenExclusive sqlite3Os.xOpenExclusive +#define sqlite3OsOpenReadOnly sqlite3Os.xOpenReadOnly +#define sqlite3OsDelete sqlite3Os.xDelete +#define sqlite3OsFileExists sqlite3Os.xFileExists +#define sqlite3OsFullPathname sqlite3Os.xFullPathname +#define sqlite3OsIsDirWritable sqlite3Os.xIsDirWritable +#define sqlite3OsSyncDirectory sqlite3Os.xSyncDirectory +#define sqlite3OsTempFileName sqlite3Os.xTempFileName +#define sqlite3OsRandomSeed sqlite3Os.xRandomSeed +#define sqlite3OsSleep sqlite3Os.xSleep +#define sqlite3OsCurrentTime sqlite3Os.xCurrentTime +#define sqlite3OsEnterMutex sqlite3Os.xEnterMutex +#define sqlite3OsLeaveMutex sqlite3Os.xLeaveMutex +#define sqlite3OsInMutex sqlite3Os.xInMutex +#define sqlite3OsThreadSpecificData sqlite3Os.xThreadSpecificData +#define sqlite3OsMalloc sqlite3Os.xMalloc +#define sqlite3OsRealloc sqlite3Os.xRealloc +#define sqlite3OsFree sqlite3Os.xFree +#define sqlite3OsAllocationSize sqlite3Os.xAllocationSize + +#endif /* SQLITE_ENABLE_REDEF_IO */ + +#endif /* _SQLITE_OS_H_ */ diff --git a/src/dep/src/sqlite/os_common.h b/src/dep/src/sqlite/os_common.h new file mode 100644 index 0000000..863e3cd --- /dev/null +++ b/src/dep/src/sqlite/os_common.h @@ -0,0 +1,188 @@ +/* +** 2004 May 22 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** This file contains macros and a little bit of code that is common to +** all of the platform-specific files (os_*.c) and is #included into those +** files. +** +** This file should be #included by the os_*.c files only. It is not a +** general purpose header file. +*/ + +/* +** At least two bugs have slipped in because we changed the MEMORY_DEBUG +** macro to SQLITE_DEBUG and some older makefiles have not yet made the +** switch. The following code should catch this problem at compile-time. +*/ +#ifdef MEMORY_DEBUG +# error "The MEMORY_DEBUG macro is obsolete. Use SQLITE_DEBUG instead." +#endif + + +/* + * When testing, this global variable stores the location of the + * pending-byte in the database file. + */ +#ifdef SQLITE_TEST +unsigned int sqlite3_pending_byte = 0x40000000; +#endif + +int sqlite3_os_trace = 0; +#ifdef SQLITE_DEBUG +static int last_page = 0; +#define SEEK(X) last_page=(X) +#define TRACE1(X) if( sqlite3_os_trace ) sqlite3DebugPrintf(X) +#define TRACE2(X,Y) if( sqlite3_os_trace ) sqlite3DebugPrintf(X,Y) +#define TRACE3(X,Y,Z) if( sqlite3_os_trace ) sqlite3DebugPrintf(X,Y,Z) +#define TRACE4(X,Y,Z,A) if( sqlite3_os_trace ) sqlite3DebugPrintf(X,Y,Z,A) +#define TRACE5(X,Y,Z,A,B) if( sqlite3_os_trace ) sqlite3DebugPrintf(X,Y,Z,A,B) +#define TRACE6(X,Y,Z,A,B,C) if(sqlite3_os_trace) sqlite3DebugPrintf(X,Y,Z,A,B,C) +#define TRACE7(X,Y,Z,A,B,C,D) \ + if(sqlite3_os_trace) sqlite3DebugPrintf(X,Y,Z,A,B,C,D) +#else +#define SEEK(X) +#define TRACE1(X) +#define TRACE2(X,Y) +#define TRACE3(X,Y,Z) +#define TRACE4(X,Y,Z,A) +#define TRACE5(X,Y,Z,A,B) +#define TRACE6(X,Y,Z,A,B,C) +#define TRACE7(X,Y,Z,A,B,C,D) +#endif + +/* +** Macros for performance tracing. Normally turned off. Only works +** on i486 hardware. +*/ +#ifdef SQLITE_PERFORMANCE_TRACE +__inline__ unsigned long long int hwtime(void){ + unsigned long long int x; + __asm__("rdtsc\n\t" + "mov %%edx, %%ecx\n\t" + :"=A" (x)); + return x; +} +static unsigned long long int g_start; +static unsigned int elapse; +#define TIMER_START g_start=hwtime() +#define TIMER_END elapse=hwtime()-g_start +#define TIMER_ELAPSED elapse +#else +#define TIMER_START +#define TIMER_END +#define TIMER_ELAPSED 0 +#endif + +/* +** If we compile with the SQLITE_TEST macro set, then the following block +** of code will give us the ability to simulate a disk I/O error. This +** is used for testing the I/O recovery logic. +*/ +#ifdef SQLITE_TEST +int sqlite3_io_error_hit = 0; +int sqlite3_io_error_pending = 0; +int sqlite3_diskfull_pending = 0; +int sqlite3_diskfull = 0; +#define SimulateIOError(CODE) \ + if( sqlite3_io_error_pending ) \ + if( sqlite3_io_error_pending-- == 1 ){ local_ioerr(); CODE; } +static void local_ioerr(){ + sqlite3_io_error_hit = 1; /* Really just a place to set a breakpoint */ +} +#define SimulateDiskfullError(CODE) \ + if( sqlite3_diskfull_pending ){ \ + if( sqlite3_diskfull_pending == 1 ){ \ + local_ioerr(); \ + sqlite3_diskfull = 1; \ + CODE; \ + }else{ \ + sqlite3_diskfull_pending--; \ + } \ + } +#else +#define SimulateIOError(A) +#define SimulateDiskfullError(A) +#endif + +/* +** When testing, keep a count of the number of open files. +*/ +#ifdef SQLITE_TEST +int sqlite3_open_file_count = 0; +#define OpenCounter(X) sqlite3_open_file_count+=(X) +#else +#define OpenCounter(X) +#endif + +/* +** sqlite3GenericMalloc +** sqlite3GenericRealloc +** sqlite3GenericOsFree +** sqlite3GenericAllocationSize +** +** Implementation of the os level dynamic memory allocation interface in terms +** of the standard malloc(), realloc() and free() found in many operating +** systems. No rocket science here. +** +** There are two versions of these four functions here. The version +** implemented here is only used if memory-management or memory-debugging is +** enabled. This version allocates an extra 8-bytes at the beginning of each +** block and stores the size of the allocation there. +** +** If neither memory-management or debugging is enabled, the second +** set of implementations is used instead. +*/ +#if defined(SQLITE_ENABLE_MEMORY_MANAGEMENT) || defined (SQLITE_MEMDEBUG) +void *sqlite3GenericMalloc(int n){ + char *p = (char *)malloc(n+8); + assert(n>0); + assert(sizeof(int)<=8); + if( p ){ + *(int *)p = n; + p += 8; + } + return (void *)p; +} +void *sqlite3GenericRealloc(void *p, int n){ + char *p2 = ((char *)p - 8); + assert(n>0); + p2 = (char*)realloc(p2, n+8); + if( p2 ){ + *(int *)p2 = n; + p2 += 8; + } + return (void *)p2; +} +void sqlite3GenericFree(void *p){ + assert(p); + free((void *)((char *)p - 8)); +} +int sqlite3GenericAllocationSize(void *p){ + return p ? *(int *)((char *)p - 8) : 0; +} +#else +void *sqlite3GenericMalloc(int n){ + char *p = (char *)malloc(n); + return (void *)p; +} +void *sqlite3GenericRealloc(void *p, int n){ + assert(n>0); + p = realloc(p, n); + return p; +} +void sqlite3GenericFree(void *p){ + assert(p); + free(p); +} +/* Never actually used, but needed for the linker */ +int sqlite3GenericAllocationSize(void *p){ return 0; } +#endif diff --git a/src/dep/src/sqlite/os_os2.c b/src/dep/src/sqlite/os_os2.c new file mode 100644 index 0000000..0a008e1 --- /dev/null +++ b/src/dep/src/sqlite/os_os2.c @@ -0,0 +1,991 @@ +/* +** 2006 Feb 14 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** This file contains code that is specific to OS/2. +*/ + +#if (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ >= 3) && defined(OS2_HIGH_MEMORY) +/* os2safe.h has to be included before os2.h, needed for high mem */ +#include +#endif + +#include "sqliteInt.h" +#include "os.h" + +#if OS_OS2 + +/* +** Macros used to determine whether or not to use threads. +*/ +#if defined(THREADSAFE) && THREADSAFE +# define SQLITE_OS2_THREADS 1 +#endif + +/* +** Include code that is common to all os_*.c files +*/ +#include "os_common.h" + +/* +** The os2File structure is subclass of OsFile specific for the OS/2 +** protability layer. +*/ +typedef struct os2File os2File; +struct os2File { + IoMethod const *pMethod; /* Always the first entry */ + HFILE h; /* Handle for accessing the file */ + int delOnClose; /* True if file is to be deleted on close */ + char* pathToDel; /* Name of file to delete on close */ + unsigned char locktype; /* Type of lock currently held on this file */ +}; + +/* +** Do not include any of the File I/O interface procedures if the +** SQLITE_OMIT_DISKIO macro is defined (indicating that there database +** will be in-memory only) +*/ +#ifndef SQLITE_OMIT_DISKIO + +/* +** Delete the named file +*/ +int sqlite3Os2Delete( const char *zFilename ){ + APIRET rc = NO_ERROR; + + rc = DosDelete( (PSZ)zFilename ); + TRACE2( "DELETE \"%s\"\n", zFilename ); + return rc == NO_ERROR ? SQLITE_OK : SQLITE_IOERR; +} + +/* +** Return TRUE if the named file exists. +*/ +int sqlite3Os2FileExists( const char *zFilename ){ + FILESTATUS3 fsts3ConfigInfo; + memset(&fsts3ConfigInfo, 0, sizeof(fsts3ConfigInfo)); + return DosQueryPathInfo( (PSZ)zFilename, FIL_STANDARD, + &fsts3ConfigInfo, sizeof(FILESTATUS3) ) == NO_ERROR; +} + +/* Forward declaration */ +int allocateOs2File( os2File *pInit, OsFile **pld ); + +/* +** Attempt to open a file for both reading and writing. If that +** fails, try opening it read-only. If the file does not exist, +** try to create it. +** +** On success, a handle for the open file is written to *id +** and *pReadonly is set to 0 if the file was opened for reading and +** writing or 1 if the file was opened read-only. The function returns +** SQLITE_OK. +** +** On failure, the function returns SQLITE_CANTOPEN and leaves +** *id and *pReadonly unchanged. +*/ +int sqlite3Os2OpenReadWrite( + const char *zFilename, + OsFile **pld, + int *pReadonly +){ + os2File f; + HFILE hf; + ULONG ulAction; + APIRET rc = NO_ERROR; + + assert( *pld == 0 ); + rc = DosOpen( (PSZ)zFilename, &hf, &ulAction, 0L, + FILE_ARCHIVED | FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_OPEN_IF_EXISTS, + OPEN_FLAGS_FAIL_ON_ERROR | OPEN_FLAGS_RANDOM | + OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, (PEAOP2)NULL ); + if( rc != NO_ERROR ){ + rc = DosOpen( (PSZ)zFilename, &hf, &ulAction, 0L, + FILE_ARCHIVED | FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_OPEN_IF_EXISTS, + OPEN_FLAGS_FAIL_ON_ERROR | OPEN_FLAGS_RANDOM | + OPEN_SHARE_DENYWRITE | OPEN_ACCESS_READONLY, (PEAOP2)NULL ); + if( rc != NO_ERROR ){ + return SQLITE_CANTOPEN; + } + *pReadonly = 1; + } + else{ + *pReadonly = 0; + } + f.h = hf; + f.locktype = NO_LOCK; + f.delOnClose = 0; + f.pathToDel = NULL; + OpenCounter(+1); + TRACE3( "OPEN R/W %d \"%s\"\n", hf, zFilename ); + return allocateOs2File( &f, pld ); +} + + +/* +** Attempt to open a new file for exclusive access by this process. +** The file will be opened for both reading and writing. To avoid +** a potential security problem, we do not allow the file to have +** previously existed. Nor do we allow the file to be a symbolic +** link. +** +** If delFlag is true, then make arrangements to automatically delete +** the file when it is closed. +** +** On success, write the file handle into *id and return SQLITE_OK. +** +** On failure, return SQLITE_CANTOPEN. +*/ +int sqlite3Os2OpenExclusive( const char *zFilename, OsFile **pld, int delFlag ){ + os2File f; + HFILE hf; + ULONG ulAction; + APIRET rc = NO_ERROR; + + assert( *pld == 0 ); + rc = DosOpen( (PSZ)zFilename, &hf, &ulAction, 0L, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_FAIL_ON_ERROR | OPEN_FLAGS_RANDOM | + OPEN_SHARE_DENYREADWRITE | OPEN_ACCESS_READWRITE, (PEAOP2)NULL ); + if( rc != NO_ERROR ){ + return SQLITE_CANTOPEN; + } + + f.h = hf; + f.locktype = NO_LOCK; + f.delOnClose = delFlag ? 1 : 0; + f.pathToDel = delFlag ? sqlite3OsFullPathname( zFilename ) : NULL; + OpenCounter( +1 ); + if( delFlag ) DosForceDelete( sqlite3OsFullPathname( zFilename ) ); + TRACE3( "OPEN EX %d \"%s\"\n", hf, sqlite3OsFullPathname ( zFilename ) ); + return allocateOs2File( &f, pld ); +} + +/* +** Attempt to open a new file for read-only access. +** +** On success, write the file handle into *id and return SQLITE_OK. +** +** On failure, return SQLITE_CANTOPEN. +*/ +int sqlite3Os2OpenReadOnly( const char *zFilename, OsFile **pld ){ + os2File f; + HFILE hf; + ULONG ulAction; + APIRET rc = NO_ERROR; + + assert( *pld == 0 ); + rc = DosOpen( (PSZ)zFilename, &hf, &ulAction, 0L, + FILE_NORMAL, OPEN_ACTION_OPEN_IF_EXISTS, + OPEN_FLAGS_FAIL_ON_ERROR | OPEN_FLAGS_RANDOM | + OPEN_SHARE_DENYWRITE | OPEN_ACCESS_READONLY, (PEAOP2)NULL ); + if( rc != NO_ERROR ){ + return SQLITE_CANTOPEN; + } + f.h = hf; + f.locktype = NO_LOCK; + f.delOnClose = 0; + f.pathToDel = NULL; + OpenCounter( +1 ); + TRACE3( "OPEN RO %d \"%s\"\n", hf, zFilename ); + return allocateOs2File( &f, pld ); +} + +/* +** Attempt to open a file descriptor for the directory that contains a +** file. This file descriptor can be used to fsync() the directory +** in order to make sure the creation of a new file is actually written +** to disk. +** +** This routine is only meaningful for Unix. It is a no-op under +** OS/2 since OS/2 does not support hard links. +** +** On success, a handle for a previously open file is at *id is +** updated with the new directory file descriptor and SQLITE_OK is +** returned. +** +** On failure, the function returns SQLITE_CANTOPEN and leaves +** *id unchanged. +*/ +int os2OpenDirectory( + OsFile *id, + const char *zDirname +){ + return SQLITE_OK; +} + +/* +** If the following global variable points to a string which is the +** name of a directory, then that directory will be used to store +** temporary files. +*/ +char *sqlite3_temp_directory = 0; + +/* +** Create a temporary file name in zBuf. zBuf must be big enough to +** hold at least SQLITE_TEMPNAME_SIZE characters. +*/ +int sqlite3Os2TempFileName( char *zBuf ){ + static const unsigned char zChars[] = + "abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "0123456789"; + int i, j; + PSZ zTempPath = 0; + if( DosScanEnv( "TEMP", &zTempPath ) ){ + if( DosScanEnv( "TMP", &zTempPath ) ){ + if( DosScanEnv( "TMPDIR", &zTempPath ) ){ + ULONG ulDriveNum = 0, ulDriveMap = 0; + DosQueryCurrentDisk( &ulDriveNum, &ulDriveMap ); + sprintf( zTempPath, "%c:", (char)( 'A' + ulDriveNum - 1 ) ); + } + } + } + for(;;){ + sprintf( zBuf, "%s\\"TEMP_FILE_PREFIX, zTempPath ); + j = strlen( zBuf ); + sqlite3Randomness( 15, &zBuf[j] ); + for( i = 0; i < 15; i++, j++ ){ + zBuf[j] = (char)zChars[ ((unsigned char)zBuf[j])%(sizeof(zChars)-1) ]; + } + zBuf[j] = 0; + if( !sqlite3OsFileExists( zBuf ) ) break; + } + TRACE2( "TEMP FILENAME: %s\n", zBuf ); + return SQLITE_OK; +} + +/* +** Close a file. +*/ +int os2Close( OsFile **pld ){ + os2File *pFile; + APIRET rc = NO_ERROR; + if( pld && (pFile = (os2File*)*pld) != 0 ){ + TRACE2( "CLOSE %d\n", pFile->h ); + rc = DosClose( pFile->h ); + pFile->locktype = NO_LOCK; + if( pFile->delOnClose != 0 ){ + rc = DosForceDelete( pFile->pathToDel ); + } + *pld = 0; + OpenCounter( -1 ); + } + + return rc == NO_ERROR ? SQLITE_OK : SQLITE_IOERR; +} + +/* +** Read data from a file into a buffer. Return SQLITE_OK if all +** bytes were read successfully and SQLITE_IOERR if anything goes +** wrong. +*/ +int os2Read( OsFile *id, void *pBuf, int amt ){ + ULONG got; + assert( id!=0 ); + SimulateIOError( return SQLITE_IOERR ); + TRACE3( "READ %d lock=%d\n", ((os2File*)id)->h, ((os2File*)id)->locktype ); + DosRead( ((os2File*)id)->h, pBuf, amt, &got ); + return (got == (ULONG)amt) ? SQLITE_OK : SQLITE_IOERR_SHORT_READ; +} + +/* +** Write data from a buffer into a file. Return SQLITE_OK on success +** or some other error code on failure. +*/ +int os2Write( OsFile *id, const void *pBuf, int amt ){ + APIRET rc = NO_ERROR; + ULONG wrote; + assert( id!=0 ); + SimulateIOError( return SQLITE_IOERR ); + SimulateDiskfullError( return SQLITE_FULL ); + TRACE3( "WRITE %d lock=%d\n", ((os2File*)id)->h, ((os2File*)id)->locktype ); + while( amt > 0 && + (rc = DosWrite( ((os2File*)id)->h, (PVOID)pBuf, amt, &wrote )) && wrote > 0 ){ + amt -= wrote; + pBuf = &((char*)pBuf)[wrote]; + } + + return ( rc != NO_ERROR || amt > (int)wrote ) ? SQLITE_FULL : SQLITE_OK; +} + +/* +** Move the read/write pointer in a file. +*/ +int os2Seek( OsFile *id, i64 offset ){ + APIRET rc = NO_ERROR; + ULONG filePointer = 0L; + assert( id!=0 ); + rc = DosSetFilePtr( ((os2File*)id)->h, offset, FILE_BEGIN, &filePointer ); + TRACE3( "SEEK %d %lld\n", ((os2File*)id)->h, offset ); + return rc == NO_ERROR ? SQLITE_OK : SQLITE_IOERR; +} + +/* +** Make sure all writes to a particular file are committed to disk. +*/ +int os2Sync( OsFile *id, int dataOnly ){ + assert( id!=0 ); + TRACE3( "SYNC %d lock=%d\n", ((os2File*)id)->h, ((os2File*)id)->locktype ); + return DosResetBuffer( ((os2File*)id)->h ) == NO_ERROR ? SQLITE_OK : SQLITE_IOERR; +} + +/* +** Sync the directory zDirname. This is a no-op on operating systems other +** than UNIX. +*/ +int sqlite3Os2SyncDirectory( const char *zDirname ){ + SimulateIOError( return SQLITE_IOERR ); + return SQLITE_OK; +} + +/* +** Truncate an open file to a specified size +*/ +int os2Truncate( OsFile *id, i64 nByte ){ + APIRET rc = NO_ERROR; + ULONG upperBits = nByte>>32; + assert( id!=0 ); + TRACE3( "TRUNCATE %d %lld\n", ((os2File*)id)->h, nByte ); + SimulateIOError( return SQLITE_IOERR ); + rc = DosSetFilePtr( ((os2File*)id)->h, nByte, FILE_BEGIN, &upperBits ); + if( rc != NO_ERROR ){ + return SQLITE_IOERR; + } + rc = DosSetFilePtr( ((os2File*)id)->h, 0L, FILE_END, &upperBits ); + return rc == NO_ERROR ? SQLITE_OK : SQLITE_IOERR; +} + +/* +** Determine the current size of a file in bytes +*/ +int os2FileSize( OsFile *id, i64 *pSize ){ + APIRET rc = NO_ERROR; + FILESTATUS3 fsts3FileInfo; + memset(&fsts3FileInfo, 0, sizeof(fsts3FileInfo)); + assert( id!=0 ); + SimulateIOError( return SQLITE_IOERR ); + rc = DosQueryFileInfo( ((os2File*)id)->h, FIL_STANDARD, &fsts3FileInfo, sizeof(FILESTATUS3) ); + if( rc == NO_ERROR ){ + *pSize = fsts3FileInfo.cbFile; + return SQLITE_OK; + } + else{ + return SQLITE_IOERR; + } +} + +/* +** Acquire a reader lock. +*/ +static int getReadLock( os2File *id ){ + FILELOCK LockArea, + UnlockArea; + memset(&LockArea, 0, sizeof(LockArea)); + memset(&UnlockArea, 0, sizeof(UnlockArea)); + LockArea.lOffset = SHARED_FIRST; + LockArea.lRange = SHARED_SIZE; + UnlockArea.lOffset = 0L; + UnlockArea.lRange = 0L; + return DosSetFileLocks( id->h, &UnlockArea, &LockArea, 2000L, 1L ); +} + +/* +** Undo a readlock +*/ +static int unlockReadLock( os2File *id ){ + FILELOCK LockArea, + UnlockArea; + memset(&LockArea, 0, sizeof(LockArea)); + memset(&UnlockArea, 0, sizeof(UnlockArea)); + LockArea.lOffset = 0L; + LockArea.lRange = 0L; + UnlockArea.lOffset = SHARED_FIRST; + UnlockArea.lRange = SHARED_SIZE; + return DosSetFileLocks( id->h, &UnlockArea, &LockArea, 2000L, 1L ); +} + +#ifndef SQLITE_OMIT_PAGER_PRAGMAS +/* +** Check that a given pathname is a directory and is writable +** +*/ +int sqlite3Os2IsDirWritable( char *zDirname ){ + FILESTATUS3 fsts3ConfigInfo; + APIRET rc = NO_ERROR; + memset(&fsts3ConfigInfo, 0, sizeof(fsts3ConfigInfo)); + if( zDirname==0 ) return 0; + if( strlen(zDirname)>CCHMAXPATH ) return 0; + rc = DosQueryPathInfo( (PSZ)zDirname, FIL_STANDARD, &fsts3ConfigInfo, sizeof(FILESTATUS3) ); + if( rc != NO_ERROR ) return 0; + if( (fsts3ConfigInfo.attrFile & FILE_DIRECTORY) != FILE_DIRECTORY ) return 0; + + return 1; +} +#endif /* SQLITE_OMIT_PAGER_PRAGMAS */ + +/* +** Lock the file with the lock specified by parameter locktype - one +** of the following: +** +** (1) SHARED_LOCK +** (2) RESERVED_LOCK +** (3) PENDING_LOCK +** (4) EXCLUSIVE_LOCK +** +** Sometimes when requesting one lock state, additional lock states +** are inserted in between. The locking might fail on one of the later +** transitions leaving the lock state different from what it started but +** still short of its goal. The following chart shows the allowed +** transitions and the inserted intermediate states: +** +** UNLOCKED -> SHARED +** SHARED -> RESERVED +** SHARED -> (PENDING) -> EXCLUSIVE +** RESERVED -> (PENDING) -> EXCLUSIVE +** PENDING -> EXCLUSIVE +** +** This routine will only increase a lock. The os2Unlock() routine +** erases all locks at once and returns us immediately to locking level 0. +** It is not possible to lower the locking level one step at a time. You +** must go straight to locking level 0. +*/ +int os2Lock( OsFile *id, int locktype ){ + APIRET rc = SQLITE_OK; /* Return code from subroutines */ + APIRET res = NO_ERROR; /* Result of an OS/2 lock call */ + int newLocktype; /* Set id->locktype to this value before exiting */ + int gotPendingLock = 0;/* True if we acquired a PENDING lock this time */ + FILELOCK LockArea, + UnlockArea; + os2File *pFile = (os2File*)id; + memset(&LockArea, 0, sizeof(LockArea)); + memset(&UnlockArea, 0, sizeof(UnlockArea)); + assert( pFile!=0 ); + TRACE4( "LOCK %d %d was %d\n", pFile->h, locktype, pFile->locktype ); + + /* If there is already a lock of this type or more restrictive on the + ** OsFile, do nothing. Don't use the end_lock: exit path, as + ** sqlite3OsEnterMutex() hasn't been called yet. + */ + if( pFile->locktype>=locktype ){ + return SQLITE_OK; + } + + /* Make sure the locking sequence is correct + */ + assert( pFile->locktype!=NO_LOCK || locktype==SHARED_LOCK ); + assert( locktype!=PENDING_LOCK ); + assert( locktype!=RESERVED_LOCK || pFile->locktype==SHARED_LOCK ); + + /* Lock the PENDING_LOCK byte if we need to acquire a PENDING lock or + ** a SHARED lock. If we are acquiring a SHARED lock, the acquisition of + ** the PENDING_LOCK byte is temporary. + */ + newLocktype = pFile->locktype; + if( pFile->locktype==NO_LOCK + || (locktype==EXCLUSIVE_LOCK && pFile->locktype==RESERVED_LOCK) + ){ + int cnt = 3; + + LockArea.lOffset = PENDING_BYTE; + LockArea.lRange = 1L; + UnlockArea.lOffset = 0L; + UnlockArea.lRange = 0L; + + while( cnt-->0 && (res = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L) )!=NO_ERROR ){ + /* Try 3 times to get the pending lock. The pending lock might be + ** held by another reader process who will release it momentarily. + */ + TRACE2( "could not get a PENDING lock. cnt=%d\n", cnt ); + DosSleep(1); + } + gotPendingLock = res; + } + + /* Acquire a shared lock + */ + if( locktype==SHARED_LOCK && res ){ + assert( pFile->locktype==NO_LOCK ); + res = getReadLock(pFile); + if( res == NO_ERROR ){ + newLocktype = SHARED_LOCK; + } + } + + /* Acquire a RESERVED lock + */ + if( locktype==RESERVED_LOCK && res ){ + assert( pFile->locktype==SHARED_LOCK ); + LockArea.lOffset = RESERVED_BYTE; + LockArea.lRange = 1L; + UnlockArea.lOffset = 0L; + UnlockArea.lRange = 0L; + res = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L ); + if( res == NO_ERROR ){ + newLocktype = RESERVED_LOCK; + } + } + + /* Acquire a PENDING lock + */ + if( locktype==EXCLUSIVE_LOCK && res ){ + newLocktype = PENDING_LOCK; + gotPendingLock = 0; + } + + /* Acquire an EXCLUSIVE lock + */ + if( locktype==EXCLUSIVE_LOCK && res ){ + assert( pFile->locktype>=SHARED_LOCK ); + res = unlockReadLock(pFile); + TRACE2( "unreadlock = %d\n", res ); + LockArea.lOffset = SHARED_FIRST; + LockArea.lRange = SHARED_SIZE; + UnlockArea.lOffset = 0L; + UnlockArea.lRange = 0L; + res = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L ); + if( res == NO_ERROR ){ + newLocktype = EXCLUSIVE_LOCK; + }else{ + TRACE2( "error-code = %d\n", res ); + } + } + + /* If we are holding a PENDING lock that ought to be released, then + ** release it now. + */ + if( gotPendingLock && locktype==SHARED_LOCK ){ + LockArea.lOffset = 0L; + LockArea.lRange = 0L; + UnlockArea.lOffset = PENDING_BYTE; + UnlockArea.lRange = 1L; + DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L ); + } + + /* Update the state of the lock has held in the file descriptor then + ** return the appropriate result code. + */ + if( res == NO_ERROR ){ + rc = SQLITE_OK; + }else{ + TRACE4( "LOCK FAILED %d trying for %d but got %d\n", pFile->h, + locktype, newLocktype ); + rc = SQLITE_BUSY; + } + pFile->locktype = newLocktype; + return rc; +} + +/* +** This routine checks if there is a RESERVED lock held on the specified +** file by this or any other process. If such a lock is held, return +** non-zero, otherwise zero. +*/ +int os2CheckReservedLock( OsFile *id ){ + APIRET rc = NO_ERROR; + os2File *pFile = (os2File*)id; + assert( pFile!=0 ); + if( pFile->locktype>=RESERVED_LOCK ){ + rc = 1; + TRACE3( "TEST WR-LOCK %d %d (local)\n", pFile->h, rc ); + }else{ + FILELOCK LockArea, + UnlockArea; + memset(&LockArea, 0, sizeof(LockArea)); + memset(&UnlockArea, 0, sizeof(UnlockArea)); + LockArea.lOffset = RESERVED_BYTE; + LockArea.lRange = 1L; + UnlockArea.lOffset = 0L; + UnlockArea.lRange = 0L; + rc = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L ); + if( rc == NO_ERROR ){ + LockArea.lOffset = 0L; + LockArea.lRange = 0L; + UnlockArea.lOffset = RESERVED_BYTE; + UnlockArea.lRange = 1L; + rc = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L ); + } + TRACE3( "TEST WR-LOCK %d %d (remote)\n", pFile->h, rc ); + } + return rc; +} + +/* +** Lower the locking level on file descriptor id to locktype. locktype +** must be either NO_LOCK or SHARED_LOCK. +** +** If the locking level of the file descriptor is already at or below +** the requested locking level, this routine is a no-op. +** +** It is not possible for this routine to fail if the second argument +** is NO_LOCK. If the second argument is SHARED_LOCK then this routine +** might return SQLITE_IOERR; +*/ +int os2Unlock( OsFile *id, int locktype ){ + int type; + APIRET rc = SQLITE_OK; + os2File *pFile = (os2File*)id; + FILELOCK LockArea, + UnlockArea; + memset(&LockArea, 0, sizeof(LockArea)); + memset(&UnlockArea, 0, sizeof(UnlockArea)); + assert( pFile!=0 ); + assert( locktype<=SHARED_LOCK ); + TRACE4( "UNLOCK %d to %d was %d\n", pFile->h, locktype, pFile->locktype ); + type = pFile->locktype; + if( type>=EXCLUSIVE_LOCK ){ + LockArea.lOffset = 0L; + LockArea.lRange = 0L; + UnlockArea.lOffset = SHARED_FIRST; + UnlockArea.lRange = SHARED_SIZE; + DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L ); + if( locktype==SHARED_LOCK && getReadLock(pFile) != NO_ERROR ){ + /* This should never happen. We should always be able to + ** reacquire the read lock */ + rc = SQLITE_IOERR; + } + } + if( type>=RESERVED_LOCK ){ + LockArea.lOffset = 0L; + LockArea.lRange = 0L; + UnlockArea.lOffset = RESERVED_BYTE; + UnlockArea.lRange = 1L; + DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L ); + } + if( locktype==NO_LOCK && type>=SHARED_LOCK ){ + unlockReadLock(pFile); + } + if( type>=PENDING_LOCK ){ + LockArea.lOffset = 0L; + LockArea.lRange = 0L; + UnlockArea.lOffset = PENDING_BYTE; + UnlockArea.lRange = 1L; + DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L ); + } + pFile->locktype = locktype; + return rc; +} + +/* +** Turn a relative pathname into a full pathname. Return a pointer +** to the full pathname stored in space obtained from sqliteMalloc(). +** The calling function is responsible for freeing this space once it +** is no longer needed. +*/ +char *sqlite3Os2FullPathname( const char *zRelative ){ + char *zFull = 0; + if( strchr(zRelative, ':') ){ + sqlite3SetString( &zFull, zRelative, (char*)0 ); + }else{ + char zBuff[SQLITE_TEMPNAME_SIZE - 2] = {0}; + char zDrive[1] = {0}; + ULONG cbzFullLen = SQLITE_TEMPNAME_SIZE; + ULONG ulDriveNum = 0; + ULONG ulDriveMap = 0; + DosQueryCurrentDisk( &ulDriveNum, &ulDriveMap ); + DosQueryCurrentDir( 0L, zBuff, &cbzFullLen ); + zFull = sqliteMalloc( cbzFullLen ); + sprintf( zDrive, "%c", (char)('A' + ulDriveNum - 1) ); + sqlite3SetString( &zFull, zDrive, ":\\", zBuff, "\\", zRelative, (char*)0 ); + } + return zFull; +} + +/* +** The fullSync option is meaningless on os2, or correct me if I'm wrong. This is a no-op. +** From os_unix.c: Change the value of the fullsync flag in the given file descriptor. +** From os_unix.c: ((unixFile*)id)->fullSync = v; +*/ +static void os2SetFullSync( OsFile *id, int v ){ + return; +} + +/* +** Return the underlying file handle for an OsFile +*/ +static int os2FileHandle( OsFile *id ){ + return (int)((os2File*)id)->h; +} + +/* +** Return an integer that indices the type of lock currently held +** by this handle. (Used for testing and analysis only.) +*/ +static int os2LockState( OsFile *id ){ + return ((os2File*)id)->locktype; +} + +/* +** This vector defines all the methods that can operate on an OsFile +** for os2. +*/ +static const IoMethod sqlite3Os2IoMethod = { + os2Close, + os2OpenDirectory, + os2Read, + os2Write, + os2Seek, + os2Truncate, + os2Sync, + os2SetFullSync, + os2FileHandle, + os2FileSize, + os2Lock, + os2Unlock, + os2LockState, + os2CheckReservedLock, +}; + +/* +** Allocate memory for an OsFile. Initialize the new OsFile +** to the value given in pInit and return a pointer to the new +** OsFile. If we run out of memory, close the file and return NULL. +*/ +int allocateOs2File( os2File *pInit, OsFile **pld ){ + os2File *pNew; + pNew = sqliteMalloc( sizeof(*pNew) ); + if( pNew==0 ){ + DosClose( pInit->h ); + *pld = 0; + return SQLITE_NOMEM; + }else{ + *pNew = *pInit; + pNew->pMethod = &sqlite3Os2IoMethod; + pNew->locktype = NO_LOCK; + *pld = (OsFile*)pNew; + OpenCounter(+1); + return SQLITE_OK; + } +} + +#endif /* SQLITE_OMIT_DISKIO */ +/*************************************************************************** +** Everything above deals with file I/O. Everything that follows deals +** with other miscellanous aspects of the operating system interface +****************************************************************************/ + +#ifndef SQLITE_OMIT_LOAD_EXTENSION +/* +** Interfaces for opening a shared library, finding entry points +** within the shared library, and closing the shared library. +*/ +void *sqlite3Os2Dlopen(const char *zFilename){ + return 0; +} +void *sqlite3Os2Dlsym(void *pHandle, const char *zSymbol){ + return 0; +} +int sqlite3Os2Dlclose(void *pHandle){ + return 0; +} +#endif /* SQLITE_OMIT_LOAD_EXTENSION */ + + +/* +** Get information to seed the random number generator. The seed +** is written into the buffer zBuf[256]. The calling function must +** supply a sufficiently large buffer. +*/ +int sqlite3Os2RandomSeed( char *zBuf ){ + /* We have to initialize zBuf to prevent valgrind from reporting + ** errors. The reports issued by valgrind are incorrect - we would + ** prefer that the randomness be increased by making use of the + ** uninitialized space in zBuf - but valgrind errors tend to worry + ** some users. Rather than argue, it seems easier just to initialize + ** the whole array and silence valgrind, even if that means less randomness + ** in the random seed. + ** + ** When testing, initializing zBuf[] to zero is all we do. That means + ** that we always use the same random number sequence. This makes the + ** tests repeatable. + */ + memset( zBuf, 0, 256 ); + DosGetDateTime( (PDATETIME)zBuf ); + return SQLITE_OK; +} + +/* +** Sleep for a little while. Return the amount of time slept. +*/ +int sqlite3Os2Sleep( int ms ){ + DosSleep( ms ); + return ms; +} + +/* +** Static variables used for thread synchronization +*/ +static int inMutex = 0; +#ifdef SQLITE_OS2_THREADS +static ULONG mutexOwner; +#endif + +/* +** The following pair of routines implement mutual exclusion for +** multi-threaded processes. Only a single thread is allowed to +** executed code that is surrounded by EnterMutex() and LeaveMutex(). +** +** SQLite uses only a single Mutex. There is not much critical +** code and what little there is executes quickly and without blocking. +*/ +void sqlite3Os2EnterMutex(){ + PTIB ptib; +#ifdef SQLITE_OS2_THREADS + DosEnterCritSec(); + DosGetInfoBlocks( &ptib, NULL ); + mutexOwner = ptib->tib_ptib2->tib2_ultid; +#endif + assert( !inMutex ); + inMutex = 1; +} +void sqlite3Os2LeaveMutex(){ + PTIB ptib; + assert( inMutex ); + inMutex = 0; +#ifdef SQLITE_OS2_THREADS + DosGetInfoBlocks( &ptib, NULL ); + assert( mutexOwner == ptib->tib_ptib2->tib2_ultid ); + DosExitCritSec(); +#endif +} + +/* +** Return TRUE if the mutex is currently held. +** +** If the thisThreadOnly parameter is true, return true if and only if the +** calling thread holds the mutex. If the parameter is false, return +** true if any thread holds the mutex. +*/ +int sqlite3Os2InMutex( int thisThreadOnly ){ +#ifdef SQLITE_OS2_THREADS + PTIB ptib; + DosGetInfoBlocks( &ptib, NULL ); + return inMutex>0 && (thisThreadOnly==0 || mutexOwner==ptib->tib_ptib2->tib2_ultid); +#else + return inMutex>0; +#endif +} + +/* +** The following variable, if set to a non-zero value, becomes the result +** returned from sqlite3OsCurrentTime(). This is used for testing. +*/ +#ifdef SQLITE_TEST +int sqlite3_current_time = 0; +#endif + +/* +** Find the current time (in Universal Coordinated Time). Write the +** current time and date as a Julian Day number into *prNow and +** return 0. Return 1 if the time and date cannot be found. +*/ +int sqlite3Os2CurrentTime( double *prNow ){ + double now; + USHORT second, minute, hour, + day, month, year; + DATETIME dt; + DosGetDateTime( &dt ); + second = (USHORT)dt.seconds; + minute = (USHORT)dt.minutes + dt.timezone; + hour = (USHORT)dt.hours; + day = (USHORT)dt.day; + month = (USHORT)dt.month; + year = (USHORT)dt.year; + + /* Calculations from http://www.astro.keele.ac.uk/~rno/Astronomy/hjd.html + http://www.astro.keele.ac.uk/~rno/Astronomy/hjd-0.1.c */ + /* Calculate the Julian days */ + now = day - 32076 + + 1461*(year + 4800 + (month - 14)/12)/4 + + 367*(month - 2 - (month - 14)/12*12)/12 - + 3*((year + 4900 + (month - 14)/12)/100)/4; + + /* Add the fractional hours, mins and seconds */ + now += (hour + 12.0)/24.0; + now += minute/1440.0; + now += second/86400.0; + *prNow = now; +#ifdef SQLITE_TEST + if( sqlite3_current_time ){ + *prNow = sqlite3_current_time/86400.0 + 2440587.5; + } +#endif + return 0; +} + +/* +** Remember the number of thread-specific-data blocks allocated. +** Use this to verify that we are not leaking thread-specific-data. +** Ticket #1601 +*/ +#ifdef SQLITE_TEST +int sqlite3_tsd_count = 0; +# define TSD_COUNTER_INCR InterlockedIncrement( &sqlite3_tsd_count ) +# define TSD_COUNTER_DECR InterlockedDecrement( &sqlite3_tsd_count ) +#else +# define TSD_COUNTER_INCR /* no-op */ +# define TSD_COUNTER_DECR /* no-op */ +#endif + +/* +** If called with allocateFlag>1, then return a pointer to thread +** specific data for the current thread. Allocate and zero the +** thread-specific data if it does not already exist necessary. +** +** If called with allocateFlag==0, then check the current thread +** specific data. Return it if it exists. If it does not exist, +** then return NULL. +** +** If called with allocateFlag<0, check to see if the thread specific +** data is allocated and is all zero. If it is then deallocate it. +** Return a pointer to the thread specific data or NULL if it is +** unallocated or gets deallocated. +*/ +ThreadData *sqlite3Os2ThreadSpecificData( int allocateFlag ){ + static ThreadData **s_ppTsd = NULL; + static const ThreadData zeroData = {0, 0, 0}; + ThreadData *pTsd; + + if( !s_ppTsd ){ + sqlite3OsEnterMutex(); + if( !s_ppTsd ){ + PULONG pul; + APIRET rc = DosAllocThreadLocalMemory(1, &pul); + if( rc != NO_ERROR ){ + sqlite3OsLeaveMutex(); + return 0; + } + s_ppTsd = (ThreadData **)pul; + } + sqlite3OsLeaveMutex(); + } + pTsd = *s_ppTsd; + if( allocateFlag>0 ){ + if( !pTsd ){ + pTsd = sqlite3OsMalloc( sizeof(zeroData) ); + if( pTsd ){ + *pTsd = zeroData; + *s_ppTsd = pTsd; + TSD_COUNTER_INCR; + } + } + }else if( pTsd!=0 && allocateFlag<0 + && memcmp( pTsd, &zeroData, sizeof(ThreadData) )==0 ){ + sqlite3OsFree(pTsd); + *s_ppTsd = NULL; + TSD_COUNTER_DECR; + pTsd = 0; + } + return pTsd; +} +#endif /* OS_OS2 */ diff --git a/src/dep/src/sqlite/os_unix.c b/src/dep/src/sqlite/os_unix.c new file mode 100644 index 0000000..d7f05ac --- /dev/null +++ b/src/dep/src/sqlite/os_unix.c @@ -0,0 +1,2893 @@ +/* +** 2004 May 22 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** This file contains code that is specific to Unix systems. +*/ +#include "sqliteInt.h" +#include "os.h" +#if OS_UNIX /* This file is used on unix only */ + +/* #define SQLITE_ENABLE_LOCKING_STYLE 0 */ + +/* +** These #defines should enable >2GB file support on Posix if the +** underlying operating system supports it. If the OS lacks +** large file support, these should be no-ops. +** +** Large file support can be disabled using the -DSQLITE_DISABLE_LFS switch +** on the compiler command line. This is necessary if you are compiling +** on a recent machine (ex: RedHat 7.2) but you want your code to work +** on an older machine (ex: RedHat 6.0). If you compile on RedHat 7.2 +** without this option, LFS is enable. But LFS does not exist in the kernel +** in RedHat 6.0, so the code won't work. Hence, for maximum binary +** portability you should omit LFS. +*/ +#ifndef SQLITE_DISABLE_LFS +# define _LARGE_FILE 1 +# ifndef _FILE_OFFSET_BITS +# define _FILE_OFFSET_BITS 64 +# endif +# define _LARGEFILE_SOURCE 1 +#endif + +/* +** standard include files. +*/ +#include +#include +#include +#include +#include +#include +#include +#ifdef SQLITE_ENABLE_LOCKING_STYLE +#include +#include +#include +#endif /* SQLITE_ENABLE_LOCKING_STYLE */ + +/* +** If we are to be thread-safe, include the pthreads header and define +** the SQLITE_UNIX_THREADS macro. +*/ +#if defined(THREADSAFE) && THREADSAFE +# include +# define SQLITE_UNIX_THREADS 1 +#endif + +/* +** Default permissions when creating a new file +*/ +#ifndef SQLITE_DEFAULT_FILE_PERMISSIONS +# define SQLITE_DEFAULT_FILE_PERMISSIONS 0644 +#endif + + + +/* +** The unixFile structure is subclass of OsFile specific for the unix +** protability layer. +*/ +typedef struct unixFile unixFile; +struct unixFile { + IoMethod const *pMethod; /* Always the first entry */ + struct openCnt *pOpen; /* Info about all open fd's on this inode */ + struct lockInfo *pLock; /* Info about locks on this inode */ +#ifdef SQLITE_ENABLE_LOCKING_STYLE + void *lockingContext; /* Locking style specific state */ +#endif /* SQLITE_ENABLE_LOCKING_STYLE */ + int h; /* The file descriptor */ + unsigned char locktype; /* The type of lock held on this fd */ + unsigned char isOpen; /* True if needs to be closed */ + unsigned char fullSync; /* Use F_FULLSYNC if available */ + int dirfd; /* File descriptor for the directory */ + i64 offset; /* Seek offset */ +#ifdef SQLITE_UNIX_THREADS + pthread_t tid; /* The thread that "owns" this OsFile */ +#endif +}; + +/* +** Provide the ability to override some OS-layer functions during +** testing. This is used to simulate OS crashes to verify that +** commits are atomic even in the event of an OS crash. +*/ +#ifdef SQLITE_CRASH_TEST + extern int sqlite3CrashTestEnable; + extern int sqlite3CrashOpenReadWrite(const char*, OsFile**, int*); + extern int sqlite3CrashOpenExclusive(const char*, OsFile**, int); + extern int sqlite3CrashOpenReadOnly(const char*, OsFile**, int); +# define CRASH_TEST_OVERRIDE(X,A,B,C) \ + if(sqlite3CrashTestEnable){ return X(A,B,C); } +#else +# define CRASH_TEST_OVERRIDE(X,A,B,C) /* no-op */ +#endif + + +/* +** Include code that is common to all os_*.c files +*/ +#include "os_common.h" + +/* +** Do not include any of the File I/O interface procedures if the +** SQLITE_OMIT_DISKIO macro is defined (indicating that the database +** will be in-memory only) +*/ +#ifndef SQLITE_OMIT_DISKIO + + +/* +** Define various macros that are missing from some systems. +*/ +#ifndef O_LARGEFILE +# define O_LARGEFILE 0 +#endif +#ifdef SQLITE_DISABLE_LFS +# undef O_LARGEFILE +# define O_LARGEFILE 0 +#endif +#ifndef O_NOFOLLOW +# define O_NOFOLLOW 0 +#endif +#ifndef O_BINARY +# define O_BINARY 0 +#endif + +/* +** The DJGPP compiler environment looks mostly like Unix, but it +** lacks the fcntl() system call. So redefine fcntl() to be something +** that always succeeds. This means that locking does not occur under +** DJGPP. But it's DOS - what did you expect? +*/ +#ifdef __DJGPP__ +# define fcntl(A,B,C) 0 +#endif + +/* +** The threadid macro resolves to the thread-id or to 0. Used for +** testing and debugging only. +*/ +#ifdef SQLITE_UNIX_THREADS +#define threadid pthread_self() +#else +#define threadid 0 +#endif + +/* +** Set or check the OsFile.tid field. This field is set when an OsFile +** is first opened. All subsequent uses of the OsFile verify that the +** same thread is operating on the OsFile. Some operating systems do +** not allow locks to be overridden by other threads and that restriction +** means that sqlite3* database handles cannot be moved from one thread +** to another. This logic makes sure a user does not try to do that +** by mistake. +** +** Version 3.3.1 (2006-01-15): OsFiles can be moved from one thread to +** another as long as we are running on a system that supports threads +** overriding each others locks (which now the most common behavior) +** or if no locks are held. But the OsFile.pLock field needs to be +** recomputed because its key includes the thread-id. See the +** transferOwnership() function below for additional information +*/ +#if defined(SQLITE_UNIX_THREADS) +# define SET_THREADID(X) (X)->tid = pthread_self() +# define CHECK_THREADID(X) (threadsOverrideEachOthersLocks==0 && \ + !pthread_equal((X)->tid, pthread_self())) +#else +# define SET_THREADID(X) +# define CHECK_THREADID(X) 0 +#endif + +/* +** Here is the dirt on POSIX advisory locks: ANSI STD 1003.1 (1996) +** section 6.5.2.2 lines 483 through 490 specify that when a process +** sets or clears a lock, that operation overrides any prior locks set +** by the same process. It does not explicitly say so, but this implies +** that it overrides locks set by the same process using a different +** file descriptor. Consider this test case: +** +** int fd1 = open("./file1", O_RDWR|O_CREAT, 0644); +** int fd2 = open("./file2", O_RDWR|O_CREAT, 0644); +** +** Suppose ./file1 and ./file2 are really the same file (because +** one is a hard or symbolic link to the other) then if you set +** an exclusive lock on fd1, then try to get an exclusive lock +** on fd2, it works. I would have expected the second lock to +** fail since there was already a lock on the file due to fd1. +** But not so. Since both locks came from the same process, the +** second overrides the first, even though they were on different +** file descriptors opened on different file names. +** +** Bummer. If you ask me, this is broken. Badly broken. It means +** that we cannot use POSIX locks to synchronize file access among +** competing threads of the same process. POSIX locks will work fine +** to synchronize access for threads in separate processes, but not +** threads within the same process. +** +** To work around the problem, SQLite has to manage file locks internally +** on its own. Whenever a new database is opened, we have to find the +** specific inode of the database file (the inode is determined by the +** st_dev and st_ino fields of the stat structure that fstat() fills in) +** and check for locks already existing on that inode. When locks are +** created or removed, we have to look at our own internal record of the +** locks to see if another thread has previously set a lock on that same +** inode. +** +** The OsFile structure for POSIX is no longer just an integer file +** descriptor. It is now a structure that holds the integer file +** descriptor and a pointer to a structure that describes the internal +** locks on the corresponding inode. There is one locking structure +** per inode, so if the same inode is opened twice, both OsFile structures +** point to the same locking structure. The locking structure keeps +** a reference count (so we will know when to delete it) and a "cnt" +** field that tells us its internal lock status. cnt==0 means the +** file is unlocked. cnt==-1 means the file has an exclusive lock. +** cnt>0 means there are cnt shared locks on the file. +** +** Any attempt to lock or unlock a file first checks the locking +** structure. The fcntl() system call is only invoked to set a +** POSIX lock if the internal lock structure transitions between +** a locked and an unlocked state. +** +** 2004-Jan-11: +** More recent discoveries about POSIX advisory locks. (The more +** I discover, the more I realize the a POSIX advisory locks are +** an abomination.) +** +** If you close a file descriptor that points to a file that has locks, +** all locks on that file that are owned by the current process are +** released. To work around this problem, each OsFile structure contains +** a pointer to an openCnt structure. There is one openCnt structure +** per open inode, which means that multiple OsFiles can point to a single +** openCnt. When an attempt is made to close an OsFile, if there are +** other OsFiles open on the same inode that are holding locks, the call +** to close() the file descriptor is deferred until all of the locks clear. +** The openCnt structure keeps a list of file descriptors that need to +** be closed and that list is walked (and cleared) when the last lock +** clears. +** +** First, under Linux threads, because each thread has a separate +** process ID, lock operations in one thread do not override locks +** to the same file in other threads. Linux threads behave like +** separate processes in this respect. But, if you close a file +** descriptor in linux threads, all locks are cleared, even locks +** on other threads and even though the other threads have different +** process IDs. Linux threads is inconsistent in this respect. +** (I'm beginning to think that linux threads is an abomination too.) +** The consequence of this all is that the hash table for the lockInfo +** structure has to include the process id as part of its key because +** locks in different threads are treated as distinct. But the +** openCnt structure should not include the process id in its +** key because close() clears lock on all threads, not just the current +** thread. Were it not for this goofiness in linux threads, we could +** combine the lockInfo and openCnt structures into a single structure. +** +** 2004-Jun-28: +** On some versions of linux, threads can override each others locks. +** On others not. Sometimes you can change the behavior on the same +** system by setting the LD_ASSUME_KERNEL environment variable. The +** POSIX standard is silent as to which behavior is correct, as far +** as I can tell, so other versions of unix might show the same +** inconsistency. There is no little doubt in my mind that posix +** advisory locks and linux threads are profoundly broken. +** +** To work around the inconsistencies, we have to test at runtime +** whether or not threads can override each others locks. This test +** is run once, the first time any lock is attempted. A static +** variable is set to record the results of this test for future +** use. +*/ + +/* +** An instance of the following structure serves as the key used +** to locate a particular lockInfo structure given its inode. +** +** If threads cannot override each others locks, then we set the +** lockKey.tid field to the thread ID. If threads can override +** each others locks then tid is always set to zero. tid is omitted +** if we compile without threading support. +*/ +struct lockKey { + dev_t dev; /* Device number */ + ino_t ino; /* Inode number */ +#ifdef SQLITE_UNIX_THREADS + pthread_t tid; /* Thread ID or zero if threads can override each other */ +#endif +}; + +/* +** An instance of the following structure is allocated for each open +** inode on each thread with a different process ID. (Threads have +** different process IDs on linux, but not on most other unixes.) +** +** A single inode can have multiple file descriptors, so each OsFile +** structure contains a pointer to an instance of this object and this +** object keeps a count of the number of OsFiles pointing to it. +*/ +struct lockInfo { + struct lockKey key; /* The lookup key */ + int cnt; /* Number of SHARED locks held */ + int locktype; /* One of SHARED_LOCK, RESERVED_LOCK etc. */ + int nRef; /* Number of pointers to this structure */ +}; + +/* +** An instance of the following structure serves as the key used +** to locate a particular openCnt structure given its inode. This +** is the same as the lockKey except that the thread ID is omitted. +*/ +struct openKey { + dev_t dev; /* Device number */ + ino_t ino; /* Inode number */ +}; + +/* +** An instance of the following structure is allocated for each open +** inode. This structure keeps track of the number of locks on that +** inode. If a close is attempted against an inode that is holding +** locks, the close is deferred until all locks clear by adding the +** file descriptor to be closed to the pending list. +*/ +struct openCnt { + struct openKey key; /* The lookup key */ + int nRef; /* Number of pointers to this structure */ + int nLock; /* Number of outstanding locks */ + int nPending; /* Number of pending close() operations */ + int *aPending; /* Malloced space holding fd's awaiting a close() */ +}; + +/* +** These hash tables map inodes and file descriptors (really, lockKey and +** openKey structures) into lockInfo and openCnt structures. Access to +** these hash tables must be protected by a mutex. +*/ +static Hash lockHash = {SQLITE_HASH_BINARY, 0, 0, 0, + sqlite3ThreadSafeMalloc, sqlite3ThreadSafeFree, 0, 0}; +static Hash openHash = {SQLITE_HASH_BINARY, 0, 0, 0, + sqlite3ThreadSafeMalloc, sqlite3ThreadSafeFree, 0, 0}; + +#ifdef SQLITE_ENABLE_LOCKING_STYLE +/* +** The locking styles are associated with the different file locking +** capabilities supported by different file systems. +** +** POSIX locking style fully supports shared and exclusive byte-range locks +** ADP locking only supports exclusive byte-range locks +** FLOCK only supports a single file-global exclusive lock +** DOTLOCK isn't a true locking style, it refers to the use of a special +** file named the same as the database file with a '.lock' extension, this +** can be used on file systems that do not offer any reliable file locking +** NO locking means that no locking will be attempted, this is only used for +** read-only file systems currently +** UNSUPPORTED means that no locking will be attempted, this is only used for +** file systems that are known to be unsupported +*/ +typedef enum { + posixLockingStyle = 0, /* standard posix-advisory locks */ + afpLockingStyle, /* use afp locks */ + flockLockingStyle, /* use flock() */ + dotlockLockingStyle, /* use .lock files */ + noLockingStyle, /* useful for read-only file system */ + unsupportedLockingStyle /* indicates unsupported file system */ +} sqlite3LockingStyle; +#endif /* SQLITE_ENABLE_LOCKING_STYLE */ + +#ifdef SQLITE_UNIX_THREADS +/* +** This variable records whether or not threads can override each others +** locks. +** +** 0: No. Threads cannot override each others locks. +** 1: Yes. Threads can override each others locks. +** -1: We don't know yet. +** +** On some systems, we know at compile-time if threads can override each +** others locks. On those systems, the SQLITE_THREAD_OVERRIDE_LOCK macro +** will be set appropriately. On other systems, we have to check at +** runtime. On these latter systems, SQLTIE_THREAD_OVERRIDE_LOCK is +** undefined. +** +** This variable normally has file scope only. But during testing, we make +** it a global so that the test code can change its value in order to verify +** that the right stuff happens in either case. +*/ +#ifndef SQLITE_THREAD_OVERRIDE_LOCK +# define SQLITE_THREAD_OVERRIDE_LOCK -1 +#endif +#ifdef SQLITE_TEST +int threadsOverrideEachOthersLocks = SQLITE_THREAD_OVERRIDE_LOCK; +#else +static int threadsOverrideEachOthersLocks = SQLITE_THREAD_OVERRIDE_LOCK; +#endif + +/* +** This structure holds information passed into individual test +** threads by the testThreadLockingBehavior() routine. +*/ +struct threadTestData { + int fd; /* File to be locked */ + struct flock lock; /* The locking operation */ + int result; /* Result of the locking operation */ +}; + +#ifdef SQLITE_LOCK_TRACE +/* +** Print out information about all locking operations. +** +** This routine is used for troubleshooting locks on multithreaded +** platforms. Enable by compiling with the -DSQLITE_LOCK_TRACE +** command-line option on the compiler. This code is normally +** turned off. +*/ +static int lockTrace(int fd, int op, struct flock *p){ + char *zOpName, *zType; + int s; + int savedErrno; + if( op==F_GETLK ){ + zOpName = "GETLK"; + }else if( op==F_SETLK ){ + zOpName = "SETLK"; + }else{ + s = fcntl(fd, op, p); + sqlite3DebugPrintf("fcntl unknown %d %d %d\n", fd, op, s); + return s; + } + if( p->l_type==F_RDLCK ){ + zType = "RDLCK"; + }else if( p->l_type==F_WRLCK ){ + zType = "WRLCK"; + }else if( p->l_type==F_UNLCK ){ + zType = "UNLCK"; + }else{ + assert( 0 ); + } + assert( p->l_whence==SEEK_SET ); + s = fcntl(fd, op, p); + savedErrno = errno; + sqlite3DebugPrintf("fcntl %d %d %s %s %d %d %d %d\n", + threadid, fd, zOpName, zType, (int)p->l_start, (int)p->l_len, + (int)p->l_pid, s); + if( s && op==F_SETLK && (p->l_type==F_RDLCK || p->l_type==F_WRLCK) ){ + struct flock l2; + l2 = *p; + fcntl(fd, F_GETLK, &l2); + if( l2.l_type==F_RDLCK ){ + zType = "RDLCK"; + }else if( l2.l_type==F_WRLCK ){ + zType = "WRLCK"; + }else if( l2.l_type==F_UNLCK ){ + zType = "UNLCK"; + }else{ + assert( 0 ); + } + sqlite3DebugPrintf("fcntl-failure-reason: %s %d %d %d\n", + zType, (int)l2.l_start, (int)l2.l_len, (int)l2.l_pid); + } + errno = savedErrno; + return s; +} +#define fcntl lockTrace +#endif /* SQLITE_LOCK_TRACE */ + +/* +** The testThreadLockingBehavior() routine launches two separate +** threads on this routine. This routine attempts to lock a file +** descriptor then returns. The success or failure of that attempt +** allows the testThreadLockingBehavior() procedure to determine +** whether or not threads can override each others locks. +*/ +static void *threadLockingTest(void *pArg){ + struct threadTestData *pData = (struct threadTestData*)pArg; + pData->result = fcntl(pData->fd, F_SETLK, &pData->lock); + return pArg; +} + +/* +** This procedure attempts to determine whether or not threads +** can override each others locks then sets the +** threadsOverrideEachOthersLocks variable appropriately. +*/ +static void testThreadLockingBehavior(int fd_orig){ + int fd; + struct threadTestData d[2]; + pthread_t t[2]; + + fd = dup(fd_orig); + if( fd<0 ) return; + memset(d, 0, sizeof(d)); + d[0].fd = fd; + d[0].lock.l_type = F_RDLCK; + d[0].lock.l_len = 1; + d[0].lock.l_start = 0; + d[0].lock.l_whence = SEEK_SET; + d[1] = d[0]; + d[1].lock.l_type = F_WRLCK; + pthread_create(&t[0], 0, threadLockingTest, &d[0]); + pthread_create(&t[1], 0, threadLockingTest, &d[1]); + pthread_join(t[0], 0); + pthread_join(t[1], 0); + close(fd); + threadsOverrideEachOthersLocks = d[0].result==0 && d[1].result==0; +} +#endif /* SQLITE_UNIX_THREADS */ + +/* +** Release a lockInfo structure previously allocated by findLockInfo(). +*/ +static void releaseLockInfo(struct lockInfo *pLock){ + assert( sqlite3OsInMutex(1) ); + if (pLock == NULL) + return; + pLock->nRef--; + if( pLock->nRef==0 ){ + sqlite3HashInsert(&lockHash, &pLock->key, sizeof(pLock->key), 0); + sqlite3ThreadSafeFree(pLock); + } +} + +/* +** Release a openCnt structure previously allocated by findLockInfo(). +*/ +static void releaseOpenCnt(struct openCnt *pOpen){ + assert( sqlite3OsInMutex(1) ); + if (pOpen == NULL) + return; + pOpen->nRef--; + if( pOpen->nRef==0 ){ + sqlite3HashInsert(&openHash, &pOpen->key, sizeof(pOpen->key), 0); + free(pOpen->aPending); + sqlite3ThreadSafeFree(pOpen); + } +} + +#ifdef SQLITE_ENABLE_LOCKING_STYLE +/* +** Tests a byte-range locking query to see if byte range locks are +** supported, if not we fall back to dotlockLockingStyle. +*/ +static sqlite3LockingStyle sqlite3TestLockingStyle(const char *filePath, + int fd) { + /* test byte-range lock using fcntl */ + struct flock lockInfo; + + lockInfo.l_len = 1; + lockInfo.l_start = 0; + lockInfo.l_whence = SEEK_SET; + lockInfo.l_type = F_RDLCK; + + if (fcntl(fd, F_GETLK, (int) &lockInfo) != -1) { + return posixLockingStyle; + } + + /* testing for flock can give false positives. So if if the above test + ** fails, then we fall back to using dot-lock style locking. + */ + return dotlockLockingStyle; +} + +/* +** Examines the f_fstypename entry in the statfs structure as returned by +** stat() for the file system hosting the database file, assigns the +** appropriate locking style based on it's value. These values and +** assignments are based on Darwin/OSX behavior and have not been tested on +** other systems. +*/ +static sqlite3LockingStyle sqlite3DetectLockingStyle(const char *filePath, + int fd) { + +#ifdef SQLITE_FIXED_LOCKING_STYLE + return (sqlite3LockingStyle)SQLITE_FIXED_LOCKING_STYLE; +#else + struct statfs fsInfo; + + if (statfs(filePath, &fsInfo) == -1) + return sqlite3TestLockingStyle(filePath, fd); + + if (fsInfo.f_flags & MNT_RDONLY) + return noLockingStyle; + + if( (!strcmp(fsInfo.f_fstypename, "hfs")) || + (!strcmp(fsInfo.f_fstypename, "ufs")) ) + return posixLockingStyle; + + if(!strcmp(fsInfo.f_fstypename, "afpfs")) + return afpLockingStyle; + + if(!strcmp(fsInfo.f_fstypename, "nfs")) + return sqlite3TestLockingStyle(filePath, fd); + + if(!strcmp(fsInfo.f_fstypename, "smbfs")) + return flockLockingStyle; + + if(!strcmp(fsInfo.f_fstypename, "msdos")) + return dotlockLockingStyle; + + if(!strcmp(fsInfo.f_fstypename, "webdav")) + return unsupportedLockingStyle; + + return sqlite3TestLockingStyle(filePath, fd); +#endif // SQLITE_FIXED_LOCKING_STYLE +} + +#endif /* SQLITE_ENABLE_LOCKING_STYLE */ + +/* +** Given a file descriptor, locate lockInfo and openCnt structures that +** describes that file descriptor. Create new ones if necessary. The +** return values might be uninitialized if an error occurs. +** +** Return the number of errors. +*/ +static int findLockInfo( + int fd, /* The file descriptor used in the key */ + struct lockInfo **ppLock, /* Return the lockInfo structure here */ + struct openCnt **ppOpen /* Return the openCnt structure here */ +){ + int rc; + struct lockKey key1; + struct openKey key2; + struct stat statbuf; + struct lockInfo *pLock; + struct openCnt *pOpen; + rc = fstat(fd, &statbuf); + if( rc!=0 ) return 1; + + assert( sqlite3OsInMutex(1) ); + memset(&key1, 0, sizeof(key1)); + key1.dev = statbuf.st_dev; + key1.ino = statbuf.st_ino; +#ifdef SQLITE_UNIX_THREADS + if( threadsOverrideEachOthersLocks<0 ){ + testThreadLockingBehavior(fd); + } + key1.tid = threadsOverrideEachOthersLocks ? 0 : pthread_self(); +#endif + memset(&key2, 0, sizeof(key2)); + key2.dev = statbuf.st_dev; + key2.ino = statbuf.st_ino; + pLock = (struct lockInfo*)sqlite3HashFind(&lockHash, &key1, sizeof(key1)); + if( pLock==0 ){ + struct lockInfo *pOld; + pLock = sqlite3ThreadSafeMalloc( sizeof(*pLock) ); + if( pLock==0 ){ + rc = 1; + goto exit_findlockinfo; + } + pLock->key = key1; + pLock->nRef = 1; + pLock->cnt = 0; + pLock->locktype = 0; + pOld = sqlite3HashInsert(&lockHash, &pLock->key, sizeof(key1), pLock); + if( pOld!=0 ){ + assert( pOld==pLock ); + sqlite3ThreadSafeFree(pLock); + rc = 1; + goto exit_findlockinfo; + } + }else{ + pLock->nRef++; + } + *ppLock = pLock; + if( ppOpen!=0 ){ + pOpen = (struct openCnt*)sqlite3HashFind(&openHash, &key2, sizeof(key2)); + if( pOpen==0 ){ + struct openCnt *pOld; + pOpen = sqlite3ThreadSafeMalloc( sizeof(*pOpen) ); + if( pOpen==0 ){ + releaseLockInfo(pLock); + rc = 1; + goto exit_findlockinfo; + } + pOpen->key = key2; + pOpen->nRef = 1; + pOpen->nLock = 0; + pOpen->nPending = 0; + pOpen->aPending = 0; + pOld = sqlite3HashInsert(&openHash, &pOpen->key, sizeof(key2), pOpen); + if( pOld!=0 ){ + assert( pOld==pOpen ); + sqlite3ThreadSafeFree(pOpen); + releaseLockInfo(pLock); + rc = 1; + goto exit_findlockinfo; + } + }else{ + pOpen->nRef++; + } + *ppOpen = pOpen; + } + +exit_findlockinfo: + return rc; +} + +#ifdef SQLITE_DEBUG +/* +** Helper function for printing out trace information from debugging +** binaries. This returns the string represetation of the supplied +** integer lock-type. +*/ +static const char *locktypeName(int locktype){ + switch( locktype ){ + case NO_LOCK: return "NONE"; + case SHARED_LOCK: return "SHARED"; + case RESERVED_LOCK: return "RESERVED"; + case PENDING_LOCK: return "PENDING"; + case EXCLUSIVE_LOCK: return "EXCLUSIVE"; + } + return "ERROR"; +} +#endif + +/* +** If we are currently in a different thread than the thread that the +** unixFile argument belongs to, then transfer ownership of the unixFile +** over to the current thread. +** +** A unixFile is only owned by a thread on systems where one thread is +** unable to override locks created by a different thread. RedHat9 is +** an example of such a system. +** +** Ownership transfer is only allowed if the unixFile is currently unlocked. +** If the unixFile is locked and an ownership is wrong, then return +** SQLITE_MISUSE. SQLITE_OK is returned if everything works. +*/ +#ifdef SQLITE_UNIX_THREADS +static int transferOwnership(unixFile *pFile){ + int rc; + pthread_t hSelf; + if( threadsOverrideEachOthersLocks ){ + /* Ownership transfers not needed on this system */ + return SQLITE_OK; + } + hSelf = pthread_self(); + if( pthread_equal(pFile->tid, hSelf) ){ + /* We are still in the same thread */ + TRACE1("No-transfer, same thread\n"); + return SQLITE_OK; + } + if( pFile->locktype!=NO_LOCK ){ + /* We cannot change ownership while we are holding a lock! */ + return SQLITE_MISUSE; + } + TRACE4("Transfer ownership of %d from %d to %d\n", pFile->h,pFile->tid,hSelf); + pFile->tid = hSelf; + if (pFile->pLock != NULL) { + releaseLockInfo(pFile->pLock); + rc = findLockInfo(pFile->h, &pFile->pLock, 0); + TRACE5("LOCK %d is now %s(%s,%d)\n", pFile->h, + locktypeName(pFile->locktype), + locktypeName(pFile->pLock->locktype), pFile->pLock->cnt); + return rc; + } else { + return SQLITE_OK; + } +} +#else + /* On single-threaded builds, ownership transfer is a no-op */ +# define transferOwnership(X) SQLITE_OK +#endif + +/* +** Delete the named file +*/ +int sqlite3UnixDelete(const char *zFilename){ + unlink(zFilename); + return SQLITE_OK; +} + +/* +** Return TRUE if the named file exists. +*/ +int sqlite3UnixFileExists(const char *zFilename){ + return access(zFilename, 0)==0; +} + +/* Forward declaration */ +static int allocateUnixFile( + int h, /* File descriptor of the open file */ + OsFile **pId, /* Write the real file descriptor here */ + const char *zFilename, /* Name of the file being opened */ + int delFlag /* If true, make sure the file deletes on close */ +); + +/* +** Attempt to open a file for both reading and writing. If that +** fails, try opening it read-only. If the file does not exist, +** try to create it. +** +** On success, a handle for the open file is written to *id +** and *pReadonly is set to 0 if the file was opened for reading and +** writing or 1 if the file was opened read-only. The function returns +** SQLITE_OK. +** +** On failure, the function returns SQLITE_CANTOPEN and leaves +** *id and *pReadonly unchanged. +*/ +int sqlite3UnixOpenReadWrite( + const char *zFilename, + OsFile **pId, + int *pReadonly +){ + int h; + + CRASH_TEST_OVERRIDE(sqlite3CrashOpenReadWrite, zFilename, pId, pReadonly); + assert( 0==*pId ); + h = open(zFilename, O_RDWR|O_CREAT|O_LARGEFILE|O_BINARY, + SQLITE_DEFAULT_FILE_PERMISSIONS); + if( h<0 ){ +#ifdef EISDIR + if( errno==EISDIR ){ + return SQLITE_CANTOPEN; + } +#endif + h = open(zFilename, O_RDONLY|O_LARGEFILE|O_BINARY); + if( h<0 ){ + return SQLITE_CANTOPEN; + } + *pReadonly = 1; + }else{ + *pReadonly = 0; + } + return allocateUnixFile(h, pId, zFilename, 0); +} + + +/* +** Attempt to open a new file for exclusive access by this process. +** The file will be opened for both reading and writing. To avoid +** a potential security problem, we do not allow the file to have +** previously existed. Nor do we allow the file to be a symbolic +** link. +** +** If delFlag is true, then make arrangements to automatically delete +** the file when it is closed. +** +** On success, write the file handle into *id and return SQLITE_OK. +** +** On failure, return SQLITE_CANTOPEN. +*/ +int sqlite3UnixOpenExclusive(const char *zFilename, OsFile **pId, int delFlag){ + int h; + + CRASH_TEST_OVERRIDE(sqlite3CrashOpenExclusive, zFilename, pId, delFlag); + assert( 0==*pId ); + h = open(zFilename, + O_RDWR|O_CREAT|O_EXCL|O_NOFOLLOW|O_LARGEFILE|O_BINARY, + SQLITE_DEFAULT_FILE_PERMISSIONS); + if( h<0 ){ + return SQLITE_CANTOPEN; + } + return allocateUnixFile(h, pId, zFilename, delFlag); +} + +/* +** Attempt to open a new file for read-only access. +** +** On success, write the file handle into *id and return SQLITE_OK. +** +** On failure, return SQLITE_CANTOPEN. +*/ +int sqlite3UnixOpenReadOnly(const char *zFilename, OsFile **pId){ + int h; + + CRASH_TEST_OVERRIDE(sqlite3CrashOpenReadOnly, zFilename, pId, 0); + assert( 0==*pId ); + h = open(zFilename, O_RDONLY|O_LARGEFILE|O_BINARY); + if( h<0 ){ + return SQLITE_CANTOPEN; + } + return allocateUnixFile(h, pId, zFilename, 0); +} + +/* +** Attempt to open a file descriptor for the directory that contains a +** file. This file descriptor can be used to fsync() the directory +** in order to make sure the creation of a new file is actually written +** to disk. +** +** This routine is only meaningful for Unix. It is a no-op under +** windows since windows does not support hard links. +** +** If FULL_FSYNC is enabled, this function is not longer useful, +** a FULL_FSYNC sync applies to all pending disk operations. +** +** On success, a handle for a previously open file at *id is +** updated with the new directory file descriptor and SQLITE_OK is +** returned. +** +** On failure, the function returns SQLITE_CANTOPEN and leaves +** *id unchanged. +*/ +static int unixOpenDirectory( + OsFile *id, + const char *zDirname +){ + unixFile *pFile = (unixFile*)id; + if( pFile==0 ){ + /* Do not open the directory if the corresponding file is not already + ** open. */ + return SQLITE_CANTOPEN; + } + SET_THREADID(pFile); + assert( pFile->dirfd<0 ); + pFile->dirfd = open(zDirname, O_RDONLY|O_BINARY, 0); + if( pFile->dirfd<0 ){ + return SQLITE_CANTOPEN; + } + TRACE3("OPENDIR %-3d %s\n", pFile->dirfd, zDirname); + return SQLITE_OK; +} + +/* +** If the following global variable points to a string which is the +** name of a directory, then that directory will be used to store +** temporary files. +** +** See also the "PRAGMA temp_store_directory" SQL command. +*/ +char *sqlite3_temp_directory = 0; + +/* +** Create a temporary file name in zBuf. zBuf must be big enough to +** hold at least SQLITE_TEMPNAME_SIZE characters. +*/ +int sqlite3UnixTempFileName(char *zBuf){ + static const char *azDirs[] = { + 0, + "/var/tmp", + "/usr/tmp", + "/tmp", + ".", + }; + static const unsigned char zChars[] = + "abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "0123456789"; + int i, j; + struct stat buf; + const char *zDir = "."; + azDirs[0] = sqlite3_temp_directory; + for(i=0; ioffset then read cnt bytes into pBuf. +** Return the number of bytes actually read. Update the offset. +*/ +static int seekAndRead(unixFile *id, void *pBuf, int cnt){ + int got; +#ifdef USE_PREAD + got = pread(id->h, pBuf, cnt, id->offset); +#else + lseek(id->h, id->offset, SEEK_SET); + got = read(id->h, pBuf, cnt); +#endif + if( got>0 ){ + id->offset += got; + } + return got; +} + +/* +** Read data from a file into a buffer. Return SQLITE_OK if all +** bytes were read successfully and SQLITE_IOERR if anything goes +** wrong. +*/ +static int unixRead(OsFile *id, void *pBuf, int amt){ + int got; + assert( id ); + TIMER_START; + got = seekAndRead((unixFile*)id, pBuf, amt); + TIMER_END; + TRACE5("READ %-3d %5d %7d %d\n", ((unixFile*)id)->h, got, + last_page, TIMER_ELAPSED); + SEEK(0); + SimulateIOError( got = -1 ); + if( got==amt ){ + return SQLITE_OK; + }else if( got<0 ){ + return SQLITE_IOERR_READ; + }else{ + memset(&((char*)pBuf)[got], 0, amt-got); + return SQLITE_IOERR_SHORT_READ; + } +} + +/* +** Seek to the offset in id->offset then read cnt bytes into pBuf. +** Return the number of bytes actually read. Update the offset. +*/ +static int seekAndWrite(unixFile *id, const void *pBuf, int cnt){ + int got; +#ifdef USE_PREAD + got = pwrite(id->h, pBuf, cnt, id->offset); +#else + lseek(id->h, id->offset, SEEK_SET); + got = write(id->h, pBuf, cnt); +#endif + if( got>0 ){ + id->offset += got; + } + return got; +} + + +/* +** Write data from a buffer into a file. Return SQLITE_OK on success +** or some other error code on failure. +*/ +static int unixWrite(OsFile *id, const void *pBuf, int amt){ + int wrote = 0; + assert( id ); + assert( amt>0 ); + TIMER_START; + while( amt>0 && (wrote = seekAndWrite((unixFile*)id, pBuf, amt))>0 ){ + amt -= wrote; + pBuf = &((char*)pBuf)[wrote]; + } + TIMER_END; + TRACE5("WRITE %-3d %5d %7d %d\n", ((unixFile*)id)->h, wrote, + last_page, TIMER_ELAPSED); + SEEK(0); + SimulateIOError(( wrote=(-1), amt=1 )); + SimulateDiskfullError(( wrote=0, amt=1 )); + if( amt>0 ){ + if( wrote<0 ){ + return SQLITE_IOERR_WRITE; + }else{ + return SQLITE_FULL; + } + } + return SQLITE_OK; +} + +/* +** Move the read/write pointer in a file. +*/ +static int unixSeek(OsFile *id, i64 offset){ + assert( id ); + SEEK(offset/1024 + 1); +#ifdef SQLITE_TEST + if( offset ) SimulateDiskfullError(return SQLITE_FULL); +#endif + ((unixFile*)id)->offset = offset; + return SQLITE_OK; +} + +#ifdef SQLITE_TEST +/* +** Count the number of fullsyncs and normal syncs. This is used to test +** that syncs and fullsyncs are occuring at the right times. +*/ +int sqlite3_sync_count = 0; +int sqlite3_fullsync_count = 0; +#endif + +/* +** Use the fdatasync() API only if the HAVE_FDATASYNC macro is defined. +** Otherwise use fsync() in its place. +*/ +#ifndef HAVE_FDATASYNC +# define fdatasync fsync +#endif + +/* +** Define HAVE_FULLFSYNC to 0 or 1 depending on whether or not +** the F_FULLFSYNC macro is defined. F_FULLFSYNC is currently +** only available on Mac OS X. But that could change. +*/ +#ifdef F_FULLFSYNC +# define HAVE_FULLFSYNC 1 +#else +# define HAVE_FULLFSYNC 0 +#endif + + +/* +** The fsync() system call does not work as advertised on many +** unix systems. The following procedure is an attempt to make +** it work better. +** +** The SQLITE_NO_SYNC macro disables all fsync()s. This is useful +** for testing when we want to run through the test suite quickly. +** You are strongly advised *not* to deploy with SQLITE_NO_SYNC +** enabled, however, since with SQLITE_NO_SYNC enabled, an OS crash +** or power failure will likely corrupt the database file. +*/ +static int full_fsync(int fd, int fullSync, int dataOnly){ + int rc; + + /* Record the number of times that we do a normal fsync() and + ** FULLSYNC. This is used during testing to verify that this procedure + ** gets called with the correct arguments. + */ +#ifdef SQLITE_TEST + if( fullSync ) sqlite3_fullsync_count++; + sqlite3_sync_count++; +#endif + + /* If we compiled with the SQLITE_NO_SYNC flag, then syncing is a + ** no-op + */ +#ifdef SQLITE_NO_SYNC + rc = SQLITE_OK; +#else + +#if HAVE_FULLFSYNC + if( fullSync ){ + rc = fcntl(fd, F_FULLFSYNC, 0); + }else +#endif /* HAVE_FULLFSYNC */ + if( dataOnly ){ + rc = fdatasync(fd); + }else{ + rc = fsync(fd); + } +#endif /* defined(SQLITE_NO_SYNC) */ + + return rc; +} + +/* +** Make sure all writes to a particular file are committed to disk. +** +** If dataOnly==0 then both the file itself and its metadata (file +** size, access time, etc) are synced. If dataOnly!=0 then only the +** file data is synced. +** +** Under Unix, also make sure that the directory entry for the file +** has been created by fsync-ing the directory that contains the file. +** If we do not do this and we encounter a power failure, the directory +** entry for the journal might not exist after we reboot. The next +** SQLite to access the file will not know that the journal exists (because +** the directory entry for the journal was never created) and the transaction +** will not roll back - possibly leading to database corruption. +*/ +static int unixSync(OsFile *id, int dataOnly){ + int rc; + unixFile *pFile = (unixFile*)id; + assert( pFile ); + TRACE2("SYNC %-3d\n", pFile->h); + rc = full_fsync(pFile->h, pFile->fullSync, dataOnly); + SimulateIOError( rc=1 ); + if( rc ){ + return SQLITE_IOERR_FSYNC; + } + if( pFile->dirfd>=0 ){ + TRACE4("DIRSYNC %-3d (have_fullfsync=%d fullsync=%d)\n", pFile->dirfd, + HAVE_FULLFSYNC, pFile->fullSync); +#ifndef SQLITE_DISABLE_DIRSYNC + /* The directory sync is only attempted if full_fsync is + ** turned off or unavailable. If a full_fsync occurred above, + ** then the directory sync is superfluous. + */ + if( (!HAVE_FULLFSYNC || !pFile->fullSync) && full_fsync(pFile->dirfd,0,0) ){ + /* + ** We have received multiple reports of fsync() returning + ** errors when applied to directories on certain file systems. + ** A failed directory sync is not a big deal. So it seems + ** better to ignore the error. Ticket #1657 + */ + /* return SQLITE_IOERR; */ + } +#endif + close(pFile->dirfd); /* Only need to sync once, so close the directory */ + pFile->dirfd = -1; /* when we are done. */ + } + return SQLITE_OK; +} + +/* +** Sync the directory zDirname. This is a no-op on operating systems other +** than UNIX. +** +** This is used to make sure the master journal file has truely been deleted +** before making changes to individual journals on a multi-database commit. +** The F_FULLFSYNC option is not needed here. +*/ +int sqlite3UnixSyncDirectory(const char *zDirname){ +#ifdef SQLITE_DISABLE_DIRSYNC + return SQLITE_OK; +#else + int fd; + int r; + fd = open(zDirname, O_RDONLY|O_BINARY, 0); + TRACE3("DIRSYNC %-3d (%s)\n", fd, zDirname); + if( fd<0 ){ + return SQLITE_CANTOPEN; + } + r = fsync(fd); + close(fd); + SimulateIOError( r=1 ); + if( r ){ + return SQLITE_IOERR_DIR_FSYNC; + }else{ + return SQLITE_OK; + } +#endif +} + +/* +** Truncate an open file to a specified size +*/ +static int unixTruncate(OsFile *id, i64 nByte){ + int rc; + assert( id ); + rc = ftruncate(((unixFile*)id)->h, nByte); + SimulateIOError( rc=1 ); + if( rc ){ + return SQLITE_IOERR_TRUNCATE; + }else{ + return SQLITE_OK; + } +} + +/* +** Determine the current size of a file in bytes +*/ +static int unixFileSize(OsFile *id, i64 *pSize){ + int rc; + struct stat buf; + assert( id ); + rc = fstat(((unixFile*)id)->h, &buf); + SimulateIOError( rc=1 ); + if( rc!=0 ){ + return SQLITE_IOERR_FSTAT; + } + *pSize = buf.st_size; + return SQLITE_OK; +} + +/* +** This routine checks if there is a RESERVED lock held on the specified +** file by this or any other process. If such a lock is held, return +** non-zero. If the file is unlocked or holds only SHARED locks, then +** return zero. +*/ +static int unixCheckReservedLock(OsFile *id){ + int r = 0; + unixFile *pFile = (unixFile*)id; + + assert( pFile ); + sqlite3OsEnterMutex(); /* Because pFile->pLock is shared across threads */ + + /* Check if a thread in this process holds such a lock */ + if( pFile->pLock->locktype>SHARED_LOCK ){ + r = 1; + } + + /* Otherwise see if some other process holds it. + */ + if( !r ){ + struct flock lock; + lock.l_whence = SEEK_SET; + lock.l_start = RESERVED_BYTE; + lock.l_len = 1; + lock.l_type = F_WRLCK; + fcntl(pFile->h, F_GETLK, &lock); + if( lock.l_type!=F_UNLCK ){ + r = 1; + } + } + + sqlite3OsLeaveMutex(); + TRACE3("TEST WR-LOCK %d %d\n", pFile->h, r); + + return r; +} + +/* +** Lock the file with the lock specified by parameter locktype - one +** of the following: +** +** (1) SHARED_LOCK +** (2) RESERVED_LOCK +** (3) PENDING_LOCK +** (4) EXCLUSIVE_LOCK +** +** Sometimes when requesting one lock state, additional lock states +** are inserted in between. The locking might fail on one of the later +** transitions leaving the lock state different from what it started but +** still short of its goal. The following chart shows the allowed +** transitions and the inserted intermediate states: +** +** UNLOCKED -> SHARED +** SHARED -> RESERVED +** SHARED -> (PENDING) -> EXCLUSIVE +** RESERVED -> (PENDING) -> EXCLUSIVE +** PENDING -> EXCLUSIVE +** +** This routine will only increase a lock. Use the sqlite3OsUnlock() +** routine to lower a locking level. +*/ +static int unixLock(OsFile *id, int locktype){ + /* The following describes the implementation of the various locks and + ** lock transitions in terms of the POSIX advisory shared and exclusive + ** lock primitives (called read-locks and write-locks below, to avoid + ** confusion with SQLite lock names). The algorithms are complicated + ** slightly in order to be compatible with windows systems simultaneously + ** accessing the same database file, in case that is ever required. + ** + ** Symbols defined in os.h indentify the 'pending byte' and the 'reserved + ** byte', each single bytes at well known offsets, and the 'shared byte + ** range', a range of 510 bytes at a well known offset. + ** + ** To obtain a SHARED lock, a read-lock is obtained on the 'pending + ** byte'. If this is successful, a random byte from the 'shared byte + ** range' is read-locked and the lock on the 'pending byte' released. + ** + ** A process may only obtain a RESERVED lock after it has a SHARED lock. + ** A RESERVED lock is implemented by grabbing a write-lock on the + ** 'reserved byte'. + ** + ** A process may only obtain a PENDING lock after it has obtained a + ** SHARED lock. A PENDING lock is implemented by obtaining a write-lock + ** on the 'pending byte'. This ensures that no new SHARED locks can be + ** obtained, but existing SHARED locks are allowed to persist. A process + ** does not have to obtain a RESERVED lock on the way to a PENDING lock. + ** This property is used by the algorithm for rolling back a journal file + ** after a crash. + ** + ** An EXCLUSIVE lock, obtained after a PENDING lock is held, is + ** implemented by obtaining a write-lock on the entire 'shared byte + ** range'. Since all other locks require a read-lock on one of the bytes + ** within this range, this ensures that no other locks are held on the + ** database. + ** + ** The reason a single byte cannot be used instead of the 'shared byte + ** range' is that some versions of windows do not support read-locks. By + ** locking a random byte from a range, concurrent SHARED locks may exist + ** even if the locking primitive used is always a write-lock. + */ + int rc = SQLITE_OK; + unixFile *pFile = (unixFile*)id; + struct lockInfo *pLock = pFile->pLock; + struct flock lock; + int s; + + assert( pFile ); + TRACE7("LOCK %d %s was %s(%s,%d) pid=%d\n", pFile->h, + locktypeName(locktype), locktypeName(pFile->locktype), + locktypeName(pLock->locktype), pLock->cnt , getpid()); + + /* If there is already a lock of this type or more restrictive on the + ** OsFile, do nothing. Don't use the end_lock: exit path, as + ** sqlite3OsEnterMutex() hasn't been called yet. + */ + if( pFile->locktype>=locktype ){ + TRACE3("LOCK %d %s ok (already held)\n", pFile->h, + locktypeName(locktype)); + return SQLITE_OK; + } + + /* Make sure the locking sequence is correct + */ + assert( pFile->locktype!=NO_LOCK || locktype==SHARED_LOCK ); + assert( locktype!=PENDING_LOCK ); + assert( locktype!=RESERVED_LOCK || pFile->locktype==SHARED_LOCK ); + + /* This mutex is needed because pFile->pLock is shared across threads + */ + sqlite3OsEnterMutex(); + + /* Make sure the current thread owns the pFile. + */ + rc = transferOwnership(pFile); + if( rc!=SQLITE_OK ){ + sqlite3OsLeaveMutex(); + return rc; + } + pLock = pFile->pLock; + + /* If some thread using this PID has a lock via a different OsFile* + ** handle that precludes the requested lock, return BUSY. + */ + if( (pFile->locktype!=pLock->locktype && + (pLock->locktype>=PENDING_LOCK || locktype>SHARED_LOCK)) + ){ + rc = SQLITE_BUSY; + goto end_lock; + } + + /* If a SHARED lock is requested, and some thread using this PID already + ** has a SHARED or RESERVED lock, then increment reference counts and + ** return SQLITE_OK. + */ + if( locktype==SHARED_LOCK && + (pLock->locktype==SHARED_LOCK || pLock->locktype==RESERVED_LOCK) ){ + assert( locktype==SHARED_LOCK ); + assert( pFile->locktype==0 ); + assert( pLock->cnt>0 ); + pFile->locktype = SHARED_LOCK; + pLock->cnt++; + pFile->pOpen->nLock++; + goto end_lock; + } + + lock.l_len = 1L; + + lock.l_whence = SEEK_SET; + + /* A PENDING lock is needed before acquiring a SHARED lock and before + ** acquiring an EXCLUSIVE lock. For the SHARED lock, the PENDING will + ** be released. + */ + if( locktype==SHARED_LOCK + || (locktype==EXCLUSIVE_LOCK && pFile->locktypeh, F_SETLK, &lock); + if( s ){ + rc = (errno==EINVAL) ? SQLITE_NOLFS : SQLITE_BUSY; + goto end_lock; + } + } + + + /* If control gets to this point, then actually go ahead and make + ** operating system calls for the specified lock. + */ + if( locktype==SHARED_LOCK ){ + assert( pLock->cnt==0 ); + assert( pLock->locktype==0 ); + + /* Now get the read-lock */ + lock.l_start = SHARED_FIRST; + lock.l_len = SHARED_SIZE; + s = fcntl(pFile->h, F_SETLK, &lock); + + /* Drop the temporary PENDING lock */ + lock.l_start = PENDING_BYTE; + lock.l_len = 1L; + lock.l_type = F_UNLCK; + if( fcntl(pFile->h, F_SETLK, &lock)!=0 ){ + rc = SQLITE_IOERR_UNLOCK; /* This should never happen */ + goto end_lock; + } + if( s ){ + rc = (errno==EINVAL) ? SQLITE_NOLFS : SQLITE_BUSY; + }else{ + pFile->locktype = SHARED_LOCK; + pFile->pOpen->nLock++; + pLock->cnt = 1; + } + }else if( locktype==EXCLUSIVE_LOCK && pLock->cnt>1 ){ + /* We are trying for an exclusive lock but another thread in this + ** same process is still holding a shared lock. */ + rc = SQLITE_BUSY; + }else{ + /* The request was for a RESERVED or EXCLUSIVE lock. It is + ** assumed that there is a SHARED or greater lock on the file + ** already. + */ + assert( 0!=pFile->locktype ); + lock.l_type = F_WRLCK; + switch( locktype ){ + case RESERVED_LOCK: + lock.l_start = RESERVED_BYTE; + break; + case EXCLUSIVE_LOCK: + lock.l_start = SHARED_FIRST; + lock.l_len = SHARED_SIZE; + break; + default: + assert(0); + } + s = fcntl(pFile->h, F_SETLK, &lock); + if( s ){ + rc = (errno==EINVAL) ? SQLITE_NOLFS : SQLITE_BUSY; + } + } + + if( rc==SQLITE_OK ){ + pFile->locktype = locktype; + pLock->locktype = locktype; + }else if( locktype==EXCLUSIVE_LOCK ){ + pFile->locktype = PENDING_LOCK; + pLock->locktype = PENDING_LOCK; + } + +end_lock: + sqlite3OsLeaveMutex(); + TRACE4("LOCK %d %s %s\n", pFile->h, locktypeName(locktype), + rc==SQLITE_OK ? "ok" : "failed"); + return rc; +} + +/* +** Lower the locking level on file descriptor pFile to locktype. locktype +** must be either NO_LOCK or SHARED_LOCK. +** +** If the locking level of the file descriptor is already at or below +** the requested locking level, this routine is a no-op. +*/ +static int unixUnlock(OsFile *id, int locktype){ + struct lockInfo *pLock; + struct flock lock; + int rc = SQLITE_OK; + unixFile *pFile = (unixFile*)id; + + assert( pFile ); + TRACE7("UNLOCK %d %d was %d(%d,%d) pid=%d\n", pFile->h, locktype, + pFile->locktype, pFile->pLock->locktype, pFile->pLock->cnt, getpid()); + + assert( locktype<=SHARED_LOCK ); + if( pFile->locktype<=locktype ){ + return SQLITE_OK; + } + if( CHECK_THREADID(pFile) ){ + return SQLITE_MISUSE; + } + sqlite3OsEnterMutex(); + pLock = pFile->pLock; + assert( pLock->cnt!=0 ); + if( pFile->locktype>SHARED_LOCK ){ + assert( pLock->locktype==pFile->locktype ); + if( locktype==SHARED_LOCK ){ + lock.l_type = F_RDLCK; + lock.l_whence = SEEK_SET; + lock.l_start = SHARED_FIRST; + lock.l_len = SHARED_SIZE; + if( fcntl(pFile->h, F_SETLK, &lock)!=0 ){ + /* This should never happen */ + rc = SQLITE_IOERR_RDLOCK; + } + } + lock.l_type = F_UNLCK; + lock.l_whence = SEEK_SET; + lock.l_start = PENDING_BYTE; + lock.l_len = 2L; assert( PENDING_BYTE+1==RESERVED_BYTE ); + if( fcntl(pFile->h, F_SETLK, &lock)==0 ){ + pLock->locktype = SHARED_LOCK; + }else{ + rc = SQLITE_IOERR_UNLOCK; /* This should never happen */ + } + } + if( locktype==NO_LOCK ){ + struct openCnt *pOpen; + + /* Decrement the shared lock counter. Release the lock using an + ** OS call only when all threads in this same process have released + ** the lock. + */ + pLock->cnt--; + if( pLock->cnt==0 ){ + lock.l_type = F_UNLCK; + lock.l_whence = SEEK_SET; + lock.l_start = lock.l_len = 0L; + if( fcntl(pFile->h, F_SETLK, &lock)==0 ){ + pLock->locktype = NO_LOCK; + }else{ + rc = SQLITE_IOERR_UNLOCK; /* This should never happen */ + } + } + + /* Decrement the count of locks against this same file. When the + ** count reaches zero, close any other file descriptors whose close + ** was deferred because of outstanding locks. + */ + pOpen = pFile->pOpen; + pOpen->nLock--; + assert( pOpen->nLock>=0 ); + if( pOpen->nLock==0 && pOpen->nPending>0 ){ + int i; + for(i=0; inPending; i++){ + close(pOpen->aPending[i]); + } + free(pOpen->aPending); + pOpen->nPending = 0; + pOpen->aPending = 0; + } + } + sqlite3OsLeaveMutex(); + pFile->locktype = locktype; + return rc; +} + +/* +** Close a file. +*/ +static int unixClose(OsFile **pId){ + unixFile *id = (unixFile*)*pId; + + if( !id ) return SQLITE_OK; + unixUnlock(*pId, NO_LOCK); + if( id->dirfd>=0 ) close(id->dirfd); + id->dirfd = -1; + sqlite3OsEnterMutex(); + + if( id->pOpen->nLock ){ + /* If there are outstanding locks, do not actually close the file just + ** yet because that would clear those locks. Instead, add the file + ** descriptor to pOpen->aPending. It will be automatically closed when + ** the last lock is cleared. + */ + int *aNew; + struct openCnt *pOpen = id->pOpen; + aNew = realloc( pOpen->aPending, (pOpen->nPending+1)*sizeof(int) ); + if( aNew==0 ){ + /* If a malloc fails, just leak the file descriptor */ + }else{ + pOpen->aPending = aNew; + pOpen->aPending[pOpen->nPending] = id->h; + pOpen->nPending++; + } + }else{ + /* There are no outstanding locks so we can close the file immediately */ + close(id->h); + } + releaseLockInfo(id->pLock); + releaseOpenCnt(id->pOpen); + + sqlite3OsLeaveMutex(); + id->isOpen = 0; + TRACE2("CLOSE %-3d\n", id->h); + OpenCounter(-1); + sqlite3ThreadSafeFree(id); + *pId = 0; + return SQLITE_OK; +} + + +#ifdef SQLITE_ENABLE_LOCKING_STYLE +#pragma mark AFP Support + +/* + ** The afpLockingContext structure contains all afp lock specific state + */ +typedef struct afpLockingContext afpLockingContext; +struct afpLockingContext { + unsigned long long sharedLockByte; + char *filePath; +}; + +struct ByteRangeLockPB2 +{ + unsigned long long offset; /* offset to first byte to lock */ + unsigned long long length; /* nbr of bytes to lock */ + unsigned long long retRangeStart; /* nbr of 1st byte locked if successful */ + unsigned char unLockFlag; /* 1 = unlock, 0 = lock */ + unsigned char startEndFlag; /* 1=rel to end of fork, 0=rel to start */ + int fd; /* file desc to assoc this lock with */ +}; + +#define afpfsByteRangeLock2FSCTL _IOWR('z', 23, struct ByteRangeLockPB2) + +/* return 0 on success, 1 on failure. To match the behavior of the + normal posix file locking (used in unixLock for example), we should + provide 'richer' return codes - specifically to differentiate between + 'file busy' and 'file system error' results */ +static int _AFPFSSetLock(const char *path, int fd, unsigned long long offset, + unsigned long long length, int setLockFlag) +{ + struct ByteRangeLockPB2 pb; + int err; + + pb.unLockFlag = setLockFlag ? 0 : 1; + pb.startEndFlag = 0; + pb.offset = offset; + pb.length = length; + pb.fd = fd; + TRACE5("AFPLOCK setting lock %s for %d in range %llx:%llx\n", + (setLockFlag?"ON":"OFF"), fd, offset, length); + err = fsctl(path, afpfsByteRangeLock2FSCTL, &pb, 0); + if ( err==-1 ) { + TRACE4("AFPLOCK failed to fsctl() '%s' %d %s\n", path, errno, + strerror(errno)); + return 1; // error + } else { + return 0; + } +} + +/* + ** This routine checks if there is a RESERVED lock held on the specified + ** file by this or any other process. If such a lock is held, return + ** non-zero. If the file is unlocked or holds only SHARED locks, then + ** return zero. + */ +static int afpUnixCheckReservedLock(OsFile *id){ + int r = 0; + unixFile *pFile = (unixFile*)id; + + assert( pFile ); + afpLockingContext *context = (afpLockingContext *) pFile->lockingContext; + + /* Check if a thread in this process holds such a lock */ + if( pFile->locktype>SHARED_LOCK ){ + r = 1; + } + + /* Otherwise see if some other process holds it. + */ + if ( !r ) { + // lock the byte + int failed = _AFPFSSetLock(context->filePath, pFile->h, RESERVED_BYTE, 1,1); + if (failed) { + /* if we failed to get the lock then someone else must have it */ + r = 1; + } else { + /* if we succeeded in taking the reserved lock, unlock it to restore + ** the original state */ + _AFPFSSetLock(context->filePath, pFile->h, RESERVED_BYTE, 1, 0); + } + } + TRACE3("TEST WR-LOCK %d %d\n", pFile->h, r); + + return r; +} + +/* AFP-style locking following the behavior of unixLock, see the unixLock +** function comments for details of lock management. */ +static int afpUnixLock(OsFile *id, int locktype) +{ + int rc = SQLITE_OK; + unixFile *pFile = (unixFile*)id; + afpLockingContext *context = (afpLockingContext *) pFile->lockingContext; + int gotPendingLock = 0; + + assert( pFile ); + TRACE5("LOCK %d %s was %s pid=%d\n", pFile->h, + locktypeName(locktype), locktypeName(pFile->locktype), getpid()); + /* If there is already a lock of this type or more restrictive on the + ** OsFile, do nothing. Don't use the afp_end_lock: exit path, as + ** sqlite3OsEnterMutex() hasn't been called yet. + */ + if( pFile->locktype>=locktype ){ + TRACE3("LOCK %d %s ok (already held)\n", pFile->h, + locktypeName(locktype)); + return SQLITE_OK; + } + + /* Make sure the locking sequence is correct + */ + assert( pFile->locktype!=NO_LOCK || locktype==SHARED_LOCK ); + assert( locktype!=PENDING_LOCK ); + assert( locktype!=RESERVED_LOCK || pFile->locktype==SHARED_LOCK ); + + /* This mutex is needed because pFile->pLock is shared across threads + */ + sqlite3OsEnterMutex(); + + /* Make sure the current thread owns the pFile. + */ + rc = transferOwnership(pFile); + if( rc!=SQLITE_OK ){ + sqlite3OsLeaveMutex(); + return rc; + } + + /* A PENDING lock is needed before acquiring a SHARED lock and before + ** acquiring an EXCLUSIVE lock. For the SHARED lock, the PENDING will + ** be released. + */ + if( locktype==SHARED_LOCK + || (locktype==EXCLUSIVE_LOCK && pFile->locktypefilePath, pFile->h, + PENDING_BYTE, 1, 1); + if (failed) { + rc = SQLITE_BUSY; + goto afp_end_lock; + } + } + + /* If control gets to this point, then actually go ahead and make + ** operating system calls for the specified lock. + */ + if( locktype==SHARED_LOCK ){ + int lk, failed; + int tries = 0; + + /* Now get the read-lock */ + /* note that the quality of the randomness doesn't matter that much */ + lk = random(); + context->sharedLockByte = (lk & 0x7fffffff)%(SHARED_SIZE - 1); + failed = _AFPFSSetLock(context->filePath, pFile->h, + SHARED_FIRST+context->sharedLockByte, 1, 1); + + /* Drop the temporary PENDING lock */ + if (_AFPFSSetLock(context->filePath, pFile->h, PENDING_BYTE, 1, 0)) { + rc = SQLITE_IOERR_UNLOCK; /* This should never happen */ + goto afp_end_lock; + } + + if( failed ){ + rc = SQLITE_BUSY; + } else { + pFile->locktype = SHARED_LOCK; + } + }else{ + /* The request was for a RESERVED or EXCLUSIVE lock. It is + ** assumed that there is a SHARED or greater lock on the file + ** already. + */ + int failed = 0; + assert( 0!=pFile->locktype ); + if (locktype >= RESERVED_LOCK && pFile->locktype < RESERVED_LOCK) { + /* Acquire a RESERVED lock */ + failed = _AFPFSSetLock(context->filePath, pFile->h, RESERVED_BYTE, 1,1); + } + if (!failed && locktype == EXCLUSIVE_LOCK) { + /* Acquire an EXCLUSIVE lock */ + + /* Remove the shared lock before trying the range. we'll need to + ** reestablish the shared lock if we can't get the afpUnixUnlock + */ + if (!_AFPFSSetLock(context->filePath, pFile->h, SHARED_FIRST + + context->sharedLockByte, 1, 0)) { + /* now attemmpt to get the exclusive lock range */ + failed = _AFPFSSetLock(context->filePath, pFile->h, SHARED_FIRST, + SHARED_SIZE, 1); + if (failed && _AFPFSSetLock(context->filePath, pFile->h, SHARED_FIRST + + context->sharedLockByte, 1, 1)) { + rc = SQLITE_IOERR_RDLOCK; /* this should never happen */ + } + } else { + /* */ + rc = SQLITE_IOERR_UNLOCK; /* this should never happen */ + } + } + if( failed && rc == SQLITE_OK){ + rc = SQLITE_BUSY; + } + } + + if( rc==SQLITE_OK ){ + pFile->locktype = locktype; + }else if( locktype==EXCLUSIVE_LOCK ){ + pFile->locktype = PENDING_LOCK; + } + +afp_end_lock: + sqlite3OsLeaveMutex(); + TRACE4("LOCK %d %s %s\n", pFile->h, locktypeName(locktype), + rc==SQLITE_OK ? "ok" : "failed"); + return rc; +} + +/* + ** Lower the locking level on file descriptor pFile to locktype. locktype + ** must be either NO_LOCK or SHARED_LOCK. + ** + ** If the locking level of the file descriptor is already at or below + ** the requested locking level, this routine is a no-op. + */ +static int afpUnixUnlock(OsFile *id, int locktype) { + struct flock lock; + int rc = SQLITE_OK; + unixFile *pFile = (unixFile*)id; + afpLockingContext *context = (afpLockingContext *) pFile->lockingContext; + + assert( pFile ); + TRACE5("UNLOCK %d %d was %d pid=%d\n", pFile->h, locktype, + pFile->locktype, getpid()); + + assert( locktype<=SHARED_LOCK ); + if( pFile->locktype<=locktype ){ + return SQLITE_OK; + } + if( CHECK_THREADID(pFile) ){ + return SQLITE_MISUSE; + } + sqlite3OsEnterMutex(); + if( pFile->locktype>SHARED_LOCK ){ + if( locktype==SHARED_LOCK ){ + int failed = 0; + + /* unlock the exclusive range - then re-establish the shared lock */ + if (pFile->locktype==EXCLUSIVE_LOCK) { + failed = _AFPFSSetLock(context->filePath, pFile->h, SHARED_FIRST, + SHARED_SIZE, 0); + if (!failed) { + /* successfully removed the exclusive lock */ + if (_AFPFSSetLock(context->filePath, pFile->h, SHARED_FIRST+ + context->sharedLockByte, 1, 1)) { + /* failed to re-establish our shared lock */ + rc = SQLITE_IOERR_RDLOCK; /* This should never happen */ + } + } else { + /* This should never happen - failed to unlock the exclusive range */ + rc = SQLITE_IOERR_UNLOCK; + } + } + } + if (rc == SQLITE_OK && pFile->locktype>=PENDING_LOCK) { + if (_AFPFSSetLock(context->filePath, pFile->h, PENDING_BYTE, 1, 0)){ + /* failed to release the pending lock */ + rc = SQLITE_IOERR_UNLOCK; /* This should never happen */ + } + } + if (rc == SQLITE_OK && pFile->locktype>=RESERVED_LOCK) { + if (_AFPFSSetLock(context->filePath, pFile->h, RESERVED_BYTE, 1, 0)) { + /* failed to release the reserved lock */ + rc = SQLITE_IOERR_UNLOCK; /* This should never happen */ + } + } + } + if( locktype==NO_LOCK ){ + int failed = _AFPFSSetLock(context->filePath, pFile->h, + SHARED_FIRST + context->sharedLockByte, 1, 0); + if (failed) { + rc = SQLITE_IOERR_UNLOCK; /* This should never happen */ + } + } + if (rc == SQLITE_OK) + pFile->locktype = locktype; + sqlite3OsLeaveMutex(); + return rc; +} + +/* + ** Close a file & cleanup AFP specific locking context + */ +static int afpUnixClose(OsFile **pId) { + unixFile *id = (unixFile*)*pId; + + if( !id ) return SQLITE_OK; + afpUnixUnlock(*pId, NO_LOCK); + /* free the AFP locking structure */ + if (id->lockingContext != NULL) { + if (((afpLockingContext *)id->lockingContext)->filePath != NULL) + sqlite3ThreadSafeFree(((afpLockingContext*)id->lockingContext)->filePath); + sqlite3ThreadSafeFree(id->lockingContext); + } + + if( id->dirfd>=0 ) close(id->dirfd); + id->dirfd = -1; + close(id->h); + id->isOpen = 0; + TRACE2("CLOSE %-3d\n", id->h); + OpenCounter(-1); + sqlite3ThreadSafeFree(id); + *pId = 0; + return SQLITE_OK; +} + + +#pragma mark flock() style locking + +/* + ** The flockLockingContext is not used + */ +typedef void flockLockingContext; + +static int flockUnixCheckReservedLock(OsFile *id) { + unixFile *pFile = (unixFile*)id; + + if (pFile->locktype == RESERVED_LOCK) { + return 1; // already have a reserved lock + } else { + // attempt to get the lock + int rc = flock(pFile->h, LOCK_EX | LOCK_NB); + if (!rc) { + // got the lock, unlock it + flock(pFile->h, LOCK_UN); + return 0; // no one has it reserved + } + return 1; // someone else might have it reserved + } +} + +static int flockUnixLock(OsFile *id, int locktype) { + unixFile *pFile = (unixFile*)id; + + // if we already have a lock, it is exclusive. + // Just adjust level and punt on outta here. + if (pFile->locktype > NO_LOCK) { + pFile->locktype = locktype; + return SQLITE_OK; + } + + // grab an exclusive lock + int rc = flock(pFile->h, LOCK_EX | LOCK_NB); + if (rc) { + // didn't get, must be busy + return SQLITE_BUSY; + } else { + // got it, set the type and return ok + pFile->locktype = locktype; + return SQLITE_OK; + } +} + +static int flockUnixUnlock(OsFile *id, int locktype) { + unixFile *pFile = (unixFile*)id; + + assert( locktype<=SHARED_LOCK ); + + // no-op if possible + if( pFile->locktype==locktype ){ + return SQLITE_OK; + } + + // shared can just be set because we always have an exclusive + if (locktype==SHARED_LOCK) { + pFile->locktype = locktype; + return SQLITE_OK; + } + + // no, really, unlock. + int rc = flock(pFile->h, LOCK_UN); + if (rc) + return SQLITE_IOERR_UNLOCK; + else { + pFile->locktype = NO_LOCK; + return SQLITE_OK; + } +} + +/* + ** Close a file. + */ +static int flockUnixClose(OsFile **pId) { + unixFile *id = (unixFile*)*pId; + + if( !id ) return SQLITE_OK; + flockUnixUnlock(*pId, NO_LOCK); + + if( id->dirfd>=0 ) close(id->dirfd); + id->dirfd = -1; + sqlite3OsEnterMutex(); + + close(id->h); + sqlite3OsLeaveMutex(); + id->isOpen = 0; + TRACE2("CLOSE %-3d\n", id->h); + OpenCounter(-1); + sqlite3ThreadSafeFree(id); + *pId = 0; + return SQLITE_OK; +} + +#pragma mark Old-School .lock file based locking + +/* + ** The dotlockLockingContext structure contains all dotlock (.lock) lock + ** specific state + */ +typedef struct dotlockLockingContext dotlockLockingContext; +struct dotlockLockingContext { + char *lockPath; +}; + + +static int dotlockUnixCheckReservedLock(OsFile *id) { + unixFile *pFile = (unixFile*)id; + dotlockLockingContext *context = + (dotlockLockingContext *) pFile->lockingContext; + + if (pFile->locktype == RESERVED_LOCK) { + return 1; // already have a reserved lock + } else { + struct stat statBuf; + if (lstat(context->lockPath,&statBuf) == 0) + // file exists, someone else has the lock + return 1; + else + // file does not exist, we could have it if we want it + return 0; + } +} + +static int dotlockUnixLock(OsFile *id, int locktype) { + unixFile *pFile = (unixFile*)id; + dotlockLockingContext *context = + (dotlockLockingContext *) pFile->lockingContext; + + // if we already have a lock, it is exclusive. + // Just adjust level and punt on outta here. + if (pFile->locktype > NO_LOCK) { + pFile->locktype = locktype; + + /* Always update the timestamp on the old file */ + utimes(context->lockPath,NULL); + return SQLITE_OK; + } + + // check to see if lock file already exists + struct stat statBuf; + if (lstat(context->lockPath,&statBuf) == 0){ + return SQLITE_BUSY; // it does, busy + } + + // grab an exclusive lock + int fd = open(context->lockPath,O_RDONLY|O_CREAT|O_EXCL,0600); + if (fd < 0) { + // failed to open/create the file, someone else may have stolen the lock + return SQLITE_BUSY; + } + close(fd); + + // got it, set the type and return ok + pFile->locktype = locktype; + return SQLITE_OK; +} + +static int dotlockUnixUnlock(OsFile *id, int locktype) { + unixFile *pFile = (unixFile*)id; + dotlockLockingContext *context = + (dotlockLockingContext *) pFile->lockingContext; + + assert( locktype<=SHARED_LOCK ); + + // no-op if possible + if( pFile->locktype==locktype ){ + return SQLITE_OK; + } + + // shared can just be set because we always have an exclusive + if (locktype==SHARED_LOCK) { + pFile->locktype = locktype; + return SQLITE_OK; + } + + // no, really, unlock. + unlink(context->lockPath); + pFile->locktype = NO_LOCK; + return SQLITE_OK; +} + +/* + ** Close a file. + */ +static int dotlockUnixClose(OsFile **pId) { + unixFile *id = (unixFile*)*pId; + + if( !id ) return SQLITE_OK; + dotlockUnixUnlock(*pId, NO_LOCK); + /* free the dotlock locking structure */ + if (id->lockingContext != NULL) { + if (((dotlockLockingContext *)id->lockingContext)->lockPath != NULL) + sqlite3ThreadSafeFree( ( (dotlockLockingContext *) + id->lockingContext)->lockPath); + sqlite3ThreadSafeFree(id->lockingContext); + } + + if( id->dirfd>=0 ) close(id->dirfd); + id->dirfd = -1; + sqlite3OsEnterMutex(); + + close(id->h); + + sqlite3OsLeaveMutex(); + id->isOpen = 0; + TRACE2("CLOSE %-3d\n", id->h); + OpenCounter(-1); + sqlite3ThreadSafeFree(id); + *pId = 0; + return SQLITE_OK; +} + + +#pragma mark No locking + +/* + ** The nolockLockingContext is void + */ +typedef void nolockLockingContext; + +static int nolockUnixCheckReservedLock(OsFile *id) { + return 0; +} + +static int nolockUnixLock(OsFile *id, int locktype) { + return SQLITE_OK; +} + +static int nolockUnixUnlock(OsFile *id, int locktype) { + return SQLITE_OK; +} + +/* + ** Close a file. + */ +static int nolockUnixClose(OsFile **pId) { + unixFile *id = (unixFile*)*pId; + + if( !id ) return SQLITE_OK; + if( id->dirfd>=0 ) close(id->dirfd); + id->dirfd = -1; + sqlite3OsEnterMutex(); + + close(id->h); + + sqlite3OsLeaveMutex(); + id->isOpen = 0; + TRACE2("CLOSE %-3d\n", id->h); + OpenCounter(-1); + sqlite3ThreadSafeFree(id); + *pId = 0; + return SQLITE_OK; +} + +#endif /* SQLITE_ENABLE_LOCKING_STYLE */ + +/* +** Turn a relative pathname into a full pathname. Return a pointer +** to the full pathname stored in space obtained from sqliteMalloc(). +** The calling function is responsible for freeing this space once it +** is no longer needed. +*/ +char *sqlite3UnixFullPathname(const char *zRelative){ + char *zFull = 0; + if( zRelative[0]=='/' ){ + sqlite3SetString(&zFull, zRelative, (char*)0); + }else{ + char *zBuf = sqliteMalloc(5000); + if( zBuf==0 ){ + return 0; + } + zBuf[0] = 0; + sqlite3SetString(&zFull, getcwd(zBuf, 5000), "/", zRelative, + (char*)0); + sqliteFree(zBuf); + } + +#if 0 + /* + ** Remove "/./" path elements and convert "/A/./" path elements + ** to just "/". + */ + if( zFull ){ + int i, j; + for(i=j=0; zFull[i]; i++){ + if( zFull[i]=='/' ){ + if( zFull[i+1]=='/' ) continue; + if( zFull[i+1]=='.' && zFull[i+2]=='/' ){ + i += 1; + continue; + } + if( zFull[i+1]=='.' && zFull[i+2]=='.' && zFull[i+3]=='/' ){ + while( j>0 && zFull[j-1]!='/' ){ j--; } + i += 3; + continue; + } + } + zFull[j++] = zFull[i]; + } + zFull[j] = 0; + } +#endif + + return zFull; +} + +/* +** Change the value of the fullsync flag in the given file descriptor. +*/ +static void unixSetFullSync(OsFile *id, int v){ + ((unixFile*)id)->fullSync = v; +} + +/* +** Return the underlying file handle for an OsFile +*/ +static int unixFileHandle(OsFile *id){ + return ((unixFile*)id)->h; +} + +/* +** Return an integer that indices the type of lock currently held +** by this handle. (Used for testing and analysis only.) +*/ +static int unixLockState(OsFile *id){ + return ((unixFile*)id)->locktype; +} + +/* +** This vector defines all the methods that can operate on an OsFile +** for unix. +*/ +static const IoMethod sqlite3UnixIoMethod = { + unixClose, + unixOpenDirectory, + unixRead, + unixWrite, + unixSeek, + unixTruncate, + unixSync, + unixSetFullSync, + unixFileHandle, + unixFileSize, + unixLock, + unixUnlock, + unixLockState, + unixCheckReservedLock, +}; + +#ifdef SQLITE_ENABLE_LOCKING_STYLE +/* + ** This vector defines all the methods that can operate on an OsFile + ** for unix with AFP style file locking. + */ +static const IoMethod sqlite3AFPLockingUnixIoMethod = { + afpUnixClose, + unixOpenDirectory, + unixRead, + unixWrite, + unixSeek, + unixTruncate, + unixSync, + unixSetFullSync, + unixFileHandle, + unixFileSize, + afpUnixLock, + afpUnixUnlock, + unixLockState, + afpUnixCheckReservedLock, +}; + +/* + ** This vector defines all the methods that can operate on an OsFile + ** for unix with flock() style file locking. + */ +static const IoMethod sqlite3FlockLockingUnixIoMethod = { + flockUnixClose, + unixOpenDirectory, + unixRead, + unixWrite, + unixSeek, + unixTruncate, + unixSync, + unixSetFullSync, + unixFileHandle, + unixFileSize, + flockUnixLock, + flockUnixUnlock, + unixLockState, + flockUnixCheckReservedLock, +}; + +/* + ** This vector defines all the methods that can operate on an OsFile + ** for unix with dotlock style file locking. + */ +static const IoMethod sqlite3DotlockLockingUnixIoMethod = { + dotlockUnixClose, + unixOpenDirectory, + unixRead, + unixWrite, + unixSeek, + unixTruncate, + unixSync, + unixSetFullSync, + unixFileHandle, + unixFileSize, + dotlockUnixLock, + dotlockUnixUnlock, + unixLockState, + dotlockUnixCheckReservedLock, +}; + +/* + ** This vector defines all the methods that can operate on an OsFile + ** for unix with dotlock style file locking. + */ +static const IoMethod sqlite3NolockLockingUnixIoMethod = { + nolockUnixClose, + unixOpenDirectory, + unixRead, + unixWrite, + unixSeek, + unixTruncate, + unixSync, + unixSetFullSync, + unixFileHandle, + unixFileSize, + nolockUnixLock, + nolockUnixUnlock, + unixLockState, + nolockUnixCheckReservedLock, +}; + +#endif /* SQLITE_ENABLE_LOCKING_STYLE */ + +/* +** Allocate memory for a new unixFile and initialize that unixFile. +** Write a pointer to the new unixFile into *pId. +** If we run out of memory, close the file and return an error. +*/ +#ifdef SQLITE_ENABLE_LOCKING_STYLE +/* + ** When locking extensions are enabled, the filepath and locking style + ** are needed to determine the unixFile pMethod to use for locking operations. + ** The locking-style specific lockingContext data structure is created + ** and assigned here also. + */ +static int allocateUnixFile( + int h, /* Open file descriptor of file being opened */ + OsFile **pId, /* Write completed initialization here */ + const char *zFilename, /* Name of the file being opened */ + int delFlag /* Delete-on-or-before-close flag */ +){ + sqlite3LockingStyle lockingStyle; + unixFile *pNew; + unixFile f; + int rc; + + lockingStyle = sqlite3DetectLockingStyle(zFilename, h); + if ( lockingStyle == posixLockingStyle ) { + sqlite3OsEnterMutex(); + rc = findLockInfo(h, &f.pLock, &f.pOpen); + sqlite3OsLeaveMutex(); + if( rc ){ + close(h); + unlink(zFilename); + return SQLITE_NOMEM; + } + } else { + // pLock and pOpen are only used for posix advisory locking + f.pLock = NULL; + f.pOpen = NULL; + } + if( delFlag ){ + unlink(zFilename); + } + f.dirfd = -1; + f.fullSync = 0; + f.locktype = 0; + f.offset = 0; + f.h = h; + SET_THREADID(&f); + pNew = sqlite3ThreadSafeMalloc( sizeof(unixFile) ); + if( pNew==0 ){ + close(h); + sqlite3OsEnterMutex(); + releaseLockInfo(f.pLock); + releaseOpenCnt(f.pOpen); + sqlite3OsLeaveMutex(); + *pId = 0; + return SQLITE_NOMEM; + }else{ + *pNew = f; + switch(lockingStyle) { + case afpLockingStyle: + /* afp locking uses the file path so it needs to be included in + ** the afpLockingContext */ + pNew->pMethod = &sqlite3AFPLockingUnixIoMethod; + pNew->lockingContext = + sqlite3ThreadSafeMalloc(sizeof(afpLockingContext)); + ((afpLockingContext *)pNew->lockingContext)->filePath = + sqlite3ThreadSafeMalloc(strlen(zFilename) + 1); + strcpy(((afpLockingContext *)pNew->lockingContext)->filePath, + zFilename); + srandomdev(); + break; + case flockLockingStyle: + /* flock locking doesn't need additional lockingContext information */ + pNew->pMethod = &sqlite3FlockLockingUnixIoMethod; + break; + case dotlockLockingStyle: + /* dotlock locking uses the file path so it needs to be included in + ** the dotlockLockingContext */ + pNew->pMethod = &sqlite3DotlockLockingUnixIoMethod; + pNew->lockingContext = sqlite3ThreadSafeMalloc( + sizeof(dotlockLockingContext)); + ((dotlockLockingContext *)pNew->lockingContext)->lockPath = + sqlite3ThreadSafeMalloc(strlen(zFilename) + strlen(".lock") + 1); + sprintf(((dotlockLockingContext *)pNew->lockingContext)->lockPath, + "%s.lock", zFilename); + break; + case posixLockingStyle: + /* posix locking doesn't need additional lockingContext information */ + pNew->pMethod = &sqlite3UnixIoMethod; + break; + case noLockingStyle: + case unsupportedLockingStyle: + default: + pNew->pMethod = &sqlite3NolockLockingUnixIoMethod; + } + *pId = (OsFile*)pNew; + OpenCounter(+1); + return SQLITE_OK; + } +} +#else /* SQLITE_ENABLE_LOCKING_STYLE */ +static int allocateUnixFile( + int h, /* Open file descriptor on file being opened */ + OsFile **pId, /* Write the resul unixFile structure here */ + const char *zFilename, /* Name of the file being opened */ + int delFlag /* If true, delete the file on or before closing */ +){ + unixFile *pNew; + unixFile f; + int rc; + + sqlite3OsEnterMutex(); + rc = findLockInfo(h, &f.pLock, &f.pOpen); + sqlite3OsLeaveMutex(); + if( delFlag ){ + unlink(zFilename); + } + if( rc ){ + close(h); + return SQLITE_NOMEM; + } + TRACE3("OPEN %-3d %s\n", h, zFilename); + f.dirfd = -1; + f.fullSync = 0; + f.locktype = 0; + f.offset = 0; + f.h = h; + SET_THREADID(&f); + pNew = sqlite3ThreadSafeMalloc( sizeof(unixFile) ); + if( pNew==0 ){ + close(h); + sqlite3OsEnterMutex(); + releaseLockInfo(f.pLock); + releaseOpenCnt(f.pOpen); + sqlite3OsLeaveMutex(); + *pId = 0; + return SQLITE_NOMEM; + }else{ + *pNew = f; + pNew->pMethod = &sqlite3UnixIoMethod; + *pId = (OsFile*)pNew; + OpenCounter(+1); + return SQLITE_OK; + } +} +#endif /* SQLITE_ENABLE_LOCKING_STYLE */ + +#endif /* SQLITE_OMIT_DISKIO */ +/*************************************************************************** +** Everything above deals with file I/O. Everything that follows deals +** with other miscellanous aspects of the operating system interface +****************************************************************************/ + + +#ifndef SQLITE_OMIT_LOAD_EXTENSION +/* +** Interfaces for opening a shared library, finding entry points +** within the shared library, and closing the shared library. +*/ +#include +void *sqlite3UnixDlopen(const char *zFilename){ + return dlopen(zFilename, RTLD_NOW | RTLD_GLOBAL); +} +void *sqlite3UnixDlsym(void *pHandle, const char *zSymbol){ + return dlsym(pHandle, zSymbol); +} +int sqlite3UnixDlclose(void *pHandle){ + return dlclose(pHandle); +} +#endif /* SQLITE_OMIT_LOAD_EXTENSION */ + +/* +** Get information to seed the random number generator. The seed +** is written into the buffer zBuf[256]. The calling function must +** supply a sufficiently large buffer. +*/ +int sqlite3UnixRandomSeed(char *zBuf){ + /* We have to initialize zBuf to prevent valgrind from reporting + ** errors. The reports issued by valgrind are incorrect - we would + ** prefer that the randomness be increased by making use of the + ** uninitialized space in zBuf - but valgrind errors tend to worry + ** some users. Rather than argue, it seems easier just to initialize + ** the whole array and silence valgrind, even if that means less randomness + ** in the random seed. + ** + ** When testing, initializing zBuf[] to zero is all we do. That means + ** that we always use the same random number sequence. This makes the + ** tests repeatable. + */ + memset(zBuf, 0, 256); +#if !defined(SQLITE_TEST) + { + int pid, fd; + fd = open("/dev/urandom", O_RDONLY); + if( fd<0 ){ + time_t t; + time(&t); + memcpy(zBuf, &t, sizeof(t)); + pid = getpid(); + memcpy(&zBuf[sizeof(time_t)], &pid, sizeof(pid)); + }else{ + read(fd, zBuf, 256); + close(fd); + } + } +#endif + return SQLITE_OK; +} + +/* +** Sleep for a little while. Return the amount of time slept. +** The argument is the number of milliseconds we want to sleep. +*/ +int sqlite3UnixSleep(int ms){ +#if defined(HAVE_USLEEP) && HAVE_USLEEP + usleep(ms*1000); + return ms; +#else + sleep((ms+999)/1000); + return 1000*((ms+999)/1000); +#endif +} + +/* +** Static variables used for thread synchronization. +** +** inMutex the nesting depth of the recursive mutex. The thread +** holding mutexMain can read this variable at any time. +** But is must hold mutexAux to change this variable. Other +** threads must hold mutexAux to read the variable and can +** never write. +** +** mutexOwner The thread id of the thread holding mutexMain. Same +** access rules as for inMutex. +** +** mutexOwnerValid True if the value in mutexOwner is valid. The same +** access rules apply as for inMutex. +** +** mutexMain The main mutex. Hold this mutex in order to get exclusive +** access to SQLite data structures. +** +** mutexAux An auxiliary mutex needed to access variables defined above. +** +** Mutexes are always acquired in this order: mutexMain mutexAux. It +** is not necessary to acquire mutexMain in order to get mutexAux - just +** do not attempt to acquire them in the reverse order: mutexAux mutexMain. +** Either get the mutexes with mutexMain first or get mutexAux only. +** +** When running on a platform where the three variables inMutex, mutexOwner, +** and mutexOwnerValid can be set atomically, the mutexAux is not required. +** On many systems, all three are 32-bit integers and writing to a 32-bit +** integer is atomic. I think. But there are no guarantees. So it seems +** safer to protect them using mutexAux. +*/ +static int inMutex = 0; +#ifdef SQLITE_UNIX_THREADS +static pthread_t mutexOwner; /* Thread holding mutexMain */ +static int mutexOwnerValid = 0; /* True if mutexOwner is valid */ +static pthread_mutex_t mutexMain = PTHREAD_MUTEX_INITIALIZER; /* The mutex */ +static pthread_mutex_t mutexAux = PTHREAD_MUTEX_INITIALIZER; /* Aux mutex */ +#endif + +/* +** The following pair of routine implement mutual exclusion for +** multi-threaded processes. Only a single thread is allowed to +** executed code that is surrounded by EnterMutex() and LeaveMutex(). +** +** SQLite uses only a single Mutex. There is not much critical +** code and what little there is executes quickly and without blocking. +** +** As of version 3.3.2, this mutex must be recursive. +*/ +void sqlite3UnixEnterMutex(){ +#ifdef SQLITE_UNIX_THREADS + pthread_mutex_lock(&mutexAux); + if( !mutexOwnerValid || !pthread_equal(mutexOwner, pthread_self()) ){ + pthread_mutex_unlock(&mutexAux); + pthread_mutex_lock(&mutexMain); + assert( inMutex==0 ); + assert( !mutexOwnerValid ); + pthread_mutex_lock(&mutexAux); + mutexOwner = pthread_self(); + mutexOwnerValid = 1; + } + inMutex++; + pthread_mutex_unlock(&mutexAux); +#else + inMutex++; +#endif +} +void sqlite3UnixLeaveMutex(){ + assert( inMutex>0 ); +#ifdef SQLITE_UNIX_THREADS + pthread_mutex_lock(&mutexAux); + inMutex--; + assert( pthread_equal(mutexOwner, pthread_self()) ); + if( inMutex==0 ){ + assert( mutexOwnerValid ); + mutexOwnerValid = 0; + pthread_mutex_unlock(&mutexMain); + } + pthread_mutex_unlock(&mutexAux); +#else + inMutex--; +#endif +} + +/* +** Return TRUE if the mutex is currently held. +** +** If the thisThrd parameter is true, return true only if the +** calling thread holds the mutex. If the parameter is false, return +** true if any thread holds the mutex. +*/ +int sqlite3UnixInMutex(int thisThrd){ +#ifdef SQLITE_UNIX_THREADS + int rc; + pthread_mutex_lock(&mutexAux); + rc = inMutex>0 && (thisThrd==0 || pthread_equal(mutexOwner,pthread_self())); + pthread_mutex_unlock(&mutexAux); + return rc; +#else + return inMutex>0; +#endif +} + +/* +** Remember the number of thread-specific-data blocks allocated. +** Use this to verify that we are not leaking thread-specific-data. +** Ticket #1601 +*/ +#ifdef SQLITE_TEST +int sqlite3_tsd_count = 0; +# ifdef SQLITE_UNIX_THREADS + static pthread_mutex_t tsd_counter_mutex = PTHREAD_MUTEX_INITIALIZER; +# define TSD_COUNTER(N) \ + pthread_mutex_lock(&tsd_counter_mutex); \ + sqlite3_tsd_count += N; \ + pthread_mutex_unlock(&tsd_counter_mutex); +# else +# define TSD_COUNTER(N) sqlite3_tsd_count += N +# endif +#else +# define TSD_COUNTER(N) /* no-op */ +#endif + +/* +** If called with allocateFlag>0, then return a pointer to thread +** specific data for the current thread. Allocate and zero the +** thread-specific data if it does not already exist. +** +** If called with allocateFlag==0, then check the current thread +** specific data. Return it if it exists. If it does not exist, +** then return NULL. +** +** If called with allocateFlag<0, check to see if the thread specific +** data is allocated and is all zero. If it is then deallocate it. +** Return a pointer to the thread specific data or NULL if it is +** unallocated or gets deallocated. +*/ +ThreadData *sqlite3UnixThreadSpecificData(int allocateFlag){ + static const ThreadData zeroData = {0}; /* Initializer to silence warnings + ** from broken compilers */ +#ifdef SQLITE_UNIX_THREADS + static pthread_key_t key; + static int keyInit = 0; + ThreadData *pTsd; + + if( !keyInit ){ + sqlite3OsEnterMutex(); + if( !keyInit ){ + int rc; + rc = pthread_key_create(&key, 0); + if( rc ){ + sqlite3OsLeaveMutex(); + return 0; + } + keyInit = 1; + } + sqlite3OsLeaveMutex(); + } + + pTsd = pthread_getspecific(key); + if( allocateFlag>0 ){ + if( pTsd==0 ){ + if( !sqlite3TestMallocFail() ){ + pTsd = sqlite3OsMalloc(sizeof(zeroData)); + } +#ifdef SQLITE_MEMDEBUG + sqlite3_isFail = 0; +#endif + if( pTsd ){ + *pTsd = zeroData; + pthread_setspecific(key, pTsd); + TSD_COUNTER(+1); + } + } + }else if( pTsd!=0 && allocateFlag<0 + && memcmp(pTsd, &zeroData, sizeof(ThreadData))==0 ){ + sqlite3OsFree(pTsd); + pthread_setspecific(key, 0); + TSD_COUNTER(-1); + pTsd = 0; + } + return pTsd; +#else + static ThreadData *pTsd = 0; + if( allocateFlag>0 ){ + if( pTsd==0 ){ + if( !sqlite3TestMallocFail() ){ + pTsd = sqlite3OsMalloc( sizeof(zeroData) ); + } +#ifdef SQLITE_MEMDEBUG + sqlite3_isFail = 0; +#endif + if( pTsd ){ + *pTsd = zeroData; + TSD_COUNTER(+1); + } + } + }else if( pTsd!=0 && allocateFlag<0 + && memcmp(pTsd, &zeroData, sizeof(ThreadData))==0 ){ + sqlite3OsFree(pTsd); + TSD_COUNTER(-1); + pTsd = 0; + } + return pTsd; +#endif +} + +/* +** The following variable, if set to a non-zero value, becomes the result +** returned from sqlite3OsCurrentTime(). This is used for testing. +*/ +#ifdef SQLITE_TEST +int sqlite3_current_time = 0; +#endif + +/* +** Find the current time (in Universal Coordinated Time). Write the +** current time and date as a Julian Day number into *prNow and +** return 0. Return 1 if the time and date cannot be found. +*/ +int sqlite3UnixCurrentTime(double *prNow){ +#ifdef NO_GETTOD + time_t t; + time(&t); + *prNow = t/86400.0 + 2440587.5; +#else + struct timeval sNow; + struct timezone sTz; /* Not used */ + gettimeofday(&sNow, &sTz); + *prNow = 2440587.5 + sNow.tv_sec/86400.0 + sNow.tv_usec/86400000000.0; +#endif +#ifdef SQLITE_TEST + if( sqlite3_current_time ){ + *prNow = sqlite3_current_time/86400.0 + 2440587.5; + } +#endif + return 0; +} + +#endif /* OS_UNIX */ diff --git a/src/dep/src/sqlite/os_win.c b/src/dep/src/sqlite/os_win.c new file mode 100644 index 0000000..59d7599 --- /dev/null +++ b/src/dep/src/sqlite/os_win.c @@ -0,0 +1,1745 @@ +/* +** 2004 May 22 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** This file contains code that is specific to windows. +*/ +#include "sqliteInt.h" +#include "os.h" +#if OS_WIN /* This file is used for windows only */ + +#include + +#ifdef __CYGWIN__ +# include +#endif + +/* +** Macros used to determine whether or not to use threads. +*/ +#if defined(THREADSAFE) && THREADSAFE +# define SQLITE_W32_THREADS 1 +#endif + +/* +** Include code that is common to all os_*.c files +*/ +#include "os_common.h" + +/* +** Determine if we are dealing with WindowsCE - which has a much +** reduced API. +*/ +#if defined(_WIN32_WCE) +# define OS_WINCE 1 +#else +# define OS_WINCE 0 +#endif + +/* +** WinCE lacks native support for file locking so we have to fake it +** with some code of our own. +*/ +#if OS_WINCE +typedef struct winceLock { + int nReaders; /* Number of reader locks obtained */ + BOOL bPending; /* Indicates a pending lock has been obtained */ + BOOL bReserved; /* Indicates a reserved lock has been obtained */ + BOOL bExclusive; /* Indicates an exclusive lock has been obtained */ +} winceLock; +#endif + +/* +** The winFile structure is a subclass of OsFile specific to the win32 +** portability layer. +*/ +typedef struct winFile winFile; +struct winFile { + IoMethod const *pMethod;/* Must be first */ + HANDLE h; /* Handle for accessing the file */ + unsigned char locktype; /* Type of lock currently held on this file */ + short sharedLockByte; /* Randomly chosen byte used as a shared lock */ +#if OS_WINCE + WCHAR *zDeleteOnClose; /* Name of file to delete when closing */ + HANDLE hMutex; /* Mutex used to control access to shared lock */ + HANDLE hShared; /* Shared memory segment used for locking */ + winceLock local; /* Locks obtained by this instance of winFile */ + winceLock *shared; /* Global shared lock memory for the file */ +#endif +}; + + +/* +** Do not include any of the File I/O interface procedures if the +** SQLITE_OMIT_DISKIO macro is defined (indicating that there database +** will be in-memory only) +*/ +#ifndef SQLITE_OMIT_DISKIO + +/* +** The following variable is (normally) set once and never changes +** thereafter. It records whether the operating system is Win95 +** or WinNT. +** +** 0: Operating system unknown. +** 1: Operating system is Win95. +** 2: Operating system is WinNT. +** +** In order to facilitate testing on a WinNT system, the test fixture +** can manually set this value to 1 to emulate Win98 behavior. +*/ +int sqlite3_os_type = 0; + +/* +** Return true (non-zero) if we are running under WinNT, Win2K, WinXP, +** or WinCE. Return false (zero) for Win95, Win98, or WinME. +** +** Here is an interesting observation: Win95, Win98, and WinME lack +** the LockFileEx() API. But we can still statically link against that +** API as long as we don't call it win running Win95/98/ME. A call to +** this routine is used to determine if the host is Win95/98/ME or +** WinNT/2K/XP so that we will know whether or not we can safely call +** the LockFileEx() API. +*/ +#if OS_WINCE +# define isNT() (1) +#else + static int isNT(void){ + if( sqlite3_os_type==0 ){ + OSVERSIONINFO sInfo; + sInfo.dwOSVersionInfoSize = sizeof(sInfo); + GetVersionEx(&sInfo); + sqlite3_os_type = sInfo.dwPlatformId==VER_PLATFORM_WIN32_NT ? 2 : 1; + } + return sqlite3_os_type==2; + } +#endif /* OS_WINCE */ + +/* +** Convert a UTF-8 string to microsoft unicode (UTF-16?). +** +** Space to hold the returned string is obtained from sqliteMalloc. +*/ +static WCHAR *utf8ToUnicode(const char *zFilename){ + int nChar; + WCHAR *zWideFilename; + + nChar = MultiByteToWideChar(CP_UTF8, 0, zFilename, -1, NULL, 0); + zWideFilename = sqliteMalloc( nChar*sizeof(zWideFilename[0]) ); + if( zWideFilename==0 ){ + return 0; + } + nChar = MultiByteToWideChar(CP_UTF8, 0, zFilename, -1, zWideFilename, nChar); + if( nChar==0 ){ + sqliteFree(zWideFilename); + zWideFilename = 0; + } + return zWideFilename; +} + +/* +** Convert microsoft unicode to UTF-8. Space to hold the returned string is +** obtained from sqliteMalloc(). +*/ +static char *unicodeToUtf8(const WCHAR *zWideFilename){ + int nByte; + char *zFilename; + + nByte = WideCharToMultiByte(CP_UTF8, 0, zWideFilename, -1, 0, 0, 0, 0); + zFilename = sqliteMalloc( nByte ); + if( zFilename==0 ){ + return 0; + } + nByte = WideCharToMultiByte(CP_UTF8, 0, zWideFilename, -1, zFilename, nByte, + 0, 0); + if( nByte == 0 ){ + sqliteFree(zFilename); + zFilename = 0; + } + return zFilename; +} + +/* +** Convert an ansi string to microsoft unicode, based on the +** current codepage settings for file apis. +** +** Space to hold the returned string is obtained +** from sqliteMalloc. +*/ +static WCHAR *mbcsToUnicode(const char *zFilename){ + int nByte; + WCHAR *zMbcsFilename; + int codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP; + + nByte = MultiByteToWideChar(codepage, 0, zFilename, -1, NULL,0)*sizeof(WCHAR); + zMbcsFilename = sqliteMalloc( nByte*sizeof(zMbcsFilename[0]) ); + if( zMbcsFilename==0 ){ + return 0; + } + nByte = MultiByteToWideChar(codepage, 0, zFilename, -1, zMbcsFilename, nByte); + if( nByte==0 ){ + sqliteFree(zMbcsFilename); + zMbcsFilename = 0; + } + return zMbcsFilename; +} + +/* +** Convert microsoft unicode to multibyte character string, based on the +** user's Ansi codepage. +** +** Space to hold the returned string is obtained from +** sqliteMalloc(). +*/ +static char *unicodeToMbcs(const WCHAR *zWideFilename){ + int nByte; + char *zFilename; + int codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP; + + nByte = WideCharToMultiByte(codepage, 0, zWideFilename, -1, 0, 0, 0, 0); + zFilename = sqliteMalloc( nByte ); + if( zFilename==0 ){ + return 0; + } + nByte = WideCharToMultiByte(codepage, 0, zWideFilename, -1, zFilename, nByte, + 0, 0); + if( nByte == 0 ){ + sqliteFree(zFilename); + zFilename = 0; + } + return zFilename; +} + +/* +** Convert multibyte character string to UTF-8. Space to hold the +** returned string is obtained from sqliteMalloc(). +*/ +static char *mbcsToUtf8(const char *zFilename){ + char *zFilenameUtf8; + WCHAR *zTmpWide; + + zTmpWide = mbcsToUnicode(zFilename); + if( zTmpWide==0 ){ + return 0; + } + zFilenameUtf8 = unicodeToUtf8(zTmpWide); + sqliteFree(zTmpWide); + return zFilenameUtf8; +} + +/* +** Convert UTF-8 to multibyte character string. Space to hold the +** returned string is obtained from sqliteMalloc(). +*/ +static char *utf8ToMbcs(const char *zFilename){ + char *zFilenameMbcs; + WCHAR *zTmpWide; + + zTmpWide = utf8ToUnicode(zFilename); + if( zTmpWide==0 ){ + return 0; + } + zFilenameMbcs = unicodeToMbcs(zTmpWide); + sqliteFree(zTmpWide); + return zFilenameMbcs; +} + +#if OS_WINCE +/************************************************************************* +** This section contains code for WinCE only. +*/ +/* +** WindowsCE does not have a localtime() function. So create a +** substitute. +*/ +#include +struct tm *__cdecl localtime(const time_t *t) +{ + static struct tm y; + FILETIME uTm, lTm; + SYSTEMTIME pTm; + i64 t64; + t64 = *t; + t64 = (t64 + 11644473600)*10000000; + uTm.dwLowDateTime = t64 & 0xFFFFFFFF; + uTm.dwHighDateTime= t64 >> 32; + FileTimeToLocalFileTime(&uTm,&lTm); + FileTimeToSystemTime(&lTm,&pTm); + y.tm_year = pTm.wYear - 1900; + y.tm_mon = pTm.wMonth - 1; + y.tm_wday = pTm.wDayOfWeek; + y.tm_mday = pTm.wDay; + y.tm_hour = pTm.wHour; + y.tm_min = pTm.wMinute; + y.tm_sec = pTm.wSecond; + return &y; +} + +/* This will never be called, but defined to make the code compile */ +#define GetTempPathA(a,b) + +#define LockFile(a,b,c,d,e) winceLockFile(&a, b, c, d, e) +#define UnlockFile(a,b,c,d,e) winceUnlockFile(&a, b, c, d, e) +#define LockFileEx(a,b,c,d,e,f) winceLockFileEx(&a, b, c, d, e, f) + +#define HANDLE_TO_WINFILE(a) (winFile*)&((char*)a)[-offsetof(winFile,h)] + +/* +** Acquire a lock on the handle h +*/ +static void winceMutexAcquire(HANDLE h){ + DWORD dwErr; + do { + dwErr = WaitForSingleObject(h, INFINITE); + } while (dwErr != WAIT_OBJECT_0 && dwErr != WAIT_ABANDONED); +} +/* +** Release a lock acquired by winceMutexAcquire() +*/ +#define winceMutexRelease(h) ReleaseMutex(h) + +/* +** Create the mutex and shared memory used for locking in the file +** descriptor pFile +*/ +static BOOL winceCreateLock(const char *zFilename, winFile *pFile){ + WCHAR *zTok; + WCHAR *zName = utf8ToUnicode(zFilename); + BOOL bInit = TRUE; + + /* Initialize the local lockdata */ + ZeroMemory(&pFile->local, sizeof(pFile->local)); + + /* Replace the backslashes from the filename and lowercase it + ** to derive a mutex name. */ + zTok = CharLowerW(zName); + for (;*zTok;zTok++){ + if (*zTok == '\\') *zTok = '_'; + } + + /* Create/open the named mutex */ + pFile->hMutex = CreateMutexW(NULL, FALSE, zName); + if (!pFile->hMutex){ + sqliteFree(zName); + return FALSE; + } + + /* Acquire the mutex before continuing */ + winceMutexAcquire(pFile->hMutex); + + /* Since the names of named mutexes, semaphores, file mappings etc are + ** case-sensitive, take advantage of that by uppercasing the mutex name + ** and using that as the shared filemapping name. + */ + CharUpperW(zName); + pFile->hShared = CreateFileMappingW(INVALID_HANDLE_VALUE, NULL, + PAGE_READWRITE, 0, sizeof(winceLock), + zName); + + /* Set a flag that indicates we're the first to create the memory so it + ** must be zero-initialized */ + if (GetLastError() == ERROR_ALREADY_EXISTS){ + bInit = FALSE; + } + + sqliteFree(zName); + + /* If we succeeded in making the shared memory handle, map it. */ + if (pFile->hShared){ + pFile->shared = (winceLock*)MapViewOfFile(pFile->hShared, + FILE_MAP_READ|FILE_MAP_WRITE, 0, 0, sizeof(winceLock)); + /* If mapping failed, close the shared memory handle and erase it */ + if (!pFile->shared){ + CloseHandle(pFile->hShared); + pFile->hShared = NULL; + } + } + + /* If shared memory could not be created, then close the mutex and fail */ + if (pFile->hShared == NULL){ + winceMutexRelease(pFile->hMutex); + CloseHandle(pFile->hMutex); + pFile->hMutex = NULL; + return FALSE; + } + + /* Initialize the shared memory if we're supposed to */ + if (bInit) { + ZeroMemory(pFile->shared, sizeof(winceLock)); + } + + winceMutexRelease(pFile->hMutex); + return TRUE; +} + +/* +** Destroy the part of winFile that deals with wince locks +*/ +static void winceDestroyLock(winFile *pFile){ + if (pFile->hMutex){ + /* Acquire the mutex */ + winceMutexAcquire(pFile->hMutex); + + /* The following blocks should probably assert in debug mode, but they + are to cleanup in case any locks remained open */ + if (pFile->local.nReaders){ + pFile->shared->nReaders --; + } + if (pFile->local.bReserved){ + pFile->shared->bReserved = FALSE; + } + if (pFile->local.bPending){ + pFile->shared->bPending = FALSE; + } + if (pFile->local.bExclusive){ + pFile->shared->bExclusive = FALSE; + } + + /* De-reference and close our copy of the shared memory handle */ + UnmapViewOfFile(pFile->shared); + CloseHandle(pFile->hShared); + + /* Done with the mutex */ + winceMutexRelease(pFile->hMutex); + CloseHandle(pFile->hMutex); + pFile->hMutex = NULL; + } +} + +/* +** An implementation of the LockFile() API of windows for wince +*/ +static BOOL winceLockFile( + HANDLE *phFile, + DWORD dwFileOffsetLow, + DWORD dwFileOffsetHigh, + DWORD nNumberOfBytesToLockLow, + DWORD nNumberOfBytesToLockHigh +){ + winFile *pFile = HANDLE_TO_WINFILE(phFile); + BOOL bReturn = FALSE; + + if (!pFile->hMutex) return TRUE; + winceMutexAcquire(pFile->hMutex); + + /* Wanting an exclusive lock? */ + if (dwFileOffsetLow == SHARED_FIRST + && nNumberOfBytesToLockLow == SHARED_SIZE){ + if (pFile->shared->nReaders == 0 && pFile->shared->bExclusive == 0){ + pFile->shared->bExclusive = TRUE; + pFile->local.bExclusive = TRUE; + bReturn = TRUE; + } + } + + /* Want a read-only lock? */ + else if ((dwFileOffsetLow >= SHARED_FIRST && + dwFileOffsetLow < SHARED_FIRST + SHARED_SIZE) && + nNumberOfBytesToLockLow == 1){ + if (pFile->shared->bExclusive == 0){ + pFile->local.nReaders ++; + if (pFile->local.nReaders == 1){ + pFile->shared->nReaders ++; + } + bReturn = TRUE; + } + } + + /* Want a pending lock? */ + else if (dwFileOffsetLow == PENDING_BYTE && nNumberOfBytesToLockLow == 1){ + /* If no pending lock has been acquired, then acquire it */ + if (pFile->shared->bPending == 0) { + pFile->shared->bPending = TRUE; + pFile->local.bPending = TRUE; + bReturn = TRUE; + } + } + /* Want a reserved lock? */ + else if (dwFileOffsetLow == RESERVED_BYTE && nNumberOfBytesToLockLow == 1){ + if (pFile->shared->bReserved == 0) { + pFile->shared->bReserved = TRUE; + pFile->local.bReserved = TRUE; + bReturn = TRUE; + } + } + + winceMutexRelease(pFile->hMutex); + return bReturn; +} + +/* +** An implementation of the UnlockFile API of windows for wince +*/ +static BOOL winceUnlockFile( + HANDLE *phFile, + DWORD dwFileOffsetLow, + DWORD dwFileOffsetHigh, + DWORD nNumberOfBytesToUnlockLow, + DWORD nNumberOfBytesToUnlockHigh +){ + winFile *pFile = HANDLE_TO_WINFILE(phFile); + BOOL bReturn = FALSE; + + if (!pFile->hMutex) return TRUE; + winceMutexAcquire(pFile->hMutex); + + /* Releasing a reader lock or an exclusive lock */ + if (dwFileOffsetLow >= SHARED_FIRST && + dwFileOffsetLow < SHARED_FIRST + SHARED_SIZE){ + /* Did we have an exclusive lock? */ + if (pFile->local.bExclusive){ + pFile->local.bExclusive = FALSE; + pFile->shared->bExclusive = FALSE; + bReturn = TRUE; + } + + /* Did we just have a reader lock? */ + else if (pFile->local.nReaders){ + pFile->local.nReaders --; + if (pFile->local.nReaders == 0) + { + pFile->shared->nReaders --; + } + bReturn = TRUE; + } + } + + /* Releasing a pending lock */ + else if (dwFileOffsetLow == PENDING_BYTE && nNumberOfBytesToUnlockLow == 1){ + if (pFile->local.bPending){ + pFile->local.bPending = FALSE; + pFile->shared->bPending = FALSE; + bReturn = TRUE; + } + } + /* Releasing a reserved lock */ + else if (dwFileOffsetLow == RESERVED_BYTE && nNumberOfBytesToUnlockLow == 1){ + if (pFile->local.bReserved) { + pFile->local.bReserved = FALSE; + pFile->shared->bReserved = FALSE; + bReturn = TRUE; + } + } + + winceMutexRelease(pFile->hMutex); + return bReturn; +} + +/* +** An implementation of the LockFileEx() API of windows for wince +*/ +static BOOL winceLockFileEx( + HANDLE *phFile, + DWORD dwFlags, + DWORD dwReserved, + DWORD nNumberOfBytesToLockLow, + DWORD nNumberOfBytesToLockHigh, + LPOVERLAPPED lpOverlapped +){ + /* If the caller wants a shared read lock, forward this call + ** to winceLockFile */ + if (lpOverlapped->Offset == SHARED_FIRST && + dwFlags == 1 && + nNumberOfBytesToLockLow == SHARED_SIZE){ + return winceLockFile(phFile, SHARED_FIRST, 0, 1, 0); + } + return FALSE; +} +/* +** End of the special code for wince +*****************************************************************************/ +#endif /* OS_WINCE */ + +/* +** Convert a UTF-8 filename into whatever form the underlying +** operating system wants filenames in. Space to hold the result +** is obtained from sqliteMalloc and must be freed by the calling +** function. +*/ +static void *convertUtf8Filename(const char *zFilename){ + void *zConverted = 0; + if( isNT() ){ + zConverted = utf8ToUnicode(zFilename); + }else{ + zConverted = utf8ToMbcs(zFilename); + } + /* caller will handle out of memory */ + return zConverted; +} + +/* +** Delete the named file. +** +** Note that windows does not allow a file to be deleted if some other +** process has it open. Sometimes a virus scanner or indexing program +** will open a journal file shortly after it is created in order to do +** whatever it is it does. While this other process is holding the +** file open, we will be unable to delete it. To work around this +** problem, we delay 100 milliseconds and try to delete again. Up +** to MX_DELETION_ATTEMPTs deletion attempts are run before giving +** up and returning an error. +*/ +#define MX_DELETION_ATTEMPTS 3 +int sqlite3WinDelete(const char *zFilename){ + int cnt = 0; + int rc; + void *zConverted = convertUtf8Filename(zFilename); + if( zConverted==0 ){ + return SQLITE_NOMEM; + } + if( isNT() ){ + do{ + rc = DeleteFileW(zConverted); + }while( rc==0 && GetFileAttributesW(zConverted)!=0xffffffff + && cnt++ < MX_DELETION_ATTEMPTS && (Sleep(100), 1) ); + }else{ +#if OS_WINCE + return SQLITE_NOMEM; +#else + do{ + rc = DeleteFileA(zConverted); + }while( rc==0 && GetFileAttributesA(zConverted)!=0xffffffff + && cnt++ < MX_DELETION_ATTEMPTS && (Sleep(100), 1) ); +#endif + } + sqliteFree(zConverted); + TRACE2("DELETE \"%s\"\n", zFilename); + return rc!=0 ? SQLITE_OK : SQLITE_IOERR; +} + +/* +** Return TRUE if the named file exists. +*/ +int sqlite3WinFileExists(const char *zFilename){ + int exists = 0; + void *zConverted = convertUtf8Filename(zFilename); + if( zConverted==0 ){ + return SQLITE_NOMEM; + } + if( isNT() ){ + exists = GetFileAttributesW((WCHAR*)zConverted) != 0xffffffff; + }else{ +#if OS_WINCE + return SQLITE_NOMEM; +#else + exists = GetFileAttributesA((char*)zConverted) != 0xffffffff; +#endif + } + sqliteFree(zConverted); + return exists; +} + +/* Forward declaration */ +static int allocateWinFile(winFile *pInit, OsFile **pId); + +/* +** Attempt to open a file for both reading and writing. If that +** fails, try opening it read-only. If the file does not exist, +** try to create it. +** +** On success, a handle for the open file is written to *id +** and *pReadonly is set to 0 if the file was opened for reading and +** writing or 1 if the file was opened read-only. The function returns +** SQLITE_OK. +** +** On failure, the function returns SQLITE_CANTOPEN and leaves +** *id and *pReadonly unchanged. +*/ +int sqlite3WinOpenReadWrite( + const char *zFilename, + OsFile **pId, + int *pReadonly +){ + winFile f; + HANDLE h; + void *zConverted = convertUtf8Filename(zFilename); + if( zConverted==0 ){ + return SQLITE_NOMEM; + } + assert( *pId==0 ); + + if( isNT() ){ + h = CreateFileW((WCHAR*)zConverted, + GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, + OPEN_ALWAYS, + FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS, + NULL + ); + if( h==INVALID_HANDLE_VALUE ){ + h = CreateFileW((WCHAR*)zConverted, + GENERIC_READ, + FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, + OPEN_ALWAYS, + FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS, + NULL + ); + if( h==INVALID_HANDLE_VALUE ){ + sqliteFree(zConverted); + return SQLITE_CANTOPEN; + } + *pReadonly = 1; + }else{ + *pReadonly = 0; + } +#if OS_WINCE + if (!winceCreateLock(zFilename, &f)){ + CloseHandle(h); + sqliteFree(zConverted); + return SQLITE_CANTOPEN; + } +#endif + }else{ +#if OS_WINCE + return SQLITE_NOMEM; +#else + h = CreateFileA((char*)zConverted, + GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, + OPEN_ALWAYS, + FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS, + NULL + ); + if( h==INVALID_HANDLE_VALUE ){ + h = CreateFileA((char*)zConverted, + GENERIC_READ, + FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, + OPEN_ALWAYS, + FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS, + NULL + ); + if( h==INVALID_HANDLE_VALUE ){ + sqliteFree(zConverted); + return SQLITE_CANTOPEN; + } + *pReadonly = 1; + }else{ + *pReadonly = 0; + } +#endif /* OS_WINCE */ + } + + sqliteFree(zConverted); + + f.h = h; +#if OS_WINCE + f.zDeleteOnClose = 0; +#endif + TRACE3("OPEN R/W %d \"%s\"\n", h, zFilename); + return allocateWinFile(&f, pId); +} + + +/* +** Attempt to open a new file for exclusive access by this process. +** The file will be opened for both reading and writing. To avoid +** a potential security problem, we do not allow the file to have +** previously existed. Nor do we allow the file to be a symbolic +** link. +** +** If delFlag is true, then make arrangements to automatically delete +** the file when it is closed. +** +** On success, write the file handle into *id and return SQLITE_OK. +** +** On failure, return SQLITE_CANTOPEN. +** +** Sometimes if we have just deleted a prior journal file, windows +** will fail to open a new one because there is a "pending delete". +** To work around this bug, we pause for 100 milliseconds and attempt +** a second open after the first one fails. The whole operation only +** fails if both open attempts are unsuccessful. +*/ +int sqlite3WinOpenExclusive(const char *zFilename, OsFile **pId, int delFlag){ + winFile f; + HANDLE h; + DWORD fileflags; + void *zConverted = convertUtf8Filename(zFilename); + if( zConverted==0 ){ + return SQLITE_NOMEM; + } + assert( *pId == 0 ); + fileflags = FILE_FLAG_RANDOM_ACCESS; +#if !OS_WINCE + if( delFlag ){ + fileflags |= FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE; + } +#endif + if( isNT() ){ + int cnt = 0; + do{ + h = CreateFileW((WCHAR*)zConverted, + GENERIC_READ | GENERIC_WRITE, + 0, + NULL, + CREATE_ALWAYS, + fileflags, + NULL + ); + }while( h==INVALID_HANDLE_VALUE && cnt++ < 2 && (Sleep(100), 1) ); + }else{ +#if OS_WINCE + return SQLITE_NOMEM; +#else + int cnt = 0; + do{ + h = CreateFileA((char*)zConverted, + GENERIC_READ | GENERIC_WRITE, + 0, + NULL, + CREATE_ALWAYS, + fileflags, + NULL + ); + }while( h==INVALID_HANDLE_VALUE && cnt++ < 2 && (Sleep(100), 1) ); +#endif /* OS_WINCE */ + } +#if OS_WINCE + if( delFlag && h!=INVALID_HANDLE_VALUE ){ + f.zDeleteOnClose = zConverted; + zConverted = 0; + } + f.hMutex = NULL; +#endif + sqliteFree(zConverted); + if( h==INVALID_HANDLE_VALUE ){ + return SQLITE_CANTOPEN; + } + f.h = h; + TRACE3("OPEN EX %d \"%s\"\n", h, zFilename); + return allocateWinFile(&f, pId); +} + +/* +** Attempt to open a new file for read-only access. +** +** On success, write the file handle into *id and return SQLITE_OK. +** +** On failure, return SQLITE_CANTOPEN. +*/ +int sqlite3WinOpenReadOnly(const char *zFilename, OsFile **pId){ + winFile f; + HANDLE h; + void *zConverted = convertUtf8Filename(zFilename); + if( zConverted==0 ){ + return SQLITE_NOMEM; + } + assert( *pId==0 ); + if( isNT() ){ + h = CreateFileW((WCHAR*)zConverted, + GENERIC_READ, + 0, + NULL, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS, + NULL + ); + }else{ +#if OS_WINCE + return SQLITE_NOMEM; +#else + h = CreateFileA((char*)zConverted, + GENERIC_READ, + 0, + NULL, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS, + NULL + ); +#endif + } + sqliteFree(zConverted); + if( h==INVALID_HANDLE_VALUE ){ + return SQLITE_CANTOPEN; + } + f.h = h; +#if OS_WINCE + f.zDeleteOnClose = 0; + f.hMutex = NULL; +#endif + TRACE3("OPEN RO %d \"%s\"\n", h, zFilename); + return allocateWinFile(&f, pId); +} + +/* +** Attempt to open a file descriptor for the directory that contains a +** file. This file descriptor can be used to fsync() the directory +** in order to make sure the creation of a new file is actually written +** to disk. +** +** This routine is only meaningful for Unix. It is a no-op under +** windows since windows does not support hard links. +** +** On success, a handle for a previously open file is at *id is +** updated with the new directory file descriptor and SQLITE_OK is +** returned. +** +** On failure, the function returns SQLITE_CANTOPEN and leaves +** *id unchanged. +*/ +static int winOpenDirectory( + OsFile *id, + const char *zDirname +){ + return SQLITE_OK; +} + +/* +** If the following global variable points to a string which is the +** name of a directory, then that directory will be used to store +** temporary files. +*/ +char *sqlite3_temp_directory = 0; + +/* +** Create a temporary file name in zBuf. zBuf must be big enough to +** hold at least SQLITE_TEMPNAME_SIZE characters. +*/ +int sqlite3WinTempFileName(char *zBuf){ + static char zChars[] = + "abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "0123456789"; + int i, j; + char zTempPath[SQLITE_TEMPNAME_SIZE]; + if( sqlite3_temp_directory ){ + strncpy(zTempPath, sqlite3_temp_directory, SQLITE_TEMPNAME_SIZE-30); + zTempPath[SQLITE_TEMPNAME_SIZE-30] = 0; + }else if( isNT() ){ + char *zMulti; + WCHAR zWidePath[SQLITE_TEMPNAME_SIZE]; + GetTempPathW(SQLITE_TEMPNAME_SIZE-30, zWidePath); + zMulti = unicodeToUtf8(zWidePath); + if( zMulti ){ + strncpy(zTempPath, zMulti, SQLITE_TEMPNAME_SIZE-30); + zTempPath[SQLITE_TEMPNAME_SIZE-30] = 0; + sqliteFree(zMulti); + }else{ + return SQLITE_NOMEM; + } + }else{ + char *zUtf8; + char zMbcsPath[SQLITE_TEMPNAME_SIZE]; + GetTempPathA(SQLITE_TEMPNAME_SIZE-30, zMbcsPath); + zUtf8 = mbcsToUtf8(zMbcsPath); + if( zUtf8 ){ + strncpy(zTempPath, zUtf8, SQLITE_TEMPNAME_SIZE-30); + zTempPath[SQLITE_TEMPNAME_SIZE-30] = 0; + sqliteFree(zUtf8); + }else{ + return SQLITE_NOMEM; + } + } + for(i=strlen(zTempPath); i>0 && zTempPath[i-1]=='\\'; i--){} + zTempPath[i] = 0; + for(;;){ + sprintf(zBuf, "%s\\"TEMP_FILE_PREFIX, zTempPath); + j = strlen(zBuf); + sqlite3Randomness(15, &zBuf[j]); + for(i=0; i<15; i++, j++){ + zBuf[j] = (char)zChars[ ((unsigned char)zBuf[j])%(sizeof(zChars)-1) ]; + } + zBuf[j] = 0; + if( !sqlite3OsFileExists(zBuf) ) break; + } + TRACE2("TEMP FILENAME: %s\n", zBuf); + return SQLITE_OK; +} + +/* +** Close a file. +** +** It is reported that an attempt to close a handle might sometimes +** fail. This is a very unreasonable result, but windows is notorious +** for being unreasonable so I do not doubt that it might happen. If +** the close fails, we pause for 100 milliseconds and try again. As +** many as MX_CLOSE_ATTEMPT attempts to close the handle are made before +** giving up and returning an error. +*/ +#define MX_CLOSE_ATTEMPT 3 +static int winClose(OsFile **pId){ + winFile *pFile; + int rc = 1; + if( pId && (pFile = (winFile*)*pId)!=0 ){ + int rc, cnt = 0; + TRACE2("CLOSE %d\n", pFile->h); + do{ + rc = CloseHandle(pFile->h); + }while( rc==0 && cnt++ < MX_CLOSE_ATTEMPT && (Sleep(100), 1) ); +#if OS_WINCE + winceDestroyLock(pFile); + if( pFile->zDeleteOnClose ){ + DeleteFileW(pFile->zDeleteOnClose); + sqliteFree(pFile->zDeleteOnClose); + } +#endif + OpenCounter(-1); + sqliteFree(pFile); + *pId = 0; + } + return rc ? SQLITE_OK : SQLITE_IOERR; +} + +/* +** Read data from a file into a buffer. Return SQLITE_OK if all +** bytes were read successfully and SQLITE_IOERR if anything goes +** wrong. +*/ +static int winRead(OsFile *id, void *pBuf, int amt){ + DWORD got; + assert( id!=0 ); + SimulateIOError(return SQLITE_IOERR_READ); + TRACE3("READ %d lock=%d\n", ((winFile*)id)->h, ((winFile*)id)->locktype); + if( !ReadFile(((winFile*)id)->h, pBuf, amt, &got, 0) ){ + return SQLITE_IOERR_READ; + } + if( got==(DWORD)amt ){ + return SQLITE_OK; + }else{ + memset(&((char*)pBuf)[got], 0, amt-got); + return SQLITE_IOERR_SHORT_READ; + } +} + +/* +** Write data from a buffer into a file. Return SQLITE_OK on success +** or some other error code on failure. +*/ +static int winWrite(OsFile *id, const void *pBuf, int amt){ + int rc = 0; + DWORD wrote; + assert( id!=0 ); + SimulateIOError(return SQLITE_IOERR_READ); + SimulateDiskfullError(return SQLITE_FULL); + TRACE3("WRITE %d lock=%d\n", ((winFile*)id)->h, ((winFile*)id)->locktype); + assert( amt>0 ); + while( amt>0 && (rc = WriteFile(((winFile*)id)->h, pBuf, amt, &wrote, 0))!=0 + && wrote>0 ){ + amt -= wrote; + pBuf = &((char*)pBuf)[wrote]; + } + if( !rc || amt>(int)wrote ){ + return SQLITE_FULL; + } + return SQLITE_OK; +} + +/* +** Some microsoft compilers lack this definition. +*/ +#ifndef INVALID_SET_FILE_POINTER +# define INVALID_SET_FILE_POINTER ((DWORD)-1) +#endif + +/* +** Move the read/write pointer in a file. +*/ +static int winSeek(OsFile *id, i64 offset){ + LONG upperBits = offset>>32; + LONG lowerBits = offset & 0xffffffff; + DWORD rc; + assert( id!=0 ); +#ifdef SQLITE_TEST + if( offset ) SimulateDiskfullError(return SQLITE_FULL); +#endif + SEEK(offset/1024 + 1); + rc = SetFilePointer(((winFile*)id)->h, lowerBits, &upperBits, FILE_BEGIN); + TRACE3("SEEK %d %lld\n", ((winFile*)id)->h, offset); + if( rc==INVALID_SET_FILE_POINTER && GetLastError()!=NO_ERROR ){ + return SQLITE_FULL; + } + return SQLITE_OK; +} + +/* +** Make sure all writes to a particular file are committed to disk. +*/ +static int winSync(OsFile *id, int dataOnly){ + assert( id!=0 ); + TRACE3("SYNC %d lock=%d\n", ((winFile*)id)->h, ((winFile*)id)->locktype); + if( FlushFileBuffers(((winFile*)id)->h) ){ + return SQLITE_OK; + }else{ + return SQLITE_IOERR; + } +} + +/* +** Sync the directory zDirname. This is a no-op on operating systems other +** than UNIX. +*/ +int sqlite3WinSyncDirectory(const char *zDirname){ + SimulateIOError(return SQLITE_IOERR_READ); + return SQLITE_OK; +} + +/* +** Truncate an open file to a specified size +*/ +static int winTruncate(OsFile *id, i64 nByte){ + LONG upperBits = nByte>>32; + assert( id!=0 ); + TRACE3("TRUNCATE %d %lld\n", ((winFile*)id)->h, nByte); + SimulateIOError(return SQLITE_IOERR_TRUNCATE); + SetFilePointer(((winFile*)id)->h, nByte, &upperBits, FILE_BEGIN); + SetEndOfFile(((winFile*)id)->h); + return SQLITE_OK; +} + +/* +** Determine the current size of a file in bytes +*/ +static int winFileSize(OsFile *id, i64 *pSize){ + DWORD upperBits, lowerBits; + assert( id!=0 ); + SimulateIOError(return SQLITE_IOERR_FSTAT); + lowerBits = GetFileSize(((winFile*)id)->h, &upperBits); + *pSize = (((i64)upperBits)<<32) + lowerBits; + return SQLITE_OK; +} + +/* +** LOCKFILE_FAIL_IMMEDIATELY is undefined on some Windows systems. +*/ +#ifndef LOCKFILE_FAIL_IMMEDIATELY +# define LOCKFILE_FAIL_IMMEDIATELY 1 +#endif + +/* +** Acquire a reader lock. +** Different API routines are called depending on whether or not this +** is Win95 or WinNT. +*/ +static int getReadLock(winFile *id){ + int res; + if( isNT() ){ + OVERLAPPED ovlp; + ovlp.Offset = SHARED_FIRST; + ovlp.OffsetHigh = 0; + ovlp.hEvent = 0; + res = LockFileEx(id->h, LOCKFILE_FAIL_IMMEDIATELY, 0, SHARED_SIZE,0,&ovlp); + }else{ + int lk; + sqlite3Randomness(sizeof(lk), &lk); + id->sharedLockByte = (lk & 0x7fffffff)%(SHARED_SIZE - 1); + res = LockFile(id->h, SHARED_FIRST+id->sharedLockByte, 0, 1, 0); + } + return res; +} + +/* +** Undo a readlock +*/ +static int unlockReadLock(winFile *pFile){ + int res; + if( isNT() ){ + res = UnlockFile(pFile->h, SHARED_FIRST, 0, SHARED_SIZE, 0); + }else{ + res = UnlockFile(pFile->h, SHARED_FIRST + pFile->sharedLockByte, 0, 1, 0); + } + return res; +} + +#ifndef SQLITE_OMIT_PAGER_PRAGMAS +/* +** Check that a given pathname is a directory and is writable +** +*/ +int sqlite3WinIsDirWritable(char *zDirname){ + int fileAttr; + void *zConverted; + if( zDirname==0 ) return 0; + if( !isNT() && strlen(zDirname)>MAX_PATH ) return 0; + + zConverted = convertUtf8Filename(zDirname); + if( zConverted==0 ){ + return SQLITE_NOMEM; + } + if( isNT() ){ + fileAttr = GetFileAttributesW((WCHAR*)zConverted); + }else{ +#if OS_WINCE + return 0; +#else + fileAttr = GetFileAttributesA((char*)zConverted); +#endif + } + sqliteFree(zConverted); + if( fileAttr == 0xffffffff ) return 0; + if( (fileAttr & FILE_ATTRIBUTE_DIRECTORY) != FILE_ATTRIBUTE_DIRECTORY ){ + return 0; + } + return 1; +} +#endif /* SQLITE_OMIT_PAGER_PRAGMAS */ + +/* +** Lock the file with the lock specified by parameter locktype - one +** of the following: +** +** (1) SHARED_LOCK +** (2) RESERVED_LOCK +** (3) PENDING_LOCK +** (4) EXCLUSIVE_LOCK +** +** Sometimes when requesting one lock state, additional lock states +** are inserted in between. The locking might fail on one of the later +** transitions leaving the lock state different from what it started but +** still short of its goal. The following chart shows the allowed +** transitions and the inserted intermediate states: +** +** UNLOCKED -> SHARED +** SHARED -> RESERVED +** SHARED -> (PENDING) -> EXCLUSIVE +** RESERVED -> (PENDING) -> EXCLUSIVE +** PENDING -> EXCLUSIVE +** +** This routine will only increase a lock. The winUnlock() routine +** erases all locks at once and returns us immediately to locking level 0. +** It is not possible to lower the locking level one step at a time. You +** must go straight to locking level 0. +*/ +static int winLock(OsFile *id, int locktype){ + int rc = SQLITE_OK; /* Return code from subroutines */ + int res = 1; /* Result of a windows lock call */ + int newLocktype; /* Set id->locktype to this value before exiting */ + int gotPendingLock = 0;/* True if we acquired a PENDING lock this time */ + winFile *pFile = (winFile*)id; + + assert( pFile!=0 ); + TRACE5("LOCK %d %d was %d(%d)\n", + pFile->h, locktype, pFile->locktype, pFile->sharedLockByte); + + /* If there is already a lock of this type or more restrictive on the + ** OsFile, do nothing. Don't use the end_lock: exit path, as + ** sqlite3OsEnterMutex() hasn't been called yet. + */ + if( pFile->locktype>=locktype ){ + return SQLITE_OK; + } + + /* Make sure the locking sequence is correct + */ + assert( pFile->locktype!=NO_LOCK || locktype==SHARED_LOCK ); + assert( locktype!=PENDING_LOCK ); + assert( locktype!=RESERVED_LOCK || pFile->locktype==SHARED_LOCK ); + + /* Lock the PENDING_LOCK byte if we need to acquire a PENDING lock or + ** a SHARED lock. If we are acquiring a SHARED lock, the acquisition of + ** the PENDING_LOCK byte is temporary. + */ + newLocktype = pFile->locktype; + if( pFile->locktype==NO_LOCK + || (locktype==EXCLUSIVE_LOCK && pFile->locktype==RESERVED_LOCK) + ){ + int cnt = 3; + while( cnt-->0 && (res = LockFile(pFile->h, PENDING_BYTE, 0, 1, 0))==0 ){ + /* Try 3 times to get the pending lock. The pending lock might be + ** held by another reader process who will release it momentarily. + */ + TRACE2("could not get a PENDING lock. cnt=%d\n", cnt); + Sleep(1); + } + gotPendingLock = res; + } + + /* Acquire a shared lock + */ + if( locktype==SHARED_LOCK && res ){ + assert( pFile->locktype==NO_LOCK ); + res = getReadLock(pFile); + if( res ){ + newLocktype = SHARED_LOCK; + } + } + + /* Acquire a RESERVED lock + */ + if( locktype==RESERVED_LOCK && res ){ + assert( pFile->locktype==SHARED_LOCK ); + res = LockFile(pFile->h, RESERVED_BYTE, 0, 1, 0); + if( res ){ + newLocktype = RESERVED_LOCK; + } + } + + /* Acquire a PENDING lock + */ + if( locktype==EXCLUSIVE_LOCK && res ){ + newLocktype = PENDING_LOCK; + gotPendingLock = 0; + } + + /* Acquire an EXCLUSIVE lock + */ + if( locktype==EXCLUSIVE_LOCK && res ){ + assert( pFile->locktype>=SHARED_LOCK ); + res = unlockReadLock(pFile); + TRACE2("unreadlock = %d\n", res); + res = LockFile(pFile->h, SHARED_FIRST, 0, SHARED_SIZE, 0); + if( res ){ + newLocktype = EXCLUSIVE_LOCK; + }else{ + TRACE2("error-code = %d\n", GetLastError()); + } + } + + /* If we are holding a PENDING lock that ought to be released, then + ** release it now. + */ + if( gotPendingLock && locktype==SHARED_LOCK ){ + UnlockFile(pFile->h, PENDING_BYTE, 0, 1, 0); + } + + /* Update the state of the lock has held in the file descriptor then + ** return the appropriate result code. + */ + if( res ){ + rc = SQLITE_OK; + }else{ + TRACE4("LOCK FAILED %d trying for %d but got %d\n", pFile->h, + locktype, newLocktype); + rc = SQLITE_BUSY; + } + pFile->locktype = newLocktype; + return rc; +} + +/* +** This routine checks if there is a RESERVED lock held on the specified +** file by this or any other process. If such a lock is held, return +** non-zero, otherwise zero. +*/ +static int winCheckReservedLock(OsFile *id){ + int rc; + winFile *pFile = (winFile*)id; + assert( pFile!=0 ); + if( pFile->locktype>=RESERVED_LOCK ){ + rc = 1; + TRACE3("TEST WR-LOCK %d %d (local)\n", pFile->h, rc); + }else{ + rc = LockFile(pFile->h, RESERVED_BYTE, 0, 1, 0); + if( rc ){ + UnlockFile(pFile->h, RESERVED_BYTE, 0, 1, 0); + } + rc = !rc; + TRACE3("TEST WR-LOCK %d %d (remote)\n", pFile->h, rc); + } + return rc; +} + +/* +** Lower the locking level on file descriptor id to locktype. locktype +** must be either NO_LOCK or SHARED_LOCK. +** +** If the locking level of the file descriptor is already at or below +** the requested locking level, this routine is a no-op. +** +** It is not possible for this routine to fail if the second argument +** is NO_LOCK. If the second argument is SHARED_LOCK then this routine +** might return SQLITE_IOERR; +*/ +static int winUnlock(OsFile *id, int locktype){ + int type; + int rc = SQLITE_OK; + winFile *pFile = (winFile*)id; + assert( pFile!=0 ); + assert( locktype<=SHARED_LOCK ); + TRACE5("UNLOCK %d to %d was %d(%d)\n", pFile->h, locktype, + pFile->locktype, pFile->sharedLockByte); + type = pFile->locktype; + if( type>=EXCLUSIVE_LOCK ){ + UnlockFile(pFile->h, SHARED_FIRST, 0, SHARED_SIZE, 0); + if( locktype==SHARED_LOCK && !getReadLock(pFile) ){ + /* This should never happen. We should always be able to + ** reacquire the read lock */ + rc = SQLITE_IOERR_UNLOCK; + } + } + if( type>=RESERVED_LOCK ){ + UnlockFile(pFile->h, RESERVED_BYTE, 0, 1, 0); + } + if( locktype==NO_LOCK && type>=SHARED_LOCK ){ + unlockReadLock(pFile); + } + if( type>=PENDING_LOCK ){ + UnlockFile(pFile->h, PENDING_BYTE, 0, 1, 0); + } + pFile->locktype = locktype; + return rc; +} + +/* +** Turn a relative pathname into a full pathname. Return a pointer +** to the full pathname stored in space obtained from sqliteMalloc(). +** The calling function is responsible for freeing this space once it +** is no longer needed. +*/ +char *sqlite3WinFullPathname(const char *zRelative){ + char *zFull; +#if defined(__CYGWIN__) + int nByte; + nByte = strlen(zRelative) + MAX_PATH + 1001; + zFull = sqliteMalloc( nByte ); + if( zFull==0 ) return 0; + if( cygwin_conv_to_full_win32_path(zRelative, zFull) ) return 0; +#elif OS_WINCE + /* WinCE has no concept of a relative pathname, or so I am told. */ + zFull = sqliteStrDup(zRelative); +#else + int nByte; + void *zConverted; + zConverted = convertUtf8Filename(zRelative); + if( isNT() ){ + WCHAR *zTemp; + nByte = GetFullPathNameW((WCHAR*)zConverted, 0, 0, 0) + 3; + zTemp = sqliteMalloc( nByte*sizeof(zTemp[0]) ); + if( zTemp==0 ){ + sqliteFree(zConverted); + return 0; + } + GetFullPathNameW((WCHAR*)zConverted, nByte, zTemp, 0); + sqliteFree(zConverted); + zFull = unicodeToUtf8(zTemp); + sqliteFree(zTemp); + }else{ + char *zTemp; + nByte = GetFullPathNameA((char*)zConverted, 0, 0, 0) + 3; + zTemp = sqliteMalloc( nByte*sizeof(zTemp[0]) ); + if( zTemp==0 ){ + sqliteFree(zConverted); + return 0; + } + GetFullPathNameA((char*)zConverted, nByte, zTemp, 0); + sqliteFree(zConverted); + zFull = mbcsToUtf8(zTemp); + sqliteFree(zTemp); + } +#endif + return zFull; +} + +/* +** The fullSync option is meaningless on windows. This is a no-op. +*/ +static void winSetFullSync(OsFile *id, int v){ + return; +} + +/* +** Return the underlying file handle for an OsFile +*/ +static int winFileHandle(OsFile *id){ + return (int)((winFile*)id)->h; +} + +/* +** Return an integer that indices the type of lock currently held +** by this handle. (Used for testing and analysis only.) +*/ +static int winLockState(OsFile *id){ + return ((winFile*)id)->locktype; +} + +/* +** This vector defines all the methods that can operate on an OsFile +** for win32. +*/ +static const IoMethod sqlite3WinIoMethod = { + winClose, + winOpenDirectory, + winRead, + winWrite, + winSeek, + winTruncate, + winSync, + winSetFullSync, + winFileHandle, + winFileSize, + winLock, + winUnlock, + winLockState, + winCheckReservedLock, +}; + +/* +** Allocate memory for an OsFile. Initialize the new OsFile +** to the value given in pInit and return a pointer to the new +** OsFile. If we run out of memory, close the file and return NULL. +*/ +static int allocateWinFile(winFile *pInit, OsFile **pId){ + winFile *pNew; + pNew = sqliteMalloc( sizeof(*pNew) ); + if( pNew==0 ){ + CloseHandle(pInit->h); +#if OS_WINCE + sqliteFree(pInit->zDeleteOnClose); +#endif + *pId = 0; + return SQLITE_NOMEM; + }else{ + *pNew = *pInit; + pNew->pMethod = &sqlite3WinIoMethod; + pNew->locktype = NO_LOCK; + pNew->sharedLockByte = 0; + *pId = (OsFile*)pNew; + OpenCounter(+1); + return SQLITE_OK; + } +} + + +#endif /* SQLITE_OMIT_DISKIO */ +/*************************************************************************** +** Everything above deals with file I/O. Everything that follows deals +** with other miscellanous aspects of the operating system interface +****************************************************************************/ + +#if !defined(SQLITE_OMIT_LOAD_EXTENSION) +/* +** Interfaces for opening a shared library, finding entry points +** within the shared library, and closing the shared library. +*/ +void *sqlite3WinDlopen(const char *zFilename){ + HANDLE h; + void *zConverted = convertUtf8Filename(zFilename); + if( zConverted==0 ){ + return 0; + } + if( isNT() ){ + h = LoadLibraryW((WCHAR*)zConverted); + }else{ +#if OS_WINCE + return 0; +#else + h = LoadLibraryA((char*)zConverted); +#endif + } + sqliteFree(zConverted); + return (void*)h; + +} +void *sqlite3WinDlsym(void *pHandle, const char *zSymbol){ +#if OS_WINCE + /* The GetProcAddressA() routine is only available on wince. */ + return GetProcAddressA((HANDLE)pHandle, zSymbol); +#else + /* All other windows platforms expect GetProcAddress() to take + ** an Ansi string regardless of the _UNICODE setting */ + return GetProcAddress((HANDLE)pHandle, zSymbol); +#endif +} +int sqlite3WinDlclose(void *pHandle){ + return FreeLibrary((HANDLE)pHandle); +} +#endif /* !SQLITE_OMIT_LOAD_EXTENSION */ + +/* +** Get information to seed the random number generator. The seed +** is written into the buffer zBuf[256]. The calling function must +** supply a sufficiently large buffer. +*/ +int sqlite3WinRandomSeed(char *zBuf){ + /* We have to initialize zBuf to prevent valgrind from reporting + ** errors. The reports issued by valgrind are incorrect - we would + ** prefer that the randomness be increased by making use of the + ** uninitialized space in zBuf - but valgrind errors tend to worry + ** some users. Rather than argue, it seems easier just to initialize + ** the whole array and silence valgrind, even if that means less randomness + ** in the random seed. + ** + ** When testing, initializing zBuf[] to zero is all we do. That means + ** that we always use the same random number sequence.* This makes the + ** tests repeatable. + */ + memset(zBuf, 0, 256); + GetSystemTime((LPSYSTEMTIME)zBuf); + return SQLITE_OK; +} + +/* +** Sleep for a little while. Return the amount of time slept. +*/ +int sqlite3WinSleep(int ms){ + Sleep(ms); + return ms; +} + +/* +** Static variables used for thread synchronization +*/ +static int inMutex = 0; +#ifdef SQLITE_W32_THREADS + static DWORD mutexOwner; + static CRITICAL_SECTION cs; +#endif + +/* +** The following pair of routines implement mutual exclusion for +** multi-threaded processes. Only a single thread is allowed to +** executed code that is surrounded by EnterMutex() and LeaveMutex(). +** +** SQLite uses only a single Mutex. There is not much critical +** code and what little there is executes quickly and without blocking. +** +** Version 3.3.1 and earlier used a simple mutex. Beginning with +** version 3.3.2, a recursive mutex is required. +*/ +void sqlite3WinEnterMutex(){ +#ifdef SQLITE_W32_THREADS + static int isInit = 0; + while( !isInit ){ + static long lock = 0; + if( InterlockedIncrement(&lock)==1 ){ + InitializeCriticalSection(&cs); + isInit = 1; + }else{ + Sleep(1); + } + } + EnterCriticalSection(&cs); + mutexOwner = GetCurrentThreadId(); +#endif + inMutex++; +} +void sqlite3WinLeaveMutex(){ + assert( inMutex ); + inMutex--; +#ifdef SQLITE_W32_THREADS + assert( mutexOwner==GetCurrentThreadId() ); + LeaveCriticalSection(&cs); +#endif +} + +/* +** Return TRUE if the mutex is currently held. +** +** If the thisThreadOnly parameter is true, return true if and only if the +** calling thread holds the mutex. If the parameter is false, return +** true if any thread holds the mutex. +*/ +int sqlite3WinInMutex(int thisThreadOnly){ +#ifdef SQLITE_W32_THREADS + return inMutex>0 && (thisThreadOnly==0 || mutexOwner==GetCurrentThreadId()); +#else + return inMutex>0; +#endif +} + + +/* +** The following variable, if set to a non-zero value, becomes the result +** returned from sqlite3OsCurrentTime(). This is used for testing. +*/ +#ifdef SQLITE_TEST +int sqlite3_current_time = 0; +#endif + +/* +** Find the current time (in Universal Coordinated Time). Write the +** current time and date as a Julian Day number into *prNow and +** return 0. Return 1 if the time and date cannot be found. +*/ +int sqlite3WinCurrentTime(double *prNow){ + FILETIME ft; + /* FILETIME structure is a 64-bit value representing the number of + 100-nanosecond intervals since January 1, 1601 (= JD 2305813.5). + */ + double now; +#if OS_WINCE + SYSTEMTIME time; + GetSystemTime(&time); + SystemTimeToFileTime(&time,&ft); +#else + GetSystemTimeAsFileTime( &ft ); +#endif + now = ((double)ft.dwHighDateTime) * 4294967296.0; + *prNow = (now + ft.dwLowDateTime)/864000000000.0 + 2305813.5; +#ifdef SQLITE_TEST + if( sqlite3_current_time ){ + *prNow = sqlite3_current_time/86400.0 + 2440587.5; + } +#endif + return 0; +} + +/* +** Remember the number of thread-specific-data blocks allocated. +** Use this to verify that we are not leaking thread-specific-data. +** Ticket #1601 +*/ +#ifdef SQLITE_TEST +int sqlite3_tsd_count = 0; +# define TSD_COUNTER_INCR InterlockedIncrement(&sqlite3_tsd_count) +# define TSD_COUNTER_DECR InterlockedDecrement(&sqlite3_tsd_count) +#else +# define TSD_COUNTER_INCR /* no-op */ +# define TSD_COUNTER_DECR /* no-op */ +#endif + + + +/* +** If called with allocateFlag>1, then return a pointer to thread +** specific data for the current thread. Allocate and zero the +** thread-specific data if it does not already exist necessary. +** +** If called with allocateFlag==0, then check the current thread +** specific data. Return it if it exists. If it does not exist, +** then return NULL. +** +** If called with allocateFlag<0, check to see if the thread specific +** data is allocated and is all zero. If it is then deallocate it. +** Return a pointer to the thread specific data or NULL if it is +** unallocated or gets deallocated. +*/ +ThreadData *sqlite3WinThreadSpecificData(int allocateFlag){ + static int key; + static int keyInit = 0; + static const ThreadData zeroData = {0}; + ThreadData *pTsd; + + if( !keyInit ){ + sqlite3OsEnterMutex(); + if( !keyInit ){ + key = TlsAlloc(); + if( key==0xffffffff ){ + sqlite3OsLeaveMutex(); + return 0; + } + keyInit = 1; + } + sqlite3OsLeaveMutex(); + } + pTsd = TlsGetValue(key); + if( allocateFlag>0 ){ + if( !pTsd ){ + pTsd = sqlite3OsMalloc( sizeof(zeroData) ); + if( pTsd ){ + *pTsd = zeroData; + TlsSetValue(key, pTsd); + TSD_COUNTER_INCR; + } + } + }else if( pTsd!=0 && allocateFlag<0 + && memcmp(pTsd, &zeroData, sizeof(ThreadData))==0 ){ + sqlite3OsFree(pTsd); + TlsSetValue(key, 0); + TSD_COUNTER_DECR; + pTsd = 0; + } + return pTsd; +} +#endif /* OS_WIN */ diff --git a/src/dep/src/sqlite/pager.c b/src/dep/src/sqlite/pager.c new file mode 100644 index 0000000..3f5de77 --- /dev/null +++ b/src/dep/src/sqlite/pager.c @@ -0,0 +1,3923 @@ +/* +** 2001 September 15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This is the implementation of the page cache subsystem or "pager". +** +** The pager is used to access a database disk file. It implements +** atomic commit and rollback through the use of a journal file that +** is separate from the database file. The pager also implements file +** locking to prevent two processes from writing the same database +** file simultaneously, or one process from reading the database while +** another is writing. +** +** @(#) $Id: pager.c,v 1.282 2007/01/05 02:00:47 drh Exp $ +*/ +#ifndef SQLITE_OMIT_DISKIO +#include "sqliteInt.h" +#include "os.h" +#include "pager.h" +#include +#include + +/* +** Macros for troubleshooting. Normally turned off +*/ +#if 0 +#define sqlite3DebugPrintf printf +#define TRACE1(X) sqlite3DebugPrintf(X) +#define TRACE2(X,Y) sqlite3DebugPrintf(X,Y) +#define TRACE3(X,Y,Z) sqlite3DebugPrintf(X,Y,Z) +#define TRACE4(X,Y,Z,W) sqlite3DebugPrintf(X,Y,Z,W) +#define TRACE5(X,Y,Z,W,V) sqlite3DebugPrintf(X,Y,Z,W,V) +#else +#define TRACE1(X) +#define TRACE2(X,Y) +#define TRACE3(X,Y,Z) +#define TRACE4(X,Y,Z,W) +#define TRACE5(X,Y,Z,W,V) +#endif + +/* +** The following two macros are used within the TRACEX() macros above +** to print out file-descriptors. +** +** PAGERID() takes a pointer to a Pager struct as it's argument. The +** associated file-descriptor is returned. FILEHANDLEID() takes an OsFile +** struct as it's argument. +*/ +#define PAGERID(p) ((int)(p->fd)) +#define FILEHANDLEID(fd) ((int)fd) + +/* +** The page cache as a whole is always in one of the following +** states: +** +** PAGER_UNLOCK The page cache is not currently reading or +** writing the database file. There is no +** data held in memory. This is the initial +** state. +** +** PAGER_SHARED The page cache is reading the database. +** Writing is not permitted. There can be +** multiple readers accessing the same database +** file at the same time. +** +** PAGER_RESERVED This process has reserved the database for writing +** but has not yet made any changes. Only one process +** at a time can reserve the database. The original +** database file has not been modified so other +** processes may still be reading the on-disk +** database file. +** +** PAGER_EXCLUSIVE The page cache is writing the database. +** Access is exclusive. No other processes or +** threads can be reading or writing while one +** process is writing. +** +** PAGER_SYNCED The pager moves to this state from PAGER_EXCLUSIVE +** after all dirty pages have been written to the +** database file and the file has been synced to +** disk. All that remains to do is to remove the +** journal file and the transaction will be +** committed. +** +** The page cache comes up in PAGER_UNLOCK. The first time a +** sqlite3pager_get() occurs, the state transitions to PAGER_SHARED. +** After all pages have been released using sqlite_page_unref(), +** the state transitions back to PAGER_UNLOCK. The first time +** that sqlite3pager_write() is called, the state transitions to +** PAGER_RESERVED. (Note that sqlite_page_write() can only be +** called on an outstanding page which means that the pager must +** be in PAGER_SHARED before it transitions to PAGER_RESERVED.) +** The transition to PAGER_EXCLUSIVE occurs when before any changes +** are made to the database file. After an sqlite3pager_rollback() +** or sqlite_pager_commit(), the state goes back to PAGER_SHARED. +*/ +#define PAGER_UNLOCK 0 +#define PAGER_SHARED 1 /* same as SHARED_LOCK */ +#define PAGER_RESERVED 2 /* same as RESERVED_LOCK */ +#define PAGER_EXCLUSIVE 4 /* same as EXCLUSIVE_LOCK */ +#define PAGER_SYNCED 5 + +/* +** If the SQLITE_BUSY_RESERVED_LOCK macro is set to true at compile-time, +** then failed attempts to get a reserved lock will invoke the busy callback. +** This is off by default. To see why, consider the following scenario: +** +** Suppose thread A already has a shared lock and wants a reserved lock. +** Thread B already has a reserved lock and wants an exclusive lock. If +** both threads are using their busy callbacks, it might be a long time +** be for one of the threads give up and allows the other to proceed. +** But if the thread trying to get the reserved lock gives up quickly +** (if it never invokes its busy callback) then the contention will be +** resolved quickly. +*/ +#ifndef SQLITE_BUSY_RESERVED_LOCK +# define SQLITE_BUSY_RESERVED_LOCK 0 +#endif + +/* +** This macro rounds values up so that if the value is an address it +** is guaranteed to be an address that is aligned to an 8-byte boundary. +*/ +#define FORCE_ALIGNMENT(X) (((X)+7)&~7) + +/* +** Each in-memory image of a page begins with the following header. +** This header is only visible to this pager module. The client +** code that calls pager sees only the data that follows the header. +** +** Client code should call sqlite3pager_write() on a page prior to making +** any modifications to that page. The first time sqlite3pager_write() +** is called, the original page contents are written into the rollback +** journal and PgHdr.inJournal and PgHdr.needSync are set. Later, once +** the journal page has made it onto the disk surface, PgHdr.needSync +** is cleared. The modified page cannot be written back into the original +** database file until the journal pages has been synced to disk and the +** PgHdr.needSync has been cleared. +** +** The PgHdr.dirty flag is set when sqlite3pager_write() is called and +** is cleared again when the page content is written back to the original +** database file. +*/ +typedef struct PgHdr PgHdr; +struct PgHdr { + Pager *pPager; /* The pager to which this page belongs */ + Pgno pgno; /* The page number for this page */ + PgHdr *pNextHash, *pPrevHash; /* Hash collision chain for PgHdr.pgno */ + PgHdr *pNextFree, *pPrevFree; /* Freelist of pages where nRef==0 */ + PgHdr *pNextAll; /* A list of all pages */ + PgHdr *pNextStmt, *pPrevStmt; /* List of pages in the statement journal */ + u8 inJournal; /* TRUE if has been written to journal */ + u8 inStmt; /* TRUE if in the statement subjournal */ + u8 dirty; /* TRUE if we need to write back changes */ + u8 needSync; /* Sync journal before writing this page */ + u8 alwaysRollback; /* Disable dont_rollback() for this page */ + short int nRef; /* Number of users of this page */ + PgHdr *pDirty, *pPrevDirty; /* Dirty pages */ + u32 notUsed; /* Buffer space */ +#ifdef SQLITE_CHECK_PAGES + u32 pageHash; +#endif + /* pPager->pageSize bytes of page data follow this header */ + /* Pager.nExtra bytes of local data follow the page data */ +}; + +/* +** For an in-memory only database, some extra information is recorded about +** each page so that changes can be rolled back. (Journal files are not +** used for in-memory databases.) The following information is added to +** the end of every EXTRA block for in-memory databases. +** +** This information could have been added directly to the PgHdr structure. +** But then it would take up an extra 8 bytes of storage on every PgHdr +** even for disk-based databases. Splitting it out saves 8 bytes. This +** is only a savings of 0.8% but those percentages add up. +*/ +typedef struct PgHistory PgHistory; +struct PgHistory { + u8 *pOrig; /* Original page text. Restore to this on a full rollback */ + u8 *pStmt; /* Text as it was at the beginning of the current statement */ +}; + +/* +** A macro used for invoking the codec if there is one +*/ +#ifdef SQLITE_HAS_CODEC +# define CODEC1(P,D,N,X) if( P->xCodec!=0 ){ P->xCodec(P->pCodecArg,D,N,X); } +# define CODEC2(P,D,N,X) ((char*)(P->xCodec!=0?P->xCodec(P->pCodecArg,D,N,X):D)) +#else +# define CODEC1(P,D,N,X) /* NO-OP */ +# define CODEC2(P,D,N,X) ((char*)D) +#endif + +/* +** Convert a pointer to a PgHdr into a pointer to its data +** and back again. +*/ +#define PGHDR_TO_DATA(P) ((void*)(&(P)[1])) +#define DATA_TO_PGHDR(D) (&((PgHdr*)(D))[-1]) +#define PGHDR_TO_EXTRA(G,P) ((void*)&((char*)(&(G)[1]))[(P)->pageSize]) +#define PGHDR_TO_HIST(P,PGR) \ + ((PgHistory*)&((char*)(&(P)[1]))[(PGR)->pageSize+(PGR)->nExtra]) + +/* +** A open page cache is an instance of the following structure. +** +** Pager.errCode may be set to SQLITE_IOERR, SQLITE_CORRUPT, SQLITE_PROTOCOL +** or SQLITE_FULL. Once one of the first three errors occurs, it persists +** and is returned as the result of every major pager API call. The +** SQLITE_FULL return code is slightly different. It persists only until the +** next successful rollback is performed on the pager cache. Also, +** SQLITE_FULL does not affect the sqlite3pager_get() and sqlite3pager_lookup() +** APIs, they may still be used successfully. +*/ +struct Pager { + u8 journalOpen; /* True if journal file descriptors is valid */ + u8 journalStarted; /* True if header of journal is synced */ + u8 useJournal; /* Use a rollback journal on this file */ + u8 noReadlock; /* Do not bother to obtain readlocks */ + u8 stmtOpen; /* True if the statement subjournal is open */ + u8 stmtInUse; /* True we are in a statement subtransaction */ + u8 stmtAutoopen; /* Open stmt journal when main journal is opened*/ + u8 noSync; /* Do not sync the journal if true */ + u8 fullSync; /* Do extra syncs of the journal for robustness */ + u8 full_fsync; /* Use F_FULLFSYNC when available */ + u8 state; /* PAGER_UNLOCK, _SHARED, _RESERVED, etc. */ + u8 tempFile; /* zFilename is a temporary file */ + u8 readOnly; /* True for a read-only database */ + u8 needSync; /* True if an fsync() is needed on the journal */ + u8 dirtyCache; /* True if cached pages have changed */ + u8 alwaysRollback; /* Disable dont_rollback() for all pages */ + u8 memDb; /* True to inhibit all file I/O */ + u8 setMaster; /* True if a m-j name has been written to jrnl */ + int errCode; /* One of several kinds of errors */ + int dbSize; /* Number of pages in the file */ + int origDbSize; /* dbSize before the current change */ + int stmtSize; /* Size of database (in pages) at stmt_begin() */ + int nRec; /* Number of pages written to the journal */ + u32 cksumInit; /* Quasi-random value added to every checksum */ + int stmtNRec; /* Number of records in stmt subjournal */ + int nExtra; /* Add this many bytes to each in-memory page */ + int pageSize; /* Number of bytes in a page */ + int nPage; /* Total number of in-memory pages */ + int nMaxPage; /* High water mark of nPage */ + int nRef; /* Number of in-memory pages with PgHdr.nRef>0 */ + int mxPage; /* Maximum number of pages to hold in cache */ + u8 *aInJournal; /* One bit for each page in the database file */ + u8 *aInStmt; /* One bit for each page in the database */ + char *zFilename; /* Name of the database file */ + char *zJournal; /* Name of the journal file */ + char *zDirectory; /* Directory hold database and journal files */ + OsFile *fd, *jfd; /* File descriptors for database and journal */ + OsFile *stfd; /* File descriptor for the statement subjournal*/ + BusyHandler *pBusyHandler; /* Pointer to sqlite.busyHandler */ + PgHdr *pFirst, *pLast; /* List of free pages */ + PgHdr *pFirstSynced; /* First free page with PgHdr.needSync==0 */ + PgHdr *pAll; /* List of all pages */ + PgHdr *pStmt; /* List of pages in the statement subjournal */ + PgHdr *pDirty; /* List of all dirty pages */ + i64 journalOff; /* Current byte offset in the journal file */ + i64 journalHdr; /* Byte offset to previous journal header */ + i64 stmtHdrOff; /* First journal header written this statement */ + i64 stmtCksum; /* cksumInit when statement was started */ + i64 stmtJSize; /* Size of journal at stmt_begin() */ + int sectorSize; /* Assumed sector size during rollback */ +#ifdef SQLITE_TEST + int nHit, nMiss, nOvfl; /* Cache hits, missing, and LRU overflows */ + int nRead,nWrite; /* Database pages read/written */ +#endif + void (*xDestructor)(void*,int); /* Call this routine when freeing pages */ + void (*xReiniter)(void*,int); /* Call this routine when reloading pages */ + void *(*xCodec)(void*,void*,Pgno,int); /* Routine for en/decoding data */ + void *pCodecArg; /* First argument to xCodec() */ + int nHash; /* Size of the pager hash table */ + PgHdr **aHash; /* Hash table to map page number to PgHdr */ +#ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT + Pager *pNext; /* Linked list of pagers in this thread */ +#endif +}; + +/* +** If SQLITE_TEST is defined then increment the variable given in +** the argument +*/ +#ifdef SQLITE_TEST +# define TEST_INCR(x) x++ +#else +# define TEST_INCR(x) +#endif + +/* +** Journal files begin with the following magic string. The data +** was obtained from /dev/random. It is used only as a sanity check. +** +** Since version 2.8.0, the journal format contains additional sanity +** checking information. If the power fails while the journal is begin +** written, semi-random garbage data might appear in the journal +** file after power is restored. If an attempt is then made +** to roll the journal back, the database could be corrupted. The additional +** sanity checking data is an attempt to discover the garbage in the +** journal and ignore it. +** +** The sanity checking information for the new journal format consists +** of a 32-bit checksum on each page of data. The checksum covers both +** the page number and the pPager->pageSize bytes of data for the page. +** This cksum is initialized to a 32-bit random value that appears in the +** journal file right after the header. The random initializer is important, +** because garbage data that appears at the end of a journal is likely +** data that was once in other files that have now been deleted. If the +** garbage data came from an obsolete journal file, the checksums might +** be correct. But by initializing the checksum to random value which +** is different for every journal, we minimize that risk. +*/ +static const unsigned char aJournalMagic[] = { + 0xd9, 0xd5, 0x05, 0xf9, 0x20, 0xa1, 0x63, 0xd7, +}; + +/* +** The size of the header and of each page in the journal is determined +** by the following macros. +*/ +#define JOURNAL_PG_SZ(pPager) ((pPager->pageSize) + 8) + +/* +** The journal header size for this pager. In the future, this could be +** set to some value read from the disk controller. The important +** characteristic is that it is the same size as a disk sector. +*/ +#define JOURNAL_HDR_SZ(pPager) (pPager->sectorSize) + +/* +** The macro MEMDB is true if we are dealing with an in-memory database. +** We do this as a macro so that if the SQLITE_OMIT_MEMORYDB macro is set, +** the value of MEMDB will be a constant and the compiler will optimize +** out code that would never execute. +*/ +#ifdef SQLITE_OMIT_MEMORYDB +# define MEMDB 0 +#else +# define MEMDB pPager->memDb +#endif + +/* +** The default size of a disk sector +*/ +#ifndef PAGER_SECTOR_SIZE +# define PAGER_SECTOR_SIZE 512 +#endif + +/* +** Page number PAGER_MJ_PGNO is never used in an SQLite database (it is +** reserved for working around a windows/posix incompatibility). It is +** used in the journal to signify that the remainder of the journal file +** is devoted to storing a master journal name - there are no more pages to +** roll back. See comments for function writeMasterJournal() for details. +*/ +/* #define PAGER_MJ_PGNO(x) (PENDING_BYTE/((x)->pageSize)) */ +#define PAGER_MJ_PGNO(x) ((PENDING_BYTE/((x)->pageSize))+1) + +/* +** The maximum legal page number is (2^31 - 1). +*/ +#define PAGER_MAX_PGNO 2147483647 + +/* +** Enable reference count tracking (for debugging) here: +*/ +#ifdef SQLITE_TEST + int pager3_refinfo_enable = 0; + static void pager_refinfo(PgHdr *p){ + static int cnt = 0; + if( !pager3_refinfo_enable ) return; + sqlite3DebugPrintf( + "REFCNT: %4d addr=%p nRef=%-3d total=%d\n", + p->pgno, PGHDR_TO_DATA(p), p->nRef, p->pPager->nRef + ); + cnt++; /* Something to set a breakpoint on */ + } +# define REFINFO(X) pager_refinfo(X) +#else +# define REFINFO(X) +#endif + + +/* +** Change the size of the pager hash table to N. N must be a power +** of two. +*/ +static void pager_resize_hash_table(Pager *pPager, int N){ + PgHdr **aHash, *pPg; + assert( N>0 && (N&(N-1))==0 ); + aHash = sqliteMalloc( sizeof(aHash[0])*N ); + if( aHash==0 ){ + /* Failure to rehash is not an error. It is only a performance hit. */ + return; + } + sqliteFree(pPager->aHash); + pPager->nHash = N; + pPager->aHash = aHash; + for(pPg=pPager->pAll; pPg; pPg=pPg->pNextAll){ + int h; + if( pPg->pgno==0 ){ + assert( pPg->pNextHash==0 && pPg->pPrevHash==0 ); + continue; + } + h = pPg->pgno & (N-1); + pPg->pNextHash = aHash[h]; + if( aHash[h] ){ + aHash[h]->pPrevHash = pPg; + } + aHash[h] = pPg; + pPg->pPrevHash = 0; + } +} + +/* +** Read a 32-bit integer from the given file descriptor. Store the integer +** that is read in *pRes. Return SQLITE_OK if everything worked, or an +** error code is something goes wrong. +** +** All values are stored on disk as big-endian. +*/ +static int read32bits(OsFile *fd, u32 *pRes){ + unsigned char ac[4]; + int rc = sqlite3OsRead(fd, ac, sizeof(ac)); + if( rc==SQLITE_OK ){ + *pRes = (ac[0]<<24) | (ac[1]<<16) | (ac[2]<<8) | ac[3]; + } + return rc; +} + +/* +** Write a 32-bit integer into a string buffer in big-endian byte order. +*/ +static void put32bits(char *ac, u32 val){ + ac[0] = (val>>24) & 0xff; + ac[1] = (val>>16) & 0xff; + ac[2] = (val>>8) & 0xff; + ac[3] = val & 0xff; +} + +/* +** Write a 32-bit integer into the given file descriptor. Return SQLITE_OK +** on success or an error code is something goes wrong. +*/ +static int write32bits(OsFile *fd, u32 val){ + char ac[4]; + put32bits(ac, val); + return sqlite3OsWrite(fd, ac, 4); +} + +/* +** Read a 32-bit integer at offset 'offset' from the page identified by +** page header 'p'. +*/ +static u32 retrieve32bits(PgHdr *p, int offset){ + unsigned char *ac; + ac = &((unsigned char*)PGHDR_TO_DATA(p))[offset]; + return (ac[0]<<24) | (ac[1]<<16) | (ac[2]<<8) | ac[3]; +} + + +/* +** This function should be called when an error occurs within the pager +** code. The first argument is a pointer to the pager structure, the +** second the error-code about to be returned by a pager API function. +** The value returned is a copy of the second argument to this function. +** +** If the second argument is SQLITE_IOERR, SQLITE_CORRUPT or SQLITE_PROTOCOL, +** the error becomes persistent. All subsequent API calls on this Pager +** will immediately return the same error code. +*/ +static int pager_error(Pager *pPager, int rc){ + int rc2 = rc & 0xff; + assert( pPager->errCode==SQLITE_FULL || pPager->errCode==SQLITE_OK ); + if( + rc2==SQLITE_FULL || + rc2==SQLITE_IOERR || + rc2==SQLITE_CORRUPT || + rc2==SQLITE_PROTOCOL + ){ + pPager->errCode = rc; + } + return rc; +} + +#ifdef SQLITE_CHECK_PAGES +/* +** Return a 32-bit hash of the page data for pPage. +*/ +static u32 pager_pagehash(PgHdr *pPage){ + u32 hash = 0; + int i; + unsigned char *pData = (unsigned char *)PGHDR_TO_DATA(pPage); + for(i=0; ipPager->pageSize; i++){ + hash = (hash+i)^pData[i]; + } + return hash; +} + +/* +** The CHECK_PAGE macro takes a PgHdr* as an argument. If SQLITE_CHECK_PAGES +** is defined, and NDEBUG is not defined, an assert() statement checks +** that the page is either dirty or still matches the calculated page-hash. +*/ +#define CHECK_PAGE(x) checkPage(x) +static void checkPage(PgHdr *pPg){ + Pager *pPager = pPg->pPager; + assert( !pPg->pageHash || pPager->errCode || MEMDB || pPg->dirty || + pPg->pageHash==pager_pagehash(pPg) ); +} + +#else +#define CHECK_PAGE(x) +#endif + +/* +** When this is called the journal file for pager pPager must be open. +** The master journal file name is read from the end of the file and +** written into memory obtained from sqliteMalloc(). *pzMaster is +** set to point at the memory and SQLITE_OK returned. The caller must +** sqliteFree() *pzMaster. +** +** If no master journal file name is present *pzMaster is set to 0 and +** SQLITE_OK returned. +*/ +static int readMasterJournal(OsFile *pJrnl, char **pzMaster){ + int rc; + u32 len; + i64 szJ; + u32 cksum; + int i; + unsigned char aMagic[8]; /* A buffer to hold the magic header */ + + *pzMaster = 0; + + rc = sqlite3OsFileSize(pJrnl, &szJ); + if( rc!=SQLITE_OK || szJ<16 ) return rc; + + rc = sqlite3OsSeek(pJrnl, szJ-16); + if( rc!=SQLITE_OK ) return rc; + + rc = read32bits(pJrnl, &len); + if( rc!=SQLITE_OK ) return rc; + + rc = read32bits(pJrnl, &cksum); + if( rc!=SQLITE_OK ) return rc; + + rc = sqlite3OsRead(pJrnl, aMagic, 8); + if( rc!=SQLITE_OK || memcmp(aMagic, aJournalMagic, 8) ) return rc; + + rc = sqlite3OsSeek(pJrnl, szJ-16-len); + if( rc!=SQLITE_OK ) return rc; + + *pzMaster = (char *)sqliteMalloc(len+1); + if( !*pzMaster ){ + return SQLITE_NOMEM; + } + rc = sqlite3OsRead(pJrnl, *pzMaster, len); + if( rc!=SQLITE_OK ){ + sqliteFree(*pzMaster); + *pzMaster = 0; + return rc; + } + + /* See if the checksum matches the master journal name */ + for(i=0; ijournalOff; + if( c ){ + offset = ((c-1)/JOURNAL_HDR_SZ(pPager) + 1) * JOURNAL_HDR_SZ(pPager); + } + assert( offset%JOURNAL_HDR_SZ(pPager)==0 ); + assert( offset>=c ); + assert( (offset-c)journalOff = offset; + return sqlite3OsSeek(pPager->jfd, pPager->journalOff); +} + +/* +** The journal file must be open when this routine is called. A journal +** header (JOURNAL_HDR_SZ bytes) is written into the journal file at the +** current location. +** +** The format for the journal header is as follows: +** - 8 bytes: Magic identifying journal format. +** - 4 bytes: Number of records in journal, or -1 no-sync mode is on. +** - 4 bytes: Random number used for page hash. +** - 4 bytes: Initial database page count. +** - 4 bytes: Sector size used by the process that wrote this journal. +** +** Followed by (JOURNAL_HDR_SZ - 24) bytes of unused space. +*/ +static int writeJournalHdr(Pager *pPager){ + char zHeader[sizeof(aJournalMagic)+16]; + + int rc = seekJournalHdr(pPager); + if( rc ) return rc; + + pPager->journalHdr = pPager->journalOff; + if( pPager->stmtHdrOff==0 ){ + pPager->stmtHdrOff = pPager->journalHdr; + } + pPager->journalOff += JOURNAL_HDR_SZ(pPager); + + /* FIX ME: + ** + ** Possibly for a pager not in no-sync mode, the journal magic should not + ** be written until nRec is filled in as part of next syncJournal(). + ** + ** Actually maybe the whole journal header should be delayed until that + ** point. Think about this. + */ + memcpy(zHeader, aJournalMagic, sizeof(aJournalMagic)); + /* The nRec Field. 0xFFFFFFFF for no-sync journals. */ + put32bits(&zHeader[sizeof(aJournalMagic)], pPager->noSync ? 0xffffffff : 0); + /* The random check-hash initialiser */ + sqlite3Randomness(sizeof(pPager->cksumInit), &pPager->cksumInit); + put32bits(&zHeader[sizeof(aJournalMagic)+4], pPager->cksumInit); + /* The initial database size */ + put32bits(&zHeader[sizeof(aJournalMagic)+8], pPager->dbSize); + /* The assumed sector size for this process */ + put32bits(&zHeader[sizeof(aJournalMagic)+12], pPager->sectorSize); + rc = sqlite3OsWrite(pPager->jfd, zHeader, sizeof(zHeader)); + + /* The journal header has been written successfully. Seek the journal + ** file descriptor to the end of the journal header sector. + */ + if( rc==SQLITE_OK ){ + rc = sqlite3OsSeek(pPager->jfd, pPager->journalOff-1); + if( rc==SQLITE_OK ){ + rc = sqlite3OsWrite(pPager->jfd, "\000", 1); + } + } + return rc; +} + +/* +** The journal file must be open when this is called. A journal header file +** (JOURNAL_HDR_SZ bytes) is read from the current location in the journal +** file. See comments above function writeJournalHdr() for a description of +** the journal header format. +** +** If the header is read successfully, *nRec is set to the number of +** page records following this header and *dbSize is set to the size of the +** database before the transaction began, in pages. Also, pPager->cksumInit +** is set to the value read from the journal header. SQLITE_OK is returned +** in this case. +** +** If the journal header file appears to be corrupted, SQLITE_DONE is +** returned and *nRec and *dbSize are not set. If JOURNAL_HDR_SZ bytes +** cannot be read from the journal file an error code is returned. +*/ +static int readJournalHdr( + Pager *pPager, + i64 journalSize, + u32 *pNRec, + u32 *pDbSize +){ + int rc; + unsigned char aMagic[8]; /* A buffer to hold the magic header */ + + rc = seekJournalHdr(pPager); + if( rc ) return rc; + + if( pPager->journalOff+JOURNAL_HDR_SZ(pPager) > journalSize ){ + return SQLITE_DONE; + } + + rc = sqlite3OsRead(pPager->jfd, aMagic, sizeof(aMagic)); + if( rc ) return rc; + + if( memcmp(aMagic, aJournalMagic, sizeof(aMagic))!=0 ){ + return SQLITE_DONE; + } + + rc = read32bits(pPager->jfd, pNRec); + if( rc ) return rc; + + rc = read32bits(pPager->jfd, &pPager->cksumInit); + if( rc ) return rc; + + rc = read32bits(pPager->jfd, pDbSize); + if( rc ) return rc; + + /* Update the assumed sector-size to match the value used by + ** the process that created this journal. If this journal was + ** created by a process other than this one, then this routine + ** is being called from within pager_playback(). The local value + ** of Pager.sectorSize is restored at the end of that routine. + */ + rc = read32bits(pPager->jfd, (u32 *)&pPager->sectorSize); + if( rc ) return rc; + + pPager->journalOff += JOURNAL_HDR_SZ(pPager); + rc = sqlite3OsSeek(pPager->jfd, pPager->journalOff); + return rc; +} + + +/* +** Write the supplied master journal name into the journal file for pager +** pPager at the current location. The master journal name must be the last +** thing written to a journal file. If the pager is in full-sync mode, the +** journal file descriptor is advanced to the next sector boundary before +** anything is written. The format is: +** +** + 4 bytes: PAGER_MJ_PGNO. +** + N bytes: length of master journal name. +** + 4 bytes: N +** + 4 bytes: Master journal name checksum. +** + 8 bytes: aJournalMagic[]. +** +** The master journal page checksum is the sum of the bytes in the master +** journal name. +** +** If zMaster is a NULL pointer (occurs for a single database transaction), +** this call is a no-op. +*/ +static int writeMasterJournal(Pager *pPager, const char *zMaster){ + int rc; + int len; + int i; + u32 cksum = 0; + char zBuf[sizeof(aJournalMagic)+2*4]; + + if( !zMaster || pPager->setMaster) return SQLITE_OK; + pPager->setMaster = 1; + + len = strlen(zMaster); + for(i=0; ifullSync ){ + rc = seekJournalHdr(pPager); + if( rc!=SQLITE_OK ) return rc; + } + pPager->journalOff += (len+20); + + rc = write32bits(pPager->jfd, PAGER_MJ_PGNO(pPager)); + if( rc!=SQLITE_OK ) return rc; + + rc = sqlite3OsWrite(pPager->jfd, zMaster, len); + if( rc!=SQLITE_OK ) return rc; + + put32bits(zBuf, len); + put32bits(&zBuf[4], cksum); + memcpy(&zBuf[8], aJournalMagic, sizeof(aJournalMagic)); + rc = sqlite3OsWrite(pPager->jfd, zBuf, 8+sizeof(aJournalMagic)); + pPager->needSync = !pPager->noSync; + return rc; +} + +/* +** Add or remove a page from the list of all pages that are in the +** statement journal. +** +** The Pager keeps a separate list of pages that are currently in +** the statement journal. This helps the sqlite3pager_stmt_commit() +** routine run MUCH faster for the common case where there are many +** pages in memory but only a few are in the statement journal. +*/ +static void page_add_to_stmt_list(PgHdr *pPg){ + Pager *pPager = pPg->pPager; + if( pPg->inStmt ) return; + assert( pPg->pPrevStmt==0 && pPg->pNextStmt==0 ); + pPg->pPrevStmt = 0; + if( pPager->pStmt ){ + pPager->pStmt->pPrevStmt = pPg; + } + pPg->pNextStmt = pPager->pStmt; + pPager->pStmt = pPg; + pPg->inStmt = 1; +} +static void page_remove_from_stmt_list(PgHdr *pPg){ + if( !pPg->inStmt ) return; + if( pPg->pPrevStmt ){ + assert( pPg->pPrevStmt->pNextStmt==pPg ); + pPg->pPrevStmt->pNextStmt = pPg->pNextStmt; + }else{ + assert( pPg->pPager->pStmt==pPg ); + pPg->pPager->pStmt = pPg->pNextStmt; + } + if( pPg->pNextStmt ){ + assert( pPg->pNextStmt->pPrevStmt==pPg ); + pPg->pNextStmt->pPrevStmt = pPg->pPrevStmt; + } + pPg->pNextStmt = 0; + pPg->pPrevStmt = 0; + pPg->inStmt = 0; +} + +/* +** Find a page in the hash table given its page number. Return +** a pointer to the page or NULL if not found. +*/ +static PgHdr *pager_lookup(Pager *pPager, Pgno pgno){ + PgHdr *p; + if( pPager->aHash==0 ) return 0; + p = pPager->aHash[pgno & (pPager->nHash-1)]; + while( p && p->pgno!=pgno ){ + p = p->pNextHash; + } + return p; +} + +/* +** Unlock the database file. +** +** Once all locks have been removed from the database file, other +** processes or threads might change the file. So make sure all of +** our internal cache is invalidated. +*/ +static void pager_unlock(Pager *pPager){ + if( !MEMDB ){ + sqlite3OsUnlock(pPager->fd, NO_LOCK); + pPager->dbSize = -1; + } + pPager->state = PAGER_UNLOCK; + assert( pPager->pAll==0 ); +} + + +/* +** Unlock the database and clear the in-memory cache. This routine +** sets the state of the pager back to what it was when it was first +** opened. Any outstanding pages are invalidated and subsequent attempts +** to access those pages will likely result in a coredump. +*/ +static void pager_reset(Pager *pPager){ + PgHdr *pPg, *pNext; + if( pPager->errCode ) return; + for(pPg=pPager->pAll; pPg; pPg=pNext){ + pNext = pPg->pNextAll; + sqliteFree(pPg); + } + pPager->pFirst = 0; + pPager->pFirstSynced = 0; + pPager->pLast = 0; + pPager->pAll = 0; + pPager->nHash = 0; + sqliteFree(pPager->aHash); + pPager->nPage = 0; + pPager->aHash = 0; + if( pPager->state>=PAGER_RESERVED ){ + sqlite3pager_rollback(pPager); + } + pager_unlock(pPager); + pPager->nRef = 0; + assert( pPager->errCode || (pPager->journalOpen==0 && pPager->stmtOpen==0) ); +} + +/* +** When this routine is called, the pager has the journal file open and +** a RESERVED or EXCLUSIVE lock on the database. This routine releases +** the database lock and acquires a SHARED lock in its place. The journal +** file is deleted and closed. +** +** TODO: Consider keeping the journal file open for temporary databases. +** This might give a performance improvement on windows where opening +** a file is an expensive operation. +*/ +static int pager_unwritelock(Pager *pPager){ + PgHdr *pPg; + int rc; + assert( !MEMDB ); + if( pPager->statestmtOpen ){ + sqlite3OsClose(&pPager->stfd); + pPager->stmtOpen = 0; + } + if( pPager->journalOpen ){ + sqlite3OsClose(&pPager->jfd); + pPager->journalOpen = 0; + sqlite3OsDelete(pPager->zJournal); + sqliteFree( pPager->aInJournal ); + pPager->aInJournal = 0; + for(pPg=pPager->pAll; pPg; pPg=pPg->pNextAll){ + pPg->inJournal = 0; + pPg->dirty = 0; + pPg->needSync = 0; +#ifdef SQLITE_CHECK_PAGES + pPg->pageHash = pager_pagehash(pPg); +#endif + } + pPager->pDirty = 0; + pPager->dirtyCache = 0; + pPager->nRec = 0; + }else{ + assert( pPager->aInJournal==0 ); + assert( pPager->dirtyCache==0 || pPager->useJournal==0 ); + } + rc = sqlite3OsUnlock(pPager->fd, SHARED_LOCK); + pPager->state = PAGER_SHARED; + pPager->origDbSize = 0; + pPager->setMaster = 0; + pPager->needSync = 0; + pPager->pFirstSynced = pPager->pFirst; + pPager->dbSize = -1; + return rc; +} + +/* +** Compute and return a checksum for the page of data. +** +** This is not a real checksum. It is really just the sum of the +** random initial value and the page number. We experimented with +** a checksum of the entire data, but that was found to be too slow. +** +** Note that the page number is stored at the beginning of data and +** the checksum is stored at the end. This is important. If journal +** corruption occurs due to a power failure, the most likely scenario +** is that one end or the other of the record will be changed. It is +** much less likely that the two ends of the journal record will be +** correct and the middle be corrupt. Thus, this "checksum" scheme, +** though fast and simple, catches the mostly likely kind of corruption. +** +** FIX ME: Consider adding every 200th (or so) byte of the data to the +** checksum. That way if a single page spans 3 or more disk sectors and +** only the middle sector is corrupt, we will still have a reasonable +** chance of failing the checksum and thus detecting the problem. +*/ +static u32 pager_cksum(Pager *pPager, const u8 *aData){ + u32 cksum = pPager->cksumInit; + int i = pPager->pageSize-200; + while( i>0 ){ + cksum += aData[i]; + i -= 200; + } + return cksum; +} + +/* Forward declaration */ +static void makeClean(PgHdr*); + +/* +** Read a single page from the journal file opened on file descriptor +** jfd. Playback this one page. +** +** If useCksum==0 it means this journal does not use checksums. Checksums +** are not used in statement journals because statement journals do not +** need to survive power failures. +*/ +static int pager_playback_one_page(Pager *pPager, OsFile *jfd, int useCksum){ + int rc; + PgHdr *pPg; /* An existing page in the cache */ + Pgno pgno; /* The page number of a page in journal */ + u32 cksum; /* Checksum used for sanity checking */ + u8 aData[SQLITE_MAX_PAGE_SIZE]; /* Temp storage for a page */ + + /* useCksum should be true for the main journal and false for + ** statement journals. Verify that this is always the case + */ + assert( jfd == (useCksum ? pPager->jfd : pPager->stfd) ); + + + rc = read32bits(jfd, &pgno); + if( rc!=SQLITE_OK ) return rc; + rc = sqlite3OsRead(jfd, &aData, pPager->pageSize); + if( rc!=SQLITE_OK ) return rc; + pPager->journalOff += pPager->pageSize + 4; + + /* Sanity checking on the page. This is more important that I originally + ** thought. If a power failure occurs while the journal is being written, + ** it could cause invalid data to be written into the journal. We need to + ** detect this invalid data (with high probability) and ignore it. + */ + if( pgno==0 || pgno==PAGER_MJ_PGNO(pPager) ){ + return SQLITE_DONE; + } + if( pgno>(unsigned)pPager->dbSize ){ + return SQLITE_OK; + } + if( useCksum ){ + rc = read32bits(jfd, &cksum); + if( rc ) return rc; + pPager->journalOff += 4; + if( pager_cksum(pPager, aData)!=cksum ){ + return SQLITE_DONE; + } + } + + assert( pPager->state==PAGER_RESERVED || pPager->state>=PAGER_EXCLUSIVE ); + + /* If the pager is in RESERVED state, then there must be a copy of this + ** page in the pager cache. In this case just update the pager cache, + ** not the database file. The page is left marked dirty in this case. + ** + ** If in EXCLUSIVE state, then we update the pager cache if it exists + ** and the main file. The page is then marked not dirty. + ** + ** Ticket #1171: The statement journal might contain page content that is + ** different from the page content at the start of the transaction. + ** This occurs when a page is changed prior to the start of a statement + ** then changed again within the statement. When rolling back such a + ** statement we must not write to the original database unless we know + ** for certain that original page contents are in the main rollback + ** journal. Otherwise, if a full ROLLBACK occurs after the statement + ** rollback the full ROLLBACK will not restore the page to its original + ** content. Two conditions must be met before writing to the database + ** files. (1) the database must be locked. (2) we know that the original + ** page content is in the main journal either because the page is not in + ** cache or else it is marked as needSync==0. + */ + pPg = pager_lookup(pPager, pgno); + assert( pPager->state>=PAGER_EXCLUSIVE || pPg!=0 ); + TRACE3("PLAYBACK %d page %d\n", PAGERID(pPager), pgno); + if( pPager->state>=PAGER_EXCLUSIVE && (pPg==0 || pPg->needSync==0) ){ + rc = sqlite3OsSeek(pPager->fd, (pgno-1)*(i64)pPager->pageSize); + if( rc==SQLITE_OK ){ + rc = sqlite3OsWrite(pPager->fd, aData, pPager->pageSize); + } + if( pPg ){ + makeClean(pPg); + } + } + if( pPg ){ + /* No page should ever be explicitly rolled back that is in use, except + ** for page 1 which is held in use in order to keep the lock on the + ** database active. However such a page may be rolled back as a result + ** of an internal error resulting in an automatic call to + ** sqlite3pager_rollback(). + */ + void *pData; + /* assert( pPg->nRef==0 || pPg->pgno==1 ); */ + pData = PGHDR_TO_DATA(pPg); + memcpy(pData, aData, pPager->pageSize); + if( pPager->xDestructor ){ /*** FIX ME: Should this be xReinit? ***/ + pPager->xDestructor(pData, pPager->pageSize); + } +#ifdef SQLITE_CHECK_PAGES + pPg->pageHash = pager_pagehash(pPg); +#endif + CODEC1(pPager, pData, pPg->pgno, 3); + } + return rc; +} + +/* +** Parameter zMaster is the name of a master journal file. A single journal +** file that referred to the master journal file has just been rolled back. +** This routine checks if it is possible to delete the master journal file, +** and does so if it is. +** +** The master journal file contains the names of all child journals. +** To tell if a master journal can be deleted, check to each of the +** children. If all children are either missing or do not refer to +** a different master journal, then this master journal can be deleted. +*/ +static int pager_delmaster(const char *zMaster){ + int rc; + int master_open = 0; + OsFile *master = 0; + char *zMasterJournal = 0; /* Contents of master journal file */ + i64 nMasterJournal; /* Size of master journal file */ + + /* Open the master journal file exclusively in case some other process + ** is running this routine also. Not that it makes too much difference. + */ + rc = sqlite3OsOpenReadOnly(zMaster, &master); + if( rc!=SQLITE_OK ) goto delmaster_out; + master_open = 1; + rc = sqlite3OsFileSize(master, &nMasterJournal); + if( rc!=SQLITE_OK ) goto delmaster_out; + + if( nMasterJournal>0 ){ + char *zJournal; + char *zMasterPtr = 0; + + /* Load the entire master journal file into space obtained from + ** sqliteMalloc() and pointed to by zMasterJournal. + */ + zMasterJournal = (char *)sqliteMalloc(nMasterJournal); + if( !zMasterJournal ){ + rc = SQLITE_NOMEM; + goto delmaster_out; + } + rc = sqlite3OsRead(master, zMasterJournal, nMasterJournal); + if( rc!=SQLITE_OK ) goto delmaster_out; + + zJournal = zMasterJournal; + while( (zJournal-zMasterJournal)pAll; pPg; pPg=pPg->pNextAll){ + char zBuf[SQLITE_MAX_PAGE_SIZE]; + if( !pPg->dirty ) continue; + if( (int)pPg->pgno <= pPager->origDbSize ){ + rc = sqlite3OsSeek(pPager->fd, pPager->pageSize*(i64)(pPg->pgno-1)); + if( rc==SQLITE_OK ){ + rc = sqlite3OsRead(pPager->fd, zBuf, pPager->pageSize); + } + TRACE3("REFETCH %d page %d\n", PAGERID(pPager), pPg->pgno); + if( rc ) break; + CODEC1(pPager, zBuf, pPg->pgno, 2); + }else{ + memset(zBuf, 0, pPager->pageSize); + } + if( pPg->nRef==0 || memcmp(zBuf, PGHDR_TO_DATA(pPg), pPager->pageSize) ){ + memcpy(PGHDR_TO_DATA(pPg), zBuf, pPager->pageSize); + if( pPager->xReiniter ){ + pPager->xReiniter(PGHDR_TO_DATA(pPg), pPager->pageSize); + }else{ + memset(PGHDR_TO_EXTRA(pPg, pPager), 0, pPager->nExtra); + } + } + pPg->needSync = 0; + pPg->dirty = 0; +#ifdef SQLITE_CHECK_PAGES + pPg->pageHash = pager_pagehash(pPg); +#endif + } + pPager->pDirty = 0; + return rc; +} + +/* +** Truncate the main file of the given pager to the number of pages +** indicated. +*/ +static int pager_truncate(Pager *pPager, int nPage){ + assert( pPager->state>=PAGER_EXCLUSIVE ); + return sqlite3OsTruncate(pPager->fd, pPager->pageSize*(i64)nPage); +} + +/* +** Playback the journal and thus restore the database file to +** the state it was in before we started making changes. +** +** The journal file format is as follows: +** +** (1) 8 byte prefix. A copy of aJournalMagic[]. +** (2) 4 byte big-endian integer which is the number of valid page records +** in the journal. If this value is 0xffffffff, then compute the +** number of page records from the journal size. +** (3) 4 byte big-endian integer which is the initial value for the +** sanity checksum. +** (4) 4 byte integer which is the number of pages to truncate the +** database to during a rollback. +** (5) 4 byte integer which is the number of bytes in the master journal +** name. The value may be zero (indicate that there is no master +** journal.) +** (6) N bytes of the master journal name. The name will be nul-terminated +** and might be shorter than the value read from (5). If the first byte +** of the name is \000 then there is no master journal. The master +** journal name is stored in UTF-8. +** (7) Zero or more pages instances, each as follows: +** + 4 byte page number. +** + pPager->pageSize bytes of data. +** + 4 byte checksum +** +** When we speak of the journal header, we mean the first 6 items above. +** Each entry in the journal is an instance of the 7th item. +** +** Call the value from the second bullet "nRec". nRec is the number of +** valid page entries in the journal. In most cases, you can compute the +** value of nRec from the size of the journal file. But if a power +** failure occurred while the journal was being written, it could be the +** case that the size of the journal file had already been increased but +** the extra entries had not yet made it safely to disk. In such a case, +** the value of nRec computed from the file size would be too large. For +** that reason, we always use the nRec value in the header. +** +** If the nRec value is 0xffffffff it means that nRec should be computed +** from the file size. This value is used when the user selects the +** no-sync option for the journal. A power failure could lead to corruption +** in this case. But for things like temporary table (which will be +** deleted when the power is restored) we don't care. +** +** If the file opened as the journal file is not a well-formed +** journal file then all pages up to the first corrupted page are rolled +** back (or no pages if the journal header is corrupted). The journal file +** is then deleted and SQLITE_OK returned, just as if no corruption had +** been encountered. +** +** If an I/O or malloc() error occurs, the journal-file is not deleted +** and an error code is returned. +*/ +static int pager_playback(Pager *pPager){ + i64 szJ; /* Size of the journal file in bytes */ + u32 nRec; /* Number of Records in the journal */ + int i; /* Loop counter */ + Pgno mxPg = 0; /* Size of the original file in pages */ + int rc; /* Result code of a subroutine */ + char *zMaster = 0; /* Name of master journal file if any */ + + /* Figure out how many records are in the journal. Abort early if + ** the journal is empty. + */ + assert( pPager->journalOpen ); + rc = sqlite3OsFileSize(pPager->jfd, &szJ); + if( rc!=SQLITE_OK ){ + goto end_playback; + } + + /* Read the master journal name from the journal, if it is present. + ** If a master journal file name is specified, but the file is not + ** present on disk, then the journal is not hot and does not need to be + ** played back. + */ + rc = readMasterJournal(pPager->jfd, &zMaster); + assert( rc!=SQLITE_DONE ); + if( rc!=SQLITE_OK || (zMaster && !sqlite3OsFileExists(zMaster)) ){ + sqliteFree(zMaster); + zMaster = 0; + if( rc==SQLITE_DONE ) rc = SQLITE_OK; + goto end_playback; + } + sqlite3OsSeek(pPager->jfd, 0); + pPager->journalOff = 0; + + /* This loop terminates either when the readJournalHdr() call returns + ** SQLITE_DONE or an IO error occurs. */ + while( 1 ){ + + /* Read the next journal header from the journal file. If there are + ** not enough bytes left in the journal file for a complete header, or + ** it is corrupted, then a process must of failed while writing it. + ** This indicates nothing more needs to be rolled back. + */ + rc = readJournalHdr(pPager, szJ, &nRec, &mxPg); + if( rc!=SQLITE_OK ){ + if( rc==SQLITE_DONE ){ + rc = SQLITE_OK; + } + goto end_playback; + } + + /* If nRec is 0xffffffff, then this journal was created by a process + ** working in no-sync mode. This means that the rest of the journal + ** file consists of pages, there are no more journal headers. Compute + ** the value of nRec based on this assumption. + */ + if( nRec==0xffffffff ){ + assert( pPager->journalOff==JOURNAL_HDR_SZ(pPager) ); + nRec = (szJ - JOURNAL_HDR_SZ(pPager))/JOURNAL_PG_SZ(pPager); + } + + /* If this is the first header read from the journal, truncate the + ** database file back to it's original size. + */ + if( pPager->state>=PAGER_EXCLUSIVE && + pPager->journalOff==JOURNAL_HDR_SZ(pPager) ){ + assert( pPager->origDbSize==0 || pPager->origDbSize==mxPg ); + rc = pager_truncate(pPager, mxPg); + if( rc!=SQLITE_OK ){ + goto end_playback; + } + pPager->dbSize = mxPg; + } + + /* Copy original pages out of the journal and back into the database file. + */ + for(i=0; ijfd, 1); + if( rc!=SQLITE_OK ){ + if( rc==SQLITE_DONE ){ + rc = SQLITE_OK; + pPager->journalOff = szJ; + break; + }else{ + /* If we are unable to rollback a hot journal, then the database + ** is probably not recoverable. Return CORRUPT. + */ + rc = SQLITE_CORRUPT; + goto end_playback; + } + } + } + } + /*NOTREACHED*/ + assert( 0 ); + +end_playback: + if( rc==SQLITE_OK ){ + rc = pager_unwritelock(pPager); + } + if( zMaster ){ + /* If there was a master journal and this routine will return true, + ** see if it is possible to delete the master journal. + */ + if( rc==SQLITE_OK ){ + rc = pager_delmaster(zMaster); + } + sqliteFree(zMaster); + } + + /* The Pager.sectorSize variable may have been updated while rolling + ** back a journal created by a process with a different PAGER_SECTOR_SIZE + ** value. Reset it to the correct value for this process. + */ + pPager->sectorSize = PAGER_SECTOR_SIZE; + return rc; +} + +/* +** Playback the statement journal. +** +** This is similar to playing back the transaction journal but with +** a few extra twists. +** +** (1) The number of pages in the database file at the start of +** the statement is stored in pPager->stmtSize, not in the +** journal file itself. +** +** (2) In addition to playing back the statement journal, also +** playback all pages of the transaction journal beginning +** at offset pPager->stmtJSize. +*/ +static int pager_stmt_playback(Pager *pPager){ + i64 szJ; /* Size of the full journal */ + i64 hdrOff; + int nRec; /* Number of Records */ + int i; /* Loop counter */ + int rc; + + szJ = pPager->journalOff; +#ifndef NDEBUG + { + i64 os_szJ; + rc = sqlite3OsFileSize(pPager->jfd, &os_szJ); + if( rc!=SQLITE_OK ) return rc; + assert( szJ==os_szJ ); + } +#endif + + /* Set hdrOff to be the offset to the first journal header written + ** this statement transaction, or the end of the file if no journal + ** header was written. + */ + hdrOff = pPager->stmtHdrOff; + assert( pPager->fullSync || !hdrOff ); + if( !hdrOff ){ + hdrOff = szJ; + } + + /* Truncate the database back to its original size. + */ + if( pPager->state>=PAGER_EXCLUSIVE ){ + rc = pager_truncate(pPager, pPager->stmtSize); + } + assert( pPager->state>=PAGER_SHARED ); + pPager->dbSize = pPager->stmtSize; + + /* Figure out how many records are in the statement journal. + */ + assert( pPager->stmtInUse && pPager->journalOpen ); + sqlite3OsSeek(pPager->stfd, 0); + nRec = pPager->stmtNRec; + + /* Copy original pages out of the statement journal and back into the + ** database file. Note that the statement journal omits checksums from + ** each record since power-failure recovery is not important to statement + ** journals. + */ + for(i=nRec-1; i>=0; i--){ + rc = pager_playback_one_page(pPager, pPager->stfd, 0); + assert( rc!=SQLITE_DONE ); + if( rc!=SQLITE_OK ) goto end_stmt_playback; + } + + /* Now roll some pages back from the transaction journal. Pager.stmtJSize + ** was the size of the journal file when this statement was started, so + ** everything after that needs to be rolled back, either into the + ** database, the memory cache, or both. + ** + ** If it is not zero, then Pager.stmtHdrOff is the offset to the start + ** of the first journal header written during this statement transaction. + */ + rc = sqlite3OsSeek(pPager->jfd, pPager->stmtJSize); + if( rc!=SQLITE_OK ){ + goto end_stmt_playback; + } + pPager->journalOff = pPager->stmtJSize; + pPager->cksumInit = pPager->stmtCksum; + assert( JOURNAL_HDR_SZ(pPager)<(pPager->pageSize+8) ); + while( pPager->journalOff <= (hdrOff-(pPager->pageSize+8)) ){ + rc = pager_playback_one_page(pPager, pPager->jfd, 1); + assert( rc!=SQLITE_DONE ); + if( rc!=SQLITE_OK ) goto end_stmt_playback; + } + + while( pPager->journalOff < szJ ){ + u32 nJRec; /* Number of Journal Records */ + u32 dummy; + rc = readJournalHdr(pPager, szJ, &nJRec, &dummy); + if( rc!=SQLITE_OK ){ + assert( rc!=SQLITE_DONE ); + goto end_stmt_playback; + } + if( nJRec==0 ){ + nJRec = (szJ - pPager->journalOff) / (pPager->pageSize+8); + } + for(i=nJRec-1; i>=0 && pPager->journalOff < szJ; i--){ + rc = pager_playback_one_page(pPager, pPager->jfd, 1); + assert( rc!=SQLITE_DONE ); + if( rc!=SQLITE_OK ) goto end_stmt_playback; + } + } + + pPager->journalOff = szJ; + +end_stmt_playback: + if( rc==SQLITE_OK) { + pPager->journalOff = szJ; + /* pager_reload_cache(pPager); */ + } + return rc; +} + +/* +** Change the maximum number of in-memory pages that are allowed. +*/ +void sqlite3pager_set_cachesize(Pager *pPager, int mxPage){ + if( mxPage>10 ){ + pPager->mxPage = mxPage; + }else{ + pPager->mxPage = 10; + } +} + +/* +** Adjust the robustness of the database to damage due to OS crashes +** or power failures by changing the number of syncs()s when writing +** the rollback journal. There are three levels: +** +** OFF sqlite3OsSync() is never called. This is the default +** for temporary and transient files. +** +** NORMAL The journal is synced once before writes begin on the +** database. This is normally adequate protection, but +** it is theoretically possible, though very unlikely, +** that an inopertune power failure could leave the journal +** in a state which would cause damage to the database +** when it is rolled back. +** +** FULL The journal is synced twice before writes begin on the +** database (with some additional information - the nRec field +** of the journal header - being written in between the two +** syncs). If we assume that writing a +** single disk sector is atomic, then this mode provides +** assurance that the journal will not be corrupted to the +** point of causing damage to the database during rollback. +** +** Numeric values associated with these states are OFF==1, NORMAL=2, +** and FULL=3. +*/ +#ifndef SQLITE_OMIT_PAGER_PRAGMAS +void sqlite3pager_set_safety_level(Pager *pPager, int level, int full_fsync){ + pPager->noSync = level==1 || pPager->tempFile; + pPager->fullSync = level==3 && !pPager->tempFile; + pPager->full_fsync = full_fsync; + if( pPager->noSync ) pPager->needSync = 0; +} +#endif + +/* +** The following global variable is incremented whenever the library +** attempts to open a temporary file. This information is used for +** testing and analysis only. +*/ +#ifdef SQLITE_TEST +int sqlite3_opentemp_count = 0; +#endif + +/* +** Open a temporary file. Write the name of the file into zFile +** (zFile must be at least SQLITE_TEMPNAME_SIZE bytes long.) Write +** the file descriptor into *fd. Return SQLITE_OK on success or some +** other error code if we fail. +** +** The OS will automatically delete the temporary file when it is +** closed. +*/ +static int sqlite3pager_opentemp(char *zFile, OsFile **pFd){ + int cnt = 8; + int rc; +#ifdef SQLITE_TEST + sqlite3_opentemp_count++; /* Used for testing and analysis only */ +#endif + do{ + cnt--; + sqlite3OsTempFileName(zFile); + rc = sqlite3OsOpenExclusive(zFile, pFd, 1); + }while( cnt>0 && rc!=SQLITE_OK && rc!=SQLITE_NOMEM ); + return rc; +} + +/* +** Create a new page cache and put a pointer to the page cache in *ppPager. +** The file to be cached need not exist. The file is not locked until +** the first call to sqlite3pager_get() and is only held open until the +** last page is released using sqlite3pager_unref(). +** +** If zFilename is NULL then a randomly-named temporary file is created +** and used as the file to be cached. The file will be deleted +** automatically when it is closed. +** +** If zFilename is ":memory:" then all information is held in cache. +** It is never written to disk. This can be used to implement an +** in-memory database. +*/ +int sqlite3pager_open( + Pager **ppPager, /* Return the Pager structure here */ + const char *zFilename, /* Name of the database file to open */ + int nExtra, /* Extra bytes append to each in-memory page */ + int flags /* flags controlling this file */ +){ + Pager *pPager = 0; + char *zFullPathname = 0; + int nameLen; /* Compiler is wrong. This is always initialized before use */ + OsFile *fd; + int rc = SQLITE_OK; + int i; + int tempFile = 0; + int memDb = 0; + int readOnly = 0; + int useJournal = (flags & PAGER_OMIT_JOURNAL)==0; + int noReadlock = (flags & PAGER_NO_READLOCK)!=0; + char zTemp[SQLITE_TEMPNAME_SIZE]; +#ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT + /* A malloc() cannot fail in sqlite3ThreadData() as one or more calls to + ** malloc() must have already been made by this thread before it gets + ** to this point. This means the ThreadData must have been allocated already + ** so that ThreadData.nAlloc can be set. It would be nice to assert + ** that ThreadData.nAlloc is non-zero, but alas this breaks test cases + ** written to invoke the pager directly. + */ + ThreadData *pTsd = sqlite3ThreadData(); + assert( pTsd ); +#endif + + /* If malloc() has already failed return SQLITE_NOMEM. Before even + ** testing for this, set *ppPager to NULL so the caller knows the pager + ** structure was never allocated. + */ + *ppPager = 0; + if( sqlite3MallocFailed() ){ + return SQLITE_NOMEM; + } + memset(&fd, 0, sizeof(fd)); + + /* Open the pager file and set zFullPathname to point at malloc()ed + ** memory containing the complete filename (i.e. including the directory). + */ + if( zFilename && zFilename[0] ){ +#ifndef SQLITE_OMIT_MEMORYDB + if( strcmp(zFilename,":memory:")==0 ){ + memDb = 1; + zFullPathname = sqliteStrDup(""); + }else +#endif + { + zFullPathname = sqlite3OsFullPathname(zFilename); + if( zFullPathname ){ + rc = sqlite3OsOpenReadWrite(zFullPathname, &fd, &readOnly); + } + } + }else{ + rc = sqlite3pager_opentemp(zTemp, &fd); + zFilename = zTemp; + zFullPathname = sqlite3OsFullPathname(zFilename); + if( rc==SQLITE_OK ){ + tempFile = 1; + } + } + + /* Allocate the Pager structure. As part of the same allocation, allocate + ** space for the full paths of the file, directory and journal + ** (Pager.zFilename, Pager.zDirectory and Pager.zJournal). + */ + if( zFullPathname ){ + nameLen = strlen(zFullPathname); + pPager = sqliteMalloc( sizeof(*pPager) + nameLen*3 + 30 ); + } + + /* If an error occured in either of the blocks above, free the memory + ** pointed to by zFullPathname, free the Pager structure and close the + ** file. Since the pager is not allocated there is no need to set + ** any Pager.errMask variables. + */ + if( !pPager || !zFullPathname || rc!=SQLITE_OK ){ + sqlite3OsClose(&fd); + sqliteFree(zFullPathname); + sqliteFree(pPager); + return ((rc==SQLITE_OK)?SQLITE_NOMEM:rc); + } + + TRACE3("OPEN %d %s\n", FILEHANDLEID(fd), zFullPathname); + pPager->zFilename = (char*)&pPager[1]; + pPager->zDirectory = &pPager->zFilename[nameLen+1]; + pPager->zJournal = &pPager->zDirectory[nameLen+1]; + strcpy(pPager->zFilename, zFullPathname); + strcpy(pPager->zDirectory, zFullPathname); + + for(i=nameLen; i>0 && pPager->zDirectory[i-1]!='/'; i--){} + if( i>0 ) pPager->zDirectory[i-1] = 0; + strcpy(pPager->zJournal, zFullPathname); + sqliteFree(zFullPathname); + strcpy(&pPager->zJournal[nameLen], "-journal"); + pPager->fd = fd; + /* pPager->journalOpen = 0; */ + pPager->useJournal = useJournal && !memDb; + pPager->noReadlock = noReadlock && readOnly; + /* pPager->stmtOpen = 0; */ + /* pPager->stmtInUse = 0; */ + /* pPager->nRef = 0; */ + pPager->dbSize = memDb-1; + pPager->pageSize = SQLITE_DEFAULT_PAGE_SIZE; + /* pPager->stmtSize = 0; */ + /* pPager->stmtJSize = 0; */ + /* pPager->nPage = 0; */ + /* pPager->nMaxPage = 0; */ + pPager->mxPage = 100; + assert( PAGER_UNLOCK==0 ); + /* pPager->state = PAGER_UNLOCK; */ + /* pPager->errMask = 0; */ + pPager->tempFile = tempFile; + pPager->memDb = memDb; + pPager->readOnly = readOnly; + /* pPager->needSync = 0; */ + pPager->noSync = pPager->tempFile || !useJournal; + pPager->fullSync = (pPager->noSync?0:1); + /* pPager->pFirst = 0; */ + /* pPager->pFirstSynced = 0; */ + /* pPager->pLast = 0; */ + pPager->nExtra = FORCE_ALIGNMENT(nExtra); + pPager->sectorSize = PAGER_SECTOR_SIZE; + /* pPager->pBusyHandler = 0; */ + /* memset(pPager->aHash, 0, sizeof(pPager->aHash)); */ + *ppPager = pPager; +#ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT + pPager->pNext = pTsd->pPager; + pTsd->pPager = pPager; +#endif + return SQLITE_OK; +} + +/* +** Set the busy handler function. +*/ +void sqlite3pager_set_busyhandler(Pager *pPager, BusyHandler *pBusyHandler){ + pPager->pBusyHandler = pBusyHandler; +} + +/* +** Set the destructor for this pager. If not NULL, the destructor is called +** when the reference count on each page reaches zero. The destructor can +** be used to clean up information in the extra segment appended to each page. +** +** The destructor is not called as a result sqlite3pager_close(). +** Destructors are only called by sqlite3pager_unref(). +*/ +void sqlite3pager_set_destructor(Pager *pPager, void (*xDesc)(void*,int)){ + pPager->xDestructor = xDesc; +} + +/* +** Set the reinitializer for this pager. If not NULL, the reinitializer +** is called when the content of a page in cache is restored to its original +** value as a result of a rollback. The callback gives higher-level code +** an opportunity to restore the EXTRA section to agree with the restored +** page data. +*/ +void sqlite3pager_set_reiniter(Pager *pPager, void (*xReinit)(void*,int)){ + pPager->xReiniter = xReinit; +} + +/* +** Set the page size. Return the new size. If the suggest new page +** size is inappropriate, then an alternative page size is selected +** and returned. +*/ +int sqlite3pager_set_pagesize(Pager *pPager, int pageSize){ + assert( pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE ); + if( !pPager->memDb ){ + pPager->pageSize = pageSize; + } + return pPager->pageSize; +} + +/* +** The following set of routines are used to disable the simulated +** I/O error mechanism. These routines are used to avoid simulated +** errors in places where we do not care about errors. +** +** Unless -DSQLITE_TEST=1 is used, these routines are all no-ops +** and generate no code. +*/ +#ifdef SQLITE_TEST +extern int sqlite3_io_error_pending; +extern int sqlite3_io_error_hit; +static int saved_cnt; +void clear_simulated_io_error(){ + sqlite3_io_error_hit = 0; +} +void disable_simulated_io_errors(void){ + saved_cnt = sqlite3_io_error_pending; + sqlite3_io_error_pending = -1; +} +void enable_simulated_io_errors(void){ + sqlite3_io_error_pending = saved_cnt; +} +#else +# define clear_simulated_io_error() +# define disable_simulated_io_errors() +# define enable_simulated_io_errors() +#endif + +/* +** Read the first N bytes from the beginning of the file into memory +** that pDest points to. +** +** No error checking is done. The rational for this is that this function +** may be called even if the file does not exist or contain a header. In +** these cases sqlite3OsRead() will return an error, to which the correct +** response is to zero the memory at pDest and continue. A real IO error +** will presumably recur and be picked up later (Todo: Think about this). +*/ +int sqlite3pager_read_fileheader(Pager *pPager, int N, unsigned char *pDest){ + int rc = SQLITE_OK; + memset(pDest, 0, N); + if( MEMDB==0 ){ + disable_simulated_io_errors(); + sqlite3OsSeek(pPager->fd, 0); + enable_simulated_io_errors(); + rc = sqlite3OsRead(pPager->fd, pDest, N); + if( rc==SQLITE_IOERR_SHORT_READ ){ + rc = SQLITE_OK; + } + } + return rc; +} + +/* +** Return the total number of pages in the disk file associated with +** pPager. +** +** If the PENDING_BYTE lies on the page directly after the end of the +** file, then consider this page part of the file too. For example, if +** PENDING_BYTE is byte 4096 (the first byte of page 5) and the size of the +** file is 4096 bytes, 5 is returned instead of 4. +*/ +int sqlite3pager_pagecount(Pager *pPager){ + i64 n; + int rc; + assert( pPager!=0 ); + if( pPager->dbSize>=0 ){ + n = pPager->dbSize; + } else { + if( (rc = sqlite3OsFileSize(pPager->fd, &n))!=SQLITE_OK ){ + pager_error(pPager, rc); + return 0; + } + if( n>0 && npageSize ){ + n = 1; + }else{ + n /= pPager->pageSize; + } + if( pPager->state!=PAGER_UNLOCK ){ + pPager->dbSize = n; + } + } + if( n==(PENDING_BYTE/pPager->pageSize) ){ + n++; + } + return n; +} + + +#ifndef SQLITE_OMIT_MEMORYDB +/* +** Clear a PgHistory block +*/ +static void clearHistory(PgHistory *pHist){ + sqliteFree(pHist->pOrig); + sqliteFree(pHist->pStmt); + pHist->pOrig = 0; + pHist->pStmt = 0; +} +#else +#define clearHistory(x) +#endif + +/* +** Forward declaration +*/ +static int syncJournal(Pager*); + +/* +** Unlink pPg from it's hash chain. Also set the page number to 0 to indicate +** that the page is not part of any hash chain. This is required because the +** sqlite3pager_movepage() routine can leave a page in the +** pNextFree/pPrevFree list that is not a part of any hash-chain. +*/ +static void unlinkHashChain(Pager *pPager, PgHdr *pPg){ + if( pPg->pgno==0 ){ + assert( pPg->pNextHash==0 && pPg->pPrevHash==0 ); + return; + } + if( pPg->pNextHash ){ + pPg->pNextHash->pPrevHash = pPg->pPrevHash; + } + if( pPg->pPrevHash ){ + assert( pPager->aHash[pPg->pgno & (pPager->nHash-1)]!=pPg ); + pPg->pPrevHash->pNextHash = pPg->pNextHash; + }else{ + int h = pPg->pgno & (pPager->nHash-1); + pPager->aHash[h] = pPg->pNextHash; + } + if( MEMDB ){ + clearHistory(PGHDR_TO_HIST(pPg, pPager)); + } + pPg->pgno = 0; + pPg->pNextHash = pPg->pPrevHash = 0; +} + +/* +** Unlink a page from the free list (the list of all pages where nRef==0) +** and from its hash collision chain. +*/ +static void unlinkPage(PgHdr *pPg){ + Pager *pPager = pPg->pPager; + + /* Keep the pFirstSynced pointer pointing at the first synchronized page */ + if( pPg==pPager->pFirstSynced ){ + PgHdr *p = pPg->pNextFree; + while( p && p->needSync ){ p = p->pNextFree; } + pPager->pFirstSynced = p; + } + + /* Unlink from the freelist */ + if( pPg->pPrevFree ){ + pPg->pPrevFree->pNextFree = pPg->pNextFree; + }else{ + assert( pPager->pFirst==pPg ); + pPager->pFirst = pPg->pNextFree; + } + if( pPg->pNextFree ){ + pPg->pNextFree->pPrevFree = pPg->pPrevFree; + }else{ + assert( pPager->pLast==pPg ); + pPager->pLast = pPg->pPrevFree; + } + pPg->pNextFree = pPg->pPrevFree = 0; + + /* Unlink from the pgno hash table */ + unlinkHashChain(pPager, pPg); +} + +#ifndef SQLITE_OMIT_MEMORYDB +/* +** This routine is used to truncate an in-memory database. Delete +** all pages whose pgno is larger than pPager->dbSize and is unreferenced. +** Referenced pages larger than pPager->dbSize are zeroed. +*/ +static void memoryTruncate(Pager *pPager){ + PgHdr *pPg; + PgHdr **ppPg; + int dbSize = pPager->dbSize; + + ppPg = &pPager->pAll; + while( (pPg = *ppPg)!=0 ){ + if( pPg->pgno<=dbSize ){ + ppPg = &pPg->pNextAll; + }else if( pPg->nRef>0 ){ + memset(PGHDR_TO_DATA(pPg), 0, pPager->pageSize); + ppPg = &pPg->pNextAll; + }else{ + *ppPg = pPg->pNextAll; + unlinkPage(pPg); + makeClean(pPg); + sqliteFree(pPg); + pPager->nPage--; + } + } +} +#else +#define memoryTruncate(p) +#endif + +/* +** Try to obtain a lock on a file. Invoke the busy callback if the lock +** is currently not available. Repeat until the busy callback returns +** false or until the lock succeeds. +** +** Return SQLITE_OK on success and an error code if we cannot obtain +** the lock. +*/ +static int pager_wait_on_lock(Pager *pPager, int locktype){ + int rc; + + /* The OS lock values must be the same as the Pager lock values */ + assert( PAGER_SHARED==SHARED_LOCK ); + assert( PAGER_RESERVED==RESERVED_LOCK ); + assert( PAGER_EXCLUSIVE==EXCLUSIVE_LOCK ); + + /* If the file is currently unlocked then the size must be unknown */ + assert( pPager->state>=PAGER_SHARED || pPager->dbSize<0 || MEMDB ); + + if( pPager->state>=locktype ){ + rc = SQLITE_OK; + }else{ + do { + rc = sqlite3OsLock(pPager->fd, locktype); + }while( rc==SQLITE_BUSY && sqlite3InvokeBusyHandler(pPager->pBusyHandler) ); + if( rc==SQLITE_OK ){ + pPager->state = locktype; + } + } + return rc; +} + +/* +** Truncate the file to the number of pages specified. +*/ +int sqlite3pager_truncate(Pager *pPager, Pgno nPage){ + int rc; + assert( pPager->state>=PAGER_SHARED || MEMDB ); + sqlite3pager_pagecount(pPager); + if( pPager->errCode ){ + rc = pPager->errCode; + return rc; + } + if( nPage>=(unsigned)pPager->dbSize ){ + return SQLITE_OK; + } + if( MEMDB ){ + pPager->dbSize = nPage; + memoryTruncate(pPager); + return SQLITE_OK; + } + rc = syncJournal(pPager); + if( rc!=SQLITE_OK ){ + return rc; + } + + /* Get an exclusive lock on the database before truncating. */ + rc = pager_wait_on_lock(pPager, EXCLUSIVE_LOCK); + if( rc!=SQLITE_OK ){ + return rc; + } + + rc = pager_truncate(pPager, nPage); + if( rc==SQLITE_OK ){ + pPager->dbSize = nPage; + } + return rc; +} + +/* +** Shutdown the page cache. Free all memory and close all files. +** +** If a transaction was in progress when this routine is called, that +** transaction is rolled back. All outstanding pages are invalidated +** and their memory is freed. Any attempt to use a page associated +** with this page cache after this function returns will likely +** result in a coredump. +** +** This function always succeeds. If a transaction is active an attempt +** is made to roll it back. If an error occurs during the rollback +** a hot journal may be left in the filesystem but no error is returned +** to the caller. +*/ +int sqlite3pager_close(Pager *pPager){ +#ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT + /* A malloc() cannot fail in sqlite3ThreadData() as one or more calls to + ** malloc() must have already been made by this thread before it gets + ** to this point. This means the ThreadData must have been allocated already + ** so that ThreadData.nAlloc can be set. + */ + ThreadData *pTsd = sqlite3ThreadData(); + assert( pPager ); + assert( pTsd && pTsd->nAlloc ); +#endif + + disable_simulated_io_errors(); + pPager->errCode = 0; + pager_reset(pPager); + enable_simulated_io_errors(); + TRACE2("CLOSE %d\n", PAGERID(pPager)); + assert( pPager->errCode || (pPager->journalOpen==0 && pPager->stmtOpen==0) ); + if( pPager->journalOpen ){ + sqlite3OsClose(&pPager->jfd); + } + sqliteFree(pPager->aInJournal); + if( pPager->stmtOpen ){ + sqlite3OsClose(&pPager->stfd); + } + sqlite3OsClose(&pPager->fd); + /* Temp files are automatically deleted by the OS + ** if( pPager->tempFile ){ + ** sqlite3OsDelete(pPager->zFilename); + ** } + */ + +#ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT + /* Remove the pager from the linked list of pagers starting at + ** ThreadData.pPager if memory-management is enabled. + */ + if( pPager==pTsd->pPager ){ + pTsd->pPager = pPager->pNext; + }else{ + Pager *pTmp; + for(pTmp = pTsd->pPager; pTmp->pNext!=pPager; pTmp=pTmp->pNext){} + pTmp->pNext = pPager->pNext; + } +#endif + sqliteFree(pPager->aHash); + sqliteFree(pPager); + return SQLITE_OK; +} + +/* +** Return the page number for the given page data. +*/ +Pgno sqlite3pager_pagenumber(void *pData){ + PgHdr *p = DATA_TO_PGHDR(pData); + return p->pgno; +} + +/* +** The page_ref() function increments the reference count for a page. +** If the page is currently on the freelist (the reference count is zero) then +** remove it from the freelist. +** +** For non-test systems, page_ref() is a macro that calls _page_ref() +** online of the reference count is zero. For test systems, page_ref() +** is a real function so that we can set breakpoints and trace it. +*/ +static void _page_ref(PgHdr *pPg){ + if( pPg->nRef==0 ){ + /* The page is currently on the freelist. Remove it. */ + if( pPg==pPg->pPager->pFirstSynced ){ + PgHdr *p = pPg->pNextFree; + while( p && p->needSync ){ p = p->pNextFree; } + pPg->pPager->pFirstSynced = p; + } + if( pPg->pPrevFree ){ + pPg->pPrevFree->pNextFree = pPg->pNextFree; + }else{ + pPg->pPager->pFirst = pPg->pNextFree; + } + if( pPg->pNextFree ){ + pPg->pNextFree->pPrevFree = pPg->pPrevFree; + }else{ + pPg->pPager->pLast = pPg->pPrevFree; + } + pPg->pPager->nRef++; + } + pPg->nRef++; + REFINFO(pPg); +} +#ifdef SQLITE_DEBUG + static void page_ref(PgHdr *pPg){ + if( pPg->nRef==0 ){ + _page_ref(pPg); + }else{ + pPg->nRef++; + REFINFO(pPg); + } + } +#else +# define page_ref(P) ((P)->nRef==0?_page_ref(P):(void)(P)->nRef++) +#endif + +/* +** Increment the reference count for a page. The input pointer is +** a reference to the page data. +*/ +int sqlite3pager_ref(void *pData){ + PgHdr *pPg = DATA_TO_PGHDR(pData); + page_ref(pPg); + return SQLITE_OK; +} + +/* +** Sync the journal. In other words, make sure all the pages that have +** been written to the journal have actually reached the surface of the +** disk. It is not safe to modify the original database file until after +** the journal has been synced. If the original database is modified before +** the journal is synced and a power failure occurs, the unsynced journal +** data would be lost and we would be unable to completely rollback the +** database changes. Database corruption would occur. +** +** This routine also updates the nRec field in the header of the journal. +** (See comments on the pager_playback() routine for additional information.) +** If the sync mode is FULL, two syncs will occur. First the whole journal +** is synced, then the nRec field is updated, then a second sync occurs. +** +** For temporary databases, we do not care if we are able to rollback +** after a power failure, so sync occurs. +** +** This routine clears the needSync field of every page current held in +** memory. +*/ +static int syncJournal(Pager *pPager){ + PgHdr *pPg; + int rc = SQLITE_OK; + + /* Sync the journal before modifying the main database + ** (assuming there is a journal and it needs to be synced.) + */ + if( pPager->needSync ){ + if( !pPager->tempFile ){ + assert( pPager->journalOpen ); + /* assert( !pPager->noSync ); // noSync might be set if synchronous + ** was turned off after the transaction was started. Ticket #615 */ +#ifndef NDEBUG + { + /* Make sure the pPager->nRec counter we are keeping agrees + ** with the nRec computed from the size of the journal file. + */ + i64 jSz; + rc = sqlite3OsFileSize(pPager->jfd, &jSz); + if( rc!=0 ) return rc; + assert( pPager->journalOff==jSz ); + } +#endif + { + /* Write the nRec value into the journal file header. If in + ** full-synchronous mode, sync the journal first. This ensures that + ** all data has really hit the disk before nRec is updated to mark + ** it as a candidate for rollback. + */ + if( pPager->fullSync ){ + TRACE2("SYNC journal of %d\n", PAGERID(pPager)); + rc = sqlite3OsSync(pPager->jfd, 0); + if( rc!=0 ) return rc; + } + rc = sqlite3OsSeek(pPager->jfd, + pPager->journalHdr + sizeof(aJournalMagic)); + if( rc ) return rc; + rc = write32bits(pPager->jfd, pPager->nRec); + if( rc ) return rc; + + rc = sqlite3OsSeek(pPager->jfd, pPager->journalOff); + if( rc ) return rc; + } + TRACE2("SYNC journal of %d\n", PAGERID(pPager)); + rc = sqlite3OsSync(pPager->jfd, pPager->full_fsync); + if( rc!=0 ) return rc; + pPager->journalStarted = 1; + } + pPager->needSync = 0; + + /* Erase the needSync flag from every page. + */ + for(pPg=pPager->pAll; pPg; pPg=pPg->pNextAll){ + pPg->needSync = 0; + } + pPager->pFirstSynced = pPager->pFirst; + } + +#ifndef NDEBUG + /* If the Pager.needSync flag is clear then the PgHdr.needSync + ** flag must also be clear for all pages. Verify that this + ** invariant is true. + */ + else{ + for(pPg=pPager->pAll; pPg; pPg=pPg->pNextAll){ + assert( pPg->needSync==0 ); + } + assert( pPager->pFirstSynced==pPager->pFirst ); + } +#endif + + return rc; +} + +/* +** Merge two lists of pages connected by pDirty and in pgno order. +** Do not both fixing the pPrevDirty pointers. +*/ +static PgHdr *merge_pagelist(PgHdr *pA, PgHdr *pB){ + PgHdr result, *pTail; + pTail = &result; + while( pA && pB ){ + if( pA->pgnopgno ){ + pTail->pDirty = pA; + pTail = pA; + pA = pA->pDirty; + }else{ + pTail->pDirty = pB; + pTail = pB; + pB = pB->pDirty; + } + } + if( pA ){ + pTail->pDirty = pA; + }else if( pB ){ + pTail->pDirty = pB; + }else{ + pTail->pDirty = 0; + } + return result.pDirty; +} + +/* +** Sort the list of pages in accending order by pgno. Pages are +** connected by pDirty pointers. The pPrevDirty pointers are +** corrupted by this sort. +*/ +#define N_SORT_BUCKET 25 +static PgHdr *sort_pagelist(PgHdr *pIn){ + PgHdr *a[N_SORT_BUCKET], *p; + int i; + memset(a, 0, sizeof(a)); + while( pIn ){ + p = pIn; + pIn = p->pDirty; + p->pDirty = 0; + for(i=0; ipPager; + + /* At this point there may be either a RESERVED or EXCLUSIVE lock on the + ** database file. If there is already an EXCLUSIVE lock, the following + ** calls to sqlite3OsLock() are no-ops. + ** + ** Moving the lock from RESERVED to EXCLUSIVE actually involves going + ** through an intermediate state PENDING. A PENDING lock prevents new + ** readers from attaching to the database but is unsufficient for us to + ** write. The idea of a PENDING lock is to prevent new readers from + ** coming in while we wait for existing readers to clear. + ** + ** While the pager is in the RESERVED state, the original database file + ** is unchanged and we can rollback without having to playback the + ** journal into the original database file. Once we transition to + ** EXCLUSIVE, it means the database file has been changed and any rollback + ** will require a journal playback. + */ + rc = pager_wait_on_lock(pPager, EXCLUSIVE_LOCK); + if( rc!=SQLITE_OK ){ + return rc; + } + + pList = sort_pagelist(pList); + while( pList ){ + assert( pList->dirty ); + rc = sqlite3OsSeek(pPager->fd, (pList->pgno-1)*(i64)pPager->pageSize); + if( rc ) return rc; + /* If there are dirty pages in the page cache with page numbers greater + ** than Pager.dbSize, this means sqlite3pager_truncate() was called to + ** make the file smaller (presumably by auto-vacuum code). Do not write + ** any such pages to the file. + */ + if( pList->pgno<=pPager->dbSize ){ + char *pData = CODEC2(pPager, PGHDR_TO_DATA(pList), pList->pgno, 6); + TRACE3("STORE %d page %d\n", PAGERID(pPager), pList->pgno); + rc = sqlite3OsWrite(pPager->fd, pData, pPager->pageSize); + TEST_INCR(pPager->nWrite); + } +#ifndef NDEBUG + else{ + TRACE3("NOSTORE %d page %d\n", PAGERID(pPager), pList->pgno); + } +#endif + if( rc ) return rc; + pList->dirty = 0; +#ifdef SQLITE_CHECK_PAGES + pList->pageHash = pager_pagehash(pList); +#endif + pList = pList->pDirty; + } + return SQLITE_OK; +} + +/* +** Collect every dirty page into a dirty list and +** return a pointer to the head of that list. All pages are +** collected even if they are still in use. +*/ +static PgHdr *pager_get_all_dirty_pages(Pager *pPager){ + return pPager->pDirty; +} + +/* +** Return TRUE if there is a hot journal on the given pager. +** A hot journal is one that needs to be played back. +** +** If the current size of the database file is 0 but a journal file +** exists, that is probably an old journal left over from a prior +** database with the same name. Just delete the journal. +*/ +static int hasHotJournal(Pager *pPager){ + if( !pPager->useJournal ) return 0; + if( !sqlite3OsFileExists(pPager->zJournal) ) return 0; + if( sqlite3OsCheckReservedLock(pPager->fd) ) return 0; + if( sqlite3pager_pagecount(pPager)==0 ){ + sqlite3OsDelete(pPager->zJournal); + return 0; + }else{ + return 1; + } +} + +/* +** Try to find a page in the cache that can be recycled. +** +** This routine may return SQLITE_IOERR, SQLITE_FULL or SQLITE_OK. It +** does not set the pPager->errCode variable. +*/ +static int pager_recycle(Pager *pPager, int syncOk, PgHdr **ppPg){ + PgHdr *pPg; + *ppPg = 0; + + /* Find a page to recycle. Try to locate a page that does not + ** require us to do an fsync() on the journal. + */ + pPg = pPager->pFirstSynced; + + /* If we could not find a page that does not require an fsync() + ** on the journal file then fsync the journal file. This is a + ** very slow operation, so we work hard to avoid it. But sometimes + ** it can't be helped. + */ + if( pPg==0 && pPager->pFirst && syncOk && !MEMDB){ + int rc = syncJournal(pPager); + if( rc!=0 ){ + return rc; + } + if( pPager->fullSync ){ + /* If in full-sync mode, write a new journal header into the + ** journal file. This is done to avoid ever modifying a journal + ** header that is involved in the rollback of pages that have + ** already been written to the database (in case the header is + ** trashed when the nRec field is updated). + */ + pPager->nRec = 0; + assert( pPager->journalOff > 0 ); + rc = writeJournalHdr(pPager); + if( rc!=0 ){ + return rc; + } + } + pPg = pPager->pFirst; + } + if( pPg==0 ){ + return SQLITE_OK; + } + + assert( pPg->nRef==0 ); + + /* Write the page to the database file if it is dirty. + */ + if( pPg->dirty ){ + int rc; + assert( pPg->needSync==0 ); + makeClean(pPg); + pPg->dirty = 1; + pPg->pDirty = 0; + rc = pager_write_pagelist( pPg ); + if( rc!=SQLITE_OK ){ + return rc; + } + } + assert( pPg->dirty==0 ); + + /* If the page we are recycling is marked as alwaysRollback, then + ** set the global alwaysRollback flag, thus disabling the + ** sqlite_dont_rollback() optimization for the rest of this transaction. + ** It is necessary to do this because the page marked alwaysRollback + ** might be reloaded at a later time but at that point we won't remember + ** that is was marked alwaysRollback. This means that all pages must + ** be marked as alwaysRollback from here on out. + */ + if( pPg->alwaysRollback ){ + pPager->alwaysRollback = 1; + } + + /* Unlink the old page from the free list and the hash table + */ + unlinkPage(pPg); + TEST_INCR(pPager->nOvfl); + + *ppPg = pPg; + return SQLITE_OK; +} + +/* +** This function is called to free superfluous dynamically allocated memory +** held by the pager system. Memory in use by any SQLite pager allocated +** by the current thread may be sqliteFree()ed. +** +** nReq is the number of bytes of memory required. Once this much has +** been released, the function returns. A negative value for nReq means +** free as much memory as possible. The return value is the total number +** of bytes of memory released. +*/ +#ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT +int sqlite3pager_release_memory(int nReq){ + const ThreadData *pTsdro = sqlite3ThreadDataReadOnly(); + Pager *p; + int nReleased = 0; + int i; + + /* If the the global mutex is held, this subroutine becomes a + ** o-op; zero bytes of memory are freed. This is because + ** some of the code invoked by this function may also + ** try to obtain the mutex, resulting in a deadlock. + */ + if( sqlite3OsInMutex(0) ){ + return 0; + } + + /* Outermost loop runs for at most two iterations. First iteration we + ** try to find memory that can be released without calling fsync(). Second + ** iteration (which only runs if the first failed to free nReq bytes of + ** memory) is permitted to call fsync(). This is of course much more + ** expensive. + */ + for(i=0; i<=1; i++){ + + /* Loop through all the SQLite pagers opened by the current thread. */ + for(p=pTsdro->pPager; p && (nReq<0 || nReleasedpNext){ + PgHdr *pPg; + int rc; + + /* For each pager, try to free as many pages as possible (without + ** calling fsync() if this is the first iteration of the outermost + ** loop). + */ + while( SQLITE_OK==(rc = pager_recycle(p, i, &pPg)) && pPg) { + /* We've found a page to free. At this point the page has been + ** removed from the page hash-table, free-list and synced-list + ** (pFirstSynced). It is still in the all pages (pAll) list. + ** Remove it from this list before freeing. + ** + ** Todo: Check the Pager.pStmt list to make sure this is Ok. It + ** probably is though. + */ + PgHdr *pTmp; + assert( pPg ); + page_remove_from_stmt_list(pPg); + if( pPg==p->pAll ){ + p->pAll = pPg->pNextAll; + }else{ + for( pTmp=p->pAll; pTmp->pNextAll!=pPg; pTmp=pTmp->pNextAll ){} + pTmp->pNextAll = pPg->pNextAll; + } + nReleased += sqliteAllocSize(pPg); + sqliteFree(pPg); + } + + if( rc!=SQLITE_OK ){ + /* An error occured whilst writing to the database file or + ** journal in pager_recycle(). The error is not returned to the + ** caller of this function. Instead, set the Pager.errCode variable. + ** The error will be returned to the user (or users, in the case + ** of a shared pager cache) of the pager for which the error occured. + */ + assert( (rc&0xff)==SQLITE_IOERR || rc==SQLITE_FULL ); + assert( p->state>=PAGER_RESERVED ); + pager_error(p, rc); + } + } + } + + return nReleased; +} +#endif /* SQLITE_ENABLE_MEMORY_MANAGEMENT */ + +/* +** Acquire a page. +** +** A read lock on the disk file is obtained when the first page is acquired. +** This read lock is dropped when the last page is released. +** +** A _get works for any page number greater than 0. If the database +** file is smaller than the requested page, then no actual disk +** read occurs and the memory image of the page is initialized to +** all zeros. The extra data appended to a page is always initialized +** to zeros the first time a page is loaded into memory. +** +** The acquisition might fail for several reasons. In all cases, +** an appropriate error code is returned and *ppPage is set to NULL. +** +** See also sqlite3pager_lookup(). Both this routine and _lookup() attempt +** to find a page in the in-memory cache first. If the page is not already +** in memory, this routine goes to disk to read it in whereas _lookup() +** just returns 0. This routine acquires a read-lock the first time it +** has to go to disk, and could also playback an old journal if necessary. +** Since _lookup() never goes to disk, it never has to deal with locks +** or journal files. +*/ +int sqlite3pager_get(Pager *pPager, Pgno pgno, void **ppPage){ + PgHdr *pPg; + int rc; + + /* The maximum page number is 2^31. Return SQLITE_CORRUPT if a page + ** number greater than this, or zero, is requested. + */ + if( pgno>PAGER_MAX_PGNO || pgno==0 || pgno==PAGER_MJ_PGNO(pPager) ){ + return SQLITE_CORRUPT_BKPT; + } + + /* Make sure we have not hit any critical errors. + */ + assert( pPager!=0 ); + *ppPage = 0; + if( pPager->errCode && pPager->errCode!=SQLITE_FULL ){ + return pPager->errCode; + } + + /* If this is the first page accessed, then get a SHARED lock + ** on the database file. + */ + if( pPager->nRef==0 && !MEMDB ){ + if( !pPager->noReadlock ){ + rc = pager_wait_on_lock(pPager, SHARED_LOCK); + if( rc!=SQLITE_OK ){ + return pager_error(pPager, rc); + } + } + + /* If a journal file exists, and there is no RESERVED lock on the + ** database file, then it either needs to be played back or deleted. + */ + if( hasHotJournal(pPager) ){ + /* Get an EXCLUSIVE lock on the database file. At this point it is + ** important that a RESERVED lock is not obtained on the way to the + ** EXCLUSIVE lock. If it were, another process might open the + ** database file, detect the RESERVED lock, and conclude that the + ** database is safe to read while this process is still rolling it + ** back. + ** + ** Because the intermediate RESERVED lock is not requested, the + ** second process will get to this point in the code and fail to + ** obtain it's own EXCLUSIVE lock on the database file. + */ + rc = sqlite3OsLock(pPager->fd, EXCLUSIVE_LOCK); + if( rc!=SQLITE_OK ){ + pager_unlock(pPager); + return pager_error(pPager, rc); + } + pPager->state = PAGER_EXCLUSIVE; + + /* Open the journal for reading only. Return SQLITE_BUSY if + ** we are unable to open the journal file. + ** + ** The journal file does not need to be locked itself. The + ** journal file is never open unless the main database file holds + ** a write lock, so there is never any chance of two or more + ** processes opening the journal at the same time. + */ + rc = sqlite3OsOpenReadOnly(pPager->zJournal, &pPager->jfd); + if( rc!=SQLITE_OK ){ + pager_unlock(pPager); + return SQLITE_BUSY; + } + pPager->journalOpen = 1; + pPager->journalStarted = 0; + pPager->journalOff = 0; + pPager->setMaster = 0; + pPager->journalHdr = 0; + + /* Playback and delete the journal. Drop the database write + ** lock and reacquire the read lock. + */ + rc = pager_playback(pPager); + if( rc!=SQLITE_OK ){ + return pager_error(pPager, rc); + } + } + pPg = 0; + }else{ + /* Search for page in cache */ + pPg = pager_lookup(pPager, pgno); + if( MEMDB && pPager->state==PAGER_UNLOCK ){ + pPager->state = PAGER_SHARED; + } + } + if( pPg==0 ){ + /* The requested page is not in the page cache. */ + int h; + TEST_INCR(pPager->nMiss); + if( pPager->nPagemxPage || pPager->pFirst==0 || MEMDB ){ + /* Create a new page */ + if( pPager->nPage>=pPager->nHash ){ + pager_resize_hash_table(pPager, + pPager->nHash<256 ? 256 : pPager->nHash*2); + if( pPager->nHash==0 ){ + return SQLITE_NOMEM; + } + } + pPg = sqliteMallocRaw( sizeof(*pPg) + pPager->pageSize + + sizeof(u32) + pPager->nExtra + + MEMDB*sizeof(PgHistory) ); + if( pPg==0 ){ + return SQLITE_NOMEM; + } + memset(pPg, 0, sizeof(*pPg)); + if( MEMDB ){ + memset(PGHDR_TO_HIST(pPg, pPager), 0, sizeof(PgHistory)); + } + pPg->pPager = pPager; + pPg->pNextAll = pPager->pAll; + pPager->pAll = pPg; + pPager->nPage++; + if( pPager->nPage>pPager->nMaxPage ){ + assert( pPager->nMaxPage==(pPager->nPage-1) ); + pPager->nMaxPage++; + } + }else{ + rc = pager_recycle(pPager, 1, &pPg); + if( rc!=SQLITE_OK ){ + return rc; + } + assert(pPg) ; + } + pPg->pgno = pgno; + if( pPager->aInJournal && (int)pgno<=pPager->origDbSize ){ + sqlite3CheckMemory(pPager->aInJournal, pgno/8); + assert( pPager->journalOpen ); + pPg->inJournal = (pPager->aInJournal[pgno/8] & (1<<(pgno&7)))!=0; + pPg->needSync = 0; + }else{ + pPg->inJournal = 0; + pPg->needSync = 0; + } + if( pPager->aInStmt && (int)pgno<=pPager->stmtSize + && (pPager->aInStmt[pgno/8] & (1<<(pgno&7)))!=0 ){ + page_add_to_stmt_list(pPg); + }else{ + page_remove_from_stmt_list(pPg); + } + makeClean(pPg); + pPg->nRef = 1; + REFINFO(pPg); + + pPager->nRef++; + if( pPager->nExtra>0 ){ + memset(PGHDR_TO_EXTRA(pPg, pPager), 0, pPager->nExtra); + } + if( pPager->errCode ){ + sqlite3pager_unref(PGHDR_TO_DATA(pPg)); + rc = pPager->errCode; + return rc; + } + + /* Populate the page with data, either by reading from the database + ** file, or by setting the entire page to zero. + */ + if( sqlite3pager_pagecount(pPager)<(int)pgno || MEMDB ){ + memset(PGHDR_TO_DATA(pPg), 0, pPager->pageSize); + }else{ + assert( MEMDB==0 ); + rc = sqlite3OsSeek(pPager->fd, (pgno-1)*(i64)pPager->pageSize); + if( rc==SQLITE_OK ){ + rc = sqlite3OsRead(pPager->fd, PGHDR_TO_DATA(pPg), + pPager->pageSize); + } + TRACE3("FETCH %d page %d\n", PAGERID(pPager), pPg->pgno); + CODEC1(pPager, PGHDR_TO_DATA(pPg), pPg->pgno, 3); + if( rc!=SQLITE_OK && rc!=SQLITE_IOERR_SHORT_READ ){ + pPg->pgno = 0; + sqlite3pager_unref(PGHDR_TO_DATA(pPg)); + return rc; + }else{ + TEST_INCR(pPager->nRead); + } + } + + /* Link the page into the page hash table */ + h = pgno & (pPager->nHash-1); + assert( pgno!=0 ); + pPg->pNextHash = pPager->aHash[h]; + pPager->aHash[h] = pPg; + if( pPg->pNextHash ){ + assert( pPg->pNextHash->pPrevHash==0 ); + pPg->pNextHash->pPrevHash = pPg; + } + +#ifdef SQLITE_CHECK_PAGES + pPg->pageHash = pager_pagehash(pPg); +#endif + }else{ + /* The requested page is in the page cache. */ + TEST_INCR(pPager->nHit); + page_ref(pPg); + } + *ppPage = PGHDR_TO_DATA(pPg); + return SQLITE_OK; +} + +/* +** Acquire a page if it is already in the in-memory cache. Do +** not read the page from disk. Return a pointer to the page, +** or 0 if the page is not in cache. +** +** See also sqlite3pager_get(). The difference between this routine +** and sqlite3pager_get() is that _get() will go to the disk and read +** in the page if the page is not already in cache. This routine +** returns NULL if the page is not in cache or if a disk I/O error +** has ever happened. +*/ +void *sqlite3pager_lookup(Pager *pPager, Pgno pgno){ + PgHdr *pPg; + + assert( pPager!=0 ); + assert( pgno!=0 ); + if( pPager->errCode && pPager->errCode!=SQLITE_FULL ){ + return 0; + } + pPg = pager_lookup(pPager, pgno); + if( pPg==0 ) return 0; + page_ref(pPg); + return PGHDR_TO_DATA(pPg); +} + +/* +** Release a page. +** +** If the number of references to the page drop to zero, then the +** page is added to the LRU list. When all references to all pages +** are released, a rollback occurs and the lock on the database is +** removed. +*/ +int sqlite3pager_unref(void *pData){ + PgHdr *pPg; + + /* Decrement the reference count for this page + */ + pPg = DATA_TO_PGHDR(pData); + assert( pPg->nRef>0 ); + pPg->nRef--; + REFINFO(pPg); + + CHECK_PAGE(pPg); + + /* When the number of references to a page reach 0, call the + ** destructor and add the page to the freelist. + */ + if( pPg->nRef==0 ){ + Pager *pPager; + pPager = pPg->pPager; + pPg->pNextFree = 0; + pPg->pPrevFree = pPager->pLast; + pPager->pLast = pPg; + if( pPg->pPrevFree ){ + pPg->pPrevFree->pNextFree = pPg; + }else{ + pPager->pFirst = pPg; + } + if( pPg->needSync==0 && pPager->pFirstSynced==0 ){ + pPager->pFirstSynced = pPg; + } + if( pPager->xDestructor ){ + pPager->xDestructor(pData, pPager->pageSize); + } + + /* When all pages reach the freelist, drop the read lock from + ** the database file. + */ + pPager->nRef--; + assert( pPager->nRef>=0 ); + if( pPager->nRef==0 && !MEMDB ){ + pager_reset(pPager); + } + } + return SQLITE_OK; +} + +/* +** Create a journal file for pPager. There should already be a RESERVED +** or EXCLUSIVE lock on the database file when this routine is called. +** +** Return SQLITE_OK if everything. Return an error code and release the +** write lock if anything goes wrong. +*/ +static int pager_open_journal(Pager *pPager){ + int rc; + assert( !MEMDB ); + assert( pPager->state>=PAGER_RESERVED ); + assert( pPager->journalOpen==0 ); + assert( pPager->useJournal ); + assert( pPager->aInJournal==0 ); + sqlite3pager_pagecount(pPager); + pPager->aInJournal = sqliteMalloc( pPager->dbSize/8 + 1 ); + if( pPager->aInJournal==0 ){ + rc = SQLITE_NOMEM; + goto failed_to_open_journal; + } + rc = sqlite3OsOpenExclusive(pPager->zJournal, &pPager->jfd, + pPager->tempFile); + pPager->journalOff = 0; + pPager->setMaster = 0; + pPager->journalHdr = 0; + if( rc!=SQLITE_OK ){ + goto failed_to_open_journal; + } + sqlite3OsSetFullSync(pPager->jfd, pPager->full_fsync); + sqlite3OsSetFullSync(pPager->fd, pPager->full_fsync); + sqlite3OsOpenDirectory(pPager->jfd, pPager->zDirectory); + pPager->journalOpen = 1; + pPager->journalStarted = 0; + pPager->needSync = 0; + pPager->alwaysRollback = 0; + pPager->nRec = 0; + if( pPager->errCode ){ + rc = pPager->errCode; + goto failed_to_open_journal; + } + pPager->origDbSize = pPager->dbSize; + + rc = writeJournalHdr(pPager); + + if( pPager->stmtAutoopen && rc==SQLITE_OK ){ + rc = sqlite3pager_stmt_begin(pPager); + } + if( rc!=SQLITE_OK && rc!=SQLITE_NOMEM ){ + rc = pager_unwritelock(pPager); + if( rc==SQLITE_OK ){ + rc = SQLITE_FULL; + } + } + return rc; + +failed_to_open_journal: + sqliteFree(pPager->aInJournal); + pPager->aInJournal = 0; + if( rc==SQLITE_NOMEM ){ + /* If this was a malloc() failure, then we will not be closing the pager + ** file. So delete any journal file we may have just created. Otherwise, + ** the system will get confused, we have a read-lock on the file and a + ** mysterious journal has appeared in the filesystem. + */ + sqlite3OsDelete(pPager->zJournal); + }else{ + pager_reset(pPager); + } + return rc; +} + +/* +** Acquire a write-lock on the database. The lock is removed when +** the any of the following happen: +** +** * sqlite3pager_commit() is called. +** * sqlite3pager_rollback() is called. +** * sqlite3pager_close() is called. +** * sqlite3pager_unref() is called to on every outstanding page. +** +** The first parameter to this routine is a pointer to any open page of the +** database file. Nothing changes about the page - it is used merely to +** acquire a pointer to the Pager structure and as proof that there is +** already a read-lock on the database. +** +** The second parameter indicates how much space in bytes to reserve for a +** master journal file-name at the start of the journal when it is created. +** +** A journal file is opened if this is not a temporary file. For temporary +** files, the opening of the journal file is deferred until there is an +** actual need to write to the journal. +** +** If the database is already reserved for writing, this routine is a no-op. +** +** If exFlag is true, go ahead and get an EXCLUSIVE lock on the file +** immediately instead of waiting until we try to flush the cache. The +** exFlag is ignored if a transaction is already active. +*/ +int sqlite3pager_begin(void *pData, int exFlag){ + PgHdr *pPg = DATA_TO_PGHDR(pData); + Pager *pPager = pPg->pPager; + int rc = SQLITE_OK; + assert( pPg->nRef>0 ); + assert( pPager->state!=PAGER_UNLOCK ); + if( pPager->state==PAGER_SHARED ){ + assert( pPager->aInJournal==0 ); + if( MEMDB ){ + pPager->state = PAGER_EXCLUSIVE; + pPager->origDbSize = pPager->dbSize; + }else{ + rc = sqlite3OsLock(pPager->fd, RESERVED_LOCK); + if( rc==SQLITE_OK ){ + pPager->state = PAGER_RESERVED; + if( exFlag ){ + rc = pager_wait_on_lock(pPager, EXCLUSIVE_LOCK); + } + } + if( rc!=SQLITE_OK ){ + return rc; + } + pPager->dirtyCache = 0; + TRACE2("TRANSACTION %d\n", PAGERID(pPager)); + if( pPager->useJournal && !pPager->tempFile ){ + rc = pager_open_journal(pPager); + } + } + } + return rc; +} + +/* +** Make a page dirty. Set its dirty flag and add it to the dirty +** page list. +*/ +static void makeDirty(PgHdr *pPg){ + if( pPg->dirty==0 ){ + Pager *pPager = pPg->pPager; + pPg->dirty = 1; + pPg->pDirty = pPager->pDirty; + if( pPager->pDirty ){ + pPager->pDirty->pPrevDirty = pPg; + } + pPg->pPrevDirty = 0; + pPager->pDirty = pPg; + } +} + +/* +** Make a page clean. Clear its dirty bit and remove it from the +** dirty page list. +*/ +static void makeClean(PgHdr *pPg){ + if( pPg->dirty ){ + pPg->dirty = 0; + if( pPg->pDirty ){ + pPg->pDirty->pPrevDirty = pPg->pPrevDirty; + } + if( pPg->pPrevDirty ){ + pPg->pPrevDirty->pDirty = pPg->pDirty; + }else{ + pPg->pPager->pDirty = pPg->pDirty; + } + } +} + + +/* +** Mark a data page as writeable. The page is written into the journal +** if it is not there already. This routine must be called before making +** changes to a page. +** +** The first time this routine is called, the pager creates a new +** journal and acquires a RESERVED lock on the database. If the RESERVED +** lock could not be acquired, this routine returns SQLITE_BUSY. The +** calling routine must check for that return value and be careful not to +** change any page data until this routine returns SQLITE_OK. +** +** If the journal file could not be written because the disk is full, +** then this routine returns SQLITE_FULL and does an immediate rollback. +** All subsequent write attempts also return SQLITE_FULL until there +** is a call to sqlite3pager_commit() or sqlite3pager_rollback() to +** reset. +*/ +int sqlite3pager_write(void *pData){ + PgHdr *pPg = DATA_TO_PGHDR(pData); + Pager *pPager = pPg->pPager; + int rc = SQLITE_OK; + + /* Check for errors + */ + if( pPager->errCode ){ + return pPager->errCode; + } + if( pPager->readOnly ){ + return SQLITE_PERM; + } + + assert( !pPager->setMaster ); + + CHECK_PAGE(pPg); + + /* Mark the page as dirty. If the page has already been written + ** to the journal then we can return right away. + */ + makeDirty(pPg); + if( pPg->inJournal && (pPg->inStmt || pPager->stmtInUse==0) ){ + pPager->dirtyCache = 1; + }else{ + + /* If we get this far, it means that the page needs to be + ** written to the transaction journal or the ckeckpoint journal + ** or both. + ** + ** First check to see that the transaction journal exists and + ** create it if it does not. + */ + assert( pPager->state!=PAGER_UNLOCK ); + rc = sqlite3pager_begin(pData, 0); + if( rc!=SQLITE_OK ){ + return rc; + } + assert( pPager->state>=PAGER_RESERVED ); + if( !pPager->journalOpen && pPager->useJournal ){ + rc = pager_open_journal(pPager); + if( rc!=SQLITE_OK ) return rc; + } + assert( pPager->journalOpen || !pPager->useJournal ); + pPager->dirtyCache = 1; + + /* The transaction journal now exists and we have a RESERVED or an + ** EXCLUSIVE lock on the main database file. Write the current page to + ** the transaction journal if it is not there already. + */ + if( !pPg->inJournal && (pPager->useJournal || MEMDB) ){ + if( (int)pPg->pgno <= pPager->origDbSize ){ + int szPg; + if( MEMDB ){ + PgHistory *pHist = PGHDR_TO_HIST(pPg, pPager); + TRACE3("JOURNAL %d page %d\n", PAGERID(pPager), pPg->pgno); + assert( pHist->pOrig==0 ); + pHist->pOrig = sqliteMallocRaw( pPager->pageSize ); + if( pHist->pOrig ){ + memcpy(pHist->pOrig, PGHDR_TO_DATA(pPg), pPager->pageSize); + } + }else{ + u32 cksum, saved; + char *pData2, *pEnd; + /* We should never write to the journal file the page that + ** contains the database locks. The following assert verifies + ** that we do not. */ + assert( pPg->pgno!=PAGER_MJ_PGNO(pPager) ); + pData2 = CODEC2(pPager, pData, pPg->pgno, 7); + cksum = pager_cksum(pPager, (u8*)pData2); + pEnd = pData2 + pPager->pageSize; + pData2 -= 4; + saved = *(u32*)pEnd; + put32bits(pEnd, cksum); + szPg = pPager->pageSize+8; + put32bits(pData2, pPg->pgno); + rc = sqlite3OsWrite(pPager->jfd, pData2, szPg); + pPager->journalOff += szPg; + TRACE4("JOURNAL %d page %d needSync=%d\n", + PAGERID(pPager), pPg->pgno, pPg->needSync); + *(u32*)pEnd = saved; + + /* An error has occured writing to the journal file. The + ** transaction will be rolled back by the layer above. + */ + if( rc!=SQLITE_OK ){ + return rc; + } + + pPager->nRec++; + assert( pPager->aInJournal!=0 ); + pPager->aInJournal[pPg->pgno/8] |= 1<<(pPg->pgno&7); + pPg->needSync = !pPager->noSync; + if( pPager->stmtInUse ){ + pPager->aInStmt[pPg->pgno/8] |= 1<<(pPg->pgno&7); + page_add_to_stmt_list(pPg); + } + } + }else{ + pPg->needSync = !pPager->journalStarted && !pPager->noSync; + TRACE4("APPEND %d page %d needSync=%d\n", + PAGERID(pPager), pPg->pgno, pPg->needSync); + } + if( pPg->needSync ){ + pPager->needSync = 1; + } + pPg->inJournal = 1; + } + + /* If the statement journal is open and the page is not in it, + ** then write the current page to the statement journal. Note that + ** the statement journal format differs from the standard journal format + ** in that it omits the checksums and the header. + */ + if( pPager->stmtInUse && !pPg->inStmt && (int)pPg->pgno<=pPager->stmtSize ){ + assert( pPg->inJournal || (int)pPg->pgno>pPager->origDbSize ); + if( MEMDB ){ + PgHistory *pHist = PGHDR_TO_HIST(pPg, pPager); + assert( pHist->pStmt==0 ); + pHist->pStmt = sqliteMallocRaw( pPager->pageSize ); + if( pHist->pStmt ){ + memcpy(pHist->pStmt, PGHDR_TO_DATA(pPg), pPager->pageSize); + } + TRACE3("STMT-JOURNAL %d page %d\n", PAGERID(pPager), pPg->pgno); + }else{ + char *pData2 = CODEC2(pPager, pData, pPg->pgno, 7)-4; + put32bits(pData2, pPg->pgno); + rc = sqlite3OsWrite(pPager->stfd, pData2, pPager->pageSize+4); + TRACE3("STMT-JOURNAL %d page %d\n", PAGERID(pPager), pPg->pgno); + if( rc!=SQLITE_OK ){ + return rc; + } + pPager->stmtNRec++; + assert( pPager->aInStmt!=0 ); + pPager->aInStmt[pPg->pgno/8] |= 1<<(pPg->pgno&7); + } + page_add_to_stmt_list(pPg); + } + } + + /* Update the database size and return. + */ + assert( pPager->state>=PAGER_SHARED ); + if( pPager->dbSize<(int)pPg->pgno ){ + pPager->dbSize = pPg->pgno; + if( !MEMDB && pPager->dbSize==PENDING_BYTE/pPager->pageSize ){ + pPager->dbSize++; + } + } + return rc; +} + +/* +** Return TRUE if the page given in the argument was previously passed +** to sqlite3pager_write(). In other words, return TRUE if it is ok +** to change the content of the page. +*/ +#ifndef NDEBUG +int sqlite3pager_iswriteable(void *pData){ + PgHdr *pPg = DATA_TO_PGHDR(pData); + return pPg->dirty; +} +#endif + +#ifndef SQLITE_OMIT_VACUUM +/* +** Replace the content of a single page with the information in the third +** argument. +*/ +int sqlite3pager_overwrite(Pager *pPager, Pgno pgno, void *pData){ + void *pPage; + int rc; + + rc = sqlite3pager_get(pPager, pgno, &pPage); + if( rc==SQLITE_OK ){ + rc = sqlite3pager_write(pPage); + if( rc==SQLITE_OK ){ + memcpy(pPage, pData, pPager->pageSize); + } + sqlite3pager_unref(pPage); + } + return rc; +} +#endif + +/* +** A call to this routine tells the pager that it is not necessary to +** write the information on page "pgno" back to the disk, even though +** that page might be marked as dirty. +** +** The overlying software layer calls this routine when all of the data +** on the given page is unused. The pager marks the page as clean so +** that it does not get written to disk. +** +** Tests show that this optimization, together with the +** sqlite3pager_dont_rollback() below, more than double the speed +** of large INSERT operations and quadruple the speed of large DELETEs. +** +** When this routine is called, set the alwaysRollback flag to true. +** Subsequent calls to sqlite3pager_dont_rollback() for the same page +** will thereafter be ignored. This is necessary to avoid a problem +** where a page with data is added to the freelist during one part of +** a transaction then removed from the freelist during a later part +** of the same transaction and reused for some other purpose. When it +** is first added to the freelist, this routine is called. When reused, +** the dont_rollback() routine is called. But because the page contains +** critical data, we still need to be sure it gets rolled back in spite +** of the dont_rollback() call. +*/ +void sqlite3pager_dont_write(Pager *pPager, Pgno pgno){ + PgHdr *pPg; + + if( MEMDB ) return; + + pPg = pager_lookup(pPager, pgno); + assert( pPg!=0 ); /* We never call _dont_write unless the page is in mem */ + pPg->alwaysRollback = 1; + if( pPg->dirty && !pPager->stmtInUse ){ + assert( pPager->state>=PAGER_SHARED ); + if( pPager->dbSize==(int)pPg->pgno && pPager->origDbSizedbSize ){ + /* If this pages is the last page in the file and the file has grown + ** during the current transaction, then do NOT mark the page as clean. + ** When the database file grows, we must make sure that the last page + ** gets written at least once so that the disk file will be the correct + ** size. If you do not write this page and the size of the file + ** on the disk ends up being too small, that can lead to database + ** corruption during the next transaction. + */ + }else{ + TRACE3("DONT_WRITE page %d of %d\n", pgno, PAGERID(pPager)); + makeClean(pPg); +#ifdef SQLITE_CHECK_PAGES + pPg->pageHash = pager_pagehash(pPg); +#endif + } + } +} + +/* +** A call to this routine tells the pager that if a rollback occurs, +** it is not necessary to restore the data on the given page. This +** means that the pager does not have to record the given page in the +** rollback journal. +*/ +void sqlite3pager_dont_rollback(void *pData){ + PgHdr *pPg = DATA_TO_PGHDR(pData); + Pager *pPager = pPg->pPager; + + assert( pPager->state>=PAGER_RESERVED ); + if( pPager->journalOpen==0 ) return; + if( pPg->alwaysRollback || pPager->alwaysRollback || MEMDB ) return; + if( !pPg->inJournal && (int)pPg->pgno <= pPager->origDbSize ){ + assert( pPager->aInJournal!=0 ); + pPager->aInJournal[pPg->pgno/8] |= 1<<(pPg->pgno&7); + pPg->inJournal = 1; + if( pPager->stmtInUse ){ + pPager->aInStmt[pPg->pgno/8] |= 1<<(pPg->pgno&7); + page_add_to_stmt_list(pPg); + } + TRACE3("DONT_ROLLBACK page %d of %d\n", pPg->pgno, PAGERID(pPager)); + } + if( pPager->stmtInUse && !pPg->inStmt && (int)pPg->pgno<=pPager->stmtSize ){ + assert( pPg->inJournal || (int)pPg->pgno>pPager->origDbSize ); + assert( pPager->aInStmt!=0 ); + pPager->aInStmt[pPg->pgno/8] |= 1<<(pPg->pgno&7); + page_add_to_stmt_list(pPg); + } +} + + +/* +** Commit all changes to the database and release the write lock. +** +** If the commit fails for any reason, a rollback attempt is made +** and an error code is returned. If the commit worked, SQLITE_OK +** is returned. +*/ +int sqlite3pager_commit(Pager *pPager){ + int rc; + PgHdr *pPg; + + if( pPager->errCode ){ + return pPager->errCode; + } + if( pPager->statedirty = 0; + pPg->inJournal = 0; + pPg->inStmt = 0; + pPg->needSync = 0; + pPg->pPrevStmt = pPg->pNextStmt = 0; + pPg = pPg->pDirty; + } + pPager->pDirty = 0; +#ifndef NDEBUG + for(pPg=pPager->pAll; pPg; pPg=pPg->pNextAll){ + PgHistory *pHist = PGHDR_TO_HIST(pPg, pPager); + assert( !pPg->alwaysRollback ); + assert( !pHist->pOrig ); + assert( !pHist->pStmt ); + } +#endif + pPager->pStmt = 0; + pPager->state = PAGER_SHARED; + return SQLITE_OK; + } + if( pPager->dirtyCache==0 ){ + /* Exit early (without doing the time-consuming sqlite3OsSync() calls) + ** if there have been no changes to the database file. */ + assert( pPager->needSync==0 ); + rc = pager_unwritelock(pPager); + return rc; + } + assert( pPager->journalOpen ); + rc = sqlite3pager_sync(pPager, 0, 0); + if( rc==SQLITE_OK ){ + rc = pager_unwritelock(pPager); + } + return rc; +} + +/* +** Rollback all changes. The database falls back to PAGER_SHARED mode. +** All in-memory cache pages revert to their original data contents. +** The journal is deleted. +** +** This routine cannot fail unless some other process is not following +** the correct locking protocol (SQLITE_PROTOCOL) or unless some other +** process is writing trash into the journal file (SQLITE_CORRUPT) or +** unless a prior malloc() failed (SQLITE_NOMEM). Appropriate error +** codes are returned for all these occasions. Otherwise, +** SQLITE_OK is returned. +*/ +int sqlite3pager_rollback(Pager *pPager){ + int rc; + TRACE2("ROLLBACK %d\n", PAGERID(pPager)); + if( MEMDB ){ + PgHdr *p; + for(p=pPager->pAll; p; p=p->pNextAll){ + PgHistory *pHist; + assert( !p->alwaysRollback ); + if( !p->dirty ){ + assert( !((PgHistory *)PGHDR_TO_HIST(p, pPager))->pOrig ); + assert( !((PgHistory *)PGHDR_TO_HIST(p, pPager))->pStmt ); + continue; + } + + pHist = PGHDR_TO_HIST(p, pPager); + if( pHist->pOrig ){ + memcpy(PGHDR_TO_DATA(p), pHist->pOrig, pPager->pageSize); + TRACE3("ROLLBACK-PAGE %d of %d\n", p->pgno, PAGERID(pPager)); + }else{ + TRACE3("PAGE %d is clean on %d\n", p->pgno, PAGERID(pPager)); + } + clearHistory(pHist); + p->dirty = 0; + p->inJournal = 0; + p->inStmt = 0; + p->pPrevStmt = p->pNextStmt = 0; + if( pPager->xReiniter ){ + pPager->xReiniter(PGHDR_TO_DATA(p), pPager->pageSize); + } + } + pPager->pDirty = 0; + pPager->pStmt = 0; + pPager->dbSize = pPager->origDbSize; + memoryTruncate(pPager); + pPager->stmtInUse = 0; + pPager->state = PAGER_SHARED; + return SQLITE_OK; + } + + if( !pPager->dirtyCache || !pPager->journalOpen ){ + rc = pager_unwritelock(pPager); + return rc; + } + + if( pPager->errCode && pPager->errCode!=SQLITE_FULL ){ + if( pPager->state>=PAGER_EXCLUSIVE ){ + pager_playback(pPager); + } + return pPager->errCode; + } + if( pPager->state==PAGER_RESERVED ){ + int rc2; + rc = pager_reload_cache(pPager); + rc2 = pager_unwritelock(pPager); + if( rc==SQLITE_OK ){ + rc = rc2; + } + }else{ + rc = pager_playback(pPager); + } + pPager->dbSize = -1; + + /* If an error occurs during a ROLLBACK, we can no longer trust the pager + ** cache. So call pager_error() on the way out to make any error + ** persistent. + */ + return pager_error(pPager, rc); +} + +/* +** Return TRUE if the database file is opened read-only. Return FALSE +** if the database is (in theory) writable. +*/ +int sqlite3pager_isreadonly(Pager *pPager){ + return pPager->readOnly; +} + +/* +** Return the number of references to the pager. +*/ +int sqlite3pager_refcount(Pager *pPager){ + return pPager->nRef; +} + +#ifdef SQLITE_TEST +/* +** This routine is used for testing and analysis only. +*/ +int *sqlite3pager_stats(Pager *pPager){ + static int a[11]; + a[0] = pPager->nRef; + a[1] = pPager->nPage; + a[2] = pPager->mxPage; + a[3] = pPager->dbSize; + a[4] = pPager->state; + a[5] = pPager->errCode; + a[6] = pPager->nHit; + a[7] = pPager->nMiss; + a[8] = pPager->nOvfl; + a[9] = pPager->nRead; + a[10] = pPager->nWrite; + return a; +} +#endif + +/* +** Set the statement rollback point. +** +** This routine should be called with the transaction journal already +** open. A new statement journal is created that can be used to rollback +** changes of a single SQL command within a larger transaction. +*/ +int sqlite3pager_stmt_begin(Pager *pPager){ + int rc; + char zTemp[SQLITE_TEMPNAME_SIZE]; + assert( !pPager->stmtInUse ); + assert( pPager->state>=PAGER_SHARED ); + assert( pPager->dbSize>=0 ); + TRACE2("STMT-BEGIN %d\n", PAGERID(pPager)); + if( MEMDB ){ + pPager->stmtInUse = 1; + pPager->stmtSize = pPager->dbSize; + return SQLITE_OK; + } + if( !pPager->journalOpen ){ + pPager->stmtAutoopen = 1; + return SQLITE_OK; + } + assert( pPager->journalOpen ); + pPager->aInStmt = sqliteMalloc( pPager->dbSize/8 + 1 ); + if( pPager->aInStmt==0 ){ + /* sqlite3OsLock(pPager->fd, SHARED_LOCK); */ + return SQLITE_NOMEM; + } +#ifndef NDEBUG + rc = sqlite3OsFileSize(pPager->jfd, &pPager->stmtJSize); + if( rc ) goto stmt_begin_failed; + assert( pPager->stmtJSize == pPager->journalOff ); +#endif + pPager->stmtJSize = pPager->journalOff; + pPager->stmtSize = pPager->dbSize; + pPager->stmtHdrOff = 0; + pPager->stmtCksum = pPager->cksumInit; + if( !pPager->stmtOpen ){ + rc = sqlite3pager_opentemp(zTemp, &pPager->stfd); + if( rc ) goto stmt_begin_failed; + pPager->stmtOpen = 1; + pPager->stmtNRec = 0; + } + pPager->stmtInUse = 1; + return SQLITE_OK; + +stmt_begin_failed: + if( pPager->aInStmt ){ + sqliteFree(pPager->aInStmt); + pPager->aInStmt = 0; + } + return rc; +} + +/* +** Commit a statement. +*/ +int sqlite3pager_stmt_commit(Pager *pPager){ + if( pPager->stmtInUse ){ + PgHdr *pPg, *pNext; + TRACE2("STMT-COMMIT %d\n", PAGERID(pPager)); + if( !MEMDB ){ + sqlite3OsSeek(pPager->stfd, 0); + /* sqlite3OsTruncate(pPager->stfd, 0); */ + sqliteFree( pPager->aInStmt ); + pPager->aInStmt = 0; + } + for(pPg=pPager->pStmt; pPg; pPg=pNext){ + pNext = pPg->pNextStmt; + assert( pPg->inStmt ); + pPg->inStmt = 0; + pPg->pPrevStmt = pPg->pNextStmt = 0; + if( MEMDB ){ + PgHistory *pHist = PGHDR_TO_HIST(pPg, pPager); + sqliteFree(pHist->pStmt); + pHist->pStmt = 0; + } + } + pPager->stmtNRec = 0; + pPager->stmtInUse = 0; + pPager->pStmt = 0; + } + pPager->stmtAutoopen = 0; + return SQLITE_OK; +} + +/* +** Rollback a statement. +*/ +int sqlite3pager_stmt_rollback(Pager *pPager){ + int rc; + if( pPager->stmtInUse ){ + TRACE2("STMT-ROLLBACK %d\n", PAGERID(pPager)); + if( MEMDB ){ + PgHdr *pPg; + for(pPg=pPager->pStmt; pPg; pPg=pPg->pNextStmt){ + PgHistory *pHist = PGHDR_TO_HIST(pPg, pPager); + if( pHist->pStmt ){ + memcpy(PGHDR_TO_DATA(pPg), pHist->pStmt, pPager->pageSize); + sqliteFree(pHist->pStmt); + pHist->pStmt = 0; + } + } + pPager->dbSize = pPager->stmtSize; + memoryTruncate(pPager); + rc = SQLITE_OK; + }else{ + rc = pager_stmt_playback(pPager); + } + sqlite3pager_stmt_commit(pPager); + }else{ + rc = SQLITE_OK; + } + pPager->stmtAutoopen = 0; + return rc; +} + +/* +** Return the full pathname of the database file. +*/ +const char *sqlite3pager_filename(Pager *pPager){ + return pPager->zFilename; +} + +/* +** Return the directory of the database file. +*/ +const char *sqlite3pager_dirname(Pager *pPager){ + return pPager->zDirectory; +} + +/* +** Return the full pathname of the journal file. +*/ +const char *sqlite3pager_journalname(Pager *pPager){ + return pPager->zJournal; +} + +/* +** Return true if fsync() calls are disabled for this pager. Return FALSE +** if fsync()s are executed normally. +*/ +int sqlite3pager_nosync(Pager *pPager){ + return pPager->noSync; +} + +/* +** Set the codec for this pager +*/ +void sqlite3pager_set_codec( + Pager *pPager, + void *(*xCodec)(void*,void*,Pgno,int), + void *pCodecArg +){ + pPager->xCodec = xCodec; + pPager->pCodecArg = pCodecArg; +} + +/* +** This routine is called to increment the database file change-counter, +** stored at byte 24 of the pager file. +*/ +static int pager_incr_changecounter(Pager *pPager){ + void *pPage; + PgHdr *pPgHdr; + u32 change_counter; + int rc; + + /* Open page 1 of the file for writing. */ + rc = sqlite3pager_get(pPager, 1, &pPage); + if( rc!=SQLITE_OK ) return rc; + rc = sqlite3pager_write(pPage); + if( rc!=SQLITE_OK ) return rc; + + /* Read the current value at byte 24. */ + pPgHdr = DATA_TO_PGHDR(pPage); + change_counter = retrieve32bits(pPgHdr, 24); + + /* Increment the value just read and write it back to byte 24. */ + change_counter++; + put32bits(((char*)PGHDR_TO_DATA(pPgHdr))+24, change_counter); + + /* Release the page reference. */ + sqlite3pager_unref(pPage); + return SQLITE_OK; +} + +/* +** Sync the database file for the pager pPager. zMaster points to the name +** of a master journal file that should be written into the individual +** journal file. zMaster may be NULL, which is interpreted as no master +** journal (a single database transaction). +** +** This routine ensures that the journal is synced, all dirty pages written +** to the database file and the database file synced. The only thing that +** remains to commit the transaction is to delete the journal file (or +** master journal file if specified). +** +** Note that if zMaster==NULL, this does not overwrite a previous value +** passed to an sqlite3pager_sync() call. +** +** If parameter nTrunc is non-zero, then the pager file is truncated to +** nTrunc pages (this is used by auto-vacuum databases). +*/ +int sqlite3pager_sync(Pager *pPager, const char *zMaster, Pgno nTrunc){ + int rc = SQLITE_OK; + + TRACE4("DATABASE SYNC: File=%s zMaster=%s nTrunc=%d\n", + pPager->zFilename, zMaster, nTrunc); + + /* If this is an in-memory db, or no pages have been written to, or this + ** function has already been called, it is a no-op. + */ + if( pPager->state!=PAGER_SYNCED && !MEMDB && pPager->dirtyCache ){ + PgHdr *pPg; + assert( pPager->journalOpen ); + + /* If a master journal file name has already been written to the + ** journal file, then no sync is required. This happens when it is + ** written, then the process fails to upgrade from a RESERVED to an + ** EXCLUSIVE lock. The next time the process tries to commit the + ** transaction the m-j name will have already been written. + */ + if( !pPager->setMaster ){ + rc = pager_incr_changecounter(pPager); + if( rc!=SQLITE_OK ) goto sync_exit; +#ifndef SQLITE_OMIT_AUTOVACUUM + if( nTrunc!=0 ){ + /* If this transaction has made the database smaller, then all pages + ** being discarded by the truncation must be written to the journal + ** file. + */ + Pgno i; + void *pPage; + int iSkip = PAGER_MJ_PGNO(pPager); + for( i=nTrunc+1; i<=pPager->origDbSize; i++ ){ + if( !(pPager->aInJournal[i/8] & (1<<(i&7))) && i!=iSkip ){ + rc = sqlite3pager_get(pPager, i, &pPage); + if( rc!=SQLITE_OK ) goto sync_exit; + rc = sqlite3pager_write(pPage); + sqlite3pager_unref(pPage); + if( rc!=SQLITE_OK ) goto sync_exit; + } + } + } +#endif + rc = writeMasterJournal(pPager, zMaster); + if( rc!=SQLITE_OK ) goto sync_exit; + rc = syncJournal(pPager); + if( rc!=SQLITE_OK ) goto sync_exit; + } + +#ifndef SQLITE_OMIT_AUTOVACUUM + if( nTrunc!=0 ){ + rc = sqlite3pager_truncate(pPager, nTrunc); + if( rc!=SQLITE_OK ) goto sync_exit; + } +#endif + + /* Write all dirty pages to the database file */ + pPg = pager_get_all_dirty_pages(pPager); + rc = pager_write_pagelist(pPg); + if( rc!=SQLITE_OK ) goto sync_exit; + + /* Sync the database file. */ + if( !pPager->noSync ){ + rc = sqlite3OsSync(pPager->fd, 0); + } + + pPager->state = PAGER_SYNCED; + }else if( MEMDB && nTrunc!=0 ){ + rc = sqlite3pager_truncate(pPager, nTrunc); + } + +sync_exit: + return rc; +} + +#ifndef SQLITE_OMIT_AUTOVACUUM +/* +** Move the page identified by pData to location pgno in the file. +** +** There must be no references to the current page pgno. If current page +** pgno is not already in the rollback journal, it is not written there by +** by this routine. The same applies to the page pData refers to on entry to +** this routine. +** +** References to the page refered to by pData remain valid. Updating any +** meta-data associated with page pData (i.e. data stored in the nExtra bytes +** allocated along with the page) is the responsibility of the caller. +** +** A transaction must be active when this routine is called. It used to be +** required that a statement transaction was not active, but this restriction +** has been removed (CREATE INDEX needs to move a page when a statement +** transaction is active). +*/ +int sqlite3pager_movepage(Pager *pPager, void *pData, Pgno pgno){ + PgHdr *pPg = DATA_TO_PGHDR(pData); + PgHdr *pPgOld; + int h; + Pgno needSyncPgno = 0; + + assert( pPg->nRef>0 ); + + TRACE5("MOVE %d page %d (needSync=%d) moves to %d\n", + PAGERID(pPager), pPg->pgno, pPg->needSync, pgno); + + if( pPg->needSync ){ + needSyncPgno = pPg->pgno; + assert( pPg->inJournal ); + assert( pPg->dirty ); + assert( pPager->needSync ); + } + + /* Unlink pPg from it's hash-chain */ + unlinkHashChain(pPager, pPg); + + /* If the cache contains a page with page-number pgno, remove it + ** from it's hash chain. Also, if the PgHdr.needSync was set for + ** page pgno before the 'move' operation, it needs to be retained + ** for the page moved there. + */ + pPgOld = pager_lookup(pPager, pgno); + if( pPgOld ){ + assert( pPgOld->nRef==0 ); + unlinkHashChain(pPager, pPgOld); + makeClean(pPgOld); + if( pPgOld->needSync ){ + assert( pPgOld->inJournal ); + pPg->inJournal = 1; + pPg->needSync = 1; + assert( pPager->needSync ); + } + } + + /* Change the page number for pPg and insert it into the new hash-chain. */ + assert( pgno!=0 ); + pPg->pgno = pgno; + h = pgno & (pPager->nHash-1); + if( pPager->aHash[h] ){ + assert( pPager->aHash[h]->pPrevHash==0 ); + pPager->aHash[h]->pPrevHash = pPg; + } + pPg->pNextHash = pPager->aHash[h]; + pPager->aHash[h] = pPg; + pPg->pPrevHash = 0; + + makeDirty(pPg); + pPager->dirtyCache = 1; + + if( needSyncPgno ){ + /* If needSyncPgno is non-zero, then the journal file needs to be + ** sync()ed before any data is written to database file page needSyncPgno. + ** Currently, no such page exists in the page-cache and the + ** Pager.aInJournal bit has been set. This needs to be remedied by loading + ** the page into the pager-cache and setting the PgHdr.needSync flag. + ** + ** The sqlite3pager_get() call may cause the journal to sync. So make + ** sure the Pager.needSync flag is set too. + */ + int rc; + void *pNeedSync; + assert( pPager->needSync ); + rc = sqlite3pager_get(pPager, needSyncPgno, &pNeedSync); + if( rc!=SQLITE_OK ) return rc; + pPager->needSync = 1; + DATA_TO_PGHDR(pNeedSync)->needSync = 1; + DATA_TO_PGHDR(pNeedSync)->inJournal = 1; + makeDirty(DATA_TO_PGHDR(pNeedSync)); + sqlite3pager_unref(pNeedSync); + } + + return SQLITE_OK; +} +#endif + +#if defined(SQLITE_DEBUG) || defined(SQLITE_TEST) +/* +** Return the current state of the file lock for the given pager. +** The return value is one of NO_LOCK, SHARED_LOCK, RESERVED_LOCK, +** PENDING_LOCK, or EXCLUSIVE_LOCK. +*/ +int sqlite3pager_lockstate(Pager *pPager){ + return sqlite3OsLockState(pPager->fd); +} +#endif + +#ifdef SQLITE_DEBUG +/* +** Print a listing of all referenced pages and their ref count. +*/ +void sqlite3pager_refdump(Pager *pPager){ + PgHdr *pPg; + for(pPg=pPager->pAll; pPg; pPg=pPg->pNextAll){ + if( pPg->nRef<=0 ) continue; + sqlite3DebugPrintf("PAGE %3d addr=%p nRef=%d\n", + pPg->pgno, PGHDR_TO_DATA(pPg), pPg->nRef); + } +} +#endif + +#endif /* SQLITE_OMIT_DISKIO */ diff --git a/src/dep/src/sqlite/pager.h b/src/dep/src/sqlite/pager.h new file mode 100644 index 0000000..ca57114 --- /dev/null +++ b/src/dep/src/sqlite/pager.h @@ -0,0 +1,123 @@ +/* +** 2001 September 15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This header file defines the interface that the sqlite page cache +** subsystem. The page cache subsystem reads and writes a file a page +** at a time and provides a journal for rollback. +** +** @(#) $Id: pager.h,v 1.52 2006/11/06 21:20:26 drh Exp $ +*/ + +#ifndef _PAGER_H_ +#define _PAGER_H_ + +/* +** The default size of a database page. +*/ +#ifndef SQLITE_DEFAULT_PAGE_SIZE +# define SQLITE_DEFAULT_PAGE_SIZE 1024 +#endif + +/* Maximum page size. The upper bound on this value is 32768. This a limit +** imposed by necessity of storing the value in a 2-byte unsigned integer +** and the fact that the page size must be a power of 2. +** +** This value is used to initialize certain arrays on the stack at +** various places in the code. On embedded machines where stack space +** is limited and the flexibility of having large pages is not needed, +** it makes good sense to reduce the maximum page size to something more +** reasonable, like 1024. +*/ +#ifndef SQLITE_MAX_PAGE_SIZE +# define SQLITE_MAX_PAGE_SIZE 32768 +#endif + +/* +** Maximum number of pages in one database. +*/ +#define SQLITE_MAX_PAGE 1073741823 + +/* +** The type used to represent a page number. The first page in a file +** is called page 1. 0 is used to represent "not a page". +*/ +typedef unsigned int Pgno; + +/* +** Each open file is managed by a separate instance of the "Pager" structure. +*/ +typedef struct Pager Pager; + +/* +** Allowed values for the flags parameter to sqlite3pager_open(). +** +** NOTE: This values must match the corresponding BTREE_ values in btree.h. +*/ +#define PAGER_OMIT_JOURNAL 0x0001 /* Do not use a rollback journal */ +#define PAGER_NO_READLOCK 0x0002 /* Omit readlocks on readonly files */ + + +/* +** See source code comments for a detailed description of the following +** routines: +*/ +int sqlite3pager_open(Pager **ppPager, const char *zFilename, + int nExtra, int flags); +void sqlite3pager_set_busyhandler(Pager*, BusyHandler *pBusyHandler); +void sqlite3pager_set_destructor(Pager*, void(*)(void*,int)); +void sqlite3pager_set_reiniter(Pager*, void(*)(void*,int)); +int sqlite3pager_set_pagesize(Pager*, int); +int sqlite3pager_read_fileheader(Pager*, int, unsigned char*); +void sqlite3pager_set_cachesize(Pager*, int); +int sqlite3pager_close(Pager *pPager); +int sqlite3pager_get(Pager *pPager, Pgno pgno, void **ppPage); +void *sqlite3pager_lookup(Pager *pPager, Pgno pgno); +int sqlite3pager_ref(void*); +int sqlite3pager_unref(void*); +Pgno sqlite3pager_pagenumber(void*); +int sqlite3pager_write(void*); +int sqlite3pager_iswriteable(void*); +int sqlite3pager_overwrite(Pager *pPager, Pgno pgno, void*); +int sqlite3pager_pagecount(Pager*); +int sqlite3pager_truncate(Pager*,Pgno); +int sqlite3pager_begin(void*, int exFlag); +int sqlite3pager_commit(Pager*); +int sqlite3pager_sync(Pager*,const char *zMaster, Pgno); +int sqlite3pager_rollback(Pager*); +int sqlite3pager_isreadonly(Pager*); +int sqlite3pager_stmt_begin(Pager*); +int sqlite3pager_stmt_commit(Pager*); +int sqlite3pager_stmt_rollback(Pager*); +void sqlite3pager_dont_rollback(void*); +void sqlite3pager_dont_write(Pager*, Pgno); +int sqlite3pager_refcount(Pager*); +int *sqlite3pager_stats(Pager*); +void sqlite3pager_set_safety_level(Pager*,int,int); +const char *sqlite3pager_filename(Pager*); +const char *sqlite3pager_dirname(Pager*); +const char *sqlite3pager_journalname(Pager*); +int sqlite3pager_nosync(Pager*); +int sqlite3pager_rename(Pager*, const char *zNewName); +void sqlite3pager_set_codec(Pager*,void*(*)(void*,void*,Pgno,int),void*); +int sqlite3pager_movepage(Pager*,void*,Pgno); +int sqlite3pager_reset(Pager*); +int sqlite3pager_release_memory(int); + +#if defined(SQLITE_DEBUG) || defined(SQLITE_TEST) +int sqlite3pager_lockstate(Pager*); +#endif + +#ifdef SQLITE_TEST +void sqlite3pager_refdump(Pager*); +int pager3_refinfo_enable; +#endif + +#endif /* _PAGER_H_ */ diff --git a/src/dep/src/sqlite/parse.c b/src/dep/src/sqlite/parse.c new file mode 100644 index 0000000..8fd6609 --- /dev/null +++ b/src/dep/src/sqlite/parse.c @@ -0,0 +1,3411 @@ +/* Driver template for the LEMON parser generator. +** The author disclaims copyright to this source code. +*/ +/* First off, code is include which follows the "include" declaration +** in the input file. */ +#include +#line 56 "parse.y" + +#include "sqliteInt.h" +#include "parse.h" + +/* +** An instance of this structure holds information about the +** LIMIT clause of a SELECT statement. +*/ +struct LimitVal { + Expr *pLimit; /* The LIMIT expression. NULL if there is no limit */ + Expr *pOffset; /* The OFFSET expression. NULL if there is none */ +}; + +/* +** An instance of this structure is used to store the LIKE, +** GLOB, NOT LIKE, and NOT GLOB operators. +*/ +struct LikeOp { + Token eOperator; /* "like" or "glob" or "regexp" */ + int not; /* True if the NOT keyword is present */ +}; + +/* +** An instance of the following structure describes the event of a +** TRIGGER. "a" is the event type, one of TK_UPDATE, TK_INSERT, +** TK_DELETE, or TK_INSTEAD. If the event is of the form +** +** UPDATE ON (a,b,c) +** +** Then the "b" IdList records the list "a,b,c". +*/ +struct TrigEvent { int a; IdList * b; }; + +/* +** An instance of this structure holds the ATTACH key and the key type. +*/ +struct AttachKey { int type; Token key; }; + +#line 48 "parse.c" +/* Next is all token values, in a form suitable for use by makeheaders. +** This section will be null unless lemon is run with the -m switch. +*/ +/* +** These constants (all generated automatically by the parser generator) +** specify the various kinds of tokens (terminals) that the parser +** understands. +** +** Each symbol here is a terminal symbol in the grammar. +*/ +/* Make sure the INTERFACE macro is defined. +*/ +#ifndef INTERFACE +# define INTERFACE 1 +#endif +/* The next thing included is series of defines which control +** various aspects of the generated parser. +** YYCODETYPE is the data type used for storing terminal +** and nonterminal numbers. "unsigned char" is +** used if there are fewer than 250 terminals +** and nonterminals. "int" is used otherwise. +** YYNOCODE is a number of type YYCODETYPE which corresponds +** to no legal terminal or nonterminal number. This +** number is used to fill in empty slots of the hash +** table. +** YYFALLBACK If defined, this indicates that one or more tokens +** have fall-back values which should be used if the +** original value of the token will not parse. +** YYACTIONTYPE is the data type used for storing terminal +** and nonterminal numbers. "unsigned char" is +** used if there are fewer than 250 rules and +** states combined. "int" is used otherwise. +** sqlite3ParserTOKENTYPE is the data type used for minor tokens given +** directly to the parser from the tokenizer. +** YYMINORTYPE is the data type used for all minor tokens. +** This is typically a union of many types, one of +** which is sqlite3ParserTOKENTYPE. The entry in the union +** for base tokens is called "yy0". +** YYSTACKDEPTH is the maximum depth of the parser's stack. +** sqlite3ParserARG_SDECL A static variable declaration for the %extra_argument +** sqlite3ParserARG_PDECL A parameter declaration for the %extra_argument +** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser +** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser +** YYNSTATE the combined number of states. +** YYNRULE the number of rules in the grammar +** YYERRORSYMBOL is the code number of the error symbol. If not +** defined, then do no error processing. +*/ +#define YYCODETYPE unsigned char +#define YYNOCODE 248 +#define YYACTIONTYPE unsigned short int +#define YYWILDCARD 60 +#define sqlite3ParserTOKENTYPE Token +typedef union { + sqlite3ParserTOKENTYPE yy0; + int yy46; + struct LikeOp yy72; + Expr* yy172; + ExprList* yy174; + Select* yy219; + struct LimitVal yy234; + TriggerStep* yy243; + struct TrigEvent yy370; + SrcList* yy373; + Expr * yy386; + struct {int value; int mask;} yy405; + Token yy410; + IdList* yy432; + int yy495; +} YYMINORTYPE; +#define YYSTACKDEPTH 100 +#define sqlite3ParserARG_SDECL Parse *pParse; +#define sqlite3ParserARG_PDECL ,Parse *pParse +#define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse +#define sqlite3ParserARG_STORE yypParser->pParse = pParse +#define YYNSTATE 586 +#define YYNRULE 310 +#define YYERRORSYMBOL 139 +#define YYERRSYMDT yy495 +#define YYFALLBACK 1 +#define YY_NO_ACTION (YYNSTATE+YYNRULE+2) +#define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) +#define YY_ERROR_ACTION (YYNSTATE+YYNRULE) + +/* Next are that tables used to determine what action to take based on the +** current state and lookahead token. These tables are used to implement +** functions that take a state number and lookahead value and return an +** action integer. +** +** Suppose the action integer is N. Then the action is determined as +** follows +** +** 0 <= N < YYNSTATE Shift N. That is, push the lookahead +** token onto the stack and goto state N. +** +** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. +** +** N == YYNSTATE+YYNRULE A syntax error has occurred. +** +** N == YYNSTATE+YYNRULE+1 The parser accepts its input. +** +** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused +** slots in the yy_action[] table. +** +** The action table is constructed as a single large table named yy_action[]. +** Given state S and lookahead X, the action is computed as +** +** yy_action[ yy_shift_ofst[S] + X ] +** +** If the index value yy_shift_ofst[S]+X is out of range or if the value +** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] +** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table +** and that yy_default[S] should be used instead. +** +** The formula above is for computing the action when the lookahead is +** a terminal symbol. If the lookahead is a non-terminal (as occurs after +** a reduce action) then the yy_reduce_ofst[] array is used in place of +** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of +** YY_SHIFT_USE_DFLT. +** +** The following are the tables generated in this section: +** +** yy_action[] A single table containing all actions. +** yy_lookahead[] A table containing the lookahead for each entry in +** yy_action. Used to detect hash collisions. +** yy_shift_ofst[] For each state, the offset into yy_action for +** shifting terminals. +** yy_reduce_ofst[] For each state, the offset into yy_action for +** shifting non-terminals after a reduce. +** yy_default[] Default action for each state. +*/ +static const YYACTIONTYPE yy_action[] = { + /* 0 */ 290, 67, 300, 69, 150, 168, 205, 420, 61, 61, + /* 10 */ 61, 61, 66, 63, 63, 63, 63, 64, 64, 65, + /* 20 */ 65, 65, 66, 430, 322, 164, 433, 439, 68, 63, + /* 30 */ 63, 63, 63, 64, 64, 65, 65, 65, 66, 64, + /* 40 */ 64, 65, 65, 65, 66, 60, 58, 296, 443, 444, + /* 50 */ 440, 440, 62, 62, 61, 61, 61, 61, 487, 63, + /* 60 */ 63, 63, 63, 64, 64, 65, 65, 65, 66, 290, + /* 70 */ 318, 67, 420, 69, 150, 79, 160, 114, 240, 341, + /* 80 */ 245, 342, 172, 249, 897, 120, 585, 190, 522, 2, + /* 90 */ 250, 571, 411, 35, 223, 433, 439, 532, 20, 57, + /* 100 */ 388, 385, 63, 63, 63, 63, 64, 64, 65, 65, + /* 110 */ 65, 66, 290, 489, 60, 58, 296, 443, 444, 440, + /* 120 */ 440, 62, 62, 61, 61, 61, 61, 393, 63, 63, + /* 130 */ 63, 63, 64, 64, 65, 65, 65, 66, 433, 439, + /* 140 */ 91, 314, 389, 473, 230, 529, 504, 204, 168, 55, + /* 150 */ 420, 197, 528, 407, 196, 428, 208, 60, 58, 296, + /* 160 */ 443, 444, 440, 440, 62, 62, 61, 61, 61, 61, + /* 170 */ 170, 63, 63, 63, 63, 64, 64, 65, 65, 65, + /* 180 */ 66, 290, 479, 428, 208, 412, 109, 81, 412, 432, + /* 190 */ 406, 284, 394, 395, 430, 521, 164, 318, 517, 67, + /* 200 */ 530, 69, 150, 567, 412, 492, 493, 433, 439, 145, + /* 210 */ 146, 583, 888, 376, 888, 420, 171, 156, 488, 411, + /* 220 */ 40, 337, 415, 19, 290, 140, 60, 58, 296, 443, + /* 230 */ 444, 440, 440, 62, 62, 61, 61, 61, 61, 384, + /* 240 */ 63, 63, 63, 63, 64, 64, 65, 65, 65, 66, + /* 250 */ 433, 439, 580, 546, 493, 417, 417, 417, 549, 332, + /* 260 */ 234, 67, 460, 69, 150, 583, 887, 290, 887, 60, + /* 270 */ 58, 296, 443, 444, 440, 440, 62, 62, 61, 61, + /* 280 */ 61, 61, 318, 63, 63, 63, 63, 64, 64, 65, + /* 290 */ 65, 65, 66, 433, 439, 177, 548, 393, 343, 346, + /* 300 */ 347, 515, 490, 271, 411, 40, 580, 473, 432, 224, + /* 310 */ 348, 408, 60, 58, 296, 443, 444, 440, 440, 62, + /* 320 */ 62, 61, 61, 61, 61, 523, 63, 63, 63, 63, + /* 330 */ 64, 64, 65, 65, 65, 66, 303, 488, 300, 290, + /* 340 */ 75, 415, 274, 483, 272, 232, 236, 370, 267, 266, + /* 350 */ 318, 65, 65, 65, 66, 173, 393, 148, 205, 434, + /* 360 */ 435, 231, 394, 395, 177, 433, 439, 343, 346, 347, + /* 370 */ 293, 515, 411, 34, 417, 417, 417, 378, 477, 348, + /* 380 */ 248, 437, 438, 78, 60, 58, 296, 443, 444, 440, + /* 390 */ 440, 62, 62, 61, 61, 61, 61, 205, 63, 63, + /* 400 */ 63, 63, 64, 64, 65, 65, 65, 66, 290, 436, + /* 410 */ 377, 292, 486, 114, 240, 341, 245, 342, 172, 249, + /* 420 */ 318, 394, 395, 273, 318, 177, 250, 456, 343, 346, + /* 430 */ 347, 329, 151, 566, 433, 439, 295, 423, 424, 298, + /* 440 */ 348, 387, 411, 34, 2, 360, 411, 34, 469, 363, + /* 450 */ 247, 568, 569, 60, 58, 296, 443, 444, 440, 440, + /* 460 */ 62, 62, 61, 61, 61, 61, 412, 63, 63, 63, + /* 470 */ 63, 64, 64, 65, 65, 65, 66, 290, 522, 155, + /* 480 */ 515, 503, 21, 452, 318, 299, 420, 404, 20, 297, + /* 490 */ 321, 423, 424, 482, 318, 453, 318, 457, 1, 207, + /* 500 */ 335, 457, 393, 433, 439, 9, 411, 34, 454, 393, + /* 510 */ 494, 147, 531, 207, 543, 216, 411, 48, 411, 48, + /* 520 */ 495, 393, 60, 58, 296, 443, 444, 440, 440, 62, + /* 530 */ 62, 61, 61, 61, 61, 351, 63, 63, 63, 63, + /* 540 */ 64, 64, 65, 65, 65, 66, 290, 318, 447, 334, + /* 550 */ 253, 420, 371, 207, 452, 149, 448, 579, 289, 248, + /* 560 */ 393, 457, 173, 309, 235, 310, 453, 394, 395, 411, + /* 570 */ 27, 420, 433, 439, 394, 395, 405, 520, 367, 454, + /* 580 */ 324, 328, 446, 446, 509, 517, 394, 395, 473, 412, + /* 590 */ 545, 60, 58, 296, 443, 444, 440, 440, 62, 62, + /* 600 */ 61, 61, 61, 61, 510, 63, 63, 63, 63, 64, + /* 610 */ 64, 65, 65, 65, 66, 290, 192, 338, 292, 324, + /* 620 */ 90, 446, 446, 250, 522, 394, 395, 238, 319, 393, + /* 630 */ 822, 477, 318, 576, 20, 324, 420, 446, 446, 411, + /* 640 */ 3, 433, 439, 324, 217, 446, 446, 586, 388, 385, + /* 650 */ 412, 515, 470, 515, 411, 28, 515, 302, 290, 581, + /* 660 */ 60, 58, 296, 443, 444, 440, 440, 62, 62, 61, + /* 670 */ 61, 61, 61, 219, 63, 63, 63, 63, 64, 64, + /* 680 */ 65, 65, 65, 66, 433, 439, 304, 481, 305, 167, + /* 690 */ 156, 307, 358, 392, 394, 395, 396, 397, 398, 582, + /* 700 */ 188, 290, 339, 60, 58, 296, 443, 444, 440, 440, + /* 710 */ 62, 62, 61, 61, 61, 61, 318, 63, 63, 63, + /* 720 */ 63, 64, 64, 65, 65, 65, 66, 433, 439, 410, + /* 730 */ 248, 261, 248, 409, 412, 248, 367, 255, 411, 23, + /* 740 */ 539, 357, 539, 261, 290, 261, 60, 70, 296, 443, + /* 750 */ 444, 440, 440, 62, 62, 61, 61, 61, 61, 368, + /* 760 */ 63, 63, 63, 63, 64, 64, 65, 65, 65, 66, + /* 770 */ 433, 439, 381, 541, 115, 261, 259, 540, 257, 261, + /* 780 */ 364, 174, 175, 176, 262, 261, 556, 290, 5, 359, + /* 790 */ 58, 296, 443, 444, 440, 440, 62, 62, 61, 61, + /* 800 */ 61, 61, 218, 63, 63, 63, 63, 64, 64, 65, + /* 810 */ 65, 65, 66, 433, 439, 477, 558, 205, 466, 468, + /* 820 */ 559, 206, 383, 261, 261, 261, 560, 152, 54, 467, + /* 830 */ 369, 312, 119, 124, 296, 443, 444, 440, 440, 62, + /* 840 */ 62, 61, 61, 61, 61, 416, 63, 63, 63, 63, + /* 850 */ 64, 64, 65, 65, 65, 66, 71, 325, 318, 4, + /* 860 */ 318, 412, 318, 294, 275, 375, 277, 318, 74, 318, + /* 870 */ 76, 320, 71, 325, 318, 4, 308, 498, 499, 294, + /* 880 */ 411, 32, 411, 53, 411, 24, 154, 320, 327, 411, + /* 890 */ 51, 411, 96, 161, 410, 318, 411, 93, 409, 432, + /* 900 */ 318, 421, 318, 22, 327, 426, 426, 179, 318, 501, + /* 910 */ 143, 318, 468, 508, 507, 432, 318, 411, 98, 73, + /* 920 */ 72, 182, 411, 99, 411, 110, 323, 71, 316, 317, + /* 930 */ 411, 111, 415, 411, 16, 73, 72, 480, 411, 97, + /* 940 */ 318, 412, 330, 71, 316, 317, 71, 325, 415, 4, + /* 950 */ 318, 205, 318, 294, 318, 412, 455, 318, 12, 537, + /* 960 */ 538, 320, 411, 33, 462, 417, 417, 417, 418, 419, + /* 970 */ 11, 463, 411, 94, 411, 52, 411, 112, 327, 411, + /* 980 */ 113, 417, 417, 417, 418, 419, 11, 620, 241, 432, + /* 990 */ 158, 475, 318, 169, 429, 220, 221, 222, 101, 458, + /* 1000 */ 242, 318, 441, 318, 484, 318, 12, 318, 472, 73, + /* 1010 */ 72, 202, 476, 279, 411, 25, 246, 71, 316, 317, + /* 1020 */ 280, 318, 415, 411, 36, 411, 37, 411, 26, 411, + /* 1030 */ 38, 318, 199, 505, 548, 513, 252, 124, 124, 198, + /* 1040 */ 318, 506, 201, 411, 39, 318, 511, 350, 318, 124, + /* 1050 */ 544, 318, 124, 411, 41, 417, 417, 417, 418, 419, + /* 1060 */ 11, 512, 411, 42, 524, 254, 318, 411, 43, 200, + /* 1070 */ 411, 29, 318, 411, 30, 552, 318, 169, 553, 318, + /* 1080 */ 88, 318, 256, 318, 185, 374, 276, 266, 411, 44, + /* 1090 */ 258, 291, 318, 260, 411, 45, 205, 265, 411, 46, + /* 1100 */ 318, 411, 47, 411, 31, 411, 10, 563, 578, 88, + /* 1110 */ 288, 355, 362, 365, 411, 49, 366, 268, 269, 18, + /* 1120 */ 380, 270, 411, 50, 555, 565, 278, 379, 281, 282, + /* 1130 */ 575, 142, 225, 402, 425, 427, 326, 504, 551, 461, + /* 1140 */ 465, 562, 159, 391, 399, 243, 400, 514, 516, 401, + /* 1150 */ 8, 413, 226, 315, 81, 333, 227, 80, 331, 228, + /* 1160 */ 345, 229, 77, 56, 209, 166, 459, 233, 210, 407, + /* 1170 */ 464, 121, 82, 336, 340, 491, 496, 301, 244, 501, + /* 1180 */ 497, 500, 502, 102, 518, 519, 414, 285, 352, 525, + /* 1190 */ 180, 526, 527, 533, 237, 181, 474, 239, 354, 478, + /* 1200 */ 211, 286, 184, 214, 535, 183, 215, 356, 85, 361, + /* 1210 */ 117, 186, 128, 547, 189, 372, 554, 373, 311, 561, + /* 1220 */ 572, 129, 130, 131, 138, 573, 95, 132, 577, 263, + /* 1230 */ 137, 134, 574, 390, 403, 621, 536, 213, 622, 100, + /* 1240 */ 162, 59, 163, 422, 431, 442, 445, 139, 89, 449, + /* 1250 */ 153, 165, 6, 450, 451, 122, 471, 13, 7, 92, + /* 1260 */ 123, 12, 485, 157, 212, 108, 83, 103, 104, 116, + /* 1270 */ 344, 251, 84, 105, 349, 17, 178, 353, 242, 534, + /* 1280 */ 141, 125, 306, 187, 106, 169, 126, 287, 542, 264, + /* 1290 */ 118, 550, 127, 191, 313, 14, 86, 193, 194, 135, + /* 1300 */ 557, 195, 133, 564, 136, 15, 107, 570, 382, 283, + /* 1310 */ 144, 203, 386, 87, 584, +}; +static const YYCODETYPE yy_lookahead[] = { + /* 0 */ 16, 218, 16, 220, 221, 21, 111, 23, 70, 71, + /* 10 */ 72, 73, 84, 75, 76, 77, 78, 79, 80, 81, + /* 20 */ 82, 83, 84, 162, 163, 164, 42, 43, 74, 75, + /* 30 */ 76, 77, 78, 79, 80, 81, 82, 83, 84, 79, + /* 40 */ 80, 81, 82, 83, 84, 61, 62, 63, 64, 65, + /* 50 */ 66, 67, 68, 69, 70, 71, 72, 73, 170, 75, + /* 60 */ 76, 77, 78, 79, 80, 81, 82, 83, 84, 16, + /* 70 */ 148, 218, 88, 220, 221, 22, 90, 91, 92, 93, + /* 80 */ 94, 95, 96, 97, 140, 141, 142, 22, 148, 145, + /* 90 */ 104, 238, 170, 171, 154, 42, 43, 157, 158, 46, + /* 100 */ 1, 2, 75, 76, 77, 78, 79, 80, 81, 82, + /* 110 */ 83, 84, 16, 170, 61, 62, 63, 64, 65, 66, + /* 120 */ 67, 68, 69, 70, 71, 72, 73, 23, 75, 76, + /* 130 */ 77, 78, 79, 80, 81, 82, 83, 84, 42, 43, + /* 140 */ 44, 143, 144, 162, 222, 177, 178, 149, 21, 19, + /* 150 */ 23, 156, 184, 23, 156, 79, 80, 61, 62, 63, + /* 160 */ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + /* 170 */ 156, 75, 76, 77, 78, 79, 80, 81, 82, 83, + /* 180 */ 84, 16, 201, 79, 80, 190, 21, 122, 190, 59, + /* 190 */ 169, 159, 88, 89, 162, 163, 164, 148, 177, 218, + /* 200 */ 182, 220, 221, 99, 190, 186, 187, 42, 43, 79, + /* 210 */ 80, 19, 20, 215, 22, 88, 202, 203, 88, 170, + /* 220 */ 171, 207, 92, 19, 16, 21, 61, 62, 63, 64, + /* 230 */ 65, 66, 67, 68, 69, 70, 71, 72, 73, 241, + /* 240 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + /* 250 */ 42, 43, 60, 186, 187, 125, 126, 127, 11, 210, + /* 260 */ 211, 218, 219, 220, 221, 19, 20, 16, 22, 61, + /* 270 */ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + /* 280 */ 72, 73, 148, 75, 76, 77, 78, 79, 80, 81, + /* 290 */ 82, 83, 84, 42, 43, 90, 49, 23, 93, 94, + /* 300 */ 95, 148, 161, 14, 170, 171, 60, 162, 59, 191, + /* 310 */ 105, 170, 61, 62, 63, 64, 65, 66, 67, 68, + /* 320 */ 69, 70, 71, 72, 73, 182, 75, 76, 77, 78, + /* 330 */ 79, 80, 81, 82, 83, 84, 183, 88, 16, 16, + /* 340 */ 132, 92, 53, 20, 55, 211, 201, 100, 101, 102, + /* 350 */ 148, 81, 82, 83, 84, 43, 23, 22, 111, 42, + /* 360 */ 43, 148, 88, 89, 90, 42, 43, 93, 94, 95, + /* 370 */ 151, 148, 170, 171, 125, 126, 127, 91, 148, 105, + /* 380 */ 227, 64, 65, 132, 61, 62, 63, 64, 65, 66, + /* 390 */ 67, 68, 69, 70, 71, 72, 73, 111, 75, 76, + /* 400 */ 77, 78, 79, 80, 81, 82, 83, 84, 16, 92, + /* 410 */ 124, 99, 20, 91, 92, 93, 94, 95, 96, 97, + /* 420 */ 148, 88, 89, 134, 148, 90, 104, 225, 93, 94, + /* 430 */ 95, 187, 156, 148, 42, 43, 165, 166, 167, 209, + /* 440 */ 105, 142, 170, 171, 145, 226, 170, 171, 115, 230, + /* 450 */ 227, 166, 167, 61, 62, 63, 64, 65, 66, 67, + /* 460 */ 68, 69, 70, 71, 72, 73, 190, 75, 76, 77, + /* 470 */ 78, 79, 80, 81, 82, 83, 84, 16, 148, 148, + /* 480 */ 148, 20, 19, 12, 148, 213, 23, 157, 158, 213, + /* 490 */ 165, 166, 167, 20, 148, 24, 148, 225, 19, 228, + /* 500 */ 148, 225, 23, 42, 43, 19, 170, 171, 37, 23, + /* 510 */ 39, 181, 182, 228, 18, 183, 170, 171, 170, 171, + /* 520 */ 49, 23, 61, 62, 63, 64, 65, 66, 67, 68, + /* 530 */ 69, 70, 71, 72, 73, 16, 75, 76, 77, 78, + /* 540 */ 79, 80, 81, 82, 83, 84, 16, 148, 20, 213, + /* 550 */ 20, 88, 56, 228, 12, 156, 20, 244, 245, 227, + /* 560 */ 23, 225, 43, 217, 148, 217, 24, 88, 89, 170, + /* 570 */ 171, 23, 42, 43, 88, 89, 168, 169, 148, 37, + /* 580 */ 107, 39, 109, 110, 30, 177, 88, 89, 162, 190, + /* 590 */ 94, 61, 62, 63, 64, 65, 66, 67, 68, 69, + /* 600 */ 70, 71, 72, 73, 50, 75, 76, 77, 78, 79, + /* 610 */ 80, 81, 82, 83, 84, 16, 156, 148, 99, 107, + /* 620 */ 21, 109, 110, 104, 148, 88, 89, 201, 148, 23, + /* 630 */ 134, 148, 148, 157, 158, 107, 88, 109, 110, 170, + /* 640 */ 171, 42, 43, 107, 214, 109, 110, 0, 1, 2, + /* 650 */ 190, 148, 115, 148, 170, 171, 148, 103, 16, 20, + /* 660 */ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + /* 670 */ 71, 72, 73, 146, 75, 76, 77, 78, 79, 80, + /* 680 */ 81, 82, 83, 84, 42, 43, 183, 81, 183, 202, + /* 690 */ 203, 183, 209, 148, 88, 89, 7, 8, 9, 60, + /* 700 */ 156, 16, 81, 61, 62, 63, 64, 65, 66, 67, + /* 710 */ 68, 69, 70, 71, 72, 73, 148, 75, 76, 77, + /* 720 */ 78, 79, 80, 81, 82, 83, 84, 42, 43, 108, + /* 730 */ 227, 148, 227, 112, 190, 227, 148, 14, 170, 171, + /* 740 */ 100, 101, 102, 148, 16, 148, 61, 62, 63, 64, + /* 750 */ 65, 66, 67, 68, 69, 70, 71, 72, 73, 215, + /* 760 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + /* 770 */ 42, 43, 189, 25, 148, 148, 53, 29, 55, 148, + /* 780 */ 236, 100, 101, 102, 189, 148, 189, 16, 192, 41, + /* 790 */ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + /* 800 */ 72, 73, 214, 75, 76, 77, 78, 79, 80, 81, + /* 810 */ 82, 83, 84, 42, 43, 148, 189, 111, 22, 22, + /* 820 */ 189, 193, 239, 148, 148, 148, 189, 156, 200, 204, + /* 830 */ 124, 242, 243, 22, 63, 64, 65, 66, 67, 68, + /* 840 */ 69, 70, 71, 72, 73, 148, 75, 76, 77, 78, + /* 850 */ 79, 80, 81, 82, 83, 84, 16, 17, 148, 19, + /* 860 */ 148, 190, 148, 23, 189, 189, 189, 148, 131, 148, + /* 870 */ 133, 31, 16, 17, 148, 19, 209, 7, 8, 23, + /* 880 */ 170, 171, 170, 171, 170, 171, 89, 31, 48, 170, + /* 890 */ 171, 170, 171, 19, 108, 148, 170, 171, 112, 59, + /* 900 */ 148, 20, 148, 22, 48, 125, 126, 156, 148, 98, + /* 910 */ 114, 148, 115, 91, 92, 59, 148, 170, 171, 79, + /* 920 */ 80, 156, 170, 171, 170, 171, 16, 87, 88, 89, + /* 930 */ 170, 171, 92, 170, 171, 79, 80, 81, 170, 171, + /* 940 */ 148, 190, 148, 87, 88, 89, 16, 17, 92, 19, + /* 950 */ 148, 111, 148, 23, 148, 190, 20, 148, 22, 51, + /* 960 */ 52, 31, 170, 171, 27, 125, 126, 127, 128, 129, + /* 970 */ 130, 34, 170, 171, 170, 171, 170, 171, 48, 170, + /* 980 */ 171, 125, 126, 127, 128, 129, 130, 113, 92, 59, + /* 990 */ 5, 20, 148, 22, 162, 10, 11, 12, 13, 148, + /* 1000 */ 104, 148, 92, 148, 20, 148, 22, 148, 148, 79, + /* 1010 */ 80, 26, 148, 28, 170, 171, 148, 87, 88, 89, + /* 1020 */ 35, 148, 92, 170, 171, 170, 171, 170, 171, 170, + /* 1030 */ 171, 148, 47, 148, 49, 20, 20, 22, 22, 54, + /* 1040 */ 148, 179, 57, 170, 171, 148, 179, 20, 148, 22, + /* 1050 */ 20, 148, 22, 170, 171, 125, 126, 127, 128, 129, + /* 1060 */ 130, 179, 170, 171, 148, 148, 148, 170, 171, 19, + /* 1070 */ 170, 171, 148, 170, 171, 20, 148, 22, 20, 148, + /* 1080 */ 22, 148, 148, 148, 232, 100, 101, 102, 170, 171, + /* 1090 */ 148, 106, 148, 148, 170, 171, 111, 148, 170, 171, + /* 1100 */ 148, 170, 171, 170, 171, 170, 171, 20, 20, 22, + /* 1110 */ 22, 233, 148, 148, 170, 171, 148, 148, 148, 69, + /* 1120 */ 135, 148, 170, 171, 148, 148, 148, 148, 148, 148, + /* 1130 */ 148, 192, 194, 150, 229, 229, 224, 178, 195, 173, + /* 1140 */ 173, 195, 6, 147, 147, 173, 147, 173, 173, 147, + /* 1150 */ 22, 190, 195, 155, 122, 119, 196, 120, 117, 197, + /* 1160 */ 174, 198, 131, 121, 223, 113, 153, 97, 212, 23, + /* 1170 */ 161, 153, 99, 116, 99, 172, 172, 40, 172, 98, + /* 1180 */ 180, 174, 172, 19, 161, 180, 199, 175, 15, 172, + /* 1190 */ 152, 172, 172, 153, 205, 152, 206, 205, 153, 206, + /* 1200 */ 212, 175, 153, 212, 153, 152, 212, 38, 131, 153, + /* 1210 */ 61, 152, 19, 185, 185, 153, 195, 15, 153, 195, + /* 1220 */ 33, 188, 188, 188, 216, 153, 160, 188, 138, 234, + /* 1230 */ 216, 185, 153, 1, 20, 113, 235, 176, 113, 176, + /* 1240 */ 113, 19, 113, 20, 20, 92, 108, 19, 237, 11, + /* 1250 */ 19, 22, 118, 20, 20, 19, 115, 22, 118, 237, + /* 1260 */ 20, 22, 20, 113, 44, 240, 19, 19, 19, 32, + /* 1270 */ 44, 20, 19, 19, 44, 231, 96, 16, 104, 17, + /* 1280 */ 21, 99, 36, 99, 19, 22, 45, 5, 45, 134, + /* 1290 */ 243, 1, 103, 123, 246, 19, 69, 114, 14, 103, + /* 1300 */ 17, 116, 114, 124, 123, 19, 14, 20, 58, 137, + /* 1310 */ 19, 136, 3, 69, 4, +}; +#define YY_SHIFT_USE_DFLT (-106) +#define YY_SHIFT_MAX 386 +static const short yy_shift_ofst[] = { + /* 0 */ 99, 840, 985, -16, 840, 930, 930, 930, 274, -105, + /* 10 */ 96, 930, 930, 930, 930, 930, -46, 247, 104, 498, + /* 20 */ 548, 76, 76, 53, 165, 208, 251, 323, 392, 461, + /* 30 */ 530, 599, 642, 685, 642, 642, 642, 642, 642, 642, + /* 40 */ 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, + /* 50 */ 642, 728, 771, 771, 856, 930, 930, 930, 930, 930, + /* 60 */ 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, + /* 70 */ 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, + /* 80 */ 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, + /* 90 */ 930, 930, 930, -62, -62, -14, 27, 27, -40, 270, + /* 100 */ 519, 496, 498, 498, 498, 498, 498, 498, 498, 548, + /* 110 */ -72, -106, -106, -106, 130, 322, 471, 471, 192, 246, + /* 120 */ 647, 127, 498, 127, 498, 498, 498, 498, 498, 498, + /* 130 */ 498, 498, 498, 498, 498, 498, 498, 286, 706, -105, + /* 140 */ -105, -105, -106, -106, -106, 249, 249, 335, 205, 473, + /* 150 */ 479, 528, 536, 542, 333, 537, 486, 606, 689, 498, + /* 160 */ 498, 621, 498, 498, 463, 498, 498, 797, 498, 498, + /* 170 */ 512, 797, 498, 498, 554, 554, 554, 498, 498, 512, + /* 180 */ 498, 498, 512, 498, 748, 640, 498, 498, 512, 498, + /* 190 */ 498, 498, 512, 498, 498, 498, 512, 512, 498, 498, + /* 200 */ 498, 498, 498, 498, 204, 786, 796, 780, 780, 737, + /* 210 */ 937, 937, 937, 312, 937, 937, 811, 65, 65, 1136, + /* 220 */ 1136, 1136, 1136, 1128, -105, 1032, 1036, 1037, 1041, 1042, + /* 230 */ 1031, 1052, 1070, 1146, 1070, 1052, 1073, 1057, 1073, 1057, + /* 240 */ 1075, 1075, 1137, 1075, 1081, 1075, 1164, 1070, 1070, 1146, + /* 250 */ 1137, 1075, 1075, 1075, 1164, 1173, 1052, 1173, 1052, 1173, + /* 260 */ 1052, 1052, 1169, 1077, 1173, 1052, 1149, 1149, 1193, 1032, + /* 270 */ 1052, 1202, 1202, 1202, 1202, 1032, 1149, 1193, 1052, 1187, + /* 280 */ 1187, 1052, 1052, 1090, -106, -106, -106, -106, -106, -106, + /* 290 */ 317, 289, 681, 723, 874, 881, 910, 936, 971, 984, + /* 300 */ 896, 870, 822, 1015, 1016, 1027, 908, 1030, 1055, 1058, + /* 310 */ 1087, 1050, 1088, 639, 1232, 1214, 1122, 1125, 1127, 1129, + /* 320 */ 1222, 1223, 1224, 1153, 1138, 1228, 1238, 1231, 1233, 1229, + /* 330 */ 1234, 1134, 1235, 1140, 1239, 1141, 1236, 1240, 1150, 1242, + /* 340 */ 1237, 1220, 1247, 1226, 1248, 1251, 1249, 1253, 1230, 1254, + /* 350 */ 1180, 1174, 1261, 1262, 1259, 1182, 1246, 1241, 1263, 1243, + /* 360 */ 1155, 1184, 1265, 1282, 1290, 1189, 1227, 1244, 1170, 1276, + /* 370 */ 1183, 1284, 1185, 1283, 1188, 1196, 1181, 1286, 1179, 1287, + /* 380 */ 1292, 1250, 1175, 1172, 1291, 1309, 1310, +}; +#define YY_REDUCE_USE_DFLT (-218) +#define YY_REDUCE_MAX 289 +static const short yy_reduce_ofst[] = { + /* 0 */ -56, 276, -2, -19, 399, 272, 49, 336, 330, 14, + /* 10 */ -147, -78, 202, 134, 346, 348, 43, 544, 285, -60, + /* 20 */ 32, 271, 325, -217, -217, -217, -217, -217, -217, -217, + /* 30 */ -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, + /* 40 */ -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, + /* 50 */ -217, -217, -217, -217, 469, 484, 568, 710, 712, 714, + /* 60 */ 719, 721, 726, 747, 752, 754, 760, 763, 768, 792, + /* 70 */ 802, 804, 806, 809, 844, 853, 855, 857, 859, 873, + /* 80 */ 883, 892, 897, 900, 903, 918, 924, 928, 931, 933, + /* 90 */ 935, 944, 952, -217, -217, 408, -217, -217, -217, -217, + /* 100 */ -32, 219, 153, 332, 503, 505, 508, 583, 476, -139, + /* 110 */ -217, -217, -217, -217, 141, 21, 19, 67, 313, 313, + /* 120 */ 299, 145, 230, 426, 223, 595, 483, 430, 667, 597, + /* 130 */ 627, 631, 637, 675, 676, 588, 677, -5, 460, 671, + /* 140 */ 751, 765, 628, 487, 589, -112, -57, 18, 143, 118, + /* 150 */ 213, 118, 118, 244, 331, 352, 416, 480, 527, 545, + /* 160 */ 626, 596, 480, 697, 832, 794, 851, 625, 860, 864, + /* 170 */ 118, 625, 868, 885, 862, 867, 882, 916, 917, 118, + /* 180 */ 934, 942, 118, 945, 852, 878, 949, 964, 118, 965, + /* 190 */ 968, 969, 118, 970, 973, 976, 118, 118, 977, 978, + /* 200 */ 979, 980, 981, 982, 983, 939, 938, 905, 906, 912, + /* 210 */ 966, 967, 972, 959, 974, 975, 986, 943, 946, 996, + /* 220 */ 997, 999, 1002, 998, 961, 957, 960, 962, 963, 987, + /* 230 */ 941, 1013, 956, 1009, 988, 1018, 989, 990, 992, 993, + /* 240 */ 1003, 1004, 1000, 1006, 1007, 1010, 1012, 991, 994, 1023, + /* 250 */ 1005, 1017, 1019, 1020, 1026, 1038, 1040, 1043, 1045, 1053, + /* 260 */ 1049, 1051, 995, 1001, 1059, 1056, 1028, 1029, 1008, 1021, + /* 270 */ 1062, 1033, 1034, 1035, 1039, 1024, 1046, 1014, 1065, 1011, + /* 280 */ 1022, 1072, 1079, 1025, 1066, 1061, 1063, 1044, 1047, 1048, +}; +static const YYACTIONTYPE yy_default[] = { + /* 0 */ 592, 819, 896, 707, 896, 819, 896, 819, 896, 711, + /* 10 */ 870, 815, 819, 896, 896, 896, 790, 896, 841, 896, + /* 20 */ 623, 841, 841, 742, 896, 896, 896, 896, 896, 896, + /* 30 */ 896, 896, 743, 896, 818, 814, 810, 812, 811, 744, + /* 40 */ 731, 740, 747, 723, 855, 749, 750, 756, 757, 871, + /* 50 */ 874, 778, 796, 777, 896, 896, 896, 896, 896, 896, + /* 60 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, + /* 70 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, + /* 80 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, + /* 90 */ 896, 896, 896, 780, 801, 616, 779, 789, 781, 782, + /* 100 */ 676, 611, 896, 896, 896, 896, 896, 896, 896, 896, + /* 110 */ 783, 784, 797, 798, 896, 896, 896, 896, 896, 896, + /* 120 */ 592, 707, 896, 707, 896, 896, 896, 896, 896, 896, + /* 130 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, + /* 140 */ 896, 896, 701, 711, 889, 896, 896, 667, 896, 896, + /* 150 */ 896, 896, 896, 896, 896, 896, 896, 896, 599, 597, + /* 160 */ 896, 699, 896, 896, 625, 896, 896, 709, 896, 896, + /* 170 */ 714, 715, 896, 896, 896, 896, 896, 896, 896, 613, + /* 180 */ 896, 896, 688, 896, 847, 896, 896, 896, 862, 896, + /* 190 */ 896, 896, 860, 896, 896, 896, 690, 752, 829, 896, + /* 200 */ 896, 875, 877, 896, 896, 699, 708, 896, 896, 813, + /* 210 */ 734, 734, 734, 646, 734, 734, 649, 746, 746, 596, + /* 220 */ 596, 596, 596, 666, 896, 746, 737, 739, 727, 741, + /* 230 */ 896, 716, 735, 896, 735, 716, 724, 726, 724, 726, + /* 240 */ 678, 678, 663, 678, 649, 678, 823, 735, 735, 896, + /* 250 */ 663, 678, 678, 678, 823, 608, 716, 608, 716, 608, + /* 260 */ 716, 716, 851, 854, 608, 716, 680, 680, 758, 746, + /* 270 */ 716, 687, 687, 687, 687, 746, 680, 758, 716, 873, + /* 280 */ 873, 716, 716, 882, 633, 651, 651, 857, 889, 894, + /* 290 */ 896, 896, 896, 896, 765, 896, 896, 896, 896, 896, + /* 300 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, + /* 310 */ 896, 836, 896, 896, 896, 896, 770, 766, 896, 767, + /* 320 */ 896, 896, 896, 896, 693, 896, 896, 896, 896, 896, + /* 330 */ 896, 896, 728, 896, 738, 896, 896, 896, 896, 896, + /* 340 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, + /* 350 */ 896, 896, 896, 896, 896, 896, 896, 849, 850, 896, + /* 360 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, + /* 370 */ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, + /* 380 */ 896, 881, 896, 896, 884, 593, 896, 587, 590, 589, + /* 390 */ 591, 595, 598, 620, 621, 622, 600, 601, 602, 603, + /* 400 */ 604, 605, 606, 612, 614, 632, 634, 618, 636, 697, + /* 410 */ 698, 762, 691, 692, 696, 764, 768, 769, 771, 772, + /* 420 */ 619, 626, 627, 630, 631, 837, 839, 838, 840, 629, + /* 430 */ 628, 773, 776, 785, 786, 788, 794, 800, 803, 787, + /* 440 */ 792, 793, 795, 799, 802, 694, 695, 806, 808, 809, + /* 450 */ 863, 864, 865, 866, 867, 804, 816, 817, 717, 807, + /* 460 */ 791, 729, 732, 733, 736, 730, 700, 710, 719, 720, + /* 470 */ 721, 722, 705, 706, 712, 725, 760, 761, 713, 702, + /* 480 */ 703, 704, 805, 763, 774, 775, 637, 638, 770, 639, + /* 490 */ 640, 641, 679, 682, 683, 684, 642, 661, 664, 665, + /* 500 */ 643, 650, 644, 645, 652, 653, 654, 657, 658, 659, + /* 510 */ 660, 655, 656, 824, 825, 827, 826, 647, 648, 662, + /* 520 */ 635, 624, 617, 668, 671, 672, 673, 674, 675, 677, + /* 530 */ 669, 670, 615, 607, 609, 718, 843, 852, 853, 848, + /* 540 */ 844, 845, 846, 610, 820, 821, 681, 754, 755, 842, + /* 550 */ 856, 858, 759, 859, 861, 886, 685, 686, 689, 828, + /* 560 */ 868, 745, 748, 751, 753, 830, 831, 832, 833, 834, + /* 570 */ 835, 869, 872, 876, 878, 879, 880, 883, 885, 890, + /* 580 */ 891, 892, 895, 893, 594, 588, +}; +#define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) + +/* The next table maps tokens into fallback tokens. If a construct +** like the following: +** +** %fallback ID X Y Z. +** +** appears in the grammer, then ID becomes a fallback token for X, Y, +** and Z. Whenever one of the tokens X, Y, or Z is input to the parser +** but it does not parse, the type of the token is changed to ID and +** the parse is retried before an error is thrown. +*/ +#ifdef YYFALLBACK +static const YYCODETYPE yyFallback[] = { + 0, /* $ => nothing */ + 0, /* SEMI => nothing */ + 23, /* EXPLAIN => ID */ + 23, /* QUERY => ID */ + 23, /* PLAN => ID */ + 23, /* BEGIN => ID */ + 0, /* TRANSACTION => nothing */ + 23, /* DEFERRED => ID */ + 23, /* IMMEDIATE => ID */ + 23, /* EXCLUSIVE => ID */ + 0, /* COMMIT => nothing */ + 23, /* END => ID */ + 0, /* ROLLBACK => nothing */ + 0, /* CREATE => nothing */ + 0, /* TABLE => nothing */ + 23, /* IF => ID */ + 0, /* NOT => nothing */ + 0, /* EXISTS => nothing */ + 23, /* TEMP => ID */ + 0, /* LP => nothing */ + 0, /* RP => nothing */ + 0, /* AS => nothing */ + 0, /* COMMA => nothing */ + 0, /* ID => nothing */ + 23, /* ABORT => ID */ + 23, /* AFTER => ID */ + 23, /* ANALYZE => ID */ + 23, /* ASC => ID */ + 23, /* ATTACH => ID */ + 23, /* BEFORE => ID */ + 23, /* CASCADE => ID */ + 23, /* CAST => ID */ + 23, /* CONFLICT => ID */ + 23, /* DATABASE => ID */ + 23, /* DESC => ID */ + 23, /* DETACH => ID */ + 23, /* EACH => ID */ + 23, /* FAIL => ID */ + 23, /* FOR => ID */ + 23, /* IGNORE => ID */ + 23, /* INITIALLY => ID */ + 23, /* INSTEAD => ID */ + 23, /* LIKE_KW => ID */ + 23, /* MATCH => ID */ + 23, /* KEY => ID */ + 23, /* OF => ID */ + 23, /* OFFSET => ID */ + 23, /* PRAGMA => ID */ + 23, /* RAISE => ID */ + 23, /* REPLACE => ID */ + 23, /* RESTRICT => ID */ + 23, /* ROW => ID */ + 23, /* STATEMENT => ID */ + 23, /* TRIGGER => ID */ + 23, /* VACUUM => ID */ + 23, /* VIEW => ID */ + 23, /* VIRTUAL => ID */ + 23, /* REINDEX => ID */ + 23, /* RENAME => ID */ + 23, /* CTIME_KW => ID */ + 0, /* ANY => nothing */ + 0, /* OR => nothing */ + 0, /* AND => nothing */ + 0, /* IS => nothing */ + 0, /* BETWEEN => nothing */ + 0, /* IN => nothing */ + 0, /* ISNULL => nothing */ + 0, /* NOTNULL => nothing */ + 0, /* NE => nothing */ + 0, /* EQ => nothing */ + 0, /* GT => nothing */ + 0, /* LE => nothing */ + 0, /* LT => nothing */ + 0, /* GE => nothing */ + 0, /* ESCAPE => nothing */ + 0, /* BITAND => nothing */ + 0, /* BITOR => nothing */ + 0, /* LSHIFT => nothing */ + 0, /* RSHIFT => nothing */ + 0, /* PLUS => nothing */ + 0, /* MINUS => nothing */ + 0, /* STAR => nothing */ + 0, /* SLASH => nothing */ + 0, /* REM => nothing */ + 0, /* CONCAT => nothing */ + 0, /* UMINUS => nothing */ + 0, /* UPLUS => nothing */ + 0, /* BITNOT => nothing */ + 0, /* STRING => nothing */ + 0, /* JOIN_KW => nothing */ + 0, /* CONSTRAINT => nothing */ + 0, /* DEFAULT => nothing */ + 0, /* NULL => nothing */ + 0, /* PRIMARY => nothing */ + 0, /* UNIQUE => nothing */ + 0, /* CHECK => nothing */ + 0, /* REFERENCES => nothing */ + 0, /* COLLATE => nothing */ + 0, /* AUTOINCR => nothing */ + 0, /* ON => nothing */ + 0, /* DELETE => nothing */ + 0, /* UPDATE => nothing */ + 0, /* INSERT => nothing */ + 0, /* SET => nothing */ + 0, /* DEFERRABLE => nothing */ + 0, /* FOREIGN => nothing */ + 0, /* DROP => nothing */ + 0, /* UNION => nothing */ + 0, /* ALL => nothing */ + 0, /* EXCEPT => nothing */ + 0, /* INTERSECT => nothing */ + 0, /* SELECT => nothing */ + 0, /* DISTINCT => nothing */ + 0, /* DOT => nothing */ + 0, /* FROM => nothing */ + 0, /* JOIN => nothing */ + 0, /* USING => nothing */ + 0, /* ORDER => nothing */ + 0, /* BY => nothing */ + 0, /* GROUP => nothing */ + 0, /* HAVING => nothing */ + 0, /* LIMIT => nothing */ + 0, /* WHERE => nothing */ + 0, /* INTO => nothing */ + 0, /* VALUES => nothing */ + 0, /* INTEGER => nothing */ + 0, /* FLOAT => nothing */ + 0, /* BLOB => nothing */ + 0, /* REGISTER => nothing */ + 0, /* VARIABLE => nothing */ + 0, /* CASE => nothing */ + 0, /* WHEN => nothing */ + 0, /* THEN => nothing */ + 0, /* ELSE => nothing */ + 0, /* INDEX => nothing */ + 0, /* ALTER => nothing */ + 0, /* TO => nothing */ + 0, /* ADD => nothing */ + 0, /* COLUMNKW => nothing */ +}; +#endif /* YYFALLBACK */ + +/* The following structure represents a single element of the +** parser's stack. Information stored includes: +** +** + The state number for the parser at this level of the stack. +** +** + The value of the token stored at this level of the stack. +** (In other words, the "major" token.) +** +** + The semantic value stored at this level of the stack. This is +** the information used by the action routines in the grammar. +** It is sometimes called the "minor" token. +*/ +struct yyStackEntry { + int stateno; /* The state-number */ + int major; /* The major token value. This is the code + ** number for the token at this stack level */ + YYMINORTYPE minor; /* The user-supplied minor token value. This + ** is the value of the token */ +}; +typedef struct yyStackEntry yyStackEntry; + +/* The state of the parser is completely contained in an instance of +** the following structure */ +struct yyParser { + int yyidx; /* Index of top element in stack */ + int yyerrcnt; /* Shifts left before out of the error */ + sqlite3ParserARG_SDECL /* A place to hold %extra_argument */ + yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ +}; +typedef struct yyParser yyParser; + +#ifndef NDEBUG +#include +static FILE *yyTraceFILE = 0; +static char *yyTracePrompt = 0; +#endif /* NDEBUG */ + +#ifndef NDEBUG +/* +** Turn parser tracing on by giving a stream to which to write the trace +** and a prompt to preface each trace message. Tracing is turned off +** by making either argument NULL +** +** Inputs: +**
      +**
    • A FILE* to which trace output should be written. +** If NULL, then tracing is turned off. +**
    • A prefix string written at the beginning of every +** line of trace output. If NULL, then tracing is +** turned off. +**
    +** +** Outputs: +** None. +*/ +void sqlite3ParserTrace(FILE *TraceFILE, char *zTracePrompt){ + yyTraceFILE = TraceFILE; + yyTracePrompt = zTracePrompt; + if( yyTraceFILE==0 ) yyTracePrompt = 0; + else if( yyTracePrompt==0 ) yyTraceFILE = 0; +} +#endif /* NDEBUG */ + +#ifndef NDEBUG +/* For tracing shifts, the names of all terminals and nonterminals +** are required. The following table supplies these names */ +static const char *const yyTokenName[] = { + "$", "SEMI", "EXPLAIN", "QUERY", + "PLAN", "BEGIN", "TRANSACTION", "DEFERRED", + "IMMEDIATE", "EXCLUSIVE", "COMMIT", "END", + "ROLLBACK", "CREATE", "TABLE", "IF", + "NOT", "EXISTS", "TEMP", "LP", + "RP", "AS", "COMMA", "ID", + "ABORT", "AFTER", "ANALYZE", "ASC", + "ATTACH", "BEFORE", "CASCADE", "CAST", + "CONFLICT", "DATABASE", "DESC", "DETACH", + "EACH", "FAIL", "FOR", "IGNORE", + "INITIALLY", "INSTEAD", "LIKE_KW", "MATCH", + "KEY", "OF", "OFFSET", "PRAGMA", + "RAISE", "REPLACE", "RESTRICT", "ROW", + "STATEMENT", "TRIGGER", "VACUUM", "VIEW", + "VIRTUAL", "REINDEX", "RENAME", "CTIME_KW", + "ANY", "OR", "AND", "IS", + "BETWEEN", "IN", "ISNULL", "NOTNULL", + "NE", "EQ", "GT", "LE", + "LT", "GE", "ESCAPE", "BITAND", + "BITOR", "LSHIFT", "RSHIFT", "PLUS", + "MINUS", "STAR", "SLASH", "REM", + "CONCAT", "UMINUS", "UPLUS", "BITNOT", + "STRING", "JOIN_KW", "CONSTRAINT", "DEFAULT", + "NULL", "PRIMARY", "UNIQUE", "CHECK", + "REFERENCES", "COLLATE", "AUTOINCR", "ON", + "DELETE", "UPDATE", "INSERT", "SET", + "DEFERRABLE", "FOREIGN", "DROP", "UNION", + "ALL", "EXCEPT", "INTERSECT", "SELECT", + "DISTINCT", "DOT", "FROM", "JOIN", + "USING", "ORDER", "BY", "GROUP", + "HAVING", "LIMIT", "WHERE", "INTO", + "VALUES", "INTEGER", "FLOAT", "BLOB", + "REGISTER", "VARIABLE", "CASE", "WHEN", + "THEN", "ELSE", "INDEX", "ALTER", + "TO", "ADD", "COLUMNKW", "error", + "input", "cmdlist", "ecmd", "cmdx", + "cmd", "explain", "transtype", "trans_opt", + "nm", "create_table", "create_table_args", "temp", + "ifnotexists", "dbnm", "columnlist", "conslist_opt", + "select", "column", "columnid", "type", + "carglist", "id", "ids", "typetoken", + "typename", "signed", "plus_num", "minus_num", + "carg", "ccons", "term", "expr", + "onconf", "sortorder", "autoinc", "idxlist_opt", + "refargs", "defer_subclause", "refarg", "refact", + "init_deferred_pred_opt", "conslist", "tcons", "idxlist", + "defer_subclause_opt", "orconf", "resolvetype", "raisetype", + "ifexists", "fullname", "oneselect", "multiselect_op", + "distinct", "selcollist", "from", "where_opt", + "groupby_opt", "having_opt", "orderby_opt", "limit_opt", + "sclp", "as", "seltablist", "stl_prefix", + "joinop", "on_opt", "using_opt", "seltablist_paren", + "joinop2", "inscollist", "sortlist", "sortitem", + "collate", "exprlist", "setlist", "insert_cmd", + "inscollist_opt", "itemlist", "likeop", "escape", + "between_op", "in_op", "case_operand", "case_exprlist", + "case_else", "expritem", "uniqueflag", "idxitem", + "plus_opt", "number", "trigger_decl", "trigger_cmd_list", + "trigger_time", "trigger_event", "foreach_clause", "when_clause", + "trigger_cmd", "database_kw_opt", "key_opt", "add_column_fullname", + "kwcolumn_opt", "create_vtab", "vtabarglist", "vtabarg", + "vtabargtoken", "lp", "anylist", +}; +#endif /* NDEBUG */ + +#ifndef NDEBUG +/* For tracing reduce actions, the names of all rules are required. +*/ +static const char *const yyRuleName[] = { + /* 0 */ "input ::= cmdlist", + /* 1 */ "cmdlist ::= cmdlist ecmd", + /* 2 */ "cmdlist ::= ecmd", + /* 3 */ "cmdx ::= cmd", + /* 4 */ "ecmd ::= SEMI", + /* 5 */ "ecmd ::= explain cmdx SEMI", + /* 6 */ "explain ::=", + /* 7 */ "explain ::= EXPLAIN", + /* 8 */ "explain ::= EXPLAIN QUERY PLAN", + /* 9 */ "cmd ::= BEGIN transtype trans_opt", + /* 10 */ "trans_opt ::=", + /* 11 */ "trans_opt ::= TRANSACTION", + /* 12 */ "trans_opt ::= TRANSACTION nm", + /* 13 */ "transtype ::=", + /* 14 */ "transtype ::= DEFERRED", + /* 15 */ "transtype ::= IMMEDIATE", + /* 16 */ "transtype ::= EXCLUSIVE", + /* 17 */ "cmd ::= COMMIT trans_opt", + /* 18 */ "cmd ::= END trans_opt", + /* 19 */ "cmd ::= ROLLBACK trans_opt", + /* 20 */ "cmd ::= create_table create_table_args", + /* 21 */ "create_table ::= CREATE temp TABLE ifnotexists nm dbnm", + /* 22 */ "ifnotexists ::=", + /* 23 */ "ifnotexists ::= IF NOT EXISTS", + /* 24 */ "temp ::= TEMP", + /* 25 */ "temp ::=", + /* 26 */ "create_table_args ::= LP columnlist conslist_opt RP", + /* 27 */ "create_table_args ::= AS select", + /* 28 */ "columnlist ::= columnlist COMMA column", + /* 29 */ "columnlist ::= column", + /* 30 */ "column ::= columnid type carglist", + /* 31 */ "columnid ::= nm", + /* 32 */ "id ::= ID", + /* 33 */ "ids ::= ID|STRING", + /* 34 */ "nm ::= ID", + /* 35 */ "nm ::= STRING", + /* 36 */ "nm ::= JOIN_KW", + /* 37 */ "type ::=", + /* 38 */ "type ::= typetoken", + /* 39 */ "typetoken ::= typename", + /* 40 */ "typetoken ::= typename LP signed RP", + /* 41 */ "typetoken ::= typename LP signed COMMA signed RP", + /* 42 */ "typename ::= ids", + /* 43 */ "typename ::= typename ids", + /* 44 */ "signed ::= plus_num", + /* 45 */ "signed ::= minus_num", + /* 46 */ "carglist ::= carglist carg", + /* 47 */ "carglist ::=", + /* 48 */ "carg ::= CONSTRAINT nm ccons", + /* 49 */ "carg ::= ccons", + /* 50 */ "ccons ::= DEFAULT term", + /* 51 */ "ccons ::= DEFAULT LP expr RP", + /* 52 */ "ccons ::= DEFAULT PLUS term", + /* 53 */ "ccons ::= DEFAULT MINUS term", + /* 54 */ "ccons ::= DEFAULT id", + /* 55 */ "ccons ::= NULL onconf", + /* 56 */ "ccons ::= NOT NULL onconf", + /* 57 */ "ccons ::= PRIMARY KEY sortorder onconf autoinc", + /* 58 */ "ccons ::= UNIQUE onconf", + /* 59 */ "ccons ::= CHECK LP expr RP", + /* 60 */ "ccons ::= REFERENCES nm idxlist_opt refargs", + /* 61 */ "ccons ::= defer_subclause", + /* 62 */ "ccons ::= COLLATE id", + /* 63 */ "autoinc ::=", + /* 64 */ "autoinc ::= AUTOINCR", + /* 65 */ "refargs ::=", + /* 66 */ "refargs ::= refargs refarg", + /* 67 */ "refarg ::= MATCH nm", + /* 68 */ "refarg ::= ON DELETE refact", + /* 69 */ "refarg ::= ON UPDATE refact", + /* 70 */ "refarg ::= ON INSERT refact", + /* 71 */ "refact ::= SET NULL", + /* 72 */ "refact ::= SET DEFAULT", + /* 73 */ "refact ::= CASCADE", + /* 74 */ "refact ::= RESTRICT", + /* 75 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt", + /* 76 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt", + /* 77 */ "init_deferred_pred_opt ::=", + /* 78 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED", + /* 79 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE", + /* 80 */ "conslist_opt ::=", + /* 81 */ "conslist_opt ::= COMMA conslist", + /* 82 */ "conslist ::= conslist COMMA tcons", + /* 83 */ "conslist ::= conslist tcons", + /* 84 */ "conslist ::= tcons", + /* 85 */ "tcons ::= CONSTRAINT nm", + /* 86 */ "tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf", + /* 87 */ "tcons ::= UNIQUE LP idxlist RP onconf", + /* 88 */ "tcons ::= CHECK LP expr RP onconf", + /* 89 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt", + /* 90 */ "defer_subclause_opt ::=", + /* 91 */ "defer_subclause_opt ::= defer_subclause", + /* 92 */ "onconf ::=", + /* 93 */ "onconf ::= ON CONFLICT resolvetype", + /* 94 */ "orconf ::=", + /* 95 */ "orconf ::= OR resolvetype", + /* 96 */ "resolvetype ::= raisetype", + /* 97 */ "resolvetype ::= IGNORE", + /* 98 */ "resolvetype ::= REPLACE", + /* 99 */ "cmd ::= DROP TABLE ifexists fullname", + /* 100 */ "ifexists ::= IF EXISTS", + /* 101 */ "ifexists ::=", + /* 102 */ "cmd ::= CREATE temp VIEW ifnotexists nm dbnm AS select", + /* 103 */ "cmd ::= DROP VIEW ifexists fullname", + /* 104 */ "cmd ::= select", + /* 105 */ "select ::= oneselect", + /* 106 */ "select ::= select multiselect_op oneselect", + /* 107 */ "multiselect_op ::= UNION", + /* 108 */ "multiselect_op ::= UNION ALL", + /* 109 */ "multiselect_op ::= EXCEPT|INTERSECT", + /* 110 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt", + /* 111 */ "distinct ::= DISTINCT", + /* 112 */ "distinct ::= ALL", + /* 113 */ "distinct ::=", + /* 114 */ "sclp ::= selcollist COMMA", + /* 115 */ "sclp ::=", + /* 116 */ "selcollist ::= sclp expr as", + /* 117 */ "selcollist ::= sclp STAR", + /* 118 */ "selcollist ::= sclp nm DOT STAR", + /* 119 */ "as ::= AS nm", + /* 120 */ "as ::= ids", + /* 121 */ "as ::=", + /* 122 */ "from ::=", + /* 123 */ "from ::= FROM seltablist", + /* 124 */ "stl_prefix ::= seltablist joinop", + /* 125 */ "stl_prefix ::=", + /* 126 */ "seltablist ::= stl_prefix nm dbnm as on_opt using_opt", + /* 127 */ "seltablist ::= stl_prefix LP seltablist_paren RP as on_opt using_opt", + /* 128 */ "seltablist_paren ::= select", + /* 129 */ "seltablist_paren ::= seltablist", + /* 130 */ "dbnm ::=", + /* 131 */ "dbnm ::= DOT nm", + /* 132 */ "fullname ::= nm dbnm", + /* 133 */ "joinop ::= COMMA|JOIN", + /* 134 */ "joinop ::= JOIN_KW JOIN", + /* 135 */ "joinop ::= JOIN_KW nm JOIN", + /* 136 */ "joinop ::= JOIN_KW nm nm JOIN", + /* 137 */ "on_opt ::= ON expr", + /* 138 */ "on_opt ::=", + /* 139 */ "using_opt ::= USING LP inscollist RP", + /* 140 */ "using_opt ::=", + /* 141 */ "orderby_opt ::=", + /* 142 */ "orderby_opt ::= ORDER BY sortlist", + /* 143 */ "sortlist ::= sortlist COMMA sortitem collate sortorder", + /* 144 */ "sortlist ::= sortitem collate sortorder", + /* 145 */ "sortitem ::= expr", + /* 146 */ "sortorder ::= ASC", + /* 147 */ "sortorder ::= DESC", + /* 148 */ "sortorder ::=", + /* 149 */ "collate ::=", + /* 150 */ "collate ::= COLLATE id", + /* 151 */ "groupby_opt ::=", + /* 152 */ "groupby_opt ::= GROUP BY exprlist", + /* 153 */ "having_opt ::=", + /* 154 */ "having_opt ::= HAVING expr", + /* 155 */ "limit_opt ::=", + /* 156 */ "limit_opt ::= LIMIT expr", + /* 157 */ "limit_opt ::= LIMIT expr OFFSET expr", + /* 158 */ "limit_opt ::= LIMIT expr COMMA expr", + /* 159 */ "cmd ::= DELETE FROM fullname where_opt", + /* 160 */ "where_opt ::=", + /* 161 */ "where_opt ::= WHERE expr", + /* 162 */ "cmd ::= UPDATE orconf fullname SET setlist where_opt", + /* 163 */ "setlist ::= setlist COMMA nm EQ expr", + /* 164 */ "setlist ::= nm EQ expr", + /* 165 */ "cmd ::= insert_cmd INTO fullname inscollist_opt VALUES LP itemlist RP", + /* 166 */ "cmd ::= insert_cmd INTO fullname inscollist_opt select", + /* 167 */ "cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES", + /* 168 */ "insert_cmd ::= INSERT orconf", + /* 169 */ "insert_cmd ::= REPLACE", + /* 170 */ "itemlist ::= itemlist COMMA expr", + /* 171 */ "itemlist ::= expr", + /* 172 */ "inscollist_opt ::=", + /* 173 */ "inscollist_opt ::= LP inscollist RP", + /* 174 */ "inscollist ::= inscollist COMMA nm", + /* 175 */ "inscollist ::= nm", + /* 176 */ "expr ::= term", + /* 177 */ "expr ::= LP expr RP", + /* 178 */ "term ::= NULL", + /* 179 */ "expr ::= ID", + /* 180 */ "expr ::= JOIN_KW", + /* 181 */ "expr ::= nm DOT nm", + /* 182 */ "expr ::= nm DOT nm DOT nm", + /* 183 */ "term ::= INTEGER|FLOAT|BLOB", + /* 184 */ "term ::= STRING", + /* 185 */ "expr ::= REGISTER", + /* 186 */ "expr ::= VARIABLE", + /* 187 */ "expr ::= CAST LP expr AS typetoken RP", + /* 188 */ "expr ::= ID LP distinct exprlist RP", + /* 189 */ "expr ::= ID LP STAR RP", + /* 190 */ "term ::= CTIME_KW", + /* 191 */ "expr ::= expr AND expr", + /* 192 */ "expr ::= expr OR expr", + /* 193 */ "expr ::= expr LT|GT|GE|LE expr", + /* 194 */ "expr ::= expr EQ|NE expr", + /* 195 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", + /* 196 */ "expr ::= expr PLUS|MINUS expr", + /* 197 */ "expr ::= expr STAR|SLASH|REM expr", + /* 198 */ "expr ::= expr CONCAT expr", + /* 199 */ "likeop ::= LIKE_KW", + /* 200 */ "likeop ::= NOT LIKE_KW", + /* 201 */ "likeop ::= MATCH", + /* 202 */ "likeop ::= NOT MATCH", + /* 203 */ "escape ::= ESCAPE expr", + /* 204 */ "escape ::=", + /* 205 */ "expr ::= expr likeop expr escape", + /* 206 */ "expr ::= expr ISNULL|NOTNULL", + /* 207 */ "expr ::= expr IS NULL", + /* 208 */ "expr ::= expr NOT NULL", + /* 209 */ "expr ::= expr IS NOT NULL", + /* 210 */ "expr ::= NOT|BITNOT expr", + /* 211 */ "expr ::= MINUS expr", + /* 212 */ "expr ::= PLUS expr", + /* 213 */ "between_op ::= BETWEEN", + /* 214 */ "between_op ::= NOT BETWEEN", + /* 215 */ "expr ::= expr between_op expr AND expr", + /* 216 */ "in_op ::= IN", + /* 217 */ "in_op ::= NOT IN", + /* 218 */ "expr ::= expr in_op LP exprlist RP", + /* 219 */ "expr ::= LP select RP", + /* 220 */ "expr ::= expr in_op LP select RP", + /* 221 */ "expr ::= expr in_op nm dbnm", + /* 222 */ "expr ::= EXISTS LP select RP", + /* 223 */ "expr ::= CASE case_operand case_exprlist case_else END", + /* 224 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", + /* 225 */ "case_exprlist ::= WHEN expr THEN expr", + /* 226 */ "case_else ::= ELSE expr", + /* 227 */ "case_else ::=", + /* 228 */ "case_operand ::= expr", + /* 229 */ "case_operand ::=", + /* 230 */ "exprlist ::= exprlist COMMA expritem", + /* 231 */ "exprlist ::= expritem", + /* 232 */ "expritem ::= expr", + /* 233 */ "expritem ::=", + /* 234 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP", + /* 235 */ "uniqueflag ::= UNIQUE", + /* 236 */ "uniqueflag ::=", + /* 237 */ "idxlist_opt ::=", + /* 238 */ "idxlist_opt ::= LP idxlist RP", + /* 239 */ "idxlist ::= idxlist COMMA idxitem collate sortorder", + /* 240 */ "idxlist ::= idxitem collate sortorder", + /* 241 */ "idxitem ::= nm", + /* 242 */ "cmd ::= DROP INDEX ifexists fullname", + /* 243 */ "cmd ::= VACUUM", + /* 244 */ "cmd ::= VACUUM nm", + /* 245 */ "cmd ::= PRAGMA nm dbnm EQ nm", + /* 246 */ "cmd ::= PRAGMA nm dbnm EQ ON", + /* 247 */ "cmd ::= PRAGMA nm dbnm EQ plus_num", + /* 248 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", + /* 249 */ "cmd ::= PRAGMA nm dbnm LP nm RP", + /* 250 */ "cmd ::= PRAGMA nm dbnm", + /* 251 */ "plus_num ::= plus_opt number", + /* 252 */ "minus_num ::= MINUS number", + /* 253 */ "number ::= INTEGER|FLOAT", + /* 254 */ "plus_opt ::= PLUS", + /* 255 */ "plus_opt ::=", + /* 256 */ "cmd ::= CREATE trigger_decl BEGIN trigger_cmd_list END", + /* 257 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", + /* 258 */ "trigger_time ::= BEFORE", + /* 259 */ "trigger_time ::= AFTER", + /* 260 */ "trigger_time ::= INSTEAD OF", + /* 261 */ "trigger_time ::=", + /* 262 */ "trigger_event ::= DELETE|INSERT", + /* 263 */ "trigger_event ::= UPDATE", + /* 264 */ "trigger_event ::= UPDATE OF inscollist", + /* 265 */ "foreach_clause ::=", + /* 266 */ "foreach_clause ::= FOR EACH ROW", + /* 267 */ "foreach_clause ::= FOR EACH STATEMENT", + /* 268 */ "when_clause ::=", + /* 269 */ "when_clause ::= WHEN expr", + /* 270 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", + /* 271 */ "trigger_cmd_list ::=", + /* 272 */ "trigger_cmd ::= UPDATE orconf nm SET setlist where_opt", + /* 273 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt VALUES LP itemlist RP", + /* 274 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt select", + /* 275 */ "trigger_cmd ::= DELETE FROM nm where_opt", + /* 276 */ "trigger_cmd ::= select", + /* 277 */ "expr ::= RAISE LP IGNORE RP", + /* 278 */ "expr ::= RAISE LP raisetype COMMA nm RP", + /* 279 */ "raisetype ::= ROLLBACK", + /* 280 */ "raisetype ::= ABORT", + /* 281 */ "raisetype ::= FAIL", + /* 282 */ "cmd ::= DROP TRIGGER ifexists fullname", + /* 283 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", + /* 284 */ "key_opt ::=", + /* 285 */ "key_opt ::= KEY expr", + /* 286 */ "database_kw_opt ::= DATABASE", + /* 287 */ "database_kw_opt ::=", + /* 288 */ "cmd ::= DETACH database_kw_opt expr", + /* 289 */ "cmd ::= REINDEX", + /* 290 */ "cmd ::= REINDEX nm dbnm", + /* 291 */ "cmd ::= ANALYZE", + /* 292 */ "cmd ::= ANALYZE nm dbnm", + /* 293 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", + /* 294 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column", + /* 295 */ "add_column_fullname ::= fullname", + /* 296 */ "kwcolumn_opt ::=", + /* 297 */ "kwcolumn_opt ::= COLUMNKW", + /* 298 */ "cmd ::= create_vtab", + /* 299 */ "cmd ::= create_vtab LP vtabarglist RP", + /* 300 */ "create_vtab ::= CREATE VIRTUAL TABLE nm dbnm USING nm", + /* 301 */ "vtabarglist ::= vtabarg", + /* 302 */ "vtabarglist ::= vtabarglist COMMA vtabarg", + /* 303 */ "vtabarg ::=", + /* 304 */ "vtabarg ::= vtabarg vtabargtoken", + /* 305 */ "vtabargtoken ::= ANY", + /* 306 */ "vtabargtoken ::= lp anylist RP", + /* 307 */ "lp ::= LP", + /* 308 */ "anylist ::=", + /* 309 */ "anylist ::= anylist ANY", +}; +#endif /* NDEBUG */ + +/* +** This function returns the symbolic name associated with a token +** value. +*/ +const char *sqlite3ParserTokenName(int tokenType){ +#ifndef NDEBUG + if( tokenType>0 && tokenType<(sizeof(yyTokenName)/sizeof(yyTokenName[0])) ){ + return yyTokenName[tokenType]; + }else{ + return "Unknown"; + } +#else + return ""; +#endif +} + +/* +** This function allocates a new parser. +** The only argument is a pointer to a function which works like +** malloc. +** +** Inputs: +** A pointer to the function used to allocate memory. +** +** Outputs: +** A pointer to a parser. This pointer is used in subsequent calls +** to sqlite3Parser and sqlite3ParserFree. +*/ +void *sqlite3ParserAlloc(void *(*mallocProc)(size_t)){ + yyParser *pParser; + pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); + if( pParser ){ + pParser->yyidx = -1; + } + return pParser; +} + +/* The following function deletes the value associated with a +** symbol. The symbol can be either a terminal or nonterminal. +** "yymajor" is the symbol code, and "yypminor" is a pointer to +** the value. +*/ +static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ + switch( yymajor ){ + /* Here is inserted the actions which take place when a + ** terminal or non-terminal is destroyed. This can happen + ** when the symbol is popped from the stack during a + ** reduce or during error processing or when a parser is + ** being destroyed before it is finished parsing. + ** + ** Note: during a reduce, the only symbols destroyed are those + ** which appear on the RHS of the rule, but which are not used + ** inside the C code. + */ + case 156: + case 190: + case 207: +#line 374 "parse.y" +{sqlite3SelectDelete((yypminor->yy219));} +#line 1249 "parse.c" + break; + case 170: + case 171: + case 195: + case 197: + case 205: + case 211: + case 219: + case 222: + case 224: + case 225: + case 235: +#line 618 "parse.y" +{sqlite3ExprDelete((yypminor->yy172));} +#line 1264 "parse.c" + break; + case 175: + case 183: + case 193: + case 196: + case 198: + case 200: + case 210: + case 213: + case 214: + case 217: + case 223: +#line 855 "parse.y" +{sqlite3ExprListDelete((yypminor->yy174));} +#line 1279 "parse.c" + break; + case 189: + case 194: + case 202: + case 203: +#line 487 "parse.y" +{sqlite3SrcListDelete((yypminor->yy373));} +#line 1287 "parse.c" + break; + case 199: +#line 548 "parse.y" +{ + sqlite3ExprDelete((yypminor->yy234).pLimit); + sqlite3ExprDelete((yypminor->yy234).pOffset); +} +#line 1295 "parse.c" + break; + case 206: + case 209: + case 216: +#line 504 "parse.y" +{sqlite3IdListDelete((yypminor->yy432));} +#line 1302 "parse.c" + break; + case 231: + case 236: +#line 951 "parse.y" +{sqlite3DeleteTriggerStep((yypminor->yy243));} +#line 1308 "parse.c" + break; + case 233: +#line 935 "parse.y" +{sqlite3IdListDelete((yypminor->yy370).b);} +#line 1313 "parse.c" + break; + case 238: +#line 1019 "parse.y" +{sqlite3ExprDelete((yypminor->yy386));} +#line 1318 "parse.c" + break; + default: break; /* If no destructor action specified: do nothing */ + } +} + +/* +** Pop the parser's stack once. +** +** If there is a destructor routine associated with the token which +** is popped from the stack, then call it. +** +** Return the major token number for the symbol popped. +*/ +static int yy_pop_parser_stack(yyParser *pParser){ + YYCODETYPE yymajor; + yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; + + if( pParser->yyidx<0 ) return 0; +#ifndef NDEBUG + if( yyTraceFILE && pParser->yyidx>=0 ){ + fprintf(yyTraceFILE,"%sPopping %s\n", + yyTracePrompt, + yyTokenName[yytos->major]); + } +#endif + yymajor = yytos->major; + yy_destructor( yymajor, &yytos->minor); + pParser->yyidx--; + return yymajor; +} + +/* +** Deallocate and destroy a parser. Destructors are all called for +** all stack elements before shutting the parser down. +** +** Inputs: +**
      +**
    • A pointer to the parser. This should be a pointer +** obtained from sqlite3ParserAlloc. +**
    • A pointer to a function used to reclaim memory obtained +** from malloc. +**
    +*/ +void sqlite3ParserFree( + void *p, /* The parser to be deleted */ + void (*freeProc)(void*) /* Function used to reclaim memory */ +){ + yyParser *pParser = (yyParser*)p; + if( pParser==0 ) return; + while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); + (*freeProc)((void*)pParser); +} + +/* +** Find the appropriate action for a parser given the terminal +** look-ahead token iLookAhead. +** +** If the look-ahead token is YYNOCODE, then check to see if the action is +** independent of the look-ahead. If it is, return the action, otherwise +** return YY_NO_ACTION. +*/ +static int yy_find_shift_action( + yyParser *pParser, /* The parser */ + YYCODETYPE iLookAhead /* The look-ahead token */ +){ + int i; + int stateno = pParser->yystack[pParser->yyidx].stateno; + + if( stateno>YY_SHIFT_MAX || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){ + return yy_default[stateno]; + } + if( iLookAhead==YYNOCODE ){ + return YY_NO_ACTION; + } + i += iLookAhead; + if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ + if( iLookAhead>0 ){ +#ifdef YYFALLBACK + int iFallback; /* Fallback token */ + if( iLookAhead %s\n", + yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); + } +#endif + return yy_find_shift_action(pParser, iFallback); + } +#endif +#ifdef YYWILDCARD + { + int j = i - iLookAhead + YYWILDCARD; + if( j>=0 && j %s\n", + yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); + } +#endif /* NDEBUG */ + return yy_action[j]; + } + } +#endif /* YYWILDCARD */ + } + return yy_default[stateno]; + }else{ + return yy_action[i]; + } +} + +/* +** Find the appropriate action for a parser given the non-terminal +** look-ahead token iLookAhead. +** +** If the look-ahead token is YYNOCODE, then check to see if the action is +** independent of the look-ahead. If it is, return the action, otherwise +** return YY_NO_ACTION. +*/ +static int yy_find_reduce_action( + int stateno, /* Current state number */ + YYCODETYPE iLookAhead /* The look-ahead token */ +){ + int i; + /* int stateno = pParser->yystack[pParser->yyidx].stateno; */ + + if( stateno>YY_REDUCE_MAX || + (i = yy_reduce_ofst[stateno])==YY_REDUCE_USE_DFLT ){ + return yy_default[stateno]; + } + if( iLookAhead==YYNOCODE ){ + return YY_NO_ACTION; + } + i += iLookAhead; + if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ + return yy_default[stateno]; + }else{ + return yy_action[i]; + } +} + +/* +** Perform a shift action. +*/ +static void yy_shift( + yyParser *yypParser, /* The parser to be shifted */ + int yyNewState, /* The new state to shift in */ + int yyMajor, /* The major token to shift in */ + YYMINORTYPE *yypMinor /* Pointer ot the minor token to shift in */ +){ + yyStackEntry *yytos; + yypParser->yyidx++; + if( yypParser->yyidx>=YYSTACKDEPTH ){ + sqlite3ParserARG_FETCH; + yypParser->yyidx--; +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); + } +#endif + while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + /* Here code is inserted which will execute if the parser + ** stack every overflows */ +#line 44 "parse.y" + + sqlite3ErrorMsg(pParse, "parser stack overflow"); + pParse->parseError = 1; +#line 1487 "parse.c" + sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument var */ + return; + } + yytos = &yypParser->yystack[yypParser->yyidx]; + yytos->stateno = yyNewState; + yytos->major = yyMajor; + yytos->minor = *yypMinor; +#ifndef NDEBUG + if( yyTraceFILE && yypParser->yyidx>0 ){ + int i; + fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); + fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); + for(i=1; i<=yypParser->yyidx; i++) + fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); + fprintf(yyTraceFILE,"\n"); + } +#endif +} + +/* The following table contains information about every rule that +** is used during the reduce. +*/ +static const struct { + YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + unsigned char nrhs; /* Number of right-hand side symbols in the rule */ +} yyRuleInfo[] = { + { 140, 1 }, + { 141, 2 }, + { 141, 1 }, + { 143, 1 }, + { 142, 1 }, + { 142, 3 }, + { 145, 0 }, + { 145, 1 }, + { 145, 3 }, + { 144, 3 }, + { 147, 0 }, + { 147, 1 }, + { 147, 2 }, + { 146, 0 }, + { 146, 1 }, + { 146, 1 }, + { 146, 1 }, + { 144, 2 }, + { 144, 2 }, + { 144, 2 }, + { 144, 2 }, + { 149, 6 }, + { 152, 0 }, + { 152, 3 }, + { 151, 1 }, + { 151, 0 }, + { 150, 4 }, + { 150, 2 }, + { 154, 3 }, + { 154, 1 }, + { 157, 3 }, + { 158, 1 }, + { 161, 1 }, + { 162, 1 }, + { 148, 1 }, + { 148, 1 }, + { 148, 1 }, + { 159, 0 }, + { 159, 1 }, + { 163, 1 }, + { 163, 4 }, + { 163, 6 }, + { 164, 1 }, + { 164, 2 }, + { 165, 1 }, + { 165, 1 }, + { 160, 2 }, + { 160, 0 }, + { 168, 3 }, + { 168, 1 }, + { 169, 2 }, + { 169, 4 }, + { 169, 3 }, + { 169, 3 }, + { 169, 2 }, + { 169, 2 }, + { 169, 3 }, + { 169, 5 }, + { 169, 2 }, + { 169, 4 }, + { 169, 4 }, + { 169, 1 }, + { 169, 2 }, + { 174, 0 }, + { 174, 1 }, + { 176, 0 }, + { 176, 2 }, + { 178, 2 }, + { 178, 3 }, + { 178, 3 }, + { 178, 3 }, + { 179, 2 }, + { 179, 2 }, + { 179, 1 }, + { 179, 1 }, + { 177, 3 }, + { 177, 2 }, + { 180, 0 }, + { 180, 2 }, + { 180, 2 }, + { 155, 0 }, + { 155, 2 }, + { 181, 3 }, + { 181, 2 }, + { 181, 1 }, + { 182, 2 }, + { 182, 7 }, + { 182, 5 }, + { 182, 5 }, + { 182, 10 }, + { 184, 0 }, + { 184, 1 }, + { 172, 0 }, + { 172, 3 }, + { 185, 0 }, + { 185, 2 }, + { 186, 1 }, + { 186, 1 }, + { 186, 1 }, + { 144, 4 }, + { 188, 2 }, + { 188, 0 }, + { 144, 8 }, + { 144, 4 }, + { 144, 1 }, + { 156, 1 }, + { 156, 3 }, + { 191, 1 }, + { 191, 2 }, + { 191, 1 }, + { 190, 9 }, + { 192, 1 }, + { 192, 1 }, + { 192, 0 }, + { 200, 2 }, + { 200, 0 }, + { 193, 3 }, + { 193, 2 }, + { 193, 4 }, + { 201, 2 }, + { 201, 1 }, + { 201, 0 }, + { 194, 0 }, + { 194, 2 }, + { 203, 2 }, + { 203, 0 }, + { 202, 6 }, + { 202, 7 }, + { 207, 1 }, + { 207, 1 }, + { 153, 0 }, + { 153, 2 }, + { 189, 2 }, + { 204, 1 }, + { 204, 2 }, + { 204, 3 }, + { 204, 4 }, + { 205, 2 }, + { 205, 0 }, + { 206, 4 }, + { 206, 0 }, + { 198, 0 }, + { 198, 3 }, + { 210, 5 }, + { 210, 3 }, + { 211, 1 }, + { 173, 1 }, + { 173, 1 }, + { 173, 0 }, + { 212, 0 }, + { 212, 2 }, + { 196, 0 }, + { 196, 3 }, + { 197, 0 }, + { 197, 2 }, + { 199, 0 }, + { 199, 2 }, + { 199, 4 }, + { 199, 4 }, + { 144, 4 }, + { 195, 0 }, + { 195, 2 }, + { 144, 6 }, + { 214, 5 }, + { 214, 3 }, + { 144, 8 }, + { 144, 5 }, + { 144, 6 }, + { 215, 2 }, + { 215, 1 }, + { 217, 3 }, + { 217, 1 }, + { 216, 0 }, + { 216, 3 }, + { 209, 3 }, + { 209, 1 }, + { 171, 1 }, + { 171, 3 }, + { 170, 1 }, + { 171, 1 }, + { 171, 1 }, + { 171, 3 }, + { 171, 5 }, + { 170, 1 }, + { 170, 1 }, + { 171, 1 }, + { 171, 1 }, + { 171, 6 }, + { 171, 5 }, + { 171, 4 }, + { 170, 1 }, + { 171, 3 }, + { 171, 3 }, + { 171, 3 }, + { 171, 3 }, + { 171, 3 }, + { 171, 3 }, + { 171, 3 }, + { 171, 3 }, + { 218, 1 }, + { 218, 2 }, + { 218, 1 }, + { 218, 2 }, + { 219, 2 }, + { 219, 0 }, + { 171, 4 }, + { 171, 2 }, + { 171, 3 }, + { 171, 3 }, + { 171, 4 }, + { 171, 2 }, + { 171, 2 }, + { 171, 2 }, + { 220, 1 }, + { 220, 2 }, + { 171, 5 }, + { 221, 1 }, + { 221, 2 }, + { 171, 5 }, + { 171, 3 }, + { 171, 5 }, + { 171, 4 }, + { 171, 4 }, + { 171, 5 }, + { 223, 5 }, + { 223, 4 }, + { 224, 2 }, + { 224, 0 }, + { 222, 1 }, + { 222, 0 }, + { 213, 3 }, + { 213, 1 }, + { 225, 1 }, + { 225, 0 }, + { 144, 11 }, + { 226, 1 }, + { 226, 0 }, + { 175, 0 }, + { 175, 3 }, + { 183, 5 }, + { 183, 3 }, + { 227, 1 }, + { 144, 4 }, + { 144, 1 }, + { 144, 2 }, + { 144, 5 }, + { 144, 5 }, + { 144, 5 }, + { 144, 5 }, + { 144, 6 }, + { 144, 3 }, + { 166, 2 }, + { 167, 2 }, + { 229, 1 }, + { 228, 1 }, + { 228, 0 }, + { 144, 5 }, + { 230, 11 }, + { 232, 1 }, + { 232, 1 }, + { 232, 2 }, + { 232, 0 }, + { 233, 1 }, + { 233, 1 }, + { 233, 3 }, + { 234, 0 }, + { 234, 3 }, + { 234, 3 }, + { 235, 0 }, + { 235, 2 }, + { 231, 3 }, + { 231, 0 }, + { 236, 6 }, + { 236, 8 }, + { 236, 5 }, + { 236, 4 }, + { 236, 1 }, + { 171, 4 }, + { 171, 6 }, + { 187, 1 }, + { 187, 1 }, + { 187, 1 }, + { 144, 4 }, + { 144, 6 }, + { 238, 0 }, + { 238, 2 }, + { 237, 1 }, + { 237, 0 }, + { 144, 3 }, + { 144, 1 }, + { 144, 3 }, + { 144, 1 }, + { 144, 3 }, + { 144, 6 }, + { 144, 6 }, + { 239, 1 }, + { 240, 0 }, + { 240, 1 }, + { 144, 1 }, + { 144, 4 }, + { 241, 7 }, + { 242, 1 }, + { 242, 3 }, + { 243, 0 }, + { 243, 2 }, + { 244, 1 }, + { 244, 3 }, + { 245, 1 }, + { 246, 0 }, + { 246, 2 }, +}; + +static void yy_accept(yyParser*); /* Forward Declaration */ + +/* +** Perform a reduce action and the shift that must immediately +** follow the reduce. +*/ +static void yy_reduce( + yyParser *yypParser, /* The parser */ + int yyruleno /* Number of the rule by which to reduce */ +){ + int yygoto; /* The next state */ + int yyact; /* The next action */ + YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ + yyStackEntry *yymsp; /* The top of the parser's stack */ + int yysize; /* Amount to pop the stack */ + sqlite3ParserARG_FETCH; + yymsp = &yypParser->yystack[yypParser->yyidx]; +#ifndef NDEBUG + if( yyTraceFILE && yyruleno>=0 + && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ + fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, + yyRuleName[yyruleno]); + } +#endif /* NDEBUG */ + +#ifndef NDEBUG + /* Silence complaints from purify about yygotominor being uninitialized + ** in some cases when it is copied into the stack after the following + ** switch. yygotominor is uninitialized when a rule reduces that does + ** not set the value of its left-hand side nonterminal. Leaving the + ** value of the nonterminal uninitialized is utterly harmless as long + ** as the value is never used. So really the only thing this code + ** accomplishes is to quieten purify. + */ + memset(&yygotominor, 0, sizeof(yygotominor)); +#endif + + switch( yyruleno ){ + /* Beginning here are the reduction cases. A typical example + ** follows: + ** case 0: + ** #line + ** { ... } // User supplied code + ** #line + ** break; + */ + case 3: +#line 100 "parse.y" +{ sqlite3FinishCoding(pParse); } +#line 1875 "parse.c" + break; + case 6: +#line 103 "parse.y" +{ sqlite3BeginParse(pParse, 0); } +#line 1880 "parse.c" + break; + case 7: +#line 105 "parse.y" +{ sqlite3BeginParse(pParse, 1); } +#line 1885 "parse.c" + break; + case 8: +#line 106 "parse.y" +{ sqlite3BeginParse(pParse, 2); } +#line 1890 "parse.c" + break; + case 9: +#line 112 "parse.y" +{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy46);} +#line 1895 "parse.c" + break; + case 13: +#line 117 "parse.y" +{yygotominor.yy46 = TK_DEFERRED;} +#line 1900 "parse.c" + break; + case 14: + case 15: + case 16: + case 107: + case 109: +#line 118 "parse.y" +{yygotominor.yy46 = yymsp[0].major;} +#line 1909 "parse.c" + break; + case 17: + case 18: +#line 121 "parse.y" +{sqlite3CommitTransaction(pParse);} +#line 1915 "parse.c" + break; + case 19: +#line 123 "parse.y" +{sqlite3RollbackTransaction(pParse);} +#line 1920 "parse.c" + break; + case 21: +#line 128 "parse.y" +{ + sqlite3StartTable(pParse,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy410,yymsp[-4].minor.yy46,0,0,yymsp[-2].minor.yy46); +} +#line 1927 "parse.c" + break; + case 22: + case 25: + case 63: + case 77: + case 79: + case 90: + case 101: + case 112: + case 113: + case 213: + case 216: +#line 132 "parse.y" +{yygotominor.yy46 = 0;} +#line 1942 "parse.c" + break; + case 23: + case 24: + case 64: + case 78: + case 100: + case 111: + case 214: + case 217: +#line 133 "parse.y" +{yygotominor.yy46 = 1;} +#line 1954 "parse.c" + break; + case 26: +#line 139 "parse.y" +{ + sqlite3EndTable(pParse,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy0,0); +} +#line 1961 "parse.c" + break; + case 27: +#line 142 "parse.y" +{ + sqlite3EndTable(pParse,0,0,yymsp[0].minor.yy219); + sqlite3SelectDelete(yymsp[0].minor.yy219); +} +#line 1969 "parse.c" + break; + case 30: +#line 154 "parse.y" +{ + yygotominor.yy410.z = yymsp[-2].minor.yy410.z; + yygotominor.yy410.n = (pParse->sLastToken.z-yymsp[-2].minor.yy410.z) + pParse->sLastToken.n; +} +#line 1977 "parse.c" + break; + case 31: +#line 158 "parse.y" +{ + sqlite3AddColumn(pParse,&yymsp[0].minor.yy410); + yygotominor.yy410 = yymsp[0].minor.yy410; +} +#line 1985 "parse.c" + break; + case 32: + case 33: + case 34: + case 35: + case 36: + case 253: +#line 168 "parse.y" +{yygotominor.yy410 = yymsp[0].minor.yy0;} +#line 1995 "parse.c" + break; + case 38: +#line 228 "parse.y" +{sqlite3AddColumnType(pParse,&yymsp[0].minor.yy410);} +#line 2000 "parse.c" + break; + case 39: + case 42: + case 119: + case 120: + case 131: + case 150: + case 241: + case 251: + case 252: +#line 229 "parse.y" +{yygotominor.yy410 = yymsp[0].minor.yy410;} +#line 2013 "parse.c" + break; + case 40: +#line 230 "parse.y" +{ + yygotominor.yy410.z = yymsp[-3].minor.yy410.z; + yygotominor.yy410.n = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-3].minor.yy410.z; +} +#line 2021 "parse.c" + break; + case 41: +#line 234 "parse.y" +{ + yygotominor.yy410.z = yymsp[-5].minor.yy410.z; + yygotominor.yy410.n = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-5].minor.yy410.z; +} +#line 2029 "parse.c" + break; + case 43: +#line 240 "parse.y" +{yygotominor.yy410.z=yymsp[-1].minor.yy410.z; yygotominor.yy410.n=yymsp[0].minor.yy410.n+(yymsp[0].minor.yy410.z-yymsp[-1].minor.yy410.z);} +#line 2034 "parse.c" + break; + case 44: +#line 242 "parse.y" +{ yygotominor.yy46 = atoi((char*)yymsp[0].minor.yy410.z); } +#line 2039 "parse.c" + break; + case 45: +#line 243 "parse.y" +{ yygotominor.yy46 = -atoi((char*)yymsp[0].minor.yy410.z); } +#line 2044 "parse.c" + break; + case 50: + case 52: +#line 252 "parse.y" +{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy172);} +#line 2050 "parse.c" + break; + case 51: +#line 253 "parse.y" +{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy172);} +#line 2055 "parse.c" + break; + case 53: +#line 255 "parse.y" +{ + Expr *p = sqlite3Expr(TK_UMINUS, yymsp[0].minor.yy172, 0, 0); + sqlite3AddDefaultValue(pParse,p); +} +#line 2063 "parse.c" + break; + case 54: +#line 259 "parse.y" +{ + Expr *p = sqlite3Expr(TK_STRING, 0, 0, &yymsp[0].minor.yy410); + sqlite3AddDefaultValue(pParse,p); +} +#line 2071 "parse.c" + break; + case 56: +#line 268 "parse.y" +{sqlite3AddNotNull(pParse, yymsp[0].minor.yy46);} +#line 2076 "parse.c" + break; + case 57: +#line 270 "parse.y" +{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy46,yymsp[0].minor.yy46,yymsp[-2].minor.yy46);} +#line 2081 "parse.c" + break; + case 58: +#line 271 "parse.y" +{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy46,0,0,0,0);} +#line 2086 "parse.c" + break; + case 59: +#line 272 "parse.y" +{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy172);} +#line 2091 "parse.c" + break; + case 60: +#line 274 "parse.y" +{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy410,yymsp[-1].minor.yy174,yymsp[0].minor.yy46);} +#line 2096 "parse.c" + break; + case 61: +#line 275 "parse.y" +{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy46);} +#line 2101 "parse.c" + break; + case 62: +#line 276 "parse.y" +{sqlite3AddCollateType(pParse, (char*)yymsp[0].minor.yy410.z, yymsp[0].minor.yy410.n);} +#line 2106 "parse.c" + break; + case 65: +#line 289 "parse.y" +{ yygotominor.yy46 = OE_Restrict * 0x010101; } +#line 2111 "parse.c" + break; + case 66: +#line 290 "parse.y" +{ yygotominor.yy46 = (yymsp[-1].minor.yy46 & yymsp[0].minor.yy405.mask) | yymsp[0].minor.yy405.value; } +#line 2116 "parse.c" + break; + case 67: +#line 292 "parse.y" +{ yygotominor.yy405.value = 0; yygotominor.yy405.mask = 0x000000; } +#line 2121 "parse.c" + break; + case 68: +#line 293 "parse.y" +{ yygotominor.yy405.value = yymsp[0].minor.yy46; yygotominor.yy405.mask = 0x0000ff; } +#line 2126 "parse.c" + break; + case 69: +#line 294 "parse.y" +{ yygotominor.yy405.value = yymsp[0].minor.yy46<<8; yygotominor.yy405.mask = 0x00ff00; } +#line 2131 "parse.c" + break; + case 70: +#line 295 "parse.y" +{ yygotominor.yy405.value = yymsp[0].minor.yy46<<16; yygotominor.yy405.mask = 0xff0000; } +#line 2136 "parse.c" + break; + case 71: +#line 297 "parse.y" +{ yygotominor.yy46 = OE_SetNull; } +#line 2141 "parse.c" + break; + case 72: +#line 298 "parse.y" +{ yygotominor.yy46 = OE_SetDflt; } +#line 2146 "parse.c" + break; + case 73: +#line 299 "parse.y" +{ yygotominor.yy46 = OE_Cascade; } +#line 2151 "parse.c" + break; + case 74: +#line 300 "parse.y" +{ yygotominor.yy46 = OE_Restrict; } +#line 2156 "parse.c" + break; + case 75: + case 76: + case 91: + case 93: + case 95: + case 96: + case 168: +#line 302 "parse.y" +{yygotominor.yy46 = yymsp[0].minor.yy46;} +#line 2167 "parse.c" + break; + case 80: +#line 312 "parse.y" +{yygotominor.yy410.n = 0; yygotominor.yy410.z = 0;} +#line 2172 "parse.c" + break; + case 81: +#line 313 "parse.y" +{yygotominor.yy410 = yymsp[-1].minor.yy0;} +#line 2177 "parse.c" + break; + case 86: +#line 319 "parse.y" +{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy174,yymsp[0].minor.yy46,yymsp[-2].minor.yy46,0);} +#line 2182 "parse.c" + break; + case 87: +#line 321 "parse.y" +{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy174,yymsp[0].minor.yy46,0,0,0,0);} +#line 2187 "parse.c" + break; + case 88: +#line 322 "parse.y" +{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy172);} +#line 2192 "parse.c" + break; + case 89: +#line 324 "parse.y" +{ + sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy174, &yymsp[-3].minor.yy410, yymsp[-2].minor.yy174, yymsp[-1].minor.yy46); + sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy46); +} +#line 2200 "parse.c" + break; + case 92: + case 94: +#line 338 "parse.y" +{yygotominor.yy46 = OE_Default;} +#line 2206 "parse.c" + break; + case 97: +#line 343 "parse.y" +{yygotominor.yy46 = OE_Ignore;} +#line 2211 "parse.c" + break; + case 98: + case 169: +#line 344 "parse.y" +{yygotominor.yy46 = OE_Replace;} +#line 2217 "parse.c" + break; + case 99: +#line 348 "parse.y" +{ + sqlite3DropTable(pParse, yymsp[0].minor.yy373, 0, yymsp[-1].minor.yy46); +} +#line 2224 "parse.c" + break; + case 102: +#line 358 "parse.y" +{ + sqlite3CreateView(pParse, &yymsp[-7].minor.yy0, &yymsp[-3].minor.yy410, &yymsp[-2].minor.yy410, yymsp[0].minor.yy219, yymsp[-6].minor.yy46, yymsp[-4].minor.yy46); +} +#line 2231 "parse.c" + break; + case 103: +#line 361 "parse.y" +{ + sqlite3DropTable(pParse, yymsp[0].minor.yy373, 1, yymsp[-1].minor.yy46); +} +#line 2238 "parse.c" + break; + case 104: +#line 368 "parse.y" +{ + sqlite3Select(pParse, yymsp[0].minor.yy219, SRT_Callback, 0, 0, 0, 0, 0); + sqlite3SelectDelete(yymsp[0].minor.yy219); +} +#line 2246 "parse.c" + break; + case 105: + case 128: +#line 378 "parse.y" +{yygotominor.yy219 = yymsp[0].minor.yy219;} +#line 2252 "parse.c" + break; + case 106: +#line 380 "parse.y" +{ + if( yymsp[0].minor.yy219 ){ + yymsp[0].minor.yy219->op = yymsp[-1].minor.yy46; + yymsp[0].minor.yy219->pPrior = yymsp[-2].minor.yy219; + } + yygotominor.yy219 = yymsp[0].minor.yy219; +} +#line 2263 "parse.c" + break; + case 108: +#line 389 "parse.y" +{yygotominor.yy46 = TK_ALL;} +#line 2268 "parse.c" + break; + case 110: +#line 393 "parse.y" +{ + yygotominor.yy219 = sqlite3SelectNew(yymsp[-6].minor.yy174,yymsp[-5].minor.yy373,yymsp[-4].minor.yy172,yymsp[-3].minor.yy174,yymsp[-2].minor.yy172,yymsp[-1].minor.yy174,yymsp[-7].minor.yy46,yymsp[0].minor.yy234.pLimit,yymsp[0].minor.yy234.pOffset); +} +#line 2275 "parse.c" + break; + case 114: + case 238: +#line 414 "parse.y" +{yygotominor.yy174 = yymsp[-1].minor.yy174;} +#line 2281 "parse.c" + break; + case 115: + case 141: + case 151: + case 237: +#line 415 "parse.y" +{yygotominor.yy174 = 0;} +#line 2289 "parse.c" + break; + case 116: +#line 416 "parse.y" +{ + yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-2].minor.yy174,yymsp[-1].minor.yy172,yymsp[0].minor.yy410.n?&yymsp[0].minor.yy410:0); +} +#line 2296 "parse.c" + break; + case 117: +#line 419 "parse.y" +{ + yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-1].minor.yy174, sqlite3Expr(TK_ALL, 0, 0, 0), 0); +} +#line 2303 "parse.c" + break; + case 118: +#line 422 "parse.y" +{ + Expr *pRight = sqlite3Expr(TK_ALL, 0, 0, 0); + Expr *pLeft = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy410); + yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-3].minor.yy174, sqlite3Expr(TK_DOT, pLeft, pRight, 0), 0); +} +#line 2312 "parse.c" + break; + case 121: +#line 434 "parse.y" +{yygotominor.yy410.n = 0;} +#line 2317 "parse.c" + break; + case 122: +#line 446 "parse.y" +{yygotominor.yy373 = sqliteMalloc(sizeof(*yygotominor.yy373));} +#line 2322 "parse.c" + break; + case 123: +#line 447 "parse.y" +{ + yygotominor.yy373 = yymsp[0].minor.yy373; + sqlite3SrcListShiftJoinType(yygotominor.yy373); +} +#line 2330 "parse.c" + break; + case 124: +#line 455 "parse.y" +{ + yygotominor.yy373 = yymsp[-1].minor.yy373; + if( yygotominor.yy373 && yygotominor.yy373->nSrc>0 ) yygotominor.yy373->a[yygotominor.yy373->nSrc-1].jointype = yymsp[0].minor.yy46; +} +#line 2338 "parse.c" + break; + case 125: +#line 459 "parse.y" +{yygotominor.yy373 = 0;} +#line 2343 "parse.c" + break; + case 126: +#line 460 "parse.y" +{ + yygotominor.yy373 = sqlite3SrcListAppendFromTerm(yymsp[-5].minor.yy373,&yymsp[-4].minor.yy410,&yymsp[-3].minor.yy410,&yymsp[-2].minor.yy410,0,yymsp[-1].minor.yy172,yymsp[0].minor.yy432); +} +#line 2350 "parse.c" + break; + case 127: +#line 465 "parse.y" +{ + yygotominor.yy373 = sqlite3SrcListAppendFromTerm(yymsp[-6].minor.yy373,0,0,&yymsp[-2].minor.yy410,yymsp[-4].minor.yy219,yymsp[-1].minor.yy172,yymsp[0].minor.yy432); + } +#line 2357 "parse.c" + break; + case 129: +#line 476 "parse.y" +{ + sqlite3SrcListShiftJoinType(yymsp[0].minor.yy373); + yygotominor.yy219 = sqlite3SelectNew(0,yymsp[0].minor.yy373,0,0,0,0,0,0,0); + } +#line 2365 "parse.c" + break; + case 130: +#line 483 "parse.y" +{yygotominor.yy410.z=0; yygotominor.yy410.n=0;} +#line 2370 "parse.c" + break; + case 132: +#line 488 "parse.y" +{yygotominor.yy373 = sqlite3SrcListAppend(0,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy410);} +#line 2375 "parse.c" + break; + case 133: +#line 492 "parse.y" +{ yygotominor.yy46 = JT_INNER; } +#line 2380 "parse.c" + break; + case 134: +#line 493 "parse.y" +{ yygotominor.yy46 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); } +#line 2385 "parse.c" + break; + case 135: +#line 494 "parse.y" +{ yygotominor.yy46 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy410,0); } +#line 2390 "parse.c" + break; + case 136: +#line 496 "parse.y" +{ yygotominor.yy46 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy410,&yymsp[-1].minor.yy410); } +#line 2395 "parse.c" + break; + case 137: + case 145: + case 154: + case 161: + case 176: + case 203: + case 226: + case 228: + case 232: +#line 500 "parse.y" +{yygotominor.yy172 = yymsp[0].minor.yy172;} +#line 2408 "parse.c" + break; + case 138: + case 153: + case 160: + case 204: + case 227: + case 229: + case 233: +#line 501 "parse.y" +{yygotominor.yy172 = 0;} +#line 2419 "parse.c" + break; + case 139: + case 173: +#line 505 "parse.y" +{yygotominor.yy432 = yymsp[-1].minor.yy432;} +#line 2425 "parse.c" + break; + case 140: + case 172: +#line 506 "parse.y" +{yygotominor.yy432 = 0;} +#line 2431 "parse.c" + break; + case 142: + case 152: +#line 517 "parse.y" +{yygotominor.yy174 = yymsp[0].minor.yy174;} +#line 2437 "parse.c" + break; + case 143: +#line 518 "parse.y" +{ + yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-4].minor.yy174,yymsp[-2].minor.yy172,yymsp[-1].minor.yy410.n>0?&yymsp[-1].minor.yy410:0); + if( yygotominor.yy174 ) yygotominor.yy174->a[yygotominor.yy174->nExpr-1].sortOrder = yymsp[0].minor.yy46; +} +#line 2445 "parse.c" + break; + case 144: +#line 522 "parse.y" +{ + yygotominor.yy174 = sqlite3ExprListAppend(0,yymsp[-2].minor.yy172,yymsp[-1].minor.yy410.n>0?&yymsp[-1].minor.yy410:0); + if( yygotominor.yy174 && yygotominor.yy174->a ) yygotominor.yy174->a[0].sortOrder = yymsp[0].minor.yy46; +} +#line 2453 "parse.c" + break; + case 146: + case 148: +#line 531 "parse.y" +{yygotominor.yy46 = SQLITE_SO_ASC;} +#line 2459 "parse.c" + break; + case 147: +#line 532 "parse.y" +{yygotominor.yy46 = SQLITE_SO_DESC;} +#line 2464 "parse.c" + break; + case 149: +#line 534 "parse.y" +{yygotominor.yy410.z = 0; yygotominor.yy410.n = 0;} +#line 2469 "parse.c" + break; + case 155: +#line 552 "parse.y" +{yygotominor.yy234.pLimit = 0; yygotominor.yy234.pOffset = 0;} +#line 2474 "parse.c" + break; + case 156: +#line 553 "parse.y" +{yygotominor.yy234.pLimit = yymsp[0].minor.yy172; yygotominor.yy234.pOffset = 0;} +#line 2479 "parse.c" + break; + case 157: +#line 555 "parse.y" +{yygotominor.yy234.pLimit = yymsp[-2].minor.yy172; yygotominor.yy234.pOffset = yymsp[0].minor.yy172;} +#line 2484 "parse.c" + break; + case 158: +#line 557 "parse.y" +{yygotominor.yy234.pOffset = yymsp[-2].minor.yy172; yygotominor.yy234.pLimit = yymsp[0].minor.yy172;} +#line 2489 "parse.c" + break; + case 159: +#line 561 "parse.y" +{sqlite3DeleteFrom(pParse,yymsp[-1].minor.yy373,yymsp[0].minor.yy172);} +#line 2494 "parse.c" + break; + case 162: +#line 572 "parse.y" +{sqlite3Update(pParse,yymsp[-3].minor.yy373,yymsp[-1].minor.yy174,yymsp[0].minor.yy172,yymsp[-4].minor.yy46);} +#line 2499 "parse.c" + break; + case 163: +#line 578 "parse.y" +{yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-4].minor.yy174,yymsp[0].minor.yy172,&yymsp[-2].minor.yy410);} +#line 2504 "parse.c" + break; + case 164: +#line 579 "parse.y" +{yygotominor.yy174 = sqlite3ExprListAppend(0,yymsp[0].minor.yy172,&yymsp[-2].minor.yy410);} +#line 2509 "parse.c" + break; + case 165: +#line 585 "parse.y" +{sqlite3Insert(pParse, yymsp[-5].minor.yy373, yymsp[-1].minor.yy174, 0, yymsp[-4].minor.yy432, yymsp[-7].minor.yy46);} +#line 2514 "parse.c" + break; + case 166: +#line 587 "parse.y" +{sqlite3Insert(pParse, yymsp[-2].minor.yy373, 0, yymsp[0].minor.yy219, yymsp[-1].minor.yy432, yymsp[-4].minor.yy46);} +#line 2519 "parse.c" + break; + case 167: +#line 589 "parse.y" +{sqlite3Insert(pParse, yymsp[-3].minor.yy373, 0, 0, yymsp[-2].minor.yy432, yymsp[-5].minor.yy46);} +#line 2524 "parse.c" + break; + case 170: + case 230: +#line 599 "parse.y" +{yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-2].minor.yy174,yymsp[0].minor.yy172,0);} +#line 2530 "parse.c" + break; + case 171: + case 231: +#line 600 "parse.y" +{yygotominor.yy174 = sqlite3ExprListAppend(0,yymsp[0].minor.yy172,0);} +#line 2536 "parse.c" + break; + case 174: +#line 609 "parse.y" +{yygotominor.yy432 = sqlite3IdListAppend(yymsp[-2].minor.yy432,&yymsp[0].minor.yy410);} +#line 2541 "parse.c" + break; + case 175: +#line 610 "parse.y" +{yygotominor.yy432 = sqlite3IdListAppend(0,&yymsp[0].minor.yy410);} +#line 2546 "parse.c" + break; + case 177: +#line 621 "parse.y" +{yygotominor.yy172 = yymsp[-1].minor.yy172; sqlite3ExprSpan(yygotominor.yy172,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); } +#line 2551 "parse.c" + break; + case 178: + case 183: + case 184: +#line 622 "parse.y" +{yygotominor.yy172 = sqlite3Expr(yymsp[0].major, 0, 0, &yymsp[0].minor.yy0);} +#line 2558 "parse.c" + break; + case 179: + case 180: +#line 623 "parse.y" +{yygotominor.yy172 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy0);} +#line 2564 "parse.c" + break; + case 181: +#line 625 "parse.y" +{ + Expr *temp1 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy410); + Expr *temp2 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy410); + yygotominor.yy172 = sqlite3Expr(TK_DOT, temp1, temp2, 0); +} +#line 2573 "parse.c" + break; + case 182: +#line 630 "parse.y" +{ + Expr *temp1 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-4].minor.yy410); + Expr *temp2 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy410); + Expr *temp3 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy410); + Expr *temp4 = sqlite3Expr(TK_DOT, temp2, temp3, 0); + yygotominor.yy172 = sqlite3Expr(TK_DOT, temp1, temp4, 0); +} +#line 2584 "parse.c" + break; + case 185: +#line 639 "parse.y" +{yygotominor.yy172 = sqlite3RegisterExpr(pParse, &yymsp[0].minor.yy0);} +#line 2589 "parse.c" + break; + case 186: +#line 640 "parse.y" +{ + Token *pToken = &yymsp[0].minor.yy0; + Expr *pExpr = yygotominor.yy172 = sqlite3Expr(TK_VARIABLE, 0, 0, pToken); + sqlite3ExprAssignVarNumber(pParse, pExpr); +} +#line 2598 "parse.c" + break; + case 187: +#line 646 "parse.y" +{ + yygotominor.yy172 = sqlite3Expr(TK_CAST, yymsp[-3].minor.yy172, 0, &yymsp[-1].minor.yy410); + sqlite3ExprSpan(yygotominor.yy172,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); +} +#line 2606 "parse.c" + break; + case 188: +#line 651 "parse.y" +{ + yygotominor.yy172 = sqlite3ExprFunction(yymsp[-1].minor.yy174, &yymsp[-4].minor.yy0); + sqlite3ExprSpan(yygotominor.yy172,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); + if( yymsp[-2].minor.yy46 && yygotominor.yy172 ){ + yygotominor.yy172->flags |= EP_Distinct; + } +} +#line 2617 "parse.c" + break; + case 189: +#line 658 "parse.y" +{ + yygotominor.yy172 = sqlite3ExprFunction(0, &yymsp[-3].minor.yy0); + sqlite3ExprSpan(yygotominor.yy172,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); +} +#line 2625 "parse.c" + break; + case 190: +#line 662 "parse.y" +{ + /* The CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP values are + ** treated as functions that return constants */ + yygotominor.yy172 = sqlite3ExprFunction(0,&yymsp[0].minor.yy0); + if( yygotominor.yy172 ){ + yygotominor.yy172->op = TK_CONST_FUNC; + yygotominor.yy172->span = yymsp[0].minor.yy0; + } +} +#line 2638 "parse.c" + break; + case 191: + case 192: + case 193: + case 194: + case 195: + case 196: + case 197: + case 198: +#line 671 "parse.y" +{yygotominor.yy172 = sqlite3Expr(yymsp[-1].major, yymsp[-2].minor.yy172, yymsp[0].minor.yy172, 0);} +#line 2650 "parse.c" + break; + case 199: + case 201: +#line 681 "parse.y" +{yygotominor.yy72.eOperator = yymsp[0].minor.yy0; yygotominor.yy72.not = 0;} +#line 2656 "parse.c" + break; + case 200: + case 202: +#line 682 "parse.y" +{yygotominor.yy72.eOperator = yymsp[0].minor.yy0; yygotominor.yy72.not = 1;} +#line 2662 "parse.c" + break; + case 205: +#line 689 "parse.y" +{ + ExprList *pList; + pList = sqlite3ExprListAppend(0, yymsp[-1].minor.yy172, 0); + pList = sqlite3ExprListAppend(pList, yymsp[-3].minor.yy172, 0); + if( yymsp[0].minor.yy172 ){ + pList = sqlite3ExprListAppend(pList, yymsp[0].minor.yy172, 0); + } + yygotominor.yy172 = sqlite3ExprFunction(pList, &yymsp[-2].minor.yy72.eOperator); + if( yymsp[-2].minor.yy72.not ) yygotominor.yy172 = sqlite3Expr(TK_NOT, yygotominor.yy172, 0, 0); + sqlite3ExprSpan(yygotominor.yy172, &yymsp[-3].minor.yy172->span, &yymsp[-1].minor.yy172->span); + if( yygotominor.yy172 ) yygotominor.yy172->flags |= EP_InfixFunc; +} +#line 2678 "parse.c" + break; + case 206: +#line 702 "parse.y" +{ + yygotominor.yy172 = sqlite3Expr(yymsp[0].major, yymsp[-1].minor.yy172, 0, 0); + sqlite3ExprSpan(yygotominor.yy172,&yymsp[-1].minor.yy172->span,&yymsp[0].minor.yy0); +} +#line 2686 "parse.c" + break; + case 207: +#line 706 "parse.y" +{ + yygotominor.yy172 = sqlite3Expr(TK_ISNULL, yymsp[-2].minor.yy172, 0, 0); + sqlite3ExprSpan(yygotominor.yy172,&yymsp[-2].minor.yy172->span,&yymsp[0].minor.yy0); +} +#line 2694 "parse.c" + break; + case 208: +#line 710 "parse.y" +{ + yygotominor.yy172 = sqlite3Expr(TK_NOTNULL, yymsp[-2].minor.yy172, 0, 0); + sqlite3ExprSpan(yygotominor.yy172,&yymsp[-2].minor.yy172->span,&yymsp[0].minor.yy0); +} +#line 2702 "parse.c" + break; + case 209: +#line 714 "parse.y" +{ + yygotominor.yy172 = sqlite3Expr(TK_NOTNULL, yymsp[-3].minor.yy172, 0, 0); + sqlite3ExprSpan(yygotominor.yy172,&yymsp[-3].minor.yy172->span,&yymsp[0].minor.yy0); +} +#line 2710 "parse.c" + break; + case 210: +#line 718 "parse.y" +{ + yygotominor.yy172 = sqlite3Expr(yymsp[-1].major, yymsp[0].minor.yy172, 0, 0); + sqlite3ExprSpan(yygotominor.yy172,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy172->span); +} +#line 2718 "parse.c" + break; + case 211: +#line 722 "parse.y" +{ + yygotominor.yy172 = sqlite3Expr(TK_UMINUS, yymsp[0].minor.yy172, 0, 0); + sqlite3ExprSpan(yygotominor.yy172,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy172->span); +} +#line 2726 "parse.c" + break; + case 212: +#line 726 "parse.y" +{ + yygotominor.yy172 = sqlite3Expr(TK_UPLUS, yymsp[0].minor.yy172, 0, 0); + sqlite3ExprSpan(yygotominor.yy172,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy172->span); +} +#line 2734 "parse.c" + break; + case 215: +#line 733 "parse.y" +{ + ExprList *pList = sqlite3ExprListAppend(0, yymsp[-2].minor.yy172, 0); + pList = sqlite3ExprListAppend(pList, yymsp[0].minor.yy172, 0); + yygotominor.yy172 = sqlite3Expr(TK_BETWEEN, yymsp[-4].minor.yy172, 0, 0); + if( yygotominor.yy172 ){ + yygotominor.yy172->pList = pList; + }else{ + sqlite3ExprListDelete(pList); + } + if( yymsp[-3].minor.yy46 ) yygotominor.yy172 = sqlite3Expr(TK_NOT, yygotominor.yy172, 0, 0); + sqlite3ExprSpan(yygotominor.yy172,&yymsp[-4].minor.yy172->span,&yymsp[0].minor.yy172->span); +} +#line 2750 "parse.c" + break; + case 218: +#line 749 "parse.y" +{ + yygotominor.yy172 = sqlite3Expr(TK_IN, yymsp[-4].minor.yy172, 0, 0); + if( yygotominor.yy172 ){ + yygotominor.yy172->pList = yymsp[-1].minor.yy174; + }else{ + sqlite3ExprListDelete(yymsp[-1].minor.yy174); + } + if( yymsp[-3].minor.yy46 ) yygotominor.yy172 = sqlite3Expr(TK_NOT, yygotominor.yy172, 0, 0); + sqlite3ExprSpan(yygotominor.yy172,&yymsp[-4].minor.yy172->span,&yymsp[0].minor.yy0); + } +#line 2764 "parse.c" + break; + case 219: +#line 759 "parse.y" +{ + yygotominor.yy172 = sqlite3Expr(TK_SELECT, 0, 0, 0); + if( yygotominor.yy172 ){ + yygotominor.yy172->pSelect = yymsp[-1].minor.yy219; + }else{ + sqlite3SelectDelete(yymsp[-1].minor.yy219); + } + sqlite3ExprSpan(yygotominor.yy172,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); + } +#line 2777 "parse.c" + break; + case 220: +#line 768 "parse.y" +{ + yygotominor.yy172 = sqlite3Expr(TK_IN, yymsp[-4].minor.yy172, 0, 0); + if( yygotominor.yy172 ){ + yygotominor.yy172->pSelect = yymsp[-1].minor.yy219; + }else{ + sqlite3SelectDelete(yymsp[-1].minor.yy219); + } + if( yymsp[-3].minor.yy46 ) yygotominor.yy172 = sqlite3Expr(TK_NOT, yygotominor.yy172, 0, 0); + sqlite3ExprSpan(yygotominor.yy172,&yymsp[-4].minor.yy172->span,&yymsp[0].minor.yy0); + } +#line 2791 "parse.c" + break; + case 221: +#line 778 "parse.y" +{ + SrcList *pSrc = sqlite3SrcListAppend(0,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy410); + yygotominor.yy172 = sqlite3Expr(TK_IN, yymsp[-3].minor.yy172, 0, 0); + if( yygotominor.yy172 ){ + yygotominor.yy172->pSelect = sqlite3SelectNew(0,pSrc,0,0,0,0,0,0,0); + }else{ + sqlite3SrcListDelete(pSrc); + } + if( yymsp[-2].minor.yy46 ) yygotominor.yy172 = sqlite3Expr(TK_NOT, yygotominor.yy172, 0, 0); + sqlite3ExprSpan(yygotominor.yy172,&yymsp[-3].minor.yy172->span,yymsp[0].minor.yy410.z?&yymsp[0].minor.yy410:&yymsp[-1].minor.yy410); + } +#line 2806 "parse.c" + break; + case 222: +#line 789 "parse.y" +{ + Expr *p = yygotominor.yy172 = sqlite3Expr(TK_EXISTS, 0, 0, 0); + if( p ){ + p->pSelect = yymsp[-1].minor.yy219; + sqlite3ExprSpan(p,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); + }else{ + sqlite3SelectDelete(yymsp[-1].minor.yy219); + } + } +#line 2819 "parse.c" + break; + case 223: +#line 801 "parse.y" +{ + yygotominor.yy172 = sqlite3Expr(TK_CASE, yymsp[-3].minor.yy172, yymsp[-1].minor.yy172, 0); + if( yygotominor.yy172 ){ + yygotominor.yy172->pList = yymsp[-2].minor.yy174; + }else{ + sqlite3ExprListDelete(yymsp[-2].minor.yy174); + } + sqlite3ExprSpan(yygotominor.yy172, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0); +} +#line 2832 "parse.c" + break; + case 224: +#line 812 "parse.y" +{ + yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-4].minor.yy174, yymsp[-2].minor.yy172, 0); + yygotominor.yy174 = sqlite3ExprListAppend(yygotominor.yy174, yymsp[0].minor.yy172, 0); +} +#line 2840 "parse.c" + break; + case 225: +#line 816 "parse.y" +{ + yygotominor.yy174 = sqlite3ExprListAppend(0, yymsp[-2].minor.yy172, 0); + yygotominor.yy174 = sqlite3ExprListAppend(yygotominor.yy174, yymsp[0].minor.yy172, 0); +} +#line 2848 "parse.c" + break; + case 234: +#line 843 "parse.y" +{ + sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy410, &yymsp[-5].minor.yy410, sqlite3SrcListAppend(0,&yymsp[-3].minor.yy410,0), yymsp[-1].minor.yy174, yymsp[-9].minor.yy46, + &yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy46); +} +#line 2856 "parse.c" + break; + case 235: + case 280: +#line 849 "parse.y" +{yygotominor.yy46 = OE_Abort;} +#line 2862 "parse.c" + break; + case 236: +#line 850 "parse.y" +{yygotominor.yy46 = OE_None;} +#line 2867 "parse.c" + break; + case 239: +#line 860 "parse.y" +{ + Expr *p = 0; + if( yymsp[-1].minor.yy410.n>0 ){ + p = sqlite3Expr(TK_COLUMN, 0, 0, 0); + if( p ) p->pColl = sqlite3LocateCollSeq(pParse, (char*)yymsp[-1].minor.yy410.z, yymsp[-1].minor.yy410.n); + } + yygotominor.yy174 = sqlite3ExprListAppend(yymsp[-4].minor.yy174, p, &yymsp[-2].minor.yy410); + if( yygotominor.yy174 ) yygotominor.yy174->a[yygotominor.yy174->nExpr-1].sortOrder = yymsp[0].minor.yy46; +} +#line 2880 "parse.c" + break; + case 240: +#line 869 "parse.y" +{ + Expr *p = 0; + if( yymsp[-1].minor.yy410.n>0 ){ + p = sqlite3Expr(TK_COLUMN, 0, 0, 0); + if( p ) p->pColl = sqlite3LocateCollSeq(pParse, (char*)yymsp[-1].minor.yy410.z, yymsp[-1].minor.yy410.n); + } + yygotominor.yy174 = sqlite3ExprListAppend(0, p, &yymsp[-2].minor.yy410); + if( yygotominor.yy174 ) yygotominor.yy174->a[yygotominor.yy174->nExpr-1].sortOrder = yymsp[0].minor.yy46; +} +#line 2893 "parse.c" + break; + case 242: +#line 883 "parse.y" +{sqlite3DropIndex(pParse, yymsp[0].minor.yy373, yymsp[-1].minor.yy46);} +#line 2898 "parse.c" + break; + case 243: + case 244: +#line 888 "parse.y" +{sqlite3Vacuum(pParse);} +#line 2904 "parse.c" + break; + case 245: + case 247: +#line 895 "parse.y" +{sqlite3Pragma(pParse,&yymsp[-3].minor.yy410,&yymsp[-2].minor.yy410,&yymsp[0].minor.yy410,0);} +#line 2910 "parse.c" + break; + case 246: +#line 896 "parse.y" +{sqlite3Pragma(pParse,&yymsp[-3].minor.yy410,&yymsp[-2].minor.yy410,&yymsp[0].minor.yy0,0);} +#line 2915 "parse.c" + break; + case 248: +#line 898 "parse.y" +{ + sqlite3Pragma(pParse,&yymsp[-3].minor.yy410,&yymsp[-2].minor.yy410,&yymsp[0].minor.yy410,1); +} +#line 2922 "parse.c" + break; + case 249: +#line 901 "parse.y" +{sqlite3Pragma(pParse,&yymsp[-4].minor.yy410,&yymsp[-3].minor.yy410,&yymsp[-1].minor.yy410,0);} +#line 2927 "parse.c" + break; + case 250: +#line 902 "parse.y" +{sqlite3Pragma(pParse,&yymsp[-1].minor.yy410,&yymsp[0].minor.yy410,0,0);} +#line 2932 "parse.c" + break; + case 256: +#line 914 "parse.y" +{ + Token all; + all.z = yymsp[-3].minor.yy410.z; + all.n = (yymsp[0].minor.yy0.z - yymsp[-3].minor.yy410.z) + yymsp[0].minor.yy0.n; + sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy243, &all); +} +#line 2942 "parse.c" + break; + case 257: +#line 923 "parse.y" +{ + sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy410, &yymsp[-6].minor.yy410, yymsp[-5].minor.yy46, yymsp[-4].minor.yy370.a, yymsp[-4].minor.yy370.b, yymsp[-2].minor.yy373, yymsp[-1].minor.yy46, yymsp[0].minor.yy172, yymsp[-10].minor.yy46, yymsp[-8].minor.yy46); + yygotominor.yy410 = (yymsp[-6].minor.yy410.n==0?yymsp[-7].minor.yy410:yymsp[-6].minor.yy410); +} +#line 2950 "parse.c" + break; + case 258: + case 261: +#line 929 "parse.y" +{ yygotominor.yy46 = TK_BEFORE; } +#line 2956 "parse.c" + break; + case 259: +#line 930 "parse.y" +{ yygotominor.yy46 = TK_AFTER; } +#line 2961 "parse.c" + break; + case 260: +#line 931 "parse.y" +{ yygotominor.yy46 = TK_INSTEAD;} +#line 2966 "parse.c" + break; + case 262: + case 263: +#line 936 "parse.y" +{yygotominor.yy370.a = yymsp[0].major; yygotominor.yy370.b = 0;} +#line 2972 "parse.c" + break; + case 264: +#line 938 "parse.y" +{yygotominor.yy370.a = TK_UPDATE; yygotominor.yy370.b = yymsp[0].minor.yy432;} +#line 2977 "parse.c" + break; + case 265: + case 266: +#line 941 "parse.y" +{ yygotominor.yy46 = TK_ROW; } +#line 2983 "parse.c" + break; + case 267: +#line 943 "parse.y" +{ yygotominor.yy46 = TK_STATEMENT; } +#line 2988 "parse.c" + break; + case 268: +#line 947 "parse.y" +{ yygotominor.yy172 = 0; } +#line 2993 "parse.c" + break; + case 269: +#line 948 "parse.y" +{ yygotominor.yy172 = yymsp[0].minor.yy172; } +#line 2998 "parse.c" + break; + case 270: +#line 952 "parse.y" +{ + if( yymsp[-2].minor.yy243 ){ + yymsp[-2].minor.yy243->pLast->pNext = yymsp[-1].minor.yy243; + }else{ + yymsp[-2].minor.yy243 = yymsp[-1].minor.yy243; + } + yymsp[-2].minor.yy243->pLast = yymsp[-1].minor.yy243; + yygotominor.yy243 = yymsp[-2].minor.yy243; +} +#line 3011 "parse.c" + break; + case 271: +#line 961 "parse.y" +{ yygotominor.yy243 = 0; } +#line 3016 "parse.c" + break; + case 272: +#line 967 "parse.y" +{ yygotominor.yy243 = sqlite3TriggerUpdateStep(&yymsp[-3].minor.yy410, yymsp[-1].minor.yy174, yymsp[0].minor.yy172, yymsp[-4].minor.yy46); } +#line 3021 "parse.c" + break; + case 273: +#line 972 "parse.y" +{yygotominor.yy243 = sqlite3TriggerInsertStep(&yymsp[-5].minor.yy410, yymsp[-4].minor.yy432, yymsp[-1].minor.yy174, 0, yymsp[-7].minor.yy46);} +#line 3026 "parse.c" + break; + case 274: +#line 975 "parse.y" +{yygotominor.yy243 = sqlite3TriggerInsertStep(&yymsp[-2].minor.yy410, yymsp[-1].minor.yy432, 0, yymsp[0].minor.yy219, yymsp[-4].minor.yy46);} +#line 3031 "parse.c" + break; + case 275: +#line 979 "parse.y" +{yygotominor.yy243 = sqlite3TriggerDeleteStep(&yymsp[-1].minor.yy410, yymsp[0].minor.yy172);} +#line 3036 "parse.c" + break; + case 276: +#line 982 "parse.y" +{yygotominor.yy243 = sqlite3TriggerSelectStep(yymsp[0].minor.yy219); } +#line 3041 "parse.c" + break; + case 277: +#line 985 "parse.y" +{ + yygotominor.yy172 = sqlite3Expr(TK_RAISE, 0, 0, 0); + if( yygotominor.yy172 ){ + yygotominor.yy172->iColumn = OE_Ignore; + sqlite3ExprSpan(yygotominor.yy172, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0); + } +} +#line 3052 "parse.c" + break; + case 278: +#line 992 "parse.y" +{ + yygotominor.yy172 = sqlite3Expr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy410); + if( yygotominor.yy172 ) { + yygotominor.yy172->iColumn = yymsp[-3].minor.yy46; + sqlite3ExprSpan(yygotominor.yy172, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0); + } +} +#line 3063 "parse.c" + break; + case 279: +#line 1002 "parse.y" +{yygotominor.yy46 = OE_Rollback;} +#line 3068 "parse.c" + break; + case 281: +#line 1004 "parse.y" +{yygotominor.yy46 = OE_Fail;} +#line 3073 "parse.c" + break; + case 282: +#line 1009 "parse.y" +{ + sqlite3DropTrigger(pParse,yymsp[0].minor.yy373,yymsp[-1].minor.yy46); +} +#line 3080 "parse.c" + break; + case 283: +#line 1015 "parse.y" +{ + sqlite3Attach(pParse, yymsp[-3].minor.yy172, yymsp[-1].minor.yy172, yymsp[0].minor.yy386); +} +#line 3087 "parse.c" + break; + case 284: +#line 1020 "parse.y" +{ yygotominor.yy386 = 0; } +#line 3092 "parse.c" + break; + case 285: +#line 1021 "parse.y" +{ yygotominor.yy386 = yymsp[0].minor.yy172; } +#line 3097 "parse.c" + break; + case 288: +#line 1027 "parse.y" +{ + sqlite3Detach(pParse, yymsp[0].minor.yy172); +} +#line 3104 "parse.c" + break; + case 289: +#line 1033 "parse.y" +{sqlite3Reindex(pParse, 0, 0);} +#line 3109 "parse.c" + break; + case 290: +#line 1034 "parse.y" +{sqlite3Reindex(pParse, &yymsp[-1].minor.yy410, &yymsp[0].minor.yy410);} +#line 3114 "parse.c" + break; + case 291: +#line 1039 "parse.y" +{sqlite3Analyze(pParse, 0, 0);} +#line 3119 "parse.c" + break; + case 292: +#line 1040 "parse.y" +{sqlite3Analyze(pParse, &yymsp[-1].minor.yy410, &yymsp[0].minor.yy410);} +#line 3124 "parse.c" + break; + case 293: +#line 1045 "parse.y" +{ + sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy373,&yymsp[0].minor.yy410); +} +#line 3131 "parse.c" + break; + case 294: +#line 1048 "parse.y" +{ + sqlite3AlterFinishAddColumn(pParse, &yymsp[0].minor.yy410); +} +#line 3138 "parse.c" + break; + case 295: +#line 1051 "parse.y" +{ + sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy373); +} +#line 3145 "parse.c" + break; + case 298: +#line 1060 "parse.y" +{sqlite3VtabFinishParse(pParse,0);} +#line 3150 "parse.c" + break; + case 299: +#line 1061 "parse.y" +{sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} +#line 3155 "parse.c" + break; + case 300: +#line 1062 "parse.y" +{ + sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy410, &yymsp[-2].minor.yy410, &yymsp[0].minor.yy410); +} +#line 3162 "parse.c" + break; + case 303: +#line 1067 "parse.y" +{sqlite3VtabArgInit(pParse);} +#line 3167 "parse.c" + break; + case 305: + case 306: + case 307: + case 309: +#line 1069 "parse.y" +{sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} +#line 3175 "parse.c" + break; + }; + yygoto = yyRuleInfo[yyruleno].lhs; + yysize = yyRuleInfo[yyruleno].nrhs; + yypParser->yyidx -= yysize; + yyact = yy_find_reduce_action(yymsp[-yysize].stateno,yygoto); + if( yyact < YYNSTATE ){ +#ifdef NDEBUG + /* If we are not debugging and the reduce action popped at least + ** one element off the stack, then we can push the new element back + ** onto the stack here, and skip the stack overflow test in yy_shift(). + ** That gives a significant speed improvement. */ + if( yysize ){ + yypParser->yyidx++; + yymsp -= yysize-1; + yymsp->stateno = yyact; + yymsp->major = yygoto; + yymsp->minor = yygotominor; + }else +#endif + { + yy_shift(yypParser,yyact,yygoto,&yygotominor); + } + }else if( yyact == YYNSTATE + YYNRULE + 1 ){ + yy_accept(yypParser); + } +} + +/* +** The following code executes when the parse fails +*/ +static void yy_parse_failed( + yyParser *yypParser /* The parser */ +){ + sqlite3ParserARG_FETCH; +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); + } +#endif + while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + /* Here code is inserted which will be executed whenever the + ** parser fails */ + sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */ +} + +/* +** The following code executes when a syntax error first occurs. +*/ +static void yy_syntax_error( + yyParser *yypParser, /* The parser */ + int yymajor, /* The major type of the error token */ + YYMINORTYPE yyminor /* The minor type of the error token */ +){ + sqlite3ParserARG_FETCH; +#define TOKEN (yyminor.yy0) +#line 34 "parse.y" + + if( !pParse->parseError ){ + if( TOKEN.z[0] ){ + sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &TOKEN); + }else{ + sqlite3ErrorMsg(pParse, "incomplete SQL statement"); + } + pParse->parseError = 1; + } +#line 3243 "parse.c" + sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */ +} + +/* +** The following is executed when the parser accepts +*/ +static void yy_accept( + yyParser *yypParser /* The parser */ +){ + sqlite3ParserARG_FETCH; +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); + } +#endif + while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); + /* Here code is inserted which will be executed whenever the + ** parser accepts */ + sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */ +} + +/* The main parser program. +** The first argument is a pointer to a structure obtained from +** "sqlite3ParserAlloc" which describes the current state of the parser. +** The second argument is the major token number. The third is +** the minor token. The fourth optional argument is whatever the +** user wants (and specified in the grammar) and is available for +** use by the action routines. +** +** Inputs: +**
      +**
    • A pointer to the parser (an opaque structure.) +**
    • The major token number. +**
    • The minor token number. +**
    • An option argument of a grammar-specified type. +**
    +** +** Outputs: +** None. +*/ +void sqlite3Parser( + void *yyp, /* The parser */ + int yymajor, /* The major token code number */ + sqlite3ParserTOKENTYPE yyminor /* The value for the token */ + sqlite3ParserARG_PDECL /* Optional %extra_argument parameter */ +){ + YYMINORTYPE yyminorunion; + int yyact; /* The parser action. */ + int yyendofinput; /* True if we are at the end of input */ + int yyerrorhit = 0; /* True if yymajor has invoked an error */ + yyParser *yypParser; /* The parser */ + + /* (re)initialize the parser, if necessary */ + yypParser = (yyParser*)yyp; + if( yypParser->yyidx<0 ){ + /* if( yymajor==0 ) return; // not sure why this was here... */ + yypParser->yyidx = 0; + yypParser->yyerrcnt = -1; + yypParser->yystack[0].stateno = 0; + yypParser->yystack[0].major = 0; + } + yyminorunion.yy0 = yyminor; + yyendofinput = (yymajor==0); + sqlite3ParserARG_STORE; + +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); + } +#endif + + do{ + yyact = yy_find_shift_action(yypParser,yymajor); + if( yyactyyerrcnt--; + if( yyendofinput && yypParser->yyidx>=0 ){ + yymajor = 0; + }else{ + yymajor = YYNOCODE; + } + }else if( yyact < YYNSTATE + YYNRULE ){ + yy_reduce(yypParser,yyact-YYNSTATE); + }else if( yyact == YY_ERROR_ACTION ){ + int yymx; +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); + } +#endif +#ifdef YYERRORSYMBOL + /* A syntax error has occurred. + ** The response to an error depends upon whether or not the + ** grammar defines an error token "ERROR". + ** + ** This is what we do if the grammar does define ERROR: + ** + ** * Call the %syntax_error function. + ** + ** * Begin popping the stack until we enter a state where + ** it is legal to shift the error symbol, then shift + ** the error symbol. + ** + ** * Set the error count to three. + ** + ** * Begin accepting and shifting new tokens. No new error + ** processing will occur until three tokens have been + ** shifted successfully. + ** + */ + if( yypParser->yyerrcnt<0 ){ + yy_syntax_error(yypParser,yymajor,yyminorunion); + } + yymx = yypParser->yystack[yypParser->yyidx].major; + if( yymx==YYERRORSYMBOL || yyerrorhit ){ +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sDiscard input token %s\n", + yyTracePrompt,yyTokenName[yymajor]); + } +#endif + yy_destructor(yymajor,&yyminorunion); + yymajor = YYNOCODE; + }else{ + while( + yypParser->yyidx >= 0 && + yymx != YYERRORSYMBOL && + (yyact = yy_find_reduce_action( + yypParser->yystack[yypParser->yyidx].stateno, + YYERRORSYMBOL)) >= YYNSTATE + ){ + yy_pop_parser_stack(yypParser); + } + if( yypParser->yyidx < 0 || yymajor==0 ){ + yy_destructor(yymajor,&yyminorunion); + yy_parse_failed(yypParser); + yymajor = YYNOCODE; + }else if( yymx!=YYERRORSYMBOL ){ + YYMINORTYPE u2; + u2.YYERRSYMDT = 0; + yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); + } + } + yypParser->yyerrcnt = 3; + yyerrorhit = 1; +#else /* YYERRORSYMBOL is not defined */ + /* This is what we do if the grammar does not define ERROR: + ** + ** * Report an error message, and throw away the input token. + ** + ** * If the input token is $, then fail the parse. + ** + ** As before, subsequent error messages are suppressed until + ** three input tokens have been successfully shifted. + */ + if( yypParser->yyerrcnt<=0 ){ + yy_syntax_error(yypParser,yymajor,yyminorunion); + } + yypParser->yyerrcnt = 3; + yy_destructor(yymajor,&yyminorunion); + if( yyendofinput ){ + yy_parse_failed(yypParser); + } + yymajor = YYNOCODE; +#endif + }else{ + yy_accept(yypParser); + yymajor = YYNOCODE; + } + }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); + return; +} diff --git a/src/dep/src/sqlite/parse.h b/src/dep/src/sqlite/parse.h new file mode 100644 index 0000000..65c9a5c --- /dev/null +++ b/src/dep/src/sqlite/parse.h @@ -0,0 +1,153 @@ +#define TK_SEMI 1 +#define TK_EXPLAIN 2 +#define TK_QUERY 3 +#define TK_PLAN 4 +#define TK_BEGIN 5 +#define TK_TRANSACTION 6 +#define TK_DEFERRED 7 +#define TK_IMMEDIATE 8 +#define TK_EXCLUSIVE 9 +#define TK_COMMIT 10 +#define TK_END 11 +#define TK_ROLLBACK 12 +#define TK_CREATE 13 +#define TK_TABLE 14 +#define TK_IF 15 +#define TK_NOT 16 +#define TK_EXISTS 17 +#define TK_TEMP 18 +#define TK_LP 19 +#define TK_RP 20 +#define TK_AS 21 +#define TK_COMMA 22 +#define TK_ID 23 +#define TK_ABORT 24 +#define TK_AFTER 25 +#define TK_ANALYZE 26 +#define TK_ASC 27 +#define TK_ATTACH 28 +#define TK_BEFORE 29 +#define TK_CASCADE 30 +#define TK_CAST 31 +#define TK_CONFLICT 32 +#define TK_DATABASE 33 +#define TK_DESC 34 +#define TK_DETACH 35 +#define TK_EACH 36 +#define TK_FAIL 37 +#define TK_FOR 38 +#define TK_IGNORE 39 +#define TK_INITIALLY 40 +#define TK_INSTEAD 41 +#define TK_LIKE_KW 42 +#define TK_MATCH 43 +#define TK_KEY 44 +#define TK_OF 45 +#define TK_OFFSET 46 +#define TK_PRAGMA 47 +#define TK_RAISE 48 +#define TK_REPLACE 49 +#define TK_RESTRICT 50 +#define TK_ROW 51 +#define TK_STATEMENT 52 +#define TK_TRIGGER 53 +#define TK_VACUUM 54 +#define TK_VIEW 55 +#define TK_VIRTUAL 56 +#define TK_REINDEX 57 +#define TK_RENAME 58 +#define TK_CTIME_KW 59 +#define TK_ANY 60 +#define TK_OR 61 +#define TK_AND 62 +#define TK_IS 63 +#define TK_BETWEEN 64 +#define TK_IN 65 +#define TK_ISNULL 66 +#define TK_NOTNULL 67 +#define TK_NE 68 +#define TK_EQ 69 +#define TK_GT 70 +#define TK_LE 71 +#define TK_LT 72 +#define TK_GE 73 +#define TK_ESCAPE 74 +#define TK_BITAND 75 +#define TK_BITOR 76 +#define TK_LSHIFT 77 +#define TK_RSHIFT 78 +#define TK_PLUS 79 +#define TK_MINUS 80 +#define TK_STAR 81 +#define TK_SLASH 82 +#define TK_REM 83 +#define TK_CONCAT 84 +#define TK_UMINUS 85 +#define TK_UPLUS 86 +#define TK_BITNOT 87 +#define TK_STRING 88 +#define TK_JOIN_KW 89 +#define TK_CONSTRAINT 90 +#define TK_DEFAULT 91 +#define TK_NULL 92 +#define TK_PRIMARY 93 +#define TK_UNIQUE 94 +#define TK_CHECK 95 +#define TK_REFERENCES 96 +#define TK_COLLATE 97 +#define TK_AUTOINCR 98 +#define TK_ON 99 +#define TK_DELETE 100 +#define TK_UPDATE 101 +#define TK_INSERT 102 +#define TK_SET 103 +#define TK_DEFERRABLE 104 +#define TK_FOREIGN 105 +#define TK_DROP 106 +#define TK_UNION 107 +#define TK_ALL 108 +#define TK_EXCEPT 109 +#define TK_INTERSECT 110 +#define TK_SELECT 111 +#define TK_DISTINCT 112 +#define TK_DOT 113 +#define TK_FROM 114 +#define TK_JOIN 115 +#define TK_USING 116 +#define TK_ORDER 117 +#define TK_BY 118 +#define TK_GROUP 119 +#define TK_HAVING 120 +#define TK_LIMIT 121 +#define TK_WHERE 122 +#define TK_INTO 123 +#define TK_VALUES 124 +#define TK_INTEGER 125 +#define TK_FLOAT 126 +#define TK_BLOB 127 +#define TK_REGISTER 128 +#define TK_VARIABLE 129 +#define TK_CASE 130 +#define TK_WHEN 131 +#define TK_THEN 132 +#define TK_ELSE 133 +#define TK_INDEX 134 +#define TK_ALTER 135 +#define TK_TO 136 +#define TK_ADD 137 +#define TK_COLUMNKW 138 +#define TK_TO_TEXT 139 +#define TK_TO_BLOB 140 +#define TK_TO_NUMERIC 141 +#define TK_TO_INT 142 +#define TK_TO_REAL 143 +#define TK_END_OF_FILE 144 +#define TK_ILLEGAL 145 +#define TK_SPACE 146 +#define TK_UNCLOSED_STRING 147 +#define TK_COMMENT 148 +#define TK_FUNCTION 149 +#define TK_COLUMN 150 +#define TK_AGG_FUNCTION 151 +#define TK_AGG_COLUMN 152 +#define TK_CONST_FUNC 153 diff --git a/src/dep/src/sqlite/pragma.c b/src/dep/src/sqlite/pragma.c new file mode 100644 index 0000000..2474fa7 --- /dev/null +++ b/src/dep/src/sqlite/pragma.c @@ -0,0 +1,991 @@ +/* +** 2003 April 6 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains code used to implement the PRAGMA command. +** +** $Id: pragma.c,v 1.126 2007/01/04 22:13:42 drh Exp $ +*/ +#include "sqliteInt.h" +#include "os.h" +#include + +/* Ignore this whole file if pragmas are disabled +*/ +#if !defined(SQLITE_OMIT_PRAGMA) && !defined(SQLITE_OMIT_PARSER) + +#if defined(SQLITE_DEBUG) || defined(SQLITE_TEST) +# include "pager.h" +# include "btree.h" +#endif + +/* +** Interpret the given string as a safety level. Return 0 for OFF, +** 1 for ON or NORMAL and 2 for FULL. Return 1 for an empty or +** unrecognized string argument. +** +** Note that the values returned are one less that the values that +** should be passed into sqlite3BtreeSetSafetyLevel(). The is done +** to support legacy SQL code. The safety level used to be boolean +** and older scripts may have used numbers 0 for OFF and 1 for ON. +*/ +static int getSafetyLevel(const char *z){ + /* 123456789 123456789 */ + static const char zText[] = "onoffalseyestruefull"; + static const u8 iOffset[] = {0, 1, 2, 4, 9, 12, 16}; + static const u8 iLength[] = {2, 2, 3, 5, 3, 4, 4}; + static const u8 iValue[] = {1, 0, 0, 0, 1, 1, 2}; + int i, n; + if( isdigit(*z) ){ + return atoi(z); + } + n = strlen(z); + for(i=0; i='0' && z[0]<='2' ){ + return z[0] - '0'; + }else if( sqlite3StrICmp(z, "file")==0 ){ + return 1; + }else if( sqlite3StrICmp(z, "memory")==0 ){ + return 2; + }else{ + return 0; + } +} +#endif /* SQLITE_PAGER_PRAGMAS */ + +#ifndef SQLITE_OMIT_PAGER_PRAGMAS +/* +** Invalidate temp storage, either when the temp storage is changed +** from default, or when 'file' and the temp_store_directory has changed +*/ +static int invalidateTempStorage(Parse *pParse){ + sqlite3 *db = pParse->db; + if( db->aDb[1].pBt!=0 ){ + if( db->flags & SQLITE_InTrans ){ + sqlite3ErrorMsg(pParse, "temporary storage cannot be changed " + "from within a transaction"); + return SQLITE_ERROR; + } + sqlite3BtreeClose(db->aDb[1].pBt); + db->aDb[1].pBt = 0; + sqlite3ResetInternalSchema(db, 0); + } + return SQLITE_OK; +} +#endif /* SQLITE_PAGER_PRAGMAS */ + +#ifndef SQLITE_OMIT_PAGER_PRAGMAS +/* +** If the TEMP database is open, close it and mark the database schema +** as needing reloading. This must be done when using the TEMP_STORE +** or DEFAULT_TEMP_STORE pragmas. +*/ +static int changeTempStorage(Parse *pParse, const char *zStorageType){ + int ts = getTempStore(zStorageType); + sqlite3 *db = pParse->db; + if( db->temp_store==ts ) return SQLITE_OK; + if( invalidateTempStorage( pParse ) != SQLITE_OK ){ + return SQLITE_ERROR; + } + db->temp_store = ts; + return SQLITE_OK; +} +#endif /* SQLITE_PAGER_PRAGMAS */ + +/* +** Generate code to return a single integer value. +*/ +static void returnSingleInt(Parse *pParse, const char *zLabel, int value){ + Vdbe *v = sqlite3GetVdbe(pParse); + sqlite3VdbeAddOp(v, OP_Integer, value, 0); + if( pParse->explain==0 ){ + sqlite3VdbeSetNumCols(v, 1); + sqlite3VdbeSetColName(v, 0, COLNAME_NAME, zLabel, P3_STATIC); + } + sqlite3VdbeAddOp(v, OP_Callback, 1, 0); +} + +#ifndef SQLITE_OMIT_FLAG_PRAGMAS +/* +** Check to see if zRight and zLeft refer to a pragma that queries +** or changes one of the flags in db->flags. Return 1 if so and 0 if not. +** Also, implement the pragma. +*/ +static int flagPragma(Parse *pParse, const char *zLeft, const char *zRight){ + static const struct sPragmaType { + const char *zName; /* Name of the pragma */ + int mask; /* Mask for the db->flags value */ + } aPragma[] = { + { "vdbe_trace", SQLITE_VdbeTrace }, + { "sql_trace", SQLITE_SqlTrace }, + { "vdbe_listing", SQLITE_VdbeListing }, + { "full_column_names", SQLITE_FullColNames }, + { "short_column_names", SQLITE_ShortColNames }, + { "count_changes", SQLITE_CountRows }, + { "empty_result_callbacks", SQLITE_NullCallback }, + { "legacy_file_format", SQLITE_LegacyFileFmt }, + { "fullfsync", SQLITE_FullFSync }, +#ifndef SQLITE_OMIT_CHECK + { "ignore_check_constraints", SQLITE_IgnoreChecks }, +#endif + /* The following is VERY experimental */ + { "writable_schema", SQLITE_WriteSchema }, + { "omit_readlock", SQLITE_NoReadlock }, + + /* TODO: Maybe it shouldn't be possible to change the ReadUncommitted + ** flag if there are any active statements. */ + { "read_uncommitted", SQLITE_ReadUncommitted }, + }; + int i; + const struct sPragmaType *p; + for(i=0, p=aPragma; izName)==0 ){ + sqlite3 *db = pParse->db; + Vdbe *v; + v = sqlite3GetVdbe(pParse); + if( v ){ + if( zRight==0 ){ + returnSingleInt(pParse, p->zName, (db->flags & p->mask)!=0 ); + }else{ + if( getBoolean(zRight) ){ + db->flags |= p->mask; + }else{ + db->flags &= ~p->mask; + } + } + } + return 1; + } + } + return 0; +} +#endif /* SQLITE_OMIT_FLAG_PRAGMAS */ + +/* +** Process a pragma statement. +** +** Pragmas are of this form: +** +** PRAGMA [database.]id [= value] +** +** The identifier might also be a string. The value is a string, and +** identifier, or a number. If minusFlag is true, then the value is +** a number that was preceded by a minus sign. +** +** If the left side is "database.id" then pId1 is the database name +** and pId2 is the id. If the left side is just "id" then pId1 is the +** id and pId2 is any empty string. +*/ +void sqlite3Pragma( + Parse *pParse, + Token *pId1, /* First part of [database.]id field */ + Token *pId2, /* Second part of [database.]id field, or NULL */ + Token *pValue, /* Token for , or NULL */ + int minusFlag /* True if a '-' sign preceded */ +){ + char *zLeft = 0; /* Nul-terminated UTF-8 string */ + char *zRight = 0; /* Nul-terminated UTF-8 string , or NULL */ + const char *zDb = 0; /* The database name */ + Token *pId; /* Pointer to token */ + int iDb; /* Database index for */ + sqlite3 *db = pParse->db; + Db *pDb; + Vdbe *v = sqlite3GetVdbe(pParse); + if( v==0 ) return; + + /* Interpret the [database.] part of the pragma statement. iDb is the + ** index of the database this pragma is being applied to in db.aDb[]. */ + iDb = sqlite3TwoPartName(pParse, pId1, pId2, &pId); + if( iDb<0 ) return; + pDb = &db->aDb[iDb]; + + /* If the temp database has been explicitly named as part of the + ** pragma, make sure it is open. + */ + if( iDb==1 && sqlite3OpenTempDatabase(pParse) ){ + return; + } + + zLeft = sqlite3NameFromToken(pId); + if( !zLeft ) return; + if( minusFlag ){ + zRight = sqlite3MPrintf("-%T", pValue); + }else{ + zRight = sqlite3NameFromToken(pValue); + } + + zDb = ((iDb>0)?pDb->zName:0); + if( sqlite3AuthCheck(pParse, SQLITE_PRAGMA, zLeft, zRight, zDb) ){ + goto pragma_out; + } + +#ifndef SQLITE_OMIT_PAGER_PRAGMAS + /* + ** PRAGMA [database.]default_cache_size + ** PRAGMA [database.]default_cache_size=N + ** + ** The first form reports the current persistent setting for the + ** page cache size. The value returned is the maximum number of + ** pages in the page cache. The second form sets both the current + ** page cache size value and the persistent page cache size value + ** stored in the database file. + ** + ** The default cache size is stored in meta-value 2 of page 1 of the + ** database file. The cache size is actually the absolute value of + ** this memory location. The sign of meta-value 2 determines the + ** synchronous setting. A negative value means synchronous is off + ** and a positive value means synchronous is on. + */ + if( sqlite3StrICmp(zLeft,"default_cache_size")==0 ){ + static const VdbeOpList getCacheSize[] = { + { OP_ReadCookie, 0, 2, 0}, /* 0 */ + { OP_AbsValue, 0, 0, 0}, + { OP_Dup, 0, 0, 0}, + { OP_Integer, 0, 0, 0}, + { OP_Ne, 0, 6, 0}, + { OP_Integer, 0, 0, 0}, /* 5 */ + { OP_Callback, 1, 0, 0}, + }; + int addr; + if( sqlite3ReadSchema(pParse) ) goto pragma_out; + if( !zRight ){ + sqlite3VdbeSetNumCols(v, 1); + sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "cache_size", P3_STATIC); + addr = sqlite3VdbeAddOpList(v, ArraySize(getCacheSize), getCacheSize); + sqlite3VdbeChangeP1(v, addr, iDb); + sqlite3VdbeChangeP1(v, addr+5, MAX_PAGES); + }else{ + int size = atoi(zRight); + if( size<0 ) size = -size; + sqlite3BeginWriteOperation(pParse, 0, iDb); + sqlite3VdbeAddOp(v, OP_Integer, size, 0); + sqlite3VdbeAddOp(v, OP_ReadCookie, iDb, 2); + addr = sqlite3VdbeAddOp(v, OP_Integer, 0, 0); + sqlite3VdbeAddOp(v, OP_Ge, 0, addr+3); + sqlite3VdbeAddOp(v, OP_Negative, 0, 0); + sqlite3VdbeAddOp(v, OP_SetCookie, iDb, 2); + pDb->pSchema->cache_size = size; + sqlite3BtreeSetCacheSize(pDb->pBt, pDb->pSchema->cache_size); + } + }else + + /* + ** PRAGMA [database.]page_size + ** PRAGMA [database.]page_size=N + ** + ** The first form reports the current setting for the + ** database page size in bytes. The second form sets the + ** database page size value. The value can only be set if + ** the database has not yet been created. + */ + if( sqlite3StrICmp(zLeft,"page_size")==0 ){ + Btree *pBt = pDb->pBt; + if( !zRight ){ + int size = pBt ? sqlite3BtreeGetPageSize(pBt) : 0; + returnSingleInt(pParse, "page_size", size); + }else{ + sqlite3BtreeSetPageSize(pBt, atoi(zRight), -1); + } + }else +#endif /* SQLITE_OMIT_PAGER_PRAGMAS */ + + /* + ** PRAGMA [database.]auto_vacuum + ** PRAGMA [database.]auto_vacuum=N + ** + ** Get or set the (boolean) value of the database 'auto-vacuum' parameter. + */ +#ifndef SQLITE_OMIT_AUTOVACUUM + if( sqlite3StrICmp(zLeft,"auto_vacuum")==0 ){ + Btree *pBt = pDb->pBt; + if( !zRight ){ + int auto_vacuum = + pBt ? sqlite3BtreeGetAutoVacuum(pBt) : SQLITE_DEFAULT_AUTOVACUUM; + returnSingleInt(pParse, "auto_vacuum", auto_vacuum); + }else{ + sqlite3BtreeSetAutoVacuum(pBt, getBoolean(zRight)); + } + }else +#endif + +#ifndef SQLITE_OMIT_PAGER_PRAGMAS + /* + ** PRAGMA [database.]cache_size + ** PRAGMA [database.]cache_size=N + ** + ** The first form reports the current local setting for the + ** page cache size. The local setting can be different from + ** the persistent cache size value that is stored in the database + ** file itself. The value returned is the maximum number of + ** pages in the page cache. The second form sets the local + ** page cache size value. It does not change the persistent + ** cache size stored on the disk so the cache size will revert + ** to its default value when the database is closed and reopened. + ** N should be a positive integer. + */ + if( sqlite3StrICmp(zLeft,"cache_size")==0 ){ + if( sqlite3ReadSchema(pParse) ) goto pragma_out; + if( !zRight ){ + returnSingleInt(pParse, "cache_size", pDb->pSchema->cache_size); + }else{ + int size = atoi(zRight); + if( size<0 ) size = -size; + pDb->pSchema->cache_size = size; + sqlite3BtreeSetCacheSize(pDb->pBt, pDb->pSchema->cache_size); + } + }else + + /* + ** PRAGMA temp_store + ** PRAGMA temp_store = "default"|"memory"|"file" + ** + ** Return or set the local value of the temp_store flag. Changing + ** the local value does not make changes to the disk file and the default + ** value will be restored the next time the database is opened. + ** + ** Note that it is possible for the library compile-time options to + ** override this setting + */ + if( sqlite3StrICmp(zLeft, "temp_store")==0 ){ + if( !zRight ){ + returnSingleInt(pParse, "temp_store", db->temp_store); + }else{ + changeTempStorage(pParse, zRight); + } + }else + + /* + ** PRAGMA temp_store_directory + ** PRAGMA temp_store_directory = ""|"directory_name" + ** + ** Return or set the local value of the temp_store_directory flag. Changing + ** the value sets a specific directory to be used for temporary files. + ** Setting to a null string reverts to the default temporary directory search. + ** If temporary directory is changed, then invalidateTempStorage. + ** + */ + if( sqlite3StrICmp(zLeft, "temp_store_directory")==0 ){ + if( !zRight ){ + if( sqlite3_temp_directory ){ + sqlite3VdbeSetNumCols(v, 1); + sqlite3VdbeSetColName(v, 0, COLNAME_NAME, + "temp_store_directory", P3_STATIC); + sqlite3VdbeOp3(v, OP_String8, 0, 0, sqlite3_temp_directory, 0); + sqlite3VdbeAddOp(v, OP_Callback, 1, 0); + } + }else{ + if( zRight[0] && !sqlite3OsIsDirWritable(zRight) ){ + sqlite3ErrorMsg(pParse, "not a writable directory"); + goto pragma_out; + } + if( TEMP_STORE==0 + || (TEMP_STORE==1 && db->temp_store<=1) + || (TEMP_STORE==2 && db->temp_store==1) + ){ + invalidateTempStorage(pParse); + } + sqliteFree(sqlite3_temp_directory); + if( zRight[0] ){ + sqlite3_temp_directory = zRight; + zRight = 0; + }else{ + sqlite3_temp_directory = 0; + } + } + }else + + /* + ** PRAGMA [database.]synchronous + ** PRAGMA [database.]synchronous=OFF|ON|NORMAL|FULL + ** + ** Return or set the local value of the synchronous flag. Changing + ** the local value does not make changes to the disk file and the + ** default value will be restored the next time the database is + ** opened. + */ + if( sqlite3StrICmp(zLeft,"synchronous")==0 ){ + if( sqlite3ReadSchema(pParse) ) goto pragma_out; + if( !zRight ){ + returnSingleInt(pParse, "synchronous", pDb->safety_level-1); + }else{ + if( !db->autoCommit ){ + sqlite3ErrorMsg(pParse, + "Safety level may not be changed inside a transaction"); + }else{ + pDb->safety_level = getSafetyLevel(zRight)+1; + } + } + }else +#endif /* SQLITE_OMIT_PAGER_PRAGMAS */ + +#ifndef SQLITE_OMIT_FLAG_PRAGMAS + if( flagPragma(pParse, zLeft, zRight) ){ + /* The flagPragma() subroutine also generates any necessary code + ** there is nothing more to do here */ + }else +#endif /* SQLITE_OMIT_FLAG_PRAGMAS */ + +#ifndef SQLITE_OMIT_SCHEMA_PRAGMAS + /* + ** PRAGMA table_info(
    ) + ** + ** Return a single row for each column of the named table. The columns of + ** the returned data set are: + ** + ** cid: Column id (numbered from left to right, starting at 0) + ** name: Column name + ** type: Column declaration type. + ** notnull: True if 'NOT NULL' is part of column declaration + ** dflt_value: The default value for the column, if any. + */ + if( sqlite3StrICmp(zLeft, "table_info")==0 && zRight ){ + Table *pTab; + if( sqlite3ReadSchema(pParse) ) goto pragma_out; + pTab = sqlite3FindTable(db, zRight, zDb); + if( pTab ){ + int i; + Column *pCol; + sqlite3VdbeSetNumCols(v, 6); + sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "cid", P3_STATIC); + sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "name", P3_STATIC); + sqlite3VdbeSetColName(v, 2, COLNAME_NAME, "type", P3_STATIC); + sqlite3VdbeSetColName(v, 3, COLNAME_NAME, "notnull", P3_STATIC); + sqlite3VdbeSetColName(v, 4, COLNAME_NAME, "dflt_value", P3_STATIC); + sqlite3VdbeSetColName(v, 5, COLNAME_NAME, "pk", P3_STATIC); + sqlite3ViewGetColumnNames(pParse, pTab); + for(i=0, pCol=pTab->aCol; inCol; i++, pCol++){ + const Token *pDflt; + sqlite3VdbeAddOp(v, OP_Integer, i, 0); + sqlite3VdbeOp3(v, OP_String8, 0, 0, pCol->zName, 0); + sqlite3VdbeOp3(v, OP_String8, 0, 0, + pCol->zType ? pCol->zType : "", 0); + sqlite3VdbeAddOp(v, OP_Integer, pCol->notNull, 0); + if( pCol->pDflt && (pDflt = &pCol->pDflt->span)->z ){ + sqlite3VdbeOp3(v, OP_String8, 0, 0, (char*)pDflt->z, pDflt->n); + }else{ + sqlite3VdbeAddOp(v, OP_Null, 0, 0); + } + sqlite3VdbeAddOp(v, OP_Integer, pCol->isPrimKey, 0); + sqlite3VdbeAddOp(v, OP_Callback, 6, 0); + } + } + }else + + if( sqlite3StrICmp(zLeft, "index_info")==0 && zRight ){ + Index *pIdx; + Table *pTab; + if( sqlite3ReadSchema(pParse) ) goto pragma_out; + pIdx = sqlite3FindIndex(db, zRight, zDb); + if( pIdx ){ + int i; + pTab = pIdx->pTable; + sqlite3VdbeSetNumCols(v, 3); + sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "seqno", P3_STATIC); + sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "cid", P3_STATIC); + sqlite3VdbeSetColName(v, 2, COLNAME_NAME, "name", P3_STATIC); + for(i=0; inColumn; i++){ + int cnum = pIdx->aiColumn[i]; + sqlite3VdbeAddOp(v, OP_Integer, i, 0); + sqlite3VdbeAddOp(v, OP_Integer, cnum, 0); + assert( pTab->nCol>cnum ); + sqlite3VdbeOp3(v, OP_String8, 0, 0, pTab->aCol[cnum].zName, 0); + sqlite3VdbeAddOp(v, OP_Callback, 3, 0); + } + } + }else + + if( sqlite3StrICmp(zLeft, "index_list")==0 && zRight ){ + Index *pIdx; + Table *pTab; + if( sqlite3ReadSchema(pParse) ) goto pragma_out; + pTab = sqlite3FindTable(db, zRight, zDb); + if( pTab ){ + v = sqlite3GetVdbe(pParse); + pIdx = pTab->pIndex; + if( pIdx ){ + int i = 0; + sqlite3VdbeSetNumCols(v, 3); + sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "seq", P3_STATIC); + sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "name", P3_STATIC); + sqlite3VdbeSetColName(v, 2, COLNAME_NAME, "unique", P3_STATIC); + while(pIdx){ + sqlite3VdbeAddOp(v, OP_Integer, i, 0); + sqlite3VdbeOp3(v, OP_String8, 0, 0, pIdx->zName, 0); + sqlite3VdbeAddOp(v, OP_Integer, pIdx->onError!=OE_None, 0); + sqlite3VdbeAddOp(v, OP_Callback, 3, 0); + ++i; + pIdx = pIdx->pNext; + } + } + } + }else + + if( sqlite3StrICmp(zLeft, "database_list")==0 ){ + int i; + if( sqlite3ReadSchema(pParse) ) goto pragma_out; + sqlite3VdbeSetNumCols(v, 3); + sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "seq", P3_STATIC); + sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "name", P3_STATIC); + sqlite3VdbeSetColName(v, 2, COLNAME_NAME, "file", P3_STATIC); + for(i=0; inDb; i++){ + if( db->aDb[i].pBt==0 ) continue; + assert( db->aDb[i].zName!=0 ); + sqlite3VdbeAddOp(v, OP_Integer, i, 0); + sqlite3VdbeOp3(v, OP_String8, 0, 0, db->aDb[i].zName, 0); + sqlite3VdbeOp3(v, OP_String8, 0, 0, + sqlite3BtreeGetFilename(db->aDb[i].pBt), 0); + sqlite3VdbeAddOp(v, OP_Callback, 3, 0); + } + }else + + if( sqlite3StrICmp(zLeft, "collation_list")==0 ){ + int i = 0; + HashElem *p; + sqlite3VdbeSetNumCols(v, 2); + sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "seq", P3_STATIC); + sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "name", P3_STATIC); + for(p=sqliteHashFirst(&db->aCollSeq); p; p=sqliteHashNext(p)){ + CollSeq *pColl = (CollSeq *)sqliteHashData(p); + sqlite3VdbeAddOp(v, OP_Integer, i++, 0); + sqlite3VdbeOp3(v, OP_String8, 0, 0, pColl->zName, 0); + sqlite3VdbeAddOp(v, OP_Callback, 2, 0); + } + }else +#endif /* SQLITE_OMIT_SCHEMA_PRAGMAS */ + +#ifndef SQLITE_OMIT_FOREIGN_KEY + if( sqlite3StrICmp(zLeft, "foreign_key_list")==0 && zRight ){ + FKey *pFK; + Table *pTab; + if( sqlite3ReadSchema(pParse) ) goto pragma_out; + pTab = sqlite3FindTable(db, zRight, zDb); + if( pTab ){ + v = sqlite3GetVdbe(pParse); + pFK = pTab->pFKey; + if( pFK ){ + int i = 0; + sqlite3VdbeSetNumCols(v, 5); + sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "id", P3_STATIC); + sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "seq", P3_STATIC); + sqlite3VdbeSetColName(v, 2, COLNAME_NAME, "table", P3_STATIC); + sqlite3VdbeSetColName(v, 3, COLNAME_NAME, "from", P3_STATIC); + sqlite3VdbeSetColName(v, 4, COLNAME_NAME, "to", P3_STATIC); + while(pFK){ + int j; + for(j=0; jnCol; j++){ + char *zCol = pFK->aCol[j].zCol; + sqlite3VdbeAddOp(v, OP_Integer, i, 0); + sqlite3VdbeAddOp(v, OP_Integer, j, 0); + sqlite3VdbeOp3(v, OP_String8, 0, 0, pFK->zTo, 0); + sqlite3VdbeOp3(v, OP_String8, 0, 0, + pTab->aCol[pFK->aCol[j].iFrom].zName, 0); + sqlite3VdbeOp3(v, zCol ? OP_String8 : OP_Null, 0, 0, zCol, 0); + sqlite3VdbeAddOp(v, OP_Callback, 5, 0); + } + ++i; + pFK = pFK->pNextFrom; + } + } + } + }else +#endif /* !defined(SQLITE_OMIT_FOREIGN_KEY) */ + +#ifndef NDEBUG + if( sqlite3StrICmp(zLeft, "parser_trace")==0 ){ + extern void sqlite3ParserTrace(FILE*, char *); + if( zRight ){ + if( getBoolean(zRight) ){ + sqlite3ParserTrace(stderr, "parser: "); + }else{ + sqlite3ParserTrace(0, 0); + } + } + }else +#endif + + /* Reinstall the LIKE and GLOB functions. The variant of LIKE + ** used will be case sensitive or not depending on the RHS. + */ + if( sqlite3StrICmp(zLeft, "case_sensitive_like")==0 ){ + if( zRight ){ + sqlite3RegisterLikeFunctions(db, getBoolean(zRight)); + } + }else + +#ifndef SQLITE_OMIT_INTEGRITY_CHECK + if( sqlite3StrICmp(zLeft, "integrity_check")==0 ){ + int i, j, addr; + + /* Code that appears at the end of the integrity check. If no error + ** messages have been generated, output OK. Otherwise output the + ** error message + */ + static const VdbeOpList endCode[] = { + { OP_MemLoad, 0, 0, 0}, + { OP_Integer, 0, 0, 0}, + { OP_Ne, 0, 0, 0}, /* 2 */ + { OP_String8, 0, 0, "ok"}, + { OP_Callback, 1, 0, 0}, + }; + + /* Initialize the VDBE program */ + if( sqlite3ReadSchema(pParse) ) goto pragma_out; + sqlite3VdbeSetNumCols(v, 1); + sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "integrity_check", P3_STATIC); + sqlite3VdbeAddOp(v, OP_MemInt, 0, 0); /* Initialize error count to 0 */ + + /* Do an integrity check on each database file */ + for(i=0; inDb; i++){ + HashElem *x; + Hash *pTbls; + int cnt = 0; + + if( OMIT_TEMPDB && i==1 ) continue; + + sqlite3CodeVerifySchema(pParse, i); + + /* Do an integrity check of the B-Tree + */ + pTbls = &db->aDb[i].pSchema->tblHash; + for(x=sqliteHashFirst(pTbls); x; x=sqliteHashNext(x)){ + Table *pTab = sqliteHashData(x); + Index *pIdx; + sqlite3VdbeAddOp(v, OP_Integer, pTab->tnum, 0); + cnt++; + for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ + sqlite3VdbeAddOp(v, OP_Integer, pIdx->tnum, 0); + cnt++; + } + } + assert( cnt>0 ); + sqlite3VdbeAddOp(v, OP_IntegrityCk, cnt, i); + sqlite3VdbeAddOp(v, OP_Dup, 0, 1); + addr = sqlite3VdbeOp3(v, OP_String8, 0, 0, "ok", P3_STATIC); + sqlite3VdbeAddOp(v, OP_Eq, 0, addr+7); + sqlite3VdbeOp3(v, OP_String8, 0, 0, + sqlite3MPrintf("*** in database %s ***\n", db->aDb[i].zName), + P3_DYNAMIC); + sqlite3VdbeAddOp(v, OP_Pull, 1, 0); + sqlite3VdbeAddOp(v, OP_Concat, 0, 1); + sqlite3VdbeAddOp(v, OP_Callback, 1, 0); + sqlite3VdbeAddOp(v, OP_MemIncr, 1, 0); + + /* Make sure all the indices are constructed correctly. + */ + sqlite3CodeVerifySchema(pParse, i); + for(x=sqliteHashFirst(pTbls); x; x=sqliteHashNext(x)){ + Table *pTab = sqliteHashData(x); + Index *pIdx; + int loopTop; + + if( pTab->pIndex==0 ) continue; + sqlite3OpenTableAndIndices(pParse, pTab, 1, OP_OpenRead); + sqlite3VdbeAddOp(v, OP_MemInt, 0, 1); + loopTop = sqlite3VdbeAddOp(v, OP_Rewind, 1, 0); + sqlite3VdbeAddOp(v, OP_MemIncr, 1, 1); + for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){ + int jmp2; + static const VdbeOpList idxErr[] = { + { OP_MemIncr, 1, 0, 0}, + { OP_String8, 0, 0, "rowid "}, + { OP_Rowid, 1, 0, 0}, + { OP_String8, 0, 0, " missing from index "}, + { OP_String8, 0, 0, 0}, /* 4 */ + { OP_Concat, 2, 0, 0}, + { OP_Callback, 1, 0, 0}, + }; + sqlite3GenerateIndexKey(v, pIdx, 1); + jmp2 = sqlite3VdbeAddOp(v, OP_Found, j+2, 0); + addr = sqlite3VdbeAddOpList(v, ArraySize(idxErr), idxErr); + sqlite3VdbeChangeP3(v, addr+4, pIdx->zName, P3_STATIC); + sqlite3VdbeJumpHere(v, jmp2); + } + sqlite3VdbeAddOp(v, OP_Next, 1, loopTop+1); + sqlite3VdbeJumpHere(v, loopTop); + for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){ + static const VdbeOpList cntIdx[] = { + { OP_MemInt, 0, 2, 0}, + { OP_Rewind, 0, 0, 0}, /* 1 */ + { OP_MemIncr, 1, 2, 0}, + { OP_Next, 0, 0, 0}, /* 3 */ + { OP_MemLoad, 1, 0, 0}, + { OP_MemLoad, 2, 0, 0}, + { OP_Eq, 0, 0, 0}, /* 6 */ + { OP_MemIncr, 1, 0, 0}, + { OP_String8, 0, 0, "wrong # of entries in index "}, + { OP_String8, 0, 0, 0}, /* 9 */ + { OP_Concat, 0, 0, 0}, + { OP_Callback, 1, 0, 0}, + }; + if( pIdx->tnum==0 ) continue; + addr = sqlite3VdbeAddOpList(v, ArraySize(cntIdx), cntIdx); + sqlite3VdbeChangeP1(v, addr+1, j+2); + sqlite3VdbeChangeP2(v, addr+1, addr+4); + sqlite3VdbeChangeP1(v, addr+3, j+2); + sqlite3VdbeChangeP2(v, addr+3, addr+2); + sqlite3VdbeJumpHere(v, addr+6); + sqlite3VdbeChangeP3(v, addr+9, pIdx->zName, P3_STATIC); + } + } + } + addr = sqlite3VdbeAddOpList(v, ArraySize(endCode), endCode); + sqlite3VdbeJumpHere(v, addr+2); + }else +#endif /* SQLITE_OMIT_INTEGRITY_CHECK */ + +#ifndef SQLITE_OMIT_UTF16 + /* + ** PRAGMA encoding + ** PRAGMA encoding = "utf-8"|"utf-16"|"utf-16le"|"utf-16be" + ** + ** In it's first form, this pragma returns the encoding of the main + ** database. If the database is not initialized, it is initialized now. + ** + ** The second form of this pragma is a no-op if the main database file + ** has not already been initialized. In this case it sets the default + ** encoding that will be used for the main database file if a new file + ** is created. If an existing main database file is opened, then the + ** default text encoding for the existing database is used. + ** + ** In all cases new databases created using the ATTACH command are + ** created to use the same default text encoding as the main database. If + ** the main database has not been initialized and/or created when ATTACH + ** is executed, this is done before the ATTACH operation. + ** + ** In the second form this pragma sets the text encoding to be used in + ** new database files created using this database handle. It is only + ** useful if invoked immediately after the main database i + */ + if( sqlite3StrICmp(zLeft, "encoding")==0 ){ + static const struct EncName { + char *zName; + u8 enc; + } encnames[] = { + { "UTF-8", SQLITE_UTF8 }, + { "UTF8", SQLITE_UTF8 }, + { "UTF-16le", SQLITE_UTF16LE }, + { "UTF16le", SQLITE_UTF16LE }, + { "UTF-16be", SQLITE_UTF16BE }, + { "UTF16be", SQLITE_UTF16BE }, + { "UTF-16", 0 }, /* SQLITE_UTF16NATIVE */ + { "UTF16", 0 }, /* SQLITE_UTF16NATIVE */ + { 0, 0 } + }; + const struct EncName *pEnc; + if( !zRight ){ /* "PRAGMA encoding" */ + if( sqlite3ReadSchema(pParse) ) goto pragma_out; + sqlite3VdbeSetNumCols(v, 1); + sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "encoding", P3_STATIC); + sqlite3VdbeAddOp(v, OP_String8, 0, 0); + for(pEnc=&encnames[0]; pEnc->zName; pEnc++){ + if( pEnc->enc==ENC(pParse->db) ){ + sqlite3VdbeChangeP3(v, -1, pEnc->zName, P3_STATIC); + break; + } + } + sqlite3VdbeAddOp(v, OP_Callback, 1, 0); + }else{ /* "PRAGMA encoding = XXX" */ + /* Only change the value of sqlite.enc if the database handle is not + ** initialized. If the main database exists, the new sqlite.enc value + ** will be overwritten when the schema is next loaded. If it does not + ** already exists, it will be created to use the new encoding value. + */ + if( + !(DbHasProperty(db, 0, DB_SchemaLoaded)) || + DbHasProperty(db, 0, DB_Empty) + ){ + for(pEnc=&encnames[0]; pEnc->zName; pEnc++){ + if( 0==sqlite3StrICmp(zRight, pEnc->zName) ){ + ENC(pParse->db) = pEnc->enc ? pEnc->enc : SQLITE_UTF16NATIVE; + break; + } + } + if( !pEnc->zName ){ + sqlite3ErrorMsg(pParse, "unsupported encoding: %s", zRight); + } + } + } + }else +#endif /* SQLITE_OMIT_UTF16 */ + +#ifndef SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS + /* + ** PRAGMA [database.]schema_version + ** PRAGMA [database.]schema_version = + ** + ** PRAGMA [database.]user_version + ** PRAGMA [database.]user_version = + ** + ** The pragma's schema_version and user_version are used to set or get + ** the value of the schema-version and user-version, respectively. Both + ** the schema-version and the user-version are 32-bit signed integers + ** stored in the database header. + ** + ** The schema-cookie is usually only manipulated internally by SQLite. It + ** is incremented by SQLite whenever the database schema is modified (by + ** creating or dropping a table or index). The schema version is used by + ** SQLite each time a query is executed to ensure that the internal cache + ** of the schema used when compiling the SQL query matches the schema of + ** the database against which the compiled query is actually executed. + ** Subverting this mechanism by using "PRAGMA schema_version" to modify + ** the schema-version is potentially dangerous and may lead to program + ** crashes or database corruption. Use with caution! + ** + ** The user-version is not used internally by SQLite. It may be used by + ** applications for any purpose. + */ + if( sqlite3StrICmp(zLeft, "schema_version")==0 || + sqlite3StrICmp(zLeft, "user_version")==0 ){ + + int iCookie; /* Cookie index. 0 for schema-cookie, 6 for user-cookie. */ + if( zLeft[0]=='s' || zLeft[0]=='S' ){ + iCookie = 0; + }else{ + iCookie = 5; + } + + if( zRight ){ + /* Write the specified cookie value */ + static const VdbeOpList setCookie[] = { + { OP_Transaction, 0, 1, 0}, /* 0 */ + { OP_Integer, 0, 0, 0}, /* 1 */ + { OP_SetCookie, 0, 0, 0}, /* 2 */ + }; + int addr = sqlite3VdbeAddOpList(v, ArraySize(setCookie), setCookie); + sqlite3VdbeChangeP1(v, addr, iDb); + sqlite3VdbeChangeP1(v, addr+1, atoi(zRight)); + sqlite3VdbeChangeP1(v, addr+2, iDb); + sqlite3VdbeChangeP2(v, addr+2, iCookie); + }else{ + /* Read the specified cookie value */ + static const VdbeOpList readCookie[] = { + { OP_ReadCookie, 0, 0, 0}, /* 0 */ + { OP_Callback, 1, 0, 0} + }; + int addr = sqlite3VdbeAddOpList(v, ArraySize(readCookie), readCookie); + sqlite3VdbeChangeP1(v, addr, iDb); + sqlite3VdbeChangeP2(v, addr, iCookie); + sqlite3VdbeSetNumCols(v, 1); + sqlite3VdbeSetColName(v, 0, COLNAME_NAME, zLeft, P3_TRANSIENT); + } + } +#endif /* SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS */ + +#if defined(SQLITE_DEBUG) || defined(SQLITE_TEST) + /* + ** Report the current state of file logs for all databases + */ + if( sqlite3StrICmp(zLeft, "lock_status")==0 ){ + static const char *const azLockName[] = { + "unlocked", "shared", "reserved", "pending", "exclusive" + }; + int i; + Vdbe *v = sqlite3GetVdbe(pParse); + sqlite3VdbeSetNumCols(v, 2); + sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "database", P3_STATIC); + sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "status", P3_STATIC); + for(i=0; inDb; i++){ + Btree *pBt; + Pager *pPager; + if( db->aDb[i].zName==0 ) continue; + sqlite3VdbeOp3(v, OP_String8, 0, 0, db->aDb[i].zName, P3_STATIC); + pBt = db->aDb[i].pBt; + if( pBt==0 || (pPager = sqlite3BtreePager(pBt))==0 ){ + sqlite3VdbeOp3(v, OP_String8, 0, 0, "closed", P3_STATIC); + }else{ + int j = sqlite3pager_lockstate(pPager); + sqlite3VdbeOp3(v, OP_String8, 0, 0, + (j>=0 && j<=4) ? azLockName[j] : "unknown", P3_STATIC); + } + sqlite3VdbeAddOp(v, OP_Callback, 2, 0); + } + }else +#endif + +#ifdef SQLITE_SSE + /* + ** Check to see if the sqlite_statements table exists. Create it + ** if it does not. + */ + if( sqlite3StrICmp(zLeft, "create_sqlite_statement_table")==0 ){ + extern int sqlite3CreateStatementsTable(Parse*); + sqlite3CreateStatementsTable(pParse); + }else +#endif + +#if SQLITE_HAS_CODEC + if( sqlite3StrICmp(zLeft, "key")==0 ){ + sqlite3_key(db, zRight, strlen(zRight)); + }else +#endif +#if SQLITE_HAS_CODEC || defined(SQLITE_ENABLE_CEROD) + if( sqlite3StrICmp(zLeft, "activate_extensions")==0 ){ +#if SQLITE_HAS_CODEC + if( sqlite3StrNICmp(zRight, "see-", 4)==0 ){ + extern void sqlite3_activate_see(const char*); + sqlite3_activate_see(&zRight[4]); + } +#endif +#ifdef SQLITE_ENABLE_CEROD + if( sqlite3StrNICmp(zRight, "cerod-", 6)==0 ){ + extern void sqlite3_activate_cerod(const char*); + sqlite3_activate_cerod(&zRight[6]); + } +#endif + } +#endif + + {} + + if( v ){ + /* Code an OP_Expire at the end of each PRAGMA program to cause + ** the VDBE implementing the pragma to expire. Most (all?) pragmas + ** are only valid for a single execution. + */ + sqlite3VdbeAddOp(v, OP_Expire, 1, 0); + + /* + ** Reset the safety level, in case the fullfsync flag or synchronous + ** setting changed. + */ +#ifndef SQLITE_OMIT_PAGER_PRAGMAS + if( db->autoCommit ){ + sqlite3BtreeSetSafetyLevel(pDb->pBt, pDb->safety_level, + (db->flags&SQLITE_FullFSync)!=0); + } +#endif + } +pragma_out: + sqliteFree(zLeft); + sqliteFree(zRight); +} + +#endif /* SQLITE_OMIT_PRAGMA || SQLITE_OMIT_PARSER */ diff --git a/src/dep/src/sqlite/prepare.c b/src/dep/src/sqlite/prepare.c new file mode 100644 index 0000000..2c68112 --- /dev/null +++ b/src/dep/src/sqlite/prepare.c @@ -0,0 +1,682 @@ +/* +** 2005 May 25 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains the implementation of the sqlite3_prepare() +** interface, and routines that contribute to loading the database schema +** from disk. +** +** $Id: prepare.c,v 1.43 2007/01/09 14:01:13 drh Exp $ +*/ +#include "sqliteInt.h" +#include "os.h" +#include + +/* +** Fill the InitData structure with an error message that indicates +** that the database is corrupt. +*/ +static void corruptSchema(InitData *pData, const char *zExtra){ + if( !sqlite3MallocFailed() ){ + sqlite3SetString(pData->pzErrMsg, "malformed database schema", + zExtra!=0 && zExtra[0]!=0 ? " - " : (char*)0, zExtra, (char*)0); + } + pData->rc = SQLITE_CORRUPT; +} + +/* +** This is the callback routine for the code that initializes the +** database. See sqlite3Init() below for additional information. +** This routine is also called from the OP_ParseSchema opcode of the VDBE. +** +** Each callback contains the following information: +** +** argv[0] = name of thing being created +** argv[1] = root page number for table or index. 0 for trigger or view. +** argv[2] = SQL text for the CREATE statement. +** +*/ +int sqlite3InitCallback(void *pInit, int argc, char **argv, char **azColName){ + InitData *pData = (InitData*)pInit; + sqlite3 *db = pData->db; + int iDb = pData->iDb; + + pData->rc = SQLITE_OK; + DbClearProperty(db, iDb, DB_Empty); + if( sqlite3MallocFailed() ){ + corruptSchema(pData, 0); + return SQLITE_NOMEM; + } + + assert( argc==3 ); + if( argv==0 ) return 0; /* Might happen if EMPTY_RESULT_CALLBACKS are on */ + if( argv[1]==0 ){ + corruptSchema(pData, 0); + return 1; + } + assert( iDb>=0 && iDbnDb ); + if( argv[2] && argv[2][0] ){ + /* Call the parser to process a CREATE TABLE, INDEX or VIEW. + ** But because db->init.busy is set to 1, no VDBE code is generated + ** or executed. All the parser does is build the internal data + ** structures that describe the table, index, or view. + */ + char *zErr; + int rc; + assert( db->init.busy ); + db->init.iDb = iDb; + db->init.newTnum = atoi(argv[1]); + rc = sqlite3_exec(db, argv[2], 0, 0, &zErr); + db->init.iDb = 0; + assert( rc!=SQLITE_OK || zErr==0 ); + if( SQLITE_OK!=rc ){ + pData->rc = rc; + if( rc==SQLITE_NOMEM ){ + sqlite3FailedMalloc(); + }else if( rc!=SQLITE_INTERRUPT ){ + corruptSchema(pData, zErr); + } + sqlite3_free(zErr); + return 1; + } + }else{ + /* If the SQL column is blank it means this is an index that + ** was created to be the PRIMARY KEY or to fulfill a UNIQUE + ** constraint for a CREATE TABLE. The index should have already + ** been created when we processed the CREATE TABLE. All we have + ** to do here is record the root page number for that index. + */ + Index *pIndex; + pIndex = sqlite3FindIndex(db, argv[0], db->aDb[iDb].zName); + if( pIndex==0 || pIndex->tnum!=0 ){ + /* This can occur if there exists an index on a TEMP table which + ** has the same name as another index on a permanent index. Since + ** the permanent table is hidden by the TEMP table, we can also + ** safely ignore the index on the permanent table. + */ + /* Do Nothing */; + }else{ + pIndex->tnum = atoi(argv[1]); + } + } + return 0; +} + +/* +** Attempt to read the database schema and initialize internal +** data structures for a single database file. The index of the +** database file is given by iDb. iDb==0 is used for the main +** database. iDb==1 should never be used. iDb>=2 is used for +** auxiliary databases. Return one of the SQLITE_ error codes to +** indicate success or failure. +*/ +static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){ + int rc; + BtCursor *curMain; + int size; + Table *pTab; + Db *pDb; + char const *azArg[4]; + int meta[10]; + InitData initData; + char const *zMasterSchema; + char const *zMasterName = SCHEMA_TABLE(iDb); + + /* + ** The master database table has a structure like this + */ + static const char master_schema[] = + "CREATE TABLE sqlite_master(\n" + " type text,\n" + " name text,\n" + " tbl_name text,\n" + " rootpage integer,\n" + " sql text\n" + ")" + ; +#ifndef SQLITE_OMIT_TEMPDB + static const char temp_master_schema[] = + "CREATE TEMP TABLE sqlite_temp_master(\n" + " type text,\n" + " name text,\n" + " tbl_name text,\n" + " rootpage integer,\n" + " sql text\n" + ")" + ; +#else + #define temp_master_schema 0 +#endif + + assert( iDb>=0 && iDbnDb ); + assert( db->aDb[iDb].pSchema ); + + /* zMasterSchema and zInitScript are set to point at the master schema + ** and initialisation script appropriate for the database being + ** initialised. zMasterName is the name of the master table. + */ + if( !OMIT_TEMPDB && iDb==1 ){ + zMasterSchema = temp_master_schema; + }else{ + zMasterSchema = master_schema; + } + zMasterName = SCHEMA_TABLE(iDb); + + /* Construct the schema tables. */ + sqlite3SafetyOff(db); + azArg[0] = zMasterName; + azArg[1] = "1"; + azArg[2] = zMasterSchema; + azArg[3] = 0; + initData.db = db; + initData.iDb = iDb; + initData.pzErrMsg = pzErrMsg; + rc = sqlite3InitCallback(&initData, 3, (char **)azArg, 0); + if( rc ){ + sqlite3SafetyOn(db); + return initData.rc; + } + pTab = sqlite3FindTable(db, zMasterName, db->aDb[iDb].zName); + if( pTab ){ + pTab->readOnly = 1; + } + sqlite3SafetyOn(db); + + /* Create a cursor to hold the database open + */ + pDb = &db->aDb[iDb]; + if( pDb->pBt==0 ){ + if( !OMIT_TEMPDB && iDb==1 ){ + DbSetProperty(db, 1, DB_SchemaLoaded); + } + return SQLITE_OK; + } + rc = sqlite3BtreeCursor(pDb->pBt, MASTER_ROOT, 0, 0, 0, &curMain); + if( rc!=SQLITE_OK && rc!=SQLITE_EMPTY ){ + sqlite3SetString(pzErrMsg, sqlite3ErrStr(rc), (char*)0); + return rc; + } + + /* Get the database meta information. + ** + ** Meta values are as follows: + ** meta[0] Schema cookie. Changes with each schema change. + ** meta[1] File format of schema layer. + ** meta[2] Size of the page cache. + ** meta[3] Use freelist if 0. Autovacuum if greater than zero. + ** meta[4] Db text encoding. 1:UTF-8 2:UTF-16LE 3:UTF-16BE + ** meta[5] The user cookie. Used by the application. + ** meta[6] + ** meta[7] + ** meta[8] + ** meta[9] + ** + ** Note: The #defined SQLITE_UTF* symbols in sqliteInt.h correspond to + ** the possible values of meta[4]. + */ + if( rc==SQLITE_OK ){ + int i; + for(i=0; rc==SQLITE_OK && ipBt, i+1, (u32 *)&meta[i]); + } + if( rc ){ + sqlite3SetString(pzErrMsg, sqlite3ErrStr(rc), (char*)0); + sqlite3BtreeCloseCursor(curMain); + return rc; + } + }else{ + memset(meta, 0, sizeof(meta)); + } + pDb->pSchema->schema_cookie = meta[0]; + + /* If opening a non-empty database, check the text encoding. For the + ** main database, set sqlite3.enc to the encoding of the main database. + ** For an attached db, it is an error if the encoding is not the same + ** as sqlite3.enc. + */ + if( meta[4] ){ /* text encoding */ + if( iDb==0 ){ + /* If opening the main database, set ENC(db). */ + ENC(db) = (u8)meta[4]; + db->pDfltColl = sqlite3FindCollSeq(db, SQLITE_UTF8, "BINARY", 6, 0); + }else{ + /* If opening an attached database, the encoding much match ENC(db) */ + if( meta[4]!=ENC(db) ){ + sqlite3BtreeCloseCursor(curMain); + sqlite3SetString(pzErrMsg, "attached databases must use the same" + " text encoding as main database", (char*)0); + return SQLITE_ERROR; + } + } + }else{ + DbSetProperty(db, iDb, DB_Empty); + } + pDb->pSchema->enc = ENC(db); + + size = meta[2]; + if( size==0 ){ size = MAX_PAGES; } + pDb->pSchema->cache_size = size; + sqlite3BtreeSetCacheSize(pDb->pBt, pDb->pSchema->cache_size); + + /* + ** file_format==1 Version 3.0.0. + ** file_format==2 Version 3.1.3. // ALTER TABLE ADD COLUMN + ** file_format==3 Version 3.1.4. // ditto but with non-NULL defaults + ** file_format==4 Version 3.3.0. // DESC indices. Boolean constants + */ + pDb->pSchema->file_format = meta[1]; + if( pDb->pSchema->file_format==0 ){ + pDb->pSchema->file_format = 1; + } + if( pDb->pSchema->file_format>SQLITE_MAX_FILE_FORMAT ){ + sqlite3BtreeCloseCursor(curMain); + sqlite3SetString(pzErrMsg, "unsupported file format", (char*)0); + return SQLITE_ERROR; + } + + + /* Read the schema information out of the schema tables + */ + assert( db->init.busy ); + if( rc==SQLITE_EMPTY ){ + /* For an empty database, there is nothing to read */ + rc = SQLITE_OK; + }else{ + char *zSql; + zSql = sqlite3MPrintf( + "SELECT name, rootpage, sql FROM '%q'.%s", + db->aDb[iDb].zName, zMasterName); + sqlite3SafetyOff(db); + rc = sqlite3_exec(db, zSql, sqlite3InitCallback, &initData, 0); + if( rc==SQLITE_ABORT ) rc = initData.rc; + sqlite3SafetyOn(db); + sqliteFree(zSql); +#ifndef SQLITE_OMIT_ANALYZE + if( rc==SQLITE_OK ){ + sqlite3AnalysisLoad(db, iDb); + } +#endif + sqlite3BtreeCloseCursor(curMain); + } + if( sqlite3MallocFailed() ){ + /* sqlite3SetString(pzErrMsg, "out of memory", (char*)0); */ + rc = SQLITE_NOMEM; + sqlite3ResetInternalSchema(db, 0); + } + if( rc==SQLITE_OK ){ + DbSetProperty(db, iDb, DB_SchemaLoaded); + }else{ + sqlite3ResetInternalSchema(db, iDb); + } + return rc; +} + +/* +** Initialize all database files - the main database file, the file +** used to store temporary tables, and any additional database files +** created using ATTACH statements. Return a success code. If an +** error occurs, write an error message into *pzErrMsg. +** +** After a database is initialized, the DB_SchemaLoaded bit is set +** bit is set in the flags field of the Db structure. If the database +** file was of zero-length, then the DB_Empty flag is also set. +*/ +int sqlite3Init(sqlite3 *db, char **pzErrMsg){ + int i, rc; + int called_initone = 0; + + if( db->init.busy ) return SQLITE_OK; + rc = SQLITE_OK; + db->init.busy = 1; + for(i=0; rc==SQLITE_OK && inDb; i++){ + if( DbHasProperty(db, i, DB_SchemaLoaded) || i==1 ) continue; + rc = sqlite3InitOne(db, i, pzErrMsg); + if( rc ){ + sqlite3ResetInternalSchema(db, i); + } + called_initone = 1; + } + + /* Once all the other databases have been initialised, load the schema + ** for the TEMP database. This is loaded last, as the TEMP database + ** schema may contain references to objects in other databases. + */ +#ifndef SQLITE_OMIT_TEMPDB + if( rc==SQLITE_OK && db->nDb>1 && !DbHasProperty(db, 1, DB_SchemaLoaded) ){ + rc = sqlite3InitOne(db, 1, pzErrMsg); + if( rc ){ + sqlite3ResetInternalSchema(db, 1); + } + called_initone = 1; + } +#endif + + db->init.busy = 0; + if( rc==SQLITE_OK && called_initone ){ + sqlite3CommitInternalChanges(db); + } + + return rc; +} + +/* +** This routine is a no-op if the database schema is already initialised. +** Otherwise, the schema is loaded. An error code is returned. +*/ +int sqlite3ReadSchema(Parse *pParse){ + int rc = SQLITE_OK; + sqlite3 *db = pParse->db; + if( !db->init.busy ){ + rc = sqlite3Init(db, &pParse->zErrMsg); + } + if( rc!=SQLITE_OK ){ + pParse->rc = rc; + pParse->nErr++; + } + return rc; +} + + +/* +** Check schema cookies in all databases. If any cookie is out +** of date, return 0. If all schema cookies are current, return 1. +*/ +static int schemaIsValid(sqlite3 *db){ + int iDb; + int rc; + BtCursor *curTemp; + int cookie; + int allOk = 1; + + for(iDb=0; allOk && iDbnDb; iDb++){ + Btree *pBt; + pBt = db->aDb[iDb].pBt; + if( pBt==0 ) continue; + rc = sqlite3BtreeCursor(pBt, MASTER_ROOT, 0, 0, 0, &curTemp); + if( rc==SQLITE_OK ){ + rc = sqlite3BtreeGetMeta(pBt, 1, (u32 *)&cookie); + if( rc==SQLITE_OK && cookie!=db->aDb[iDb].pSchema->schema_cookie ){ + allOk = 0; + } + sqlite3BtreeCloseCursor(curTemp); + } + } + return allOk; +} + +/* +** Convert a schema pointer into the iDb index that indicates +** which database file in db->aDb[] the schema refers to. +** +** If the same database is attached more than once, the first +** attached database is returned. +*/ +int sqlite3SchemaToIndex(sqlite3 *db, Schema *pSchema){ + int i = -1000000; + + /* If pSchema is NULL, then return -1000000. This happens when code in + ** expr.c is trying to resolve a reference to a transient table (i.e. one + ** created by a sub-select). In this case the return value of this + ** function should never be used. + ** + ** We return -1000000 instead of the more usual -1 simply because using + ** -1000000 as incorrectly using -1000000 index into db->aDb[] is much + ** more likely to cause a segfault than -1 (of course there are assert() + ** statements too, but it never hurts to play the odds). + */ + if( pSchema ){ + for(i=0; inDb; i++){ + if( db->aDb[i].pSchema==pSchema ){ + break; + } + } + assert( i>=0 &&i>=0 && inDb ); + } + return i; +} + +/* +** Compile the UTF-8 encoded SQL statement zSql into a statement handle. +*/ +int sqlite3Prepare( + sqlite3 *db, /* Database handle. */ + const char *zSql, /* UTF-8 encoded SQL statement. */ + int nBytes, /* Length of zSql in bytes. */ + int saveSqlFlag, /* True to copy SQL text into the sqlite3_stmt */ + sqlite3_stmt **ppStmt, /* OUT: A pointer to the prepared statement */ + const char **pzTail /* OUT: End of parsed string */ +){ + Parse sParse; + char *zErrMsg = 0; + int rc = SQLITE_OK; + int i; + + /* Assert that malloc() has not failed */ + assert( !sqlite3MallocFailed() ); + + assert( ppStmt ); + *ppStmt = 0; + if( sqlite3SafetyOn(db) ){ + return SQLITE_MISUSE; + } + + /* If any attached database schemas are locked, do not proceed with + ** compilation. Instead return SQLITE_LOCKED immediately. + */ + for(i=0; inDb; i++) { + Btree *pBt = db->aDb[i].pBt; + if( pBt && sqlite3BtreeSchemaLocked(pBt) ){ + const char *zDb = db->aDb[i].zName; + sqlite3Error(db, SQLITE_LOCKED, "database schema is locked: %s", zDb); + sqlite3SafetyOff(db); + return SQLITE_LOCKED; + } + } + + memset(&sParse, 0, sizeof(sParse)); + sParse.db = db; + if( nBytes>=0 && zSql[nBytes]!=0 ){ + char *zSqlCopy = sqlite3StrNDup(zSql, nBytes); + sqlite3RunParser(&sParse, zSqlCopy, &zErrMsg); + sParse.zTail += zSql - zSqlCopy; + sqliteFree(zSqlCopy); + }else{ + sqlite3RunParser(&sParse, zSql, &zErrMsg); + } + + if( sqlite3MallocFailed() ){ + sParse.rc = SQLITE_NOMEM; + } + if( sParse.rc==SQLITE_DONE ) sParse.rc = SQLITE_OK; + if( sParse.checkSchema && !schemaIsValid(db) ){ + sParse.rc = SQLITE_SCHEMA; + } + if( sParse.rc==SQLITE_SCHEMA ){ + sqlite3ResetInternalSchema(db, 0); + } + if( sqlite3MallocFailed() ){ + sParse.rc = SQLITE_NOMEM; + } + if( pzTail ){ + *pzTail = sParse.zTail; + } + rc = sParse.rc; + +#ifndef SQLITE_OMIT_EXPLAIN + if( rc==SQLITE_OK && sParse.pVdbe && sParse.explain ){ + if( sParse.explain==2 ){ + sqlite3VdbeSetNumCols(sParse.pVdbe, 3); + sqlite3VdbeSetColName(sParse.pVdbe, 0, COLNAME_NAME, "order", P3_STATIC); + sqlite3VdbeSetColName(sParse.pVdbe, 1, COLNAME_NAME, "from", P3_STATIC); + sqlite3VdbeSetColName(sParse.pVdbe, 2, COLNAME_NAME, "detail", P3_STATIC); + }else{ + sqlite3VdbeSetNumCols(sParse.pVdbe, 5); + sqlite3VdbeSetColName(sParse.pVdbe, 0, COLNAME_NAME, "addr", P3_STATIC); + sqlite3VdbeSetColName(sParse.pVdbe, 1, COLNAME_NAME, "opcode", P3_STATIC); + sqlite3VdbeSetColName(sParse.pVdbe, 2, COLNAME_NAME, "p1", P3_STATIC); + sqlite3VdbeSetColName(sParse.pVdbe, 3, COLNAME_NAME, "p2", P3_STATIC); + sqlite3VdbeSetColName(sParse.pVdbe, 4, COLNAME_NAME, "p3", P3_STATIC); + } + } +#endif + + if( sqlite3SafetyOff(db) ){ + rc = SQLITE_MISUSE; + } + if( rc==SQLITE_OK ){ + if( saveSqlFlag ){ + sqlite3VdbeSetSql(sParse.pVdbe, zSql, sParse.zTail - zSql); + } + *ppStmt = (sqlite3_stmt*)sParse.pVdbe; + }else if( sParse.pVdbe ){ + sqlite3_finalize((sqlite3_stmt*)sParse.pVdbe); + } + + if( zErrMsg ){ + sqlite3Error(db, rc, "%s", zErrMsg); + sqliteFree(zErrMsg); + }else{ + sqlite3Error(db, rc, 0); + } + + rc = sqlite3ApiExit(db, rc); + sqlite3ReleaseThreadData(); + assert( (rc&db->errMask)==rc ); + return rc; +} + +/* +** Rerun the compilation of a statement after a schema change. +** Return true if the statement was recompiled successfully. +** Return false if there is an error of some kind. +*/ +int sqlite3Reprepare(Vdbe *p){ + int rc; + Vdbe *pNew; + const char *zSql; + sqlite3 *db; + + zSql = sqlite3VdbeGetSql(p); + if( zSql==0 ){ + return 0; + } + db = sqlite3VdbeDb(p); + rc = sqlite3Prepare(db, zSql, -1, 0, (sqlite3_stmt**)&pNew, 0); + if( rc ){ + assert( pNew==0 ); + return 0; + }else{ + assert( pNew!=0 ); + } + sqlite3VdbeSwap(pNew, p); + sqlite3_transfer_bindings((sqlite3_stmt*)pNew, (sqlite3_stmt*)p); + sqlite3VdbeResetStepResult(pNew); + sqlite3VdbeFinalize(pNew); + return 1; +} + + +/* +** Two versions of the official API. Legacy and new use. In the legacy +** version, the original SQL text is not saved in the prepared statement +** and so if a schema change occurs, SQLITE_SCHEMA is returned by +** sqlite3_step(). In the new version, the original SQL text is retained +** and the statement is automatically recompiled if an schema change +** occurs. +*/ +int sqlite3_prepare( + sqlite3 *db, /* Database handle. */ + const char *zSql, /* UTF-8 encoded SQL statement. */ + int nBytes, /* Length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /* OUT: A pointer to the prepared statement */ + const char **pzTail /* OUT: End of parsed string */ +){ + return sqlite3Prepare(db,zSql,nBytes,0,ppStmt,pzTail); +} +int sqlite3_prepare_v2( + sqlite3 *db, /* Database handle. */ + const char *zSql, /* UTF-8 encoded SQL statement. */ + int nBytes, /* Length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /* OUT: A pointer to the prepared statement */ + const char **pzTail /* OUT: End of parsed string */ +){ + return sqlite3Prepare(db,zSql,nBytes,1,ppStmt,pzTail); +} + + +#ifndef SQLITE_OMIT_UTF16 +/* +** Compile the UTF-16 encoded SQL statement zSql into a statement handle. +*/ +static int sqlite3Prepare16( + sqlite3 *db, /* Database handle. */ + const void *zSql, /* UTF-8 encoded SQL statement. */ + int nBytes, /* Length of zSql in bytes. */ + int saveSqlFlag, /* True to save SQL text into the sqlite3_stmt */ + sqlite3_stmt **ppStmt, /* OUT: A pointer to the prepared statement */ + const void **pzTail /* OUT: End of parsed string */ +){ + /* This function currently works by first transforming the UTF-16 + ** encoded string to UTF-8, then invoking sqlite3_prepare(). The + ** tricky bit is figuring out the pointer to return in *pzTail. + */ + char *zSql8; + const char *zTail8 = 0; + int rc = SQLITE_OK; + + if( sqlite3SafetyCheck(db) ){ + return SQLITE_MISUSE; + } + zSql8 = sqlite3utf16to8(zSql, nBytes); + if( zSql8 ){ + rc = sqlite3Prepare(db, zSql8, -1, saveSqlFlag, ppStmt, &zTail8); + } + + if( zTail8 && pzTail ){ + /* If sqlite3_prepare returns a tail pointer, we calculate the + ** equivalent pointer into the UTF-16 string by counting the unicode + ** characters between zSql8 and zTail8, and then returning a pointer + ** the same number of characters into the UTF-16 string. + */ + int chars_parsed = sqlite3utf8CharLen(zSql8, zTail8-zSql8); + *pzTail = (u8 *)zSql + sqlite3utf16ByteLen(zSql, chars_parsed); + } + sqliteFree(zSql8); + return sqlite3ApiExit(db, rc); +} + +/* +** Two versions of the official API. Legacy and new use. In the legacy +** version, the original SQL text is not saved in the prepared statement +** and so if a schema change occurs, SQLITE_SCHEMA is returned by +** sqlite3_step(). In the new version, the original SQL text is retained +** and the statement is automatically recompiled if an schema change +** occurs. +*/ +int sqlite3_prepare16( + sqlite3 *db, /* Database handle. */ + const void *zSql, /* UTF-8 encoded SQL statement. */ + int nBytes, /* Length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /* OUT: A pointer to the prepared statement */ + const void **pzTail /* OUT: End of parsed string */ +){ + return sqlite3Prepare16(db,zSql,nBytes,0,ppStmt,pzTail); +} +int sqlite3_prepare16_v2( + sqlite3 *db, /* Database handle. */ + const void *zSql, /* UTF-8 encoded SQL statement. */ + int nBytes, /* Length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /* OUT: A pointer to the prepared statement */ + const void **pzTail /* OUT: End of parsed string */ +){ + return sqlite3Prepare16(db,zSql,nBytes,1,ppStmt,pzTail); +} + +#endif /* SQLITE_OMIT_UTF16 */ diff --git a/src/dep/src/sqlite/printf.c b/src/dep/src/sqlite/printf.c new file mode 100644 index 0000000..b4c37fb --- /dev/null +++ b/src/dep/src/sqlite/printf.c @@ -0,0 +1,863 @@ +/* +** The "printf" code that follows dates from the 1980's. It is in +** the public domain. The original comments are included here for +** completeness. They are very out-of-date but might be useful as +** an historical reference. Most of the "enhancements" have been backed +** out so that the functionality is now the same as standard printf(). +** +************************************************************************** +** +** The following modules is an enhanced replacement for the "printf" subroutines +** found in the standard C library. The following enhancements are +** supported: +** +** + Additional functions. The standard set of "printf" functions +** includes printf, fprintf, sprintf, vprintf, vfprintf, and +** vsprintf. This module adds the following: +** +** * snprintf -- Works like sprintf, but has an extra argument +** which is the size of the buffer written to. +** +** * mprintf -- Similar to sprintf. Writes output to memory +** obtained from malloc. +** +** * xprintf -- Calls a function to dispose of output. +** +** * nprintf -- No output, but returns the number of characters +** that would have been output by printf. +** +** * A v- version (ex: vsnprintf) of every function is also +** supplied. +** +** + A few extensions to the formatting notation are supported: +** +** * The "=" flag (similar to "-") causes the output to be +** be centered in the appropriately sized field. +** +** * The %b field outputs an integer in binary notation. +** +** * The %c field now accepts a precision. The character output +** is repeated by the number of times the precision specifies. +** +** * The %' field works like %c, but takes as its character the +** next character of the format string, instead of the next +** argument. For example, printf("%.78'-") prints 78 minus +** signs, the same as printf("%.78c",'-'). +** +** + When compiled using GCC on a SPARC, this version of printf is +** faster than the library printf for SUN OS 4.1. +** +** + All functions are fully reentrant. +** +*/ +#include "sqliteInt.h" + +/* +** Conversion types fall into various categories as defined by the +** following enumeration. +*/ +#define etRADIX 1 /* Integer types. %d, %x, %o, and so forth */ +#define etFLOAT 2 /* Floating point. %f */ +#define etEXP 3 /* Exponentional notation. %e and %E */ +#define etGENERIC 4 /* Floating or exponential, depending on exponent. %g */ +#define etSIZE 5 /* Return number of characters processed so far. %n */ +#define etSTRING 6 /* Strings. %s */ +#define etDYNSTRING 7 /* Dynamically allocated strings. %z */ +#define etPERCENT 8 /* Percent symbol. %% */ +#define etCHARX 9 /* Characters. %c */ +/* The rest are extensions, not normally found in printf() */ +#define etCHARLIT 10 /* Literal characters. %' */ +#define etSQLESCAPE 11 /* Strings with '\'' doubled. %q */ +#define etSQLESCAPE2 12 /* Strings with '\'' doubled and enclosed in '', + NULL pointers replaced by SQL NULL. %Q */ +#define etTOKEN 13 /* a pointer to a Token structure */ +#define etSRCLIST 14 /* a pointer to a SrcList */ +#define etPOINTER 15 /* The %p conversion */ + + +/* +** An "etByte" is an 8-bit unsigned value. +*/ +typedef unsigned char etByte; + +/* +** Each builtin conversion character (ex: the 'd' in "%d") is described +** by an instance of the following structure +*/ +typedef struct et_info { /* Information about each format field */ + char fmttype; /* The format field code letter */ + etByte base; /* The base for radix conversion */ + etByte flags; /* One or more of FLAG_ constants below */ + etByte type; /* Conversion paradigm */ + etByte charset; /* Offset into aDigits[] of the digits string */ + etByte prefix; /* Offset into aPrefix[] of the prefix string */ +} et_info; + +/* +** Allowed values for et_info.flags +*/ +#define FLAG_SIGNED 1 /* True if the value to convert is signed */ +#define FLAG_INTERN 2 /* True if for internal use only */ +#define FLAG_STRING 4 /* Allow infinity precision */ + + +/* +** The following table is searched linearly, so it is good to put the +** most frequently used conversion types first. +*/ +static const char aDigits[] = "0123456789ABCDEF0123456789abcdef"; +static const char aPrefix[] = "-x0\000X0"; +static const et_info fmtinfo[] = { + { 'd', 10, 1, etRADIX, 0, 0 }, + { 's', 0, 4, etSTRING, 0, 0 }, + { 'g', 0, 1, etGENERIC, 30, 0 }, + { 'z', 0, 6, etDYNSTRING, 0, 0 }, + { 'q', 0, 4, etSQLESCAPE, 0, 0 }, + { 'Q', 0, 4, etSQLESCAPE2, 0, 0 }, + { 'c', 0, 0, etCHARX, 0, 0 }, + { 'o', 8, 0, etRADIX, 0, 2 }, + { 'u', 10, 0, etRADIX, 0, 0 }, + { 'x', 16, 0, etRADIX, 16, 1 }, + { 'X', 16, 0, etRADIX, 0, 4 }, +#ifndef SQLITE_OMIT_FLOATING_POINT + { 'f', 0, 1, etFLOAT, 0, 0 }, + { 'e', 0, 1, etEXP, 30, 0 }, + { 'E', 0, 1, etEXP, 14, 0 }, + { 'G', 0, 1, etGENERIC, 14, 0 }, +#endif + { 'i', 10, 1, etRADIX, 0, 0 }, + { 'n', 0, 0, etSIZE, 0, 0 }, + { '%', 0, 0, etPERCENT, 0, 0 }, + { 'p', 16, 0, etPOINTER, 0, 1 }, + { 'T', 0, 2, etTOKEN, 0, 0 }, + { 'S', 0, 2, etSRCLIST, 0, 0 }, +}; +#define etNINFO (sizeof(fmtinfo)/sizeof(fmtinfo[0])) + +/* +** If SQLITE_OMIT_FLOATING_POINT is defined, then none of the floating point +** conversions will work. +*/ +#ifndef SQLITE_OMIT_FLOATING_POINT +/* +** "*val" is a double such that 0.1 <= *val < 10.0 +** Return the ascii code for the leading digit of *val, then +** multiply "*val" by 10.0 to renormalize. +** +** Example: +** input: *val = 3.14159 +** output: *val = 1.4159 function return = '3' +** +** The counter *cnt is incremented each time. After counter exceeds +** 16 (the number of significant digits in a 64-bit float) '0' is +** always returned. +*/ +static int et_getdigit(LONGDOUBLE_TYPE *val, int *cnt){ + int digit; + LONGDOUBLE_TYPE d; + if( (*cnt)++ >= 16 ) return '0'; + digit = (int)*val; + d = digit; + digit += '0'; + *val = (*val - d)*10.0; + return digit; +} +#endif /* SQLITE_OMIT_FLOATING_POINT */ + +/* +** On machines with a small stack size, you can redefine the +** SQLITE_PRINT_BUF_SIZE to be less than 350. But beware - for +** smaller values some %f conversions may go into an infinite loop. +*/ +#ifndef SQLITE_PRINT_BUF_SIZE +# define SQLITE_PRINT_BUF_SIZE 350 +#endif +#define etBUFSIZE SQLITE_PRINT_BUF_SIZE /* Size of the output buffer */ + +/* +** The root program. All variations call this core. +** +** INPUTS: +** func This is a pointer to a function taking three arguments +** 1. A pointer to anything. Same as the "arg" parameter. +** 2. A pointer to the list of characters to be output +** (Note, this list is NOT null terminated.) +** 3. An integer number of characters to be output. +** (Note: This number might be zero.) +** +** arg This is the pointer to anything which will be passed as the +** first argument to "func". Use it for whatever you like. +** +** fmt This is the format string, as in the usual print. +** +** ap This is a pointer to a list of arguments. Same as in +** vfprint. +** +** OUTPUTS: +** The return value is the total number of characters sent to +** the function "func". Returns -1 on a error. +** +** Note that the order in which automatic variables are declared below +** seems to make a big difference in determining how fast this beast +** will run. +*/ +static int vxprintf( + void (*func)(void*,const char*,int), /* Consumer of text */ + void *arg, /* First argument to the consumer */ + int useExtended, /* Allow extended %-conversions */ + const char *fmt, /* Format string */ + va_list ap /* arguments */ +){ + int c; /* Next character in the format string */ + char *bufpt; /* Pointer to the conversion buffer */ + int precision; /* Precision of the current field */ + int length; /* Length of the field */ + int idx; /* A general purpose loop counter */ + int count; /* Total number of characters output */ + int width; /* Width of the current field */ + etByte flag_leftjustify; /* True if "-" flag is present */ + etByte flag_plussign; /* True if "+" flag is present */ + etByte flag_blanksign; /* True if " " flag is present */ + etByte flag_alternateform; /* True if "#" flag is present */ + etByte flag_altform2; /* True if "!" flag is present */ + etByte flag_zeropad; /* True if field width constant starts with zero */ + etByte flag_long; /* True if "l" flag is present */ + etByte flag_longlong; /* True if the "ll" flag is present */ + etByte done; /* Loop termination flag */ + sqlite_uint64 longvalue; /* Value for integer types */ + LONGDOUBLE_TYPE realvalue; /* Value for real types */ + const et_info *infop; /* Pointer to the appropriate info structure */ + char buf[etBUFSIZE]; /* Conversion buffer */ + char prefix; /* Prefix character. "+" or "-" or " " or '\0'. */ + etByte errorflag = 0; /* True if an error is encountered */ + etByte xtype; /* Conversion paradigm */ + char *zExtra; /* Extra memory used for etTCLESCAPE conversions */ + static const char spaces[] = + " "; +#define etSPACESIZE (sizeof(spaces)-1) +#ifndef SQLITE_OMIT_FLOATING_POINT + int exp, e2; /* exponent of real numbers */ + double rounder; /* Used for rounding floating point values */ + etByte flag_dp; /* True if decimal point should be shown */ + etByte flag_rtz; /* True if trailing zeros should be removed */ + etByte flag_exp; /* True to force display of the exponent */ + int nsd; /* Number of significant digits returned */ +#endif + + func(arg,"",0); + count = length = 0; + bufpt = 0; + for(; (c=(*fmt))!=0; ++fmt){ + if( c!='%' ){ + int amt; + bufpt = (char *)fmt; + amt = 1; + while( (c=(*++fmt))!='%' && c!=0 ) amt++; + (*func)(arg,bufpt,amt); + count += amt; + if( c==0 ) break; + } + if( (c=(*++fmt))==0 ){ + errorflag = 1; + (*func)(arg,"%",1); + count++; + break; + } + /* Find out what flags are present */ + flag_leftjustify = flag_plussign = flag_blanksign = + flag_alternateform = flag_altform2 = flag_zeropad = 0; + done = 0; + do{ + switch( c ){ + case '-': flag_leftjustify = 1; break; + case '+': flag_plussign = 1; break; + case ' ': flag_blanksign = 1; break; + case '#': flag_alternateform = 1; break; + case '!': flag_altform2 = 1; break; + case '0': flag_zeropad = 1; break; + default: done = 1; break; + } + }while( !done && (c=(*++fmt))!=0 ); + /* Get the field width */ + width = 0; + if( c=='*' ){ + width = va_arg(ap,int); + if( width<0 ){ + flag_leftjustify = 1; + width = -width; + } + c = *++fmt; + }else{ + while( c>='0' && c<='9' ){ + width = width*10 + c - '0'; + c = *++fmt; + } + } + if( width > etBUFSIZE-10 ){ + width = etBUFSIZE-10; + } + /* Get the precision */ + if( c=='.' ){ + precision = 0; + c = *++fmt; + if( c=='*' ){ + precision = va_arg(ap,int); + if( precision<0 ) precision = -precision; + c = *++fmt; + }else{ + while( c>='0' && c<='9' ){ + precision = precision*10 + c - '0'; + c = *++fmt; + } + } + }else{ + precision = -1; + } + /* Get the conversion type modifier */ + if( c=='l' ){ + flag_long = 1; + c = *++fmt; + if( c=='l' ){ + flag_longlong = 1; + c = *++fmt; + }else{ + flag_longlong = 0; + } + }else{ + flag_long = flag_longlong = 0; + } + /* Fetch the info entry for the field */ + infop = 0; + for(idx=0; idxflags & FLAG_INTERN)==0 ){ + xtype = infop->type; + }else{ + return -1; + } + break; + } + } + zExtra = 0; + if( infop==0 ){ + return -1; + } + + + /* Limit the precision to prevent overflowing buf[] during conversion */ + if( precision>etBUFSIZE-40 && (infop->flags & FLAG_STRING)==0 ){ + precision = etBUFSIZE-40; + } + + /* + ** At this point, variables are initialized as follows: + ** + ** flag_alternateform TRUE if a '#' is present. + ** flag_altform2 TRUE if a '!' is present. + ** flag_plussign TRUE if a '+' is present. + ** flag_leftjustify TRUE if a '-' is present or if the + ** field width was negative. + ** flag_zeropad TRUE if the width began with 0. + ** flag_long TRUE if the letter 'l' (ell) prefixed + ** the conversion character. + ** flag_longlong TRUE if the letter 'll' (ell ell) prefixed + ** the conversion character. + ** flag_blanksign TRUE if a ' ' is present. + ** width The specified field width. This is + ** always non-negative. Zero is the default. + ** precision The specified precision. The default + ** is -1. + ** xtype The class of the conversion. + ** infop Pointer to the appropriate info struct. + */ + switch( xtype ){ + case etPOINTER: + flag_longlong = sizeof(char*)==sizeof(i64); + flag_long = sizeof(char*)==sizeof(long int); + /* Fall through into the next case */ + case etRADIX: + if( infop->flags & FLAG_SIGNED ){ + i64 v; + if( flag_longlong ) v = va_arg(ap,i64); + else if( flag_long ) v = va_arg(ap,long int); + else v = va_arg(ap,int); + if( v<0 ){ + longvalue = -v; + prefix = '-'; + }else{ + longvalue = v; + if( flag_plussign ) prefix = '+'; + else if( flag_blanksign ) prefix = ' '; + else prefix = 0; + } + }else{ + if( flag_longlong ) longvalue = va_arg(ap,u64); + else if( flag_long ) longvalue = va_arg(ap,unsigned long int); + else longvalue = va_arg(ap,unsigned int); + prefix = 0; + } + if( longvalue==0 ) flag_alternateform = 0; + if( flag_zeropad && precisioncharset]; + base = infop->base; + do{ /* Convert to ascii */ + *(--bufpt) = cset[longvalue%base]; + longvalue = longvalue/base; + }while( longvalue>0 ); + } + length = &buf[etBUFSIZE-1]-bufpt; + for(idx=precision-length; idx>0; idx--){ + *(--bufpt) = '0'; /* Zero pad */ + } + if( prefix ) *(--bufpt) = prefix; /* Add sign */ + if( flag_alternateform && infop->prefix ){ /* Add "0" or "0x" */ + const char *pre; + char x; + pre = &aPrefix[infop->prefix]; + if( *bufpt!=pre[0] ){ + for(; (x=(*pre))!=0; pre++) *(--bufpt) = x; + } + } + length = &buf[etBUFSIZE-1]-bufpt; + break; + case etFLOAT: + case etEXP: + case etGENERIC: + realvalue = va_arg(ap,double); +#ifndef SQLITE_OMIT_FLOATING_POINT + if( precision<0 ) precision = 6; /* Set default precision */ + if( precision>etBUFSIZE/2-10 ) precision = etBUFSIZE/2-10; + if( realvalue<0.0 ){ + realvalue = -realvalue; + prefix = '-'; + }else{ + if( flag_plussign ) prefix = '+'; + else if( flag_blanksign ) prefix = ' '; + else prefix = 0; + } + if( xtype==etGENERIC && precision>0 ) precision--; +#if 0 + /* Rounding works like BSD when the constant 0.4999 is used. Wierd! */ + for(idx=precision, rounder=0.4999; idx>0; idx--, rounder*=0.1); +#else + /* It makes more sense to use 0.5 */ + for(idx=precision, rounder=0.5; idx>0; idx--, rounder*=0.1){} +#endif + if( xtype==etFLOAT ) realvalue += rounder; + /* Normalize realvalue to within 10.0 > realvalue >= 1.0 */ + exp = 0; + if( realvalue>0.0 ){ + while( realvalue>=1e32 && exp<=350 ){ realvalue *= 1e-32; exp+=32; } + while( realvalue>=1e8 && exp<=350 ){ realvalue *= 1e-8; exp+=8; } + while( realvalue>=10.0 && exp<=350 ){ realvalue *= 0.1; exp++; } + while( realvalue<1e-8 && exp>=-350 ){ realvalue *= 1e8; exp-=8; } + while( realvalue<1.0 && exp>=-350 ){ realvalue *= 10.0; exp--; } + if( exp>350 || exp<-350 ){ + bufpt = "NaN"; + length = 3; + break; + } + } + bufpt = buf; + /* + ** If the field type is etGENERIC, then convert to either etEXP + ** or etFLOAT, as appropriate. + */ + flag_exp = xtype==etEXP; + if( xtype!=etFLOAT ){ + realvalue += rounder; + if( realvalue>=10.0 ){ realvalue *= 0.1; exp++; } + } + if( xtype==etGENERIC ){ + flag_rtz = !flag_alternateform; + if( exp<-4 || exp>precision ){ + xtype = etEXP; + }else{ + precision = precision - exp; + xtype = etFLOAT; + } + }else{ + flag_rtz = 0; + } + if( xtype==etEXP ){ + e2 = 0; + }else{ + e2 = exp; + } + nsd = 0; + flag_dp = (precision>0) | flag_alternateform | flag_altform2; + /* The sign in front of the number */ + if( prefix ){ + *(bufpt++) = prefix; + } + /* Digits prior to the decimal point */ + if( e2<0 ){ + *(bufpt++) = '0'; + }else{ + for(; e2>=0; e2--){ + *(bufpt++) = et_getdigit(&realvalue,&nsd); + } + } + /* The decimal point */ + if( flag_dp ){ + *(bufpt++) = '.'; + } + /* "0" digits after the decimal point but before the first + ** significant digit of the number */ + for(e2++; e2<0 && precision>0; precision--, e2++){ + *(bufpt++) = '0'; + } + /* Significant digits after the decimal point */ + while( (precision--)>0 ){ + *(bufpt++) = et_getdigit(&realvalue,&nsd); + } + /* Remove trailing zeros and the "." if no digits follow the "." */ + if( flag_rtz && flag_dp ){ + while( bufpt[-1]=='0' ) *(--bufpt) = 0; + assert( bufpt>buf ); + if( bufpt[-1]=='.' ){ + if( flag_altform2 ){ + *(bufpt++) = '0'; + }else{ + *(--bufpt) = 0; + } + } + } + /* Add the "eNNN" suffix */ + if( flag_exp || (xtype==etEXP && exp) ){ + *(bufpt++) = aDigits[infop->charset]; + if( exp<0 ){ + *(bufpt++) = '-'; exp = -exp; + }else{ + *(bufpt++) = '+'; + } + if( exp>=100 ){ + *(bufpt++) = (exp/100)+'0'; /* 100's digit */ + exp %= 100; + } + *(bufpt++) = exp/10+'0'; /* 10's digit */ + *(bufpt++) = exp%10+'0'; /* 1's digit */ + } + *bufpt = 0; + + /* The converted number is in buf[] and zero terminated. Output it. + ** Note that the number is in the usual order, not reversed as with + ** integer conversions. */ + length = bufpt-buf; + bufpt = buf; + + /* Special case: Add leading zeros if the flag_zeropad flag is + ** set and we are not left justified */ + if( flag_zeropad && !flag_leftjustify && length < width){ + int i; + int nPad = width - length; + for(i=width; i>=nPad; i--){ + bufpt[i] = bufpt[i-nPad]; + } + i = prefix!=0; + while( nPad-- ) bufpt[i++] = '0'; + length = width; + } +#endif + break; + case etSIZE: + *(va_arg(ap,int*)) = count; + length = width = 0; + break; + case etPERCENT: + buf[0] = '%'; + bufpt = buf; + length = 1; + break; + case etCHARLIT: + case etCHARX: + c = buf[0] = (xtype==etCHARX ? va_arg(ap,int) : *++fmt); + if( precision>=0 ){ + for(idx=1; idx=0 && precisionetBUFSIZE ){ + bufpt = zExtra = sqliteMalloc( n ); + if( bufpt==0 ) return -1; + }else{ + bufpt = buf; + } + j = 0; + if( needQuote ) bufpt[j++] = '\''; + for(i=0; (ch=escarg[i])!=0; i++){ + bufpt[j++] = ch; + if( ch=='\'' ) bufpt[j++] = ch; + } + if( needQuote ) bufpt[j++] = '\''; + bufpt[j] = 0; + length = j; + /* The precision is ignored on %q and %Q */ + /* if( precision>=0 && precisionz ){ + (*func)(arg, (char*)pToken->z, pToken->n); + } + length = width = 0; + break; + } + case etSRCLIST: { + SrcList *pSrc = va_arg(ap, SrcList*); + int k = va_arg(ap, int); + struct SrcList_item *pItem = &pSrc->a[k]; + assert( k>=0 && knSrc ); + if( pItem->zDatabase && pItem->zDatabase[0] ){ + (*func)(arg, pItem->zDatabase, strlen(pItem->zDatabase)); + (*func)(arg, ".", 1); + } + (*func)(arg, pItem->zName, strlen(pItem->zName)); + length = width = 0; + break; + } + }/* End switch over the format type */ + /* + ** The text of the conversion is pointed to by "bufpt" and is + ** "length" characters long. The field width is "width". Do + ** the output. + */ + if( !flag_leftjustify ){ + register int nspace; + nspace = width-length; + if( nspace>0 ){ + count += nspace; + while( nspace>=etSPACESIZE ){ + (*func)(arg,spaces,etSPACESIZE); + nspace -= etSPACESIZE; + } + if( nspace>0 ) (*func)(arg,spaces,nspace); + } + } + if( length>0 ){ + (*func)(arg,bufpt,length); + count += length; + } + if( flag_leftjustify ){ + register int nspace; + nspace = width-length; + if( nspace>0 ){ + count += nspace; + while( nspace>=etSPACESIZE ){ + (*func)(arg,spaces,etSPACESIZE); + nspace -= etSPACESIZE; + } + if( nspace>0 ) (*func)(arg,spaces,nspace); + } + } + if( zExtra ){ + sqliteFree(zExtra); + } + }/* End for loop over the format string */ + return errorflag ? -1 : count; +} /* End of function */ + + +/* This structure is used to store state information about the +** write to memory that is currently in progress. +*/ +struct sgMprintf { + char *zBase; /* A base allocation */ + char *zText; /* The string collected so far */ + int nChar; /* Length of the string so far */ + int nTotal; /* Output size if unconstrained */ + int nAlloc; /* Amount of space allocated in zText */ + void *(*xRealloc)(void*,int); /* Function used to realloc memory */ +}; + +/* +** This function implements the callback from vxprintf. +** +** This routine add nNewChar characters of text in zNewText to +** the sgMprintf structure pointed to by "arg". +*/ +static void mout(void *arg, const char *zNewText, int nNewChar){ + struct sgMprintf *pM = (struct sgMprintf*)arg; + pM->nTotal += nNewChar; + if( pM->nChar + nNewChar + 1 > pM->nAlloc ){ + if( pM->xRealloc==0 ){ + nNewChar = pM->nAlloc - pM->nChar - 1; + }else{ + pM->nAlloc = pM->nChar + nNewChar*2 + 1; + if( pM->zText==pM->zBase ){ + pM->zText = pM->xRealloc(0, pM->nAlloc); + if( pM->zText && pM->nChar ){ + memcpy(pM->zText, pM->zBase, pM->nChar); + } + }else{ + char *zNew; + zNew = pM->xRealloc(pM->zText, pM->nAlloc); + if( zNew ){ + pM->zText = zNew; + } + } + } + } + if( pM->zText ){ + if( nNewChar>0 ){ + memcpy(&pM->zText[pM->nChar], zNewText, nNewChar); + pM->nChar += nNewChar; + } + pM->zText[pM->nChar] = 0; + } +} + +/* +** This routine is a wrapper around xprintf() that invokes mout() as +** the consumer. +*/ +static char *base_vprintf( + void *(*xRealloc)(void*,int), /* Routine to realloc memory. May be NULL */ + int useInternal, /* Use internal %-conversions if true */ + char *zInitBuf, /* Initially write here, before mallocing */ + int nInitBuf, /* Size of zInitBuf[] */ + const char *zFormat, /* format string */ + va_list ap /* arguments */ +){ + struct sgMprintf sM; + sM.zBase = sM.zText = zInitBuf; + sM.nChar = sM.nTotal = 0; + sM.nAlloc = nInitBuf; + sM.xRealloc = xRealloc; + vxprintf(mout, &sM, useInternal, zFormat, ap); + if( xRealloc ){ + if( sM.zText==sM.zBase ){ + sM.zText = xRealloc(0, sM.nChar+1); + if( sM.zText ){ + memcpy(sM.zText, sM.zBase, sM.nChar+1); + } + }else if( sM.nAlloc>sM.nChar+10 ){ + char *zNew = xRealloc(sM.zText, sM.nChar+1); + if( zNew ){ + sM.zText = zNew; + } + } + } + return sM.zText; +} + +/* +** Realloc that is a real function, not a macro. +*/ +static void *printf_realloc(void *old, int size){ + return sqliteRealloc(old,size); +} + +/* +** Print into memory obtained from sqliteMalloc(). Use the internal +** %-conversion extensions. +*/ +char *sqlite3VMPrintf(const char *zFormat, va_list ap){ + char zBase[SQLITE_PRINT_BUF_SIZE]; + return base_vprintf(printf_realloc, 1, zBase, sizeof(zBase), zFormat, ap); +} + +/* +** Print into memory obtained from sqliteMalloc(). Use the internal +** %-conversion extensions. +*/ +char *sqlite3MPrintf(const char *zFormat, ...){ + va_list ap; + char *z; + char zBase[SQLITE_PRINT_BUF_SIZE]; + va_start(ap, zFormat); + z = base_vprintf(printf_realloc, 1, zBase, sizeof(zBase), zFormat, ap); + va_end(ap); + return z; +} + +/* +** Print into memory obtained from sqlite3_malloc(). Omit the internal +** %-conversion extensions. +*/ +char *sqlite3_vmprintf(const char *zFormat, va_list ap){ + char zBase[SQLITE_PRINT_BUF_SIZE]; + return base_vprintf(sqlite3_realloc, 0, zBase, sizeof(zBase), zFormat, ap); +} + +/* +** Print into memory obtained from sqlite3_malloc()(). Omit the internal +** %-conversion extensions. +*/ +char *sqlite3_mprintf(const char *zFormat, ...){ + va_list ap; + char *z; + char zBase[SQLITE_PRINT_BUF_SIZE]; + va_start(ap, zFormat); + z = base_vprintf(sqlite3_realloc, 0, zBase, sizeof(zBase), zFormat, ap); + va_end(ap); + return z; +} + +/* +** sqlite3_snprintf() works like snprintf() except that it ignores the +** current locale settings. This is important for SQLite because we +** are not able to use a "," as the decimal point in place of "." as +** specified by some locales. +*/ +char *sqlite3_snprintf(int n, char *zBuf, const char *zFormat, ...){ + char *z; + va_list ap; + + va_start(ap,zFormat); + z = base_vprintf(0, 0, zBuf, n, zFormat, ap); + va_end(ap); + return z; +} + +#if defined(SQLITE_TEST) || defined(SQLITE_DEBUG) +/* +** A version of printf() that understands %lld. Used for debugging. +** The printf() built into some versions of windows does not understand %lld +** and segfaults if you give it a long long int. +*/ +void sqlite3DebugPrintf(const char *zFormat, ...){ + extern int getpid(void); + va_list ap; + char zBuf[500]; + va_start(ap, zFormat); + base_vprintf(0, 0, zBuf, sizeof(zBuf), zFormat, ap); + va_end(ap); + fprintf(stdout,"%d: %s", getpid(), zBuf); + fflush(stdout); +} +#endif diff --git a/src/dep/src/sqlite/random.c b/src/dep/src/sqlite/random.c new file mode 100644 index 0000000..03ed7a4 --- /dev/null +++ b/src/dep/src/sqlite/random.c @@ -0,0 +1,100 @@ +/* +** 2001 September 15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains code to implement a pseudo-random number +** generator (PRNG) for SQLite. +** +** Random numbers are used by some of the database backends in order +** to generate random integer keys for tables or random filenames. +** +** $Id: random.c,v 1.16 2007/01/05 14:38:56 drh Exp $ +*/ +#include "sqliteInt.h" +#include "os.h" + + +/* +** Get a single 8-bit random value from the RC4 PRNG. The Mutex +** must be held while executing this routine. +** +** Why not just use a library random generator like lrand48() for this? +** Because the OP_NewRowid opcode in the VDBE depends on having a very +** good source of random numbers. The lrand48() library function may +** well be good enough. But maybe not. Or maybe lrand48() has some +** subtle problems on some systems that could cause problems. It is hard +** to know. To minimize the risk of problems due to bad lrand48() +** implementations, SQLite uses this random number generator based +** on RC4, which we know works very well. +** +** (Later): Actually, OP_NewRowid does not depend on a good source of +** randomness any more. But we will leave this code in all the same. +*/ +static int randomByte(void){ + unsigned char t; + + /* All threads share a single random number generator. + ** This structure is the current state of the generator. + */ + static struct { + unsigned char isInit; /* True if initialized */ + unsigned char i, j; /* State variables */ + unsigned char s[256]; /* State variables */ + } prng; + + /* Initialize the state of the random number generator once, + ** the first time this routine is called. The seed value does + ** not need to contain a lot of randomness since we are not + ** trying to do secure encryption or anything like that... + ** + ** Nothing in this file or anywhere else in SQLite does any kind of + ** encryption. The RC4 algorithm is being used as a PRNG (pseudo-random + ** number generator) not as an encryption device. + */ + if( !prng.isInit ){ + int i; + char k[256]; + prng.j = 0; + prng.i = 0; + sqlite3OsRandomSeed(k); + for(i=0; i<256; i++){ + prng.s[i] = i; + } + for(i=0; i<256; i++){ + prng.j += prng.s[i] + k[i]; + t = prng.s[prng.j]; + prng.s[prng.j] = prng.s[i]; + prng.s[i] = t; + } + prng.isInit = 1; + } + + /* Generate and return single random byte + */ + prng.i++; + t = prng.s[prng.i]; + prng.j += t; + prng.s[prng.i] = prng.s[prng.j]; + prng.s[prng.j] = t; + t += prng.s[prng.i]; + return prng.s[t]; +} + +/* +** Return N random bytes. +*/ +void sqlite3Randomness(int N, void *pBuf){ + unsigned char *zBuf = pBuf; + sqlite3OsEnterMutex(); + while( N-- ){ + *(zBuf++) = randomByte(); + } + sqlite3OsLeaveMutex(); +} diff --git a/src/dep/src/sqlite/select.c b/src/dep/src/sqlite/select.c new file mode 100644 index 0000000..343a305 --- /dev/null +++ b/src/dep/src/sqlite/select.c @@ -0,0 +1,3301 @@ +/* +** 2001 September 15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains C code routines that are called by the parser +** to handle SELECT statements in SQLite. +** +** $Id: select.c,v 1.323 2006/12/16 16:25:15 drh Exp $ +*/ +#include "sqliteInt.h" + + +/* +** Delete all the content of a Select structure but do not deallocate +** the select structure itself. +*/ +static void clearSelect(Select *p){ + sqlite3ExprListDelete(p->pEList); + sqlite3SrcListDelete(p->pSrc); + sqlite3ExprDelete(p->pWhere); + sqlite3ExprListDelete(p->pGroupBy); + sqlite3ExprDelete(p->pHaving); + sqlite3ExprListDelete(p->pOrderBy); + sqlite3SelectDelete(p->pPrior); + sqlite3ExprDelete(p->pLimit); + sqlite3ExprDelete(p->pOffset); +} + + +/* +** Allocate a new Select structure and return a pointer to that +** structure. +*/ +Select *sqlite3SelectNew( + ExprList *pEList, /* which columns to include in the result */ + SrcList *pSrc, /* the FROM clause -- which tables to scan */ + Expr *pWhere, /* the WHERE clause */ + ExprList *pGroupBy, /* the GROUP BY clause */ + Expr *pHaving, /* the HAVING clause */ + ExprList *pOrderBy, /* the ORDER BY clause */ + int isDistinct, /* true if the DISTINCT keyword is present */ + Expr *pLimit, /* LIMIT value. NULL means not used */ + Expr *pOffset /* OFFSET value. NULL means no offset */ +){ + Select *pNew; + Select standin; + pNew = sqliteMalloc( sizeof(*pNew) ); + assert( !pOffset || pLimit ); /* Can't have OFFSET without LIMIT. */ + if( pNew==0 ){ + pNew = &standin; + memset(pNew, 0, sizeof(*pNew)); + } + if( pEList==0 ){ + pEList = sqlite3ExprListAppend(0, sqlite3Expr(TK_ALL,0,0,0), 0); + } + pNew->pEList = pEList; + pNew->pSrc = pSrc; + pNew->pWhere = pWhere; + pNew->pGroupBy = pGroupBy; + pNew->pHaving = pHaving; + pNew->pOrderBy = pOrderBy; + pNew->isDistinct = isDistinct; + pNew->op = TK_SELECT; + pNew->pLimit = pLimit; + pNew->pOffset = pOffset; + pNew->iLimit = -1; + pNew->iOffset = -1; + pNew->addrOpenEphm[0] = -1; + pNew->addrOpenEphm[1] = -1; + pNew->addrOpenEphm[2] = -1; + if( pNew==&standin) { + clearSelect(pNew); + pNew = 0; + } + return pNew; +} + +/* +** Delete the given Select structure and all of its substructures. +*/ +void sqlite3SelectDelete(Select *p){ + if( p ){ + clearSelect(p); + sqliteFree(p); + } +} + +/* +** Given 1 to 3 identifiers preceeding the JOIN keyword, determine the +** type of join. Return an integer constant that expresses that type +** in terms of the following bit values: +** +** JT_INNER +** JT_CROSS +** JT_OUTER +** JT_NATURAL +** JT_LEFT +** JT_RIGHT +** +** A full outer join is the combination of JT_LEFT and JT_RIGHT. +** +** If an illegal or unsupported join type is seen, then still return +** a join type, but put an error in the pParse structure. +*/ +int sqlite3JoinType(Parse *pParse, Token *pA, Token *pB, Token *pC){ + int jointype = 0; + Token *apAll[3]; + Token *p; + static const struct { + const char zKeyword[8]; + u8 nChar; + u8 code; + } keywords[] = { + { "natural", 7, JT_NATURAL }, + { "left", 4, JT_LEFT|JT_OUTER }, + { "right", 5, JT_RIGHT|JT_OUTER }, + { "full", 4, JT_LEFT|JT_RIGHT|JT_OUTER }, + { "outer", 5, JT_OUTER }, + { "inner", 5, JT_INNER }, + { "cross", 5, JT_INNER|JT_CROSS }, + }; + int i, j; + apAll[0] = pA; + apAll[1] = pB; + apAll[2] = pC; + for(i=0; i<3 && apAll[i]; i++){ + p = apAll[i]; + for(j=0; jn==keywords[j].nChar + && sqlite3StrNICmp((char*)p->z, keywords[j].zKeyword, p->n)==0 ){ + jointype |= keywords[j].code; + break; + } + } + if( j>=sizeof(keywords)/sizeof(keywords[0]) ){ + jointype |= JT_ERROR; + break; + } + } + if( + (jointype & (JT_INNER|JT_OUTER))==(JT_INNER|JT_OUTER) || + (jointype & JT_ERROR)!=0 + ){ + const char *zSp1 = " "; + const char *zSp2 = " "; + if( pB==0 ){ zSp1++; } + if( pC==0 ){ zSp2++; } + sqlite3ErrorMsg(pParse, "unknown or unsupported join type: " + "%T%s%T%s%T", pA, zSp1, pB, zSp2, pC); + jointype = JT_INNER; + }else if( jointype & JT_RIGHT ){ + sqlite3ErrorMsg(pParse, + "RIGHT and FULL OUTER JOINs are not currently supported"); + jointype = JT_INNER; + } + return jointype; +} + +/* +** Return the index of a column in a table. Return -1 if the column +** is not contained in the table. +*/ +static int columnIndex(Table *pTab, const char *zCol){ + int i; + for(i=0; inCol; i++){ + if( sqlite3StrICmp(pTab->aCol[i].zName, zCol)==0 ) return i; + } + return -1; +} + +/* +** Set the value of a token to a '\000'-terminated string. +*/ +static void setToken(Token *p, const char *z){ + p->z = (u8*)z; + p->n = z ? strlen(z) : 0; + p->dyn = 0; +} + +/* +** Create an expression node for an identifier with the name of zName +*/ +Expr *sqlite3CreateIdExpr(const char *zName){ + Token dummy; + setToken(&dummy, zName); + return sqlite3Expr(TK_ID, 0, 0, &dummy); +} + + +/* +** Add a term to the WHERE expression in *ppExpr that requires the +** zCol column to be equal in the two tables pTab1 and pTab2. +*/ +static void addWhereTerm( + const char *zCol, /* Name of the column */ + const Table *pTab1, /* First table */ + const char *zAlias1, /* Alias for first table. May be NULL */ + const Table *pTab2, /* Second table */ + const char *zAlias2, /* Alias for second table. May be NULL */ + int iRightJoinTable, /* VDBE cursor for the right table */ + Expr **ppExpr /* Add the equality term to this expression */ +){ + Expr *pE1a, *pE1b, *pE1c; + Expr *pE2a, *pE2b, *pE2c; + Expr *pE; + + pE1a = sqlite3CreateIdExpr(zCol); + pE2a = sqlite3CreateIdExpr(zCol); + if( zAlias1==0 ){ + zAlias1 = pTab1->zName; + } + pE1b = sqlite3CreateIdExpr(zAlias1); + if( zAlias2==0 ){ + zAlias2 = pTab2->zName; + } + pE2b = sqlite3CreateIdExpr(zAlias2); + pE1c = sqlite3ExprOrFree(TK_DOT, pE1b, pE1a, 0); + pE2c = sqlite3ExprOrFree(TK_DOT, pE2b, pE2a, 0); + pE = sqlite3ExprOrFree(TK_EQ, pE1c, pE2c, 0); + if( pE ){ + ExprSetProperty(pE, EP_FromJoin); + pE->iRightJoinTable = iRightJoinTable; + } + pE = sqlite3ExprAnd(*ppExpr, pE); + if( pE ){ + *ppExpr = pE; + } +} + +/* +** Set the EP_FromJoin property on all terms of the given expression. +** And set the Expr.iRightJoinTable to iTable for every term in the +** expression. +** +** The EP_FromJoin property is used on terms of an expression to tell +** the LEFT OUTER JOIN processing logic that this term is part of the +** join restriction specified in the ON or USING clause and not a part +** of the more general WHERE clause. These terms are moved over to the +** WHERE clause during join processing but we need to remember that they +** originated in the ON or USING clause. +** +** The Expr.iRightJoinTable tells the WHERE clause processing that the +** expression depends on table iRightJoinTable even if that table is not +** explicitly mentioned in the expression. That information is needed +** for cases like this: +** +** SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.b AND t1.x=5 +** +** The where clause needs to defer the handling of the t1.x=5 +** term until after the t2 loop of the join. In that way, a +** NULL t2 row will be inserted whenever t1.x!=5. If we do not +** defer the handling of t1.x=5, it will be processed immediately +** after the t1 loop and rows with t1.x!=5 will never appear in +** the output, which is incorrect. +*/ +static void setJoinExpr(Expr *p, int iTable){ + while( p ){ + ExprSetProperty(p, EP_FromJoin); + p->iRightJoinTable = iTable; + setJoinExpr(p->pLeft, iTable); + p = p->pRight; + } +} + +/* +** This routine processes the join information for a SELECT statement. +** ON and USING clauses are converted into extra terms of the WHERE clause. +** NATURAL joins also create extra WHERE clause terms. +** +** The terms of a FROM clause are contained in the Select.pSrc structure. +** The left most table is the first entry in Select.pSrc. The right-most +** table is the last entry. The join operator is held in the entry to +** the left. Thus entry 0 contains the join operator for the join between +** entries 0 and 1. Any ON or USING clauses associated with the join are +** also attached to the left entry. +** +** This routine returns the number of errors encountered. +*/ +static int sqliteProcessJoin(Parse *pParse, Select *p){ + SrcList *pSrc; /* All tables in the FROM clause */ + int i, j; /* Loop counters */ + struct SrcList_item *pLeft; /* Left table being joined */ + struct SrcList_item *pRight; /* Right table being joined */ + + pSrc = p->pSrc; + pLeft = &pSrc->a[0]; + pRight = &pLeft[1]; + for(i=0; inSrc-1; i++, pRight++, pLeft++){ + Table *pLeftTab = pLeft->pTab; + Table *pRightTab = pRight->pTab; + + if( pLeftTab==0 || pRightTab==0 ) continue; + + /* When the NATURAL keyword is present, add WHERE clause terms for + ** every column that the two tables have in common. + */ + if( pRight->jointype & JT_NATURAL ){ + if( pRight->pOn || pRight->pUsing ){ + sqlite3ErrorMsg(pParse, "a NATURAL join may not have " + "an ON or USING clause", 0); + return 1; + } + for(j=0; jnCol; j++){ + char *zName = pLeftTab->aCol[j].zName; + if( columnIndex(pRightTab, zName)>=0 ){ + addWhereTerm(zName, pLeftTab, pLeft->zAlias, + pRightTab, pRight->zAlias, + pRight->iCursor, &p->pWhere); + + } + } + } + + /* Disallow both ON and USING clauses in the same join + */ + if( pRight->pOn && pRight->pUsing ){ + sqlite3ErrorMsg(pParse, "cannot have both ON and USING " + "clauses in the same join"); + return 1; + } + + /* Add the ON clause to the end of the WHERE clause, connected by + ** an AND operator. + */ + if( pRight->pOn ){ + setJoinExpr(pRight->pOn, pRight->iCursor); + p->pWhere = sqlite3ExprAnd(p->pWhere, pRight->pOn); + pRight->pOn = 0; + } + + /* Create extra terms on the WHERE clause for each column named + ** in the USING clause. Example: If the two tables to be joined are + ** A and B and the USING clause names X, Y, and Z, then add this + ** to the WHERE clause: A.X=B.X AND A.Y=B.Y AND A.Z=B.Z + ** Report an error if any column mentioned in the USING clause is + ** not contained in both tables to be joined. + */ + if( pRight->pUsing ){ + IdList *pList = pRight->pUsing; + for(j=0; jnId; j++){ + char *zName = pList->a[j].zName; + if( columnIndex(pLeftTab, zName)<0 || columnIndex(pRightTab, zName)<0 ){ + sqlite3ErrorMsg(pParse, "cannot join using column %s - column " + "not present in both tables", zName); + return 1; + } + addWhereTerm(zName, pLeftTab, pLeft->zAlias, + pRightTab, pRight->zAlias, + pRight->iCursor, &p->pWhere); + } + } + } + return 0; +} + +/* +** Insert code into "v" that will push the record on the top of the +** stack into the sorter. +*/ +static void pushOntoSorter( + Parse *pParse, /* Parser context */ + ExprList *pOrderBy, /* The ORDER BY clause */ + Select *pSelect /* The whole SELECT statement */ +){ + Vdbe *v = pParse->pVdbe; + sqlite3ExprCodeExprList(pParse, pOrderBy); + sqlite3VdbeAddOp(v, OP_Sequence, pOrderBy->iECursor, 0); + sqlite3VdbeAddOp(v, OP_Pull, pOrderBy->nExpr + 1, 0); + sqlite3VdbeAddOp(v, OP_MakeRecord, pOrderBy->nExpr + 2, 0); + sqlite3VdbeAddOp(v, OP_IdxInsert, pOrderBy->iECursor, 0); + if( pSelect->iLimit>=0 ){ + int addr1, addr2; + addr1 = sqlite3VdbeAddOp(v, OP_IfMemZero, pSelect->iLimit+1, 0); + sqlite3VdbeAddOp(v, OP_MemIncr, -1, pSelect->iLimit+1); + addr2 = sqlite3VdbeAddOp(v, OP_Goto, 0, 0); + sqlite3VdbeJumpHere(v, addr1); + sqlite3VdbeAddOp(v, OP_Last, pOrderBy->iECursor, 0); + sqlite3VdbeAddOp(v, OP_Delete, pOrderBy->iECursor, 0); + sqlite3VdbeJumpHere(v, addr2); + pSelect->iLimit = -1; + } +} + +/* +** Add code to implement the OFFSET +*/ +static void codeOffset( + Vdbe *v, /* Generate code into this VM */ + Select *p, /* The SELECT statement being coded */ + int iContinue, /* Jump here to skip the current record */ + int nPop /* Number of times to pop stack when jumping */ +){ + if( p->iOffset>=0 && iContinue!=0 ){ + int addr; + sqlite3VdbeAddOp(v, OP_MemIncr, -1, p->iOffset); + addr = sqlite3VdbeAddOp(v, OP_IfMemNeg, p->iOffset, 0); + if( nPop>0 ){ + sqlite3VdbeAddOp(v, OP_Pop, nPop, 0); + } + sqlite3VdbeAddOp(v, OP_Goto, 0, iContinue); + VdbeComment((v, "# skip OFFSET records")); + sqlite3VdbeJumpHere(v, addr); + } +} + +/* +** Add code that will check to make sure the top N elements of the +** stack are distinct. iTab is a sorting index that holds previously +** seen combinations of the N values. A new entry is made in iTab +** if the current N values are new. +** +** A jump to addrRepeat is made and the N+1 values are popped from the +** stack if the top N elements are not distinct. +*/ +static void codeDistinct( + Vdbe *v, /* Generate code into this VM */ + int iTab, /* A sorting index used to test for distinctness */ + int addrRepeat, /* Jump to here if not distinct */ + int N /* The top N elements of the stack must be distinct */ +){ + sqlite3VdbeAddOp(v, OP_MakeRecord, -N, 0); + sqlite3VdbeAddOp(v, OP_Distinct, iTab, sqlite3VdbeCurrentAddr(v)+3); + sqlite3VdbeAddOp(v, OP_Pop, N+1, 0); + sqlite3VdbeAddOp(v, OP_Goto, 0, addrRepeat); + VdbeComment((v, "# skip indistinct records")); + sqlite3VdbeAddOp(v, OP_IdxInsert, iTab, 0); +} + + +/* +** This routine generates the code for the inside of the inner loop +** of a SELECT. +** +** If srcTab and nColumn are both zero, then the pEList expressions +** are evaluated in order to get the data for this row. If nColumn>0 +** then data is pulled from srcTab and pEList is used only to get the +** datatypes for each column. +*/ +static int selectInnerLoop( + Parse *pParse, /* The parser context */ + Select *p, /* The complete select statement being coded */ + ExprList *pEList, /* List of values being extracted */ + int srcTab, /* Pull data from this table */ + int nColumn, /* Number of columns in the source table */ + ExprList *pOrderBy, /* If not NULL, sort results using this key */ + int distinct, /* If >=0, make sure results are distinct */ + int eDest, /* How to dispose of the results */ + int iParm, /* An argument to the disposal method */ + int iContinue, /* Jump here to continue with next row */ + int iBreak, /* Jump here to break out of the inner loop */ + char *aff /* affinity string if eDest is SRT_Union */ +){ + Vdbe *v = pParse->pVdbe; + int i; + int hasDistinct; /* True if the DISTINCT keyword is present */ + + if( v==0 ) return 0; + assert( pEList!=0 ); + + /* If there was a LIMIT clause on the SELECT statement, then do the check + ** to see if this row should be output. + */ + hasDistinct = distinct>=0 && pEList->nExpr>0; + if( pOrderBy==0 && !hasDistinct ){ + codeOffset(v, p, iContinue, 0); + } + + /* Pull the requested columns. + */ + if( nColumn>0 ){ + for(i=0; inExpr; + sqlite3ExprCodeExprList(pParse, pEList); + } + + /* If the DISTINCT keyword was present on the SELECT statement + ** and this row has been seen before, then do not make this row + ** part of the result. + */ + if( hasDistinct ){ + assert( pEList!=0 ); + assert( pEList->nExpr==nColumn ); + codeDistinct(v, distinct, iContinue, nColumn); + if( pOrderBy==0 ){ + codeOffset(v, p, iContinue, nColumn); + } + } + + switch( eDest ){ + /* In this mode, write each query result to the key of the temporary + ** table iParm. + */ +#ifndef SQLITE_OMIT_COMPOUND_SELECT + case SRT_Union: { + sqlite3VdbeAddOp(v, OP_MakeRecord, nColumn, 0); + if( aff ){ + sqlite3VdbeChangeP3(v, -1, aff, P3_STATIC); + } + sqlite3VdbeAddOp(v, OP_IdxInsert, iParm, 0); + break; + } + + /* Construct a record from the query result, but instead of + ** saving that record, use it as a key to delete elements from + ** the temporary table iParm. + */ + case SRT_Except: { + int addr; + addr = sqlite3VdbeAddOp(v, OP_MakeRecord, nColumn, 0); + sqlite3VdbeChangeP3(v, -1, aff, P3_STATIC); + sqlite3VdbeAddOp(v, OP_NotFound, iParm, addr+3); + sqlite3VdbeAddOp(v, OP_Delete, iParm, 0); + break; + } +#endif + + /* Store the result as data using a unique key. + */ + case SRT_Table: + case SRT_EphemTab: { + sqlite3VdbeAddOp(v, OP_MakeRecord, nColumn, 0); + if( pOrderBy ){ + pushOntoSorter(pParse, pOrderBy, p); + }else{ + sqlite3VdbeAddOp(v, OP_NewRowid, iParm, 0); + sqlite3VdbeAddOp(v, OP_Pull, 1, 0); + sqlite3VdbeAddOp(v, OP_Insert, iParm, 0); + } + break; + } + +#ifndef SQLITE_OMIT_SUBQUERY + /* If we are creating a set for an "expr IN (SELECT ...)" construct, + ** then there should be a single item on the stack. Write this + ** item into the set table with bogus data. + */ + case SRT_Set: { + int addr1 = sqlite3VdbeCurrentAddr(v); + int addr2; + + assert( nColumn==1 ); + sqlite3VdbeAddOp(v, OP_NotNull, -1, addr1+3); + sqlite3VdbeAddOp(v, OP_Pop, 1, 0); + addr2 = sqlite3VdbeAddOp(v, OP_Goto, 0, 0); + if( pOrderBy ){ + /* At first glance you would think we could optimize out the + ** ORDER BY in this case since the order of entries in the set + ** does not matter. But there might be a LIMIT clause, in which + ** case the order does matter */ + pushOntoSorter(pParse, pOrderBy, p); + }else{ + char affinity = (iParm>>16)&0xFF; + affinity = sqlite3CompareAffinity(pEList->a[0].pExpr, affinity); + sqlite3VdbeOp3(v, OP_MakeRecord, 1, 0, &affinity, 1); + sqlite3VdbeAddOp(v, OP_IdxInsert, (iParm&0x0000FFFF), 0); + } + sqlite3VdbeJumpHere(v, addr2); + break; + } + + /* If any row exist in the result set, record that fact and abort. + */ + case SRT_Exists: { + sqlite3VdbeAddOp(v, OP_MemInt, 1, iParm); + sqlite3VdbeAddOp(v, OP_Pop, nColumn, 0); + /* The LIMIT clause will terminate the loop for us */ + break; + } + + /* If this is a scalar select that is part of an expression, then + ** store the results in the appropriate memory cell and break out + ** of the scan loop. + */ + case SRT_Mem: { + assert( nColumn==1 ); + if( pOrderBy ){ + pushOntoSorter(pParse, pOrderBy, p); + }else{ + sqlite3VdbeAddOp(v, OP_MemStore, iParm, 1); + /* The LIMIT clause will jump out of the loop for us */ + } + break; + } +#endif /* #ifndef SQLITE_OMIT_SUBQUERY */ + + /* Send the data to the callback function or to a subroutine. In the + ** case of a subroutine, the subroutine itself is responsible for + ** popping the data from the stack. + */ + case SRT_Subroutine: + case SRT_Callback: { + if( pOrderBy ){ + sqlite3VdbeAddOp(v, OP_MakeRecord, nColumn, 0); + pushOntoSorter(pParse, pOrderBy, p); + }else if( eDest==SRT_Subroutine ){ + sqlite3VdbeAddOp(v, OP_Gosub, 0, iParm); + }else{ + sqlite3VdbeAddOp(v, OP_Callback, nColumn, 0); + } + break; + } + +#if !defined(SQLITE_OMIT_TRIGGER) + /* Discard the results. This is used for SELECT statements inside + ** the body of a TRIGGER. The purpose of such selects is to call + ** user-defined functions that have side effects. We do not care + ** about the actual results of the select. + */ + default: { + assert( eDest==SRT_Discard ); + sqlite3VdbeAddOp(v, OP_Pop, nColumn, 0); + break; + } +#endif + } + + /* Jump to the end of the loop if the LIMIT is reached. + */ + if( p->iLimit>=0 && pOrderBy==0 ){ + sqlite3VdbeAddOp(v, OP_MemIncr, -1, p->iLimit); + sqlite3VdbeAddOp(v, OP_IfMemZero, p->iLimit, iBreak); + } + return 0; +} + +/* +** Given an expression list, generate a KeyInfo structure that records +** the collating sequence for each expression in that expression list. +** +** If the ExprList is an ORDER BY or GROUP BY clause then the resulting +** KeyInfo structure is appropriate for initializing a virtual index to +** implement that clause. If the ExprList is the result set of a SELECT +** then the KeyInfo structure is appropriate for initializing a virtual +** index to implement a DISTINCT test. +** +** Space to hold the KeyInfo structure is obtain from malloc. The calling +** function is responsible for seeing that this structure is eventually +** freed. Add the KeyInfo structure to the P3 field of an opcode using +** P3_KEYINFO_HANDOFF is the usual way of dealing with this. +*/ +static KeyInfo *keyInfoFromExprList(Parse *pParse, ExprList *pList){ + sqlite3 *db = pParse->db; + int nExpr; + KeyInfo *pInfo; + struct ExprList_item *pItem; + int i; + + nExpr = pList->nExpr; + pInfo = sqliteMalloc( sizeof(*pInfo) + nExpr*(sizeof(CollSeq*)+1) ); + if( pInfo ){ + pInfo->aSortOrder = (u8*)&pInfo->aColl[nExpr]; + pInfo->nField = nExpr; + pInfo->enc = ENC(db); + for(i=0, pItem=pList->a; ipExpr); + if( !pColl ){ + pColl = db->pDfltColl; + } + pInfo->aColl[i] = pColl; + pInfo->aSortOrder[i] = pItem->sortOrder; + } + } + return pInfo; +} + + +/* +** If the inner loop was generated using a non-null pOrderBy argument, +** then the results were placed in a sorter. After the loop is terminated +** we need to run the sorter and output the results. The following +** routine generates the code needed to do that. +*/ +static void generateSortTail( + Parse *pParse, /* Parsing context */ + Select *p, /* The SELECT statement */ + Vdbe *v, /* Generate code into this VDBE */ + int nColumn, /* Number of columns of data */ + int eDest, /* Write the sorted results here */ + int iParm /* Optional parameter associated with eDest */ +){ + int brk = sqlite3VdbeMakeLabel(v); + int cont = sqlite3VdbeMakeLabel(v); + int addr; + int iTab; + int pseudoTab; + ExprList *pOrderBy = p->pOrderBy; + + iTab = pOrderBy->iECursor; + if( eDest==SRT_Callback || eDest==SRT_Subroutine ){ + pseudoTab = pParse->nTab++; + sqlite3VdbeAddOp(v, OP_OpenPseudo, pseudoTab, 0); + sqlite3VdbeAddOp(v, OP_SetNumColumns, pseudoTab, nColumn); + } + addr = 1 + sqlite3VdbeAddOp(v, OP_Sort, iTab, brk); + codeOffset(v, p, cont, 0); + if( eDest==SRT_Callback || eDest==SRT_Subroutine ){ + sqlite3VdbeAddOp(v, OP_Integer, 1, 0); + } + sqlite3VdbeAddOp(v, OP_Column, iTab, pOrderBy->nExpr + 1); + switch( eDest ){ + case SRT_Table: + case SRT_EphemTab: { + sqlite3VdbeAddOp(v, OP_NewRowid, iParm, 0); + sqlite3VdbeAddOp(v, OP_Pull, 1, 0); + sqlite3VdbeAddOp(v, OP_Insert, iParm, 0); + break; + } +#ifndef SQLITE_OMIT_SUBQUERY + case SRT_Set: { + assert( nColumn==1 ); + sqlite3VdbeAddOp(v, OP_NotNull, -1, sqlite3VdbeCurrentAddr(v)+3); + sqlite3VdbeAddOp(v, OP_Pop, 1, 0); + sqlite3VdbeAddOp(v, OP_Goto, 0, sqlite3VdbeCurrentAddr(v)+3); + sqlite3VdbeOp3(v, OP_MakeRecord, 1, 0, "c", P3_STATIC); + sqlite3VdbeAddOp(v, OP_IdxInsert, (iParm&0x0000FFFF), 0); + break; + } + case SRT_Mem: { + assert( nColumn==1 ); + sqlite3VdbeAddOp(v, OP_MemStore, iParm, 1); + /* The LIMIT clause will terminate the loop for us */ + break; + } +#endif + case SRT_Callback: + case SRT_Subroutine: { + int i; + sqlite3VdbeAddOp(v, OP_Insert, pseudoTab, 0); + for(i=0; iiLimit>=0 ){ + sqlite3VdbeAddOp(v, OP_MemIncr, -1, p->iLimit); + sqlite3VdbeAddOp(v, OP_IfMemZero, p->iLimit, brk); + } + + /* The bottom of the loop + */ + sqlite3VdbeResolveLabel(v, cont); + sqlite3VdbeAddOp(v, OP_Next, iTab, addr); + sqlite3VdbeResolveLabel(v, brk); + if( eDest==SRT_Callback || eDest==SRT_Subroutine ){ + sqlite3VdbeAddOp(v, OP_Close, pseudoTab, 0); + } + +} + +/* +** Return a pointer to a string containing the 'declaration type' of the +** expression pExpr. The string may be treated as static by the caller. +** +** The declaration type is the exact datatype definition extracted from the +** original CREATE TABLE statement if the expression is a column. The +** declaration type for a ROWID field is INTEGER. Exactly when an expression +** is considered a column can be complex in the presence of subqueries. The +** result-set expression in all of the following SELECT statements is +** considered a column by this function. +** +** SELECT col FROM tbl; +** SELECT (SELECT col FROM tbl; +** SELECT (SELECT col FROM tbl); +** SELECT abc FROM (SELECT col AS abc FROM tbl); +** +** The declaration type for any expression other than a column is NULL. +*/ +static const char *columnType( + NameContext *pNC, + Expr *pExpr, + const char **pzOriginDb, + const char **pzOriginTab, + const char **pzOriginCol +){ + char const *zType = 0; + char const *zOriginDb = 0; + char const *zOriginTab = 0; + char const *zOriginCol = 0; + int j; + if( pExpr==0 || pNC->pSrcList==0 ) return 0; + + /* The TK_AS operator can only occur in ORDER BY, GROUP BY, HAVING, + ** and LIMIT clauses. But pExpr originates in the result set of a + ** SELECT. So pExpr can never contain an AS operator. + */ + assert( pExpr->op!=TK_AS ); + + switch( pExpr->op ){ + case TK_AGG_COLUMN: + case TK_COLUMN: { + /* The expression is a column. Locate the table the column is being + ** extracted from in NameContext.pSrcList. This table may be real + ** database table or a subquery. + */ + Table *pTab = 0; /* Table structure column is extracted from */ + Select *pS = 0; /* Select the column is extracted from */ + int iCol = pExpr->iColumn; /* Index of column in pTab */ + while( pNC && !pTab ){ + SrcList *pTabList = pNC->pSrcList; + for(j=0;jnSrc && pTabList->a[j].iCursor!=pExpr->iTable;j++); + if( jnSrc ){ + pTab = pTabList->a[j].pTab; + pS = pTabList->a[j].pSelect; + }else{ + pNC = pNC->pNext; + } + } + + if( pTab==0 ){ + /* FIX ME: + ** This can occurs if you have something like "SELECT new.x;" inside + ** a trigger. In other words, if you reference the special "new" + ** table in the result set of a select. We do not have a good way + ** to find the actual table type, so call it "TEXT". This is really + ** something of a bug, but I do not know how to fix it. + ** + ** This code does not produce the correct answer - it just prevents + ** a segfault. See ticket #1229. + */ + zType = "TEXT"; + break; + } + + assert( pTab ); + if( pS ){ + /* The "table" is actually a sub-select or a view in the FROM clause + ** of the SELECT statement. Return the declaration type and origin + ** data for the result-set column of the sub-select. + */ + if( iCol>=0 && iColpEList->nExpr ){ + /* If iCol is less than zero, then the expression requests the + ** rowid of the sub-select or view. This expression is legal (see + ** test case misc2.2.2) - it always evaluates to NULL. + */ + NameContext sNC; + Expr *p = pS->pEList->a[iCol].pExpr; + sNC.pSrcList = pS->pSrc; + sNC.pNext = 0; + sNC.pParse = pNC->pParse; + zType = columnType(&sNC, p, &zOriginDb, &zOriginTab, &zOriginCol); + } + }else if( pTab->pSchema ){ + /* A real table */ + assert( !pS ); + if( iCol<0 ) iCol = pTab->iPKey; + assert( iCol==-1 || (iCol>=0 && iColnCol) ); + if( iCol<0 ){ + zType = "INTEGER"; + zOriginCol = "rowid"; + }else{ + zType = pTab->aCol[iCol].zType; + zOriginCol = pTab->aCol[iCol].zName; + } + zOriginTab = pTab->zName; + if( pNC->pParse ){ + int iDb = sqlite3SchemaToIndex(pNC->pParse->db, pTab->pSchema); + zOriginDb = pNC->pParse->db->aDb[iDb].zName; + } + } + break; + } +#ifndef SQLITE_OMIT_SUBQUERY + case TK_SELECT: { + /* The expression is a sub-select. Return the declaration type and + ** origin info for the single column in the result set of the SELECT + ** statement. + */ + NameContext sNC; + Select *pS = pExpr->pSelect; + Expr *p = pS->pEList->a[0].pExpr; + sNC.pSrcList = pS->pSrc; + sNC.pNext = pNC; + sNC.pParse = pNC->pParse; + zType = columnType(&sNC, p, &zOriginDb, &zOriginTab, &zOriginCol); + break; + } +#endif + } + + if( pzOriginDb ){ + assert( pzOriginTab && pzOriginCol ); + *pzOriginDb = zOriginDb; + *pzOriginTab = zOriginTab; + *pzOriginCol = zOriginCol; + } + return zType; +} + +/* +** Generate code that will tell the VDBE the declaration types of columns +** in the result set. +*/ +static void generateColumnTypes( + Parse *pParse, /* Parser context */ + SrcList *pTabList, /* List of tables */ + ExprList *pEList /* Expressions defining the result set */ +){ + Vdbe *v = pParse->pVdbe; + int i; + NameContext sNC; + sNC.pSrcList = pTabList; + sNC.pParse = pParse; + for(i=0; inExpr; i++){ + Expr *p = pEList->a[i].pExpr; + const char *zOrigDb = 0; + const char *zOrigTab = 0; + const char *zOrigCol = 0; + const char *zType = columnType(&sNC, p, &zOrigDb, &zOrigTab, &zOrigCol); + + /* The vdbe must make it's own copy of the column-type and other + ** column specific strings, in case the schema is reset before this + ** virtual machine is deleted. + */ + sqlite3VdbeSetColName(v, i, COLNAME_DECLTYPE, zType, P3_TRANSIENT); + sqlite3VdbeSetColName(v, i, COLNAME_DATABASE, zOrigDb, P3_TRANSIENT); + sqlite3VdbeSetColName(v, i, COLNAME_TABLE, zOrigTab, P3_TRANSIENT); + sqlite3VdbeSetColName(v, i, COLNAME_COLUMN, zOrigCol, P3_TRANSIENT); + } +} + +/* +** Generate code that will tell the VDBE the names of columns +** in the result set. This information is used to provide the +** azCol[] values in the callback. +*/ +static void generateColumnNames( + Parse *pParse, /* Parser context */ + SrcList *pTabList, /* List of tables */ + ExprList *pEList /* Expressions defining the result set */ +){ + Vdbe *v = pParse->pVdbe; + int i, j; + sqlite3 *db = pParse->db; + int fullNames, shortNames; + +#ifndef SQLITE_OMIT_EXPLAIN + /* If this is an EXPLAIN, skip this step */ + if( pParse->explain ){ + return; + } +#endif + + assert( v!=0 ); + if( pParse->colNamesSet || v==0 || sqlite3MallocFailed() ) return; + pParse->colNamesSet = 1; + fullNames = (db->flags & SQLITE_FullColNames)!=0; + shortNames = (db->flags & SQLITE_ShortColNames)!=0; + sqlite3VdbeSetNumCols(v, pEList->nExpr); + for(i=0; inExpr; i++){ + Expr *p; + p = pEList->a[i].pExpr; + if( p==0 ) continue; + if( pEList->a[i].zName ){ + char *zName = pEList->a[i].zName; + sqlite3VdbeSetColName(v, i, COLNAME_NAME, zName, strlen(zName)); + continue; + } + if( p->op==TK_COLUMN && pTabList ){ + Table *pTab; + char *zCol; + int iCol = p->iColumn; + for(j=0; jnSrc && pTabList->a[j].iCursor!=p->iTable; j++){} + assert( jnSrc ); + pTab = pTabList->a[j].pTab; + if( iCol<0 ) iCol = pTab->iPKey; + assert( iCol==-1 || (iCol>=0 && iColnCol) ); + if( iCol<0 ){ + zCol = "rowid"; + }else{ + zCol = pTab->aCol[iCol].zName; + } + if( !shortNames && !fullNames && p->span.z && p->span.z[0] ){ + sqlite3VdbeSetColName(v, i, COLNAME_NAME, (char*)p->span.z, p->span.n); + }else if( fullNames || (!shortNames && pTabList->nSrc>1) ){ + char *zName = 0; + char *zTab; + + zTab = pTabList->a[j].zAlias; + if( fullNames || zTab==0 ) zTab = pTab->zName; + sqlite3SetString(&zName, zTab, ".", zCol, (char*)0); + sqlite3VdbeSetColName(v, i, COLNAME_NAME, zName, P3_DYNAMIC); + }else{ + sqlite3VdbeSetColName(v, i, COLNAME_NAME, zCol, strlen(zCol)); + } + }else if( p->span.z && p->span.z[0] ){ + sqlite3VdbeSetColName(v, i, COLNAME_NAME, (char*)p->span.z, p->span.n); + /* sqlite3VdbeCompressSpace(v, addr); */ + }else{ + char zName[30]; + assert( p->op!=TK_COLUMN || pTabList==0 ); + sprintf(zName, "column%d", i+1); + sqlite3VdbeSetColName(v, i, COLNAME_NAME, zName, 0); + } + } + generateColumnTypes(pParse, pTabList, pEList); +} + +#ifndef SQLITE_OMIT_COMPOUND_SELECT +/* +** Name of the connection operator, used for error messages. +*/ +static const char *selectOpName(int id){ + char *z; + switch( id ){ + case TK_ALL: z = "UNION ALL"; break; + case TK_INTERSECT: z = "INTERSECT"; break; + case TK_EXCEPT: z = "EXCEPT"; break; + default: z = "UNION"; break; + } + return z; +} +#endif /* SQLITE_OMIT_COMPOUND_SELECT */ + +/* +** Forward declaration +*/ +static int prepSelectStmt(Parse*, Select*); + +/* +** Given a SELECT statement, generate a Table structure that describes +** the result set of that SELECT. +*/ +Table *sqlite3ResultSetOfSelect(Parse *pParse, char *zTabName, Select *pSelect){ + Table *pTab; + int i, j; + ExprList *pEList; + Column *aCol, *pCol; + + while( pSelect->pPrior ) pSelect = pSelect->pPrior; + if( prepSelectStmt(pParse, pSelect) ){ + return 0; + } + if( sqlite3SelectResolve(pParse, pSelect, 0) ){ + return 0; + } + pTab = sqliteMalloc( sizeof(Table) ); + if( pTab==0 ){ + return 0; + } + pTab->nRef = 1; + pTab->zName = zTabName ? sqliteStrDup(zTabName) : 0; + pEList = pSelect->pEList; + pTab->nCol = pEList->nExpr; + assert( pTab->nCol>0 ); + pTab->aCol = aCol = sqliteMalloc( sizeof(pTab->aCol[0])*pTab->nCol ); + for(i=0, pCol=aCol; inCol; i++, pCol++){ + Expr *p, *pR; + char *zType; + char *zName; + int nName; + CollSeq *pColl; + int cnt; + NameContext sNC; + + /* Get an appropriate name for the column + */ + p = pEList->a[i].pExpr; + assert( p->pRight==0 || p->pRight->token.z==0 || p->pRight->token.z[0]!=0 ); + if( (zName = pEList->a[i].zName)!=0 ){ + /* If the column contains an "AS " phrase, use as the name */ + zName = sqliteStrDup(zName); + }else if( p->op==TK_DOT + && (pR=p->pRight)!=0 && pR->token.z && pR->token.z[0] ){ + /* For columns of the from A.B use B as the name */ + zName = sqlite3MPrintf("%T", &pR->token); + }else if( p->span.z && p->span.z[0] ){ + /* Use the original text of the column expression as its name */ + zName = sqlite3MPrintf("%T", &p->span); + }else{ + /* If all else fails, make up a name */ + zName = sqlite3MPrintf("column%d", i+1); + } + sqlite3Dequote(zName); + if( sqlite3MallocFailed() ){ + sqliteFree(zName); + sqlite3DeleteTable(0, pTab); + return 0; + } + + /* Make sure the column name is unique. If the name is not unique, + ** append a integer to the name so that it becomes unique. + */ + nName = strlen(zName); + for(j=cnt=0; jzName = zName; + + /* Get the typename, type affinity, and collating sequence for the + ** column. + */ + memset(&sNC, 0, sizeof(sNC)); + sNC.pSrcList = pSelect->pSrc; + zType = sqliteStrDup(columnType(&sNC, p, 0, 0, 0)); + pCol->zType = zType; + pCol->affinity = sqlite3ExprAffinity(p); + pColl = sqlite3ExprCollSeq(pParse, p); + if( pColl ){ + pCol->zColl = sqliteStrDup(pColl->zName); + } + } + pTab->iPKey = -1; + return pTab; +} + +/* +** Prepare a SELECT statement for processing by doing the following +** things: +** +** (1) Make sure VDBE cursor numbers have been assigned to every +** element of the FROM clause. +** +** (2) Fill in the pTabList->a[].pTab fields in the SrcList that +** defines FROM clause. When views appear in the FROM clause, +** fill pTabList->a[].pSelect with a copy of the SELECT statement +** that implements the view. A copy is made of the view's SELECT +** statement so that we can freely modify or delete that statement +** without worrying about messing up the presistent representation +** of the view. +** +** (3) Add terms to the WHERE clause to accomodate the NATURAL keyword +** on joins and the ON and USING clause of joins. +** +** (4) Scan the list of columns in the result set (pEList) looking +** for instances of the "*" operator or the TABLE.* operator. +** If found, expand each "*" to be every column in every table +** and TABLE.* to be every column in TABLE. +** +** Return 0 on success. If there are problems, leave an error message +** in pParse and return non-zero. +*/ +static int prepSelectStmt(Parse *pParse, Select *p){ + int i, j, k, rc; + SrcList *pTabList; + ExprList *pEList; + struct SrcList_item *pFrom; + + if( p==0 || p->pSrc==0 || sqlite3MallocFailed() ){ + return 1; + } + pTabList = p->pSrc; + pEList = p->pEList; + + /* Make sure cursor numbers have been assigned to all entries in + ** the FROM clause of the SELECT statement. + */ + sqlite3SrcListAssignCursors(pParse, p->pSrc); + + /* Look up every table named in the FROM clause of the select. If + ** an entry of the FROM clause is a subquery instead of a table or view, + ** then create a transient table structure to describe the subquery. + */ + for(i=0, pFrom=pTabList->a; inSrc; i++, pFrom++){ + Table *pTab; + if( pFrom->pTab!=0 ){ + /* This statement has already been prepared. There is no need + ** to go further. */ + assert( i==0 ); + return 0; + } + if( pFrom->zName==0 ){ +#ifndef SQLITE_OMIT_SUBQUERY + /* A sub-query in the FROM clause of a SELECT */ + assert( pFrom->pSelect!=0 ); + if( pFrom->zAlias==0 ){ + pFrom->zAlias = + sqlite3MPrintf("sqlite_subquery_%p_", (void*)pFrom->pSelect); + } + assert( pFrom->pTab==0 ); + pFrom->pTab = pTab = + sqlite3ResultSetOfSelect(pParse, pFrom->zAlias, pFrom->pSelect); + if( pTab==0 ){ + return 1; + } + /* The isEphem flag indicates that the Table structure has been + ** dynamically allocated and may be freed at any time. In other words, + ** pTab is not pointing to a persistent table structure that defines + ** part of the schema. */ + pTab->isEphem = 1; +#endif + }else{ + /* An ordinary table or view name in the FROM clause */ + assert( pFrom->pTab==0 ); + pFrom->pTab = pTab = + sqlite3LocateTable(pParse,pFrom->zName,pFrom->zDatabase); + if( pTab==0 ){ + return 1; + } + pTab->nRef++; +#if !defined(SQLITE_OMIT_VIEW) || !defined (SQLITE_OMIT_VIRTUALTABLE) + if( pTab->pSelect || IsVirtual(pTab) ){ + /* We reach here if the named table is a really a view */ + if( sqlite3ViewGetColumnNames(pParse, pTab) ){ + return 1; + } + /* If pFrom->pSelect!=0 it means we are dealing with a + ** view within a view. The SELECT structure has already been + ** copied by the outer view so we can skip the copy step here + ** in the inner view. + */ + if( pFrom->pSelect==0 ){ + pFrom->pSelect = sqlite3SelectDup(pTab->pSelect); + } + } +#endif + } + } + + /* Process NATURAL keywords, and ON and USING clauses of joins. + */ + if( sqliteProcessJoin(pParse, p) ) return 1; + + /* For every "*" that occurs in the column list, insert the names of + ** all columns in all tables. And for every TABLE.* insert the names + ** of all columns in TABLE. The parser inserted a special expression + ** with the TK_ALL operator for each "*" that it found in the column list. + ** The following code just has to locate the TK_ALL expressions and expand + ** each one to the list of all columns in all tables. + ** + ** The first loop just checks to see if there are any "*" operators + ** that need expanding. + */ + for(k=0; knExpr; k++){ + Expr *pE = pEList->a[k].pExpr; + if( pE->op==TK_ALL ) break; + if( pE->op==TK_DOT && pE->pRight && pE->pRight->op==TK_ALL + && pE->pLeft && pE->pLeft->op==TK_ID ) break; + } + rc = 0; + if( knExpr ){ + /* + ** If we get here it means the result set contains one or more "*" + ** operators that need to be expanded. Loop through each expression + ** in the result set and expand them one by one. + */ + struct ExprList_item *a = pEList->a; + ExprList *pNew = 0; + int flags = pParse->db->flags; + int longNames = (flags & SQLITE_FullColNames)!=0 && + (flags & SQLITE_ShortColNames)==0; + + for(k=0; knExpr; k++){ + Expr *pE = a[k].pExpr; + if( pE->op!=TK_ALL && + (pE->op!=TK_DOT || pE->pRight==0 || pE->pRight->op!=TK_ALL) ){ + /* This particular expression does not need to be expanded. + */ + pNew = sqlite3ExprListAppend(pNew, a[k].pExpr, 0); + if( pNew ){ + pNew->a[pNew->nExpr-1].zName = a[k].zName; + }else{ + rc = 1; + } + a[k].pExpr = 0; + a[k].zName = 0; + }else{ + /* This expression is a "*" or a "TABLE.*" and needs to be + ** expanded. */ + int tableSeen = 0; /* Set to 1 when TABLE matches */ + char *zTName; /* text of name of TABLE */ + if( pE->op==TK_DOT && pE->pLeft ){ + zTName = sqlite3NameFromToken(&pE->pLeft->token); + }else{ + zTName = 0; + } + for(i=0, pFrom=pTabList->a; inSrc; i++, pFrom++){ + Table *pTab = pFrom->pTab; + char *zTabName = pFrom->zAlias; + if( zTabName==0 || zTabName[0]==0 ){ + zTabName = pTab->zName; + } + if( zTName && (zTabName==0 || zTabName[0]==0 || + sqlite3StrICmp(zTName, zTabName)!=0) ){ + continue; + } + tableSeen = 1; + for(j=0; jnCol; j++){ + Expr *pExpr, *pRight; + char *zName = pTab->aCol[j].zName; + + if( i>0 ){ + struct SrcList_item *pLeft = &pTabList->a[i-1]; + if( (pLeft[1].jointype & JT_NATURAL)!=0 && + columnIndex(pLeft->pTab, zName)>=0 ){ + /* In a NATURAL join, omit the join columns from the + ** table on the right */ + continue; + } + if( sqlite3IdListIndex(pLeft[1].pUsing, zName)>=0 ){ + /* In a join with a USING clause, omit columns in the + ** using clause from the table on the right. */ + continue; + } + } + pRight = sqlite3Expr(TK_ID, 0, 0, 0); + if( pRight==0 ) break; + setToken(&pRight->token, zName); + if( zTabName && (longNames || pTabList->nSrc>1) ){ + Expr *pLeft = sqlite3Expr(TK_ID, 0, 0, 0); + pExpr = sqlite3Expr(TK_DOT, pLeft, pRight, 0); + if( pExpr==0 ) break; + setToken(&pLeft->token, zTabName); + setToken(&pExpr->span, sqlite3MPrintf("%s.%s", zTabName, zName)); + pExpr->span.dyn = 1; + pExpr->token.z = 0; + pExpr->token.n = 0; + pExpr->token.dyn = 0; + }else{ + pExpr = pRight; + pExpr->span = pExpr->token; + } + if( longNames ){ + pNew = sqlite3ExprListAppend(pNew, pExpr, &pExpr->span); + }else{ + pNew = sqlite3ExprListAppend(pNew, pExpr, &pRight->token); + } + } + } + if( !tableSeen ){ + if( zTName ){ + sqlite3ErrorMsg(pParse, "no such table: %s", zTName); + }else{ + sqlite3ErrorMsg(pParse, "no tables specified"); + } + rc = 1; + } + sqliteFree(zTName); + } + } + sqlite3ExprListDelete(pEList); + p->pEList = pNew; + } + return rc; +} + +#ifndef SQLITE_OMIT_COMPOUND_SELECT +/* +** This routine associates entries in an ORDER BY expression list with +** columns in a result. For each ORDER BY expression, the opcode of +** the top-level node is changed to TK_COLUMN and the iColumn value of +** the top-level node is filled in with column number and the iTable +** value of the top-level node is filled with iTable parameter. +** +** If there are prior SELECT clauses, they are processed first. A match +** in an earlier SELECT takes precedence over a later SELECT. +** +** Any entry that does not match is flagged as an error. The number +** of errors is returned. +*/ +static int matchOrderbyToColumn( + Parse *pParse, /* A place to leave error messages */ + Select *pSelect, /* Match to result columns of this SELECT */ + ExprList *pOrderBy, /* The ORDER BY values to match against columns */ + int iTable, /* Insert this value in iTable */ + int mustComplete /* If TRUE all ORDER BYs must match */ +){ + int nErr = 0; + int i, j; + ExprList *pEList; + + if( pSelect==0 || pOrderBy==0 ) return 1; + if( mustComplete ){ + for(i=0; inExpr; i++){ pOrderBy->a[i].done = 0; } + } + if( prepSelectStmt(pParse, pSelect) ){ + return 1; + } + if( pSelect->pPrior ){ + if( matchOrderbyToColumn(pParse, pSelect->pPrior, pOrderBy, iTable, 0) ){ + return 1; + } + } + pEList = pSelect->pEList; + for(i=0; inExpr; i++){ + Expr *pE = pOrderBy->a[i].pExpr; + int iCol = -1; + if( pOrderBy->a[i].done ) continue; + if( sqlite3ExprIsInteger(pE, &iCol) ){ + if( iCol<=0 || iCol>pEList->nExpr ){ + sqlite3ErrorMsg(pParse, + "ORDER BY position %d should be between 1 and %d", + iCol, pEList->nExpr); + nErr++; + break; + } + if( !mustComplete ) continue; + iCol--; + } + for(j=0; iCol<0 && jnExpr; j++){ + if( pEList->a[j].zName && (pE->op==TK_ID || pE->op==TK_STRING) ){ + char *zName, *zLabel; + zName = pEList->a[j].zName; + zLabel = sqlite3NameFromToken(&pE->token); + assert( zLabel!=0 ); + if( sqlite3StrICmp(zName, zLabel)==0 ){ + iCol = j; + } + sqliteFree(zLabel); + } + if( iCol<0 && sqlite3ExprCompare(pE, pEList->a[j].pExpr) ){ + iCol = j; + } + } + if( iCol>=0 ){ + pE->op = TK_COLUMN; + pE->iColumn = iCol; + pE->iTable = iTable; + pE->iAgg = -1; + pOrderBy->a[i].done = 1; + } + if( iCol<0 && mustComplete ){ + sqlite3ErrorMsg(pParse, + "ORDER BY term number %d does not match any result column", i+1); + nErr++; + break; + } + } + return nErr; +} +#endif /* #ifndef SQLITE_OMIT_COMPOUND_SELECT */ + +/* +** Get a VDBE for the given parser context. Create a new one if necessary. +** If an error occurs, return NULL and leave a message in pParse. +*/ +Vdbe *sqlite3GetVdbe(Parse *pParse){ + Vdbe *v = pParse->pVdbe; + if( v==0 ){ + v = pParse->pVdbe = sqlite3VdbeCreate(pParse->db); + } + return v; +} + + +/* +** Compute the iLimit and iOffset fields of the SELECT based on the +** pLimit and pOffset expressions. pLimit and pOffset hold the expressions +** that appear in the original SQL statement after the LIMIT and OFFSET +** keywords. Or NULL if those keywords are omitted. iLimit and iOffset +** are the integer memory register numbers for counters used to compute +** the limit and offset. If there is no limit and/or offset, then +** iLimit and iOffset are negative. +** +** This routine changes the values of iLimit and iOffset only if +** a limit or offset is defined by pLimit and pOffset. iLimit and +** iOffset should have been preset to appropriate default values +** (usually but not always -1) prior to calling this routine. +** Only if pLimit!=0 or pOffset!=0 do the limit registers get +** redefined. The UNION ALL operator uses this property to force +** the reuse of the same limit and offset registers across multiple +** SELECT statements. +*/ +static void computeLimitRegisters(Parse *pParse, Select *p, int iBreak){ + Vdbe *v = 0; + int iLimit = 0; + int iOffset; + int addr1, addr2; + + /* + ** "LIMIT -1" always shows all rows. There is some + ** contraversy about what the correct behavior should be. + ** The current implementation interprets "LIMIT 0" to mean + ** no rows. + */ + if( p->pLimit ){ + p->iLimit = iLimit = pParse->nMem; + pParse->nMem += 2; + v = sqlite3GetVdbe(pParse); + if( v==0 ) return; + sqlite3ExprCode(pParse, p->pLimit); + sqlite3VdbeAddOp(v, OP_MustBeInt, 0, 0); + sqlite3VdbeAddOp(v, OP_MemStore, iLimit, 0); + VdbeComment((v, "# LIMIT counter")); + sqlite3VdbeAddOp(v, OP_IfMemZero, iLimit, iBreak); + } + if( p->pOffset ){ + p->iOffset = iOffset = pParse->nMem++; + v = sqlite3GetVdbe(pParse); + if( v==0 ) return; + sqlite3ExprCode(pParse, p->pOffset); + sqlite3VdbeAddOp(v, OP_MustBeInt, 0, 0); + sqlite3VdbeAddOp(v, OP_MemStore, iOffset, p->pLimit==0); + VdbeComment((v, "# OFFSET counter")); + addr1 = sqlite3VdbeAddOp(v, OP_IfMemPos, iOffset, 0); + sqlite3VdbeAddOp(v, OP_Pop, 1, 0); + sqlite3VdbeAddOp(v, OP_Integer, 0, 0); + sqlite3VdbeJumpHere(v, addr1); + if( p->pLimit ){ + sqlite3VdbeAddOp(v, OP_Add, 0, 0); + } + } + if( p->pLimit ){ + addr1 = sqlite3VdbeAddOp(v, OP_IfMemPos, iLimit, 0); + sqlite3VdbeAddOp(v, OP_Pop, 1, 0); + sqlite3VdbeAddOp(v, OP_MemInt, -1, iLimit+1); + addr2 = sqlite3VdbeAddOp(v, OP_Goto, 0, 0); + sqlite3VdbeJumpHere(v, addr1); + sqlite3VdbeAddOp(v, OP_MemStore, iLimit+1, 1); + VdbeComment((v, "# LIMIT+OFFSET")); + sqlite3VdbeJumpHere(v, addr2); + } +} + +/* +** Allocate a virtual index to use for sorting. +*/ +static void createSortingIndex(Parse *pParse, Select *p, ExprList *pOrderBy){ + if( pOrderBy ){ + int addr; + assert( pOrderBy->iECursor==0 ); + pOrderBy->iECursor = pParse->nTab++; + addr = sqlite3VdbeAddOp(pParse->pVdbe, OP_OpenEphemeral, + pOrderBy->iECursor, pOrderBy->nExpr+1); + assert( p->addrOpenEphm[2] == -1 ); + p->addrOpenEphm[2] = addr; + } +} + +#ifndef SQLITE_OMIT_COMPOUND_SELECT +/* +** Return the appropriate collating sequence for the iCol-th column of +** the result set for the compound-select statement "p". Return NULL if +** the column has no default collating sequence. +** +** The collating sequence for the compound select is taken from the +** left-most term of the select that has a collating sequence. +*/ +static CollSeq *multiSelectCollSeq(Parse *pParse, Select *p, int iCol){ + CollSeq *pRet; + if( p->pPrior ){ + pRet = multiSelectCollSeq(pParse, p->pPrior, iCol); + }else{ + pRet = 0; + } + if( pRet==0 ){ + pRet = sqlite3ExprCollSeq(pParse, p->pEList->a[iCol].pExpr); + } + return pRet; +} +#endif /* SQLITE_OMIT_COMPOUND_SELECT */ + +#ifndef SQLITE_OMIT_COMPOUND_SELECT +/* +** This routine is called to process a query that is really the union +** or intersection of two or more separate queries. +** +** "p" points to the right-most of the two queries. the query on the +** left is p->pPrior. The left query could also be a compound query +** in which case this routine will be called recursively. +** +** The results of the total query are to be written into a destination +** of type eDest with parameter iParm. +** +** Example 1: Consider a three-way compound SQL statement. +** +** SELECT a FROM t1 UNION SELECT b FROM t2 UNION SELECT c FROM t3 +** +** This statement is parsed up as follows: +** +** SELECT c FROM t3 +** | +** `-----> SELECT b FROM t2 +** | +** `------> SELECT a FROM t1 +** +** The arrows in the diagram above represent the Select.pPrior pointer. +** So if this routine is called with p equal to the t3 query, then +** pPrior will be the t2 query. p->op will be TK_UNION in this case. +** +** Notice that because of the way SQLite parses compound SELECTs, the +** individual selects always group from left to right. +*/ +static int multiSelect( + Parse *pParse, /* Parsing context */ + Select *p, /* The right-most of SELECTs to be coded */ + int eDest, /* \___ Store query results as specified */ + int iParm, /* / by these two parameters. */ + char *aff /* If eDest is SRT_Union, the affinity string */ +){ + int rc = SQLITE_OK; /* Success code from a subroutine */ + Select *pPrior; /* Another SELECT immediately to our left */ + Vdbe *v; /* Generate code to this VDBE */ + int nCol; /* Number of columns in the result set */ + ExprList *pOrderBy; /* The ORDER BY clause on p */ + int aSetP2[2]; /* Set P2 value of these op to number of columns */ + int nSetP2 = 0; /* Number of slots in aSetP2[] used */ + + /* Make sure there is no ORDER BY or LIMIT clause on prior SELECTs. Only + ** the last (right-most) SELECT in the series may have an ORDER BY or LIMIT. + */ + if( p==0 || p->pPrior==0 ){ + rc = 1; + goto multi_select_end; + } + pPrior = p->pPrior; + assert( pPrior->pRightmost!=pPrior ); + assert( pPrior->pRightmost==p->pRightmost ); + if( pPrior->pOrderBy ){ + sqlite3ErrorMsg(pParse,"ORDER BY clause should come after %s not before", + selectOpName(p->op)); + rc = 1; + goto multi_select_end; + } + if( pPrior->pLimit ){ + sqlite3ErrorMsg(pParse,"LIMIT clause should come after %s not before", + selectOpName(p->op)); + rc = 1; + goto multi_select_end; + } + + /* Make sure we have a valid query engine. If not, create a new one. + */ + v = sqlite3GetVdbe(pParse); + if( v==0 ){ + rc = 1; + goto multi_select_end; + } + + /* Create the destination temporary table if necessary + */ + if( eDest==SRT_EphemTab ){ + assert( p->pEList ); + assert( nSetP2pOrderBy; + switch( p->op ){ + case TK_ALL: { + if( pOrderBy==0 ){ + int addr = 0; + assert( !pPrior->pLimit ); + pPrior->pLimit = p->pLimit; + pPrior->pOffset = p->pOffset; + rc = sqlite3Select(pParse, pPrior, eDest, iParm, 0, 0, 0, aff); + p->pLimit = 0; + p->pOffset = 0; + if( rc ){ + goto multi_select_end; + } + p->pPrior = 0; + p->iLimit = pPrior->iLimit; + p->iOffset = pPrior->iOffset; + if( p->iLimit>=0 ){ + addr = sqlite3VdbeAddOp(v, OP_IfMemZero, p->iLimit, 0); + VdbeComment((v, "# Jump ahead if LIMIT reached")); + } + rc = sqlite3Select(pParse, p, eDest, iParm, 0, 0, 0, aff); + p->pPrior = pPrior; + if( rc ){ + goto multi_select_end; + } + if( addr ){ + sqlite3VdbeJumpHere(v, addr); + } + break; + } + /* For UNION ALL ... ORDER BY fall through to the next case */ + } + case TK_EXCEPT: + case TK_UNION: { + int unionTab; /* Cursor number of the temporary table holding result */ + int op = 0; /* One of the SRT_ operations to apply to self */ + int priorOp; /* The SRT_ operation to apply to prior selects */ + Expr *pLimit, *pOffset; /* Saved values of p->nLimit and p->nOffset */ + int addr; + + priorOp = p->op==TK_ALL ? SRT_Table : SRT_Union; + if( eDest==priorOp && pOrderBy==0 && !p->pLimit && !p->pOffset ){ + /* We can reuse a temporary table generated by a SELECT to our + ** right. + */ + unionTab = iParm; + }else{ + /* We will need to create our own temporary table to hold the + ** intermediate results. + */ + unionTab = pParse->nTab++; + if( pOrderBy && matchOrderbyToColumn(pParse, p, pOrderBy, unionTab,1) ){ + rc = 1; + goto multi_select_end; + } + addr = sqlite3VdbeAddOp(v, OP_OpenEphemeral, unionTab, 0); + if( priorOp==SRT_Table ){ + assert( nSetP2addrOpenEphm[0] == -1 ); + p->addrOpenEphm[0] = addr; + p->pRightmost->usesEphm = 1; + } + createSortingIndex(pParse, p, pOrderBy); + assert( p->pEList ); + } + + /* Code the SELECT statements to our left + */ + assert( !pPrior->pOrderBy ); + rc = sqlite3Select(pParse, pPrior, priorOp, unionTab, 0, 0, 0, aff); + if( rc ){ + goto multi_select_end; + } + + /* Code the current SELECT statement + */ + switch( p->op ){ + case TK_EXCEPT: op = SRT_Except; break; + case TK_UNION: op = SRT_Union; break; + case TK_ALL: op = SRT_Table; break; + } + p->pPrior = 0; + p->pOrderBy = 0; + p->disallowOrderBy = pOrderBy!=0; + pLimit = p->pLimit; + p->pLimit = 0; + pOffset = p->pOffset; + p->pOffset = 0; + rc = sqlite3Select(pParse, p, op, unionTab, 0, 0, 0, aff); + p->pPrior = pPrior; + p->pOrderBy = pOrderBy; + sqlite3ExprDelete(p->pLimit); + p->pLimit = pLimit; + p->pOffset = pOffset; + p->iLimit = -1; + p->iOffset = -1; + if( rc ){ + goto multi_select_end; + } + + + /* Convert the data in the temporary table into whatever form + ** it is that we currently need. + */ + if( eDest!=priorOp || unionTab!=iParm ){ + int iCont, iBreak, iStart; + assert( p->pEList ); + if( eDest==SRT_Callback ){ + Select *pFirst = p; + while( pFirst->pPrior ) pFirst = pFirst->pPrior; + generateColumnNames(pParse, 0, pFirst->pEList); + } + iBreak = sqlite3VdbeMakeLabel(v); + iCont = sqlite3VdbeMakeLabel(v); + computeLimitRegisters(pParse, p, iBreak); + sqlite3VdbeAddOp(v, OP_Rewind, unionTab, iBreak); + iStart = sqlite3VdbeCurrentAddr(v); + rc = selectInnerLoop(pParse, p, p->pEList, unionTab, p->pEList->nExpr, + pOrderBy, -1, eDest, iParm, + iCont, iBreak, 0); + if( rc ){ + rc = 1; + goto multi_select_end; + } + sqlite3VdbeResolveLabel(v, iCont); + sqlite3VdbeAddOp(v, OP_Next, unionTab, iStart); + sqlite3VdbeResolveLabel(v, iBreak); + sqlite3VdbeAddOp(v, OP_Close, unionTab, 0); + } + break; + } + case TK_INTERSECT: { + int tab1, tab2; + int iCont, iBreak, iStart; + Expr *pLimit, *pOffset; + int addr; + + /* INTERSECT is different from the others since it requires + ** two temporary tables. Hence it has its own case. Begin + ** by allocating the tables we will need. + */ + tab1 = pParse->nTab++; + tab2 = pParse->nTab++; + if( pOrderBy && matchOrderbyToColumn(pParse,p,pOrderBy,tab1,1) ){ + rc = 1; + goto multi_select_end; + } + createSortingIndex(pParse, p, pOrderBy); + + addr = sqlite3VdbeAddOp(v, OP_OpenEphemeral, tab1, 0); + assert( p->addrOpenEphm[0] == -1 ); + p->addrOpenEphm[0] = addr; + p->pRightmost->usesEphm = 1; + assert( p->pEList ); + + /* Code the SELECTs to our left into temporary table "tab1". + */ + rc = sqlite3Select(pParse, pPrior, SRT_Union, tab1, 0, 0, 0, aff); + if( rc ){ + goto multi_select_end; + } + + /* Code the current SELECT into temporary table "tab2" + */ + addr = sqlite3VdbeAddOp(v, OP_OpenEphemeral, tab2, 0); + assert( p->addrOpenEphm[1] == -1 ); + p->addrOpenEphm[1] = addr; + p->pPrior = 0; + pLimit = p->pLimit; + p->pLimit = 0; + pOffset = p->pOffset; + p->pOffset = 0; + rc = sqlite3Select(pParse, p, SRT_Union, tab2, 0, 0, 0, aff); + p->pPrior = pPrior; + sqlite3ExprDelete(p->pLimit); + p->pLimit = pLimit; + p->pOffset = pOffset; + if( rc ){ + goto multi_select_end; + } + + /* Generate code to take the intersection of the two temporary + ** tables. + */ + assert( p->pEList ); + if( eDest==SRT_Callback ){ + Select *pFirst = p; + while( pFirst->pPrior ) pFirst = pFirst->pPrior; + generateColumnNames(pParse, 0, pFirst->pEList); + } + iBreak = sqlite3VdbeMakeLabel(v); + iCont = sqlite3VdbeMakeLabel(v); + computeLimitRegisters(pParse, p, iBreak); + sqlite3VdbeAddOp(v, OP_Rewind, tab1, iBreak); + iStart = sqlite3VdbeAddOp(v, OP_RowKey, tab1, 0); + sqlite3VdbeAddOp(v, OP_NotFound, tab2, iCont); + rc = selectInnerLoop(pParse, p, p->pEList, tab1, p->pEList->nExpr, + pOrderBy, -1, eDest, iParm, + iCont, iBreak, 0); + if( rc ){ + rc = 1; + goto multi_select_end; + } + sqlite3VdbeResolveLabel(v, iCont); + sqlite3VdbeAddOp(v, OP_Next, tab1, iStart); + sqlite3VdbeResolveLabel(v, iBreak); + sqlite3VdbeAddOp(v, OP_Close, tab2, 0); + sqlite3VdbeAddOp(v, OP_Close, tab1, 0); + break; + } + } + + /* Make sure all SELECTs in the statement have the same number of elements + ** in their result sets. + */ + assert( p->pEList && pPrior->pEList ); + if( p->pEList->nExpr!=pPrior->pEList->nExpr ){ + sqlite3ErrorMsg(pParse, "SELECTs to the left and right of %s" + " do not have the same number of result columns", selectOpName(p->op)); + rc = 1; + goto multi_select_end; + } + + /* Set the number of columns in temporary tables + */ + nCol = p->pEList->nExpr; + while( nSetP2 ){ + sqlite3VdbeChangeP2(v, aSetP2[--nSetP2], nCol); + } + + /* Compute collating sequences used by either the ORDER BY clause or + ** by any temporary tables needed to implement the compound select. + ** Attach the KeyInfo structure to all temporary tables. Invoke the + ** ORDER BY processing if there is an ORDER BY clause. + ** + ** This section is run by the right-most SELECT statement only. + ** SELECT statements to the left always skip this part. The right-most + ** SELECT might also skip this part if it has no ORDER BY clause and + ** no temp tables are required. + */ + if( pOrderBy || p->usesEphm ){ + int i; /* Loop counter */ + KeyInfo *pKeyInfo; /* Collating sequence for the result set */ + Select *pLoop; /* For looping through SELECT statements */ + int nKeyCol; /* Number of entries in pKeyInfo->aCol[] */ + CollSeq **apColl; + CollSeq **aCopy; + + assert( p->pRightmost==p ); + nKeyCol = nCol + (pOrderBy ? pOrderBy->nExpr : 0); + pKeyInfo = sqliteMalloc(sizeof(*pKeyInfo)+nKeyCol*(sizeof(CollSeq*) + 1)); + if( !pKeyInfo ){ + rc = SQLITE_NOMEM; + goto multi_select_end; + } + + pKeyInfo->enc = ENC(pParse->db); + pKeyInfo->nField = nCol; + + for(i=0, apColl=pKeyInfo->aColl; idb->pDfltColl; + } + } + + for(pLoop=p; pLoop; pLoop=pLoop->pPrior){ + for(i=0; i<2; i++){ + int addr = pLoop->addrOpenEphm[i]; + if( addr<0 ){ + /* If [0] is unused then [1] is also unused. So we can + ** always safely abort as soon as the first unused slot is found */ + assert( pLoop->addrOpenEphm[1]<0 ); + break; + } + sqlite3VdbeChangeP2(v, addr, nCol); + sqlite3VdbeChangeP3(v, addr, (char*)pKeyInfo, P3_KEYINFO); + } + } + + if( pOrderBy ){ + struct ExprList_item *pOTerm = pOrderBy->a; + int nOrderByExpr = pOrderBy->nExpr; + int addr; + u8 *pSortOrder; + + aCopy = &pKeyInfo->aColl[nOrderByExpr]; + pSortOrder = pKeyInfo->aSortOrder = (u8*)&aCopy[nCol]; + memcpy(aCopy, pKeyInfo->aColl, nCol*sizeof(CollSeq*)); + apColl = pKeyInfo->aColl; + for(i=0; ipExpr; + char *zName = pOTerm->zName; + assert( pExpr->op==TK_COLUMN && pExpr->iColumniColumn]; + } + *pSortOrder = pOTerm->sortOrder; + } + assert( p->pRightmost==p ); + assert( p->addrOpenEphm[2]>=0 ); + addr = p->addrOpenEphm[2]; + sqlite3VdbeChangeP2(v, addr, p->pEList->nExpr+2); + pKeyInfo->nField = nOrderByExpr; + sqlite3VdbeChangeP3(v, addr, (char*)pKeyInfo, P3_KEYINFO_HANDOFF); + pKeyInfo = 0; + generateSortTail(pParse, p, v, p->pEList->nExpr, eDest, iParm); + } + + sqliteFree(pKeyInfo); + } + +multi_select_end: + return rc; +} +#endif /* SQLITE_OMIT_COMPOUND_SELECT */ + +#ifndef SQLITE_OMIT_VIEW +/* +** Scan through the expression pExpr. Replace every reference to +** a column in table number iTable with a copy of the iColumn-th +** entry in pEList. (But leave references to the ROWID column +** unchanged.) +** +** This routine is part of the flattening procedure. A subquery +** whose result set is defined by pEList appears as entry in the +** FROM clause of a SELECT such that the VDBE cursor assigned to that +** FORM clause entry is iTable. This routine make the necessary +** changes to pExpr so that it refers directly to the source table +** of the subquery rather the result set of the subquery. +*/ +static void substExprList(ExprList*,int,ExprList*); /* Forward Decl */ +static void substSelect(Select *, int, ExprList *); /* Forward Decl */ +static void substExpr(Expr *pExpr, int iTable, ExprList *pEList){ + if( pExpr==0 ) return; + if( pExpr->op==TK_COLUMN && pExpr->iTable==iTable ){ + if( pExpr->iColumn<0 ){ + pExpr->op = TK_NULL; + }else{ + Expr *pNew; + assert( pEList!=0 && pExpr->iColumnnExpr ); + assert( pExpr->pLeft==0 && pExpr->pRight==0 && pExpr->pList==0 ); + pNew = pEList->a[pExpr->iColumn].pExpr; + assert( pNew!=0 ); + pExpr->op = pNew->op; + assert( pExpr->pLeft==0 ); + pExpr->pLeft = sqlite3ExprDup(pNew->pLeft); + assert( pExpr->pRight==0 ); + pExpr->pRight = sqlite3ExprDup(pNew->pRight); + assert( pExpr->pList==0 ); + pExpr->pList = sqlite3ExprListDup(pNew->pList); + pExpr->iTable = pNew->iTable; + pExpr->pTab = pNew->pTab; + pExpr->iColumn = pNew->iColumn; + pExpr->iAgg = pNew->iAgg; + sqlite3TokenCopy(&pExpr->token, &pNew->token); + sqlite3TokenCopy(&pExpr->span, &pNew->span); + pExpr->pSelect = sqlite3SelectDup(pNew->pSelect); + pExpr->flags = pNew->flags; + } + }else{ + substExpr(pExpr->pLeft, iTable, pEList); + substExpr(pExpr->pRight, iTable, pEList); + substSelect(pExpr->pSelect, iTable, pEList); + substExprList(pExpr->pList, iTable, pEList); + } +} +static void substExprList(ExprList *pList, int iTable, ExprList *pEList){ + int i; + if( pList==0 ) return; + for(i=0; inExpr; i++){ + substExpr(pList->a[i].pExpr, iTable, pEList); + } +} +static void substSelect(Select *p, int iTable, ExprList *pEList){ + if( !p ) return; + substExprList(p->pEList, iTable, pEList); + substExprList(p->pGroupBy, iTable, pEList); + substExprList(p->pOrderBy, iTable, pEList); + substExpr(p->pHaving, iTable, pEList); + substExpr(p->pWhere, iTable, pEList); +} +#endif /* !defined(SQLITE_OMIT_VIEW) */ + +#ifndef SQLITE_OMIT_VIEW +/* +** This routine attempts to flatten subqueries in order to speed +** execution. It returns 1 if it makes changes and 0 if no flattening +** occurs. +** +** To understand the concept of flattening, consider the following +** query: +** +** SELECT a FROM (SELECT x+y AS a FROM t1 WHERE z<100) WHERE a>5 +** +** The default way of implementing this query is to execute the +** subquery first and store the results in a temporary table, then +** run the outer query on that temporary table. This requires two +** passes over the data. Furthermore, because the temporary table +** has no indices, the WHERE clause on the outer query cannot be +** optimized. +** +** This routine attempts to rewrite queries such as the above into +** a single flat select, like this: +** +** SELECT x+y AS a FROM t1 WHERE z<100 AND a>5 +** +** The code generated for this simpification gives the same result +** but only has to scan the data once. And because indices might +** exist on the table t1, a complete scan of the data might be +** avoided. +** +** Flattening is only attempted if all of the following are true: +** +** (1) The subquery and the outer query do not both use aggregates. +** +** (2) The subquery is not an aggregate or the outer query is not a join. +** +** (3) The subquery is not the right operand of a left outer join, or +** the subquery is not itself a join. (Ticket #306) +** +** (4) The subquery is not DISTINCT or the outer query is not a join. +** +** (5) The subquery is not DISTINCT or the outer query does not use +** aggregates. +** +** (6) The subquery does not use aggregates or the outer query is not +** DISTINCT. +** +** (7) The subquery has a FROM clause. +** +** (8) The subquery does not use LIMIT or the outer query is not a join. +** +** (9) The subquery does not use LIMIT or the outer query does not use +** aggregates. +** +** (10) The subquery does not use aggregates or the outer query does not +** use LIMIT. +** +** (11) The subquery and the outer query do not both have ORDER BY clauses. +** +** (12) The subquery is not the right term of a LEFT OUTER JOIN or the +** subquery has no WHERE clause. (added by ticket #350) +** +** (13) The subquery and outer query do not both use LIMIT +** +** (14) The subquery does not use OFFSET +** +** In this routine, the "p" parameter is a pointer to the outer query. +** The subquery is p->pSrc->a[iFrom]. isAgg is true if the outer query +** uses aggregates and subqueryIsAgg is true if the subquery uses aggregates. +** +** If flattening is not attempted, this routine is a no-op and returns 0. +** If flattening is attempted this routine returns 1. +** +** All of the expression analysis must occur on both the outer query and +** the subquery before this routine runs. +*/ +static int flattenSubquery( + Select *p, /* The parent or outer SELECT statement */ + int iFrom, /* Index in p->pSrc->a[] of the inner subquery */ + int isAgg, /* True if outer SELECT uses aggregate functions */ + int subqueryIsAgg /* True if the subquery uses aggregate functions */ +){ + Select *pSub; /* The inner query or "subquery" */ + SrcList *pSrc; /* The FROM clause of the outer query */ + SrcList *pSubSrc; /* The FROM clause of the subquery */ + ExprList *pList; /* The result set of the outer query */ + int iParent; /* VDBE cursor number of the pSub result set temp table */ + int i; /* Loop counter */ + Expr *pWhere; /* The WHERE clause */ + struct SrcList_item *pSubitem; /* The subquery */ + + /* Check to see if flattening is permitted. Return 0 if not. + */ + if( p==0 ) return 0; + pSrc = p->pSrc; + assert( pSrc && iFrom>=0 && iFromnSrc ); + pSubitem = &pSrc->a[iFrom]; + pSub = pSubitem->pSelect; + assert( pSub!=0 ); + if( isAgg && subqueryIsAgg ) return 0; /* Restriction (1) */ + if( subqueryIsAgg && pSrc->nSrc>1 ) return 0; /* Restriction (2) */ + pSubSrc = pSub->pSrc; + assert( pSubSrc ); + /* Prior to version 3.1.2, when LIMIT and OFFSET had to be simple constants, + ** not arbitrary expresssions, we allowed some combining of LIMIT and OFFSET + ** because they could be computed at compile-time. But when LIMIT and OFFSET + ** became arbitrary expressions, we were forced to add restrictions (13) + ** and (14). */ + if( pSub->pLimit && p->pLimit ) return 0; /* Restriction (13) */ + if( pSub->pOffset ) return 0; /* Restriction (14) */ + if( pSubSrc->nSrc==0 ) return 0; /* Restriction (7) */ + if( (pSub->isDistinct || pSub->pLimit) + && (pSrc->nSrc>1 || isAgg) ){ /* Restrictions (4)(5)(8)(9) */ + return 0; + } + if( p->isDistinct && subqueryIsAgg ) return 0; /* Restriction (6) */ + if( (p->disallowOrderBy || p->pOrderBy) && pSub->pOrderBy ){ + return 0; /* Restriction (11) */ + } + + /* Restriction 3: If the subquery is a join, make sure the subquery is + ** not used as the right operand of an outer join. Examples of why this + ** is not allowed: + ** + ** t1 LEFT OUTER JOIN (t2 JOIN t3) + ** + ** If we flatten the above, we would get + ** + ** (t1 LEFT OUTER JOIN t2) JOIN t3 + ** + ** which is not at all the same thing. + */ + if( pSubSrc->nSrc>1 && (pSubitem->jointype & JT_OUTER)!=0 ){ + return 0; + } + + /* Restriction 12: If the subquery is the right operand of a left outer + ** join, make sure the subquery has no WHERE clause. + ** An examples of why this is not allowed: + ** + ** t1 LEFT OUTER JOIN (SELECT * FROM t2 WHERE t2.x>0) + ** + ** If we flatten the above, we would get + ** + ** (t1 LEFT OUTER JOIN t2) WHERE t2.x>0 + ** + ** But the t2.x>0 test will always fail on a NULL row of t2, which + ** effectively converts the OUTER JOIN into an INNER JOIN. + */ + if( (pSubitem->jointype & JT_OUTER)!=0 && pSub->pWhere!=0 ){ + return 0; + } + + /* If we reach this point, it means flattening is permitted for the + ** iFrom-th entry of the FROM clause in the outer query. + */ + + /* Move all of the FROM elements of the subquery into the + ** the FROM clause of the outer query. Before doing this, remember + ** the cursor number for the original outer query FROM element in + ** iParent. The iParent cursor will never be used. Subsequent code + ** will scan expressions looking for iParent references and replace + ** those references with expressions that resolve to the subquery FROM + ** elements we are now copying in. + */ + iParent = pSubitem->iCursor; + { + int nSubSrc = pSubSrc->nSrc; + int jointype = pSubitem->jointype; + + sqlite3DeleteTable(0, pSubitem->pTab); + sqliteFree(pSubitem->zDatabase); + sqliteFree(pSubitem->zName); + sqliteFree(pSubitem->zAlias); + if( nSubSrc>1 ){ + int extra = nSubSrc - 1; + for(i=1; ipSrc = pSrc; + for(i=pSrc->nSrc-1; i-extra>=iFrom; i--){ + pSrc->a[i] = pSrc->a[i-extra]; + } + } + for(i=0; ia[i+iFrom] = pSubSrc->a[i]; + memset(&pSubSrc->a[i], 0, sizeof(pSubSrc->a[i])); + } + pSrc->a[iFrom].jointype = jointype; + } + + /* Now begin substituting subquery result set expressions for + ** references to the iParent in the outer query. + ** + ** Example: + ** + ** SELECT a+5, b*10 FROM (SELECT x*3 AS a, y+10 AS b FROM t1) WHERE a>b; + ** \ \_____________ subquery __________/ / + ** \_____________________ outer query ______________________________/ + ** + ** We look at every expression in the outer query and every place we see + ** "a" we substitute "x*3" and every place we see "b" we substitute "y+10". + */ + pList = p->pEList; + for(i=0; inExpr; i++){ + Expr *pExpr; + if( pList->a[i].zName==0 && (pExpr = pList->a[i].pExpr)->span.z!=0 ){ + pList->a[i].zName = sqliteStrNDup((char*)pExpr->span.z, pExpr->span.n); + } + } + substExprList(p->pEList, iParent, pSub->pEList); + if( isAgg ){ + substExprList(p->pGroupBy, iParent, pSub->pEList); + substExpr(p->pHaving, iParent, pSub->pEList); + } + if( pSub->pOrderBy ){ + assert( p->pOrderBy==0 ); + p->pOrderBy = pSub->pOrderBy; + pSub->pOrderBy = 0; + }else if( p->pOrderBy ){ + substExprList(p->pOrderBy, iParent, pSub->pEList); + } + if( pSub->pWhere ){ + pWhere = sqlite3ExprDup(pSub->pWhere); + }else{ + pWhere = 0; + } + if( subqueryIsAgg ){ + assert( p->pHaving==0 ); + p->pHaving = p->pWhere; + p->pWhere = pWhere; + substExpr(p->pHaving, iParent, pSub->pEList); + p->pHaving = sqlite3ExprAnd(p->pHaving, sqlite3ExprDup(pSub->pHaving)); + assert( p->pGroupBy==0 ); + p->pGroupBy = sqlite3ExprListDup(pSub->pGroupBy); + }else{ + substExpr(p->pWhere, iParent, pSub->pEList); + p->pWhere = sqlite3ExprAnd(p->pWhere, pWhere); + } + + /* The flattened query is distinct if either the inner or the + ** outer query is distinct. + */ + p->isDistinct = p->isDistinct || pSub->isDistinct; + + /* + ** SELECT ... FROM (SELECT ... LIMIT a OFFSET b) LIMIT x OFFSET y; + ** + ** One is tempted to try to add a and b to combine the limits. But this + ** does not work if either limit is negative. + */ + if( pSub->pLimit ){ + p->pLimit = pSub->pLimit; + pSub->pLimit = 0; + } + + /* Finially, delete what is left of the subquery and return + ** success. + */ + sqlite3SelectDelete(pSub); + return 1; +} +#endif /* SQLITE_OMIT_VIEW */ + +/* +** Analyze the SELECT statement passed in as an argument to see if it +** is a simple min() or max() query. If it is and this query can be +** satisfied using a single seek to the beginning or end of an index, +** then generate the code for this SELECT and return 1. If this is not a +** simple min() or max() query, then return 0; +** +** A simply min() or max() query looks like this: +** +** SELECT min(a) FROM table; +** SELECT max(a) FROM table; +** +** The query may have only a single table in its FROM argument. There +** can be no GROUP BY or HAVING or WHERE clauses. The result set must +** be the min() or max() of a single column of the table. The column +** in the min() or max() function must be indexed. +** +** The parameters to this routine are the same as for sqlite3Select(). +** See the header comment on that routine for additional information. +*/ +static int simpleMinMaxQuery(Parse *pParse, Select *p, int eDest, int iParm){ + Expr *pExpr; + int iCol; + Table *pTab; + Index *pIdx; + int base; + Vdbe *v; + int seekOp; + ExprList *pEList, *pList, eList; + struct ExprList_item eListItem; + SrcList *pSrc; + int brk; + int iDb; + + /* Check to see if this query is a simple min() or max() query. Return + ** zero if it is not. + */ + if( p->pGroupBy || p->pHaving || p->pWhere ) return 0; + pSrc = p->pSrc; + if( pSrc->nSrc!=1 ) return 0; + pEList = p->pEList; + if( pEList->nExpr!=1 ) return 0; + pExpr = pEList->a[0].pExpr; + if( pExpr->op!=TK_AGG_FUNCTION ) return 0; + pList = pExpr->pList; + if( pList==0 || pList->nExpr!=1 ) return 0; + if( pExpr->token.n!=3 ) return 0; + if( sqlite3StrNICmp((char*)pExpr->token.z,"min",3)==0 ){ + seekOp = OP_Rewind; + }else if( sqlite3StrNICmp((char*)pExpr->token.z,"max",3)==0 ){ + seekOp = OP_Last; + }else{ + return 0; + } + pExpr = pList->a[0].pExpr; + if( pExpr->op!=TK_COLUMN ) return 0; + iCol = pExpr->iColumn; + pTab = pSrc->a[0].pTab; + + + /* If we get to here, it means the query is of the correct form. + ** Check to make sure we have an index and make pIdx point to the + ** appropriate index. If the min() or max() is on an INTEGER PRIMARY + ** key column, no index is necessary so set pIdx to NULL. If no + ** usable index is found, return 0. + */ + if( iCol<0 ){ + pIdx = 0; + }else{ + CollSeq *pColl = sqlite3ExprCollSeq(pParse, pExpr); + if( pColl==0 ) return 0; + for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ + assert( pIdx->nColumn>=1 ); + if( pIdx->aiColumn[0]==iCol && + 0==sqlite3StrICmp(pIdx->azColl[0], pColl->zName) ){ + break; + } + } + if( pIdx==0 ) return 0; + } + + /* Identify column types if we will be using the callback. This + ** step is skipped if the output is going to a table or a memory cell. + ** The column names have already been generated in the calling function. + */ + v = sqlite3GetVdbe(pParse); + if( v==0 ) return 0; + + /* If the output is destined for a temporary table, open that table. + */ + if( eDest==SRT_EphemTab ){ + sqlite3VdbeAddOp(v, OP_OpenEphemeral, iParm, 1); + } + + /* Generating code to find the min or the max. Basically all we have + ** to do is find the first or the last entry in the chosen index. If + ** the min() or max() is on the INTEGER PRIMARY KEY, then find the first + ** or last entry in the main table. + */ + iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); + assert( iDb>=0 || pTab->isEphem ); + sqlite3CodeVerifySchema(pParse, iDb); + sqlite3TableLock(pParse, iDb, pTab->tnum, 0, pTab->zName); + base = pSrc->a[0].iCursor; + brk = sqlite3VdbeMakeLabel(v); + computeLimitRegisters(pParse, p, brk); + if( pSrc->a[0].pSelect==0 ){ + sqlite3OpenTable(pParse, base, iDb, pTab, OP_OpenRead); + } + if( pIdx==0 ){ + sqlite3VdbeAddOp(v, seekOp, base, 0); + }else{ + /* Even though the cursor used to open the index here is closed + ** as soon as a single value has been read from it, allocate it + ** using (pParse->nTab++) to prevent the cursor id from being + ** reused. This is important for statements of the form + ** "INSERT INTO x SELECT max() FROM x". + */ + int iIdx; + KeyInfo *pKey = sqlite3IndexKeyinfo(pParse, pIdx); + iIdx = pParse->nTab++; + assert( pIdx->pSchema==pTab->pSchema ); + sqlite3VdbeAddOp(v, OP_Integer, iDb, 0); + sqlite3VdbeOp3(v, OP_OpenRead, iIdx, pIdx->tnum, + (char*)pKey, P3_KEYINFO_HANDOFF); + if( seekOp==OP_Rewind ){ + sqlite3VdbeAddOp(v, OP_Null, 0, 0); + sqlite3VdbeAddOp(v, OP_MakeRecord, 1, 0); + seekOp = OP_MoveGt; + } + sqlite3VdbeAddOp(v, seekOp, iIdx, 0); + sqlite3VdbeAddOp(v, OP_IdxRowid, iIdx, 0); + sqlite3VdbeAddOp(v, OP_Close, iIdx, 0); + sqlite3VdbeAddOp(v, OP_MoveGe, base, 0); + } + eList.nExpr = 1; + memset(&eListItem, 0, sizeof(eListItem)); + eList.a = &eListItem; + eList.a[0].pExpr = pExpr; + selectInnerLoop(pParse, p, &eList, 0, 0, 0, -1, eDest, iParm, brk, brk, 0); + sqlite3VdbeResolveLabel(v, brk); + sqlite3VdbeAddOp(v, OP_Close, base, 0); + + return 1; +} + +/* +** Analyze and ORDER BY or GROUP BY clause in a SELECT statement. Return +** the number of errors seen. +** +** An ORDER BY or GROUP BY is a list of expressions. If any expression +** is an integer constant, then that expression is replaced by the +** corresponding entry in the result set. +*/ +static int processOrderGroupBy( + NameContext *pNC, /* Name context of the SELECT statement. */ + ExprList *pOrderBy, /* The ORDER BY or GROUP BY clause to be processed */ + const char *zType /* Either "ORDER" or "GROUP", as appropriate */ +){ + int i; + ExprList *pEList = pNC->pEList; /* The result set of the SELECT */ + Parse *pParse = pNC->pParse; /* The result set of the SELECT */ + assert( pEList ); + + if( pOrderBy==0 ) return 0; + for(i=0; inExpr; i++){ + int iCol; + Expr *pE = pOrderBy->a[i].pExpr; + if( sqlite3ExprIsInteger(pE, &iCol) ){ + if( iCol>0 && iCol<=pEList->nExpr ){ + sqlite3ExprDelete(pE); + pE = pOrderBy->a[i].pExpr = sqlite3ExprDup(pEList->a[iCol-1].pExpr); + }else{ + sqlite3ErrorMsg(pParse, + "%s BY column number %d out of range - should be " + "between 1 and %d", zType, iCol, pEList->nExpr); + return 1; + } + } + if( sqlite3ExprResolveNames(pNC, pE) ){ + return 1; + } + } + return 0; +} + +/* +** This routine resolves any names used in the result set of the +** supplied SELECT statement. If the SELECT statement being resolved +** is a sub-select, then pOuterNC is a pointer to the NameContext +** of the parent SELECT. +*/ +int sqlite3SelectResolve( + Parse *pParse, /* The parser context */ + Select *p, /* The SELECT statement being coded. */ + NameContext *pOuterNC /* The outer name context. May be NULL. */ +){ + ExprList *pEList; /* Result set. */ + int i; /* For-loop variable used in multiple places */ + NameContext sNC; /* Local name-context */ + ExprList *pGroupBy; /* The group by clause */ + + /* If this routine has run before, return immediately. */ + if( p->isResolved ){ + assert( !pOuterNC ); + return SQLITE_OK; + } + p->isResolved = 1; + + /* If there have already been errors, do nothing. */ + if( pParse->nErr>0 ){ + return SQLITE_ERROR; + } + + /* Prepare the select statement. This call will allocate all cursors + ** required to handle the tables and subqueries in the FROM clause. + */ + if( prepSelectStmt(pParse, p) ){ + return SQLITE_ERROR; + } + + /* Resolve the expressions in the LIMIT and OFFSET clauses. These + ** are not allowed to refer to any names, so pass an empty NameContext. + */ + memset(&sNC, 0, sizeof(sNC)); + sNC.pParse = pParse; + if( sqlite3ExprResolveNames(&sNC, p->pLimit) || + sqlite3ExprResolveNames(&sNC, p->pOffset) ){ + return SQLITE_ERROR; + } + + /* Set up the local name-context to pass to ExprResolveNames() to + ** resolve the expression-list. + */ + sNC.allowAgg = 1; + sNC.pSrcList = p->pSrc; + sNC.pNext = pOuterNC; + + /* Resolve names in the result set. */ + pEList = p->pEList; + if( !pEList ) return SQLITE_ERROR; + for(i=0; inExpr; i++){ + Expr *pX = pEList->a[i].pExpr; + if( sqlite3ExprResolveNames(&sNC, pX) ){ + return SQLITE_ERROR; + } + } + + /* If there are no aggregate functions in the result-set, and no GROUP BY + ** expression, do not allow aggregates in any of the other expressions. + */ + assert( !p->isAgg ); + pGroupBy = p->pGroupBy; + if( pGroupBy || sNC.hasAgg ){ + p->isAgg = 1; + }else{ + sNC.allowAgg = 0; + } + + /* If a HAVING clause is present, then there must be a GROUP BY clause. + */ + if( p->pHaving && !pGroupBy ){ + sqlite3ErrorMsg(pParse, "a GROUP BY clause is required before HAVING"); + return SQLITE_ERROR; + } + + /* Add the expression list to the name-context before parsing the + ** other expressions in the SELECT statement. This is so that + ** expressions in the WHERE clause (etc.) can refer to expressions by + ** aliases in the result set. + ** + ** Minor point: If this is the case, then the expression will be + ** re-evaluated for each reference to it. + */ + sNC.pEList = p->pEList; + if( sqlite3ExprResolveNames(&sNC, p->pWhere) || + sqlite3ExprResolveNames(&sNC, p->pHaving) || + processOrderGroupBy(&sNC, p->pOrderBy, "ORDER") || + processOrderGroupBy(&sNC, pGroupBy, "GROUP") + ){ + return SQLITE_ERROR; + } + + /* Make sure the GROUP BY clause does not contain aggregate functions. + */ + if( pGroupBy ){ + struct ExprList_item *pItem; + + for(i=0, pItem=pGroupBy->a; inExpr; i++, pItem++){ + if( ExprHasProperty(pItem->pExpr, EP_Agg) ){ + sqlite3ErrorMsg(pParse, "aggregate functions are not allowed in " + "the GROUP BY clause"); + return SQLITE_ERROR; + } + } + } + + /* If this is one SELECT of a compound, be sure to resolve names + ** in the other SELECTs. + */ + if( p->pPrior ){ + return sqlite3SelectResolve(pParse, p->pPrior, pOuterNC); + }else{ + return SQLITE_OK; + } +} + +/* +** Reset the aggregate accumulator. +** +** The aggregate accumulator is a set of memory cells that hold +** intermediate results while calculating an aggregate. This +** routine simply stores NULLs in all of those memory cells. +*/ +static void resetAccumulator(Parse *pParse, AggInfo *pAggInfo){ + Vdbe *v = pParse->pVdbe; + int i; + struct AggInfo_func *pFunc; + if( pAggInfo->nFunc+pAggInfo->nColumn==0 ){ + return; + } + for(i=0; inColumn; i++){ + sqlite3VdbeAddOp(v, OP_MemNull, pAggInfo->aCol[i].iMem, 0); + } + for(pFunc=pAggInfo->aFunc, i=0; inFunc; i++, pFunc++){ + sqlite3VdbeAddOp(v, OP_MemNull, pFunc->iMem, 0); + if( pFunc->iDistinct>=0 ){ + Expr *pE = pFunc->pExpr; + if( pE->pList==0 || pE->pList->nExpr!=1 ){ + sqlite3ErrorMsg(pParse, "DISTINCT in aggregate must be followed " + "by an expression"); + pFunc->iDistinct = -1; + }else{ + KeyInfo *pKeyInfo = keyInfoFromExprList(pParse, pE->pList); + sqlite3VdbeOp3(v, OP_OpenEphemeral, pFunc->iDistinct, 0, + (char*)pKeyInfo, P3_KEYINFO_HANDOFF); + } + } + } +} + +/* +** Invoke the OP_AggFinalize opcode for every aggregate function +** in the AggInfo structure. +*/ +static void finalizeAggFunctions(Parse *pParse, AggInfo *pAggInfo){ + Vdbe *v = pParse->pVdbe; + int i; + struct AggInfo_func *pF; + for(i=0, pF=pAggInfo->aFunc; inFunc; i++, pF++){ + ExprList *pList = pF->pExpr->pList; + sqlite3VdbeOp3(v, OP_AggFinal, pF->iMem, pList ? pList->nExpr : 0, + (void*)pF->pFunc, P3_FUNCDEF); + } +} + +/* +** Update the accumulator memory cells for an aggregate based on +** the current cursor position. +*/ +static void updateAccumulator(Parse *pParse, AggInfo *pAggInfo){ + Vdbe *v = pParse->pVdbe; + int i; + struct AggInfo_func *pF; + struct AggInfo_col *pC; + + pAggInfo->directMode = 1; + for(i=0, pF=pAggInfo->aFunc; inFunc; i++, pF++){ + int nArg; + int addrNext = 0; + ExprList *pList = pF->pExpr->pList; + if( pList ){ + nArg = pList->nExpr; + sqlite3ExprCodeExprList(pParse, pList); + }else{ + nArg = 0; + } + if( pF->iDistinct>=0 ){ + addrNext = sqlite3VdbeMakeLabel(v); + assert( nArg==1 ); + codeDistinct(v, pF->iDistinct, addrNext, 1); + } + if( pF->pFunc->needCollSeq ){ + CollSeq *pColl = 0; + struct ExprList_item *pItem; + int j; + assert( pList!=0 ); /* pList!=0 if pF->pFunc->needCollSeq is true */ + for(j=0, pItem=pList->a; !pColl && jpExpr); + } + if( !pColl ){ + pColl = pParse->db->pDfltColl; + } + sqlite3VdbeOp3(v, OP_CollSeq, 0, 0, (char *)pColl, P3_COLLSEQ); + } + sqlite3VdbeOp3(v, OP_AggStep, pF->iMem, nArg, (void*)pF->pFunc, P3_FUNCDEF); + if( addrNext ){ + sqlite3VdbeResolveLabel(v, addrNext); + } + } + for(i=0, pC=pAggInfo->aCol; inAccumulator; i++, pC++){ + sqlite3ExprCode(pParse, pC->pExpr); + sqlite3VdbeAddOp(v, OP_MemStore, pC->iMem, 1); + } + pAggInfo->directMode = 0; +} + + +/* +** Generate code for the given SELECT statement. +** +** The results are distributed in various ways depending on the +** value of eDest and iParm. +** +** eDest Value Result +** ------------ ------------------------------------------- +** SRT_Callback Invoke the callback for each row of the result. +** +** SRT_Mem Store first result in memory cell iParm +** +** SRT_Set Store results as keys of table iParm. +** +** SRT_Union Store results as a key in a temporary table iParm +** +** SRT_Except Remove results from the temporary table iParm. +** +** SRT_Table Store results in temporary table iParm +** +** The table above is incomplete. Additional eDist value have be added +** since this comment was written. See the selectInnerLoop() function for +** a complete listing of the allowed values of eDest and their meanings. +** +** This routine returns the number of errors. If any errors are +** encountered, then an appropriate error message is left in +** pParse->zErrMsg. +** +** This routine does NOT free the Select structure passed in. The +** calling function needs to do that. +** +** The pParent, parentTab, and *pParentAgg fields are filled in if this +** SELECT is a subquery. This routine may try to combine this SELECT +** with its parent to form a single flat query. In so doing, it might +** change the parent query from a non-aggregate to an aggregate query. +** For that reason, the pParentAgg flag is passed as a pointer, so it +** can be changed. +** +** Example 1: The meaning of the pParent parameter. +** +** SELECT * FROM t1 JOIN (SELECT x, count(*) FROM t2) JOIN t3; +** \ \_______ subquery _______/ / +** \ / +** \____________________ outer query ___________________/ +** +** This routine is called for the outer query first. For that call, +** pParent will be NULL. During the processing of the outer query, this +** routine is called recursively to handle the subquery. For the recursive +** call, pParent will point to the outer query. Because the subquery is +** the second element in a three-way join, the parentTab parameter will +** be 1 (the 2nd value of a 0-indexed array.) +*/ +int sqlite3Select( + Parse *pParse, /* The parser context */ + Select *p, /* The SELECT statement being coded. */ + int eDest, /* How to dispose of the results */ + int iParm, /* A parameter used by the eDest disposal method */ + Select *pParent, /* Another SELECT for which this is a sub-query */ + int parentTab, /* Index in pParent->pSrc of this query */ + int *pParentAgg, /* True if pParent uses aggregate functions */ + char *aff /* If eDest is SRT_Union, the affinity string */ +){ + int i, j; /* Loop counters */ + WhereInfo *pWInfo; /* Return from sqlite3WhereBegin() */ + Vdbe *v; /* The virtual machine under construction */ + int isAgg; /* True for select lists like "count(*)" */ + ExprList *pEList; /* List of columns to extract. */ + SrcList *pTabList; /* List of tables to select from */ + Expr *pWhere; /* The WHERE clause. May be NULL */ + ExprList *pOrderBy; /* The ORDER BY clause. May be NULL */ + ExprList *pGroupBy; /* The GROUP BY clause. May be NULL */ + Expr *pHaving; /* The HAVING clause. May be NULL */ + int isDistinct; /* True if the DISTINCT keyword is present */ + int distinct; /* Table to use for the distinct set */ + int rc = 1; /* Value to return from this function */ + int addrSortIndex; /* Address of an OP_OpenEphemeral instruction */ + AggInfo sAggInfo; /* Information used by aggregate queries */ + int iEnd; /* Address of the end of the query */ + + if( p==0 || sqlite3MallocFailed() || pParse->nErr ){ + return 1; + } + if( sqlite3AuthCheck(pParse, SQLITE_SELECT, 0, 0, 0) ) return 1; + memset(&sAggInfo, 0, sizeof(sAggInfo)); + +#ifndef SQLITE_OMIT_COMPOUND_SELECT + /* If there is are a sequence of queries, do the earlier ones first. + */ + if( p->pPrior ){ + if( p->pRightmost==0 ){ + Select *pLoop; + for(pLoop=p; pLoop; pLoop=pLoop->pPrior){ + pLoop->pRightmost = p; + } + } + return multiSelect(pParse, p, eDest, iParm, aff); + } +#endif + + pOrderBy = p->pOrderBy; + if( IgnorableOrderby(eDest) ){ + p->pOrderBy = 0; + } + if( sqlite3SelectResolve(pParse, p, 0) ){ + goto select_end; + } + p->pOrderBy = pOrderBy; + + /* Make local copies of the parameters for this query. + */ + pTabList = p->pSrc; + pWhere = p->pWhere; + pGroupBy = p->pGroupBy; + pHaving = p->pHaving; + isAgg = p->isAgg; + isDistinct = p->isDistinct; + pEList = p->pEList; + if( pEList==0 ) goto select_end; + + /* + ** Do not even attempt to generate any code if we have already seen + ** errors before this routine starts. + */ + if( pParse->nErr>0 ) goto select_end; + + /* If writing to memory or generating a set + ** only a single column may be output. + */ +#ifndef SQLITE_OMIT_SUBQUERY + if( (eDest==SRT_Mem || eDest==SRT_Set) && pEList->nExpr>1 ){ + sqlite3ErrorMsg(pParse, "only a single result allowed for " + "a SELECT that is part of an expression"); + goto select_end; + } +#endif + + /* ORDER BY is ignored for some destinations. + */ + if( IgnorableOrderby(eDest) ){ + pOrderBy = 0; + } + + /* Begin generating code. + */ + v = sqlite3GetVdbe(pParse); + if( v==0 ) goto select_end; + + /* Generate code for all sub-queries in the FROM clause + */ +#if !defined(SQLITE_OMIT_SUBQUERY) || !defined(SQLITE_OMIT_VIEW) + for(i=0; inSrc; i++){ + const char *zSavedAuthContext = 0; + int needRestoreContext; + struct SrcList_item *pItem = &pTabList->a[i]; + + if( pItem->pSelect==0 || pItem->isPopulated ) continue; + if( pItem->zName!=0 ){ + zSavedAuthContext = pParse->zAuthContext; + pParse->zAuthContext = pItem->zName; + needRestoreContext = 1; + }else{ + needRestoreContext = 0; + } + sqlite3Select(pParse, pItem->pSelect, SRT_EphemTab, + pItem->iCursor, p, i, &isAgg, 0); + if( needRestoreContext ){ + pParse->zAuthContext = zSavedAuthContext; + } + pTabList = p->pSrc; + pWhere = p->pWhere; + if( !IgnorableOrderby(eDest) ){ + pOrderBy = p->pOrderBy; + } + pGroupBy = p->pGroupBy; + pHaving = p->pHaving; + isDistinct = p->isDistinct; + } +#endif + + /* Check for the special case of a min() or max() function by itself + ** in the result set. + */ + if( simpleMinMaxQuery(pParse, p, eDest, iParm) ){ + rc = 0; + goto select_end; + } + + /* Check to see if this is a subquery that can be "flattened" into its parent. + ** If flattening is a possiblity, do so and return immediately. + */ +#ifndef SQLITE_OMIT_VIEW + if( pParent && pParentAgg && + flattenSubquery(pParent, parentTab, *pParentAgg, isAgg) ){ + if( isAgg ) *pParentAgg = 1; + goto select_end; + } +#endif + + /* If there is an ORDER BY clause, resolve any collation sequences + ** names that have been explicitly specified and create a sorting index. + ** + ** This sorting index might end up being unused if the data can be + ** extracted in pre-sorted order. If that is the case, then the + ** OP_OpenEphemeral instruction will be changed to an OP_Noop once + ** we figure out that the sorting index is not needed. The addrSortIndex + ** variable is used to facilitate that change. + */ + if( pOrderBy ){ + struct ExprList_item *pTerm; + KeyInfo *pKeyInfo; + for(i=0, pTerm=pOrderBy->a; inExpr; i++, pTerm++){ + if( pTerm->zName ){ + pTerm->pExpr->pColl = sqlite3LocateCollSeq(pParse, pTerm->zName, -1); + } + } + if( pParse->nErr ){ + goto select_end; + } + pKeyInfo = keyInfoFromExprList(pParse, pOrderBy); + pOrderBy->iECursor = pParse->nTab++; + p->addrOpenEphm[2] = addrSortIndex = + sqlite3VdbeOp3(v, OP_OpenEphemeral, pOrderBy->iECursor, pOrderBy->nExpr+2, (char*)pKeyInfo, P3_KEYINFO_HANDOFF); + }else{ + addrSortIndex = -1; + } + + /* If the output is destined for a temporary table, open that table. + */ + if( eDest==SRT_EphemTab ){ + sqlite3VdbeAddOp(v, OP_OpenEphemeral, iParm, pEList->nExpr); + } + + /* Set the limiter. + */ + iEnd = sqlite3VdbeMakeLabel(v); + computeLimitRegisters(pParse, p, iEnd); + + /* Open a virtual index to use for the distinct set. + */ + if( isDistinct ){ + KeyInfo *pKeyInfo; + distinct = pParse->nTab++; + pKeyInfo = keyInfoFromExprList(pParse, p->pEList); + sqlite3VdbeOp3(v, OP_OpenEphemeral, distinct, 0, + (char*)pKeyInfo, P3_KEYINFO_HANDOFF); + }else{ + distinct = -1; + } + + /* Aggregate and non-aggregate queries are handled differently */ + if( !isAgg && pGroupBy==0 ){ + /* This case is for non-aggregate queries + ** Begin the database scan + */ + pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, &pOrderBy); + if( pWInfo==0 ) goto select_end; + + /* If sorting index that was created by a prior OP_OpenEphemeral + ** instruction ended up not being needed, then change the OP_OpenEphemeral + ** into an OP_Noop. + */ + if( addrSortIndex>=0 && pOrderBy==0 ){ + sqlite3VdbeChangeToNoop(v, addrSortIndex, 1); + p->addrOpenEphm[2] = -1; + } + + /* Use the standard inner loop + */ + if( selectInnerLoop(pParse, p, pEList, 0, 0, pOrderBy, distinct, eDest, + iParm, pWInfo->iContinue, pWInfo->iBreak, aff) ){ + goto select_end; + } + + /* End the database scan loop. + */ + sqlite3WhereEnd(pWInfo); + }else{ + /* This is the processing for aggregate queries */ + NameContext sNC; /* Name context for processing aggregate information */ + int iAMem; /* First Mem address for storing current GROUP BY */ + int iBMem; /* First Mem address for previous GROUP BY */ + int iUseFlag; /* Mem address holding flag indicating that at least + ** one row of the input to the aggregator has been + ** processed */ + int iAbortFlag; /* Mem address which causes query abort if positive */ + int groupBySort; /* Rows come from source in GROUP BY order */ + + + /* The following variables hold addresses or labels for parts of the + ** virtual machine program we are putting together */ + int addrOutputRow; /* Start of subroutine that outputs a result row */ + int addrSetAbort; /* Set the abort flag and return */ + int addrInitializeLoop; /* Start of code that initializes the input loop */ + int addrTopOfLoop; /* Top of the input loop */ + int addrGroupByChange; /* Code that runs when any GROUP BY term changes */ + int addrProcessRow; /* Code to process a single input row */ + int addrEnd; /* End of all processing */ + int addrSortingIdx; /* The OP_OpenEphemeral for the sorting index */ + int addrReset; /* Subroutine for resetting the accumulator */ + + addrEnd = sqlite3VdbeMakeLabel(v); + + /* Convert TK_COLUMN nodes into TK_AGG_COLUMN and make entries in + ** sAggInfo for all TK_AGG_FUNCTION nodes in expressions of the + ** SELECT statement. + */ + memset(&sNC, 0, sizeof(sNC)); + sNC.pParse = pParse; + sNC.pSrcList = pTabList; + sNC.pAggInfo = &sAggInfo; + sAggInfo.nSortingColumn = pGroupBy ? pGroupBy->nExpr+1 : 0; + sAggInfo.pGroupBy = pGroupBy; + if( sqlite3ExprAnalyzeAggList(&sNC, pEList) ){ + goto select_end; + } + if( sqlite3ExprAnalyzeAggList(&sNC, pOrderBy) ){ + goto select_end; + } + if( pHaving && sqlite3ExprAnalyzeAggregates(&sNC, pHaving) ){ + goto select_end; + } + sAggInfo.nAccumulator = sAggInfo.nColumn; + for(i=0; ipList) ){ + goto select_end; + } + } + if( sqlite3MallocFailed() ) goto select_end; + + /* Processing for aggregates with GROUP BY is very different and + ** much more complex tha aggregates without a GROUP BY. + */ + if( pGroupBy ){ + KeyInfo *pKeyInfo; /* Keying information for the group by clause */ + + /* Create labels that we will be needing + */ + + addrInitializeLoop = sqlite3VdbeMakeLabel(v); + addrGroupByChange = sqlite3VdbeMakeLabel(v); + addrProcessRow = sqlite3VdbeMakeLabel(v); + + /* If there is a GROUP BY clause we might need a sorting index to + ** implement it. Allocate that sorting index now. If it turns out + ** that we do not need it after all, the OpenEphemeral instruction + ** will be converted into a Noop. + */ + sAggInfo.sortingIdx = pParse->nTab++; + pKeyInfo = keyInfoFromExprList(pParse, pGroupBy); + addrSortingIdx = + sqlite3VdbeOp3(v, OP_OpenEphemeral, sAggInfo.sortingIdx, + sAggInfo.nSortingColumn, + (char*)pKeyInfo, P3_KEYINFO_HANDOFF); + + /* Initialize memory locations used by GROUP BY aggregate processing + */ + iUseFlag = pParse->nMem++; + iAbortFlag = pParse->nMem++; + iAMem = pParse->nMem; + pParse->nMem += pGroupBy->nExpr; + iBMem = pParse->nMem; + pParse->nMem += pGroupBy->nExpr; + sqlite3VdbeAddOp(v, OP_MemInt, 0, iAbortFlag); + VdbeComment((v, "# clear abort flag")); + sqlite3VdbeAddOp(v, OP_MemInt, 0, iUseFlag); + VdbeComment((v, "# indicate accumulator empty")); + sqlite3VdbeAddOp(v, OP_Goto, 0, addrInitializeLoop); + + /* Generate a subroutine that outputs a single row of the result + ** set. This subroutine first looks at the iUseFlag. If iUseFlag + ** is less than or equal to zero, the subroutine is a no-op. If + ** the processing calls for the query to abort, this subroutine + ** increments the iAbortFlag memory location before returning in + ** order to signal the caller to abort. + */ + addrSetAbort = sqlite3VdbeCurrentAddr(v); + sqlite3VdbeAddOp(v, OP_MemInt, 1, iAbortFlag); + VdbeComment((v, "# set abort flag")); + sqlite3VdbeAddOp(v, OP_Return, 0, 0); + addrOutputRow = sqlite3VdbeCurrentAddr(v); + sqlite3VdbeAddOp(v, OP_IfMemPos, iUseFlag, addrOutputRow+2); + VdbeComment((v, "# Groupby result generator entry point")); + sqlite3VdbeAddOp(v, OP_Return, 0, 0); + finalizeAggFunctions(pParse, &sAggInfo); + if( pHaving ){ + sqlite3ExprIfFalse(pParse, pHaving, addrOutputRow+1, 1); + } + rc = selectInnerLoop(pParse, p, p->pEList, 0, 0, pOrderBy, + distinct, eDest, iParm, + addrOutputRow+1, addrSetAbort, aff); + if( rc ){ + goto select_end; + } + sqlite3VdbeAddOp(v, OP_Return, 0, 0); + VdbeComment((v, "# end groupby result generator")); + + /* Generate a subroutine that will reset the group-by accumulator + */ + addrReset = sqlite3VdbeCurrentAddr(v); + resetAccumulator(pParse, &sAggInfo); + sqlite3VdbeAddOp(v, OP_Return, 0, 0); + + /* Begin a loop that will extract all source rows in GROUP BY order. + ** This might involve two separate loops with an OP_Sort in between, or + ** it might be a single loop that uses an index to extract information + ** in the right order to begin with. + */ + sqlite3VdbeResolveLabel(v, addrInitializeLoop); + sqlite3VdbeAddOp(v, OP_Gosub, 0, addrReset); + pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, &pGroupBy); + if( pWInfo==0 ) goto select_end; + if( pGroupBy==0 ){ + /* The optimizer is able to deliver rows in group by order so + ** we do not have to sort. The OP_OpenEphemeral table will be + ** cancelled later because we still need to use the pKeyInfo + */ + pGroupBy = p->pGroupBy; + groupBySort = 0; + }else{ + /* Rows are coming out in undetermined order. We have to push + ** each row into a sorting index, terminate the first loop, + ** then loop over the sorting index in order to get the output + ** in sorted order + */ + groupBySort = 1; + sqlite3ExprCodeExprList(pParse, pGroupBy); + sqlite3VdbeAddOp(v, OP_Sequence, sAggInfo.sortingIdx, 0); + j = pGroupBy->nExpr+1; + for(i=0; iiSorterColumniColumn<0 ){ + sqlite3VdbeAddOp(v, OP_Rowid, pCol->iTable, 0); + }else{ + sqlite3VdbeAddOp(v, OP_Column, pCol->iTable, pCol->iColumn); + } + j++; + } + sqlite3VdbeAddOp(v, OP_MakeRecord, j, 0); + sqlite3VdbeAddOp(v, OP_IdxInsert, sAggInfo.sortingIdx, 0); + sqlite3WhereEnd(pWInfo); + sqlite3VdbeAddOp(v, OP_Sort, sAggInfo.sortingIdx, addrEnd); + VdbeComment((v, "# GROUP BY sort")); + sAggInfo.useSortingIdx = 1; + } + + /* Evaluate the current GROUP BY terms and store in b0, b1, b2... + ** (b0 is memory location iBMem+0, b1 is iBMem+1, and so forth) + ** Then compare the current GROUP BY terms against the GROUP BY terms + ** from the previous row currently stored in a0, a1, a2... + */ + addrTopOfLoop = sqlite3VdbeCurrentAddr(v); + for(j=0; jnExpr; j++){ + if( groupBySort ){ + sqlite3VdbeAddOp(v, OP_Column, sAggInfo.sortingIdx, j); + }else{ + sAggInfo.directMode = 1; + sqlite3ExprCode(pParse, pGroupBy->a[j].pExpr); + } + sqlite3VdbeAddOp(v, OP_MemStore, iBMem+j, jnExpr-1); + } + for(j=pGroupBy->nExpr-1; j>=0; j--){ + if( jnExpr-1 ){ + sqlite3VdbeAddOp(v, OP_MemLoad, iBMem+j, 0); + } + sqlite3VdbeAddOp(v, OP_MemLoad, iAMem+j, 0); + if( j==0 ){ + sqlite3VdbeAddOp(v, OP_Eq, 0x200, addrProcessRow); + }else{ + sqlite3VdbeAddOp(v, OP_Ne, 0x200, addrGroupByChange); + } + sqlite3VdbeChangeP3(v, -1, (void*)pKeyInfo->aColl[j], P3_COLLSEQ); + } + + /* Generate code that runs whenever the GROUP BY changes. + ** Change in the GROUP BY are detected by the previous code + ** block. If there were no changes, this block is skipped. + ** + ** This code copies current group by terms in b0,b1,b2,... + ** over to a0,a1,a2. It then calls the output subroutine + ** and resets the aggregate accumulator registers in preparation + ** for the next GROUP BY batch. + */ + sqlite3VdbeResolveLabel(v, addrGroupByChange); + for(j=0; jnExpr; j++){ + sqlite3VdbeAddOp(v, OP_MemMove, iAMem+j, iBMem+j); + } + sqlite3VdbeAddOp(v, OP_Gosub, 0, addrOutputRow); + VdbeComment((v, "# output one row")); + sqlite3VdbeAddOp(v, OP_IfMemPos, iAbortFlag, addrEnd); + VdbeComment((v, "# check abort flag")); + sqlite3VdbeAddOp(v, OP_Gosub, 0, addrReset); + VdbeComment((v, "# reset accumulator")); + + /* Update the aggregate accumulators based on the content of + ** the current row + */ + sqlite3VdbeResolveLabel(v, addrProcessRow); + updateAccumulator(pParse, &sAggInfo); + sqlite3VdbeAddOp(v, OP_MemInt, 1, iUseFlag); + VdbeComment((v, "# indicate data in accumulator")); + + /* End of the loop + */ + if( groupBySort ){ + sqlite3VdbeAddOp(v, OP_Next, sAggInfo.sortingIdx, addrTopOfLoop); + }else{ + sqlite3WhereEnd(pWInfo); + sqlite3VdbeChangeToNoop(v, addrSortingIdx, 1); + } + + /* Output the final row of result + */ + sqlite3VdbeAddOp(v, OP_Gosub, 0, addrOutputRow); + VdbeComment((v, "# output final row")); + + } /* endif pGroupBy */ + else { + /* This case runs if the aggregate has no GROUP BY clause. The + ** processing is much simpler since there is only a single row + ** of output. + */ + resetAccumulator(pParse, &sAggInfo); + pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, 0); + if( pWInfo==0 ) goto select_end; + updateAccumulator(pParse, &sAggInfo); + sqlite3WhereEnd(pWInfo); + finalizeAggFunctions(pParse, &sAggInfo); + pOrderBy = 0; + if( pHaving ){ + sqlite3ExprIfFalse(pParse, pHaving, addrEnd, 1); + } + selectInnerLoop(pParse, p, p->pEList, 0, 0, 0, -1, + eDest, iParm, addrEnd, addrEnd, aff); + } + sqlite3VdbeResolveLabel(v, addrEnd); + + } /* endif aggregate query */ + + /* If there is an ORDER BY clause, then we need to sort the results + ** and send them to the callback one by one. + */ + if( pOrderBy ){ + generateSortTail(pParse, p, v, pEList->nExpr, eDest, iParm); + } + +#ifndef SQLITE_OMIT_SUBQUERY + /* If this was a subquery, we have now converted the subquery into a + ** temporary table. So set the SrcList_item.isPopulated flag to prevent + ** this subquery from being evaluated again and to force the use of + ** the temporary table. + */ + if( pParent ){ + assert( pParent->pSrc->nSrc>parentTab ); + assert( pParent->pSrc->a[parentTab].pSelect==p ); + pParent->pSrc->a[parentTab].isPopulated = 1; + } +#endif + + /* Jump here to skip this query + */ + sqlite3VdbeResolveLabel(v, iEnd); + + /* The SELECT was successfully coded. Set the return code to 0 + ** to indicate no errors. + */ + rc = 0; + + /* Control jumps to here if an error is encountered above, or upon + ** successful coding of the SELECT. + */ +select_end: + + /* Identify column names if we will be using them in a callback. This + ** step is skipped if the output is going to some other destination. + */ + if( rc==SQLITE_OK && eDest==SRT_Callback ){ + generateColumnNames(pParse, pTabList, pEList); + } + + sqliteFree(sAggInfo.aCol); + sqliteFree(sAggInfo.aFunc); + return rc; +} diff --git a/src/dep/src/sqlite/shell.c b/src/dep/src/sqlite/shell.c new file mode 100644 index 0000000..b78b426 --- /dev/null +++ b/src/dep/src/sqlite/shell.c @@ -0,0 +1,1954 @@ +/* +** 2001 September 15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains code to implement the "sqlite" command line +** utility for accessing SQLite databases. +** +** $Id: shell.c,v 1.158 2007/01/08 14:31:36 drh Exp $ +*/ +#include +#include +#include +#include +#include "sqlite3.h" +#include + +#if !defined(_WIN32) && !defined(WIN32) && !defined(__MACOS__) && !defined(__OS2__) +# include +# include +# include +# include +#endif + +#ifdef __MACOS__ +# include +# include +# include +# include +# include +# include +#endif + +#ifdef __OS2__ +# include +#endif + +#if defined(HAVE_READLINE) && HAVE_READLINE==1 +# include +# include +#else +# define readline(p) local_getline(p,stdin) +# define add_history(X) +# define read_history(X) +# define write_history(X) +# define stifle_history(X) +#endif + +#if defined(_WIN32) || defined(WIN32) +# include +#else +/* Make sure isatty() has a prototype. +*/ +extern int isatty(); +#endif + +/* +** If the following flag is set, then command execution stops +** at an error if we are not interactive. +*/ +static int bail_on_error = 0; + +/* +** Threat stdin as an interactive input if the following variable +** is true. Otherwise, assume stdin is connected to a file or pipe. +*/ +static int stdin_is_interactive = 1; + +/* +** The following is the open SQLite database. We make a pointer +** to this database a static variable so that it can be accessed +** by the SIGINT handler to interrupt database processing. +*/ +static sqlite3 *db = 0; + +/* +** True if an interrupt (Control-C) has been received. +*/ +static volatile int seenInterrupt = 0; + +/* +** This is the name of our program. It is set in main(), used +** in a number of other places, mostly for error messages. +*/ +static char *Argv0; + +/* +** Prompt strings. Initialized in main. Settable with +** .prompt main continue +*/ +static char mainPrompt[20]; /* First line prompt. default: "sqlite> "*/ +static char continuePrompt[20]; /* Continuation prompt. default: " ...> " */ + + +/* +** Determines if a string is a number of not. +*/ +static int isNumber(const char *z, int *realnum){ + if( *z=='-' || *z=='+' ) z++; + if( !isdigit(*z) ){ + return 0; + } + z++; + if( realnum ) *realnum = 0; + while( isdigit(*z) ){ z++; } + if( *z=='.' ){ + z++; + if( !isdigit(*z) ) return 0; + while( isdigit(*z) ){ z++; } + if( realnum ) *realnum = 1; + } + if( *z=='e' || *z=='E' ){ + z++; + if( *z=='+' || *z=='-' ) z++; + if( !isdigit(*z) ) return 0; + while( isdigit(*z) ){ z++; } + if( realnum ) *realnum = 1; + } + return *z==0; +} + +/* +** A global char* and an SQL function to access its current value +** from within an SQL statement. This program used to use the +** sqlite_exec_printf() API to substitue a string into an SQL statement. +** The correct way to do this with sqlite3 is to use the bind API, but +** since the shell is built around the callback paradigm it would be a lot +** of work. Instead just use this hack, which is quite harmless. +*/ +static const char *zShellStatic = 0; +static void shellstaticFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + assert( 0==argc ); + assert( zShellStatic ); + sqlite3_result_text(context, zShellStatic, -1, SQLITE_STATIC); +} + + +/* +** This routine reads a line of text from FILE in, stores +** the text in memory obtained from malloc() and returns a pointer +** to the text. NULL is returned at end of file, or if malloc() +** fails. +** +** The interface is like "readline" but no command-line editing +** is done. +*/ +static char *local_getline(char *zPrompt, FILE *in){ + char *zLine; + int nLine; + int n; + int eol; + + if( zPrompt && *zPrompt ){ + printf("%s",zPrompt); + fflush(stdout); + } + nLine = 100; + zLine = malloc( nLine ); + if( zLine==0 ) return 0; + n = 0; + eol = 0; + while( !eol ){ + if( n+100>nLine ){ + nLine = nLine*2 + 100; + zLine = realloc(zLine, nLine); + if( zLine==0 ) return 0; + } + if( fgets(&zLine[n], nLine - n, in)==0 ){ + if( n==0 ){ + free(zLine); + return 0; + } + zLine[n] = 0; + eol = 1; + break; + } + while( zLine[n] ){ n++; } + if( n>0 && zLine[n-1]=='\n' ){ + n--; + zLine[n] = 0; + eol = 1; + } + } + zLine = realloc( zLine, n+1 ); + return zLine; +} + +/* +** Retrieve a single line of input text. +** +** zPrior is a string of prior text retrieved. If not the empty +** string, then issue a continuation prompt. +*/ +static char *one_input_line(const char *zPrior, FILE *in){ + char *zPrompt; + char *zResult; + if( in!=0 ){ + return local_getline(0, in); + } + if( zPrior && zPrior[0] ){ + zPrompt = continuePrompt; + }else{ + zPrompt = mainPrompt; + } + zResult = readline(zPrompt); +#if defined(HAVE_READLINE) && HAVE_READLINE==1 + if( zResult && *zResult ) add_history(zResult); +#endif + return zResult; +} + +struct previous_mode_data { + int valid; /* Is there legit data in here? */ + int mode; + int showHeader; + int colWidth[100]; +}; + +/* +** An pointer to an instance of this structure is passed from +** the main program to the callback. This is used to communicate +** state and mode information. +*/ +struct callback_data { + sqlite3 *db; /* The database */ + int echoOn; /* True to echo input commands */ + int cnt; /* Number of records displayed so far */ + FILE *out; /* Write results here */ + int mode; /* An output mode setting */ + int writableSchema; /* True if PRAGMA writable_schema=ON */ + int showHeader; /* True to show column names in List or Column mode */ + char *zDestTable; /* Name of destination table when MODE_Insert */ + char separator[20]; /* Separator character for MODE_List */ + int colWidth[100]; /* Requested width of each column when in column mode*/ + int actualWidth[100]; /* Actual width of each column */ + char nullvalue[20]; /* The text to print when a NULL comes back from + ** the database */ + struct previous_mode_data explainPrev; + /* Holds the mode information just before + ** .explain ON */ + char outfile[FILENAME_MAX]; /* Filename for *out */ + const char *zDbFilename; /* name of the database file */ +}; + +/* +** These are the allowed modes. +*/ +#define MODE_Line 0 /* One column per line. Blank line between records */ +#define MODE_Column 1 /* One record per line in neat columns */ +#define MODE_List 2 /* One record per line with a separator */ +#define MODE_Semi 3 /* Same as MODE_List but append ";" to each line */ +#define MODE_Html 4 /* Generate an XHTML table */ +#define MODE_Insert 5 /* Generate SQL "insert" statements */ +#define MODE_Tcl 6 /* Generate ANSI-C or TCL quoted elements */ +#define MODE_Csv 7 /* Quote strings, numbers are plain */ +#define MODE_NUM_OF 8 /* The number of modes (not a mode itself) */ + +static const char *modeDescr[MODE_NUM_OF] = { + "line", + "column", + "list", + "semi", + "html", + "insert", + "tcl", + "csv", +}; + +/* +** Number of elements in an array +*/ +#define ArraySize(X) (sizeof(X)/sizeof(X[0])) + +/* +** Output the given string as a quoted string using SQL quoting conventions. +*/ +static void output_quoted_string(FILE *out, const char *z){ + int i; + int nSingle = 0; + for(i=0; z[i]; i++){ + if( z[i]=='\'' ) nSingle++; + } + if( nSingle==0 ){ + fprintf(out,"'%s'",z); + }else{ + fprintf(out,"'"); + while( *z ){ + for(i=0; z[i] && z[i]!='\''; i++){} + if( i==0 ){ + fprintf(out,"''"); + z++; + }else if( z[i]=='\'' ){ + fprintf(out,"%.*s''",i,z); + z += i+1; + }else{ + fprintf(out,"%s",z); + break; + } + } + fprintf(out,"'"); + } +} + +/* +** Output the given string as a quoted according to C or TCL quoting rules. +*/ +static void output_c_string(FILE *out, const char *z){ + unsigned int c; + fputc('"', out); + while( (c = *(z++))!=0 ){ + if( c=='\\' ){ + fputc(c, out); + fputc(c, out); + }else if( c=='\t' ){ + fputc('\\', out); + fputc('t', out); + }else if( c=='\n' ){ + fputc('\\', out); + fputc('n', out); + }else if( c=='\r' ){ + fputc('\\', out); + fputc('r', out); + }else if( !isprint(c) ){ + fprintf(out, "\\%03o", c&0xff); + }else{ + fputc(c, out); + } + } + fputc('"', out); +} + +/* +** Output the given string with characters that are special to +** HTML escaped. +*/ +static void output_html_string(FILE *out, const char *z){ + int i; + while( *z ){ + for(i=0; z[i] && z[i]!='<' && z[i]!='&'; i++){} + if( i>0 ){ + fprintf(out,"%.*s",i,z); + } + if( z[i]=='<' ){ + fprintf(out,"<"); + }else if( z[i]=='&' ){ + fprintf(out,"&"); + }else{ + break; + } + z += i + 1; + } +} + +/* +** If a field contains any character identified by a 1 in the following +** array, then the string must be quoted for CSV. +*/ +static const char needCsvQuote[] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +}; + +/* +** Output a single term of CSV. Actually, p->separator is used for +** the separator, which may or may not be a comma. p->nullvalue is +** the null value. Strings are quoted using ANSI-C rules. Numbers +** appear outside of quotes. +*/ +static void output_csv(struct callback_data *p, const char *z, int bSep){ + FILE *out = p->out; + if( z==0 ){ + fprintf(out,"%s",p->nullvalue); + }else{ + int i; + for(i=0; z[i]; i++){ + if( needCsvQuote[((unsigned char*)z)[i]] ){ + i = 0; + break; + } + } + if( i==0 ){ + putc('"', out); + for(i=0; z[i]; i++){ + if( z[i]=='"' ) putc('"', out); + putc(z[i], out); + } + putc('"', out); + }else{ + fprintf(out, "%s", z); + } + } + if( bSep ){ + fprintf(p->out, p->separator); + } +} + +#ifdef SIGINT +/* +** This routine runs when the user presses Ctrl-C +*/ +static void interrupt_handler(int NotUsed){ + seenInterrupt = 1; + if( db ) sqlite3_interrupt(db); +} +#endif + +/* +** This is the callback routine that the SQLite library +** invokes for each row of a query result. +*/ +static int callback(void *pArg, int nArg, char **azArg, char **azCol){ + int i; + struct callback_data *p = (struct callback_data*)pArg; + switch( p->mode ){ + case MODE_Line: { + int w = 5; + if( azArg==0 ) break; + for(i=0; iw ) w = len; + } + if( p->cnt++>0 ) fprintf(p->out,"\n"); + for(i=0; iout,"%*s = %s\n", w, azCol[i], + azArg[i] ? azArg[i] : p->nullvalue); + } + break; + } + case MODE_Column: { + if( p->cnt++==0 ){ + for(i=0; icolWidth) ){ + w = p->colWidth[i]; + }else{ + w = 0; + } + if( w<=0 ){ + w = strlen(azCol[i] ? azCol[i] : ""); + if( w<10 ) w = 10; + n = strlen(azArg && azArg[i] ? azArg[i] : p->nullvalue); + if( wactualWidth) ){ + p->actualWidth[i] = w; + } + if( p->showHeader ){ + fprintf(p->out,"%-*.*s%s",w,w,azCol[i], i==nArg-1 ? "\n": " "); + } + } + if( p->showHeader ){ + for(i=0; iactualWidth) ){ + w = p->actualWidth[i]; + }else{ + w = 10; + } + fprintf(p->out,"%-*.*s%s",w,w,"-----------------------------------" + "----------------------------------------------------------", + i==nArg-1 ? "\n": " "); + } + } + } + if( azArg==0 ) break; + for(i=0; iactualWidth) ){ + w = p->actualWidth[i]; + }else{ + w = 10; + } + fprintf(p->out,"%-*.*s%s",w,w, + azArg[i] ? azArg[i] : p->nullvalue, i==nArg-1 ? "\n": " "); + } + break; + } + case MODE_Semi: + case MODE_List: { + if( p->cnt++==0 && p->showHeader ){ + for(i=0; iout,"%s%s",azCol[i], i==nArg-1 ? "\n" : p->separator); + } + } + if( azArg==0 ) break; + for(i=0; inullvalue; + fprintf(p->out, "%s", z); + if( iout, "%s", p->separator); + }else if( p->mode==MODE_Semi ){ + fprintf(p->out, ";\n"); + }else{ + fprintf(p->out, "\n"); + } + } + break; + } + case MODE_Html: { + if( p->cnt++==0 && p->showHeader ){ + fprintf(p->out,""); + for(i=0; iout,"",azCol[i]); + } + fprintf(p->out,"\n"); + } + if( azArg==0 ) break; + fprintf(p->out,""); + for(i=0; iout,"\n"); + } + fprintf(p->out,"\n"); + break; + } + case MODE_Tcl: { + if( p->cnt++==0 && p->showHeader ){ + for(i=0; iout,azCol[i] ? azCol[i] : ""); + fprintf(p->out, "%s", p->separator); + } + fprintf(p->out,"\n"); + } + if( azArg==0 ) break; + for(i=0; iout, azArg[i] ? azArg[i] : p->nullvalue); + fprintf(p->out, "%s", p->separator); + } + fprintf(p->out,"\n"); + break; + } + case MODE_Csv: { + if( p->cnt++==0 && p->showHeader ){ + for(i=0; iout,"\n"); + } + if( azArg==0 ) break; + for(i=0; iout,"\n"); + break; + } + case MODE_Insert: { + if( azArg==0 ) break; + fprintf(p->out,"INSERT INTO %s VALUES(",p->zDestTable); + for(i=0; i0 ? ",": ""; + if( azArg[i]==0 ){ + fprintf(p->out,"%sNULL",zSep); + }else if( isNumber(azArg[i], 0) ){ + fprintf(p->out,"%s%s",zSep, azArg[i]); + }else{ + if( zSep[0] ) fprintf(p->out,"%s",zSep); + output_quoted_string(p->out, azArg[i]); + } + } + fprintf(p->out,");\n"); + break; + } + } + return 0; +} + +/* +** Set the destination table field of the callback_data structure to +** the name of the table given. Escape any quote characters in the +** table name. +*/ +static void set_table_name(struct callback_data *p, const char *zName){ + int i, n; + int needQuote; + char *z; + + if( p->zDestTable ){ + free(p->zDestTable); + p->zDestTable = 0; + } + if( zName==0 ) return; + needQuote = !isalpha((unsigned char)*zName) && *zName!='_'; + for(i=n=0; zName[i]; i++, n++){ + if( !isalnum((unsigned char)zName[i]) && zName[i]!='_' ){ + needQuote = 1; + if( zName[i]=='\'' ) n++; + } + } + if( needQuote ) n += 2; + z = p->zDestTable = malloc( n+1 ); + if( z==0 ){ + fprintf(stderr,"Out of memory!\n"); + exit(1); + } + n = 0; + if( needQuote ) z[n++] = '\''; + for(i=0; zName[i]; i++){ + z[n++] = zName[i]; + if( zName[i]=='\'' ) z[n++] = '\''; + } + if( needQuote ) z[n++] = '\''; + z[n] = 0; +} + +/* zIn is either a pointer to a NULL-terminated string in memory obtained +** from malloc(), or a NULL pointer. The string pointed to by zAppend is +** added to zIn, and the result returned in memory obtained from malloc(). +** zIn, if it was not NULL, is freed. +** +** If the third argument, quote, is not '\0', then it is used as a +** quote character for zAppend. +*/ +static char *appendText(char *zIn, char const *zAppend, char quote){ + int len; + int i; + int nAppend = strlen(zAppend); + int nIn = (zIn?strlen(zIn):0); + + len = nAppend+nIn+1; + if( quote ){ + len += 2; + for(i=0; iout, "DELETE FROM sqlite_sequence;\n"); + }else if( strcmp(zTable, "sqlite_stat1")==0 ){ + fprintf(p->out, "ANALYZE sqlite_master;\n"); + }else if( strncmp(zTable, "sqlite_", 7)==0 ){ + return 0; + }else if( strncmp(zSql, "CREATE VIRTUAL TABLE", 20)==0 ){ + char *zIns; + if( !p->writableSchema ){ + fprintf(p->out, "PRAGMA writable_schema=ON;\n"); + p->writableSchema = 1; + } + zIns = sqlite3_mprintf( + "INSERT INTO sqlite_master(type,name,tbl_name,rootpage,sql)" + "VALUES('table','%q','%q',0,'%q');", + zTable, zTable, zSql); + fprintf(p->out, "%s\n", zIns); + sqlite3_free(zIns); + return 0; + }else{ + fprintf(p->out, "%s;\n", zSql); + } + + if( strcmp(zType, "table")==0 ){ + sqlite3_stmt *pTableInfo = 0; + char *zSelect = 0; + char *zTableInfo = 0; + char *zTmp = 0; + + zTableInfo = appendText(zTableInfo, "PRAGMA table_info(", 0); + zTableInfo = appendText(zTableInfo, zTable, '"'); + zTableInfo = appendText(zTableInfo, ");", 0); + + rc = sqlite3_prepare(p->db, zTableInfo, -1, &pTableInfo, 0); + if( zTableInfo ) free(zTableInfo); + if( rc!=SQLITE_OK || !pTableInfo ){ + return 1; + } + + zSelect = appendText(zSelect, "SELECT 'INSERT INTO ' || ", 0); + zTmp = appendText(zTmp, zTable, '"'); + if( zTmp ){ + zSelect = appendText(zSelect, zTmp, '\''); + } + zSelect = appendText(zSelect, " || ' VALUES(' || ", 0); + rc = sqlite3_step(pTableInfo); + while( rc==SQLITE_ROW ){ + const char *zText = (const char *)sqlite3_column_text(pTableInfo, 1); + zSelect = appendText(zSelect, "quote(", 0); + zSelect = appendText(zSelect, zText, '"'); + rc = sqlite3_step(pTableInfo); + if( rc==SQLITE_ROW ){ + zSelect = appendText(zSelect, ") || ',' || ", 0); + }else{ + zSelect = appendText(zSelect, ") ", 0); + } + } + rc = sqlite3_finalize(pTableInfo); + if( rc!=SQLITE_OK ){ + if( zSelect ) free(zSelect); + return 1; + } + zSelect = appendText(zSelect, "|| ')' FROM ", 0); + zSelect = appendText(zSelect, zTable, '"'); + + rc = run_table_dump_query(p->out, p->db, zSelect); + if( rc==SQLITE_CORRUPT ){ + zSelect = appendText(zSelect, " ORDER BY rowid DESC", 0); + rc = run_table_dump_query(p->out, p->db, zSelect); + } + if( zSelect ) free(zSelect); + } + return 0; +} + +/* +** Run zQuery. Use dump_callback() as the callback routine so that +** the contents of the query are output as SQL statements. +** +** If we get a SQLITE_CORRUPT error, rerun the query after appending +** "ORDER BY rowid DESC" to the end. +*/ +static int run_schema_dump_query( + struct callback_data *p, + const char *zQuery, + char **pzErrMsg +){ + int rc; + rc = sqlite3_exec(p->db, zQuery, dump_callback, p, pzErrMsg); + if( rc==SQLITE_CORRUPT ){ + char *zQ2; + int len = strlen(zQuery); + if( pzErrMsg ) sqlite3_free(*pzErrMsg); + zQ2 = malloc( len+100 ); + if( zQ2==0 ) return rc; + sprintf(zQ2, "%s ORDER BY rowid DESC", zQuery); + rc = sqlite3_exec(p->db, zQ2, dump_callback, p, pzErrMsg); + free(zQ2); + } + return rc; +} + +/* +** Text of a help message +*/ +static char zHelp[] = + ".bail ON|OFF Stop after hitting an error. Default OFF\n" + ".databases List names and files of attached databases\n" + ".dump ?TABLE? ... Dump the database in an SQL text format\n" + ".echo ON|OFF Turn command echo on or off\n" + ".exit Exit this program\n" + ".explain ON|OFF Turn output mode suitable for EXPLAIN on or off.\n" + ".header(s) ON|OFF Turn display of headers on or off\n" + ".help Show this message\n" + ".import FILE TABLE Import data from FILE into TABLE\n" + ".indices TABLE Show names of all indices on TABLE\n" +#ifndef SQLITE_OMIT_LOAD_EXTENSION + ".load FILE ?ENTRY? Load an extension library\n" +#endif + ".mode MODE ?TABLE? Set output mode where MODE is one of:\n" + " csv Comma-separated values\n" + " column Left-aligned columns. (See .width)\n" + " html HTML
    %s
    "); + output_html_string(p->out, azArg[i] ? azArg[i] : p->nullvalue); + fprintf(p->out,"
    code\n" + " insert SQL insert statements for TABLE\n" + " line One value per line\n" + " list Values delimited by .separator string\n" + " tabs Tab-separated values\n" + " tcl TCL list elements\n" + ".nullvalue STRING Print STRING in place of NULL values\n" + ".output FILENAME Send output to FILENAME\n" + ".output stdout Send output to the screen\n" + ".prompt MAIN CONTINUE Replace the standard prompts\n" + ".quit Exit this program\n" + ".read FILENAME Execute SQL in FILENAME\n" + ".schema ?TABLE? Show the CREATE statements\n" + ".separator STRING Change separator used by output mode and .import\n" + ".show Show the current values for various settings\n" + ".tables ?PATTERN? List names of tables matching a LIKE pattern\n" + ".timeout MS Try opening locked tables for MS milliseconds\n" + ".width NUM NUM ... Set column widths for \"column\" mode\n" +; + +/* Forward reference */ +static int process_input(struct callback_data *p, FILE *in); + +/* +** Make sure the database is open. If it is not, then open it. If +** the database fails to open, print an error message and exit. +*/ +static void open_db(struct callback_data *p){ + if( p->db==0 ){ + sqlite3_open(p->zDbFilename, &p->db); + db = p->db; + sqlite3_create_function(db, "shellstatic", 0, SQLITE_UTF8, 0, + shellstaticFunc, 0, 0); + if( SQLITE_OK!=sqlite3_errcode(db) ){ + fprintf(stderr,"Unable to open database \"%s\": %s\n", + p->zDbFilename, sqlite3_errmsg(db)); + exit(1); + } +#ifndef SQLITE_OMIT_LOAD_EXTENSION + sqlite3_enable_load_extension(p->db, 1); +#endif + } +} + +/* +** Do C-language style dequoting. +** +** \t -> tab +** \n -> newline +** \r -> carriage return +** \NNN -> ascii character NNN in octal +** \\ -> backslash +*/ +static void resolve_backslashes(char *z){ + int i, j, c; + for(i=j=0; (c = z[i])!=0; i++, j++){ + if( c=='\\' ){ + c = z[++i]; + if( c=='n' ){ + c = '\n'; + }else if( c=='t' ){ + c = '\t'; + }else if( c=='r' ){ + c = '\r'; + }else if( c>='0' && c<='7' ){ + c -= '0'; + if( z[i+1]>='0' && z[i+1]<='7' ){ + i++; + c = (c<<3) + z[i] - '0'; + if( z[i+1]>='0' && z[i+1]<='7' ){ + i++; + c = (c<<3) + z[i] - '0'; + } + } + } + } + z[j] = c; + } + z[j] = 0; +} + +/* +** Interpret zArg as a boolean value. Return either 0 or 1. +*/ +static int booleanValue(char *zArg){ + int val = atoi(zArg); + int j; + for(j=0; zArg[j]; j++){ + zArg[j] = tolower(zArg[j]); + } + if( strcmp(zArg,"on")==0 ){ + val = 1; + }else if( strcmp(zArg,"yes")==0 ){ + val = 1; + } + return val; +} + +/* +** If an input line begins with "." then invoke this routine to +** process that line. +** +** Return 1 on error, 2 to exit, and 0 otherwise. +*/ +static int do_meta_command(char *zLine, struct callback_data *p){ + int i = 1; + int nArg = 0; + int n, c; + int rc = 0; + char *azArg[50]; + + /* Parse the input line into tokens. + */ + while( zLine[i] && nArg1 && strncmp(azArg[0], "bail", n)==0 && nArg>1 ){ + bail_on_error = booleanValue(azArg[1]); + }else + + if( c=='d' && n>1 && strncmp(azArg[0], "databases", n)==0 ){ + struct callback_data data; + char *zErrMsg = 0; + open_db(p); + memcpy(&data, p, sizeof(data)); + data.showHeader = 1; + data.mode = MODE_Column; + data.colWidth[0] = 3; + data.colWidth[1] = 15; + data.colWidth[2] = 58; + data.cnt = 0; + sqlite3_exec(p->db, "PRAGMA database_list; ", callback, &data, &zErrMsg); + if( zErrMsg ){ + fprintf(stderr,"Error: %s\n", zErrMsg); + sqlite3_free(zErrMsg); + } + }else + + if( c=='d' && strncmp(azArg[0], "dump", n)==0 ){ + char *zErrMsg = 0; + open_db(p); + fprintf(p->out, "BEGIN TRANSACTION;\n"); + p->writableSchema = 0; + if( nArg==1 ){ + run_schema_dump_query(p, + "SELECT name, type, sql FROM sqlite_master " + "WHERE sql NOT NULL AND type=='table'", 0 + ); + run_table_dump_query(p->out, p->db, + "SELECT sql FROM sqlite_master " + "WHERE sql NOT NULL AND type IN ('index','trigger','view')" + ); + }else{ + int i; + for(i=1; iout, p->db, + "SELECT sql FROM sqlite_master " + "WHERE sql NOT NULL" + " AND type IN ('index','trigger','view')" + " AND tbl_name LIKE shellstatic()" + ); + zShellStatic = 0; + } + } + if( p->writableSchema ){ + fprintf(p->out, "PRAGMA writable_schema=OFF;\n"); + p->writableSchema = 0; + } + if( zErrMsg ){ + fprintf(stderr,"Error: %s\n", zErrMsg); + sqlite3_free(zErrMsg); + }else{ + fprintf(p->out, "COMMIT;\n"); + } + }else + + if( c=='e' && strncmp(azArg[0], "echo", n)==0 && nArg>1 ){ + p->echoOn = booleanValue(azArg[1]); + }else + + if( c=='e' && strncmp(azArg[0], "exit", n)==0 ){ + rc = 2; + }else + + if( c=='e' && strncmp(azArg[0], "explain", n)==0 ){ + int val = nArg>=2 ? booleanValue(azArg[1]) : 1; + if(val == 1) { + if(!p->explainPrev.valid) { + p->explainPrev.valid = 1; + p->explainPrev.mode = p->mode; + p->explainPrev.showHeader = p->showHeader; + memcpy(p->explainPrev.colWidth,p->colWidth,sizeof(p->colWidth)); + } + /* We could put this code under the !p->explainValid + ** condition so that it does not execute if we are already in + ** explain mode. However, always executing it allows us an easy + ** was to reset to explain mode in case the user previously + ** did an .explain followed by a .width, .mode or .header + ** command. + */ + p->mode = MODE_Column; + p->showHeader = 1; + memset(p->colWidth,0,ArraySize(p->colWidth)); + p->colWidth[0] = 4; + p->colWidth[1] = 14; + p->colWidth[2] = 10; + p->colWidth[3] = 10; + p->colWidth[4] = 33; + }else if (p->explainPrev.valid) { + p->explainPrev.valid = 0; + p->mode = p->explainPrev.mode; + p->showHeader = p->explainPrev.showHeader; + memcpy(p->colWidth,p->explainPrev.colWidth,sizeof(p->colWidth)); + } + }else + + if( c=='h' && (strncmp(azArg[0], "header", n)==0 || + strncmp(azArg[0], "headers", n)==0 )&& nArg>1 ){ + p->showHeader = booleanValue(azArg[1]); + }else + + if( c=='h' && strncmp(azArg[0], "help", n)==0 ){ + fprintf(stderr,zHelp); + }else + + if( c=='i' && strncmp(azArg[0], "import", n)==0 && nArg>=3 ){ + char *zTable = azArg[2]; /* Insert data into this table */ + char *zFile = azArg[1]; /* The file from which to extract data */ + sqlite3_stmt *pStmt; /* A statement */ + int rc; /* Result code */ + int nCol; /* Number of columns in the table */ + int nByte; /* Number of bytes in an SQL string */ + int i, j; /* Loop counters */ + int nSep; /* Number of bytes in p->separator[] */ + char *zSql; /* An SQL statement */ + char *zLine; /* A single line of input from the file */ + char **azCol; /* zLine[] broken up into columns */ + char *zCommit; /* How to commit changes */ + FILE *in; /* The input file */ + int lineno = 0; /* Line number of input file */ + + open_db(p); + nSep = strlen(p->separator); + if( nSep==0 ){ + fprintf(stderr, "non-null separator required for import\n"); + return 0; + } + zSql = sqlite3_mprintf("SELECT * FROM '%q'", zTable); + if( zSql==0 ) return 0; + nByte = strlen(zSql); + rc = sqlite3_prepare(p->db, zSql, -1, &pStmt, 0); + sqlite3_free(zSql); + if( rc ){ + fprintf(stderr,"Error: %s\n", sqlite3_errmsg(db)); + nCol = 0; + rc = 1; + }else{ + nCol = sqlite3_column_count(pStmt); + } + sqlite3_finalize(pStmt); + if( nCol==0 ) return 0; + zSql = malloc( nByte + 20 + nCol*2 ); + if( zSql==0 ) return 0; + sqlite3_snprintf(nByte+20, zSql, "INSERT INTO '%q' VALUES(?", zTable); + j = strlen(zSql); + for(i=1; idb, zSql, -1, &pStmt, 0); + free(zSql); + if( rc ){ + fprintf(stderr, "Error: %s\n", sqlite3_errmsg(db)); + sqlite3_finalize(pStmt); + return 1; + } + in = fopen(zFile, "rb"); + if( in==0 ){ + fprintf(stderr, "cannot open file: %s\n", zFile); + sqlite3_finalize(pStmt); + return 0; + } + azCol = malloc( sizeof(azCol[0])*(nCol+1) ); + if( azCol==0 ){ + fclose(in); + return 0; + } + sqlite3_exec(p->db, "BEGIN", 0, 0, 0); + zCommit = "COMMIT"; + while( (zLine = local_getline(0, in))!=0 ){ + char *z; + i = 0; + lineno++; + azCol[0] = zLine; + for(i=0, z=zLine; *z && *z!='\n' && *z!='\r'; z++){ + if( *z==p->separator[0] && strncmp(z, p->separator, nSep)==0 ){ + *z = 0; + i++; + if( idb, zCommit, 0, 0, 0); + }else + + if( c=='i' && strncmp(azArg[0], "indices", n)==0 && nArg>1 ){ + struct callback_data data; + char *zErrMsg = 0; + open_db(p); + memcpy(&data, p, sizeof(data)); + data.showHeader = 0; + data.mode = MODE_List; + zShellStatic = azArg[1]; + sqlite3_exec(p->db, + "SELECT name FROM sqlite_master " + "WHERE type='index' AND tbl_name LIKE shellstatic() " + "UNION ALL " + "SELECT name FROM sqlite_temp_master " + "WHERE type='index' AND tbl_name LIKE shellstatic() " + "ORDER BY 1", + callback, &data, &zErrMsg + ); + zShellStatic = 0; + if( zErrMsg ){ + fprintf(stderr,"Error: %s\n", zErrMsg); + sqlite3_free(zErrMsg); + } + }else + +#ifndef SQLITE_OMIT_LOAD_EXTENSION + if( c=='l' && strncmp(azArg[0], "load", n)==0 && nArg>=2 ){ + const char *zFile, *zProc; + char *zErrMsg = 0; + int rc; + zFile = azArg[1]; + zProc = nArg>=3 ? azArg[2] : 0; + open_db(p); + rc = sqlite3_load_extension(p->db, zFile, zProc, &zErrMsg); + if( rc!=SQLITE_OK ){ + fprintf(stderr, "%s\n", zErrMsg); + sqlite3_free(zErrMsg); + rc = 1; + } + }else +#endif + + if( c=='m' && strncmp(azArg[0], "mode", n)==0 && nArg>=2 ){ + int n2 = strlen(azArg[1]); + if( strncmp(azArg[1],"line",n2)==0 + || + strncmp(azArg[1],"lines",n2)==0 ){ + p->mode = MODE_Line; + }else if( strncmp(azArg[1],"column",n2)==0 + || + strncmp(azArg[1],"columns",n2)==0 ){ + p->mode = MODE_Column; + }else if( strncmp(azArg[1],"list",n2)==0 ){ + p->mode = MODE_List; + }else if( strncmp(azArg[1],"html",n2)==0 ){ + p->mode = MODE_Html; + }else if( strncmp(azArg[1],"tcl",n2)==0 ){ + p->mode = MODE_Tcl; + }else if( strncmp(azArg[1],"csv",n2)==0 ){ + p->mode = MODE_Csv; + strcpy(p->separator, ","); + }else if( strncmp(azArg[1],"tabs",n2)==0 ){ + p->mode = MODE_List; + strcpy(p->separator, "\t"); + }else if( strncmp(azArg[1],"insert",n2)==0 ){ + p->mode = MODE_Insert; + if( nArg>=3 ){ + set_table_name(p, azArg[2]); + }else{ + set_table_name(p, "table"); + } + }else { + fprintf(stderr,"mode should be one of: " + "column csv html insert line list tabs tcl\n"); + } + }else + + if( c=='n' && strncmp(azArg[0], "nullvalue", n)==0 && nArg==2 ) { + sprintf(p->nullvalue, "%.*s", (int)ArraySize(p->nullvalue)-1, azArg[1]); + }else + + if( c=='o' && strncmp(azArg[0], "output", n)==0 && nArg==2 ){ + if( p->out!=stdout ){ + fclose(p->out); + } + if( strcmp(azArg[1],"stdout")==0 ){ + p->out = stdout; + strcpy(p->outfile,"stdout"); + }else{ + p->out = fopen(azArg[1], "wb"); + if( p->out==0 ){ + fprintf(stderr,"can't write to \"%s\"\n", azArg[1]); + p->out = stdout; + } else { + strcpy(p->outfile,azArg[1]); + } + } + }else + + if( c=='p' && strncmp(azArg[0], "prompt", n)==0 && (nArg==2 || nArg==3)){ + if( nArg >= 2) { + strncpy(mainPrompt,azArg[1],(int)ArraySize(mainPrompt)-1); + } + if( nArg >= 3) { + strncpy(continuePrompt,azArg[2],(int)ArraySize(continuePrompt)-1); + } + }else + + if( c=='q' && strncmp(azArg[0], "quit", n)==0 ){ + rc = 2; + }else + + if( c=='r' && strncmp(azArg[0], "read", n)==0 && nArg==2 ){ + FILE *alt = fopen(azArg[1], "rb"); + if( alt==0 ){ + fprintf(stderr,"can't open \"%s\"\n", azArg[1]); + }else{ + process_input(p, alt); + fclose(alt); + } + }else + + if( c=='s' && strncmp(azArg[0], "schema", n)==0 ){ + struct callback_data data; + char *zErrMsg = 0; + open_db(p); + memcpy(&data, p, sizeof(data)); + data.showHeader = 0; + data.mode = MODE_Semi; + if( nArg>1 ){ + int i; + for(i=0; azArg[1][i]; i++) azArg[1][i] = tolower(azArg[1][i]); + if( strcmp(azArg[1],"sqlite_master")==0 ){ + char *new_argv[2], *new_colv[2]; + new_argv[0] = "CREATE TABLE sqlite_master (\n" + " type text,\n" + " name text,\n" + " tbl_name text,\n" + " rootpage integer,\n" + " sql text\n" + ")"; + new_argv[1] = 0; + new_colv[0] = "sql"; + new_colv[1] = 0; + callback(&data, 1, new_argv, new_colv); + }else if( strcmp(azArg[1],"sqlite_temp_master")==0 ){ + char *new_argv[2], *new_colv[2]; + new_argv[0] = "CREATE TEMP TABLE sqlite_temp_master (\n" + " type text,\n" + " name text,\n" + " tbl_name text,\n" + " rootpage integer,\n" + " sql text\n" + ")"; + new_argv[1] = 0; + new_colv[0] = "sql"; + new_colv[1] = 0; + callback(&data, 1, new_argv, new_colv); + }else{ + zShellStatic = azArg[1]; + sqlite3_exec(p->db, + "SELECT sql FROM " + " (SELECT * FROM sqlite_master UNION ALL" + " SELECT * FROM sqlite_temp_master) " + "WHERE tbl_name LIKE shellstatic() AND type!='meta' AND sql NOTNULL " + "ORDER BY substr(type,2,1), name", + callback, &data, &zErrMsg); + zShellStatic = 0; + } + }else{ + sqlite3_exec(p->db, + "SELECT sql FROM " + " (SELECT * FROM sqlite_master UNION ALL" + " SELECT * FROM sqlite_temp_master) " + "WHERE type!='meta' AND sql NOTNULL AND name NOT LIKE 'sqlite_%'" + "ORDER BY substr(type,2,1), name", + callback, &data, &zErrMsg + ); + } + if( zErrMsg ){ + fprintf(stderr,"Error: %s\n", zErrMsg); + sqlite3_free(zErrMsg); + } + }else + + if( c=='s' && strncmp(azArg[0], "separator", n)==0 && nArg==2 ){ + sprintf(p->separator, "%.*s", (int)ArraySize(p->separator)-1, azArg[1]); + }else + + if( c=='s' && strncmp(azArg[0], "show", n)==0){ + int i; + fprintf(p->out,"%9.9s: %s\n","echo", p->echoOn ? "on" : "off"); + fprintf(p->out,"%9.9s: %s\n","explain", p->explainPrev.valid ? "on" :"off"); + fprintf(p->out,"%9.9s: %s\n","headers", p->showHeader ? "on" : "off"); + fprintf(p->out,"%9.9s: %s\n","mode", modeDescr[p->mode]); + fprintf(p->out,"%9.9s: ", "nullvalue"); + output_c_string(p->out, p->nullvalue); + fprintf(p->out, "\n"); + fprintf(p->out,"%9.9s: %s\n","output", + strlen(p->outfile) ? p->outfile : "stdout"); + fprintf(p->out,"%9.9s: ", "separator"); + output_c_string(p->out, p->separator); + fprintf(p->out, "\n"); + fprintf(p->out,"%9.9s: ","width"); + for (i=0;i<(int)ArraySize(p->colWidth) && p->colWidth[i] != 0;i++) { + fprintf(p->out,"%d ",p->colWidth[i]); + } + fprintf(p->out,"\n"); + }else + + if( c=='t' && n>1 && strncmp(azArg[0], "tables", n)==0 ){ + char **azResult; + int nRow, rc; + char *zErrMsg; + open_db(p); + if( nArg==1 ){ + rc = sqlite3_get_table(p->db, + "SELECT name FROM sqlite_master " + "WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'" + "UNION ALL " + "SELECT name FROM sqlite_temp_master " + "WHERE type IN ('table','view') " + "ORDER BY 1", + &azResult, &nRow, 0, &zErrMsg + ); + }else{ + zShellStatic = azArg[1]; + rc = sqlite3_get_table(p->db, + "SELECT name FROM sqlite_master " + "WHERE type IN ('table','view') AND name LIKE '%'||shellstatic()||'%' " + "UNION ALL " + "SELECT name FROM sqlite_temp_master " + "WHERE type IN ('table','view') AND name LIKE '%'||shellstatic()||'%' " + "ORDER BY 1", + &azResult, &nRow, 0, &zErrMsg + ); + zShellStatic = 0; + } + if( zErrMsg ){ + fprintf(stderr,"Error: %s\n", zErrMsg); + sqlite3_free(zErrMsg); + } + if( rc==SQLITE_OK ){ + int len, maxlen = 0; + int i, j; + int nPrintCol, nPrintRow; + for(i=1; i<=nRow; i++){ + if( azResult[i]==0 ) continue; + len = strlen(azResult[i]); + if( len>maxlen ) maxlen = len; + } + nPrintCol = 80/(maxlen+2); + if( nPrintCol<1 ) nPrintCol = 1; + nPrintRow = (nRow + nPrintCol - 1)/nPrintCol; + for(i=0; i1 && strncmp(azArg[0], "timeout", n)==0 && nArg>=2 ){ + open_db(p); + sqlite3_busy_timeout(p->db, atoi(azArg[1])); + }else + + if( c=='w' && strncmp(azArg[0], "width", n)==0 ){ + int j; + assert( nArg<=ArraySize(azArg) ); + for(j=1; jcolWidth); j++){ + p->colWidth[j-1] = atoi(azArg[j]); + } + }else + + { + fprintf(stderr, "unknown command or invalid arguments: " + " \"%s\". Enter \".help\" for help\n", azArg[0]); + } + + return rc; +} + +/* +** Return TRUE if the last non-whitespace character in z[] is a semicolon. +** z[] is N characters long. +*/ +static int _ends_with_semicolon(const char *z, int N){ + while( N>0 && isspace((unsigned char)z[N-1]) ){ N--; } + return N>0 && z[N-1]==';'; +} + +/* +** Test to see if a line consists entirely of whitespace. +*/ +static int _all_whitespace(const char *z){ + for(; *z; z++){ + if( isspace(*(unsigned char*)z) ) continue; + if( *z=='/' && z[1]=='*' ){ + z += 2; + while( *z && (*z!='*' || z[1]!='/') ){ z++; } + if( *z==0 ) return 0; + z++; + continue; + } + if( *z=='-' && z[1]=='-' ){ + z += 2; + while( *z && *z!='\n' ){ z++; } + if( *z==0 ) return 1; + continue; + } + return 0; + } + return 1; +} + +/* +** Return TRUE if the line typed in is an SQL command terminator other +** than a semi-colon. The SQL Server style "go" command is understood +** as is the Oracle "/". +*/ +static int _is_command_terminator(const char *zLine){ + while( isspace(*(unsigned char*)zLine) ){ zLine++; }; + if( zLine[0]=='/' && _all_whitespace(&zLine[1]) ) return 1; /* Oracle */ + if( tolower(zLine[0])=='g' && tolower(zLine[1])=='o' + && _all_whitespace(&zLine[2]) ){ + return 1; /* SQL Server */ + } + return 0; +} + +/* +** Read input from *in and process it. If *in==0 then input +** is interactive - the user is typing it it. Otherwise, input +** is coming from a file or device. A prompt is issued and history +** is saved only if input is interactive. An interrupt signal will +** cause this routine to exit immediately, unless input is interactive. +** +** Return the number of errors. +*/ +static int process_input(struct callback_data *p, FILE *in){ + char *zLine; + char *zSql = 0; + int nSql = 0; + char *zErrMsg; + int rc; + int errCnt = 0; + int lineno = 0; + int startline = 0; + + while( errCnt==0 || !bail_on_error || (in==0 && stdin_is_interactive) ){ + fflush(p->out); + zLine = one_input_line(zSql, in); + if( zLine==0 ){ + break; /* We have reached EOF */ + } + if( seenInterrupt ){ + if( in!=0 ) break; + seenInterrupt = 0; + } + lineno++; + if( p->echoOn ) printf("%s\n", zLine); + if( (zSql==0 || zSql[0]==0) && _all_whitespace(zLine) ) continue; + if( zLine && zLine[0]=='.' && nSql==0 ){ + rc = do_meta_command(zLine, p); + free(zLine); + if( rc==2 ){ + break; + }else if( rc ){ + errCnt++; + } + continue; + } + if( _is_command_terminator(zLine) ){ + strcpy(zLine,";"); + } + if( zSql==0 ){ + int i; + for(i=0; zLine[i] && isspace((unsigned char)zLine[i]); i++){} + if( zLine[i]!=0 ){ + nSql = strlen(zLine); + zSql = malloc( nSql+1 ); + if( zSql==0 ){ + fprintf(stderr, "out of memory\n"); + exit(1); + } + strcpy(zSql, zLine); + startline = lineno; + } + }else{ + int len = strlen(zLine); + zSql = realloc( zSql, nSql + len + 2 ); + if( zSql==0 ){ + fprintf(stderr,"%s: out of memory!\n", Argv0); + exit(1); + } + strcpy(&zSql[nSql++], "\n"); + strcpy(&zSql[nSql], zLine); + nSql += len; + } + free(zLine); + if( zSql && _ends_with_semicolon(zSql, nSql) && sqlite3_complete(zSql) ){ + p->cnt = 0; + open_db(p); + rc = sqlite3_exec(p->db, zSql, callback, p, &zErrMsg); + if( rc || zErrMsg ){ + char zPrefix[100]; + if( in!=0 || !stdin_is_interactive ){ + sprintf(zPrefix, "SQL error near line %d:", startline); + }else{ + sprintf(zPrefix, "SQL error:"); + } + if( zErrMsg!=0 ){ + printf("%s %s\n", zPrefix, zErrMsg); + sqlite3_free(zErrMsg); + zErrMsg = 0; + }else{ + printf("%s %s\n", zPrefix, sqlite3_errmsg(p->db)); + } + errCnt++; + } + free(zSql); + zSql = 0; + nSql = 0; + } + } + if( zSql ){ + if( !_all_whitespace(zSql) ) printf("Incomplete SQL: %s\n", zSql); + free(zSql); + } + return errCnt; +} + +/* +** Return a pathname which is the user's home directory. A +** 0 return indicates an error of some kind. Space to hold the +** resulting string is obtained from malloc(). The calling +** function should free the result. +*/ +static char *find_home_dir(void){ + char *home_dir = NULL; + +#if !defined(_WIN32) && !defined(WIN32) && !defined(__MACOS__) && !defined(__OS2__) + struct passwd *pwent; + uid_t uid = getuid(); + if( (pwent=getpwuid(uid)) != NULL) { + home_dir = pwent->pw_dir; + } +#endif + +#ifdef __MACOS__ + char home_path[_MAX_PATH+1]; + home_dir = getcwd(home_path, _MAX_PATH); +#endif + +#if defined(_WIN32) || defined(WIN32) || defined(__OS2__) + if (!home_dir) { + home_dir = getenv("USERPROFILE"); + } +#endif + + if (!home_dir) { + home_dir = getenv("HOME"); + } + +#if defined(_WIN32) || defined(WIN32) || defined(__OS2__) + if (!home_dir) { + char *zDrive, *zPath; + int n; + zDrive = getenv("HOMEDRIVE"); + zPath = getenv("HOMEPATH"); + if( zDrive && zPath ){ + n = strlen(zDrive) + strlen(zPath) + 1; + home_dir = malloc( n ); + if( home_dir==0 ) return 0; + sqlite3_snprintf(n, home_dir, "%s%s", zDrive, zPath); + return home_dir; + } + home_dir = "c:\\"; + } +#endif + + if( home_dir ){ + char *z = malloc( strlen(home_dir)+1 ); + if( z ) strcpy(z, home_dir); + home_dir = z; + } + + return home_dir; +} + +/* +** Read input from the file given by sqliterc_override. Or if that +** parameter is NULL, take input from ~/.sqliterc +*/ +static void process_sqliterc( + struct callback_data *p, /* Configuration data */ + const char *sqliterc_override /* Name of config file. NULL to use default */ +){ + char *home_dir = NULL; + const char *sqliterc = sqliterc_override; + char *zBuf = 0; + FILE *in = NULL; + + if (sqliterc == NULL) { + home_dir = find_home_dir(); + if( home_dir==0 ){ + fprintf(stderr,"%s: cannot locate your home directory!\n", Argv0); + return; + } + zBuf = malloc(strlen(home_dir) + 15); + if( zBuf==0 ){ + fprintf(stderr,"%s: out of memory!\n", Argv0); + exit(1); + } + sprintf(zBuf,"%s/.sqliterc",home_dir); + free(home_dir); + sqliterc = (const char*)zBuf; + } + in = fopen(sqliterc,"rb"); + if( in ){ + if( stdin_is_interactive ){ + printf("Loading resources from %s\n",sqliterc); + } + process_input(p,in); + fclose(in); + } + free(zBuf); + return; +} + +/* +** Show available command line options +*/ +static const char zOptions[] = + " -init filename read/process named file\n" + " -echo print commands before execution\n" + " -[no]header turn headers on or off\n" + " -bail stop after hitting an error\n" + " -interactive force interactive I/O\n" + " -batch force batch I/O\n" + " -column set output mode to 'column'\n" + " -csv set output mode to 'csv'\n" + " -html set output mode to HTML\n" + " -line set output mode to 'line'\n" + " -list set output mode to 'list'\n" + " -separator 'x' set output field separator (|)\n" + " -nullvalue 'text' set text string for NULL values\n" + " -version show SQLite version\n" +; +static void usage(int showDetail){ + fprintf(stderr, + "Usage: %s [OPTIONS] FILENAME [SQL]\n" + "FILENAME is the name of an SQLite database. A new database is created\n" + "if the file does not previously exist.\n", Argv0); + if( showDetail ){ + fprintf(stderr, "OPTIONS include:\n%s", zOptions); + }else{ + fprintf(stderr, "Use the -help option for additional information\n"); + } + exit(1); +} + +/* +** Initialize the state information in data +*/ +static void main_init(struct callback_data *data) { + memset(data, 0, sizeof(*data)); + data->mode = MODE_List; + strcpy(data->separator,"|"); + data->showHeader = 0; + strcpy(mainPrompt,"sqlite> "); + strcpy(continuePrompt," ...> "); +} + +int main(int argc, char **argv){ + char *zErrMsg = 0; + struct callback_data data; + const char *zInitFile = 0; + char *zFirstCmd = 0; + int i; + int rc = 0; + +#ifdef __MACOS__ + argc = ccommand(&argv); +#endif + + Argv0 = argv[0]; + main_init(&data); + stdin_is_interactive = isatty(0); + + /* Make sure we have a valid signal handler early, before anything + ** else is done. + */ +#ifdef SIGINT + signal(SIGINT, interrupt_handler); +#endif + + /* Do an initial pass through the command-line argument to locate + ** the name of the database file, the name of the initialization file, + ** and the first command to execute. + */ + for(i=1; i /* Needed for the definition of va_list */ + +/* +** Make sure we can call this stuff from C++. +*/ +#ifdef __cplusplus +extern "C" { +#endif + +/* +** The version of the SQLite library. +*/ +#ifdef SQLITE_VERSION +# undef SQLITE_VERSION +#endif +#define SQLITE_VERSION "3.3.10" + +/* +** The format of the version string is "X.Y.Z", where +** X is the major version number, Y is the minor version number and Z +** is the release number. The trailing string is often "alpha" or "beta". +** For example "3.1.1beta". +** +** The SQLITE_VERSION_NUMBER is an integer with the value +** (X*100000 + Y*1000 + Z). For example, for version "3.1.1beta", +** SQLITE_VERSION_NUMBER is set to 3001001. To detect if they are using +** version 3.1.1 or greater at compile time, programs may use the test +** (SQLITE_VERSION_NUMBER>=3001001). +*/ +#ifdef SQLITE_VERSION_NUMBER +# undef SQLITE_VERSION_NUMBER +#endif +#define SQLITE_VERSION_NUMBER 3003010 + +/* +** The version string is also compiled into the library so that a program +** can check to make sure that the lib*.a file and the *.h file are from +** the same version. The sqlite3_libversion() function returns a pointer +** to the sqlite3_version variable - useful in DLLs which cannot access +** global variables. +*/ +extern const char sqlite3_version[]; +const char *sqlite3_libversion(void); + +/* +** Return the value of the SQLITE_VERSION_NUMBER macro when the +** library was compiled. +*/ +int sqlite3_libversion_number(void); + +/* +** Each open sqlite database is represented by an instance of the +** following opaque structure. +*/ +typedef struct sqlite3 sqlite3; + + +/* +** Some compilers do not support the "long long" datatype. So we have +** to do a typedef that for 64-bit integers that depends on what compiler +** is being used. +*/ +#ifdef SQLITE_INT64_TYPE + typedef SQLITE_INT64_TYPE sqlite_int64; + typedef unsigned SQLITE_INT64_TYPE sqlite_uint64; +#elif defined(_MSC_VER) || defined(__BORLANDC__) + typedef __int64 sqlite_int64; + typedef unsigned __int64 sqlite_uint64; +#else + typedef long long int sqlite_int64; + typedef unsigned long long int sqlite_uint64; +#endif + +/* +** If compiling for a processor that lacks floating point support, +** substitute integer for floating-point +*/ +#ifdef SQLITE_OMIT_FLOATING_POINT +# define double sqlite_int64 +#endif + +/* +** A function to close the database. +** +** Call this function with a pointer to a structure that was previously +** returned from sqlite3_open() and the corresponding database will by closed. +** +** All SQL statements prepared using sqlite3_prepare() or +** sqlite3_prepare16() must be deallocated using sqlite3_finalize() before +** this routine is called. Otherwise, SQLITE_BUSY is returned and the +** database connection remains open. +*/ +int sqlite3_close(sqlite3 *); + +/* +** The type for a callback function. +*/ +typedef int (*sqlite3_callback)(void*,int,char**, char**); + +/* +** A function to executes one or more statements of SQL. +** +** If one or more of the SQL statements are queries, then +** the callback function specified by the 3rd parameter is +** invoked once for each row of the query result. This callback +** should normally return 0. If the callback returns a non-zero +** value then the query is aborted, all subsequent SQL statements +** are skipped and the sqlite3_exec() function returns the SQLITE_ABORT. +** +** The 1st parameter is an arbitrary pointer that is passed +** to the callback function as its first parameter. +** +** The 2nd parameter to the callback function is the number of +** columns in the query result. The 3rd parameter to the callback +** is an array of strings holding the values for each column. +** The 4th parameter to the callback is an array of strings holding +** the names of each column. +** +** The callback function may be NULL, even for queries. A NULL +** callback is not an error. It just means that no callback +** will be invoked. +** +** If an error occurs while parsing or evaluating the SQL (but +** not while executing the callback) then an appropriate error +** message is written into memory obtained from malloc() and +** *errmsg is made to point to that message. The calling function +** is responsible for freeing the memory that holds the error +** message. Use sqlite3_free() for this. If errmsg==NULL, +** then no error message is ever written. +** +** The return value is is SQLITE_OK if there are no errors and +** some other return code if there is an error. The particular +** return value depends on the type of error. +** +** If the query could not be executed because a database file is +** locked or busy, then this function returns SQLITE_BUSY. (This +** behavior can be modified somewhat using the sqlite3_busy_handler() +** and sqlite3_busy_timeout() functions below.) +*/ +int sqlite3_exec( + sqlite3*, /* An open database */ + const char *sql, /* SQL to be executed */ + sqlite3_callback, /* Callback function */ + void *, /* 1st argument to callback function */ + char **errmsg /* Error msg written here */ +); + +/* +** Return values for sqlite3_exec() and sqlite3_step() +*/ +#define SQLITE_OK 0 /* Successful result */ +/* beginning-of-error-codes */ +#define SQLITE_ERROR 1 /* SQL error or missing database */ +#define SQLITE_INTERNAL 2 /* NOT USED. Internal logic error in SQLite */ +#define SQLITE_PERM 3 /* Access permission denied */ +#define SQLITE_ABORT 4 /* Callback routine requested an abort */ +#define SQLITE_BUSY 5 /* The database file is locked */ +#define SQLITE_LOCKED 6 /* A table in the database is locked */ +#define SQLITE_NOMEM 7 /* A malloc() failed */ +#define SQLITE_READONLY 8 /* Attempt to write a readonly database */ +#define SQLITE_INTERRUPT 9 /* Operation terminated by sqlite3_interrupt()*/ +#define SQLITE_IOERR 10 /* Some kind of disk I/O error occurred */ +#define SQLITE_CORRUPT 11 /* The database disk image is malformed */ +#define SQLITE_NOTFOUND 12 /* NOT USED. Table or record not found */ +#define SQLITE_FULL 13 /* Insertion failed because database is full */ +#define SQLITE_CANTOPEN 14 /* Unable to open the database file */ +#define SQLITE_PROTOCOL 15 /* Database lock protocol error */ +#define SQLITE_EMPTY 16 /* Database is empty */ +#define SQLITE_SCHEMA 17 /* The database schema changed */ +#define SQLITE_TOOBIG 18 /* NOT USED. Too much data for one row */ +#define SQLITE_CONSTRAINT 19 /* Abort due to contraint violation */ +#define SQLITE_MISMATCH 20 /* Data type mismatch */ +#define SQLITE_MISUSE 21 /* Library used incorrectly */ +#define SQLITE_NOLFS 22 /* Uses OS features not supported on host */ +#define SQLITE_AUTH 23 /* Authorization denied */ +#define SQLITE_FORMAT 24 /* Auxiliary database format error */ +#define SQLITE_RANGE 25 /* 2nd parameter to sqlite3_bind out of range */ +#define SQLITE_NOTADB 26 /* File opened that is not a database file */ +#define SQLITE_ROW 100 /* sqlite3_step() has another row ready */ +#define SQLITE_DONE 101 /* sqlite3_step() has finished executing */ +/* end-of-error-codes */ + +/* +** Using the sqlite3_extended_result_codes() API, you can cause +** SQLite to return result codes with additional information in +** their upper bits. The lower 8 bits will be the same as the +** primary result codes above. But the upper bits might contain +** more specific error information. +** +** To extract the primary result code from an extended result code, +** simply mask off the lower 8 bits. +** +** primary = extended & 0xff; +** +** New result error codes may be added from time to time. Software +** that uses the extended result codes should plan accordingly and be +** sure to always handle new unknown codes gracefully. +** +** The SQLITE_OK result code will never be extended. It will always +** be exactly zero. +** +** The extended result codes always have the primary result code +** as a prefix. Primary result codes only contain a single "_" +** character. Extended result codes contain two or more "_" characters. +*/ +#define SQLITE_IOERR_READ (SQLITE_IOERR | (1<<8)) +#define SQLITE_IOERR_SHORT_READ (SQLITE_IOERR | (2<<8)) +#define SQLITE_IOERR_WRITE (SQLITE_IOERR | (3<<8)) +#define SQLITE_IOERR_FSYNC (SQLITE_IOERR | (4<<8)) +#define SQLITE_IOERR_DIR_FSYNC (SQLITE_IOERR | (5<<8)) +#define SQLITE_IOERR_TRUNCATE (SQLITE_IOERR | (6<<8)) +#define SQLITE_IOERR_FSTAT (SQLITE_IOERR | (7<<8)) +#define SQLITE_IOERR_UNLOCK (SQLITE_IOERR | (8<<8)) +#define SQLITE_IOERR_RDLOCK (SQLITE_IOERR | (9<<8)) + +/* +** Enable or disable the extended result codes. +*/ +int sqlite3_extended_result_codes(sqlite3*, int onoff); + +/* +** Each entry in an SQLite table has a unique integer key. (The key is +** the value of the INTEGER PRIMARY KEY column if there is such a column, +** otherwise the key is generated at random. The unique key is always +** available as the ROWID, OID, or _ROWID_ column.) The following routine +** returns the integer key of the most recent insert in the database. +** +** This function is similar to the mysql_insert_id() function from MySQL. +*/ +sqlite_int64 sqlite3_last_insert_rowid(sqlite3*); + +/* +** This function returns the number of database rows that were changed +** (or inserted or deleted) by the most recent called sqlite3_exec(). +** +** All changes are counted, even if they were later undone by a +** ROLLBACK or ABORT. Except, changes associated with creating and +** dropping tables are not counted. +** +** If a callback invokes sqlite3_exec() recursively, then the changes +** in the inner, recursive call are counted together with the changes +** in the outer call. +** +** SQLite implements the command "DELETE FROM table" without a WHERE clause +** by dropping and recreating the table. (This is much faster than going +** through and deleting individual elements form the table.) Because of +** this optimization, the change count for "DELETE FROM table" will be +** zero regardless of the number of elements that were originally in the +** table. To get an accurate count of the number of rows deleted, use +** "DELETE FROM table WHERE 1" instead. +*/ +int sqlite3_changes(sqlite3*); + +/* +** This function returns the number of database rows that have been +** modified by INSERT, UPDATE or DELETE statements since the database handle +** was opened. This includes UPDATE, INSERT and DELETE statements executed +** as part of trigger programs. All changes are counted as soon as the +** statement that makes them is completed (when the statement handle is +** passed to sqlite3_reset() or sqlite_finalise()). +** +** SQLite implements the command "DELETE FROM table" without a WHERE clause +** by dropping and recreating the table. (This is much faster than going +** through and deleting individual elements form the table.) Because of +** this optimization, the change count for "DELETE FROM table" will be +** zero regardless of the number of elements that were originally in the +** table. To get an accurate count of the number of rows deleted, use +** "DELETE FROM table WHERE 1" instead. +*/ +int sqlite3_total_changes(sqlite3*); + +/* This function causes any pending database operation to abort and +** return at its earliest opportunity. This routine is typically +** called in response to a user action such as pressing "Cancel" +** or Ctrl-C where the user wants a long query operation to halt +** immediately. +*/ +void sqlite3_interrupt(sqlite3*); + + +/* These functions return true if the given input string comprises +** one or more complete SQL statements. For the sqlite3_complete() call, +** the parameter must be a nul-terminated UTF-8 string. For +** sqlite3_complete16(), a nul-terminated machine byte order UTF-16 string +** is required. +** +** The algorithm is simple. If the last token other than spaces +** and comments is a semicolon, then return true. otherwise return +** false. +*/ +int sqlite3_complete(const char *sql); +int sqlite3_complete16(const void *sql); + +/* +** This routine identifies a callback function that is invoked +** whenever an attempt is made to open a database table that is +** currently locked by another process or thread. If the busy callback +** is NULL, then sqlite3_exec() returns SQLITE_BUSY immediately if +** it finds a locked table. If the busy callback is not NULL, then +** sqlite3_exec() invokes the callback with two arguments. The +** first argument to the handler is a copy of the void* pointer which +** is the third argument to this routine. The second argument to +** the handler is the number of times that the busy handler has +** been invoked for this locking event. If the +** busy callback returns 0, then sqlite3_exec() immediately returns +** SQLITE_BUSY. If the callback returns non-zero, then sqlite3_exec() +** tries to open the table again and the cycle repeats. +** +** The presence of a busy handler does not guarantee that +** it will be invoked when there is lock contention. +** If SQLite determines that invoking the busy handler could result in +** a deadlock, it will return SQLITE_BUSY instead. +** Consider a scenario where one process is holding a read lock that +** it is trying to promote to a reserved lock and +** a second process is holding a reserved lock that it is trying +** to promote to an exclusive lock. The first process cannot proceed +** because it is blocked by the second and the second process cannot +** proceed because it is blocked by the first. If both processes +** invoke the busy handlers, neither will make any progress. Therefore, +** SQLite returns SQLITE_BUSY for the first process, hoping that this +** will induce the first process to release its read lock and allow +** the second process to proceed. +** +** The default busy callback is NULL. +** +** Sqlite is re-entrant, so the busy handler may start a new query. +** (It is not clear why anyone would every want to do this, but it +** is allowed, in theory.) But the busy handler may not close the +** database. Closing the database from a busy handler will delete +** data structures out from under the executing query and will +** probably result in a coredump. +*/ +int sqlite3_busy_handler(sqlite3*, int(*)(void*,int), void*); + +/* +** This routine sets a busy handler that sleeps for a while when a +** table is locked. The handler will sleep multiple times until +** at least "ms" milleseconds of sleeping have been done. After +** "ms" milleseconds of sleeping, the handler returns 0 which +** causes sqlite3_exec() to return SQLITE_BUSY. +** +** Calling this routine with an argument less than or equal to zero +** turns off all busy handlers. +*/ +int sqlite3_busy_timeout(sqlite3*, int ms); + +/* +** This next routine is really just a wrapper around sqlite3_exec(). +** Instead of invoking a user-supplied callback for each row of the +** result, this routine remembers each row of the result in memory +** obtained from malloc(), then returns all of the result after the +** query has finished. +** +** As an example, suppose the query result where this table: +** +** Name | Age +** ----------------------- +** Alice | 43 +** Bob | 28 +** Cindy | 21 +** +** If the 3rd argument were &azResult then after the function returns +** azResult will contain the following data: +** +** azResult[0] = "Name"; +** azResult[1] = "Age"; +** azResult[2] = "Alice"; +** azResult[3] = "43"; +** azResult[4] = "Bob"; +** azResult[5] = "28"; +** azResult[6] = "Cindy"; +** azResult[7] = "21"; +** +** Notice that there is an extra row of data containing the column +** headers. But the *nrow return value is still 3. *ncolumn is +** set to 2. In general, the number of values inserted into azResult +** will be ((*nrow) + 1)*(*ncolumn). +** +** After the calling function has finished using the result, it should +** pass the result data pointer to sqlite3_free_table() in order to +** release the memory that was malloc-ed. Because of the way the +** malloc() happens, the calling function must not try to call +** free() directly. Only sqlite3_free_table() is able to release +** the memory properly and safely. +** +** The return value of this routine is the same as from sqlite3_exec(). +*/ +int sqlite3_get_table( + sqlite3*, /* An open database */ + const char *sql, /* SQL to be executed */ + char ***resultp, /* Result written to a char *[] that this points to */ + int *nrow, /* Number of result rows written here */ + int *ncolumn, /* Number of result columns written here */ + char **errmsg /* Error msg written here */ +); + +/* +** Call this routine to free the memory that sqlite3_get_table() allocated. +*/ +void sqlite3_free_table(char **result); + +/* +** The following routines are variants of the "sprintf()" from the +** standard C library. The resulting string is written into memory +** obtained from malloc() so that there is never a possiblity of buffer +** overflow. These routines also implement some additional formatting +** options that are useful for constructing SQL statements. +** +** The strings returned by these routines should be freed by calling +** sqlite3_free(). +** +** All of the usual printf formatting options apply. In addition, there +** is a "%q" option. %q works like %s in that it substitutes a null-terminated +** string from the argument list. But %q also doubles every '\'' character. +** %q is designed for use inside a string literal. By doubling each '\'' +** character it escapes that character and allows it to be inserted into +** the string. +** +** For example, so some string variable contains text as follows: +** +** char *zText = "It's a happy day!"; +** +** We can use this text in an SQL statement as follows: +** +** char *z = sqlite3_mprintf("INSERT INTO TABLES('%q')", zText); +** sqlite3_exec(db, z, callback1, 0, 0); +** sqlite3_free(z); +** +** Because the %q format string is used, the '\'' character in zText +** is escaped and the SQL generated is as follows: +** +** INSERT INTO table1 VALUES('It''s a happy day!') +** +** This is correct. Had we used %s instead of %q, the generated SQL +** would have looked like this: +** +** INSERT INTO table1 VALUES('It's a happy day!'); +** +** This second example is an SQL syntax error. As a general rule you +** should always use %q instead of %s when inserting text into a string +** literal. +*/ +char *sqlite3_mprintf(const char*,...); +char *sqlite3_vmprintf(const char*, va_list); +char *sqlite3_snprintf(int,char*,const char*, ...); + +/* +** SQLite uses its own memory allocator. On many installations, this +** memory allocator is identical to the standard malloc()/realloc()/free() +** and can be used interchangable. On others, the implementations are +** different. For maximum portability, it is best not to mix calls +** to the standard malloc/realloc/free with the sqlite versions. +*/ +void *sqlite3_malloc(int); +void *sqlite3_realloc(void*, int); +void sqlite3_free(void*); + +#ifndef SQLITE_OMIT_AUTHORIZATION +/* +** This routine registers a callback with the SQLite library. The +** callback is invoked (at compile-time, not at run-time) for each +** attempt to access a column of a table in the database. The callback +** returns SQLITE_OK if access is allowed, SQLITE_DENY if the entire +** SQL statement should be aborted with an error and SQLITE_IGNORE +** if the column should be treated as a NULL value. +*/ +int sqlite3_set_authorizer( + sqlite3*, + int (*xAuth)(void*,int,const char*,const char*,const char*,const char*), + void *pUserData +); +#endif + +/* +** The second parameter to the access authorization function above will +** be one of the values below. These values signify what kind of operation +** is to be authorized. The 3rd and 4th parameters to the authorization +** function will be parameters or NULL depending on which of the following +** codes is used as the second parameter. The 5th parameter is the name +** of the database ("main", "temp", etc.) if applicable. The 6th parameter +** is the name of the inner-most trigger or view that is responsible for +** the access attempt or NULL if this access attempt is directly from +** input SQL code. +** +** Arg-3 Arg-4 +*/ +#define SQLITE_COPY 0 /* Table Name File Name */ +#define SQLITE_CREATE_INDEX 1 /* Index Name Table Name */ +#define SQLITE_CREATE_TABLE 2 /* Table Name NULL */ +#define SQLITE_CREATE_TEMP_INDEX 3 /* Index Name Table Name */ +#define SQLITE_CREATE_TEMP_TABLE 4 /* Table Name NULL */ +#define SQLITE_CREATE_TEMP_TRIGGER 5 /* Trigger Name Table Name */ +#define SQLITE_CREATE_TEMP_VIEW 6 /* View Name NULL */ +#define SQLITE_CREATE_TRIGGER 7 /* Trigger Name Table Name */ +#define SQLITE_CREATE_VIEW 8 /* View Name NULL */ +#define SQLITE_DELETE 9 /* Table Name NULL */ +#define SQLITE_DROP_INDEX 10 /* Index Name Table Name */ +#define SQLITE_DROP_TABLE 11 /* Table Name NULL */ +#define SQLITE_DROP_TEMP_INDEX 12 /* Index Name Table Name */ +#define SQLITE_DROP_TEMP_TABLE 13 /* Table Name NULL */ +#define SQLITE_DROP_TEMP_TRIGGER 14 /* Trigger Name Table Name */ +#define SQLITE_DROP_TEMP_VIEW 15 /* View Name NULL */ +#define SQLITE_DROP_TRIGGER 16 /* Trigger Name Table Name */ +#define SQLITE_DROP_VIEW 17 /* View Name NULL */ +#define SQLITE_INSERT 18 /* Table Name NULL */ +#define SQLITE_PRAGMA 19 /* Pragma Name 1st arg or NULL */ +#define SQLITE_READ 20 /* Table Name Column Name */ +#define SQLITE_SELECT 21 /* NULL NULL */ +#define SQLITE_TRANSACTION 22 /* NULL NULL */ +#define SQLITE_UPDATE 23 /* Table Name Column Name */ +#define SQLITE_ATTACH 24 /* Filename NULL */ +#define SQLITE_DETACH 25 /* Database Name NULL */ +#define SQLITE_ALTER_TABLE 26 /* Database Name Table Name */ +#define SQLITE_REINDEX 27 /* Index Name NULL */ +#define SQLITE_ANALYZE 28 /* Table Name NULL */ +#define SQLITE_CREATE_VTABLE 29 /* Table Name Module Name */ +#define SQLITE_DROP_VTABLE 30 /* Table Name Module Name */ +#define SQLITE_FUNCTION 31 /* Function Name NULL */ + +/* +** The return value of the authorization function should be one of the +** following constants: +*/ +/* #define SQLITE_OK 0 // Allow access (This is actually defined above) */ +#define SQLITE_DENY 1 /* Abort the SQL statement with an error */ +#define SQLITE_IGNORE 2 /* Don't allow access, but don't generate an error */ + +/* +** Register a function for tracing SQL command evaluation. The function +** registered by sqlite3_trace() is invoked at the first sqlite3_step() +** for the evaluation of an SQL statement. The function registered by +** sqlite3_profile() runs at the end of each SQL statement and includes +** information on how long that statement ran. +** +** The sqlite3_profile() API is currently considered experimental and +** is subject to change. +*/ +void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*); +void *sqlite3_profile(sqlite3*, + void(*xProfile)(void*,const char*,sqlite_uint64), void*); + +/* +** This routine configures a callback function - the progress callback - that +** is invoked periodically during long running calls to sqlite3_exec(), +** sqlite3_step() and sqlite3_get_table(). An example use for this API is to +** keep a GUI updated during a large query. +** +** The progress callback is invoked once for every N virtual machine opcodes, +** where N is the second argument to this function. The progress callback +** itself is identified by the third argument to this function. The fourth +** argument to this function is a void pointer passed to the progress callback +** function each time it is invoked. +** +** If a call to sqlite3_exec(), sqlite3_step() or sqlite3_get_table() results +** in less than N opcodes being executed, then the progress callback is not +** invoked. +** +** To remove the progress callback altogether, pass NULL as the third +** argument to this function. +** +** If the progress callback returns a result other than 0, then the current +** query is immediately terminated and any database changes rolled back. If the +** query was part of a larger transaction, then the transaction is not rolled +** back and remains active. The sqlite3_exec() call returns SQLITE_ABORT. +** +******* THIS IS AN EXPERIMENTAL API AND IS SUBJECT TO CHANGE ****** +*/ +void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*); + +/* +** Register a callback function to be invoked whenever a new transaction +** is committed. The pArg argument is passed through to the callback. +** callback. If the callback function returns non-zero, then the commit +** is converted into a rollback. +** +** If another function was previously registered, its pArg value is returned. +** Otherwise NULL is returned. +** +** Registering a NULL function disables the callback. +** +******* THIS IS AN EXPERIMENTAL API AND IS SUBJECT TO CHANGE ****** +*/ +void *sqlite3_commit_hook(sqlite3*, int(*)(void*), void*); + +/* +** Open the sqlite database file "filename". The "filename" is UTF-8 +** encoded for sqlite3_open() and UTF-16 encoded in the native byte order +** for sqlite3_open16(). An sqlite3* handle is returned in *ppDb, even +** if an error occurs. If the database is opened (or created) successfully, +** then SQLITE_OK is returned. Otherwise an error code is returned. The +** sqlite3_errmsg() or sqlite3_errmsg16() routines can be used to obtain +** an English language description of the error. +** +** If the database file does not exist, then a new database is created. +** The encoding for the database is UTF-8 if sqlite3_open() is called and +** UTF-16 if sqlite3_open16 is used. +** +** Whether or not an error occurs when it is opened, resources associated +** with the sqlite3* handle should be released by passing it to +** sqlite3_close() when it is no longer required. +*/ +int sqlite3_open( + const char *filename, /* Database filename (UTF-8) */ + sqlite3 **ppDb /* OUT: SQLite db handle */ +); +int sqlite3_open16( + const void *filename, /* Database filename (UTF-16) */ + sqlite3 **ppDb /* OUT: SQLite db handle */ +); + +/* +** Return the error code for the most recent sqlite3_* API call associated +** with sqlite3 handle 'db'. SQLITE_OK is returned if the most recent +** API call was successful. +** +** Calls to many sqlite3_* functions set the error code and string returned +** by sqlite3_errcode(), sqlite3_errmsg() and sqlite3_errmsg16() +** (overwriting the previous values). Note that calls to sqlite3_errcode(), +** sqlite3_errmsg() and sqlite3_errmsg16() themselves do not affect the +** results of future invocations. +** +** Assuming no other intervening sqlite3_* API calls are made, the error +** code returned by this function is associated with the same error as +** the strings returned by sqlite3_errmsg() and sqlite3_errmsg16(). +*/ +int sqlite3_errcode(sqlite3 *db); + +/* +** Return a pointer to a UTF-8 encoded string describing in english the +** error condition for the most recent sqlite3_* API call. The returned +** string is always terminated by an 0x00 byte. +** +** The string "not an error" is returned when the most recent API call was +** successful. +*/ +const char *sqlite3_errmsg(sqlite3*); + +/* +** Return a pointer to a UTF-16 native byte order encoded string describing +** in english the error condition for the most recent sqlite3_* API call. +** The returned string is always terminated by a pair of 0x00 bytes. +** +** The string "not an error" is returned when the most recent API call was +** successful. +*/ +const void *sqlite3_errmsg16(sqlite3*); + +/* +** An instance of the following opaque structure is used to represent +** a compiled SQL statment. +*/ +typedef struct sqlite3_stmt sqlite3_stmt; + +/* +** To execute an SQL query, it must first be compiled into a byte-code +** program using one of the following routines. The only difference between +** them is that the second argument, specifying the SQL statement to +** compile, is assumed to be encoded in UTF-8 for the sqlite3_prepare() +** function and UTF-16 for sqlite3_prepare16(). +** +** The first parameter "db" is an SQLite database handle. The second +** parameter "zSql" is the statement to be compiled, encoded as either +** UTF-8 or UTF-16 (see above). If the next parameter, "nBytes", is less +** than zero, then zSql is read up to the first nul terminator. If +** "nBytes" is not less than zero, then it is the length of the string zSql +** in bytes (not characters). +** +** *pzTail is made to point to the first byte past the end of the first +** SQL statement in zSql. This routine only compiles the first statement +** in zSql, so *pzTail is left pointing to what remains uncompiled. +** +** *ppStmt is left pointing to a compiled SQL statement that can be +** executed using sqlite3_step(). Or if there is an error, *ppStmt may be +** set to NULL. If the input text contained no SQL (if the input is and +** empty string or a comment) then *ppStmt is set to NULL. +** +** On success, SQLITE_OK is returned. Otherwise an error code is returned. +*/ +int sqlite3_prepare( + sqlite3 *db, /* Database handle */ + const char *zSql, /* SQL statement, UTF-8 encoded */ + int nBytes, /* Length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /* OUT: Statement handle */ + const char **pzTail /* OUT: Pointer to unused portion of zSql */ +); +int sqlite3_prepare16( + sqlite3 *db, /* Database handle */ + const void *zSql, /* SQL statement, UTF-16 encoded */ + int nBytes, /* Length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /* OUT: Statement handle */ + const void **pzTail /* OUT: Pointer to unused portion of zSql */ +); + +/* +** Newer versions of the prepare API work just like the legacy versions +** but with one exception: The a copy of the SQL text is saved in the +** sqlite3_stmt structure that is returned. If this copy exists, it +** modifieds the behavior of sqlite3_step() slightly. First, sqlite3_step() +** will no longer return an SQLITE_SCHEMA error but will instead automatically +** rerun the compiler to rebuild the prepared statement. Secondly, +** sqlite3_step() now turns a full result code - the result code that +** use used to have to call sqlite3_reset() to get. +*/ +int sqlite3_prepare_v2( + sqlite3 *db, /* Database handle */ + const char *zSql, /* SQL statement, UTF-8 encoded */ + int nBytes, /* Length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /* OUT: Statement handle */ + const char **pzTail /* OUT: Pointer to unused portion of zSql */ +); +int sqlite3_prepare16_v2( + sqlite3 *db, /* Database handle */ + const void *zSql, /* SQL statement, UTF-16 encoded */ + int nBytes, /* Length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /* OUT: Statement handle */ + const void **pzTail /* OUT: Pointer to unused portion of zSql */ +); + +/* +** Pointers to the following two opaque structures are used to communicate +** with the implementations of user-defined functions. +*/ +typedef struct sqlite3_context sqlite3_context; +typedef struct Mem sqlite3_value; + +/* +** In the SQL strings input to sqlite3_prepare() and sqlite3_prepare16(), +** one or more literals can be replace by parameters "?" or ":AAA" or +** "$VVV" where AAA is an identifer and VVV is a variable name according +** to the syntax rules of the TCL programming language. +** The value of these parameters (also called "host parameter names") can +** be set using the routines listed below. +** +** In every case, the first parameter is a pointer to the sqlite3_stmt +** structure returned from sqlite3_prepare(). The second parameter is the +** index of the parameter. The first parameter as an index of 1. For +** named parameters (":AAA" or "$VVV") you can use +** sqlite3_bind_parameter_index() to get the correct index value given +** the parameters name. If the same named parameter occurs more than +** once, it is assigned the same index each time. +** +** The fifth parameter to sqlite3_bind_blob(), sqlite3_bind_text(), and +** sqlite3_bind_text16() is a destructor used to dispose of the BLOB or +** text after SQLite has finished with it. If the fifth argument is the +** special value SQLITE_STATIC, then the library assumes that the information +** is in static, unmanaged space and does not need to be freed. If the +** fifth argument has the value SQLITE_TRANSIENT, then SQLite makes its +** own private copy of the data. +** +** The sqlite3_bind_* routine must be called before sqlite3_step() after +** an sqlite3_prepare() or sqlite3_reset(). Unbound parameterss are +** interpreted as NULL. +*/ +int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n, void(*)(void*)); +int sqlite3_bind_double(sqlite3_stmt*, int, double); +int sqlite3_bind_int(sqlite3_stmt*, int, int); +int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite_int64); +int sqlite3_bind_null(sqlite3_stmt*, int); +int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int n, void(*)(void*)); +int sqlite3_bind_text16(sqlite3_stmt*, int, const void*, int, void(*)(void*)); +int sqlite3_bind_value(sqlite3_stmt*, int, const sqlite3_value*); + +/* +** Return the number of parameters in a compiled SQL statement. This +** routine was added to support DBD::SQLite. +*/ +int sqlite3_bind_parameter_count(sqlite3_stmt*); + +/* +** Return the name of the i-th parameter. Ordinary parameters "?" are +** nameless and a NULL is returned. For parameters of the form :AAA or +** $VVV the complete text of the parameter name is returned, including +** the initial ":" or "$". NULL is returned if the index is out of range. +*/ +const char *sqlite3_bind_parameter_name(sqlite3_stmt*, int); + +/* +** Return the index of a parameter with the given name. The name +** must match exactly. If no parameter with the given name is found, +** return 0. +*/ +int sqlite3_bind_parameter_index(sqlite3_stmt*, const char *zName); + +/* +** Set all the parameters in the compiled SQL statement to NULL. +*/ +int sqlite3_clear_bindings(sqlite3_stmt*); + +/* +** Return the number of columns in the result set returned by the compiled +** SQL statement. This routine returns 0 if pStmt is an SQL statement +** that does not return data (for example an UPDATE). +*/ +int sqlite3_column_count(sqlite3_stmt *pStmt); + +/* +** The first parameter is a compiled SQL statement. This function returns +** the column heading for the Nth column of that statement, where N is the +** second function parameter. The string returned is UTF-8 for +** sqlite3_column_name() and UTF-16 for sqlite3_column_name16(). +*/ +const char *sqlite3_column_name(sqlite3_stmt*,int); +const void *sqlite3_column_name16(sqlite3_stmt*,int); + +/* +** The first parameter to the following calls is a compiled SQL statement. +** These functions return information about the Nth column returned by +** the statement, where N is the second function argument. +** +** If the Nth column returned by the statement is not a column value, +** then all of the functions return NULL. Otherwise, the return the +** name of the attached database, table and column that the expression +** extracts a value from. +** +** As with all other SQLite APIs, those postfixed with "16" return UTF-16 +** encoded strings, the other functions return UTF-8. The memory containing +** the returned strings is valid until the statement handle is finalized(). +** +** These APIs are only available if the library was compiled with the +** SQLITE_ENABLE_COLUMN_METADATA preprocessor symbol defined. +*/ +const char *sqlite3_column_database_name(sqlite3_stmt*,int); +const void *sqlite3_column_database_name16(sqlite3_stmt*,int); +const char *sqlite3_column_table_name(sqlite3_stmt*,int); +const void *sqlite3_column_table_name16(sqlite3_stmt*,int); +const char *sqlite3_column_origin_name(sqlite3_stmt*,int); +const void *sqlite3_column_origin_name16(sqlite3_stmt*,int); + +/* +** The first parameter is a compiled SQL statement. If this statement +** is a SELECT statement, the Nth column of the returned result set +** of the SELECT is a table column then the declared type of the table +** column is returned. If the Nth column of the result set is not at table +** column, then a NULL pointer is returned. The returned string is always +** UTF-8 encoded. For example, in the database schema: +** +** CREATE TABLE t1(c1 VARIANT); +** +** And the following statement compiled: +** +** SELECT c1 + 1, c1 FROM t1; +** +** Then this routine would return the string "VARIANT" for the second +** result column (i==1), and a NULL pointer for the first result column +** (i==0). +*/ +const char *sqlite3_column_decltype(sqlite3_stmt *, int i); + +/* +** The first parameter is a compiled SQL statement. If this statement +** is a SELECT statement, the Nth column of the returned result set +** of the SELECT is a table column then the declared type of the table +** column is returned. If the Nth column of the result set is not at table +** column, then a NULL pointer is returned. The returned string is always +** UTF-16 encoded. For example, in the database schema: +** +** CREATE TABLE t1(c1 INTEGER); +** +** And the following statement compiled: +** +** SELECT c1 + 1, c1 FROM t1; +** +** Then this routine would return the string "INTEGER" for the second +** result column (i==1), and a NULL pointer for the first result column +** (i==0). +*/ +const void *sqlite3_column_decltype16(sqlite3_stmt*,int); + +/* +** After an SQL query has been compiled with a call to either +** sqlite3_prepare() or sqlite3_prepare16(), then this function must be +** called one or more times to execute the statement. +** +** The return value will be either SQLITE_BUSY, SQLITE_DONE, +** SQLITE_ROW, SQLITE_ERROR, or SQLITE_MISUSE. +** +** SQLITE_BUSY means that the database engine attempted to open +** a locked database and there is no busy callback registered. +** Call sqlite3_step() again to retry the open. +** +** SQLITE_DONE means that the statement has finished executing +** successfully. sqlite3_step() should not be called again on this virtual +** machine. +** +** If the SQL statement being executed returns any data, then +** SQLITE_ROW is returned each time a new row of data is ready +** for processing by the caller. The values may be accessed using +** the sqlite3_column_*() functions described below. sqlite3_step() +** is called again to retrieve the next row of data. +** +** SQLITE_ERROR means that a run-time error (such as a constraint +** violation) has occurred. sqlite3_step() should not be called again on +** the VM. More information may be found by calling sqlite3_errmsg(). +** +** SQLITE_MISUSE means that the this routine was called inappropriately. +** Perhaps it was called on a virtual machine that had already been +** finalized or on one that had previously returned SQLITE_ERROR or +** SQLITE_DONE. Or it could be the case the the same database connection +** is being used simulataneously by two or more threads. +*/ +int sqlite3_step(sqlite3_stmt*); + +/* +** Return the number of values in the current row of the result set. +** +** After a call to sqlite3_step() that returns SQLITE_ROW, this routine +** will return the same value as the sqlite3_column_count() function. +** After sqlite3_step() has returned an SQLITE_DONE, SQLITE_BUSY or +** error code, or before sqlite3_step() has been called on a +** compiled SQL statement, this routine returns zero. +*/ +int sqlite3_data_count(sqlite3_stmt *pStmt); + +/* +** Values are stored in the database in one of the following fundamental +** types. +*/ +#define SQLITE_INTEGER 1 +#define SQLITE_FLOAT 2 +/* #define SQLITE_TEXT 3 // See below */ +#define SQLITE_BLOB 4 +#define SQLITE_NULL 5 + +/* +** SQLite version 2 defines SQLITE_TEXT differently. To allow both +** version 2 and version 3 to be included, undefine them both if a +** conflict is seen. Define SQLITE3_TEXT to be the version 3 value. +*/ +#ifdef SQLITE_TEXT +# undef SQLITE_TEXT +#else +# define SQLITE_TEXT 3 +#endif +#define SQLITE3_TEXT 3 + +/* +** The next group of routines returns information about the information +** in a single column of the current result row of a query. In every +** case the first parameter is a pointer to the SQL statement that is being +** executed (the sqlite_stmt* that was returned from sqlite3_prepare()) and +** the second argument is the index of the column for which information +** should be returned. iCol is zero-indexed. The left-most column as an +** index of 0. +** +** If the SQL statement is not currently point to a valid row, or if the +** the colulmn index is out of range, the result is undefined. +** +** These routines attempt to convert the value where appropriate. For +** example, if the internal representation is FLOAT and a text result +** is requested, sprintf() is used internally to do the conversion +** automatically. The following table details the conversions that +** are applied: +** +** Internal Type Requested Type Conversion +** ------------- -------------- -------------------------- +** NULL INTEGER Result is 0 +** NULL FLOAT Result is 0.0 +** NULL TEXT Result is an empty string +** NULL BLOB Result is a zero-length BLOB +** INTEGER FLOAT Convert from integer to float +** INTEGER TEXT ASCII rendering of the integer +** INTEGER BLOB Same as for INTEGER->TEXT +** FLOAT INTEGER Convert from float to integer +** FLOAT TEXT ASCII rendering of the float +** FLOAT BLOB Same as FLOAT->TEXT +** TEXT INTEGER Use atoi() +** TEXT FLOAT Use atof() +** TEXT BLOB No change +** BLOB INTEGER Convert to TEXT then use atoi() +** BLOB FLOAT Convert to TEXT then use atof() +** BLOB TEXT Add a \000 terminator if needed +** +** The following access routines are provided: +** +** _type() Return the datatype of the result. This is one of +** SQLITE_INTEGER, SQLITE_FLOAT, SQLITE_TEXT, SQLITE_BLOB, +** or SQLITE_NULL. +** _blob() Return the value of a BLOB. +** _bytes() Return the number of bytes in a BLOB value or the number +** of bytes in a TEXT value represented as UTF-8. The \000 +** terminator is included in the byte count for TEXT values. +** _bytes16() Return the number of bytes in a BLOB value or the number +** of bytes in a TEXT value represented as UTF-16. The \u0000 +** terminator is included in the byte count for TEXT values. +** _double() Return a FLOAT value. +** _int() Return an INTEGER value in the host computer's native +** integer representation. This might be either a 32- or 64-bit +** integer depending on the host. +** _int64() Return an INTEGER value as a 64-bit signed integer. +** _text() Return the value as UTF-8 text. +** _text16() Return the value as UTF-16 text. +*/ +const void *sqlite3_column_blob(sqlite3_stmt*, int iCol); +int sqlite3_column_bytes(sqlite3_stmt*, int iCol); +int sqlite3_column_bytes16(sqlite3_stmt*, int iCol); +double sqlite3_column_double(sqlite3_stmt*, int iCol); +int sqlite3_column_int(sqlite3_stmt*, int iCol); +sqlite_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol); +const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol); +const void *sqlite3_column_text16(sqlite3_stmt*, int iCol); +int sqlite3_column_type(sqlite3_stmt*, int iCol); +int sqlite3_column_numeric_type(sqlite3_stmt*, int iCol); +sqlite3_value *sqlite3_column_value(sqlite3_stmt*, int iCol); + +/* +** The sqlite3_finalize() function is called to delete a compiled +** SQL statement obtained by a previous call to sqlite3_prepare() +** or sqlite3_prepare16(). If the statement was executed successfully, or +** not executed at all, then SQLITE_OK is returned. If execution of the +** statement failed then an error code is returned. +** +** This routine can be called at any point during the execution of the +** virtual machine. If the virtual machine has not completed execution +** when this routine is called, that is like encountering an error or +** an interrupt. (See sqlite3_interrupt().) Incomplete updates may be +** rolled back and transactions cancelled, depending on the circumstances, +** and the result code returned will be SQLITE_ABORT. +*/ +int sqlite3_finalize(sqlite3_stmt *pStmt); + +/* +** The sqlite3_reset() function is called to reset a compiled SQL +** statement obtained by a previous call to sqlite3_prepare() or +** sqlite3_prepare16() back to it's initial state, ready to be re-executed. +** Any SQL statement variables that had values bound to them using +** the sqlite3_bind_*() API retain their values. +*/ +int sqlite3_reset(sqlite3_stmt *pStmt); + +/* +** The following two functions are used to add user functions or aggregates +** implemented in C to the SQL langauge interpreted by SQLite. The +** difference only between the two is that the second parameter, the +** name of the (scalar) function or aggregate, is encoded in UTF-8 for +** sqlite3_create_function() and UTF-16 for sqlite3_create_function16(). +** +** The first argument is the database handle that the new function or +** aggregate is to be added to. If a single program uses more than one +** database handle internally, then user functions or aggregates must +** be added individually to each database handle with which they will be +** used. +** +** The third parameter is the number of arguments that the function or +** aggregate takes. If this parameter is negative, then the function or +** aggregate may take any number of arguments. +** +** The fourth parameter is one of SQLITE_UTF* values defined below, +** indicating the encoding that the function is most likely to handle +** values in. This does not change the behaviour of the programming +** interface. However, if two versions of the same function are registered +** with different encoding values, SQLite invokes the version likely to +** minimize conversions between text encodings. +** +** The seventh, eighth and ninth parameters, xFunc, xStep and xFinal, are +** pointers to user implemented C functions that implement the user +** function or aggregate. A scalar function requires an implementation of +** the xFunc callback only, NULL pointers should be passed as the xStep +** and xFinal parameters. An aggregate function requires an implementation +** of xStep and xFinal, but NULL should be passed for xFunc. To delete an +** existing user function or aggregate, pass NULL for all three function +** callback. Specifying an inconstent set of callback values, such as an +** xFunc and an xFinal, or an xStep but no xFinal, SQLITE_ERROR is +** returned. +*/ +int sqlite3_create_function( + sqlite3 *, + const char *zFunctionName, + int nArg, + int eTextRep, + void*, + void (*xFunc)(sqlite3_context*,int,sqlite3_value**), + void (*xStep)(sqlite3_context*,int,sqlite3_value**), + void (*xFinal)(sqlite3_context*) +); +int sqlite3_create_function16( + sqlite3*, + const void *zFunctionName, + int nArg, + int eTextRep, + void*, + void (*xFunc)(sqlite3_context*,int,sqlite3_value**), + void (*xStep)(sqlite3_context*,int,sqlite3_value**), + void (*xFinal)(sqlite3_context*) +); + +/* +** This function is deprecated. Do not use it. It continues to exist +** so as not to break legacy code. But new code should avoid using it. +*/ +int sqlite3_aggregate_count(sqlite3_context*); + +/* +** The next group of routines returns information about parameters to +** a user-defined function. Function implementations use these routines +** to access their parameters. These routines are the same as the +** sqlite3_column_* routines except that these routines take a single +** sqlite3_value* pointer instead of an sqlite3_stmt* and an integer +** column number. +*/ +const void *sqlite3_value_blob(sqlite3_value*); +int sqlite3_value_bytes(sqlite3_value*); +int sqlite3_value_bytes16(sqlite3_value*); +double sqlite3_value_double(sqlite3_value*); +int sqlite3_value_int(sqlite3_value*); +sqlite_int64 sqlite3_value_int64(sqlite3_value*); +const unsigned char *sqlite3_value_text(sqlite3_value*); +const void *sqlite3_value_text16(sqlite3_value*); +const void *sqlite3_value_text16le(sqlite3_value*); +const void *sqlite3_value_text16be(sqlite3_value*); +int sqlite3_value_type(sqlite3_value*); +int sqlite3_value_numeric_type(sqlite3_value*); + +/* +** Aggregate functions use the following routine to allocate +** a structure for storing their state. The first time this routine +** is called for a particular aggregate, a new structure of size nBytes +** is allocated, zeroed, and returned. On subsequent calls (for the +** same aggregate instance) the same buffer is returned. The implementation +** of the aggregate can use the returned buffer to accumulate data. +** +** The buffer allocated is freed automatically by SQLite. +*/ +void *sqlite3_aggregate_context(sqlite3_context*, int nBytes); + +/* +** The pUserData parameter to the sqlite3_create_function() +** routine used to register user functions is available to +** the implementation of the function using this call. +*/ +void *sqlite3_user_data(sqlite3_context*); + +/* +** The following two functions may be used by scalar user functions to +** associate meta-data with argument values. If the same value is passed to +** multiple invocations of the user-function during query execution, under +** some circumstances the associated meta-data may be preserved. This may +** be used, for example, to add a regular-expression matching scalar +** function. The compiled version of the regular expression is stored as +** meta-data associated with the SQL value passed as the regular expression +** pattern. +** +** Calling sqlite3_get_auxdata() returns a pointer to the meta data +** associated with the Nth argument value to the current user function +** call, where N is the second parameter. If no meta-data has been set for +** that value, then a NULL pointer is returned. +** +** The sqlite3_set_auxdata() is used to associate meta data with a user +** function argument. The third parameter is a pointer to the meta data +** to be associated with the Nth user function argument value. The fourth +** parameter specifies a 'delete function' that will be called on the meta +** data pointer to release it when it is no longer required. If the delete +** function pointer is NULL, it is not invoked. +** +** In practice, meta-data is preserved between function calls for +** expressions that are constant at compile time. This includes literal +** values and SQL variables. +*/ +void *sqlite3_get_auxdata(sqlite3_context*, int); +void sqlite3_set_auxdata(sqlite3_context*, int, void*, void (*)(void*)); + + +/* +** These are special value for the destructor that is passed in as the +** final argument to routines like sqlite3_result_blob(). If the destructor +** argument is SQLITE_STATIC, it means that the content pointer is constant +** and will never change. It does not need to be destroyed. The +** SQLITE_TRANSIENT value means that the content will likely change in +** the near future and that SQLite should make its own private copy of +** the content before returning. +*/ +#define SQLITE_STATIC ((void(*)(void *))0) +#define SQLITE_TRANSIENT ((void(*)(void *))-1) + +/* +** User-defined functions invoke the following routines in order to +** set their return value. +*/ +void sqlite3_result_blob(sqlite3_context*, const void*, int, void(*)(void*)); +void sqlite3_result_double(sqlite3_context*, double); +void sqlite3_result_error(sqlite3_context*, const char*, int); +void sqlite3_result_error16(sqlite3_context*, const void*, int); +void sqlite3_result_int(sqlite3_context*, int); +void sqlite3_result_int64(sqlite3_context*, sqlite_int64); +void sqlite3_result_null(sqlite3_context*); +void sqlite3_result_text(sqlite3_context*, const char*, int, void(*)(void*)); +void sqlite3_result_text16(sqlite3_context*, const void*, int, void(*)(void*)); +void sqlite3_result_text16le(sqlite3_context*, const void*, int,void(*)(void*)); +void sqlite3_result_text16be(sqlite3_context*, const void*, int,void(*)(void*)); +void sqlite3_result_value(sqlite3_context*, sqlite3_value*); + +/* +** These are the allowed values for the eTextRep argument to +** sqlite3_create_collation and sqlite3_create_function. +*/ +#define SQLITE_UTF8 1 +#define SQLITE_UTF16LE 2 +#define SQLITE_UTF16BE 3 +#define SQLITE_UTF16 4 /* Use native byte order */ +#define SQLITE_ANY 5 /* sqlite3_create_function only */ +#define SQLITE_UTF16_ALIGNED 8 /* sqlite3_create_collation only */ + +/* +** These two functions are used to add new collation sequences to the +** sqlite3 handle specified as the first argument. +** +** The name of the new collation sequence is specified as a UTF-8 string +** for sqlite3_create_collation() and a UTF-16 string for +** sqlite3_create_collation16(). In both cases the name is passed as the +** second function argument. +** +** The third argument must be one of the constants SQLITE_UTF8, +** SQLITE_UTF16LE or SQLITE_UTF16BE, indicating that the user-supplied +** routine expects to be passed pointers to strings encoded using UTF-8, +** UTF-16 little-endian or UTF-16 big-endian respectively. +** +** A pointer to the user supplied routine must be passed as the fifth +** argument. If it is NULL, this is the same as deleting the collation +** sequence (so that SQLite cannot call it anymore). Each time the user +** supplied function is invoked, it is passed a copy of the void* passed as +** the fourth argument to sqlite3_create_collation() or +** sqlite3_create_collation16() as its first parameter. +** +** The remaining arguments to the user-supplied routine are two strings, +** each represented by a [length, data] pair and encoded in the encoding +** that was passed as the third argument when the collation sequence was +** registered. The user routine should return negative, zero or positive if +** the first string is less than, equal to, or greater than the second +** string. i.e. (STRING1 - STRING2). +*/ +int sqlite3_create_collation( + sqlite3*, + const char *zName, + int eTextRep, + void*, + int(*xCompare)(void*,int,const void*,int,const void*) +); +int sqlite3_create_collation16( + sqlite3*, + const char *zName, + int eTextRep, + void*, + int(*xCompare)(void*,int,const void*,int,const void*) +); + +/* +** To avoid having to register all collation sequences before a database +** can be used, a single callback function may be registered with the +** database handle to be called whenever an undefined collation sequence is +** required. +** +** If the function is registered using the sqlite3_collation_needed() API, +** then it is passed the names of undefined collation sequences as strings +** encoded in UTF-8. If sqlite3_collation_needed16() is used, the names +** are passed as UTF-16 in machine native byte order. A call to either +** function replaces any existing callback. +** +** When the user-function is invoked, the first argument passed is a copy +** of the second argument to sqlite3_collation_needed() or +** sqlite3_collation_needed16(). The second argument is the database +** handle. The third argument is one of SQLITE_UTF8, SQLITE_UTF16BE or +** SQLITE_UTF16LE, indicating the most desirable form of the collation +** sequence function required. The fourth parameter is the name of the +** required collation sequence. +** +** The collation sequence is returned to SQLite by a collation-needed +** callback using the sqlite3_create_collation() or +** sqlite3_create_collation16() APIs, described above. +*/ +int sqlite3_collation_needed( + sqlite3*, + void*, + void(*)(void*,sqlite3*,int eTextRep,const char*) +); +int sqlite3_collation_needed16( + sqlite3*, + void*, + void(*)(void*,sqlite3*,int eTextRep,const void*) +); + +/* +** Specify the key for an encrypted database. This routine should be +** called right after sqlite3_open(). +** +** The code to implement this API is not available in the public release +** of SQLite. +*/ +int sqlite3_key( + sqlite3 *db, /* Database to be rekeyed */ + const void *pKey, int nKey /* The key */ +); + +/* +** Change the key on an open database. If the current database is not +** encrypted, this routine will encrypt it. If pNew==0 or nNew==0, the +** database is decrypted. +** +** The code to implement this API is not available in the public release +** of SQLite. +*/ +int sqlite3_rekey( + sqlite3 *db, /* Database to be rekeyed */ + const void *pKey, int nKey /* The new key */ +); + +/* +** Sleep for a little while. The second parameter is the number of +** miliseconds to sleep for. +** +** If the operating system does not support sleep requests with +** milisecond time resolution, then the time will be rounded up to +** the nearest second. The number of miliseconds of sleep actually +** requested from the operating system is returned. +*/ +int sqlite3_sleep(int); + +/* +** Return TRUE (non-zero) if the statement supplied as an argument needs +** to be recompiled. A statement needs to be recompiled whenever the +** execution environment changes in a way that would alter the program +** that sqlite3_prepare() generates. For example, if new functions or +** collating sequences are registered or if an authorizer function is +** added or changed. +** +*/ +int sqlite3_expired(sqlite3_stmt*); + +/* +** Move all bindings from the first prepared statement over to the second. +** This routine is useful, for example, if the first prepared statement +** fails with an SQLITE_SCHEMA error. The same SQL can be prepared into +** the second prepared statement then all of the bindings transfered over +** to the second statement before the first statement is finalized. +*/ +int sqlite3_transfer_bindings(sqlite3_stmt*, sqlite3_stmt*); + +/* +** If the following global variable is made to point to a +** string which is the name of a directory, then all temporary files +** created by SQLite will be placed in that directory. If this variable +** is NULL pointer, then SQLite does a search for an appropriate temporary +** file directory. +** +** Once sqlite3_open() has been called, changing this variable will invalidate +** the current temporary database, if any. +*/ +extern char *sqlite3_temp_directory; + +/* +** This function is called to recover from a malloc() failure that occured +** within the SQLite library. Normally, after a single malloc() fails the +** library refuses to function (all major calls return SQLITE_NOMEM). +** This function restores the library state so that it can be used again. +** +** All existing statements (sqlite3_stmt pointers) must be finalized or +** reset before this call is made. Otherwise, SQLITE_BUSY is returned. +** If any in-memory databases are in use, either as a main or TEMP +** database, SQLITE_ERROR is returned. In either of these cases, the +** library is not reset and remains unusable. +** +** This function is *not* threadsafe. Calling this from within a threaded +** application when threads other than the caller have used SQLite is +** dangerous and will almost certainly result in malfunctions. +** +** This functionality can be omitted from a build by defining the +** SQLITE_OMIT_GLOBALRECOVER at compile time. +*/ +int sqlite3_global_recover(void); + +/* +** Test to see whether or not the database connection is in autocommit +** mode. Return TRUE if it is and FALSE if not. Autocommit mode is on +** by default. Autocommit is disabled by a BEGIN statement and reenabled +** by the next COMMIT or ROLLBACK. +*/ +int sqlite3_get_autocommit(sqlite3*); + +/* +** Return the sqlite3* database handle to which the prepared statement given +** in the argument belongs. This is the same database handle that was +** the first argument to the sqlite3_prepare() that was used to create +** the statement in the first place. +*/ +sqlite3 *sqlite3_db_handle(sqlite3_stmt*); + +/* +** Register a callback function with the database connection identified by the +** first argument to be invoked whenever a row is updated, inserted or deleted. +** Any callback set by a previous call to this function for the same +** database connection is overridden. +** +** The second argument is a pointer to the function to invoke when a +** row is updated, inserted or deleted. The first argument to the callback is +** a copy of the third argument to sqlite3_update_hook. The second callback +** argument is one of SQLITE_INSERT, SQLITE_DELETE or SQLITE_UPDATE, depending +** on the operation that caused the callback to be invoked. The third and +** fourth arguments to the callback contain pointers to the database and +** table name containing the affected row. The final callback parameter is +** the rowid of the row. In the case of an update, this is the rowid after +** the update takes place. +** +** The update hook is not invoked when internal system tables are +** modified (i.e. sqlite_master and sqlite_sequence). +** +** If another function was previously registered, its pArg value is returned. +** Otherwise NULL is returned. +*/ +void *sqlite3_update_hook( + sqlite3*, + void(*)(void *,int ,char const *,char const *,sqlite_int64), + void* +); + +/* +** Register a callback to be invoked whenever a transaction is rolled +** back. +** +** The new callback function overrides any existing rollback-hook +** callback. If there was an existing callback, then it's pArg value +** (the third argument to sqlite3_rollback_hook() when it was registered) +** is returned. Otherwise, NULL is returned. +** +** For the purposes of this API, a transaction is said to have been +** rolled back if an explicit "ROLLBACK" statement is executed, or +** an error or constraint causes an implicit rollback to occur. The +** callback is not invoked if a transaction is automatically rolled +** back because the database connection is closed. +*/ +void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*); + +/* +** This function is only available if the library is compiled without +** the SQLITE_OMIT_SHARED_CACHE macro defined. It is used to enable or +** disable (if the argument is true or false, respectively) the +** "shared pager" feature. +*/ +int sqlite3_enable_shared_cache(int); + +/* +** Attempt to free N bytes of heap memory by deallocating non-essential +** memory allocations held by the database library (example: memory +** used to cache database pages to improve performance). +** +** This function is not a part of standard builds. It is only created +** if SQLite is compiled with the SQLITE_ENABLE_MEMORY_MANAGEMENT macro. +*/ +int sqlite3_release_memory(int); + +/* +** Place a "soft" limit on the amount of heap memory that may be allocated by +** SQLite within the current thread. If an internal allocation is requested +** that would exceed the specified limit, sqlite3_release_memory() is invoked +** one or more times to free up some space before the allocation is made. +** +** The limit is called "soft", because if sqlite3_release_memory() cannot free +** sufficient memory to prevent the limit from being exceeded, the memory is +** allocated anyway and the current operation proceeds. +** +** This function is only available if the library was compiled with the +** SQLITE_ENABLE_MEMORY_MANAGEMENT option set. +** memory-management has been enabled. +*/ +void sqlite3_soft_heap_limit(int); + +/* +** This routine makes sure that all thread-local storage has been +** deallocated for the current thread. +** +** This routine is not technically necessary. All thread-local storage +** will be automatically deallocated once memory-management and +** shared-cache are disabled and the soft heap limit has been set +** to zero. This routine is provided as a convenience for users who +** want to make absolutely sure they have not forgotten something +** prior to killing off a thread. +*/ +void sqlite3_thread_cleanup(void); + +/* +** Return meta information about a specific column of a specific database +** table accessible using the connection handle passed as the first function +** argument. +** +** The column is identified by the second, third and fourth parameters to +** this function. The second parameter is either the name of the database +** (i.e. "main", "temp" or an attached database) containing the specified +** table or NULL. If it is NULL, then all attached databases are searched +** for the table using the same algorithm as the database engine uses to +** resolve unqualified table references. +** +** The third and fourth parameters to this function are the table and column +** name of the desired column, respectively. Neither of these parameters +** may be NULL. +** +** Meta information is returned by writing to the memory locations passed as +** the 5th and subsequent parameters to this function. Any of these +** arguments may be NULL, in which case the corresponding element of meta +** information is ommitted. +** +** Parameter Output Type Description +** ----------------------------------- +** +** 5th const char* Data type +** 6th const char* Name of the default collation sequence +** 7th int True if the column has a NOT NULL constraint +** 8th int True if the column is part of the PRIMARY KEY +** 9th int True if the column is AUTOINCREMENT +** +** +** The memory pointed to by the character pointers returned for the +** declaration type and collation sequence is valid only until the next +** call to any sqlite API function. +** +** If the specified table is actually a view, then an error is returned. +** +** If the specified column is "rowid", "oid" or "_rowid_" and an +** INTEGER PRIMARY KEY column has been explicitly declared, then the output +** parameters are set for the explicitly declared column. If there is no +** explicitly declared IPK column, then the output parameters are set as +** follows: +** +** data type: "INTEGER" +** collation sequence: "BINARY" +** not null: 0 +** primary key: 1 +** auto increment: 0 +** +** This function may load one or more schemas from database files. If an +** error occurs during this process, or if the requested table or column +** cannot be found, an SQLITE error code is returned and an error message +** left in the database handle (to be retrieved using sqlite3_errmsg()). +** +** This API is only available if the library was compiled with the +** SQLITE_ENABLE_COLUMN_METADATA preprocessor symbol defined. +*/ +int sqlite3_table_column_metadata( + sqlite3 *db, /* Connection handle */ + const char *zDbName, /* Database name or NULL */ + const char *zTableName, /* Table name */ + const char *zColumnName, /* Column name */ + char const **pzDataType, /* OUTPUT: Declared data type */ + char const **pzCollSeq, /* OUTPUT: Collation sequence name */ + int *pNotNull, /* OUTPUT: True if NOT NULL constraint exists */ + int *pPrimaryKey, /* OUTPUT: True if column part of PK */ + int *pAutoinc /* OUTPUT: True if colums is auto-increment */ +); + +/* +****** EXPERIMENTAL - subject to change without notice ************** +** +** Attempt to load an SQLite extension library contained in the file +** zFile. The entry point is zProc. zProc may be 0 in which case the +** name of the entry point defaults to "sqlite3_extension_init". +** +** Return SQLITE_OK on success and SQLITE_ERROR if something goes wrong. +** +** If an error occurs and pzErrMsg is not 0, then fill *pzErrMsg with +** error message text. The calling function should free this memory +** by calling sqlite3_free(). +** +** Extension loading must be enabled using sqlite3_enable_load_extension() +** prior to calling this API or an error will be returned. +** +****** EXPERIMENTAL - subject to change without notice ************** +*/ +int sqlite3_load_extension( + sqlite3 *db, /* Load the extension into this database connection */ + const char *zFile, /* Name of the shared library containing extension */ + const char *zProc, /* Entry point. Derived from zFile if 0 */ + char **pzErrMsg /* Put error message here if not 0 */ +); + +/* +** So as not to open security holes in older applications that are +** unprepared to deal with extension load, and as a means of disabling +** extension loading while executing user-entered SQL, the following +** API is provided to turn the extension loading mechanism on and +** off. It is off by default. See ticket #1863. +** +** Call this routine with onoff==1 to turn extension loading on +** and call it with onoff==0 to turn it back off again. +*/ +int sqlite3_enable_load_extension(sqlite3 *db, int onoff); + +/* +****** EXPERIMENTAL - subject to change without notice ************** +** +** Register an extension entry point that is automatically invoked +** whenever a new database connection is opened. +** +** This API can be invoked at program startup in order to register +** one or more statically linked extensions that will be available +** to all new database connections. +** +** Duplicate extensions are detected so calling this routine multiple +** times with the same extension is harmless. +** +** This routine stores a pointer to the extension in an array +** that is obtained from malloc(). If you run a memory leak +** checker on your program and it reports a leak because of this +** array, then invoke sqlite3_automatic_extension_reset() prior +** to shutdown to free the memory. +** +** Automatic extensions apply across all threads. +*/ +int sqlite3_auto_extension(void *xEntryPoint); + + +/* +****** EXPERIMENTAL - subject to change without notice ************** +** +** Disable all previously registered automatic extensions. This +** routine undoes the effect of all prior sqlite3_automatic_extension() +** calls. +** +** This call disabled automatic extensions in all threads. +*/ +void sqlite3_reset_auto_extension(void); + + +/* +****** EXPERIMENTAL - subject to change without notice ************** +** +** The interface to the virtual-table mechanism is currently considered +** to be experimental. The interface might change in incompatible ways. +** If this is a problem for you, do not use the interface at this time. +** +** When the virtual-table mechanism stablizes, we will declare the +** interface fixed, support it indefinitely, and remove this comment. +*/ + +/* +** Structures used by the virtual table interface +*/ +typedef struct sqlite3_vtab sqlite3_vtab; +typedef struct sqlite3_index_info sqlite3_index_info; +typedef struct sqlite3_vtab_cursor sqlite3_vtab_cursor; +typedef struct sqlite3_module sqlite3_module; + +/* +** A module is a class of virtual tables. Each module is defined +** by an instance of the following structure. This structure consists +** mostly of methods for the module. +*/ +struct sqlite3_module { + int iVersion; + int (*xCreate)(sqlite3*, void *pAux, + int argc, const char *const*argv, + sqlite3_vtab **ppVTab, char**); + int (*xConnect)(sqlite3*, void *pAux, + int argc, const char *const*argv, + sqlite3_vtab **ppVTab, char**); + int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*); + int (*xDisconnect)(sqlite3_vtab *pVTab); + int (*xDestroy)(sqlite3_vtab *pVTab); + int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor); + int (*xClose)(sqlite3_vtab_cursor*); + int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, + int argc, sqlite3_value **argv); + int (*xNext)(sqlite3_vtab_cursor*); + int (*xEof)(sqlite3_vtab_cursor*); + int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int); + int (*xRowid)(sqlite3_vtab_cursor*, sqlite_int64 *pRowid); + int (*xUpdate)(sqlite3_vtab *, int, sqlite3_value **, sqlite_int64 *); + int (*xBegin)(sqlite3_vtab *pVTab); + int (*xSync)(sqlite3_vtab *pVTab); + int (*xCommit)(sqlite3_vtab *pVTab); + int (*xRollback)(sqlite3_vtab *pVTab); + int (*xFindFunction)(sqlite3_vtab *pVtab, int nArg, const char *zName, + void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), + void **ppArg); +}; + +/* +** The sqlite3_index_info structure and its substructures is used to +** pass information into and receive the reply from the xBestIndex +** method of an sqlite3_module. The fields under **Inputs** are the +** inputs to xBestIndex and are read-only. xBestIndex inserts its +** results into the **Outputs** fields. +** +** The aConstraint[] array records WHERE clause constraints of the +** form: +** +** column OP expr +** +** Where OP is =, <, <=, >, or >=. The particular operator is stored +** in aConstraint[].op. The index of the column is stored in +** aConstraint[].iColumn. aConstraint[].usable is TRUE if the +** expr on the right-hand side can be evaluated (and thus the constraint +** is usable) and false if it cannot. +** +** The optimizer automatically inverts terms of the form "expr OP column" +** and makes other simplificatinos to the WHERE clause in an attempt to +** get as many WHERE clause terms into the form shown above as possible. +** The aConstraint[] array only reports WHERE clause terms in the correct +** form that refer to the particular virtual table being queried. +** +** Information about the ORDER BY clause is stored in aOrderBy[]. +** Each term of aOrderBy records a column of the ORDER BY clause. +** +** The xBestIndex method must fill aConstraintUsage[] with information +** about what parameters to pass to xFilter. If argvIndex>0 then +** the right-hand side of the corresponding aConstraint[] is evaluated +** and becomes the argvIndex-th entry in argv. If aConstraintUsage[].omit +** is true, then the constraint is assumed to be fully handled by the +** virtual table and is not checked again by SQLite. +** +** The idxNum and idxPtr values are recorded and passed into xFilter. +** sqlite3_free() is used to free idxPtr if needToFreeIdxPtr is true. +** +** The orderByConsumed means that output from xFilter will occur in +** the correct order to satisfy the ORDER BY clause so that no separate +** sorting step is required. +** +** The estimatedCost value is an estimate of the cost of doing the +** particular lookup. A full scan of a table with N entries should have +** a cost of N. A binary search of a table of N entries should have a +** cost of approximately log(N). +*/ +struct sqlite3_index_info { + /* Inputs */ + const int nConstraint; /* Number of entries in aConstraint */ + const struct sqlite3_index_constraint { + int iColumn; /* Column on left-hand side of constraint */ + unsigned char op; /* Constraint operator */ + unsigned char usable; /* True if this constraint is usable */ + int iTermOffset; /* Used internally - xBestIndex should ignore */ + } *const aConstraint; /* Table of WHERE clause constraints */ + const int nOrderBy; /* Number of terms in the ORDER BY clause */ + const struct sqlite3_index_orderby { + int iColumn; /* Column number */ + unsigned char desc; /* True for DESC. False for ASC. */ + } *const aOrderBy; /* The ORDER BY clause */ + + /* Outputs */ + struct sqlite3_index_constraint_usage { + int argvIndex; /* if >0, constraint is part of argv to xFilter */ + unsigned char omit; /* Do not code a test for this constraint */ + } *const aConstraintUsage; + int idxNum; /* Number used to identify the index */ + char *idxStr; /* String, possibly obtained from sqlite3_malloc */ + int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */ + int orderByConsumed; /* True if output is already ordered */ + double estimatedCost; /* Estimated cost of using this index */ +}; +#define SQLITE_INDEX_CONSTRAINT_EQ 2 +#define SQLITE_INDEX_CONSTRAINT_GT 4 +#define SQLITE_INDEX_CONSTRAINT_LE 8 +#define SQLITE_INDEX_CONSTRAINT_LT 16 +#define SQLITE_INDEX_CONSTRAINT_GE 32 +#define SQLITE_INDEX_CONSTRAINT_MATCH 64 + +/* +** This routine is used to register a new module name with an SQLite +** connection. Module names must be registered before creating new +** virtual tables on the module, or before using preexisting virtual +** tables of the module. +*/ +int sqlite3_create_module( + sqlite3 *db, /* SQLite connection to register module with */ + const char *zName, /* Name of the module */ + const sqlite3_module *, /* Methods for the module */ + void * /* Client data for xCreate/xConnect */ +); + +/* +** Every module implementation uses a subclass of the following structure +** to describe a particular instance of the module. Each subclass will +** be taylored to the specific needs of the module implementation. The +** purpose of this superclass is to define certain fields that are common +** to all module implementations. +** +** Virtual tables methods can set an error message by assigning a +** string obtained from sqlite3_mprintf() to zErrMsg. The method should +** take care that any prior string is freed by a call to sqlite3_free() +** prior to assigning a new string to zErrMsg. After the error message +** is delivered up to the client application, the string will be automatically +** freed by sqlite3_free() and the zErrMsg field will be zeroed. Note +** that sqlite3_mprintf() and sqlite3_free() are used on the zErrMsg field +** since virtual tables are commonly implemented in loadable extensions which +** do not have access to sqlite3MPrintf() or sqlite3Free(). +*/ +struct sqlite3_vtab { + const sqlite3_module *pModule; /* The module for this virtual table */ + int nRef; /* Used internally */ + char *zErrMsg; /* Error message from sqlite3_mprintf() */ + /* Virtual table implementations will typically add additional fields */ +}; + +/* Every module implementation uses a subclass of the following structure +** to describe cursors that point into the virtual table and are used +** to loop through the virtual table. Cursors are created using the +** xOpen method of the module. Each module implementation will define +** the content of a cursor structure to suit its own needs. +** +** This superclass exists in order to define fields of the cursor that +** are common to all implementations. +*/ +struct sqlite3_vtab_cursor { + sqlite3_vtab *pVtab; /* Virtual table of this cursor */ + /* Virtual table implementations will typically add additional fields */ +}; + +/* +** The xCreate and xConnect methods of a module use the following API +** to declare the format (the names and datatypes of the columns) of +** the virtual tables they implement. +*/ +int sqlite3_declare_vtab(sqlite3*, const char *zCreateTable); + +/* +** Virtual tables can provide alternative implementations of functions +** using the xFindFunction method. But global versions of those functions +** must exist in order to be overloaded. +** +** This API makes sure a global version of a function with a particular +** name and number of parameters exists. If no such function exists +** before this API is called, a new function is created. The implementation +** of the new function always causes an exception to be thrown. So +** the new function is not good for anything by itself. Its only +** purpose is to be a place-holder function that can be overloaded +** by virtual tables. +** +** This API should be considered part of the virtual table interface, +** which is experimental and subject to change. +*/ +int sqlite3_overload_function(sqlite3*, const char *zFuncName, int nArg); + +/* +** The interface to the virtual-table mechanism defined above (back up +** to a comment remarkably similar to this one) is currently considered +** to be experimental. The interface might change in incompatible ways. +** If this is a problem for you, do not use the interface at this time. +** +** When the virtual-table mechanism stablizes, we will declare the +** interface fixed, support it indefinitely, and remove this comment. +** +****** EXPERIMENTAL - subject to change without notice ************** +*/ + +/* +** Undo the hack that converts floating point types to integer for +** builds on processors without floating point support. +*/ +#ifdef SQLITE_OMIT_FLOATING_POINT +# undef double +#endif + +#ifdef __cplusplus +} /* End of the 'extern "C"' block */ +#endif +#endif diff --git a/src/dep/src/sqlite/sqlite3ext.h b/src/dep/src/sqlite/sqlite3ext.h new file mode 100644 index 0000000..23b147d --- /dev/null +++ b/src/dep/src/sqlite/sqlite3ext.h @@ -0,0 +1,282 @@ +/* +** 2006 June 7 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This header file defines the SQLite interface for use by +** shared libraries that want to be imported as extensions into +** an SQLite instance. Shared libraries that intend to be loaded +** as extensions by SQLite should #include this file instead of +** sqlite3.h. +** +** @(#) $Id: sqlite3ext.h,v 1.8 2007/01/09 14:37:18 drh Exp $ +*/ +#ifndef _SQLITE3EXT_H_ +#define _SQLITE3EXT_H_ +#include "sqlite3.h" + +typedef struct sqlite3_api_routines sqlite3_api_routines; + +/* +** The following structure hold pointers to all of the SQLite API +** routines. +*/ +struct sqlite3_api_routines { + void * (*aggregate_context)(sqlite3_context*,int nBytes); + int (*aggregate_count)(sqlite3_context*); + int (*bind_blob)(sqlite3_stmt*,int,const void*,int n,void(*)(void*)); + int (*bind_double)(sqlite3_stmt*,int,double); + int (*bind_int)(sqlite3_stmt*,int,int); + int (*bind_int64)(sqlite3_stmt*,int,sqlite_int64); + int (*bind_null)(sqlite3_stmt*,int); + int (*bind_parameter_count)(sqlite3_stmt*); + int (*bind_parameter_index)(sqlite3_stmt*,const char*zName); + const char * (*bind_parameter_name)(sqlite3_stmt*,int); + int (*bind_text)(sqlite3_stmt*,int,const char*,int n,void(*)(void*)); + int (*bind_text16)(sqlite3_stmt*,int,const void*,int,void(*)(void*)); + int (*bind_value)(sqlite3_stmt*,int,const sqlite3_value*); + int (*busy_handler)(sqlite3*,int(*)(void*,int),void*); + int (*busy_timeout)(sqlite3*,int ms); + int (*changes)(sqlite3*); + int (*close)(sqlite3*); + int (*collation_needed)(sqlite3*,void*,void(*)(void*,sqlite3*,int eTextRep,const char*)); + int (*collation_needed16)(sqlite3*,void*,void(*)(void*,sqlite3*,int eTextRep,const void*)); + const void * (*column_blob)(sqlite3_stmt*,int iCol); + int (*column_bytes)(sqlite3_stmt*,int iCol); + int (*column_bytes16)(sqlite3_stmt*,int iCol); + int (*column_count)(sqlite3_stmt*pStmt); + const char * (*column_database_name)(sqlite3_stmt*,int); + const void * (*column_database_name16)(sqlite3_stmt*,int); + const char * (*column_decltype)(sqlite3_stmt*,int i); + const void * (*column_decltype16)(sqlite3_stmt*,int); + double (*column_double)(sqlite3_stmt*,int iCol); + int (*column_int)(sqlite3_stmt*,int iCol); + sqlite_int64 (*column_int64)(sqlite3_stmt*,int iCol); + const char * (*column_name)(sqlite3_stmt*,int); + const void * (*column_name16)(sqlite3_stmt*,int); + const char * (*column_origin_name)(sqlite3_stmt*,int); + const void * (*column_origin_name16)(sqlite3_stmt*,int); + const char * (*column_table_name)(sqlite3_stmt*,int); + const void * (*column_table_name16)(sqlite3_stmt*,int); + const unsigned char * (*column_text)(sqlite3_stmt*,int iCol); + const void * (*column_text16)(sqlite3_stmt*,int iCol); + int (*column_type)(sqlite3_stmt*,int iCol); + sqlite3_value* (*column_value)(sqlite3_stmt*,int iCol); + void * (*commit_hook)(sqlite3*,int(*)(void*),void*); + int (*complete)(const char*sql); + int (*complete16)(const void*sql); + int (*create_collation)(sqlite3*,const char*,int,void*,int(*)(void*,int,const void*,int,const void*)); + int (*create_collation16)(sqlite3*,const char*,int,void*,int(*)(void*,int,const void*,int,const void*)); + int (*create_function)(sqlite3*,const char*,int,int,void*,void (*xFunc)(sqlite3_context*,int,sqlite3_value**),void (*xStep)(sqlite3_context*,int,sqlite3_value**),void (*xFinal)(sqlite3_context*)); + int (*create_function16)(sqlite3*,const void*,int,int,void*,void (*xFunc)(sqlite3_context*,int,sqlite3_value**),void (*xStep)(sqlite3_context*,int,sqlite3_value**),void (*xFinal)(sqlite3_context*)); + int (*create_module)(sqlite3*,const char*,const sqlite3_module*,void*); + int (*data_count)(sqlite3_stmt*pStmt); + sqlite3 * (*db_handle)(sqlite3_stmt*); + int (*declare_vtab)(sqlite3*,const char*); + int (*enable_shared_cache)(int); + int (*errcode)(sqlite3*db); + const char * (*errmsg)(sqlite3*); + const void * (*errmsg16)(sqlite3*); + int (*exec)(sqlite3*,const char*,sqlite3_callback,void*,char**); + int (*expired)(sqlite3_stmt*); + int (*finalize)(sqlite3_stmt*pStmt); + void (*free)(void*); + void (*free_table)(char**result); + int (*get_autocommit)(sqlite3*); + void * (*get_auxdata)(sqlite3_context*,int); + int (*get_table)(sqlite3*,const char*,char***,int*,int*,char**); + int (*global_recover)(void); + void (*interruptx)(sqlite3*); + sqlite_int64 (*last_insert_rowid)(sqlite3*); + const char * (*libversion)(void); + int (*libversion_number)(void); + void *(*malloc)(int); + char * (*mprintf)(const char*,...); + int (*open)(const char*,sqlite3**); + int (*open16)(const void*,sqlite3**); + int (*prepare)(sqlite3*,const char*,int,sqlite3_stmt**,const char**); + int (*prepare16)(sqlite3*,const void*,int,sqlite3_stmt**,const void**); + void * (*profile)(sqlite3*,void(*)(void*,const char*,sqlite_uint64),void*); + void (*progress_handler)(sqlite3*,int,int(*)(void*),void*); + void *(*realloc)(void*,int); + int (*reset)(sqlite3_stmt*pStmt); + void (*result_blob)(sqlite3_context*,const void*,int,void(*)(void*)); + void (*result_double)(sqlite3_context*,double); + void (*result_error)(sqlite3_context*,const char*,int); + void (*result_error16)(sqlite3_context*,const void*,int); + void (*result_int)(sqlite3_context*,int); + void (*result_int64)(sqlite3_context*,sqlite_int64); + void (*result_null)(sqlite3_context*); + void (*result_text)(sqlite3_context*,const char*,int,void(*)(void*)); + void (*result_text16)(sqlite3_context*,const void*,int,void(*)(void*)); + void (*result_text16be)(sqlite3_context*,const void*,int,void(*)(void*)); + void (*result_text16le)(sqlite3_context*,const void*,int,void(*)(void*)); + void (*result_value)(sqlite3_context*,sqlite3_value*); + void * (*rollback_hook)(sqlite3*,void(*)(void*),void*); + int (*set_authorizer)(sqlite3*,int(*)(void*,int,const char*,const char*,const char*,const char*),void*); + void (*set_auxdata)(sqlite3_context*,int,void*,void (*)(void*)); + char * (*snprintf)(int,char*,const char*,...); + int (*step)(sqlite3_stmt*); + int (*table_column_metadata)(sqlite3*,const char*,const char*,const char*,char const**,char const**,int*,int*,int*); + void (*thread_cleanup)(void); + int (*total_changes)(sqlite3*); + void * (*trace)(sqlite3*,void(*xTrace)(void*,const char*),void*); + int (*transfer_bindings)(sqlite3_stmt*,sqlite3_stmt*); + void * (*update_hook)(sqlite3*,void(*)(void*,int ,char const*,char const*,sqlite_int64),void*); + void * (*user_data)(sqlite3_context*); + const void * (*value_blob)(sqlite3_value*); + int (*value_bytes)(sqlite3_value*); + int (*value_bytes16)(sqlite3_value*); + double (*value_double)(sqlite3_value*); + int (*value_int)(sqlite3_value*); + sqlite_int64 (*value_int64)(sqlite3_value*); + int (*value_numeric_type)(sqlite3_value*); + const unsigned char * (*value_text)(sqlite3_value*); + const void * (*value_text16)(sqlite3_value*); + const void * (*value_text16be)(sqlite3_value*); + const void * (*value_text16le)(sqlite3_value*); + int (*value_type)(sqlite3_value*); + char * (*vmprintf)(const char*,va_list); + int (*overload_function)(sqlite3*, const char *zFuncName, int nArg); +}; + +/* +** The following macros redefine the API routines so that they are +** redirected throught the global sqlite3_api structure. +** +** This header file is also used by the loadext.c source file +** (part of the main SQLite library - not an extension) so that +** it can get access to the sqlite3_api_routines structure +** definition. But the main library does not want to redefine +** the API. So the redefinition macros are only valid if the +** SQLITE_CORE macros is undefined. +*/ +#ifndef SQLITE_CORE +#define sqlite3_aggregate_context sqlite3_api->aggregate_context +#define sqlite3_aggregate_count sqlite3_api->aggregate_count +#define sqlite3_bind_blob sqlite3_api->bind_blob +#define sqlite3_bind_double sqlite3_api->bind_double +#define sqlite3_bind_int sqlite3_api->bind_int +#define sqlite3_bind_int64 sqlite3_api->bind_int64 +#define sqlite3_bind_null sqlite3_api->bind_null +#define sqlite3_bind_parameter_count sqlite3_api->bind_parameter_count +#define sqlite3_bind_parameter_index sqlite3_api->bind_parameter_index +#define sqlite3_bind_parameter_name sqlite3_api->bind_parameter_name +#define sqlite3_bind_text sqlite3_api->bind_text +#define sqlite3_bind_text16 sqlite3_api->bind_text16 +#define sqlite3_bind_value sqlite3_api->bind_value +#define sqlite3_busy_handler sqlite3_api->busy_handler +#define sqlite3_busy_timeout sqlite3_api->busy_timeout +#define sqlite3_changes sqlite3_api->changes +#define sqlite3_close sqlite3_api->close +#define sqlite3_collation_needed sqlite3_api->collation_needed +#define sqlite3_collation_needed16 sqlite3_api->collation_needed16 +#define sqlite3_column_blob sqlite3_api->column_blob +#define sqlite3_column_bytes sqlite3_api->column_bytes +#define sqlite3_column_bytes16 sqlite3_api->column_bytes16 +#define sqlite3_column_count sqlite3_api->column_count +#define sqlite3_column_database_name sqlite3_api->column_database_name +#define sqlite3_column_database_name16 sqlite3_api->column_database_name16 +#define sqlite3_column_decltype sqlite3_api->column_decltype +#define sqlite3_column_decltype16 sqlite3_api->column_decltype16 +#define sqlite3_column_double sqlite3_api->column_double +#define sqlite3_column_int sqlite3_api->column_int +#define sqlite3_column_int64 sqlite3_api->column_int64 +#define sqlite3_column_name sqlite3_api->column_name +#define sqlite3_column_name16 sqlite3_api->column_name16 +#define sqlite3_column_origin_name sqlite3_api->column_origin_name +#define sqlite3_column_origin_name16 sqlite3_api->column_origin_name16 +#define sqlite3_column_table_name sqlite3_api->column_table_name +#define sqlite3_column_table_name16 sqlite3_api->column_table_name16 +#define sqlite3_column_text sqlite3_api->column_text +#define sqlite3_column_text16 sqlite3_api->column_text16 +#define sqlite3_column_type sqlite3_api->column_type +#define sqlite3_column_value sqlite3_api->column_value +#define sqlite3_commit_hook sqlite3_api->commit_hook +#define sqlite3_complete sqlite3_api->complete +#define sqlite3_complete16 sqlite3_api->complete16 +#define sqlite3_create_collation sqlite3_api->create_collation +#define sqlite3_create_collation16 sqlite3_api->create_collation16 +#define sqlite3_create_function sqlite3_api->create_function +#define sqlite3_create_function16 sqlite3_api->create_function16 +#define sqlite3_create_module sqlite3_api->create_module +#define sqlite3_data_count sqlite3_api->data_count +#define sqlite3_db_handle sqlite3_api->db_handle +#define sqlite3_declare_vtab sqlite3_api->declare_vtab +#define sqlite3_enable_shared_cache sqlite3_api->enable_shared_cache +#define sqlite3_errcode sqlite3_api->errcode +#define sqlite3_errmsg sqlite3_api->errmsg +#define sqlite3_errmsg16 sqlite3_api->errmsg16 +#define sqlite3_exec sqlite3_api->exec +#define sqlite3_expired sqlite3_api->expired +#define sqlite3_finalize sqlite3_api->finalize +#define sqlite3_free sqlite3_api->free +#define sqlite3_free_table sqlite3_api->free_table +#define sqlite3_get_autocommit sqlite3_api->get_autocommit +#define sqlite3_get_auxdata sqlite3_api->get_auxdata +#define sqlite3_get_table sqlite3_api->get_table +#define sqlite3_global_recover sqlite3_api->global_recover +#define sqlite3_interrupt sqlite3_api->interruptx +#define sqlite3_last_insert_rowid sqlite3_api->last_insert_rowid +#define sqlite3_libversion sqlite3_api->libversion +#define sqlite3_libversion_number sqlite3_api->libversion_number +#define sqlite3_malloc sqlite3_api->malloc +#define sqlite3_mprintf sqlite3_api->mprintf +#define sqlite3_open sqlite3_api->open +#define sqlite3_open16 sqlite3_api->open16 +#define sqlite3_prepare sqlite3_api->prepare +#define sqlite3_prepare16 sqlite3_api->prepare16 +#define sqlite3_profile sqlite3_api->profile +#define sqlite3_progress_handler sqlite3_api->progress_handler +#define sqlite3_realloc sqlite3_api->realloc +#define sqlite3_reset sqlite3_api->reset +#define sqlite3_result_blob sqlite3_api->result_blob +#define sqlite3_result_double sqlite3_api->result_double +#define sqlite3_result_error sqlite3_api->result_error +#define sqlite3_result_error16 sqlite3_api->result_error16 +#define sqlite3_result_int sqlite3_api->result_int +#define sqlite3_result_int64 sqlite3_api->result_int64 +#define sqlite3_result_null sqlite3_api->result_null +#define sqlite3_result_text sqlite3_api->result_text +#define sqlite3_result_text16 sqlite3_api->result_text16 +#define sqlite3_result_text16be sqlite3_api->result_text16be +#define sqlite3_result_text16le sqlite3_api->result_text16le +#define sqlite3_result_value sqlite3_api->result_value +#define sqlite3_rollback_hook sqlite3_api->rollback_hook +#define sqlite3_set_authorizer sqlite3_api->set_authorizer +#define sqlite3_set_auxdata sqlite3_api->set_auxdata +#define sqlite3_snprintf sqlite3_api->snprintf +#define sqlite3_step sqlite3_api->step +#define sqlite3_table_column_metadata sqlite3_api->table_column_metadata +#define sqlite3_thread_cleanup sqlite3_api->thread_cleanup +#define sqlite3_total_changes sqlite3_api->total_changes +#define sqlite3_trace sqlite3_api->trace +#define sqlite3_transfer_bindings sqlite3_api->transfer_bindings +#define sqlite3_update_hook sqlite3_api->update_hook +#define sqlite3_user_data sqlite3_api->user_data +#define sqlite3_value_blob sqlite3_api->value_blob +#define sqlite3_value_bytes sqlite3_api->value_bytes +#define sqlite3_value_bytes16 sqlite3_api->value_bytes16 +#define sqlite3_value_double sqlite3_api->value_double +#define sqlite3_value_int sqlite3_api->value_int +#define sqlite3_value_int64 sqlite3_api->value_int64 +#define sqlite3_value_numeric_type sqlite3_api->value_numeric_type +#define sqlite3_value_text sqlite3_api->value_text +#define sqlite3_value_text16 sqlite3_api->value_text16 +#define sqlite3_value_text16be sqlite3_api->value_text16be +#define sqlite3_value_text16le sqlite3_api->value_text16le +#define sqlite3_value_type sqlite3_api->value_type +#define sqlite3_vmprintf sqlite3_api->vmprintf +#define sqlite3_overload_function sqlite3_api->overload_function +#endif /* SQLITE_CORE */ + +#define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api; +#define SQLITE_EXTENSION_INIT2(v) sqlite3_api = v; + +#endif /* _SQLITE3EXT_H_ */ diff --git a/src/dep/src/sqlite/sqliteInt.h b/src/dep/src/sqlite/sqliteInt.h new file mode 100644 index 0000000..7a3002d --- /dev/null +++ b/src/dep/src/sqlite/sqliteInt.h @@ -0,0 +1,1887 @@ +/* +** 2001 September 15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** Internal interface definitions for SQLite. +** +** @(#) $Id: sqliteInt.h,v 1.532 2006/12/21 01:29:23 drh Exp $ +*/ +#ifndef _SQLITEINT_H_ +#define _SQLITEINT_H_ + +/* +** Extra interface definitions for those who need them +*/ +#ifdef SQLITE_EXTRA +# include "sqliteExtra.h" +#endif + +/* +** Many people are failing to set -DNDEBUG=1 when compiling SQLite. +** Setting NDEBUG makes the code smaller and run faster. So the following +** lines are added to automatically set NDEBUG unless the -DSQLITE_DEBUG=1 +** option is set. Thus NDEBUG becomes an opt-in rather than an opt-out +** feature. +*/ +#if !defined(NDEBUG) && !defined(SQLITE_DEBUG) +# define NDEBUG 1 +#endif + +/* +** These #defines should enable >2GB file support on Posix if the +** underlying operating system supports it. If the OS lacks +** large file support, or if the OS is windows, these should be no-ops. +** +** Large file support can be disabled using the -DSQLITE_DISABLE_LFS switch +** on the compiler command line. This is necessary if you are compiling +** on a recent machine (ex: RedHat 7.2) but you want your code to work +** on an older machine (ex: RedHat 6.0). If you compile on RedHat 7.2 +** without this option, LFS is enable. But LFS does not exist in the kernel +** in RedHat 6.0, so the code won't work. Hence, for maximum binary +** portability you should omit LFS. +** +** Similar is true for MacOS. LFS is only supported on MacOS 9 and later. +*/ +#ifndef SQLITE_DISABLE_LFS +# define _LARGE_FILE 1 +# ifndef _FILE_OFFSET_BITS +# define _FILE_OFFSET_BITS 64 +# endif +# define _LARGEFILE_SOURCE 1 +#endif + +#include "sqlite3.h" +#include "hash.h" +#include "parse.h" +#include +#include +#include +#include +#include + +/* +** If compiling for a processor that lacks floating point support, +** substitute integer for floating-point +*/ +#ifdef SQLITE_OMIT_FLOATING_POINT +# define double sqlite_int64 +# define LONGDOUBLE_TYPE sqlite_int64 +# ifndef SQLITE_BIG_DBL +# define SQLITE_BIG_DBL (0x7fffffffffffffff) +# endif +# define SQLITE_OMIT_DATETIME_FUNCS 1 +# define SQLITE_OMIT_TRACE 1 +#endif +#ifndef SQLITE_BIG_DBL +# define SQLITE_BIG_DBL (1e99) +#endif + +/* +** The maximum number of in-memory pages to use for the main database +** table and for temporary tables. Internally, the MAX_PAGES and +** TEMP_PAGES macros are used. To override the default values at +** compilation time, the SQLITE_DEFAULT_CACHE_SIZE and +** SQLITE_DEFAULT_TEMP_CACHE_SIZE macros should be set. +*/ +#ifdef SQLITE_DEFAULT_CACHE_SIZE +# define MAX_PAGES SQLITE_DEFAULT_CACHE_SIZE +#else +# define MAX_PAGES 2000 +#endif +#ifdef SQLITE_DEFAULT_TEMP_CACHE_SIZE +# define TEMP_PAGES SQLITE_DEFAULT_TEMP_CACHE_SIZE +#else +# define TEMP_PAGES 500 +#endif + +/* +** OMIT_TEMPDB is set to 1 if SQLITE_OMIT_TEMPDB is defined, or 0 +** afterward. Having this macro allows us to cause the C compiler +** to omit code used by TEMP tables without messy #ifndef statements. +*/ +#ifdef SQLITE_OMIT_TEMPDB +#define OMIT_TEMPDB 1 +#else +#define OMIT_TEMPDB 0 +#endif + +/* +** If the following macro is set to 1, then NULL values are considered +** distinct when determining whether or not two entries are the same +** in a UNIQUE index. This is the way PostgreSQL, Oracle, DB2, MySQL, +** OCELOT, and Firebird all work. The SQL92 spec explicitly says this +** is the way things are suppose to work. +** +** If the following macro is set to 0, the NULLs are indistinct for +** a UNIQUE index. In this mode, you can only have a single NULL entry +** for a column declared UNIQUE. This is the way Informix and SQL Server +** work. +*/ +#define NULL_DISTINCT_FOR_UNIQUE 1 + +/* +** The maximum number of attached databases. This must be at least 2 +** in order to support the main database file (0) and the file used to +** hold temporary tables (1). And it must be less than 32 because +** we use a bitmask of databases with a u32 in places (for example +** the Parse.cookieMask field). +*/ +#define MAX_ATTACHED 10 + +/* +** The maximum value of a ?nnn wildcard that the parser will accept. +*/ +#define SQLITE_MAX_VARIABLE_NUMBER 999 + +/* +** The "file format" number is an integer that is incremented whenever +** the VDBE-level file format changes. The following macros define the +** the default file format for new databases and the maximum file format +** that the library can read. +*/ +#define SQLITE_MAX_FILE_FORMAT 4 +#ifndef SQLITE_DEFAULT_FILE_FORMAT +# define SQLITE_DEFAULT_FILE_FORMAT 1 +#endif + +/* +** Provide a default value for TEMP_STORE in case it is not specified +** on the command-line +*/ +#ifndef TEMP_STORE +# define TEMP_STORE 1 +#endif + +/* +** GCC does not define the offsetof() macro so we'll have to do it +** ourselves. +*/ +#ifndef offsetof +#define offsetof(STRUCTURE,FIELD) ((int)((char*)&((STRUCTURE*)0)->FIELD)) +#endif + +/* +** Check to see if this machine uses EBCDIC. (Yes, believe it or +** not, there are still machines out there that use EBCDIC.) +*/ +#if 'A' == '\301' +# define SQLITE_EBCDIC 1 +#else +# define SQLITE_ASCII 1 +#endif + +/* +** Integers of known sizes. These typedefs might change for architectures +** where the sizes very. Preprocessor macros are available so that the +** types can be conveniently redefined at compile-type. Like this: +** +** cc '-DUINTPTR_TYPE=long long int' ... +*/ +#ifndef UINT32_TYPE +# define UINT32_TYPE unsigned int +#endif +#ifndef UINT16_TYPE +# define UINT16_TYPE unsigned short int +#endif +#ifndef INT16_TYPE +# define INT16_TYPE short int +#endif +#ifndef UINT8_TYPE +# define UINT8_TYPE unsigned char +#endif +#ifndef INT8_TYPE +# define INT8_TYPE signed char +#endif +#ifndef LONGDOUBLE_TYPE +# define LONGDOUBLE_TYPE long double +#endif +typedef sqlite_int64 i64; /* 8-byte signed integer */ +typedef sqlite_uint64 u64; /* 8-byte unsigned integer */ +typedef UINT32_TYPE u32; /* 4-byte unsigned integer */ +typedef UINT16_TYPE u16; /* 2-byte unsigned integer */ +typedef INT16_TYPE i16; /* 2-byte signed integer */ +typedef UINT8_TYPE u8; /* 1-byte unsigned integer */ +typedef UINT8_TYPE i8; /* 1-byte signed integer */ + +/* +** Macros to determine whether the machine is big or little endian, +** evaluated at runtime. +*/ +extern const int sqlite3one; +#define SQLITE_BIGENDIAN (*(char *)(&sqlite3one)==0) +#define SQLITE_LITTLEENDIAN (*(char *)(&sqlite3one)==1) + +/* +** An instance of the following structure is used to store the busy-handler +** callback for a given sqlite handle. +** +** The sqlite.busyHandler member of the sqlite struct contains the busy +** callback for the database handle. Each pager opened via the sqlite +** handle is passed a pointer to sqlite.busyHandler. The busy-handler +** callback is currently invoked only from within pager.c. +*/ +typedef struct BusyHandler BusyHandler; +struct BusyHandler { + int (*xFunc)(void *,int); /* The busy callback */ + void *pArg; /* First arg to busy callback */ + int nBusy; /* Incremented with each busy call */ +}; + +/* +** Defer sourcing vdbe.h and btree.h until after the "u8" and +** "BusyHandler typedefs. +*/ +#include "vdbe.h" +#include "btree.h" +#include "pager.h" + +#ifdef SQLITE_MEMDEBUG +/* +** The following global variables are used for testing and debugging +** only. They only work if SQLITE_MEMDEBUG is defined. +*/ +extern int sqlite3_nMalloc; /* Number of sqliteMalloc() calls */ +extern int sqlite3_nFree; /* Number of sqliteFree() calls */ +extern int sqlite3_iMallocFail; /* Fail sqliteMalloc() after this many calls */ +extern int sqlite3_iMallocReset; /* Set iMallocFail to this when it reaches 0 */ + +extern void *sqlite3_pFirst; /* Pointer to linked list of allocations */ +extern int sqlite3_nMaxAlloc; /* High water mark of ThreadData.nAlloc */ +extern int sqlite3_mallocDisallowed; /* assert() in sqlite3Malloc() if set */ +extern int sqlite3_isFail; /* True if all malloc calls should fail */ +extern const char *sqlite3_zFile; /* Filename to associate debug info with */ +extern int sqlite3_iLine; /* Line number for debug info */ + +#define ENTER_MALLOC (sqlite3_zFile = __FILE__, sqlite3_iLine = __LINE__) +#define sqliteMalloc(x) (ENTER_MALLOC, sqlite3Malloc(x,1)) +#define sqliteMallocRaw(x) (ENTER_MALLOC, sqlite3MallocRaw(x,1)) +#define sqliteRealloc(x,y) (ENTER_MALLOC, sqlite3Realloc(x,y)) +#define sqliteStrDup(x) (ENTER_MALLOC, sqlite3StrDup(x)) +#define sqliteStrNDup(x,y) (ENTER_MALLOC, sqlite3StrNDup(x,y)) +#define sqliteReallocOrFree(x,y) (ENTER_MALLOC, sqlite3ReallocOrFree(x,y)) + +#else + +#define ENTER_MALLOC 0 +#define sqliteMalloc(x) sqlite3Malloc(x,1) +#define sqliteMallocRaw(x) sqlite3MallocRaw(x,1) +#define sqliteRealloc(x,y) sqlite3Realloc(x,y) +#define sqliteStrDup(x) sqlite3StrDup(x) +#define sqliteStrNDup(x,y) sqlite3StrNDup(x,y) +#define sqliteReallocOrFree(x,y) sqlite3ReallocOrFree(x,y) + +#endif + +#define sqliteFree(x) sqlite3FreeX(x) +#define sqliteAllocSize(x) sqlite3AllocSize(x) + + +/* +** An instance of this structure might be allocated to store information +** specific to a single thread. +*/ +struct ThreadData { + int dummy; /* So that this structure is never empty */ + +#ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT + int nSoftHeapLimit; /* Suggested max mem allocation. No limit if <0 */ + int nAlloc; /* Number of bytes currently allocated */ + Pager *pPager; /* Linked list of all pagers in this thread */ +#endif + +#ifndef SQLITE_OMIT_SHARED_CACHE + u8 useSharedData; /* True if shared pagers and schemas are enabled */ + BtShared *pBtree; /* Linked list of all currently open BTrees */ +#endif +}; + +/* +** Name of the master database table. The master database table +** is a special table that holds the names and attributes of all +** user tables and indices. +*/ +#define MASTER_NAME "sqlite_master" +#define TEMP_MASTER_NAME "sqlite_temp_master" + +/* +** The root-page of the master database table. +*/ +#define MASTER_ROOT 1 + +/* +** The name of the schema table. +*/ +#define SCHEMA_TABLE(x) ((!OMIT_TEMPDB)&&(x==1)?TEMP_MASTER_NAME:MASTER_NAME) + +/* +** A convenience macro that returns the number of elements in +** an array. +*/ +#define ArraySize(X) (sizeof(X)/sizeof(X[0])) + +/* +** Forward references to structures +*/ +typedef struct AggInfo AggInfo; +typedef struct AuthContext AuthContext; +typedef struct CollSeq CollSeq; +typedef struct Column Column; +typedef struct Db Db; +typedef struct Schema Schema; +typedef struct Expr Expr; +typedef struct ExprList ExprList; +typedef struct FKey FKey; +typedef struct FuncDef FuncDef; +typedef struct IdList IdList; +typedef struct Index Index; +typedef struct KeyClass KeyClass; +typedef struct KeyInfo KeyInfo; +typedef struct Module Module; +typedef struct NameContext NameContext; +typedef struct Parse Parse; +typedef struct Select Select; +typedef struct SrcList SrcList; +typedef struct ThreadData ThreadData; +typedef struct Table Table; +typedef struct TableLock TableLock; +typedef struct Token Token; +typedef struct TriggerStack TriggerStack; +typedef struct TriggerStep TriggerStep; +typedef struct Trigger Trigger; +typedef struct WhereInfo WhereInfo; +typedef struct WhereLevel WhereLevel; + +/* +** Each database file to be accessed by the system is an instance +** of the following structure. There are normally two of these structures +** in the sqlite.aDb[] array. aDb[0] is the main database file and +** aDb[1] is the database file used to hold temporary tables. Additional +** databases may be attached. +*/ +struct Db { + char *zName; /* Name of this database */ + Btree *pBt; /* The B*Tree structure for this database file */ + u8 inTrans; /* 0: not writable. 1: Transaction. 2: Checkpoint */ + u8 safety_level; /* How aggressive at synching data to disk */ + void *pAux; /* Auxiliary data. Usually NULL */ + void (*xFreeAux)(void*); /* Routine to free pAux */ + Schema *pSchema; /* Pointer to database schema (possibly shared) */ +}; + +/* +** An instance of the following structure stores a database schema. +*/ +struct Schema { + int schema_cookie; /* Database schema version number for this file */ + Hash tblHash; /* All tables indexed by name */ + Hash idxHash; /* All (named) indices indexed by name */ + Hash trigHash; /* All triggers indexed by name */ + Hash aFKey; /* Foreign keys indexed by to-table */ + Table *pSeqTab; /* The sqlite_sequence table used by AUTOINCREMENT */ + u8 file_format; /* Schema format version for this file */ + u8 enc; /* Text encoding used by this database */ + u16 flags; /* Flags associated with this schema */ + int cache_size; /* Number of pages to use in the cache */ +}; + +/* +** These macros can be used to test, set, or clear bits in the +** Db.flags field. +*/ +#define DbHasProperty(D,I,P) (((D)->aDb[I].pSchema->flags&(P))==(P)) +#define DbHasAnyProperty(D,I,P) (((D)->aDb[I].pSchema->flags&(P))!=0) +#define DbSetProperty(D,I,P) (D)->aDb[I].pSchema->flags|=(P) +#define DbClearProperty(D,I,P) (D)->aDb[I].pSchema->flags&=~(P) + +/* +** Allowed values for the DB.flags field. +** +** The DB_SchemaLoaded flag is set after the database schema has been +** read into internal hash tables. +** +** DB_UnresetViews means that one or more views have column names that +** have been filled out. If the schema changes, these column names might +** changes and so the view will need to be reset. +*/ +#define DB_SchemaLoaded 0x0001 /* The schema has been loaded */ +#define DB_UnresetViews 0x0002 /* Some views have defined column names */ +#define DB_Empty 0x0004 /* The file is empty (length 0 bytes) */ + +#define SQLITE_UTF16NATIVE (SQLITE_BIGENDIAN?SQLITE_UTF16BE:SQLITE_UTF16LE) + +/* +** Each database is an instance of the following structure. +** +** The sqlite.lastRowid records the last insert rowid generated by an +** insert statement. Inserts on views do not affect its value. Each +** trigger has its own context, so that lastRowid can be updated inside +** triggers as usual. The previous value will be restored once the trigger +** exits. Upon entering a before or instead of trigger, lastRowid is no +** longer (since after version 2.8.12) reset to -1. +** +** The sqlite.nChange does not count changes within triggers and keeps no +** context. It is reset at start of sqlite3_exec. +** The sqlite.lsChange represents the number of changes made by the last +** insert, update, or delete statement. It remains constant throughout the +** length of a statement and is then updated by OP_SetCounts. It keeps a +** context stack just like lastRowid so that the count of changes +** within a trigger is not seen outside the trigger. Changes to views do not +** affect the value of lsChange. +** The sqlite.csChange keeps track of the number of current changes (since +** the last statement) and is used to update sqlite_lsChange. +** +** The member variables sqlite.errCode, sqlite.zErrMsg and sqlite.zErrMsg16 +** store the most recent error code and, if applicable, string. The +** internal function sqlite3Error() is used to set these variables +** consistently. +*/ +struct sqlite3 { + int nDb; /* Number of backends currently in use */ + Db *aDb; /* All backends */ + int flags; /* Miscellanous flags. See below */ + int errCode; /* Most recent error code (SQLITE_*) */ + int errMask; /* & result codes with this before returning */ + u8 autoCommit; /* The auto-commit flag. */ + u8 temp_store; /* 1: file 2: memory 0: default */ + int nTable; /* Number of tables in the database */ + CollSeq *pDfltColl; /* The default collating sequence (BINARY) */ + i64 lastRowid; /* ROWID of most recent insert (see above) */ + i64 priorNewRowid; /* Last randomly generated ROWID */ + int magic; /* Magic number for detect library misuse */ + int nChange; /* Value returned by sqlite3_changes() */ + int nTotalChange; /* Value returned by sqlite3_total_changes() */ + struct sqlite3InitInfo { /* Information used during initialization */ + int iDb; /* When back is being initialized */ + int newTnum; /* Rootpage of table being initialized */ + u8 busy; /* TRUE if currently initializing */ + } init; + int nExtension; /* Number of loaded extensions */ + void **aExtension; /* Array of shared libraray handles */ + struct Vdbe *pVdbe; /* List of active virtual machines */ + int activeVdbeCnt; /* Number of vdbes currently executing */ + void (*xTrace)(void*,const char*); /* Trace function */ + void *pTraceArg; /* Argument to the trace function */ + void (*xProfile)(void*,const char*,u64); /* Profiling function */ + void *pProfileArg; /* Argument to profile function */ + void *pCommitArg; /* Argument to xCommitCallback() */ + int (*xCommitCallback)(void*); /* Invoked at every commit. */ + void *pRollbackArg; /* Argument to xRollbackCallback() */ + void (*xRollbackCallback)(void*); /* Invoked at every commit. */ + void *pUpdateArg; + void (*xUpdateCallback)(void*,int, const char*,const char*,sqlite_int64); + void(*xCollNeeded)(void*,sqlite3*,int eTextRep,const char*); + void(*xCollNeeded16)(void*,sqlite3*,int eTextRep,const void*); + void *pCollNeededArg; + sqlite3_value *pErr; /* Most recent error message */ + char *zErrMsg; /* Most recent error message (UTF-8 encoded) */ + char *zErrMsg16; /* Most recent error message (UTF-16 encoded) */ + union { + int isInterrupted; /* True if sqlite3_interrupt has been called */ + double notUsed1; /* Spacer */ + } u1; +#ifndef SQLITE_OMIT_AUTHORIZATION + int (*xAuth)(void*,int,const char*,const char*,const char*,const char*); + /* Access authorization function */ + void *pAuthArg; /* 1st argument to the access auth function */ +#endif +#ifndef SQLITE_OMIT_PROGRESS_CALLBACK + int (*xProgress)(void *); /* The progress callback */ + void *pProgressArg; /* Argument to the progress callback */ + int nProgressOps; /* Number of opcodes for progress callback */ +#endif +#ifndef SQLITE_OMIT_VIRTUALTABLE + Hash aModule; /* populated by sqlite3_create_module() */ + Table *pVTab; /* vtab with active Connect/Create method */ + sqlite3_vtab **aVTrans; /* Virtual tables with open transactions */ + int nVTrans; /* Allocated size of aVTrans */ +#endif + Hash aFunc; /* All functions that can be in SQL exprs */ + Hash aCollSeq; /* All collating sequences */ + BusyHandler busyHandler; /* Busy callback */ + int busyTimeout; /* Busy handler timeout, in msec */ + Db aDbStatic[2]; /* Static space for the 2 default backends */ +#ifdef SQLITE_SSE + sqlite3_stmt *pFetch; /* Used by SSE to fetch stored statements */ +#endif +}; + +/* +** A macro to discover the encoding of a database. +*/ +#define ENC(db) ((db)->aDb[0].pSchema->enc) + +/* +** Possible values for the sqlite.flags and or Db.flags fields. +** +** On sqlite.flags, the SQLITE_InTrans value means that we have +** executed a BEGIN. On Db.flags, SQLITE_InTrans means a statement +** transaction is active on that particular database file. +*/ +#define SQLITE_VdbeTrace 0x00000001 /* True to trace VDBE execution */ +#define SQLITE_InTrans 0x00000008 /* True if in a transaction */ +#define SQLITE_InternChanges 0x00000010 /* Uncommitted Hash table changes */ +#define SQLITE_FullColNames 0x00000020 /* Show full column names on SELECT */ +#define SQLITE_ShortColNames 0x00000040 /* Show short columns names */ +#define SQLITE_CountRows 0x00000080 /* Count rows changed by INSERT, */ + /* DELETE, or UPDATE and return */ + /* the count using a callback. */ +#define SQLITE_NullCallback 0x00000100 /* Invoke the callback once if the */ + /* result set is empty */ +#define SQLITE_SqlTrace 0x00000200 /* Debug print SQL as it executes */ +#define SQLITE_VdbeListing 0x00000400 /* Debug listings of VDBE programs */ +#define SQLITE_WriteSchema 0x00000800 /* OK to update SQLITE_MASTER */ +#define SQLITE_NoReadlock 0x00001000 /* Readlocks are omitted when + ** accessing read-only databases */ +#define SQLITE_IgnoreChecks 0x00002000 /* Do not enforce check constraints */ +#define SQLITE_ReadUncommitted 0x00004000 /* For shared-cache mode */ +#define SQLITE_LegacyFileFmt 0x00008000 /* Create new databases in format 1 */ +#define SQLITE_FullFSync 0x00010000 /* Use full fsync on the backend */ +#define SQLITE_LoadExtension 0x00020000 /* Enable load_extension */ + +/* +** Possible values for the sqlite.magic field. +** The numbers are obtained at random and have no special meaning, other +** than being distinct from one another. +*/ +#define SQLITE_MAGIC_OPEN 0xa029a697 /* Database is open */ +#define SQLITE_MAGIC_CLOSED 0x9f3c2d33 /* Database is closed */ +#define SQLITE_MAGIC_BUSY 0xf03b7906 /* Database currently in use */ +#define SQLITE_MAGIC_ERROR 0xb5357930 /* An SQLITE_MISUSE error occurred */ + +/* +** Each SQL function is defined by an instance of the following +** structure. A pointer to this structure is stored in the sqlite.aFunc +** hash table. When multiple functions have the same name, the hash table +** points to a linked list of these structures. +*/ +struct FuncDef { + i16 nArg; /* Number of arguments. -1 means unlimited */ + u8 iPrefEnc; /* Preferred text encoding (SQLITE_UTF8, 16LE, 16BE) */ + u8 needCollSeq; /* True if sqlite3GetFuncCollSeq() might be called */ + u8 flags; /* Some combination of SQLITE_FUNC_* */ + void *pUserData; /* User data parameter */ + FuncDef *pNext; /* Next function with same name */ + void (*xFunc)(sqlite3_context*,int,sqlite3_value**); /* Regular function */ + void (*xStep)(sqlite3_context*,int,sqlite3_value**); /* Aggregate step */ + void (*xFinalize)(sqlite3_context*); /* Aggregate finializer */ + char zName[1]; /* SQL name of the function. MUST BE LAST */ +}; + +/* +** Each SQLite module (virtual table definition) is defined by an +** instance of the following structure, stored in the sqlite3.aModule +** hash table. +*/ +struct Module { + const sqlite3_module *pModule; /* Callback pointers */ + const char *zName; /* Name passed to create_module() */ + void *pAux; /* pAux passed to create_module() */ +}; + +/* +** Possible values for FuncDef.flags +*/ +#define SQLITE_FUNC_LIKE 0x01 /* Candidate for the LIKE optimization */ +#define SQLITE_FUNC_CASE 0x02 /* Case-sensitive LIKE-type function */ +#define SQLITE_FUNC_EPHEM 0x04 /* Ephermeral. Delete with VDBE */ + +/* +** information about each column of an SQL table is held in an instance +** of this structure. +*/ +struct Column { + char *zName; /* Name of this column */ + Expr *pDflt; /* Default value of this column */ + char *zType; /* Data type for this column */ + char *zColl; /* Collating sequence. If NULL, use the default */ + u8 notNull; /* True if there is a NOT NULL constraint */ + u8 isPrimKey; /* True if this column is part of the PRIMARY KEY */ + char affinity; /* One of the SQLITE_AFF_... values */ +}; + +/* +** A "Collating Sequence" is defined by an instance of the following +** structure. Conceptually, a collating sequence consists of a name and +** a comparison routine that defines the order of that sequence. +** +** There may two seperate implementations of the collation function, one +** that processes text in UTF-8 encoding (CollSeq.xCmp) and another that +** processes text encoded in UTF-16 (CollSeq.xCmp16), using the machine +** native byte order. When a collation sequence is invoked, SQLite selects +** the version that will require the least expensive encoding +** translations, if any. +** +** The CollSeq.pUser member variable is an extra parameter that passed in +** as the first argument to the UTF-8 comparison function, xCmp. +** CollSeq.pUser16 is the equivalent for the UTF-16 comparison function, +** xCmp16. +** +** If both CollSeq.xCmp and CollSeq.xCmp16 are NULL, it means that the +** collating sequence is undefined. Indices built on an undefined +** collating sequence may not be read or written. +*/ +struct CollSeq { + char *zName; /* Name of the collating sequence, UTF-8 encoded */ + u8 enc; /* Text encoding handled by xCmp() */ + u8 type; /* One of the SQLITE_COLL_... values below */ + void *pUser; /* First argument to xCmp() */ + int (*xCmp)(void*,int, const void*, int, const void*); +}; + +/* +** Allowed values of CollSeq flags: +*/ +#define SQLITE_COLL_BINARY 1 /* The default memcmp() collating sequence */ +#define SQLITE_COLL_NOCASE 2 /* The built-in NOCASE collating sequence */ +#define SQLITE_COLL_REVERSE 3 /* The built-in REVERSE collating sequence */ +#define SQLITE_COLL_USER 0 /* Any other user-defined collating sequence */ + +/* +** A sort order can be either ASC or DESC. +*/ +#define SQLITE_SO_ASC 0 /* Sort in ascending order */ +#define SQLITE_SO_DESC 1 /* Sort in ascending order */ + +/* +** Column affinity types. +** +** These used to have mnemonic name like 'i' for SQLITE_AFF_INTEGER and +** 't' for SQLITE_AFF_TEXT. But we can save a little space and improve +** the speed a little by number the values consecutively. +** +** But rather than start with 0 or 1, we begin with 'a'. That way, +** when multiple affinity types are concatenated into a string and +** used as the P3 operand, they will be more readable. +** +** Note also that the numeric types are grouped together so that testing +** for a numeric type is a single comparison. +*/ +#define SQLITE_AFF_TEXT 'a' +#define SQLITE_AFF_NONE 'b' +#define SQLITE_AFF_NUMERIC 'c' +#define SQLITE_AFF_INTEGER 'd' +#define SQLITE_AFF_REAL 'e' + +#define sqlite3IsNumericAffinity(X) ((X)>=SQLITE_AFF_NUMERIC) + +/* +** Each SQL table is represented in memory by an instance of the +** following structure. +** +** Table.zName is the name of the table. The case of the original +** CREATE TABLE statement is stored, but case is not significant for +** comparisons. +** +** Table.nCol is the number of columns in this table. Table.aCol is a +** pointer to an array of Column structures, one for each column. +** +** If the table has an INTEGER PRIMARY KEY, then Table.iPKey is the index of +** the column that is that key. Otherwise Table.iPKey is negative. Note +** that the datatype of the PRIMARY KEY must be INTEGER for this field to +** be set. An INTEGER PRIMARY KEY is used as the rowid for each row of +** the table. If a table has no INTEGER PRIMARY KEY, then a random rowid +** is generated for each row of the table. Table.hasPrimKey is true if +** the table has any PRIMARY KEY, INTEGER or otherwise. +** +** Table.tnum is the page number for the root BTree page of the table in the +** database file. If Table.iDb is the index of the database table backend +** in sqlite.aDb[]. 0 is for the main database and 1 is for the file that +** holds temporary tables and indices. If Table.isEphem +** is true, then the table is stored in a file that is automatically deleted +** when the VDBE cursor to the table is closed. In this case Table.tnum +** refers VDBE cursor number that holds the table open, not to the root +** page number. Transient tables are used to hold the results of a +** sub-query that appears instead of a real table name in the FROM clause +** of a SELECT statement. +*/ +struct Table { + char *zName; /* Name of the table */ + int nCol; /* Number of columns in this table */ + Column *aCol; /* Information about each column */ + int iPKey; /* If not less then 0, use aCol[iPKey] as the primary key */ + Index *pIndex; /* List of SQL indexes on this table. */ + int tnum; /* Root BTree node for this table (see note above) */ + Select *pSelect; /* NULL for tables. Points to definition if a view. */ + int nRef; /* Number of pointers to this Table */ + Trigger *pTrigger; /* List of SQL triggers on this table */ + FKey *pFKey; /* Linked list of all foreign keys in this table */ + char *zColAff; /* String defining the affinity of each column */ +#ifndef SQLITE_OMIT_CHECK + Expr *pCheck; /* The AND of all CHECK constraints */ +#endif +#ifndef SQLITE_OMIT_ALTERTABLE + int addColOffset; /* Offset in CREATE TABLE statement to add a new column */ +#endif + u8 readOnly; /* True if this table should not be written by the user */ + u8 isEphem; /* True if created using OP_OpenEphermeral */ + u8 hasPrimKey; /* True if there exists a primary key */ + u8 keyConf; /* What to do in case of uniqueness conflict on iPKey */ + u8 autoInc; /* True if the integer primary key is autoincrement */ +#ifndef SQLITE_OMIT_VIRTUALTABLE + u8 isVirtual; /* True if this is a virtual table */ + u8 isCommit; /* True once the CREATE TABLE has been committed */ + Module *pMod; /* Pointer to the implementation of the module */ + sqlite3_vtab *pVtab; /* Pointer to the module instance */ + int nModuleArg; /* Number of arguments to the module */ + char **azModuleArg; /* Text of all module args. [0] is module name */ +#endif + Schema *pSchema; +}; + +/* +** Test to see whether or not a table is a virtual table. This is +** done as a macro so that it will be optimized out when virtual +** table support is omitted from the build. +*/ +#ifndef SQLITE_OMIT_VIRTUALTABLE +# define IsVirtual(X) ((X)->isVirtual) +#else +# define IsVirtual(X) 0 +#endif + +/* +** Each foreign key constraint is an instance of the following structure. +** +** A foreign key is associated with two tables. The "from" table is +** the table that contains the REFERENCES clause that creates the foreign +** key. The "to" table is the table that is named in the REFERENCES clause. +** Consider this example: +** +** CREATE TABLE ex1( +** a INTEGER PRIMARY KEY, +** b INTEGER CONSTRAINT fk1 REFERENCES ex2(x) +** ); +** +** For foreign key "fk1", the from-table is "ex1" and the to-table is "ex2". +** +** Each REFERENCES clause generates an instance of the following structure +** which is attached to the from-table. The to-table need not exist when +** the from-table is created. The existance of the to-table is not checked +** until an attempt is made to insert data into the from-table. +** +** The sqlite.aFKey hash table stores pointers to this structure +** given the name of a to-table. For each to-table, all foreign keys +** associated with that table are on a linked list using the FKey.pNextTo +** field. +*/ +struct FKey { + Table *pFrom; /* The table that constains the REFERENCES clause */ + FKey *pNextFrom; /* Next foreign key in pFrom */ + char *zTo; /* Name of table that the key points to */ + FKey *pNextTo; /* Next foreign key that points to zTo */ + int nCol; /* Number of columns in this key */ + struct sColMap { /* Mapping of columns in pFrom to columns in zTo */ + int iFrom; /* Index of column in pFrom */ + char *zCol; /* Name of column in zTo. If 0 use PRIMARY KEY */ + } *aCol; /* One entry for each of nCol column s */ + u8 isDeferred; /* True if constraint checking is deferred till COMMIT */ + u8 updateConf; /* How to resolve conflicts that occur on UPDATE */ + u8 deleteConf; /* How to resolve conflicts that occur on DELETE */ + u8 insertConf; /* How to resolve conflicts that occur on INSERT */ +}; + +/* +** SQLite supports many different ways to resolve a contraint +** error. ROLLBACK processing means that a constraint violation +** causes the operation in process to fail and for the current transaction +** to be rolled back. ABORT processing means the operation in process +** fails and any prior changes from that one operation are backed out, +** but the transaction is not rolled back. FAIL processing means that +** the operation in progress stops and returns an error code. But prior +** changes due to the same operation are not backed out and no rollback +** occurs. IGNORE means that the particular row that caused the constraint +** error is not inserted or updated. Processing continues and no error +** is returned. REPLACE means that preexisting database rows that caused +** a UNIQUE constraint violation are removed so that the new insert or +** update can proceed. Processing continues and no error is reported. +** +** RESTRICT, SETNULL, and CASCADE actions apply only to foreign keys. +** RESTRICT is the same as ABORT for IMMEDIATE foreign keys and the +** same as ROLLBACK for DEFERRED keys. SETNULL means that the foreign +** key is set to NULL. CASCADE means that a DELETE or UPDATE of the +** referenced table row is propagated into the row that holds the +** foreign key. +** +** The following symbolic values are used to record which type +** of action to take. +*/ +#define OE_None 0 /* There is no constraint to check */ +#define OE_Rollback 1 /* Fail the operation and rollback the transaction */ +#define OE_Abort 2 /* Back out changes but do no rollback transaction */ +#define OE_Fail 3 /* Stop the operation but leave all prior changes */ +#define OE_Ignore 4 /* Ignore the error. Do not do the INSERT or UPDATE */ +#define OE_Replace 5 /* Delete existing record, then do INSERT or UPDATE */ + +#define OE_Restrict 6 /* OE_Abort for IMMEDIATE, OE_Rollback for DEFERRED */ +#define OE_SetNull 7 /* Set the foreign key value to NULL */ +#define OE_SetDflt 8 /* Set the foreign key value to its default */ +#define OE_Cascade 9 /* Cascade the changes */ + +#define OE_Default 99 /* Do whatever the default action is */ + + +/* +** An instance of the following structure is passed as the first +** argument to sqlite3VdbeKeyCompare and is used to control the +** comparison of the two index keys. +** +** If the KeyInfo.incrKey value is true and the comparison would +** otherwise be equal, then return a result as if the second key +** were larger. +*/ +struct KeyInfo { + u8 enc; /* Text encoding - one of the TEXT_Utf* values */ + u8 incrKey; /* Increase 2nd key by epsilon before comparison */ + int nField; /* Number of entries in aColl[] */ + u8 *aSortOrder; /* If defined an aSortOrder[i] is true, sort DESC */ + CollSeq *aColl[1]; /* Collating sequence for each term of the key */ +}; + +/* +** Each SQL index is represented in memory by an +** instance of the following structure. +** +** The columns of the table that are to be indexed are described +** by the aiColumn[] field of this structure. For example, suppose +** we have the following table and index: +** +** CREATE TABLE Ex1(c1 int, c2 int, c3 text); +** CREATE INDEX Ex2 ON Ex1(c3,c1); +** +** In the Table structure describing Ex1, nCol==3 because there are +** three columns in the table. In the Index structure describing +** Ex2, nColumn==2 since 2 of the 3 columns of Ex1 are indexed. +** The value of aiColumn is {2, 0}. aiColumn[0]==2 because the +** first column to be indexed (c3) has an index of 2 in Ex1.aCol[]. +** The second column to be indexed (c1) has an index of 0 in +** Ex1.aCol[], hence Ex2.aiColumn[1]==0. +** +** The Index.onError field determines whether or not the indexed columns +** must be unique and what to do if they are not. When Index.onError=OE_None, +** it means this is not a unique index. Otherwise it is a unique index +** and the value of Index.onError indicate the which conflict resolution +** algorithm to employ whenever an attempt is made to insert a non-unique +** element. +*/ +struct Index { + char *zName; /* Name of this index */ + int nColumn; /* Number of columns in the table used by this index */ + int *aiColumn; /* Which columns are used by this index. 1st is 0 */ + unsigned *aiRowEst; /* Result of ANALYZE: Est. rows selected by each column */ + Table *pTable; /* The SQL table being indexed */ + int tnum; /* Page containing root of this index in database file */ + u8 onError; /* OE_Abort, OE_Ignore, OE_Replace, or OE_None */ + u8 autoIndex; /* True if is automatically created (ex: by UNIQUE) */ + char *zColAff; /* String defining the affinity of each column */ + Index *pNext; /* The next index associated with the same table */ + Schema *pSchema; /* Schema containing this index */ + u8 *aSortOrder; /* Array of size Index.nColumn. True==DESC, False==ASC */ + char **azColl; /* Array of collation sequence names for index */ +}; + +/* +** Each token coming out of the lexer is an instance of +** this structure. Tokens are also used as part of an expression. +** +** Note if Token.z==0 then Token.dyn and Token.n are undefined and +** may contain random values. Do not make any assuptions about Token.dyn +** and Token.n when Token.z==0. +*/ +struct Token { + const unsigned char *z; /* Text of the token. Not NULL-terminated! */ + unsigned dyn : 1; /* True for malloced memory, false for static */ + unsigned n : 31; /* Number of characters in this token */ +}; + +/* +** An instance of this structure contains information needed to generate +** code for a SELECT that contains aggregate functions. +** +** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a +** pointer to this structure. The Expr.iColumn field is the index in +** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate +** code for that node. +** +** AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the +** original Select structure that describes the SELECT statement. These +** fields do not need to be freed when deallocating the AggInfo structure. +*/ +struct AggInfo { + u8 directMode; /* Direct rendering mode means take data directly + ** from source tables rather than from accumulators */ + u8 useSortingIdx; /* In direct mode, reference the sorting index rather + ** than the source table */ + int sortingIdx; /* Cursor number of the sorting index */ + ExprList *pGroupBy; /* The group by clause */ + int nSortingColumn; /* Number of columns in the sorting index */ + struct AggInfo_col { /* For each column used in source tables */ + int iTable; /* Cursor number of the source table */ + int iColumn; /* Column number within the source table */ + int iSorterColumn; /* Column number in the sorting index */ + int iMem; /* Memory location that acts as accumulator */ + Expr *pExpr; /* The original expression */ + } *aCol; + int nColumn; /* Number of used entries in aCol[] */ + int nColumnAlloc; /* Number of slots allocated for aCol[] */ + int nAccumulator; /* Number of columns that show through to the output. + ** Additional columns are used only as parameters to + ** aggregate functions */ + struct AggInfo_func { /* For each aggregate function */ + Expr *pExpr; /* Expression encoding the function */ + FuncDef *pFunc; /* The aggregate function implementation */ + int iMem; /* Memory location that acts as accumulator */ + int iDistinct; /* Ephermeral table used to enforce DISTINCT */ + } *aFunc; + int nFunc; /* Number of entries in aFunc[] */ + int nFuncAlloc; /* Number of slots allocated for aFunc[] */ +}; + +/* +** Each node of an expression in the parse tree is an instance +** of this structure. +** +** Expr.op is the opcode. The integer parser token codes are reused +** as opcodes here. For example, the parser defines TK_GE to be an integer +** code representing the ">=" operator. This same integer code is reused +** to represent the greater-than-or-equal-to operator in the expression +** tree. +** +** Expr.pRight and Expr.pLeft are subexpressions. Expr.pList is a list +** of argument if the expression is a function. +** +** Expr.token is the operator token for this node. For some expressions +** that have subexpressions, Expr.token can be the complete text that gave +** rise to the Expr. In the latter case, the token is marked as being +** a compound token. +** +** An expression of the form ID or ID.ID refers to a column in a table. +** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is +** the integer cursor number of a VDBE cursor pointing to that table and +** Expr.iColumn is the column number for the specific column. If the +** expression is used as a result in an aggregate SELECT, then the +** value is also stored in the Expr.iAgg column in the aggregate so that +** it can be accessed after all aggregates are computed. +** +** If the expression is a function, the Expr.iTable is an integer code +** representing which function. If the expression is an unbound variable +** marker (a question mark character '?' in the original SQL) then the +** Expr.iTable holds the index number for that variable. +** +** If the expression is a subquery then Expr.iColumn holds an integer +** register number containing the result of the subquery. If the +** subquery gives a constant result, then iTable is -1. If the subquery +** gives a different answer at different times during statement processing +** then iTable is the address of a subroutine that computes the subquery. +** +** The Expr.pSelect field points to a SELECT statement. The SELECT might +** be the right operand of an IN operator. Or, if a scalar SELECT appears +** in an expression the opcode is TK_SELECT and Expr.pSelect is the only +** operand. +** +** If the Expr is of type OP_Column, and the table it is selecting from +** is a disk table or the "old.*" pseudo-table, then pTab points to the +** corresponding table definition. +*/ +struct Expr { + u8 op; /* Operation performed by this node */ + char affinity; /* The affinity of the column or 0 if not a column */ + u16 flags; /* Various flags. See below */ + CollSeq *pColl; /* The collation type of the column or 0 */ + Expr *pLeft, *pRight; /* Left and right subnodes */ + ExprList *pList; /* A list of expressions used as function arguments + ** or in " IN (aCol[] or ->aFunc[] */ + int iRightJoinTable; /* If EP_FromJoin, the right table of the join */ + Select *pSelect; /* When the expression is a sub-select. Also the + ** right side of " IN (

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