Giter Site home page Giter Site logo

esp32_arduino_sqlite3_lib's Introduction

Sqlite3 Arduino library for ESP32

Note: This is a general purpose library based on the Sqlite codebase. For logging sensor data into database please use Sqlite Micro Logger, which is faster and memory efficient.

This library enables access to SQLite database files from SPIFFS or SD Cards through ESP32 SoC. Given below is a picture of a board that has a ready-made Micro SD slot (using SDMMC 4 bit mode - see example sqlite3_sdmmc):

Also shown below is the wiring between ESP-WROOM-32 breakout board and Micro SD Shield (using SPI mode - see example sqlite3_sdspi):

Why Sqlite on ESP32 is exciting?

Sqlite3 is the favourite database of all that is portable and widely used. Availability on ESP32 platform makes it even more portable. Sqlite can handle terrabyte sized data, ACID compliant and guaranteed to be stable.

So far IoT systems could offer SD Card access, which enabled gigabyte size files accessible, but was not fully utilized because the libraries that were available so far (such as Arduino Extended Database Library or SimpleDB) offered only record number based or linear search and are terribly slow for key based indexed search.

Sqlite stores data in B+Tree pages and so can locate data from millions of records using variable length keys without exerting stress on CPU or RAM. This is demonstrated using the sample databases provided in the example sections.

Even with the 500 odd kilbytes RAM available on ESP32, millions of records and gigabyte sized databases can be accessed.

Usage

Sqlite3 C API such as sqlite3_open can be directly invoked. Before calling please invoke:

   SD_MMC.begin(); // for Cards attached to the High speed 4-bit port 
   SPI.begin(); SD.begin(); // for Cards attached to the SPI bus
   SPIFFS.begin(); // For SPIFFS

as appropriate.

The ESP32 Arduino library has an excellent VFS layer. Even multiple cards can be supported on the SPI bus by specifying the pin number and mount point using the begin() method.

The default mount points are:

   '/sdcard' // for SD_MMC 
   '/sd' // for SD on SPI
   '/spiffs' // For SPIFFS

and the filenames are to be prefixed with these paths in the sqlite3_open() function (such as sqlite3_open("/spiffs/my.db")).

Please see the examples for full illustration of usage for the different file systems. The sample databases given (under examples/sqlite3_sdmmc/data folder) need to be copied to the Micro SD card root folder before the SD examples can be used. Please see the comments section of the example.

Wiring

While there is no wiring needed for SPIFFS, for attaching cards to SPI bus, please use the following connections:

 * SD Card    |  ESP32
 *  DAT2 (1)      -
 *  DAT3 (2)      SS (D5)
 *  CMD  (3)      MOSI (D23)
 *  VDD  (4)      3.3V
 *  CLK  (5)      SCK (D19)
 *  VSS  (6)      GND
 *  DAT0 (7)      MISO (D18)
 *  DAT1 (8)      -

And for SD card attached to High-speed 4-bit SD_MMC port, use:

 * SD Card    |  ESP32
 *  DAT2 (1)      D12
 *  DAT3 (2)      D13
 *  CMD  (3)      D15
 *  VDD  (4)      3.3V
 *  CLK  (5)      D14
 *  VSS  (6)      GND
 *  DAT0 (7)      D2
 *  DAT1 (8)      D4

If you are using a board such as shown in the picture above, this wiring is ready-made.

Installation

Please download this library, unzip it to the libraries folder of your ESP32 sdk location. The location varies according to your OS. For example, it is usually found in the following locations:

Windows: C:\Users\(username)\AppData\Roaming\Arduino15
Linux: /home/<username>/.arduino15
MacOS: /home/<username>/Library/Arduino15

Under Arduino15 folder please navigate to packages/esp32/hardware/esp32/<version>/libraries

If you do not have the ESP32 sdk for Arduino, please see https://github.com/espressif/arduino-esp32 for installing it.

Dependencies / pre-requisites

No dependencies except for the Arduino and ESP32 core SDK. The Sqlite3 code is included with the library.

Limitations on ESP32

  • No serious limitations, except its a bit slow on large datasets. It takes around 700 ms to retrieve from a dataset containing 10 million rows, even using the index.

Limitations of this library

  • Locking is not implemented. So it cannot be reliably used in a multi-threaded / multi-core code set, except for read-only operations.

Limitations of Flash memory

Any Flash memory such as those available on SPIFFS or Micro SD cards have limitation on number of writes / erase per sector. Usually the limitation is 10000 writes or 100000 writes (on the same sector). Although ESP32 supports wear-levelling, this is to be kept in mind before venturing into write-intensive database projects. There is no limitation on reading from Flash.

Compression with Shox96

(Shox96 is deprecated and Unishox explained below will be supported in future).

This implementation of sqlite3 includes two functions shox96_0_2c() and shox96_0_2d() for compressing and decompressing text data.

Shox96 is a compression technique developed for reducing storage size of Short Strings. Details of how it works can be found here.

As of now it can work on only strings made of 'A to Z', 'a to z', '0-9', Special Characters such as &*() etc. found on keyboard, CR, LF, TAB and Space.

In general it can achieve upto 40% size reduction for Short Strings.

Usage

The following set of commands demonstrate how compression can be accomplished:

create table test (b1 blob);
insert into test values (shox96_0_2c('Hello World'));
insert into test values (shox96_0_2c('Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry''s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.'));
select txt, length(txt) txt_len from (select shox96_0_2d(b1) txt from test);
select length(b1) compressed_len from test;

See screenshots section for output.

Limitations (for Shox96)

  • Trying to decompress any blob that was not compressed using shox96_0_2c() will crash the program.
  • It does not work if the string has binary characters. that is, other than ASCII 32 to 126, CR, LF and Tab.
  • Dictionary based compression / decompression is not yet implemented.

Compression with Unishox

This implementation also includes two functions unishox1c() and unishox1d() for compressing and decompressing text data.

Unishox is a compression technique developed for reducing storage size of Short Unicode Strings. Details of how it works can be found here.

In general it can achieve upto 40% size reduction for Short Strings.

Usage

The usage is similar to that of Shox96, only in this case UTF-8 strings can be used.

See screenshots section for output.

Limitations (for Unishox)

  • Trying to decompress any blob that was not compressed using unishox1c() will crash the program.

Acknowledgements

Screenshots

Output of Micro SD example

Output of SD Card database query through WebServer example

SQLite console

Unishox compression

Output of Querying StackOverflow DB through WebServer example:

Issues

Please contact the author or create issue here if you face problems.

esp32_arduino_sqlite3_lib's People

Contributors

jojo2357 avatar siara-cc avatar siara-in avatar tobozo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esp32_arduino_sqlite3_lib's Issues

SQL error: file is not a database.

Hello, I'm trying to use SPIFFS with a very little 3 row Database with the ESP32 Dev Module.
My problem is that the sketch is succesfully opening the data base but no making the query.

Maybe I have an error when I make de .sql file. This is the schema:

PRAGMA foreign_keys = on; 
PRAGMA journal_mode = WAL;
PRAGMA page_size=512; VACUUM;
drop table if exists users;
create table if not exists users(
    id_user                integer      primary key,
    fullname               text  not null,
    username               text  not null,
    password               text  not null,
    status                 text  not null default 't',
    admin                  text  not null default 't'
);
create unique index if not exists users_id_user  on users (id_user);
create unique index if not exists users_username on users (username);
insert into users (fullname,username,password,status,admin)values('Mรกster Vitronic','vitronic','123456','t','t');
insert into users (fullname,username,password,status,admin)values('Marcel Guzman'  ,'konev'   ,'123456','t','t');
insert into users (fullname,username,password,status,admin)values('Daniel Aguilar' ,'daniel'  ,'123456','t','t');

And this is the Arduino Skecth

#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
#include <SPI.h>
#include <FS.h>
#include "SPIFFS.h"

/* You only need to format SPIFFS the first time you run a
   test or else use the SPIFFS plugin to create a partition
   https://github.com/me-no-dev/arduino-esp32fs-plugin */
#define FORMAT_SPIFFS_IF_FAILED true

const char* data = "Callback function called";
static int callback(void *data, int argc, char **argv, char **azColName) {
   int i;
   Serial.printf("%s: ", (const char*)data);
   for (i = 0; i<argc; i++){
       Serial.printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
   }
   Serial.printf("\n");
   return 0;
}

int db_open(const char *filename, sqlite3 **db) {
   int rc = sqlite3_open(filename, db);
   if (rc) {
       Serial.printf("Can't open database: %s\n", sqlite3_errmsg(*db));
       return rc;
   } else {
       Serial.printf("Opened database successfully\n");
   }
   return rc;
}

char *zErrMsg = 0;
int db_exec(sqlite3 *db, const char *sql) {
   Serial.println(sql);
   long start = micros();
   int rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
   if (rc != SQLITE_OK) {
       Serial.printf("SQL error: %s\n", zErrMsg);
       sqlite3_free(zErrMsg);
   } else {
       Serial.printf("Operation done successfully\n");
   }
   Serial.print(F("Time taken:"));
   Serial.println(micros()-start);
   return rc;
}

void setup() {

   Serial.begin(115200);
   sqlite3 *db1;
   sqlite3 *db2;
   int rc;

   if (!SPIFFS.begin(FORMAT_SPIFFS_IF_FAILED)) {
       Serial.println("Failed to mount file system");
       return;
   }

   // list SPIFFS contents
   File root = SPIFFS.open("/");
   if (!root) {
       Serial.println("- failed to open directory");
       return;
   }
   if (!root.isDirectory()) {
       Serial.println(" - not a directory");
       return;
   }
   File file = root.openNextFile();
   while (file) {
       if (file.isDirectory()) {
           Serial.print("  DIR : ");
           Serial.println(file.name());
       } else {
           Serial.print("  FILE: ");
           Serial.print(file.name());
           Serial.print("\tSIZE: ");
           Serial.println(file.size());
       }
       file = root.openNextFile();
   }

  sqlite3_initialize();
   if (db_open("/spiffs/db.db", &db1))
       return;
   
   rc = db_exec(db1, "SELECT * FROM users");
   if (rc != SQLITE_OK) {
       sqlite3_close(db1);
       return;
   }
    sqlite3_close(db1);    
}

void loop() {
}

And finally, the OUTPUT msg:

 FILE: /db.db	SIZE: 16384
Opened database successfully
SELECT * FROM users
SQL error: file is not a database
Time taken:4142

[Question] How to properly escape quoted strings to avoid SQL errors and/or injections ?

I have a few SQL insertion queries that will fail, whether I use single or double quotes along with unescaped contents.

I've been using Arduino's String.replace() for a while now but I feel this is as slow as it is unappropriate.

Back to my PHP+MySQL experience, I remember dealing with functions such as mysql::escape or mysqli::prepare that made such operation easier to deal with.

Is there such a thing as sqlite_escape_query() or sqlite_escape_value() ?

Problem with bluetooth.serial

Hello, when the program reaches this cicle (with bluetooth activated)

while (sqlite3_step(res) == SQLITE_ROW) {....}

the esp32 resets itself returning the following error:

Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x400f0a0c PS : 0x00060430 A0 : 0x800d3710 A1 : 0x3ffd0af0
A2 : 0x00000000 A3 : 0x00000000 A4 : 0x00000000 A5 : 0x00000001
A6 : 0x3ffc6f48 A7 : 0x00000008 A8 : 0x80120a88 A9 : 0x3ffd09a0
A10 : 0x00000015 A11 : 0x3f401aec A12 : 0x00000002 A13 : 0x00000080
A14 : 0x00000000 A15 : 0x3ffd0b1c SAR : 0x00000018 EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000010 LBEG : 0x4000c349 LEND : 0x4000c36b LCOUNT : 0xffffffff

Backtrace: 0x400f0a0c:0x3ffd0af0 0x400d370d:0x3ffd0b10 0x400d64ae:0x3ffd0b40 0x4012e001:0x3ffd0b90 0x4008f47d:0x3ffd0bb0

C: 0x400f0a0c: sqlite3_clear_bindings at C:\Users\illo\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 82679
EXCVADDR: 0x00000010

Decoding stack results
0x400f0a0c: sqlite3_clear_bindings at C:\Users\illo\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 82679
0x400d370d: trovaRigaDaInviare() at C:\Users\illo\AppData\Local\Temp\arduino_modified_sketch_171022/iSQLite.ino line 222
0x400d64ae: loop() at C:\Users\illo\AppData\Local\Temp\arduino_modified_sketch_171022/MK03_0.52.ino line 459
0x4012e001: loopTask(void*) at C:\Users\illo\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\cores\esp32\main.cpp line 19
0x4008f47d: vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c line 143

this is one of the errors i found, but in general with bluetooth attached there are problems when i try to access the database.

Disk I/O issues on SPIFFS

Currently I'm trying to insert 1000+ entries into a db with a modified sqlite_bulk_data_insert.ino (to use SPIFFS).

I'm getting periodic disk I/O errors, seemingly at random, but with increasing frequency the larger the database becomes. Notably executing further inserts after the error presents no issues (until a certain limit on partition usage).

Looking at the heap values, they remain unchanged, could it be that the heap is getting fragmented?

Are periodic I/O errors expected?

esp32 SPIRAM replacement for malloc

Is there an existing override in the library to use the external spiram of the esp32 for the heap?
if not, is it possible for you to create a new one with the following:

#include "esp_heap_caps.h"
#define SQLITE_MALLOC(x) heap_caps_malloc(x, MALLOC_CAP_SPIRAM) //modified was malloc
#define SQLITE_FREE(x) heap_caps_free(x) //modified was free
#define SQLITE_REALLOC(x,y) heap_caps_realloc((x),(y),MALLOC_CAP_SPIRAM) //modified was realloc

slow insertion - how to improve speed if need to insert large amount of rows ?

Hi There

thanks for creating this neat sqlite for ESP.
quick question, I realise the insertion is kind of slow,
how do I ensure fast insertion yet does not run out memory ?

I am using this to log sensor data, so it can be easily retrieve and manage later.
the sensor is pumping out 4-5 lines(100 bytes a line) of data every second.
and since I have other things to do when dealing with this output, I will prefer the logging to be as fast as possible.

Justin

database-disk-image-malformed

can one database have many tables?, I try one database of two tables and it doesn't work and raises a "database-disk-image-malformed" error message in the second table

"SQL error: out of memory" when insert data to table.

System return "SQL error: out of memory" when inserts data into a table that has more than (~ 250 rows)

Insert into pqmeter_data (meter_id, exid, w, wh, pf, varh, i0, i1, i2, v0, v1, v2,thdvr, thdvs, thdvt, thdir, thdis, thdit, vunbr, vunbs, vunbt, chr3, chs3, cht3, chr5, chs5, cht5, chr7, chs7, cht7, chr9, chs9, cht9, chr11, chs11, cht11, chr13, chs13, cht13, chr15, chs15, cht15, freq, mdt) values ('1', '125', '0.0000', '0.0000', '0.0000', '0.0000', '0.00', '0.00', '0.00', '224.71', '112.61', '112.38', '1.41', '1.71', '1.68', '0.00', '0.00', '0.00', '49.91', '24.88', '25.03', '0.50', '0.84', '0.85', '1.02', '1.25', '1.23', '0.37', '0.23', '0.24', '0.60', '0.48', '0.46', '0.27', '0.27', '0.26', '0.23', '0.32', '0.31', '0.00', '0.00', '0.00', '49.96', '1552917357')
SQL error: out of memory

System return "SQL error: out of memory" when inserts data into a table that has more than (~ 5000 rows)
Insert into sensor_data (sensor_id, exid, a0, a1, a2, a3, a4, a5, a6, a7, sdt) values ('1', '1021', '-12.492', '0', '0', '0', '0', '0', '0', '0', '1552918218')
SQL error: out of memory

"SELECT" statement still works fine in those tables.
And "INSERT" into other tables still work too.

Please suggest what I can do.

Thank you.

ESP32 with Arduino Framework Freezes

Hi,
I have such algorithm that request SELECT query every second on ESP32 and sql file on SPIFFS. It works well but at a random time it throws an exception and ESP32 just freezes. I have searched and found that the error is related with accessing to flash memory while ISR triggered. But I can't resolve the problem.

Here is Console output after problem occured.

15:28:51.228 -> Guru Meditation Error: Core 1 panic'ed (Cache disabled but cached memory region accessed) 15:28:51.228 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.228 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.228 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.228 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.262 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.262 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.262 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.262 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.262 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.300 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.300 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.300 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.300 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.300 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.300 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.349 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.349 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.349 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.349 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.349 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.349 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.349 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.349 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.386 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.386 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.386 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.386 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.386 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.386 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.433 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.433 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.433 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.433 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.433 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.433 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.433 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.433 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.480 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.480 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.480 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.480 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.480 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.480 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.480 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.518 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.518 -> Memory dump at 0x40128b24: bad00bad bad00bad bad00bad 15:28:51.518 -> Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. 15:28:51.518 -> Memory dump at 0x40128b24:Guru Meditation Error: Core 1 panic'ed (Unhandled debug exception) 15:28:51.518 -> Debug exception reason: BREAK instr Guru Meditation Error: Core 1 panic'ed (Double exception) 15:28:51.565 -> Guru Meditation Error: Core 1 panic'ed (Double exception) 15:28:51.565 -> Guru Meditation Error: Core 1 panic'ed (

ESP32 stoped working and even watchdog not triggered.

If its required I may share the code.

Thanks for your help.

Need help with insert statement

Arun,

I am testing your excellent library and works fine with static data insert and select queries as tested with following sketch:

https://github.com/happytm/BatteryNode/blob/master/test/SQLite3.ino

Now I tried to use same code in larger project where data has to be inserted in to SQLite3 database dynamically from remote devices. My project receives data fine from remote devices but it fails to insert data in to database. The project sketch is at link below:

https://github.com/happytm/BatteryNode/blob/master/test/SQLite3_Proberequest.ino

Can you please look at both code with your expert eye and see where I am making mistake?

Thanks.

(778) SQLITE_IOERR_WRITE when adding a table using UNIQUE or PRIMARY KEY on spiffs

I am having an issue where I cannot add tables using UNIQUE or PRIMARY KEY. This produces an disk i/o error. my DB file is on SPIFFS. I do not have an SD card, so can't test if this happens on SD.

To reproduce the issue:

  1. load example code sqlite3_spiffs (I can compile and run fine here, no issues) https://github.com/siara-cc/esp32_arduino_sqlite3_lib/tree/master/examples/sqlite3_spiffs
  2. Change the SQL command on line 102 to have either PRIMARY KEY or UNIQUE for any column
    rc = db_exec(db1, "CREATE TABLE test1 (id INTEGER UNIQUE, content);");
  3. compile and run. Now the i/o error shows up.

load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8
FILE: /test1.db SIZE: 0
FILE: /test2.db SIZE: 0
FILE: /test1.db-journal SIZE: 1024
Opened database successfully
Opened database successfully
CREATE TABLE test1 (id INTEGER UNIQUE, content);
SQL error: disk I/O error
Time taken:17245

From https://www.sqlite.org/rescode.html#ioerr_write:

(778) SQLITE_IOERR_WRITE
The SQLITE_IOERR_WRITE error code is an extended error code for SQLITE_IOERR indicating an I/O error in the VFS layer while trying to write into a file on disk. This error might result from a hardware malfunction or because a filesystem came unmounted while the file was open. This error should not occur if the filesystem is full as there is a separate error code (SQLITE_FULL) for that purpose.

And here's some info on the VFS layer: https://www.sqlite.org/vfs.html

I can't figure out why adding UNIQUE to the sql would cause a disk error. Even with debugging set to verbose, I'm not getting any more information. Using the console example, I was able to get the 778 error code when entering the same CREATE TABLE sql command, but I'm stuck there. I can't seem to get any more info.

Based on the nature of the 778 error being related to the VFS layer, it seems like the issue might be in the library.

Any thoughts?

UNION or JOINS in views

This library is very very helpfull for my projects.
But i need to create views with UNION, or LEFT JOIN.
When i create a view like "CREATE VIEW view1 AS SELECT id, data AS tbl1 UNION SELECT id, data AS tbl2;" directly from the sqlite3_console example with a database with 2 tables, i've this error :
SQL error: 1 parser stack overflow

I've the same error if i create the view in the database from my computer, succesfully test it, and try to use the database from the ESP (esp32)

Is there an option to activate, to do this ?

Thnaks.

PRAGMA not being processed?

I've been trying to run some PRAGMA commands, but they all seem to be ignored. Specifically, what I'm trying to do is set PRAGMA journal_mode = MEMORY but after setting this, when I do in insert transaction, the journal on the file system is still being accessed. I tested this by putting logging in the esp32.cpp file to log when ESP32Access() was called. and it is called for the database.db-journal file when performing a write transaction.

This had me investigate more into the PRAGMA situation, and it seems like none of the PRAGMAs are having an effect. (I haven't tested everything, just a random sampling). I also can't get any PRAGMA calls to return anything to check what the current values are set to. For example running PRAGMA journal_mode should return the current journal mode. I've also experimented with alternate syntax such as SELECT * FROM pragma_journal_mode with no success. I've checked for results in the prepare statement and the step statements too, as I have read that some PRAGMAs return on the prepare statement in the c++ api.

I checked the config and it looks like they should be working. Both of these are undefined, which means they should be included in the compile:

#undef SQLITE_OMIT_PAGER_PRAGMAS
#undef SQLITE_OMIT_PRAGMA

Am I missing something else?

Temporary sort file, Watch dog

Hi.
Thanks for adapting sqlite3 for esp32.
I researched the work of the library for several months.
On some requests, I began to receive the "disk I / O error" error. I got into the source and found that there is no way to create temporary files.
in esp32.cpp: ESP32Open

const char *zName,              /* File to open, or 0 for a temp file */
...
if( zName==0 ){
  return SQLITE_IOERR;
}

i replaced return SQLITE_IOERR; to zName = "/sd/temp";
and selection of 1000 records with sorting began to work.

It is also worth adding feeding the WatchDog on requests longer than 3 seconds if execute worked in main loop task, otherwise it will fire, may by in ESP32Read and ESP32Write, or add some callbacks.

max performance i have with
#define SQLITE_DEFAULT_PAGE_SIZE 512 //4096
#define SQLITE_DEFAULT_CACHE_SIZE -8 // -1

Support for esp-idf

There should be no problems to use this library with esp-idf (without Arduino-core).
It would be nice if you can include some examples of how to use it in a pure esp-idf project.

ESP rebooting on insert record and issue in inserting values to fields

Hi
I am using the sqlite.h library on Arduinio IDE with an ESP32. I have push button that when pressed should insert a new record with data from a random number which is and integer and a string. if I push the button the ESP32 does a reset. Nothing else is connected to it except the button.

The button calls a function called insertrecord()
I can see using serial monitor that with the insertrecord() function it gets all the way down to the
Serial.println("Inserting new record"); before it reboots. It also does this when I call the printallrecords() function.

One other thing I am struggling with please, is how do you pass a value like a analog pin reading as an integer
into the an integer field such as readingvalue or a string into a string field in a table? I want to eventually attach sensors so will need to store and read back the number they generate.

Any help on this would be much appreciated. I have treid for hours and googled lots but made very little progress.

The database is called test.db its path is /spiffs/test.db
The table is called aoreadings and has three fields which are id which is an integer, readvalue which is an integer and status which is used to hold a string value.
I can see that the database and table are created correctly.

My code is below and I have pasted in the error code below that.

Many thanks in advanced
Chazza

[code]

#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
#include <SPI.h>
#include <FS.h>
#include <SPIFFS.h>

#define FORMAT_SPIFFS_IF_FAILED true

const int buttonPin = 12; // the number of the pushbutton pin
int buttonState = 0; // variable for reading the pushbutton status

char *zErrMsg = 0;

const char* data = "Callback function called";

// callback function
static int callback(void NotUsed, int argc, char argv, char azColName) {
int i;
for (i = 0; i < argc; i++) {
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
} //
*********************************************************************

// opens database if it does not exist it creates it.
int db_open(const char filename, sqlite3 db) {
int rc = sqlite3_open(filename, db);
// Serial.print("rc is: ");Serial.println(rc);
if (rc) {
Serial.printf("Can't open database: %s\n", sqlite3_errmsg(db));
return rc;
} else {
Serial.printf("Opened database successfully\n");
}
return rc;
} //
**********************************************************************

// executes database engine commands
int db_exec(sqlite3 db, const char sql) {
// Serial.println(sql);
long start = micros();
int rc = sqlite3_exec(db, sql, callback, (void
)data, &zErrMsg);
if (rc != SQLITE_OK) {
Serial.printf("SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
} else {
// Serial.printf("Operation done successfully\n");
}
// Serial.print(F("Time taken:"));
// Serial.println(micros() - start);
return rc;
} //
*************************************************************************

void setup() {
Serial.begin(115200); Serial.println("Setup Started");

pinMode(buttonPin, INPUT_PULLUP);

SPIFFS.begin(); // For SPIFFS
// print files on on spiffs
checkspifffiles();

// check if database exists. If not create it
sqlite3 *db1;
if (db_open("/spiffs/test.db", &db1))
return;

int rc = db_exec(db1, "CREATE TABLE IF NOT EXISTS aoreadings (id INTEGER, readvalue INTEGER, status);");
if (rc != SQLITE_OK) {
sqlite3_close(db1);
return;
}

Serial.println("=============================");

Serial.println("Setup Finished");
} //**************************************************************************

// the loop function runs over and over again until power down or reset
void loop() {
buttonState = digitalRead(buttonPin);

if (buttonState == LOW) {
Serial.println("Button Pressed");
insertrecord();
// printallrecords();
delay(1000);
}

} //**************************************************************************

void insertrecord() {

int reading = random(0, 1023);
String statusStr = "";
if (reading >= 750) {
statusStr = "HIGH";
} else if (reading <= 749 and reading >= 500) {
statusStr = "MEDIUM";
} else if (reading <= 499 and reading >= 0) {
statusStr = "LOW";
}

Serial.print("AO reading is : "); Serial.println(reading);
Serial.print("Status is : "); Serial.println(statusStr);

// insert values
int rc;
sqlite3 *db1;

Serial.println("Inserting new record"); delay(200);

// line below to add new record with default values when button pushed for testing
rc = db_exec(db1, "INSERT INTO aoreadings VALUES (1, 2, 'abcdefg');");

// line below add new record with value 1 in id field, reading in readvalue field and
// StatusStr into status field when button pushed
// rc = db_exec(db1, "INSERT INTO aoreadings VALUES (id, readvalue, status);(1, reading, statusStr)");

if (rc != SQLITE_OK) {
sqlite3_close(db1);
return;
}

} //**************************************************************************

void printallrecords() {
// insert values
int rc;
sqlite3 *db1;

Serial.println("Print all records");

// select all records
Serial.println("Printing all records");
rc = db_exec(db1, "SELECT * FROM aoreadings");
if (rc != SQLITE_OK) {
sqlite3_close(db1);
return;
}
Serial.println("=============================");

}

void checkspifffiles() {
if (!SPIFFS.begin(FORMAT_SPIFFS_IF_FAILED)) {
Serial.println("Failed to mount file system");
return;
}

// list SPIFFS contents
File root = SPIFFS.open("/");
if (!root) {
Serial.println("- failed to open directory");
return;
}
if (!root.isDirectory()) {
Serial.println(" - not a directory");
return;
}
File file = root.openNextFile();
while (file) {
if (file.isDirectory()) {
Serial.print(" DIR : ");
Serial.println(file.name());
}
else {
Serial.print(" FILE: ");
Serial.print(file.name());
Serial.print("\tSIZE: ");
Serial.println(file.size());
}
file = root.openNextFile();
}
}
[/code]

*********** ERROR *****************

Setup Started
FILE: /test.db SIZE: 8192
FILE: /test.db-journal SIZE: 512
Opened database successfully

Setup Finished
Button Pressed
AO reading is : 79

Status is : LOW
Inserting new record
Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x400014fd PS : 0x00060130 A0 : 0x801266b8 A1 : 0x3ffb1ab0
A2 : 0x00000000 A3 : 0xfffffffc A4 : 0x000000ff A5 : 0x0000ff00
A6 : 0x00ff0000 A7 : 0xff000000 A8 : 0x00000000 A9 : 0x00000001
A10 : 0x00000000 A11 : 0x00000000 A12 : 0x00000000 A13 : 0x00000001
A14 : 0x0000000a A15 : 0x3ffbc5f0 SAR : 0x0000000c EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000000 LBEG : 0x400014fd LEND : 0x4000150d LCOUNT : 0xffffffff

Backtrace: 0x400014fd:0x3ffb1ab0 0x401266b5:0x3ffb1ac0 0x4012dc2e:0x3ffb1dd0 0x4012dc6a:0x3ffb1e60 0x40114c0a:0x3ffb1ea0 0x400d1546:0x3ffb1f40 0x400d15fe:0x3ffb1f60 0x400d165f:0x3ffb1f90 0x40115391:0x3ffb1fb0 0x40088385:0x3ffb1fd0

Rebooting...
ets Jun 8 2016 00:22:57
``

disk I/O error on transaction with two tables on release 2.3

Hello @siara-cc ,

I've updated my library with the latest of your releases and found out that the same error that was occurring last month, solved on issue #21 , is now happening again.

By comparing the two versions, I've noticed that if I comment this line of code
#define SQLITE_DEFAULT_CACHE_SIZE -1
on config_ext.h, it works, at least for my case, at least for now.

Please, take a look whenever you can. Thank you.

PRAGMA ?

Hello, i don't find why PRAGMA don't work. I try:

const char* data = "Output:";
static int callback(void *data, int argc, char **argv, char **azColName) {
  for (int i = 0; i<argc; i++) {
    if (i)
      Serial.print((char) '\t');
    Serial.printf("%s", argv[i] ? argv[i] : "NULL");
  }
  Serial.printf("\n");
  return 0;
}

void test()
{
  // Open database

  std::string dbSQL = "PRAGMA pragma_list;";
  
  int rc = sqlite3_exec(dbFile, dbSQL.c_str(), callback, (void*)data, &dbErrMsg);
  if (rc != SQLITE_OK) {
    Serial.print(F("SQL error: "));
    Serial.print(sqlite3_extended_errcode(dbFile));
    Serial.print(" ");
    Serial.println(dbErrMsg);
    sqlite3_free(dbErrMsg);
  }

i get empty result, same code with "select * from settings" get my table.
I want use "PRAGMA integrity_check" for restore backup at start if error found.
Thanks for the help.

ESP SDK 1.0.1-rc

Hello and thanks for this awesome library !

I've been playing with it on ESP32 for a few weeks now and it works like a charm.

Last night Espressif did a release candidate for the 1.0.1 SDK for Arduino IDE (which you can update from your boards manager) and today the sqlite3 library won't compile.

Compile log (...)
In file included from ~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:13476:0:
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c: In function 'pcache1TruncateUnsafe':
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:48838:11: error: 'nPage' undeclared (first use in this function)
   assert( nPage<0 || pCache->nPage==(unsigned)nPage );
           ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                    ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:48838:11: note: each undeclared identifier is reported only once for each function it appears in
   assert( nPage<0 || pCache->nPage==(unsigned)nPage );
           ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c: In function 'pcache1Fetch':
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:49201:11: error: 'pCache' undeclared (first use in this function)
   assert( pCache->bPurgeable || createFlag!=1 );
           ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c: In function 'sqlite3PagerUnrefNotNull':
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:55770:33: error: 'pPager' undeclared (first use in this function)
   assert( sqlite3PcacheRefCount(pPager->pPCache)>0 );
                                 ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c: In function 'cellSizePtr':
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:63969:18: error: 'debuginfo' undeclared (first use in this function)
   assert( nSize==debuginfo.nSize || CORRUPT_DB );
                  ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c: In function 'cellSizePtrNoPayload':
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:63990:11: error: 'debuginfo' undeclared (first use in this function)
   assert( debuginfo.nSize==(u16)(pIter - pCell) || CORRUPT_DB );
           ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c: In function 'balance':
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:70758:17: error: 'balance_deeper_called' undeclared (first use in this function)
         assert( balance_deeper_called==0 );
                 ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c: In function 'sqlite3_backup_step':
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:73439:15: error: 'rc2' undeclared (first use in this function)
       assert( rc2==SQLITE_OK );
               ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c: In function 'sqlite3Step':
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:81073:64: error: 'Vdbe {aka struct Vdbe}' has no member named 'rcApp'
   assert( (p->rc!=SQLITE_ROW && p->rc!=SQLITE_DONE) || p->rc==p->rcApp );
                                                                ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c: In function 'sqlite3VdbeExec':
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:36: error: 'sizeof' applied to a bit-field
 # define assert(__e) ((void) sizeof(__e))
                                    ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:84042:5: note: in expansion of macro 'assert'
     assert( p->usesStmtJournal );
     ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:36: error: 'sizeof' applied to a bit-field
 # define assert(__e) ((void) sizeof(__e))
                                    ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:85649:3: note: in expansion of macro 'assert'
   assert( p->bIsReader );
   ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:36: error: 'sizeof' applied to a bit-field
 # define assert(__e) ((void) sizeof(__e))
                                    ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:85817:3: note: in expansion of macro 'assert'
   assert( p->bIsReader );
   ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:36: error: 'sizeof' applied to a bit-field
 # define assert(__e) ((void) sizeof(__e))
                                    ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:85901:3: note: in expansion of macro 'assert'
   assert( p->bIsReader );
   ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:36: error: 'sizeof' applied to a bit-field
 # define assert(__e) ((void) sizeof(__e))
                                    ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:85998:3: note: in expansion of macro 'assert'
   assert( p->bIsReader );
   ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:36: error: 'sizeof' applied to a bit-field
 # define assert(__e) ((void) sizeof(__e))
                                    ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:86160:3: note: in expansion of macro 'assert'
   assert( p->bIsReader );
   ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:36: error: 'sizeof' applied to a bit-field
 # define assert(__e) ((void) sizeof(__e))
                                    ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:86567:3: note: in expansion of macro 'assert'
   assert( pC->isOrdered );
   ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:87903:13: error: 'VdbeCursor {aka struct VdbeCursor}' has no member named 'seekOp'
        || pC->seekOp==OP_SeekGT || pC->seekOp==OP_SeekGE
             ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:87903:38: error: 'VdbeCursor {aka struct VdbeCursor}' has no member named 'seekOp'
        || pC->seekOp==OP_SeekGT || pC->seekOp==OP_SeekGE
                                      ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:87904:13: error: 'VdbeCursor {aka struct VdbeCursor}' has no member named 'seekOp'
        || pC->seekOp==OP_Rewind || pC->seekOp==OP_Found 
             ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:87904:38: error: 'VdbeCursor {aka struct VdbeCursor}' has no member named 'seekOp'
        || pC->seekOp==OP_Rewind || pC->seekOp==OP_Found 
                                      ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:87905:13: error: 'VdbeCursor {aka struct VdbeCursor}' has no member named 'seekOp'
        || pC->seekOp==OP_NullRow);
             ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:87907:13: error: 'VdbeCursor {aka struct VdbeCursor}' has no member named 'seekOp'
        || pC->seekOp==OP_SeekLT || pC->seekOp==OP_SeekLE
             ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:87907:38: error: 'VdbeCursor {aka struct VdbeCursor}' has no member named 'seekOp'
        || pC->seekOp==OP_SeekLT || pC->seekOp==OP_SeekLE
                                      ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:87908:13: error: 'VdbeCursor {aka struct VdbeCursor}' has no member named 'seekOp'
        || pC->seekOp==OP_Last 
             ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:87909:13: error: 'VdbeCursor {aka struct VdbeCursor}' has no member named 'seekOp'
        || pC->seekOp==OP_NullRow);
             ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:36: error: 'sizeof' applied to a bit-field
 # define assert(__e) ((void) sizeof(__e))
                                    ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:88175:3: note: in expansion of macro 'assert'
   assert( pC->isOrdered );
   ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:36: error: 'sizeof' applied to a bit-field
 # define assert(__e) ((void) sizeof(__e))
                                    ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:88334:5: note: in expansion of macro 'assert'
     assert( pC->isEphemeral );
     ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:36: error: 'sizeof' applied to a bit-field
 # define assert(__e) ((void) sizeof(__e))
                                    ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:89516:3: note: in expansion of macro 'assert'
   assert( p->bIsReader );
   ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:90207:28: error: 'nExtraDelete' undeclared (first use in this function)
   assert( rc!=SQLITE_OK || nExtraDelete==0 
                            ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c: In function 'vdbeSorterListToPMA':
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:92349:46: error: 'iSz' undeclared (first use in this function)
   assert( rc!=SQLITE_OK || pTask->file.iEof==iSz );
                                              ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c: In function 'deleteTable':
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:106209:15: error: 'pOld' undeclared (first use in this function)
       assert( pOld==pIndex || pOld==0 );
               ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:106230:11: error: 'nLookaside' undeclared (first use in this function)
   assert( nLookaside==0 || nLookaside==sqlite3LookasideUsed(db,0) );
           ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c: In function 'sqlite3InitCallback':
~\Arduino\libraries\esp32_arduino_sqlite3_lib\src\sqlite3.c:122300:25: error: 'rcp' undeclared (first use in this function)
     assert( (rc&0xFF)==(rcp&0xFF) );
                         ^
~\ArduinoData\packages\esp32\hardware\esp32\1.0.1-rc1/tools/sdk/include/newlib/assert.h:14:37: note: in definition of macro 'assert'
 # define assert(__e) ((void) sizeof(__e))
                                     ^


Since I can easily rollback to the 1.0.0 and get a fully functional version this isn't a blocker for me, just leaving this issue here so anyone in the same situation can followup.

I'll be posting an issue on espressif tracker too.

[edit] for followup ref this issue was initially posted on the wrong repo

How use Vacuum on sqlite3?

Hi,

I'm using sqlite3 in my WeMos WiFi&Bluetooth Battery board in SPIFFS, and everything work fine.

But I'd like to optimize the database size. So, I tried to run the command "VACUUM;" with sqlite3_exec function, but I received an error: "disk I/O error".

My code:

char *zErrMsg = 0;
int dbExec(sqlite3 *db, const char *sql) {
   Serial.println(sql);
   long start = micros();
   int rc = sqlite3_exec(db, sql, NULL, NULL, &zErrMsg);
   if (rc != SQLITE_OK) {
       Serial.printf("SQL error: %s\n", zErrMsg);
       sqlite3_free(zErrMsg);
   } else {
       Serial.printf("Operation done successfully\n");
   }
   Serial.print(F("Time taken:"));
   Serial.println(micros()-start);
   return rc;
}

bool deleteEvents(int qty)
{
  char strSQL[250];
  int rc;
  int lastRowId;
  if (dbOpen(dbName.c_str(), &db))
    return false;

  snprintf(strSQL, sizeof(strSQL), "Select rowid from event limit %d;", qty);

  rc = sqlite3_prepare_v2(db, strSQL, 1000, &dbRes, &dbTail);
  if (rc != SQLITE_OK) 
  {
#ifdef DEBUG    
    String resp = "Failed to fetch rowid: ";
    resp += sqlite3_errmsg(db);
    Serial.printf("deleteEvents - %s\n", resp.c_str());
#endif
    return -1;
  }

  lastRowId = 0;

  while (sqlite3_step(dbRes) == SQLITE_ROW) 
     lastRowId = sqlite3_column_int(dbRes, 0);

  snprintf(strSQL, sizeof(strSQL), "DELETE from event where RowId <= %d;", lastRowId);
  rc = dbExec(db, strSQL);
  if (rc != SQLITE_OK) {
#ifdef DEBUG    
    String resp = "Failed to delete data: ";
    resp += sqlite3_errmsg(db);
    Serial.printf("deleteEvents - %s\n", resp.c_str());
#endif
    sqlite3_close(db);
    return false;
  }
  
  rc = dbExec(db, "vacuum;");
  if (rc != SQLITE_OK) {
#ifdef DEBUG    
    String resp = "Failed to vacuum: ";
    resp += sqlite3_errmsg(db);
    Serial.printf("deleteEvents - %s\n", resp.c_str());
#endif
    sqlite3_close(db);
    return false;
  }

  sqlite3_close(db);
  return true;
}

So I tried to initialize #define SQLITE_DEFAULT_AUTOVACUUM 1 in the firsts lines of my sketch.

How could I reduce the size of my sqlite file on SPIFFS?

Thanks

No error ... but no table

Hi,
I'm facing a strange problem :
-the database is opened successfully
-the sql query (CREATE TABLE clefs (rowid INTEGER, clef TEXT, status INTEGER, user INTEGER, calendar INTEGER ); is executed with no error
-but : the next sql query (INSERT INTO clefs VALUES (1, '0011460855', 1, 1, 1 ); ) returns the following error :
erreur:no such table: clefs

Should be a stupid mistake from myself ... I can't see it
(almost same code run perfectly ...)

I suspected a spiffs room problem, but only 3 files :
FS File: /edit.htm.gz, size: 4.02KB
FS File: /index.html, size: 15.41KB
FS File: /db1.db, size: 0B <-------- size is 0 !

Context:
ESP32 Dev Board
Deviot with last update

Thanks in advance

get error on index

Hello @siara-cc ๏ผŒ
I would get the "disk I/O error" error when running SQLite database on SPIFFS.

I have tried creating an INDEX, but failed.

Here are the messages:

  • SELECT * FROM test1 WHERE id = 1
  • Callback function called: id = 1
  • content = Hello, World from test1
  • Operation done successfully
  • Time taken:7318
  • CREATE INDEX testIdx ON test1(id ASC);
  • SQL error: disk I/O error
  • Time taken:342706

And my code:
db_open("/spiffs/test1.db", &db1) db_exec(db1, "CREATE TABLE test1 (id INTEGER, content);") db_exec(db1, "INSERT INTO test1 VALUES (1, 'Hello, World from test1')") db_exec(db1, "CREATE INDEX testIdx ON test1(id ASC);"); sqlite3_close(db1);

Can you give me any lead?
Thank you.

[Resolved] ESP32 panics with certain code.

Hi Arun ,

I was able to implement your library with Asyncwebserver, Websockets and TinyMQTT and it works as expected. I was able to insert Fake data created by function called processData() and also I can query data from database using same function by requesting data from websocket client.

When I call processData() function from loop it works fine but when I call same function from another place (line 542) it panics and decoded message looks like following:

PC: 0x4008c01b
EXCVADDR: 0x00000000

Decoding stack results
0x4018a80f: esp_ipc_call_and_wait at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/ipc.c line 116
0x4018a8e6: esp_ipc_call at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/ipc.c line 123
0x400871ce: spi_flash_disable_interrupts_caches_and_other_cpu at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/spi_flash/cache_utils.c line 122
0x400876d1: spi_flash_read at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/spi_flash/flash_ops.c line 165
0x40191a17: esp_partition_read at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/spi_flash/partition.c line 242
0x4011d070: littlefs_api_read at C:\Users\WinCycle\Documents\Arduino\libraries\LittleFS_esp32\src\littlefs_api.c line 22
0x40119cf5: lfs_bd_read at C:\Users\WinCycle\Documents\Arduino\libraries\LittleFS_esp32\src\lfs.c line 104
0x4011a14f: lfs_dir_fetchmatch at C:\Users\WinCycle\Documents\Arduino\libraries\LittleFS_esp32\src\lfs.c line 861
0x4011a705: lfs_dir_find at C:\Users\WinCycle\Documents\Arduino\libraries\LittleFS_esp32\src\lfs.c line 1245
0x4011cbb1: lfs_stat at C:\Users\WinCycle\Documents\Arduino\libraries\LittleFS_esp32\src\lfs.c line 3189
0x40118f15: vfs_littlefs_fstat at C:\Users\WinCycle\Documents\Arduino\libraries\LittleFS_esp32\src\esp_littlefs.c line 1165
0x40187f71: esp_vfs_fstat at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/vfs/vfs.c line 479
0x40148be9: fstat at ../../../.././newlib/libc/syscalls/sysfstat.c line 12
0x40116f9f: ESP32FileSize(sqlite3_file*, sqlite_int64*) at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\esp32.cpp line 305
0x4019958f: sqlite3OsFileSize at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 22896
0x400d5add: pagerPagecount at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 54718
0x400f1ca1: sqlite3PagerSharedLock at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 56848
0x400f4723: sqlite3BtreeBeginTrans at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 67181
0x40108145: sqlite3InitOne at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 127174
0x4010e225: sqlite3Init at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 127359
0x4010e282: sqlite3ReadSchema at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 127385
0x4010f6f0: sqlite3LocateTable at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 109489
0x4010f87d: sqlite3LocateTableItem at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 109550
0x4011021a: sqlite3SrcListLookup at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 114722
0x40112c79: sqlite3Insert at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 119829
0x40105a75: sqlite3RunParser at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 156261
0x40107da5: sqlite3Prepare at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 127586
0x40107f32: sqlite3LockAndPrepare at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 127658
0x40107f75: sqlite3_prepare_v2 at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 127742
0x4010db3f: sqlite3_exec at C:\Users\WinCycle\Documents\Arduino\libraries\Sqlite3Esp32\src\sqlite3.c line 122065
0x400d20c4: db_exec(sqlite3*, char const*) at C:\Users\WinCycle\Documents\Arduino\sqlite3.ino/sqlite3.ino.ino line 167
0x400d2637: processData() at C:\Users\WinCycle\Documents\Arduino\sqlite3.ino/sqlite3.ino.ino line 371
0x400d2dc0: probeRequest(system_event_id_t, system_event_info_t) at C:\Users\WinCycle\Documents\Arduino\sqlite3.ino/sqlite3.ino.ino line 542
0x400d19c9: std::_Function_handler ::_M_invoke(std::_Any_data const&, system_event_id_t&&, system_event_info_t&&) at c:\users\wincycle\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional line 1871
0x400d461d: WiFiGenericClass::_eventCallback(void*, system_event_t*, wifi_prov_event_t*) at c:\users\wincycle\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional line 2271
0x400d46f8: _network_event_task(void*) at C:\Users\WinCycle\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi\src\WiFiGeneric.cpp line 73
0x4008993e: vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c line 143

My sketch is at: https://github.com/happytm/BatteryNode/blob/master/test/SQLite3_Proberequest.ino

Can you please help me resolve this issue?

Multiple rows in a single query

Hello,

I am trying to add multiple rows in a single quary. This is however not working as expected. When I try this, only the last 'row' gets added to the table. I have tried 2 different quaries:

REPLACE INTO 'Settings' SELECT '1' AS 'KCCMD', '0' AS 'Value'UNION SELECT 'ATS', '20.000000'UNION SELECT 'BOR', '0 'UNION SELECT 'BOS', '0'UNION SELECT 'CCA', '0'UNION SELECT 'CCU', '0'UNION SELECT 'CHA', '0'UNION SELECT 'CHU', '0'UNION SELECT 'DCC' , '1.000000'UNION SELECT 'DHC', '1.000000'UNION SELECT 'DTN', '0.000000'UNION SELECT 'ETS', '16.000000'UNION SELECT 'MIT', '15.000000' UNION SELECT 'MXT', '24.000000'UNION SELECT 'SCC', 'true'UNION SELECT 'THR', '0'UNION SELECT 'THS', '0'

REPLACE INTO 'Settings' (KCCMD, Value) VALUES('ATS', '20.000000'),('BOR', '0'),('BOS', '0'),('CCA', '0'),('CCU', ' 0'),('CHA', '0'),('CHU', '0'),('DCC', '1.000000'),('DHC', '1.000000'),('DTN', '0.000000'),('ETS', '16.000000'),('MIT', '15.000000'),(' MXT', '24.000000'),('SCC', 'true'),('THR', '0'),('THS', '0');

can write on custom spiffs partitions

Sqlite3 and SPIFFS could not write after 100 times insert
for example:
When I change this partition table
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x150000,
app1, app, ota_1, 0x160000,0x150000,
spiffs, data, spiffs, 0x2B0000,0x150000,
#into this
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x150000,
spiffs, data, spiffs, 0x160000,0x150000,

sqlite3_step return SQLITE_DONE but it's not actual DONE!

I wrote a small burner test here (platformio)
https://github.com/phamminhkhac/esp32_arduino_sqlite3_lib/tree/master/examples/sqlite3_spiffs_burner

How to get searched fields contents?

sqlite3_initialize();
if (openDb("/sd/DATA1.db", &db1))
{
How to make query without using rc = db_exec(db1, "Select * from FIELD? where name = '???'"); to be able to access selected records contents
sqlite3_close(db1);
}

implementing JSON as reference in callback function

First of all thank you for making it possible to work with sqlite on a esp32 chip!
As I am working with JSON v6 to get process data from database further I now want to save the requested data within the callback function into a JSON Object and pass that back to the main function.
The library offers a void*data parameter pointer that can be used to pass anything to the callback function.
I am completely new to pointers and would kindly ask your help.
here is my code so far:
`
static int callback(void *data, int argc, char **argv, char **azColName) {
//I need to use *data for filling a JSON Object-->but how???
int i;
for (i = 0; i<argc; i++){
Serial.printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
Serial.printf("\n");
return 0;
}

int db_open(const char *filename, sqlite3 **db) {
int rc = sqlite3_open(filename, db);
if (rc) {
Serial.printf("Can't open database: %s\n", sqlite3_errmsg(*db));
return rc;
} else {
Serial.printf("Opened database successfully\n");
}
return rc;
}

char *zErrMsg = 0;
int db_exec(sqlite3 *db, const char *sql) {
DynamicJsonDocument doc(1024);
JsonObject data=doc.createNestedObject();
Serial.println(sql);
long start = micros();
int rc = sqlite3_exec(db, sql, callback, &data, &zErrMsg);//JSON Object needs to be passed to callbackfunctino but how???
if (rc != SQLITE_OK) {
Serial.printf("SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
} else {
Serial.printf("Operation done successfully\n");
serializeJson(data,Serial);
free(data);
}
Serial.print(F("Time taken:"));
Serial.println(micros()-start);
return rc;
}
`
please give me any hint on how to make use of json within callback and pass those values back.
I simply want to use one jsonobject which is created once a enquery accours. Then filled with data within the callback and the content then send to a client after no more rows are available.
chears,
Julian

Database does not contain the information entered after a close and a reset.

Good morning.

I come through this, because I already exhausted my research. I'm having trouble closing the database file.

In my project I am planning a lot of firmware updates, but the database must remain unchanged.

I use the extra memory space of ESP32 with the SPIFFS library to create permanent files.

I can execute "flush" in JSON file with the "arduinojson" library but when using the "SQLite3ESP32" v2.3.0 library I do not see this option in the manual and when executing the "sqlite3_close ()" command and then immediately perform a "reset" "at ESP32 the data base file no longer contains the information that was entered and many times the file is corrupted.

Am I running something wrong?
Are there any commands missing from the file closing process?

Thank you Henrique Aschenbrenner

SQLite 2.3.0 - DELETE with Subquery returns [SQL error: parser stack overflow]

Hi,

I've been trying to execute a DELETE to clean up a single table which fails with error: SQL error: parser stack overflow
My device is an ESP32-WROVER-B (TTGO T-CALL v1.4 to be exact) and I'm using the SPIFFS library without any SD card.

The snippet of code responsible for the delete action:
sql = F("DELETE FROM raw_log WHERE rowid IN (SELECT rowid FROM raw_log limit 20 ASC);"); // Remove oldest first int rc = db_exec(db1, sql.c_str() ); if (rc != SQLITE_OK) { sqlite3_close(db1); return; } vacuum();

The table structure:
CREATE TABLE IF NOT EXISTS raw_log (reg DATETIME, transmitted BOOL, content BLOB);

Any hints on what I'm doing wrong would be appreciated.
(I know could execute the the select separately and run a loop to delete per record and would expect this to work but I rather have clean code if possible; SQLite seems to be -very- complete given the lightweight system it is running on).

STRING OR BLOOB To BIG

STRING OR BLOOB To BIG
query1: rc = db_exec(db1, "CREATE TABLE tbl_template2 (id INTEGER PRIMARY KEY, finger_id INTEGER, device_id INTEGER, template_finger);");

query2: rc = db_exec(db1, "CREATE TABLE tbl_template2 (id INTEGER PRIMARY KEY, finger_id INTEGER, device_id INTEGER, template_finger TEXT);");

I try two query, but the same. query2 max length 225 more than that will issue the error. and for query1 I tried to store data with a length of more than 255 and it worked, but then trying with the length of data 1237 gave rise to an error message STRING OR BLOOB To BIG, my data length is approximately 5000 characters. what data type is suitable for storing data with characters longer than 5000 in sqlite?, I tried with TEXT data types but it didn't work

Originally posted by @unangwarsodi in #1 (comment)

Can I use Sqlite3 in ESPAsyncWebServer

Board: ESP32-ESP32-WROVER-B
Sqlite3: 2.3
ESPAsyncWebServer: 1.2.3
Use platformio with vscode

I am building a small web server on ESP32. when I visit the website "http://myesp32ip/x", it response the data in Sqlite3. data_array is s global JsonArray variable, In dense web visits, it may have problems doing this. Can someone tell me the correct way, Thanks.

#include <Arduino.h>

#include <WiFi.h>
#include "time.h"
#include <ESPAsyncWebServer.h>
#include <AsyncTCP.h>

#include "AsyncJson.h"
#include "ArduinoJson.h"


#include <FS.h>
#include <SPIFFS.h>
#include <SPIFFSEditor.h>
#include <sqlite3.h>

#include <esp_heap_caps.h>

sqlite3 *db1;
AsyncWebServer server(80);

const char* ssid = "XXX";
const char* password = "XXX";

const char * hostName = "esp-async";
const char* http_username = "admin";
const char* http_password = "admin";

const char* data = "Callback function called";
static int callback(void *data, int argc, char **argv, char **azColName) {
   int i;
   Serial.printf("%s: ", (const char*)data);
   for (i = 0; i<argc; i++){
       Serial.printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
   }
   Serial.printf("\n");
   return 0;
}

DynamicJsonDocument doc(1024);
JsonArray data_array = doc.to<JsonArray>();

static int callbackJson(void *data, int argc, char **argv, char **azColName) {
    JsonObject row = data_array.createNestedObject();
    for (int i = 0; i < argc; i++) {
        char* field = argv[i];
        row[azColName[i]] = field ? field : NULL;
    }
    return 0;
}

int db_open(const char *filename, sqlite3 **db) {
   int rc = sqlite3_open(filename, db);
   if (rc) {
       Serial.printf("Can't open database: %s\n", sqlite3_errmsg(*db));
       return rc;
   } else {
       Serial.printf("Opened database successfully\n");
   }
   return rc;
}

char *zErrMsg = 0;
int db_exec(sqlite3 *db, const char *sql) {
   Serial.println(sql);
   long start = micros();
   int rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
   if (rc != SQLITE_OK) {
       Serial.printf("SQL error: %s\n", zErrMsg);
       sqlite3_free(zErrMsg);
   } else {
       Serial.printf("Operation done successfully\n");
   }
   Serial.print(F("Time taken:"));
   Serial.println(micros()-start);
   return rc;
}

void notFound(AsyncWebServerRequest *request) {
    request->send(404, "text/plain", "Not found");
}

void setup() {
    time_t now;
    Serial.begin(115200);
    WiFi.mode(WIFI_STA);
    WiFi.begin(ssid, password);
    if (WiFi.waitForConnectResult() != WL_CONNECTED) {
        Serial.printf("WiFi Failed!\n");
        return;
    }

    Serial.print("IP Address: ");
    Serial.println(WiFi.localIP());

    SPIFFS.begin();

    sqlite3_initialize();
    SPIFFS.remove("/database.db");
    db_open("/spiffs/database.db", &db1);
    db_exec(db1, "CREATE TABLE IF NOT EXISTS espblog_article (pid INTEGER PRIMARY KEY, title TEXT, created INTEGER, modified INTEGER, text TEXT, cover TEXT, category TEXT, authorId INTEGER, look INTEGER)");
    db_exec(db1, "CREATE TABLE IF NOT EXISTS espblog_comments (cid INTEGER PRIMARY KEY, pid INTEGER, created INTEGER, authorId INTEGER, ownerId INTEGER, mail TEXT, url TEXT, ip TEXT, agent TEXT, text TEXT, parent INTEGER)");

    server.on("/x", HTTP_GET, [](AsyncWebServerRequest *request){
        doc.clear();
        // Serial.println(doc.memoryUsage());
        AsyncJsonResponse * response = new AsyncJsonResponse(true,2048);
        response->addHeader("Server","ESP Async Web Server");
        JsonArray root = response->getRoot();
        
        int args = request->args();
        String a,s,c,u;
        for(int i=0;i<args;i++){
            // Serial.printf("ARG[%s]: %s\n", request->argName(i).c_str(), request->arg(i).c_str());
            if(request->argName(i)=="a"){a = request->arg("a");}
            else if(request->argName(i)=="s"){s = request->arg("s");}
            else if(request->argName(i)=="c"){c = request->arg("c");}
            else if(request->argName(i)=="u"){u = request->arg("u");}
        }

        if(a=="h"){
            sqlite3_exec(db1, "SELECT * FROM espblog_article ORDER BY created DESC LIMIT 5", callbackJson, (void*)data, &zErrMsg);
        }
        root.set(data_array);
        serializeJson(root, Serial);
        response->setLength();
        request->send(response);
    });

    server.onNotFound(notFound);
    server.begin();
}

void loop() {
}

Slow work of insert data

Hi @siara-cc ,
I found it is so slow for ESP3 to insert data.
More detail:
Test:

  • ESP32 inserted 100 records with four-column.
  • ESP32 search a specific record from 10000 records.

Result:

  • Esp32 took about 0.486s to retrieve while the insert took about 8s.

Question:

  • Why is ESP32 insert so slow?
  • How can I solve it?

I'm new to SQLite.
Hope you reply when you are available.
Thank you.

Mongoose os and nliviu`s sdlib crashed

Hello
I am trying to use your library with mongoose os and their sdcard library and when I open db file from card I get
Guru Meditation Error: Core 0 panic'ed
I use ESP32

disk I/O error on transaction with two tables

I'm having troubles trying to do a transaction involving two tables.

Here is the code, just like the spiffs example:

/*
    This creates two empty databases, populates values, and retrieves them back
    from the SPIFFS file 
*/
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
#include <SPI.h>
#include <FS.h>
#include "SPIFFS.h"

/* You only need to format SPIFFS the first time you run a
   test or else use the SPIFFS plugin to create a partition
   https://github.com/me-no-dev/arduino-esp32fs-plugin */
#define FORMAT_SPIFFS_IF_FAILED true

const char *data = "Callback function called";
static int callback(void *data, int argc, char **argv, char **azColName)
{
  int i;
  Serial.printf("%s: ", (const char *)data);
  for (i = 0; i < argc; i++)
  {
    Serial.printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
  }
  Serial.printf("\n");
  return 0;
}

int db_open(const char *filename, sqlite3 **db)
{
  int rc = sqlite3_open(filename, db);
  if (rc)
  {
    Serial.printf("Can't open database: %s\n", sqlite3_errmsg(*db));
    return rc;
  }
  else
  {
    Serial.printf("Opened database successfully\n");
  }
  return rc;
}

char *zErrMsg = 0;
int db_exec(sqlite3 *db, const char *sql)
{
  Serial.println(sql);
  long start = micros();
  int rc = sqlite3_exec(db, sql, callback, (void *)data, &zErrMsg);
  if (rc != SQLITE_OK)
  {
    Serial.printf("SQL error: %s\n", zErrMsg);
    sqlite3_free(zErrMsg);
  }
  else
  {
    Serial.printf("Operation done successfully\n");
  }
  Serial.print(F("Time taken:"));
  Serial.println(micros() - start);
  return rc;
}

void setup()
{

  Serial.begin(115200);
  sqlite3 *db1;
  int rc;

  if (!SPIFFS.begin(FORMAT_SPIFFS_IF_FAILED))
  {
    Serial.println("Failed to mount file system");
    return;
  }

  // list SPIFFS contents
  File root = SPIFFS.open("/");
  if (!root)
  {
    Serial.println("- failed to open directory");
    return;
  }
  if (!root.isDirectory())
  {
    Serial.println(" - not a directory");
    return;
  }
  File file = root.openNextFile();
  while (file)
  {
    if (file.isDirectory())
    {
      Serial.print("  DIR : ");
      Serial.println(file.name());
    }
    else
    {
      Serial.print("  FILE: ");
      Serial.print(file.name());
      Serial.print("\tSIZE: ");
      Serial.println(file.size());
    }
    file = root.openNextFile();
  }

  // remove existing file
  SPIFFS.remove("/test1.db");

  sqlite3_initialize();

  if (db_open("/spiffs/test1.db", &db1))
    return;

  rc = db_exec(db1, "CREATE TABLE table_one (id_table_one  INTEGER, first_data INTEGER, second_data TEXT);");
  if (rc != SQLITE_OK)
  {
    sqlite3_close(db1);
    return;
  }

  rc = db_exec(db1, "CREATE TABLE table_two (id_table_two  INTEGER, first_data INTEGER, second_data TEXT);");
  if (rc != SQLITE_OK)
  {
    sqlite3_close(db1);
    return;
  }

  rc = db_exec(db1, "BEGIN TRANSACTION;"
                    "INSERT INTO table_one(first_data,second_data) VALUES ('111','abc');"
                    "INSERT INTO table_two(first_data,second_data) VALUES ('222','def');"
                    "COMMIT;");
  if (rc != SQLITE_OK)
  {
    sqlite3_close(db1);
    return;
  }

  sqlite3_close(db1);
}

void loop()
{
}

vfs, unable to open database file

I have an issue but i'm not an expert in C programming neither esp32.

I have a TTGO T5 device with micro sdcard on board. I have a library for managing sd file access over sdfat.

I'm just trying to open a db file and i think the problem is vfs related.
The db file is located at the root of sd card.

I tried

openDb("mdr512.db", &db1);
openDb("/sd/mdr512.db", &db1);
openDb("/sdcard/mdr512.db", &db1);
openDb("/SD0/mdr512.db", &db1);

And i always have an error "unable to open database file". I don't know anything about VFS but the file is present:

    if (SDHAL_SD.exists("/mdr512.db"))
    {
        SerialPort.println("File exist");
    }

Can you give me any lead? list VFS partition prefix? I'm stuck for now...

Thank you.

Callback not called after searching non existent record

I have a database containing 1 table with 1 primary key and 2 fields. I inserted 1016 records in total. Everything working great and fast except when I search something that is not inside the 1016 records. For example: SELECT * FROM mytable WHERE myPK ='NOT-IN-REC';

Yes, the primary key is VARCHAR(20). The db_exec function would execute successfully and I can see Serial out: "Operation done successfully" followed with "Time taken:42632".

However, the callback function was never called. If I search something that is in the database, then the callback function will be called. Any solution to this issue?

How to prepare query response String to be written to .jason file

I wanted to write query response String to a .json file for further processing of data at web interface.

I tried to modify callback function like below:

const char* data = "Data requested";
 static int callback(void *data, int argc, char **argv, char **azColName) {
 int i;
  for (i = 0; i<argc; i++){
      Serial.printf("%s,", argv[i] ? argv[i] : "NULL");   
      String resp = argv[i];
      Serial.print(resp);
      }
       Serial.printf("\n");
       return 0;  
}

Which produces result like below:

1623049821,162304982124785,247851535,153515,1526,2628,2830,3055,5565,65230,23083,83
1623049826,162304982624785,247851535,153515,1526,2628,2830,3055,5565,65230,23083,83
1623049834,162304983424785,247851535,153515,1526,2628,2830,3055,5565,65230,23083,83

But I wanted to write to a json file like below:

[
11,"Timestamp","Date","time","Hour","Location","Voltage","RSSI","Temperature","Humidity","Pressure","Light",
1623049821,24785,1535,15,26,28,30,55,65,230,83,
1623049826,24785,1535,15,26,28,30,55,65,230,83,
1623049834,24785,1535,15,26,28,30,55,65,230,83
]

Can you please show me how to create a String to produce above result?

Thanks.

SQLite 2.3.0 - DELETE FROM [tablename] with many records results in I/O Error

I have been attempting to TRUNCATE a table in SQLite on an ESP32-WROVER-B using the SPIFFS library.

Since TRUNCATE doesn't exist (u
The execution fails with an I/O error on the filesystem.
I have tried to do this with:
PRAGMA journal_mode= TRUNCATE / NONE / WAL
To make sure the system is not overloaded with audit logs.
This didn't do the trick.

Am I running into a bug?
I have the ESP32 version of the SQLite3 stack.

slow execution of sqlite3_step() function?!

I have some performance problem with the step() method of sqlite3.
i would like to insert a std::vector (size 250) of these struct:
struct DATA{ pair<int, byte> id; pair<int, byte> value; pair<string, byte> s_timestamp; };

but all in all takes around >4500ms.
the "slow" part is the sqlite3_step() function, which already takes 15-25ms (for each row).

i used prepared_v2(), bind() statements and Begin/End Transaction too.

Its running on a ESP32 at 240MHz.
Is there any other method i could try?

Unable to Compile Example Sketch on Arduino IDE

I am having problem compiling my sketch and one of the example sketch that came with Arduino IDE's downloaded library. Shouldn't the code (at least the example) compile out of box?

Arduino: 1.8.10 (Linux), Board: "FireBeetle-ESP32, 80MHz, 115200"

/home/fahad/Downloads/arduino-1.8.10/arduino-builder -dump-prefs -logger=machine -hardware /home/fahad/Downloads/arduino-1.8.10/hardware -hardware /home/fahad/.arduino15/packages -tools /home/fahad/Downloads/arduino-1.8.10/tools-builder -tools /home/fahad/Downloads/arduino-1.8.10/hardware/tools/avr -tools /home/fahad/.arduino15/packages -built-in-libraries /home/fahad/Downloads/arduino-1.8.10/libraries -libraries /home/fahad/Arduino/libraries -fqbn=esp32:esp32:firebeetle32:FlashFreq=80,UploadSpeed=115200 -ide-version=10810 -build-path /tmp/arduino_build_596537 -warnings=all -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.xtensa-esp32-elf-gcc.path=/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0 -prefs=runtime.tools.xtensa-esp32-elf-gcc-1.22.0-80-g6c4433a-5.2.0.path=/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0 -prefs=runtime.tools.esptool_py.path=/home/fahad/.arduino15/packages/esp32/tools/esptool_py/2.6.1 -prefs=runtime.tools.esptool_py-2.6.1.path=/home/fahad/.arduino15/packages/esp32/tools/esptool_py/2.6.1 -prefs=runtime.tools.mkspiffs.path=/home/fahad/.arduino15/packages/esp32/tools/mkspiffs/0.2.3 -prefs=runtime.tools.mkspiffs-0.2.3.path=/home/fahad/.arduino15/packages/esp32/tools/mkspiffs/0.2.3 -verbose /home/fahad/Arduino/libraries/Sqlite3Esp32/examples/sqlite3_spiffs/sqlite3_spiffs.ino
/home/fahad/Downloads/arduino-1.8.10/arduino-builder -compile -logger=machine -hardware /home/fahad/Downloads/arduino-1.8.10/hardware -hardware /home/fahad/.arduino15/packages -tools /home/fahad/Downloads/arduino-1.8.10/tools-builder -tools /home/fahad/Downloads/arduino-1.8.10/hardware/tools/avr -tools /home/fahad/.arduino15/packages -built-in-libraries /home/fahad/Downloads/arduino-1.8.10/libraries -libraries /home/fahad/Arduino/libraries -fqbn=esp32:esp32:firebeetle32:FlashFreq=80,UploadSpeed=115200 -ide-version=10810 -build-path /tmp/arduino_build_596537 -warnings=all -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.xtensa-esp32-elf-gcc.path=/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0 -prefs=runtime.tools.xtensa-esp32-elf-gcc-1.22.0-80-g6c4433a-5.2.0.path=/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0 -prefs=runtime.tools.esptool_py.path=/home/fahad/.arduino15/packages/esp32/tools/esptool_py/2.6.1 -prefs=runtime.tools.esptool_py-2.6.1.path=/home/fahad/.arduino15/packages/esp32/tools/esptool_py/2.6.1 -prefs=runtime.tools.mkspiffs.path=/home/fahad/.arduino15/packages/esp32/tools/mkspiffs/0.2.3 -prefs=runtime.tools.mkspiffs-0.2.3.path=/home/fahad/.arduino15/packages/esp32/tools/mkspiffs/0.2.3 -verbose /home/fahad/Arduino/libraries/Sqlite3Esp32/examples/sqlite3_spiffs/sqlite3_spiffs.ino
Using board 'firebeetle32' from platform in folder: /home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3
Using core 'esp32' from platform in folder: /home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3
Detecting libraries used...
/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/config -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_trace -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_update -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/asio -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bootloader_support -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/coap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/console -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/driver -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-tls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_adc_cal -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_event -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_client -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_server -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_https_ota -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_ringbuf -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ethernet -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/expat -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fatfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freemodbus -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freertos -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/heap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/idf_test -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/jsmn -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/json -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/libsodium -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/log -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/lwip -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mbedtls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mdns -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/micro-ecc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mqtt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/newlib -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nghttp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nvs_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/openssl -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protobuf-c -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protocomm -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/pthread -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/sdmmc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/smartconfig_ack -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/soc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spi_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spiffs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcp_transport -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcpip_adapter -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ulp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/vfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wear_levelling -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wifi_provisioning -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wpa_supplicant -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/xtensa-debug-module -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32-camera -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fb_gfx -std=gnu++11 -fno-exceptions -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10810 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"firebeetle32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/cores/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/variants/firebeetle32 /tmp/arduino_build_596537/sketch/sqlite3_spiffs.ino.cpp -o /dev/null
Alternatives for sqlite3.h: [[email protected]]
ResolveLibrary(sqlite3.h)
  -> candidates: [[email protected]]
/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/config -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_trace -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_update -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/asio -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bootloader_support -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/coap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/console -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/driver -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-tls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_adc_cal -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_event -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_client -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_server -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_https_ota -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_ringbuf -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ethernet -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/expat -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fatfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freemodbus -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freertos -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/heap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/idf_test -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/jsmn -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/json -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/libsodium -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/log -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/lwip -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mbedtls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mdns -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/micro-ecc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mqtt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/newlib -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nghttp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nvs_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/openssl -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protobuf-c -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protocomm -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/pthread -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/sdmmc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/smartconfig_ack -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/soc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spi_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spiffs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcp_transport -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcpip_adapter -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ulp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/vfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wear_levelling -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wifi_provisioning -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wpa_supplicant -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/xtensa-debug-module -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32-camera -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fb_gfx -std=gnu++11 -fno-exceptions -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10810 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"firebeetle32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/cores/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/variants/firebeetle32 -I/home/fahad/Arduino/libraries/Sqlite3Esp32/src /tmp/arduino_build_596537/sketch/sqlite3_spiffs.ino.cpp -o /dev/null
Alternatives for SPI.h: [[email protected]]
ResolveLibrary(SPI.h)
  -> candidates: [[email protected]]
/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/config -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_trace -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_update -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/asio -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bootloader_support -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/coap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/console -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/driver -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-tls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_adc_cal -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_event -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_client -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_server -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_https_ota -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_ringbuf -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ethernet -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/expat -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fatfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freemodbus -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freertos -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/heap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/idf_test -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/jsmn -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/json -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/libsodium -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/log -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/lwip -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mbedtls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mdns -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/micro-ecc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mqtt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/newlib -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nghttp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nvs_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/openssl -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protobuf-c -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protocomm -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/pthread -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/sdmmc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/smartconfig_ack -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/soc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spi_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spiffs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcp_transport -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcpip_adapter -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ulp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/vfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wear_levelling -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wifi_provisioning -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wpa_supplicant -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/xtensa-debug-module -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32-camera -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fb_gfx -std=gnu++11 -fno-exceptions -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10810 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"firebeetle32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/cores/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/variants/firebeetle32 -I/home/fahad/Arduino/libraries/Sqlite3Esp32/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI/src /tmp/arduino_build_596537/sketch/sqlite3_spiffs.ino.cpp -o /dev/null
Alternatives for FS.h: [[email protected]]
ResolveLibrary(FS.h)
  -> candidates: [[email protected]]
/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/config -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_trace -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_update -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/asio -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bootloader_support -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/coap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/console -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/driver -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-tls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_adc_cal -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_event -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_client -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_server -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_https_ota -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_ringbuf -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ethernet -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/expat -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fatfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freemodbus -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freertos -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/heap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/idf_test -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/jsmn -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/json -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/libsodium -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/log -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/lwip -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mbedtls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mdns -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/micro-ecc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mqtt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/newlib -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nghttp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nvs_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/openssl -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protobuf-c -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protocomm -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/pthread -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/sdmmc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/smartconfig_ack -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/soc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spi_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spiffs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcp_transport -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcpip_adapter -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ulp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/vfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wear_levelling -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wifi_provisioning -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wpa_supplicant -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/xtensa-debug-module -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32-camera -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fb_gfx -std=gnu++11 -fno-exceptions -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10810 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"firebeetle32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/cores/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/variants/firebeetle32 -I/home/fahad/Arduino/libraries/Sqlite3Esp32/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS/src /tmp/arduino_build_596537/sketch/sqlite3_spiffs.ino.cpp -o /dev/null
Alternatives for SPIFFS.h: [[email protected]]
ResolveLibrary(SPIFFS.h)
  -> candidates: [[email protected]]
/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/config -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_trace -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_update -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/asio -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bootloader_support -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/coap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/console -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/driver -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-tls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_adc_cal -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_event -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_client -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_server -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_https_ota -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_ringbuf -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ethernet -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/expat -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fatfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freemodbus -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freertos -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/heap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/idf_test -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/jsmn -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/json -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/libsodium -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/log -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/lwip -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mbedtls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mdns -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/micro-ecc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mqtt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/newlib -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nghttp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nvs_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/openssl -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protobuf-c -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protocomm -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/pthread -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/sdmmc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/smartconfig_ack -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/soc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spi_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spiffs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcp_transport -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcpip_adapter -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ulp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/vfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wear_levelling -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wifi_provisioning -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wpa_supplicant -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/xtensa-debug-module -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32-camera -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fb_gfx -std=gnu++11 -fno-exceptions -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10810 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"firebeetle32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/cores/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/variants/firebeetle32 -I/home/fahad/Arduino/libraries/Sqlite3Esp32/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPIFFS/src /tmp/arduino_build_596537/sketch/sqlite3_spiffs.ino.cpp -o /dev/null
/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/config -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_trace -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_update -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/asio -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bootloader_support -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/coap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/console -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/driver -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-tls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_adc_cal -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_event -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_client -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_server -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_https_ota -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_ringbuf -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ethernet -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/expat -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fatfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freemodbus -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freertos -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/heap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/idf_test -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/jsmn -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/json -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/libsodium -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/log -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/lwip -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mbedtls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mdns -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/micro-ecc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mqtt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/newlib -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nghttp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nvs_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/openssl -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protobuf-c -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protocomm -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/pthread -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/sdmmc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/smartconfig_ack -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/soc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spi_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spiffs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcp_transport -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcpip_adapter -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ulp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/vfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wear_levelling -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wifi_provisioning -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wpa_supplicant -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/xtensa-debug-module -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32-camera -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fb_gfx -std=gnu++11 -fno-exceptions -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10810 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"firebeetle32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/cores/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/variants/firebeetle32 -I/home/fahad/Arduino/libraries/Sqlite3Esp32/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPIFFS/src /home/fahad/Arduino/libraries/Sqlite3Esp32/src/esp32.cpp -o /dev/null
/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/config -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_trace -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_update -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/asio -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bootloader_support -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/coap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/console -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/driver -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-tls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_adc_cal -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_event -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_client -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_server -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_https_ota -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_ringbuf -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ethernet -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/expat -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fatfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freemodbus -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freertos -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/heap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/idf_test -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/jsmn -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/json -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/libsodium -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/log -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/lwip -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mbedtls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mdns -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/micro-ecc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mqtt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/newlib -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nghttp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nvs_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/openssl -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protobuf-c -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protocomm -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/pthread -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/sdmmc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/smartconfig_ack -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/soc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spi_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spiffs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcp_transport -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcpip_adapter -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ulp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/vfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wear_levelling -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wifi_provisioning -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wpa_supplicant -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/xtensa-debug-module -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32-camera -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fb_gfx -std=gnu++11 -fno-exceptions -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10810 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"firebeetle32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/cores/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/variants/firebeetle32 -I/home/fahad/Arduino/libraries/Sqlite3Esp32/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPIFFS/src /home/fahad/Arduino/libraries/Sqlite3Esp32/src/shox96_0_2.cpp -o /dev/null
/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/config -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_trace -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_update -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/asio -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bootloader_support -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/coap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/console -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/driver -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-tls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_adc_cal -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_event -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_client -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_server -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_https_ota -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_ringbuf -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ethernet -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/expat -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fatfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freemodbus -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freertos -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/heap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/idf_test -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/jsmn -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/json -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/libsodium -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/log -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/lwip -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mbedtls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mdns -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/micro-ecc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mqtt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/newlib -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nghttp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nvs_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/openssl -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protobuf-c -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protocomm -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/pthread -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/sdmmc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/smartconfig_ack -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/soc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spi_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spiffs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcp_transport -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcpip_adapter -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ulp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/vfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wear_levelling -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wifi_provisioning -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wpa_supplicant -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/xtensa-debug-module -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32-camera -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fb_gfx -std=gnu++11 -fno-exceptions -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10810 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"firebeetle32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/cores/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/variants/firebeetle32 -I/home/fahad/Arduino/libraries/Sqlite3Esp32/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPIFFS/src /home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c -o /dev/null
/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/config -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_trace -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_update -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/asio -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bootloader_support -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/coap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/console -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/driver -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-tls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_adc_cal -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_event -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_client -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_server -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_https_ota -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_ringbuf -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ethernet -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/expat -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fatfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freemodbus -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freertos -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/heap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/idf_test -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/jsmn -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/json -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/libsodium -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/log -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/lwip -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mbedtls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mdns -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/micro-ecc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mqtt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/newlib -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nghttp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nvs_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/openssl -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protobuf-c -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protocomm -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/pthread -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/sdmmc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/smartconfig_ack -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/soc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spi_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spiffs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcp_transport -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcpip_adapter -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ulp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/vfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wear_levelling -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wifi_provisioning -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wpa_supplicant -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/xtensa-debug-module -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32-camera -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fb_gfx -std=gnu++11 -fno-exceptions -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10810 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"firebeetle32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/cores/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/variants/firebeetle32 -I/home/fahad/Arduino/libraries/Sqlite3Esp32/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPIFFS/src /home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI/src/SPI.cpp -o /dev/null
/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/config -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_trace -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_update -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/asio -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bootloader_support -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/coap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/console -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/driver -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-tls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_adc_cal -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_event -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_client -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_server -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_https_ota -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_ringbuf -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ethernet -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/expat -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fatfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freemodbus -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freertos -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/heap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/idf_test -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/jsmn -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/json -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/libsodium -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/log -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/lwip -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mbedtls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mdns -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/micro-ecc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mqtt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/newlib -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nghttp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nvs_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/openssl -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protobuf-c -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protocomm -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/pthread -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/sdmmc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/smartconfig_ack -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/soc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spi_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spiffs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcp_transport -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcpip_adapter -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ulp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/vfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wear_levelling -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wifi_provisioning -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wpa_supplicant -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/xtensa-debug-module -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32-camera -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fb_gfx -std=gnu++11 -fno-exceptions -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10810 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"firebeetle32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/cores/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/variants/firebeetle32 -I/home/fahad/Arduino/libraries/Sqlite3Esp32/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPIFFS/src /home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS/src/FS.cpp -o /dev/null
/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/config -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_trace -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_update -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/asio -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bootloader_support -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/coap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/console -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/driver -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-tls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_adc_cal -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_event -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_client -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_server -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_https_ota -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_ringbuf -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ethernet -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/expat -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fatfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freemodbus -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freertos -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/heap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/idf_test -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/jsmn -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/json -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/libsodium -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/log -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/lwip -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mbedtls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mdns -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/micro-ecc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mqtt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/newlib -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nghttp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nvs_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/openssl -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protobuf-c -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protocomm -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/pthread -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/sdmmc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/smartconfig_ack -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/soc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spi_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spiffs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcp_transport -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcpip_adapter -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ulp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/vfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wear_levelling -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wifi_provisioning -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wpa_supplicant -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/xtensa-debug-module -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32-camera -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fb_gfx -std=gnu++11 -fno-exceptions -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10810 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"firebeetle32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/cores/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/variants/firebeetle32 -I/home/fahad/Arduino/libraries/Sqlite3Esp32/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPIFFS/src /home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS/src/vfs_api.cpp -o /dev/null
/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/config -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_trace -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_update -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/asio -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bootloader_support -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/coap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/console -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/driver -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-tls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_adc_cal -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_event -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_client -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_server -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_https_ota -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_ringbuf -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ethernet -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/expat -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fatfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freemodbus -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freertos -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/heap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/idf_test -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/jsmn -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/json -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/libsodium -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/log -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/lwip -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mbedtls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mdns -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/micro-ecc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mqtt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/newlib -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nghttp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nvs_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/openssl -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protobuf-c -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protocomm -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/pthread -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/sdmmc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/smartconfig_ack -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/soc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spi_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spiffs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcp_transport -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcpip_adapter -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ulp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/vfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wear_levelling -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wifi_provisioning -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wpa_supplicant -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/xtensa-debug-module -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32-camera -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fb_gfx -std=gnu++11 -fno-exceptions -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10810 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"firebeetle32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/cores/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/variants/firebeetle32 -I/home/fahad/Arduino/libraries/Sqlite3Esp32/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPIFFS/src /home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPIFFS/src/SPIFFS.cpp -o /dev/null
Generating function prototypes...
/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/config -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_trace -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_update -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/asio -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bootloader_support -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/coap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/console -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/driver -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-tls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_adc_cal -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_event -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_client -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_server -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_https_ota -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_ringbuf -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ethernet -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/expat -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fatfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freemodbus -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freertos -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/heap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/idf_test -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/jsmn -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/json -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/libsodium -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/log -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/lwip -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mbedtls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mdns -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/micro-ecc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mqtt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/newlib -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nghttp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nvs_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/openssl -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protobuf-c -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protocomm -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/pthread -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/sdmmc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/smartconfig_ack -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/soc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spi_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spiffs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcp_transport -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcpip_adapter -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ulp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/vfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wear_levelling -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wifi_provisioning -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wpa_supplicant -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/xtensa-debug-module -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32-camera -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fb_gfx -std=gnu++11 -fno-exceptions -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10810 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"firebeetle32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/cores/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/variants/firebeetle32 -I/home/fahad/Arduino/libraries/Sqlite3Esp32/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPIFFS/src /tmp/arduino_build_596537/sketch/sqlite3_spiffs.ino.cpp -o /tmp/arduino_build_596537/preproc/ctags_target_for_gcc_minus_e.cpp
/home/fahad/Downloads/arduino-1.8.10/tools-builder/ctags/5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives /tmp/arduino_build_596537/preproc/ctags_target_for_gcc_minus_e.cpp
Compiling sketch...
/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/config -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_trace -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_update -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/asio -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bootloader_support -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/coap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/console -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/driver -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-tls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_adc_cal -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_event -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_client -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_server -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_https_ota -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_ringbuf -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ethernet -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/expat -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fatfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freemodbus -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freertos -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/heap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/idf_test -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/jsmn -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/json -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/libsodium -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/log -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/lwip -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mbedtls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mdns -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/micro-ecc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mqtt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/newlib -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nghttp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nvs_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/openssl -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protobuf-c -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protocomm -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/pthread -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/sdmmc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/smartconfig_ack -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/soc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spi_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spiffs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcp_transport -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcpip_adapter -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ulp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/vfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wear_levelling -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wifi_provisioning -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wpa_supplicant -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/xtensa-debug-module -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32-camera -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fb_gfx -std=gnu++11 -fno-exceptions -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -Wall -Werror=all -Wextra -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -fno-rtti -MMD -c -DF_CPU=240000000L -DARDUINO=10810 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"firebeetle32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/cores/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/variants/firebeetle32 -I/home/fahad/Arduino/libraries/Sqlite3Esp32/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPIFFS/src /tmp/arduino_build_596537/sketch/sqlite3_spiffs.ino.cpp -o /tmp/arduino_build_596537/sketch/sqlite3_spiffs.ino.cpp.o
Compiling libraries...
Compiling library "Sqlite3Esp32"
/home/fahad/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-gcc -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/config -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_trace -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/app_update -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/asio -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bootloader_support -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/bt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/coap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/console -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/driver -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-tls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_adc_cal -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_event -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_client -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_http_server -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_https_ota -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp_ringbuf -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ethernet -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/expat -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fatfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freemodbus -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/freertos -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/heap -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/idf_test -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/jsmn -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/json -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/libsodium -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/log -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/lwip -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mbedtls -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mdns -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/micro-ecc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/mqtt -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/newlib -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nghttp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/nvs_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/openssl -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protobuf-c -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/protocomm -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/pthread -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/sdmmc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/smartconfig_ack -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/soc -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spi_flash -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/spiffs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcp_transport -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/tcpip_adapter -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/ulp -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/vfs -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wear_levelling -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wifi_provisioning -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/wpa_supplicant -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/xtensa-debug-module -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp32-camera -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/esp-face -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/tools/sdk/include/fb_gfx -std=gnu99 -Os -g3 -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -Wpointer-arith -Wall -Werror=all -Wextra -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -Wno-old-style-declaration -MMD -c -DF_CPU=240000000L -DARDUINO=10810 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"firebeetle32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/cores/esp32 -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/variants/firebeetle32 -I/home/fahad/Arduino/libraries/Sqlite3Esp32/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS/src -I/home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPIFFS/src /home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c -o /tmp/arduino_build_596537/libraries/Sqlite3Esp32/sqlite3.c.o
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c: In function 'balance_nonroot':
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:70625:11: warning: unused variable 'key' [-Wunused-variable]
       u32 key = get4byte(&apNew[i]->aData[8]);
           ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c: In function 'balance':
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:70746:6: warning: unused variable 'aBalanceQuickSpace' [-Wunused-variable]
   u8 aBalanceQuickSpace[13];
      ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c: In function 'sqlite3VdbeHalt':
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:20230:34: error: statement with no effect [-Werror=unused-value]
 # define sqlite3VdbeCheckFk(p,i) 0
                                  ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:78360:7: note: in expansion of macro 'sqlite3VdbeCheckFk'
       sqlite3VdbeCheckFk(p, 0);
       ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c: In function 'sqlite3AlterFinishAddColumn':
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:101403:10: warning: variable 'pTab' set but not used [-Wunused-but-set-variable]
   Table *pTab;              /* Table being altered */
          ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c: In function 'sqlite3Insert':
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:116150:1: error: label 'insert_end' defined but not used [-Werror=unused-label]
 insert_end:
 ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c: In function 'flattenSubquery':
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:1456:29: error: statement with no effect [-Werror=unused-value]
 #define SQLITE_OK           0   /* Successful result */
                             ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:18829:41: note: in expansion of macro 'SQLITE_OK'
 # define sqlite3AuthCheck(a,b,c,d,e)    SQLITE_OK
                                         ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:126954:17: note: in expansion of macro 'sqlite3AuthCheck'
   TESTONLY(i =) sqlite3AuthCheck(pParse, SQLITE_SELECT, 0, 0, 0);
                 ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c: In function 'sqlite3Select':
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:1456:29: error: statement with no effect [-Werror=unused-value]
 #define SQLITE_OK           0   /* Successful result */
                             ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:18829:41: note: in expansion of macro 'SQLITE_OK'
 # define sqlite3AuthCheck(a,b,c,d,e)    SQLITE_OK
                                         ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:128929:7: note: in expansion of macro 'sqlite3AuthCheck'
       sqlite3AuthCheck(pParse, SQLITE_READ, pItem->zName, "", pItem->zDatabase);
       ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c: In function 'sqlite3DropTriggerPtr':
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:130537:12: warning: variable 'pTable' set but not used [-Wunused-but-set-variable]
   Table   *pTable;
            ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c: In function 'sqlite3VtabBeginParse':
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:133026:7: warning: variable 'iDb' set but not used [-Wunused-but-set-variable]
   int iDb;              /* The database the table is being created in */
       ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c: In function 'whereLoopAddBtree':
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:141192:10: warning: variable 'rLogSize' set but not used [-Wunused-but-set-variable]
   LogEst rLogSize;            /* Logarithm of the number of rows in the table */
          ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c: At top level:
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:65572:20: warning: 'sqlite3BtreeSetAutoVacuum' defined but not used [-Wunused-function]
 SQLITE_PRIVATE int sqlite3BtreeSetAutoVacuum(Btree *p, int autoVacuum){
                    ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:65596:20: warning: 'sqlite3BtreeGetAutoVacuum' defined but not used [-Wunused-function]
 SQLITE_PRIVATE int sqlite3BtreeGetAutoVacuum(Btree *p){
                    ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:14204:20: warning: 'sqlite3BtreeIncrVacuum' declared 'static' but never defined [-Wunused-function]
 SQLITE_PRIVATE int sqlite3BtreeIncrVacuum(Btree *);
                    ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:14421:22: warning: 'sqlite3BtreeIntegrityCheck' declared 'static' but never defined [-Wunused-function]
 SQLITE_PRIVATE char *sqlite3BtreeIntegrityCheck(Btree*, int *aRoot, int nRoot, int, int*);
                      ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:75795:21: warning: 'sqlite3VdbeMultiLoad' defined but not used [-Wunused-function]
 SQLITE_PRIVATE void sqlite3VdbeMultiLoad(Vdbe *p, int iDest, const char *zTypes, ...){
                     ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:76002:21: warning: 'sqlite3VdbeReusable' defined but not used [-Wunused-function]
 SQLITE_PRIVATE void sqlite3VdbeReusable(Vdbe *p){
                     ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:15263:20: warning: 'sqlite3PagerMovepage' declared 'static' but never defined [-Wunused-function]
 SQLITE_PRIVATE int sqlite3PagerMovepage(Pager*,DbPage*,Pgno,int);
                    ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:18898:22: warning: 'sqlite3HexToBlob' declared 'static' but never defined [-Wunused-function]
 SQLITE_PRIVATE void *sqlite3HexToBlob(sqlite3*, const char *z, int n);
                      ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:18962:21: warning: 'sqlite3RootPageMoved' declared 'static' but never defined [-Wunused-function]
 SQLITE_PRIVATE void sqlite3RootPageMoved(sqlite3*, int, int, int);
                     ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:20139:20: warning: 'sqlite3VdbeList' declared 'static' but never defined [-Wunused-function]
 SQLITE_PRIVATE int sqlite3VdbeList(Vdbe*);
                    ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:20178:28: warning: 'sqlite3OpcodeName' declared 'static' but never defined [-Wunused-function]
 SQLITE_PRIVATE const char *sqlite3OpcodeName(int);
                            ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:63168:13: warning: 'invalidateAllOverflowCache' defined but not used [-Wunused-function]
 static void invalidateAllOverflowCache(BtShared *pBt){
             ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:72136:13: warning: 'btreeHeapInsert' defined but not used [-Wunused-function]
 static void btreeHeapInsert(u32 *aHeap, u32 x){
             ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:72146:12: warning: 'btreeHeapPull' defined but not used [-Wunused-function]
 static int btreeHeapPull(u32 *aHeap, u32 *pOut){
            ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:115460:12: warning: 'xferOptimization' declared 'static' but never defined [-Wunused-function]
 static int xferOptimization(
            ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:116227:12: warning: 'checkConstraintUnchanged' defined but not used [-Wunused-function]
 static int checkConstraintUnchanged(Expr *pExpr, int *aiChng, int chngRowid){
            ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:120027:12: warning: 'integrityCheckResultRow' defined but not used [-Wunused-function]
 static int integrityCheckResultRow(Vdbe *v){
            ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:126017:12: warning: 'generateOutputSubroutine' defined but not used [-Wunused-function]
 static int generateOutputSubroutine(
            ^
/home/fahad/Arduino/libraries/Sqlite3Esp32/src/sqlite3.c:127538:15: warning: 'isSimpleCount' defined but not used [-Wunused-function]
 static Table *isSimpleCount(Select *p, AggInfo *pAggInfo){
               ^
cc1: some warnings being treated as errors
Multiple libraries were found for "SPI.h"
 Used: /home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI
Multiple libraries were found for "FS.h"
 Used: /home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS
Multiple libraries were found for "SPIFFS.h"
 Used: /home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPIFFS
Multiple libraries were found for "sqlite3.h"
 Used: /home/fahad/Arduino/libraries/Sqlite3Esp32
Using library Sqlite3Esp32 at version 2.0 in folder: /home/fahad/Arduino/libraries/Sqlite3Esp32 
Using library SPI at version 1.0 in folder: /home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPI 
Using library FS at version 1.0 in folder: /home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/FS 
Using library SPIFFS at version 1.0 in folder: /home/fahad/.arduino15/packages/esp32/hardware/esp32/1.0.3/libraries/SPIFFS 
exit status 1
Error compiling for board FireBeetle-ESP32.

Can i host a webpage from spiffs if i use sqlite3_lib?

I'am wondering if it is possible to host a webpage from flash if i use this sql lib.
For example if i use async http requests like this:

server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
    AsyncWebServerResponse* response = request->beginResponse(LITTLEFS, "/Home_index.html", "text/html");
    response->addHeader("Content-Encoding", "gzip");
    request->send(response);
});

Will it work if i init the sqlite3?

Documentation?

Hello,
I can't find any documentation more than the examples. Is there any?

LittleFS support ?

hey Arun and thanks for your awesome library ๐Ÿ‘

I'm not sure I'm doing things properly, but I'm experiencing problems creating db files when using LittleFS as a substitute to SPIFFS

    #define SPIFFS LITTLEFS
    #include <LITTLEFS.h>

I've tried different posix names such as /spiffs/ or /littlefs/ to no luck, any hint is welcome.

[edit] LittleFS is now bundled with espressif core for esp32, so the substitution scenario should look like this:

    #define SPIFFS LittleFS
    // #include "LITTLEFS.h" // <<< WRONG (external lib, uppercase, quoted)
    #include <LittleFS.h> // <<< GOOD (core lib, camelcase, bracketed)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.