Improve processing of SQLITE_NULL

null-atom can be configured on configure or make stage. For example
./configure --enable-null-atom=undefined && make
This commit is contained in:
sergey-miryanov
2010-07-14 12:47:46 +06:00
parent 7876c0f568
commit b65d2f8bcb
8 changed files with 1775 additions and 2642 deletions

View File

@@ -4,7 +4,7 @@ GCC=gcc
LDFLAGS=-shared -L/usr/lib -lsqlite3 -undefined -fPIC -lerl_interface -L$(ERL_INTERFACE)/lib -lei
SRCS=sqlite3_drv.c sqlite3_drv.h
OUTPUT=sqlite3_drv.so
CFLAGS=-o ../ebin/${OUTPUT} -I$(ERL_ROOT)/usr/include/ -I$(ERL_INTERFACE)/include/
CFLAGS=-o ../ebin/${OUTPUT} -I$(ERL_ROOT)/usr/include/ -I$(ERL_INTERFACE)/include/ -DNULL_ATOM=@NULL_ATOM@
all: ../ebin/${OUTPUT}

View File

@@ -65,10 +65,12 @@ static ErlDrvData start(ErlDrvPort port, char* cmd) {
retval->db = db;
retval->key = 42; //FIXME: Just a magic number, make real key
#define STR_(ARG) #ARG
#define STR(ARG) STR_(ARG)
retval->atom_error = driver_mk_atom ("error");
retval->atom_columns = driver_mk_atom ("columns");
retval->atom_rows = driver_mk_atom ("rows");
retval->atom_null = driver_mk_atom ("null");
retval->atom_null = driver_mk_atom (STR (NULL_ATOM));
retval->atom_id = driver_mk_atom ("id");
retval->atom_ok = driver_mk_atom ("ok");
retval->atom_unknown_cmd = driver_mk_atom ("uknown_command");