亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fileformat.tcl

?? sqlite庫
?? TCL
?? 第 1 頁 / 共 2 頁
字號:
<td align="center" colspan=2>Next</td><td align="center" colspan=1>Ksz<br>(hi)</td><td align="center" colspan=1>Dsz<br>(hi)</td><td align="center" colspan=2>Datasize<br>(low)</td><td align="center" colspan=1>Payload</td><td align="center" colspan=4>Overflow<br>Pointer</td></tr></table></blockquote><p>The first four bytes are the pointer.  The size of the key is a 24-bitwhere the upper 8 bits are taken from byte 8 and the lower 16 bits aretaken from bytes 4 and 5 (or bytes 5 and 4 on little-endian machines.)The size of the data is another 24-bit value where the upper 8 bitsare taken from byte 9 and the lower 16 bits are taken from bytes 10 and11 or 11 and 10, depending on the byte order.  Bytes 6 and 7 are theoffset to the next cell in the linked list of all cells on the currentpage.  This offset is 0 for the last cell on the page.</p><p>The payload itself can be any number of bytes between 1 and 1048576.But space to hold the payload is allocated in 4-byte chunks up to238 bytes.  If the entry contains more than 238 bytes of payload, thenadditional payload data is stored on a linked list of overflow pages.A 4 byte page number is appended to the cell that contains the firstpage of this linked list.</p><p>Each overflow page begins with a 4-byte value which is thepage number of the next overflow page in the list.   This value is0 for the last page in the list.  The remaining1020 bytes of the overflow page are available for storing payload.Note that a full page is allocated regardless of the number of overflowbytes stored.  Thus, if the total payload for an entry is 239 bytes,the first 238 are stored in the cell and the overflow page stores justone byte.</p><p>The structure of an overflow page looks like this:</p><blockquote><table border=1 cellspacing=0 cellpadding=5><tr><td align="center" width=20>0</td><td align="center" width=20>1</td><td align="center" width=20>2</td><td align="center" width=20>3</td><td align="center" width=200>4 ... 1023</td></tr><tr><td align="center" colspan=4>Next Page</td><td align="center" colspan=1>Overflow Data</td></tr></table></blockquote><p>All space on a b-tree page which is not used by the header or by cellsis filled by freeblocks.  Freeblocks, like cells, are variable in size.The size of a freeblock is at least 4 bytes and is always a multiple of4 bytes.The first 4 bytes contain a header and the remaining bytesare unused.  The structure of the freeblock is as follows:</p><blockquote><table border=1 cellspacing=0 cellpadding=5><tr><td align="center" width=20>0</td><td align="center" width=20>1</td><td align="center" width=20>2</td><td align="center" width=20>3</td><td align="center" width=200>4 ... 1015</td></tr><tr><td align="center" colspan=2>Size</td><td align="center" colspan=2>Next</td><td align="center" colspan=1>Unused</td></tr></table></blockquote><p>Freeblocks are stored in a linked list in increasing order.  That isto say, the first freeblock occurs at a lower index into the page thanthe second free block, and so forth.  The first 2 bytes of the headerare an integer which is the total number of bytes in the freeblock.The second 2 bytes are the index into the page of the next freeblockin the list.  The last freeblock has a Next value of 0.</p><p>When a new b-tree is created in a database, the root page of the b-treeconsist of a header and a single 1016 byte freeblock.  As entries areadded, space is carved off of that freeblock and used to make cells.When b-tree entries are deleted, the space used by their cells is convertedinto freeblocks.  Adjacent freeblocks are merged, but the page can stillbecome fragmented.  The b-tree code will occasionally try to defragmentthe page by moving all cells to the beginning and constructing a singlefreeblock at the end to take up all remaining space.</p><h4>3.3 &nbsp; The B-Tree Free Page List</h4><p>When information is removed from an SQLite database such that one ormore pages are no longer needed, those pages are added to a list offree pages so that they can be reused later when new information isadded.  This subsection describes the structure of this freelist.</p><p>The 32-bit integer beginning at byte-offset 52 in page 1 of the databasecontains the address of the first page in a linked list of free pages.If there are no free pages available, this integer has a value of 0.The 32-bit integer at byte-offset 56 in page 1 contains the number offree pages on the freelist.</p><p>The freelist contains a trunk and many branches.  The trunk ofthe freelist is composed of overflow pages.  That is to say, each pagecontains a single 32-bit integer at byte offset 0 whichis the page number of the next page on the freelist trunk.The payload areaof each trunk page is used to record pointers to branch pages. The first 32-bit integer in the payload area of a trunk pageis the number of branch pages to follow (between 0 and 254)and each subsequent 32-bit integer is a page number for a branch page.The following diagram shows the structure of a trunk freelist page:</p><blockquote><table border=1 cellspacing=0 cellpadding=5><tr><td align="center" width=20>0</td><td align="center" width=20>1</td><td align="center" width=20>2</td><td align="center" width=20>3</td><td align="center" width=20>4</td><td align="center" width=20>5</td><td align="center" width=20>6</td><td align="center" width=20>7</td><td align="center" width=200>8 ... 1023</td></tr><tr><td align="center" colspan=4>Next trunk page</td><td align="center" colspan=4># of branch pages</td><td align="center" colspan=1>Page numbers for branch pages</td></tr></table></blockquote><p>It is important to note that only the pages on the trunk of the freelistcontain pointers to other pages.  The branch pages contain nodata whatsoever.  The fact that the branch pages are completelyblank allows for an important optimization in the paging layer.  Whena branch page is removed from the freelist to be reused, it is notnecessary to write the original content of that page into the rollbackjournal.  The branch page contained no data to begin with, so there isno need to restore the page in the event of a rollback.  Similarly,when a page is not longer needed and is added to the freelist as a branchpage, it is not necessary to write the content of that pageinto the database file.Again, the page contains no real data so it is not necessary to record thecontent of that page.  By reducing the amount of disk I/O required,these two optimizations allow some database operationsto go four to six times faster than they would otherwise.</p><h3>4.0 &nbsp; The Schema Layer</h3><p>The schema layer implements an SQL database on top of one or moreb-trees and keeps track of the root page numbers for all b-trees.Where the b-tree layer provides only unformatted data storage witha unique key, the schema layer allows each entry to contain multiplecolumns.  The schema layer also allows indices and non-unique key values.</p><p>The schema layer implements two separate data storage abstractions:tables and indices.  Each table and each index uses its own b-treebut they use the b-tree capabilities in different ways.  For a table,the b-tree key is a unique 4-byte integer and the b-tree data is thecontent of the table row, encoded so that columns can be separatelyextracted.  For indices, the b-tree key varies in size depending on thesize of the fields being indexed and the b-tree data is empty.</p><h4>4.1 &nbsp; SQL Table Implementation Details</h4><p>Each row of an SQL table is stored in a single b-tree entry.The b-tree key is a 4-byte big-endian integer that is the ROWIDor INTEGER PRIMARY KEY for that table row.The key is stored in a big-endian format sothat keys will sort in numerical order using memcmp() function.</p><p>The content of a table row is stored in the data portion ofthe corresponding b-tree table.  The content is encoded to allowindividual columns of the row to be extracted as necessary.  Assumingthat the table has N columns, the content is encoded as N+1 offsetsfollowed by N column values, as follows:</p><blockquote><table border=1 cellspacing=0 cellpadding=5><tr><td>offset 0</td><td>offset 1</td><td><b>...</b></td><td>offset N-1</td><td>offset N</td><td>value 0</td><td>value 1</td><td><b>...</b></td><td>value N-1</td></tr></table></blockquote><p>The offsets can be either 8-bit, 16-bit, or 24-bit integers dependingon how much data is to be stored.  If the total size of the contentis less than 256 bytes then 8-bit offsets are used.  If the total sizeof the b-tree data is less than 65536 then 16-bit offsets are used.24-bit offsets are used otherwise.  Offsets are always little-endian,which means that the least significant byte occurs first.</p><p>Data is stored as a nul-terminated string.  Any empty string consistsof just the nul terminator.  A NULL value is an empty string with nonul-terminator.  Thus a NULL value occupies zero bytes and an empty stringoccupies 1 byte.</p><p>Column values are stored in the order that they appear in the CREATE TABLEstatement.  The offsets at the beginning of the record contain thebyte index of the corresponding column value.  Thus, Offset 0 containsthe byte index for Value 0, Offset 1 contains the byte offsetof Value 1, and so forth.  The number of bytes in a column value canalways be found by subtracting offsets.  This allows NULLs to berecovered from the record unambiguously.</p><p>Most columns are stored in the b-tree data as described above.The one exception is column that has type INTEGER PRIMARY KEY.INTEGER PRIMARY KEY columns correspond to the 4-byte b-tree key.When an SQL statement attempts to read the INTEGER PRIMARY KEY,the 4-byte b-tree key is read rather than information out of theb-tree data.  But there is still an Offset associated with theINTEGER PRIMARY KEY, just like any other column.  But the Valueassociated with that offset is always NULL.</p><h4>4.2 &nbsp; SQL Index Implementation Details</h4><p>SQL indices are implement using a b-tree in which the key is usedbut the data is always empty.  The purpose of an index is to mapone or more column values into the ROWID for the table entry thatcontains those column values.</p><p>Each b-tree in an index consists of one or more column values followedby a 4-byte ROWID.  Each column value is nul-terminated (even NULL values)and begins with a single character that indicates the datatype for thatcolumn value.  Only three datatypes are supported: NULL, Number, andText.  NULL values are encoded as the character 'a' followed by thenul terminator.  Numbers are encoded as the character 'b' followed bya string that has been crafted so that sorting the string using memcmp()will sort the corresponding numbers in numerical order.  (See thesqliteRealToSortable() function in util.c of the SQLite sources foradditional information on this encoding.)  Numbers are also nul-terminated.Text values consists of the character 'c' followed by a copy of thetext string and a nul-terminator.  These encoding rules result inNULLs being sorted first, followed by numerical values in numericalorder, followed by text values in lexicographical order.</p><h4>4.4 &nbsp; SQL Schema Storage And Root B-Tree Page Numbers</h4><p>The database schema is stored in the database in a special tabled named"sqlite_master" and which always has a root b-tree page number of 2.This table contains the original CREATE TABLE,CREATE INDEX, CREATE VIEW, and CREATE TRIGGER statements used to definethe database to begin with.  Whenever an SQLite database is opened,the sqlite_master table is scanned from beginning to end and all the original CREATE statements are played back through the parserin order to reconstruct an in-memory representation of the databaseschema for use in subsequent command parsing.  For each CREATE TABLEand CREATE INDEX statement, the root page number for the correspondingb-tree is also recorded in the sqlite_master table so that SQLite willknow where to look for the appropriate b-tree.</p><p>SQLite users can query the sqlite_master table just like any other tablein the database.  But the sqlite_master table cannot be directly written.The sqlite_master table is automatically updated in response to CREATEand DROP statements but it cannot be changed using INSERT, UPDATE, orDELETE statements as that would risk corrupting the database.</p><p>SQLite stores temporary tables and indices in a separatefile from the main database file.  The temporary table database fileis the same structure as the main database file.  The schema tablefor the temporary tables is stored on page 2 just as in the maindatabase.  But the schema table for the temporary database named"sqlite_temp_master" instead of "sqlite_master".  Other than thename change, it works exactly the same.</p><h4>4.4 &nbsp; Schema Version Numbering And Other Meta-Information</h4><p>The nine 32-bit integers that are stored beginning at byte offset60 of Page 1 in the b-tree layer are passed up into the schema layerand used for versioning and configuration information.  The meaningof the first four integers is shown below.  The other five are currentlyunused.</p><ol><li>The schema version number</li><li>The format version number</li><li>The recommended pager cache size</li><li>The safety level</li></ol><p>The first meta-value, the schema version number, is used to detect whenthe schema of the database is changed by a CREATE or DROP statement.Recall that when a database is first opened the sqlite_master table isscanned and an internal representation of the tables, indices, views,and triggers for the database is built in memory.  This internalrepresentation is used for all subsequent SQL command parsing andexecution.  But what if another process were to change the schemaby adding or removing a table, index, view, or trigger?  If the originalprocess were to continue using the old schema, it could potentiallycorrupt the database by writing to a table that no longer exists.To avoid this problem, the schema version number is changed whenevera CREATE or DROP statement is executed.  Before each command isexecuted, the current schema version number for the database fileis compared against the schema version number from when the sqlite_mastertable was last read.  If those numbers are different, the internalschema representation is erased and the sqlite_master table is rereadto reconstruct the internal schema representation.(Calls to sqlite_exec() generally return SQLITE_SCHEMA when this happens.)</p><p>The second meta-value is the schema format version number.  Thisnumber tells what version of the schema layer should be used tointerpret the file.  There have been changes to the schema layerover time and this number is used to detect when an older databasefile is being processed by a newer version of the library.As of this writing (SQLite version 2.7.0) the current format versionis "4".</p><p>The third meta-value is the recommended pager cache size as set by the DEFAULT_CACHE_SIZE pragma.  If the value is positive itmeans that synchronous behavior is enable (via the DEFAULT_SYNCHRONOUSpragma) and if negative it means that synchronous behavior isdisabled.</p><p>The fourth meta-value is safety level added in version 2.8.0.A value of 1 corresponds to a SYNCHRONOUS setting of OFF.  In otherwords, SQLite does not pause to wait for journal data to reach the disksurface before overwriting pages of the database.  A value of 2 correspondsto a SYNCHRONOUS setting of NORMAL.  A value of 3 corresponds to aSYNCHRONOUS setting of FULL. If the value is 0, that means it has notbeen initialized so the default synchronous setting of NORMAL is used.</p>}footer $rcsid

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一级电影视频| 欧美国产精品劲爆| 一区二区三区中文字幕电影| a在线播放不卡| 亚洲女人的天堂| 欧美日韩久久久久久| 日韩精品国产欧美| 精品久久人人做人人爰| 高清在线成人网| 最新国产成人在线观看| 欧美性猛片xxxx免费看久爱| 秋霞午夜鲁丝一区二区老狼| 精品国一区二区三区| 成人免费的视频| 亚洲一区日韩精品中文字幕| 欧美一区二区成人| 岛国一区二区三区| 一区二区三区四区在线| 91精品国产品国语在线不卡| 国产一区二区0| 有坂深雪av一区二区精品| 欧美一区国产二区| 国产mv日韩mv欧美| 亚洲成人手机在线| 久久久精品免费网站| 91网页版在线| 免费观看日韩av| 自拍偷拍亚洲综合| 日韩欧美的一区| 99久久国产综合精品麻豆| 丝袜美腿亚洲一区二区图片| 国产日产欧美一区二区视频| 91成人在线精品| 国产精一区二区三区| 亚洲资源在线观看| 国产亚洲欧美一区在线观看| 欧美精品一二三| 成人黄页在线观看| 日产精品久久久久久久性色| 国产精品久久久久影院色老大| 欧美日韩久久一区| 99久久99久久综合| 日本欧美在线观看| 一区二区三区四区视频精品免费 | 亚洲女女做受ⅹxx高潮| 日韩一区二区免费视频| 99久久国产综合色|国产精品| 免费三级欧美电影| 亚洲制服欧美中文字幕中文字幕| 亚洲精品一区二区三区99| 91成人免费在线| av亚洲产国偷v产偷v自拍| 另类小说图片综合网| 精品一区二区影视| 欧美日韩国产精品成人| 国产乱码精品1区2区3区| 久久综合av免费| 欧美日韩久久久| 久久国产成人午夜av影院| 国产婷婷色一区二区三区| 亚洲成a人片在线不卡一二三区| 91久久免费观看| 日本欧美一区二区三区| 欧美精品99久久久**| 琪琪一区二区三区| 欧美精品少妇一区二区三区| 一本大道久久精品懂色aⅴ| 国产麻豆9l精品三级站| 一片黄亚洲嫩模| 欧美一区二区三区男人的天堂| 91久久久免费一区二区| 精品一二线国产| 亚洲精品大片www| 日韩午夜中文字幕| 91蜜桃视频在线| 石原莉奈在线亚洲二区| 欧美成人一区二区三区片免费| 国产激情一区二区三区桃花岛亚洲| 亚洲人午夜精品天堂一二香蕉| 欧美专区亚洲专区| 国产精品99久久久久久宅男| 精品久久人人做人人爰| 欧美日韩成人综合天天影院| 欧美综合在线视频| 国产精品系列在线观看| 日韩综合小视频| 亚洲欧美日韩中文播放| 26uuu久久综合| 欧美日韩精品综合在线| 91在线精品一区二区三区| 国产专区欧美精品| 亚洲成精国产精品女| 亚洲九九爱视频| 国产亚洲精品超碰| 精品粉嫩aⅴ一区二区三区四区| 精品1区2区在线观看| 精品国产一区二区三区忘忧草| 国产黄色精品网站| 樱花草国产18久久久久| 精品99久久久久久| 91.成人天堂一区| 国产精品色婷婷| 国产999精品久久久久久绿帽| 日韩手机在线导航| 91麻豆精品视频| 91福利在线观看| 欧美日韩久久一区二区| 91精品国产色综合久久不卡电影 | 精品国产一区二区精华| 久久久美女艺术照精彩视频福利播放| 中文字幕欧美日本乱码一线二线| 日本一区二区电影| 久久影音资源网| 国产亚洲1区2区3区| 国产精品成人免费在线| 日韩电影在线一区二区| 另类小说色综合网站| 久久www免费人成看片高清| 国产毛片精品国产一区二区三区| 成人午夜视频网站| 亚洲精品水蜜桃| 欧美一区二区女人| 国产成人午夜精品5599| 亚洲午夜在线电影| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲黄色小说网站| 欧美一级日韩免费不卡| 精品国产一区二区精华| 福利一区二区在线| 一区二区三区四区不卡在线| 69堂精品视频| 成人av影视在线观看| 免费成人性网站| 亚洲免费观看在线视频| 精品粉嫩超白一线天av| 欧美性大战久久久久久久| 国产一区二区网址| 亚洲精品国久久99热| 欧美日韩国产首页在线观看| 三级精品在线观看| 国产精品福利av| 国产乱妇无码大片在线观看| 亚洲精品成人天堂一二三| 日韩视频一区在线观看| 99久久亚洲一区二区三区青草| 综合久久久久久| 91精品国产综合久久福利| 99久久er热在这里只有精品66| 美女久久久精品| 亚洲一区二区三区爽爽爽爽爽| 91精品国产日韩91久久久久久| 91浏览器打开| 国产**成人网毛片九色| 视频一区在线视频| 一区二区三区四区视频精品免费| 久久久精品一品道一区| 日韩一区二区三免费高清| 在线观看一区日韩| 91色视频在线| 日本伦理一区二区| 精品在线观看免费| 色婷婷激情久久| 一区二区三区四区在线| 色狠狠色狠狠综合| 专区另类欧美日韩| 91看片淫黄大片一级在线观看| 中文字幕不卡在线| 国产成人av在线影院| 国产乱码精品一区二区三区av| 99re这里只有精品首页| 欧美精品一区二区三区久久久| 日韩精品高清不卡| 色婷婷av一区二区三区之一色屋| 国产精品免费视频一区| 国模无码大尺度一区二区三区| 日韩一区二区三区在线| 一区二区在线观看视频| 欧美色图第一页| 亚洲精品国久久99热| 99久久免费视频.com| 日韩一区二区视频| 国产在线不卡一区| 精品国产一区久久| 精品在线免费视频| 欧美一区二区播放| 国产精品亚洲午夜一区二区三区 | 成人性色生活片| 久久美女艺术照精彩视频福利播放 | 精品欧美乱码久久久久久1区2区| 日本女优在线视频一区二区| 一本大道久久a久久精二百| 亚洲国产精品久久久久秋霞影院| 色成年激情久久综合| 一区二区三区免费在线观看| 色婷婷综合视频在线观看| 天天综合日日夜夜精品| 制服丝袜国产精品| 国产永久精品大片wwwapp| 国产欧美一区二区三区在线老狼| 色一情一伦一子一伦一区|