home / github / issue_comments

Menu
  • Search all tables
  • GraphQL API

issue_comments: 982136747

This data as json

html_url issue_url id node_id user created_at updated_at author_association body reactions issue performed_via_github_app
https://github.com/simonw/sqlite-utils/pull/347#issuecomment-982136747 https://api.github.com/repos/simonw/sqlite-utils/issues/347 982136747 IC_kwDOCGYnMM46ijer 9599 2021-11-29T23:48:05Z 2021-11-29T23:48:05Z OWNER

Some interesting test failures in the version that runs with pysqlite3: =========================== short test summary info ============================ FAILED tests/test_cli.py::test_enable_wal - assert 0 == 1 FAILED tests/test_cli.py::test_disable_wal - pysqlite3.dbapi2.OperationalErro... FAILED tests/test_fts.py::test_rebuild_fts[searchable] - pysqlite3.dbapi2.Dat... FAILED tests/test_fts.py::test_rebuild_fts[searchable_fts] - pysqlite3.dbapi2... FAILED tests/test_wal.py::test_enable_disable_wal - pysqlite3.dbapi2.Operatio... ================== 5 failed, 750 passed, 3 skipped in 15.20s =================== https://github.com/simonw/sqlite-utils/runs/4360759085

The WAL errors look like this: E pysqlite3.dbapi2.OperationalError: cannot change into wal mode from within a transaction Triggered by a call to db.enable_wal()

The FTS errors are caused by tests that try to deliberately corrupt the FTS index by running fresh_db["searchable_fts_data"].delete_where() - and then rebuilding it using rebuild_fts(): ``` @pytest.mark.parametrize("table_to_fix", ["searchable", "searchable_fts"]) def test_rebuild_fts(fresh_db, table_to_fix): table = fresh_db["searchable"] table.insert(search_records[0]) table.enable_fts(["text", "country"]) # Run a search rows = list(table.search("tanuki")) assert len(rows) == 1 assert { "rowid": 1, "text": "tanuki are running tricksters", "country": "Japan", "not_searchable": "foo", }.items() <= rows[0].items() # Delete from searchable_fts_data fresh_db["searchable_fts_data"].delete_where() # This should have broken the index with pytest.raises(sqlite3.DatabaseError): list(table.search("tanuki")) # Running rebuild_fts() should fix it

  fresh_db[table_to_fix].rebuild_fts()

tests/test_fts.py:277:


sqlite_utils/db.py:1947: in rebuild_fts self.db.execute(


self = <Database \<pysqlite3.dbapi2.Connection object at 0x7fd95d299c30>> sql = "INSERT INTO searchable_fts VALUES('rebuild');" parameters = None

def execute(
    self, sql: str, parameters: Optional[Union[Iterable, dict]] = None
) -> sqlite3.Cursor:
    "Execute SQL query and return a ``sqlite3.Cursor``."
    if self._tracer:
        self._tracer(sql, parameters)
    if parameters is not None:
        return self.conn.execute(sql, parameters)
    else:
      return self.conn.execute(sql)

E pysqlite3.dbapi2.DatabaseError: database disk image is malformed ```

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
1066603133  
Powered by Datasette · Queries took 0.817ms · About: github-to-sqlite