Bug report #18079

cannot VACUUM from within a transaction

Added by Arjan Mossel over 2 years ago. Updated over 2 years ago.

Status:Closed
Priority:Normal
Assignee:-
Category:DB Manager
Affected QGIS version:master Regression?:Yes
Operating System: Easy fix?:No
Pull Request or Patch supplied:Yes Resolution:fixed/implemented
Crashes QGIS or corrupts data:No Copied to github as #:25975

Description

In the current version of QGIS 2.99 it is not possible to run VACUUM on a SQLite database. Error:

"cannot VACUUM from within a transaction"

Related:
https://bugs.python.org/issue28518
https://github.com/ghaering/pysqlite/issues/109 with a workaround

Associated revisions

Revision 838bde33
Added by Nyall Dawson over 2 years ago

[dbmanager] Workaround Python error when vacuuming spatialite table

Workaround https://bugs.python.org/issue28518

Fixes #18079

History

#1 Updated by Nyall Dawson over 2 years ago

  • Status changed from Open to Feedback

How do you trigger this error in QGIS? I've been unable to reproduce.

#2 Updated by Arjan Mossel over 2 years ago

  • Status changed from Feedback to Open

I installed QGIS 2.99 (alongside 2.18) via osgeo4w-setup-x86_64.exe, on Windows 7. Currently at b6ad920404 (updated yesterday).

I can reproduce it by doing "New SpatiaLite layer", creating a new database with a table with just a text field. Then opening this database in the Database Manager and doing "Run Vacuum" results in a popup with "cannot VACUUM from within a transaction".

#3 Updated by Nyall Dawson over 2 years ago

  • Regression? changed from No to Yes

#4 Updated by Nyall Dawson over 2 years ago

Confirmed on Windows

#5 Updated by Nyall Dawson over 2 years ago

  • Status changed from Open to In Progress
  • Pull Request or Patch supplied changed from No to Yes

#6 Updated by Nyall Dawson over 2 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 0 to 100

#7 Updated by Giovanni Manghi over 2 years ago

  • Resolution set to fixed/implemented

Also available in: Atom PDF