complete C code: #include <sqlite3.h> #include <stdio.h> #include <string.h> #define TABLE_NAME "mqtt5" int main(void) { sqlite3 *db; char *err_msg = 0; int rc = sqlite3_open("test.db", &db); if (rc != SQLITE_OK) { fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(db)); sqlite3_close(db); return 1; } //make table char *sql_cr = "CREATE TABLE IF NOT EXISTS mqtt6 (payload TEXT NOT NULL, timestamp INTEGER , uuid TEXT PRIMARY KEY NOT NULL,size_t INTEGER);"; rc = sqlite3_exec(db, sql_cr, 0, 0, &err_msg); unsigned long long ts=1623066863471168257; unsigned long long bytes_written=0; char sql[1000]={'\0'}; char * str="abcd"; sprintf(sql,"insert INTO mqtt6 values ('%s',%llu,%llu,%lu) RETURNING (SELECT sum(size_t) from mqtt6);",str,ts,ts,strlen(str)+8+19+4); printf("bytes_written=%llu %s\n",bytes_written,sql); rc = sqlite3_exec(db, sql, 0, 0, &err_msg); if (rc != SQLITE_OK ) { fprintf(stderr, "SQL error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(db); return 1; } sqlite3_close(db); return 0; } i checked sqlite3 libraries i linked with are greater than 3.31 lobhatta@lobhatta-ubn-01 ~/sqlite_dbstat/simple_sqlite - $ ../sqlite-dbstat_install/bin/sqlite3 --version 3.35.5 2021-04-19 18:32:05 1b256d97b553a9611efca188a3d995a2fff712759044ba480f9a0c9e98fae886 lobhatta@lobhatta-ubn-01 ~/sqlite_dbstat/simple_sqlite - $ lobhatta@lobhatta-ubn-01 ~/sqlite_dbstat/simple_sqlite - $ cat Makefile all: gcc insert_simple.c -I../sqlite-dbstat_install/include/ -L../sqlite-dbstat_install/lib/ -lsqlite3 -o a.out lobhatta@lobhatta-ubn-01 ~/sqlite_dbstat/simple_sqlite - $ lobhatta@lobhatta-ubn-01 ~/sqlite_dbstat/simple_sqlite - $ cat ../sqlite-dbstat_install/lib/pkgconfig/sqlite3.pc # Package Information for pkg-config prefix=/home/lobhatta/sqlite_dbstat/sqlite-dbstat_install exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: SQLite Description: SQL database engine Version: 3.35.5 Libs: -L${libdir} -lsqlite3 Libs.private: -lz -lm -ldl -lpthread Cflags: -I${includedir}