Skip to main content

check_format_version

Function check_format_version 

Source
pub fn check_format_version(connection: &Connection, file: &str) -> Result<i32>
Expand description

读 connection 所在文件的格式版本并检查引擎读不读得懂;file 是写进错误信息的文件名(只给名字,不带路径)。没有 metadata 表时是 LEGACY_FORMAT_VERSION。有表却读不出 format_version(没有这一行,或表的列不对)、值不是非负整数、或比 FORMAT_VERSION 新时报 DICTIONARY_FORMAT_UNSUPPORTED(EngineError::Failed),调用方不能把这样的文件当作已知格式去读:新版本的表可能换了列或换了语义,照旧读只会悄悄出错。连 sqlite_master 都读不出(不是数据库、被锁住),或读 metadata 时遇到被锁、读写出错、文件损坏这类与格式无关的错误时,原样返回 EngineError::Sqlite,由调用方按它原来对读不了的文件的处理来办。