**應用程式必須在關閉sqlite3物件前,[sqlite3_finalize | finalize]
**所有的與該物件相關的[prepared statements],必須[sqlite3_blob_close | **close]所有的與該物件相關的
**[blob handles] (blob大二進位制控制代碼)
** and [sqlite3_blob_close | close] all [blob handles] associated with
** the [sqlite3] object prior to attempting to close the object. ^if
** sqlite3_close() is called on a [database connection] that still has
** outstanding [prepared statements] or [blob handles], then it returns
** sqlite_busy.
**如果sqlite3_close()在[database connection]資料庫連線被呼叫,該數
**據庫連線中仍有顯式的[prepared statements][blob handles],則返回
**sqlite_busy。當事務開啟時,呼叫sqlite3_close(),事務自動回滾。
** ^if [sqlite3_close()] is invoked while a transaction is open,
** the transaction is automatically rolled back.
**sqlite3_close(c)的c引數可以是null指標或從sqlite3_open()、sqlite3_**open16()、sqlite3_open_v2()獲取的[sqlite3]物件指標
**使用null引數呼叫sqlite3_close()為沒負作用的空操作
** the c parameter to [sqlite3_close(c)] must be either a null
** pointer or an [sqlite3] object pointer obtained
** from [sqlite3_open()], [sqlite3_open16()], or
** [sqlite3_open_v2()], and not previously closed.
** ^calling sqlite3_close() with a null pointer argument is a
** harmless no-op.
sqlite_api int sqlite3_close(sqlite3 *);
原始碼剖析 Hashtable 原始碼剖析
hashtable同樣是基於雜湊表實現的,同樣每個元素都是key value對,其內部也是通過單鏈表解決衝突問題,容量不足 超過了閾值 時,同樣會自動增長。hashtable也是jdk1.0引入的類,是執行緒安全的,能用於多執行緒環境中。hashtable同樣實現了serializable介面,它支...
C STL 11 vector原始碼剖析
特點 通常,使用vector是最好的選擇,如果沒有什麼特殊要求,最好使用vector 與其他容器的比較 vector 可變大小陣列。支援快速隨機訪問。在尾部之外的位置插入或刪除元素可能很慢 deque 雙端佇列。支援快速隨機訪問。在頭尾插入 刪除速度很快 list 雙向鍊錶。只支援雙向順序訪問。在l...
leveldb原始碼剖析1 1 基礎概述之原始碼搭建
leveldb是乙個開源的單機kv儲存庫,其作者是谷歌工程師jeff dean和sanjay ghemawat。很多開源lsm儲存引擎都基於或使用leveldb,例如rocksdb。關鍵原始碼目錄介紹 其中,db和table是功能的核心,部分資料結構在util中。如果沒做過資料庫引擎的人,建議看 以...