Hi, https://www.sqlite.org/c3ref/db_filename.html:
> If there is no attached database N on the database connection D, or if database N is a temporary or in-memory database, then a NULL pointer is returned. However, when called for :memory: db the function actually returns "". Looking at the code: /* ** Return the full pathname of the database file. ** ** Except, if the pager is in-memory only, then return an empty string if ** nullIfMemDb is true. This routine is called with nullIfMemDb==1 when ** used to report the filename to the user, for compatibility with legacy ** behavior. But when the Btree needs to know the filename for matching to ** shared cache, it uses nullIfMemDb==0 so that in-memory databases can ** participate in shared-cache. */ SQLITE_PRIVATE const char *sqlite3PagerFilename(Pager *pPager, int nullIfMemDb){ return (nullIfMemDb && pPager->memDb) ? "" : pPager->zFilename; } - as the comment says, it returns an empty string in case of in-memory mode (although "nullIfMemDb" confusingly implies null). I have no idea who is correct here - the code or the documentation - but one of them should probably be corrected? Thanks. -- Best regards, Alex _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users