Re: [sqlite] VFS implementation for SoC
Thank you. It appears that the POSIX function fsync of the SoC has some problem syncing to the local spiffs, but the whole thing works for an external SD filesystem. Regards Arun On Fri, 12 Apr 2019 18:58:36 +0530 Richard Hipp wrote > On 4/12/19, Arun - Siara Logics (cc) wrote: > > Hi, > > > > Please ignore the earlier emails. The extended error code when trying > > CREATE TABLE is 1034 and when trying INSERT is 266. > > You can now visit https://www.sqlite.org/rescode.html and search for > "1034" and "266" to find out what those errors mean. > > > -- > D. Richard Hipp > d...@sqlite.org > ___ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > ___ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] VFS implementation for SoC
On 4/12/19, Arun - Siara Logics (cc) wrote: > Hi, > > Please ignore the earlier emails. The extended error code when trying > CREATE TABLE is 1034 and when trying INSERT is 266. You can now visit https://www.sqlite.org/rescode.html and search for "1034" and "266" to find out what those errors mean. -- D. Richard Hipp d...@sqlite.org ___ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] VFS implementation for SoC
Hi, Please ignore the earlier emails. The extended error code when trying CREATE TABLE is 1034 and when trying INSERT is 266. I have given below the correct log generated during INSERT. Thanks. Regards Arun Enter file name: /spiffs/test.db fn: FullPathNamefn:Fullpathname:Success fn: Open /spiffs/test.db fn:Open:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success Opened database successfully Welcome to SQLite console!! --- Database file: /spiffs/test.db 1. Open database 2. Execute SQL 3. Execute Multiple SQL 4. Close database 5. List folder contents 6. Rename file 7. Delete file Enter choice: 2 Enter SQL (max 500 characters): INSERT INTO test VALUES (shox96_0_2c('This wont get inserted')) fn: Access fn:Access:Success fn: FileSize fn: FlushBuffer fn:FlushBuffer:Success fn:FileSize:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success fn: Open /spiffs/test.db-journal fn:Open:Success fn: Write fn:Write:Success fn: Write fn:Write:Success fn: Write fn:Write:Success fn: Write fn:Write:Success fn: Write fn:Write:Success fn: Write fn: FlushBuffer fn: DirectWrite: fn:DirectWrite:Success fn:FlushBuffer:Success fn:Write:Success fn: Write fn:Write:Success fn: Read fn: FlushBuffer fn: DirectWrite: fn:DirectWrite:Success fn:FlushBuffer:Success fn: FileSize fn: FlushBuffer fn:FlushBuffer:Success fn:FileSize:Success fn: FileSize fn: FlushBuffer fn:FlushBuffer:Success fn:FileSize:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success fn: FileSize fn: FlushBuffer fn:FlushBuffer:Success fn:FileSize:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn:Read:Success fn: Write fn: FlushBuffer fn:FlushBuffer:Success fn:Write:Success fn: Sync fn: FlushBuffer fn: DirectWrite: fn:DirectWrite:Success fn:FlushBuffer:Success fn:Sync:Success SQL error: 266 disk I/O error On Fri, 12 Apr 2019 17:47:21 +0530 Arun - Siara Logics (cc) wrote > I also tried INSERT on an existing database. This time the extended error > is 266. I am giving below the log. > Also, there are two warnings printed during open: > (21) API call with invalid database connection pointer > (21) misuse at line 152855 of [fb90e7189a] > > Regards > Arun > > Enter file name: > /spiffs/test.db > (21) API call with invalid database connection pointer > (21) misuse at line 152855 of [fb90e7189a] > fn: FullPathNamefn:Fullpathname:Success > fn: Open > /spiffs/test.db > fn:Open:Success > fn: Read > fn: FlushBuffer > fn:FlushBuffer:Success > Opened database successfully > > Welcome to SQLite console!! > --- > > Database file: /spiffs/test.db > > 1. Open database > 2. Execute SQL > 3. Execute Multiple SQL > 4. Close database > 5. List folder contents > 6. Rename file > 7. Delete file > > Enter choice: 2 > Enter SQL (max 500 characters): > INSERT INTO test VALUES ('This wont get inserted') > fn: Access > fn:Access:Success > fn: FileSize > fn: FlushBuffer > fn:FlushBuffer:Success > fn:FileSize:Success > fn: Read > fn: FlushBuffer > fn:FlushBuffer:Success > fn: Read > fn: FlushBuffer > fn:FlushBuffer:Success > fn: Read > fn: FlushBuffer > fn:FlushBuffer:Success > fn: Open > /spiffs/test.db-journal > Create mode > fn:Open:Success > fn: Write > fn:Write:Success > fn: Write > fn:Write:Success > fn: Write > fn:Write:Success > fn: Write > fn:Write:Success > fn: Write > fn:Write:Success > fn: Write > fn: FlushBuffer > fn: DirectWrite: > fn:DirectWrite:Success > fn:FlushBuffer:Success > fn:Write:Success > fn: Write > fn:Write:Success > fn: Read > fn: FlushBuffer > fn: DirectWrite: > fn:DirectWrite:Success > fn:FlushBuffer:Success > fn: FileSize > fn: FlushBuffer > fn:FlushBuffer:Success > fn:FileSize:Success > fn: FileSize > fn: FlushBuffer > fn:FlushBuffer:Success > fn:FileSize:Success > fn: Read > fn: FlushBuffer > fn:FlushBuffer:Success > fn: Read > fn: FlushBuffer > fn:FlushBuffer:Success > fn: Read > fn: FlushBuffer > fn:FlushBuffer:Success > fn: Read > fn: FlushBuffer > fn:FlushBuffer:Success > fn: Read > fn: FlushBuffer >
Re: [sqlite] VFS implementation for SoC
I also tried INSERT on an existing database. This time the extended error is 266. I am giving below the log. Also, there are two warnings printed during open: (21) API call with invalid database connection pointer (21) misuse at line 152855 of [fb90e7189a] Regards Arun Enter file name: /spiffs/test.db (21) API call with invalid database connection pointer (21) misuse at line 152855 of [fb90e7189a] fn: FullPathNamefn:Fullpathname:Success fn: Open /spiffs/test.db fn:Open:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success Opened database successfully Welcome to SQLite console!! --- Database file: /spiffs/test.db 1. Open database 2. Execute SQL 3. Execute Multiple SQL 4. Close database 5. List folder contents 6. Rename file 7. Delete file Enter choice: 2 Enter SQL (max 500 characters): INSERT INTO test VALUES ('This wont get inserted') fn: Access fn:Access:Success fn: FileSize fn: FlushBuffer fn:FlushBuffer:Success fn:FileSize:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Open /spiffs/test.db-journal Create mode fn:Open:Success fn: Write fn:Write:Success fn: Write fn:Write:Success fn: Write fn:Write:Success fn: Write fn:Write:Success fn: Write fn:Write:Success fn: Write fn: FlushBuffer fn: DirectWrite: fn:DirectWrite:Success fn:FlushBuffer:Success fn:Write:Success fn: Write fn:Write:Success fn: Read fn: FlushBuffer fn: DirectWrite: fn:DirectWrite:Success fn:FlushBuffer:Success fn: FileSize fn: FlushBuffer fn:FlushBuffer:Success fn:FileSize:Success fn: FileSize fn: FlushBuffer fn:FlushBuffer:Success fn:FileSize:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: FileSize fn: FlushBuffer fn:FlushBuffer:Success fn:FileSize:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Write fn: FlushBuffer fn:FlushBuffer:Success fn:Write:Success fn: Sync fn: FlushBuffer fn: DirectWrite: fn:DirectWrite:Success fn:FlushBuffer:Success fn:Sync:Success SQL error: 266 disk I/O error Time taken:310381 us On Fri, 12 Apr 2019 17:30:14 +0530 Arun - Siara Logics (cc) wrote > Hi, Thank you for the suggestion. The sqlite3_extended_errcode() is 1034 > disk I/O error. > Regards > Arun > > On Fri, 12 Apr 2019 17:06:00 +0530 Richard Hipp > wrote > > On 4/12/19, Arun - Siara Logics (cc) wrote: > > > fn:DirectWrite:Success > > > fn:FlushBuffer:Success > > > fn:Sync:Success > > > SQL error: disk I/O error > > > > > > At the end, there are two files on disk: vfs_test.db (0 bytes) and > > > vfs_test.db-journal (512 bytes). There is no problem reading a > database. > > > But when CREATE or INSERT is involved, it gives disk I/O error. > > > > > > Any idea why it is throwing disk I/O error, inspite of the previous sync > > > success? Any suggestions on how I could figure it out? > > > > Please tell us the sqlite3_extended_errcode(). Also, consider > > enabling the error and warning log > > (https://www.sqlite.org/errlog.html) > > > > > > > > > > Regards > > > Arun > > > > > > > > > ___ > > > sqlite-users mailing list > > > sqlite-users@mailinglists.sqlite.org > > > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > > > > > > > > > -- > > D. Richard Hipp > > d...@sqlite.org > > ___ > > sqlite-users mailing list > > sqlite-users@mailinglists.sqlite.org > > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > > > > ___ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > ___ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] VFS implementation for SoC
Hi, Thank you for the suggestion. The sqlite3_extended_errcode() is 1034 disk I/O error. Regards Arun On Fri, 12 Apr 2019 17:06:00 +0530 Richard Hipp wrote > On 4/12/19, Arun - Siara Logics (cc) wrote: > > fn:DirectWrite:Success > > fn:FlushBuffer:Success > > fn:Sync:Success > > SQL error: disk I/O error > > > > At the end, there are two files on disk: vfs_test.db (0 bytes) and > > vfs_test.db-journal (512 bytes). There is no problem reading a database. > > But when CREATE or INSERT is involved, it gives disk I/O error. > > > > Any idea why it is throwing disk I/O error, inspite of the previous sync > > success? Any suggestions on how I could figure it out? > > Please tell us the sqlite3_extended_errcode(). Also, consider > enabling the error and warning log > (https://www.sqlite.org/errlog.html) > > > > > > Regards > > Arun > > > > > > ___ > > sqlite-users mailing list > > sqlite-users@mailinglists.sqlite.org > > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > > > > > -- > D. Richard Hipp > d...@sqlite.org > ___ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > ___ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] VFS implementation for SoC
On 4/12/19, Arun - Siara Logics (cc) wrote: > fn:DirectWrite:Success > fn:FlushBuffer:Success > fn:Sync:Success > SQL error: disk I/O error > > At the end, there are two files on disk: vfs_test.db (0 bytes) and > vfs_test.db-journal (512 bytes). There is no problem reading a database. > But when CREATE or INSERT is involved, it gives disk I/O error. > > Any idea why it is throwing disk I/O error, inspite of the previous sync > success? Any suggestions on how I could figure it out? Please tell us the sqlite3_extended_errcode(). Also, consider enabling the error and warning log (https://www.sqlite.org/errlog.html) > > Regards > Arun > > > ___ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > -- D. Richard Hipp d...@sqlite.org ___ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] VFS implementation for SoC
I am trying to implement the demo VFS provided at https://www.sqlite.org/src/doc/trunk/src/test_demovfs.c for a System on Chip (ESP32) that has its own inbuilt filesystem (spiffs), No changes have been made to the above code except, I had to add following code in the demoOpen method, just before call to "open" POSIX method: if ( flags_OPEN_READWRITE || flags_OPEN_MAIN_JOURNAL ) { struct stat st; memset(, 0, sizeof(struct stat)); int rc = stat( zName, ); Serial.println(zName); if (rc == -1) { int fd = open(zName, (O_CREAT | O_EXCL), S_IRUSR | S_IWUSR); close(fd); //oflags |= (O_CREAT | O_RDWR); Serial.println("Create mode"); } } since it was not creating the file and giving error at Open. I have given below the log of VFS function calls when calling sqlite3_open() and sqlite3_exec() for simple table creation CREATE TABLE t1 (c1): Enter file name: /spiffs/test_vfs.db fn: FullPathNamefn:Fullpathname:Success fn: Open /spiffs/test_vfs.db Create mode fn:Open:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success Opened database successfully Enter SQL (max 500 characters): CREATE TABLE t1 (c1) fn: Access fn:Access:Success fn: FileSize fn: FlushBuffer fn:FlushBuffer:Success fn:FileSize:Success fn: Open /spiffs/test_vfs.db-journal Create mode fn:Open:Success fn: Write fn:Write:Success fn: Read fn: FlushBuffer fn: DirectWrite: fn:DirectWrite:Success fn:FlushBuffer:Success fn: Sync fn: FlushBuffer fn:FlushBuffer:Success fn:Sync:Success fn: FileSize fn: FlushBuffer fn:FlushBuffer:Success fn:FileSize:Success fn: FileSize fn: FlushBuffer fn:FlushBuffer:Success fn:FileSize:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: FileSize fn: FlushBuffer fn:FlushBuffer:Success fn:FileSize:Success fn: Read fn: FlushBuffer fn:FlushBuffer:Success fn: Write fn:Write:Success fn: Sync fn: FlushBuffer fn: DirectWrite: fn:DirectWrite:Success fn:FlushBuffer:Success fn:Sync:Success SQL error: disk I/O error At the end, there are two files on disk: vfs_test.db (0 bytes) and vfs_test.db-journal (512 bytes). There is no problem reading a database. But when CREATE or INSERT is involved, it gives disk I/O error. Any idea why it is throwing disk I/O error, inspite of the previous sync success? Any suggestions on how I could figure it out? Regards Arun ___ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users