Repository navigation
sql-storage-adapter v0.7.13
·
295 commits
to master
since this release
Added
memoryOnly: trueon the IndexedDB adapter keeps the database in memory alone, for a browser that refuses IndexedDB (a private window, a blocked storage setting): IndexedDB is never opened, nothing is stored, andcapabilitiescarries nopersistence.reload()on the IndexedDB adapter puts the stored image in place of the one in memory, whatever the version stamp says, and resolves with whether anything changed. A caller whose durable commit IndexedDB refused runs it before its next statement; a connection withoutcrossTabruns it to read what another connection stored.crossTab: { rollbackRefusedSaves: true }on the IndexedDB adapter reads the stored image back inside the lock when IndexedDB refuses a save made under the coordination, so a statement already waiting on the lock does not store the refused writes with its own. The call still rejects.
Fixed
PostgresFts.createIndexreads the catalog before it alters the table or creates the index, so an open that finds the_tsvcolumn and the GIN index takes no lock on the table beyond the backfill's ROW EXCLUSIVE.ALTER TABLE ... ADD COLUMN IF NOT EXISTStook ACCESS EXCLUSIVE, andCREATE INDEX IF NOT EXISTStook SHARE, before readingIF NOT EXISTS: an open behind a long read of the table (an export,pg_dump, a report) queued, and every later read and write of the table queued behind it until the read ended. The two statements run inDOblocks that checkpg_attributeandto_regclassfirst. The script keeps its three statements; run it withexec(), since a split on;would cut the blocks.- Without
crossTab, adurability: 'commit'write or aflush()on the IndexedDB adapter still waiting for the save of a write thatreload()puts back rejects instead of resolving as stored.