SQLite Forum

Returning expr not working with sqlite3_exec() in C code
Login
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}