# Compile-time options passed to SQLite when compiling and building
# the Chromium amalgamation.
#
# The vast majority of the macros here are documented at
# https://www.sqlite.org/compile.html
#
# This file is read by a GN build script as well as generate_amalgamation.py
#
# By default, we disable all SQLite features that can be disabled by adding a
# SQLITE_OMIT_ define, or by leaving out a SQLITE_ENABLE_ define. We only enable
# features that have compelling use cases in the codebase.
#
# Each SQLite feature carries a cost to our users (binary size, pressure on
# caches and branch predictors, extra surface area for security
# vulnerabilities), as well as a maintenance cost (more surface area to be
# covered by our fuzzers, more logic to reason through when debugging a crash
# or a security vulnerability report). Enabled features must provide benefits
# that outweigh these costs.
sqlite_chromium_configuration_flags = [
  # Chrome doesn't use the ANALYZE SQLite extension.
  #
  # ANALYZE [1] is non-standard, and currently performs a table scan to
  # update statistics used by the query planner. Chrome uses straightforward
  # database schemas which do not require the level of fine tuning provided
  # by ANALYZE, and we generally cannot afford the I/O cost of the required
  # table scans.
  #
  # [1] https://www.sqlite.org/lang_analyze.html
  "SQLITE_OMIT_ANALYZE",

  # Chrome initializes SQLite manually in //sql/connection.cc.
  "SQLITE_OMIT_AUTOINIT",

  # Chrome should not use queries with the pathologic performance cases
  # mitigated by automatic indexes.
  #
  # Disabling automatic indexing exposes the pathological performance problems,
  # instead of having SQLite paper over them. This helps us catch the prbolems
  # in early testing, such as pinpoint and Finch.
  #
  # As a bonus, disabling automatic indexing simplifies the mental model for
  # SQLite's optimizer, which makes a bit it easier to reason about SQL
  # statement performance.
  #
  # See https://www.sqlite.org/optoverview.html#autoindex
  "SQLITE_OMIT_AUTOMATIC_INDEX",

  # Chrome calls sqlite3_reset() correctly to reset prepared statements.
  "SQLITE_OMIT_AUTORESET",

  # Chromium does not use sqlite3_{get,free}_table().
  # Chrome doesn't use sqlite3_compileoption_{used,get}().
  "SQLITE_OMIT_COMPILEOPTION_DIAGS",

  # EXPLAIN's output is not stable across releases [1], so it should not be
  # used in Chrome. Skipping the EXPLAIN machinery also results in
  # non-trivial binary savings.
  #
  # [1] https://www.sqlite.org/lang_explain.html
  "SQLITE_OMIT_EXPLAIN",

  # Chrome does not use sqlite3_{get,free}_table().
  "SQLITE_OMIT_GET_TABLE",

  # Chrome does not use PRAGMA {function,module,pragma}_list.
  "SQLITE_OMIT_INTROSPECTION_PRAGMAS",

  # Chrome already depends on malloc being very efficient, so we disable
  # SQLite's arena allocator.
  "SQLITE_DEFAULT_LOOKASIDE=0,0",
  "SQLITE_OMIT_LOOKASIDE",

  # Chrome doesn't use TCL variables.
  "SQLITE_OMIT_TCL_VARIABLE",

  # The REINDEX statemnt is only useful if a collation sequence's definition
  # changes [1]. Chrome never defines its own collation sequences [2, 3], so
  # it never needs to call REINDEX.
  #
  # [1] https://www.sqlite.org/lang_reindex.html
  # [2] https://www.sqlite.org/datatype3.html#collating_sequences
  # [3] https://www.sqlite.org/c3ref/create_collation.html
  "SQLITE_OMIT_REINDEX",

  # Chrome doesn't use sqlite3_{profile,trace}().
  "SQLITE_OMIT_TRACE",

  # Chrome doesn't use UPSERT.
  "SQLITE_OMIT_UPSERT",

  # Chrome doesn't use window functions in SQL.
  "SQLITE_OMIT_WINDOWFUNC",
]
