Hi all,

I wrote a simple app that is use sqlite 3.8.2 as below:

//============================================================================
// Name        : test.cpp
// Author      : Ali
// Version     :
// Copyright   : GPLv3
// Description : Sqlite Test
// SQLITE Version : 3.8.2
//============================================================================

#include <stdlib.h>
#include <stdio.h>
#include "sqlite3.h"

#define ERROR -1
#define MY_DB "test.db"

int myCallBackFunction(void* notUsed, int columnNo, char **argv,
        char **azcolName)
{
    static bool flag = true;
    if (flag)
    {
        printf("%s        %s        %s\n", azcolName[0], azcolName[1], 
azcolName[2]);
        printf("--------------------------------------------------------\n");
        flag = false;
    }
    {
        printf("%s        %s        %s$\n", argv[0], argv[1], argv[2]);
    }
    return 0;
}

int main()
{
    sqlite3 *dbConnection;
    char *sqlite_errMsg;

    int result = ERROR;
    result = sqlite3_open(MY_DB, &dbConnection);

    if (result != SQLITE_OK)
    {
        printf("Error on SQLITE\n");
        sqlite3_close(dbConnection);
        return ERROR;
    }

    printf("%s DB Was successfully created!\n", MY_DB);

    char *sqlCommand =
    "DROP TABLE IF EXISTS Cars;"
    "CREATE TABLE Cars(Id INT, Name TEXT, Price INT);"
    "INSERT INTO Cars VALUES(1, 'Audi', 52642);"
    "INSERT INTO Cars VALUES(2, 'Mercedes', 57127);"
    "INSERT INTO Cars VALUES(3, 'Skoda', 9000);"
    "INSERT INTO Cars VALUES(4, 'Volvo', 29000);"
    "INSERT INTO Cars VALUES(5, 'Bentley', 350000);"
    "INSERT INTO Cars VALUES(6, 'Citroen', 21000);"
    "INSERT INTO Cars VALUES(7, 'Hummer', 41400);"
    "INSERT INTO Cars VALUES(8, 'Volkswagen', 21600);";

    result = sqlite3_exec(dbConnection, sqlCommand, 0, 0, &sqlite_errMsg);

    if (result != SQLITE_OK)
    {
        printf("SQL error: %s\n", sqlite_errMsg);
        sqlite3_free(sqlite_errMsg);
        sqlite3_close(dbConnection);
        return ERROR;
    }

    sqlite3_stmt *stmt;
    char *sqlSelect = "SELECT * FROM Cars";

    result = 
sqlite3_exec(dbConnection,sqlSelect,myCallBackFunction,0,&sqlite_errMsg);

    if (result != SQLITE_OK )
    {
        printf("Failed to select data\n");
        printf("SQL error: %s\n", sqlite_errMsg);
        sqlite3_free(sqlite_errMsg);
        sqlite3_close(dbConnection);
        return ERROR;
    }

    sqlite3_close(dbConnection);
    return 0;
}


When I use Massif as a heap profiler the diagram shows non freed memory but 
without Sqlite the diagram starts with 0 byte and end in 0 byte?




Yours,
Ali




 
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to