config BR2_PACKAGE_SQLITE
	bool "sqlite"
	help
	  SQLite is a small C library that implements a self-contained,
	  embeddable, zero-configuration SQL database engine.

	  http://www.sqlite.org/

if BR2_PACKAGE_SQLITE

config BR2_PACKAGE_SQLITE_STAT3
	bool "Additional query optimizations (stat3)"
	help
	  Adds additional logic to the ANALYZE command and to the query
	  planner that can help SQLite to choose a better query plan under
	  certain situations.

config BR2_PACKAGE_SQLITE_ENABLE_FTS3
	bool "Enable version 3 of the full-text search engine"
	help
	  When this option is defined in the amalgamation
	  (see http://www.sqlite.org/amalgamation.html), version 3 of
	  the full-text search engine is added to the build automatically.

config BR2_PACKAGE_SQLITE_ENABLE_UNLOCK_NOTIFY
	bool "Enable sqlite3_unlock_notify() interface"
	help
	  This option enables the sqlite3_unlock_notify() interface and its
	  accosiated functionality. See the documentation
	  http://www.sqlite.org/unlock_notify.html for additional information.

config BR2_PACKAGE_SQLITE_SECURE_DELETE
	bool "Set the secure_delete pragma on by default"
	help
	  This compile-time option changes the default settings of the
	  secure_delete pragma. When this option is not used, secure_delete
	  defaults to off. When this option is present, secure_delete defaults
	  to on.

	  The secure_delete setting causes deleted content to be overwritten
	  with zeros. There is a small performance penalty for this since
	  additional I/O must occur. On the other hand, secure_delete can
	  prevent sensitive information from lingering in unused parts
	  of the database file after it has allegedly been deleted.
	  See the documentation on the
	  http://www.sqlite.org/pragma.html#pragma_secure_delete
	  for additional information.

config BR2_PACKAGE_SQLITE_NO_SYNC
	bool "Disable fsync"
	help
	  By default SQLite forces all database transactions to storage
	  immediately using fsync() to protect against data loss in case
	  of power failure.
	  This option turns this behavior off resulting in higher performance
	  especially when using slow flash storage.

endif
