features.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from django.db.backends.base.features import BaseDatabaseFeatures
  2. from .base import Database
  3. class DatabaseFeatures(BaseDatabaseFeatures):
  4. # SQLite can read from a cursor since SQLite 3.6.5, subject to the caveat
  5. # that statements within a connection aren't isolated from each other. See
  6. # https://sqlite.org/isolation.html.
  7. can_use_chunked_reads = True
  8. test_db_allows_multiple_connections = False
  9. supports_unspecified_pk = True
  10. supports_timezones = False
  11. max_query_params = 999
  12. supports_mixed_date_datetime_comparisons = False
  13. can_introspect_autofield = True
  14. can_introspect_decimal_field = False
  15. can_introspect_duration_field = False
  16. can_introspect_positive_integer_field = True
  17. can_introspect_small_integer_field = True
  18. introspected_big_auto_field_type = 'AutoField'
  19. introspected_small_auto_field_type = 'AutoField'
  20. supports_transactions = True
  21. atomic_transactions = False
  22. can_rollback_ddl = True
  23. supports_atomic_references_rename = Database.sqlite_version_info >= (3, 26, 0)
  24. can_create_inline_fk = False
  25. supports_paramstyle_pyformat = False
  26. supports_sequence_reset = False
  27. can_clone_databases = True
  28. supports_temporal_subtraction = True
  29. ignores_table_name_case = True
  30. supports_cast_with_precision = False
  31. time_cast_precision = 3
  32. can_release_savepoints = True
  33. # Is "ALTER TABLE ... RENAME COLUMN" supported?
  34. can_alter_table_rename_column = Database.sqlite_version_info >= (3, 25, 0)
  35. supports_parentheses_in_compound = False
  36. # Deferred constraint checks can be emulated on SQLite < 3.20 but not in a
  37. # reasonably performant way.
  38. supports_pragma_foreign_key_check = Database.sqlite_version_info >= (3, 20, 0)
  39. can_defer_constraint_checks = supports_pragma_foreign_key_check
  40. supports_functions_in_partial_indexes = Database.sqlite_version_info >= (3, 15, 0)
  41. supports_over_clause = Database.sqlite_version_info >= (3, 25, 0)