SQLITE原始碼剖析 11

2021-08-30 20:20:36 字數 1353 閱讀 2395

**應用程式必須在關閉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中。如果沒做過資料庫引擎的人,建議看 以...