Skip to main content
Open

InlineQuerier: Support ":memory:" temporary SQLite in-memory filepath

Related products:Transformers
  • October 12, 2024
  • 1 reply
  • 23 views
danilo_fme
  • danilo_fme
    danilo_fme

bwn
Evangelist
  • Evangelist

Idea is to add new InlineQuerier Parameter “Use In-Memory DB”

 

Previously established that InlineQuerier essentially creates a temporary, on-disk SQLite database file, writes input features into it, performs the queries and deletes the SQLite file afterwards.

The current FME approach has a number of drawbacks however including:

  • Overhead to write the input feature tables to disk
  • Query performance throttled by disk I/O
  • Can consume a not in-significant amount of disk space for the temporary query

Having tested these back-to-back in Python environments (when I was scripting in Python before discovering FME 😉 ) there is often a very large performance difference for large datasets between on-disk and in-memory databases.

Programmatically, I suspect this is likely a fairly easy enhancement, because this would utilise exactly the same API sqlite3_open() command that creates+opens the SQLite database as InlineQuerier would use now.

Instead of the current InlineQuerier SQLite API call that I suspect looks like this

sqlite3_open(FME_Temporary_SQLite_file_name, ...)

...the suggested optional parameter above for in-memory DB would simply change the InlineQuerier API call to this

sqlite3_open(":memory:", ...)

Also running out of memory is not usually an issue as the standard PRAGMA settings will cache to disk any of the in-memory DB where necessary to to keep within RAM limits.

1 reply

LizAtSafe
Safer
Forum|alt.badge.img+15
  • Safer
  • March 11, 2025
NewOpen

Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings