digital-fabric / extralite

Ruby on SQLite
http://www.rubydoc.info/gems/extralite
MIT License
247 stars 7 forks source link

database table is locked (Extralite::Error) with Sequel #26

Closed shaicoleman closed 8 months ago

shaicoleman commented 12 months ago

Some queries, e.g. table_exists? cause it to trigger database table is locked exception

Full code to reproduce: https://github.com/shaicoleman/extralite-bug

require 'extralite'
require 'sequel'

@sequel = Sequel.connect("extralite:///tmp/locked.db") # Doesn't happen with the sqlite connector

gen = @sequel.create_table_generator
gen.primary_key :_id
@sequel.create_table!(:test1, generator: gen, strict: true)
puts 'Worked first time'
@sequel.create_table!(:test1, generator: gen, strict: true)
puts 'Worked second time'
@sequel.table_exists?(:_keyvalue)
@sequel.create_table!(:test1, generator: gen, strict: true) # causes "database table is locked (Extralite::Error)"
puts 'Worked third time'

extralite-bundle 2.1 sequel: 5.70.0 Ubuntu Linux 22.04