SQLite 升级指南

概述

Perfetto 依赖于 SQLite 内部:

升级过程

先决条件

仅在 Chrome、Android 和 Google3 都支持目标 SQLite 版本时升级。

步骤

  1. 更新版本引用:
  1. 运行解析器更新:
python3 tools/update_sql_parsers.py
  1. 构建和测试:
tools/ninja -C out/linux_clang_release trace_processor_shell perfetto_unittests out/linux_clang_release/perfetto_unittests --gtest_filter="*Sql*" tools/diff_test_trace_processor.py out/linux_clang_release/trace_processor_shell --quiet

常见问题

SQLite 特殊标记已更改

错误: SQLite special tokens have changed! Expected: %token SPACE COMMENT ILLEGAL.

修复: 更新 tools/update_sql_parsers.py 中的 EXPECTED_SPECIAL_TOKENS

缺少标记定义

错误: use of undeclared identifier 'TK_COMMENT''SQLITE_DIGIT_SEPARATOR'

修复: 将缺少的常量添加到 tokenize_internal_helper.h

SQLite 内部 API 更改

错误: sqlite_utils.hsqlite/bindings/*.h 中的编译错误

修复: 为 SQLite API 更新绑定

关键文件

始终审查

生成(不要编辑)

回滚

  1. 恢复 tools/install-build-depsbazel/deps.bzl 中的版本更改
  2. 重新运行 python3 tools/update_sql_parsers.py
  3. 重新构建