v1.0.50
authoradam <adamansky@gmail.com>
Sun, 13 Jan 2013 07:53:28 +0000 (14:53 +0700)
committeradam <adamansky@gmail.com>
Sun, 13 Jan 2013 07:53:28 +0000 (14:53 +0700)
Changelog
package.json
tcejdb/configure
tcejdb/configure.ac
tcejdb/tchdb.c
tcejdb/testejdb/t2.c

index d449b1b..d34dde4 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -1,4 +1,9 @@
 2013-01-11 Anton Adamansky. <adamansky@gmail.com>
+    * Fixed #35
+    * Fixed incorrect handling of query error codes.
+    - Release 1.0.50
+
+2013-01-11 Anton Adamansky. <adamansky@gmail.com>
     * Fixed crash if null fields presented in queries.
     - Release 1.0.48
 
index 0700760..1e47938 100644 (file)
@@ -1,6 +1,6 @@
 {
     "name" : "ejdb",
-    "version" : "1.0.49",
+    "version" : "1.0.50",
     "main" : "node/ejdb.js",
     "homepage" : "http://ejdb.org",
     "description" : "EJDB - Embedded JSON Database engine",
index 941ce9f..2b43807 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for tcejdb 1.0.49.
+# Generated by GNU Autoconf 2.69 for tcejdb 1.0.50.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -577,8 +577,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='tcejdb'
 PACKAGE_TARNAME='tcejdb'
-PACKAGE_VERSION='1.0.49'
-PACKAGE_STRING='tcejdb 1.0.49'
+PACKAGE_VERSION='1.0.50'
+PACKAGE_STRING='tcejdb 1.0.50'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1258,7 +1258,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures tcejdb 1.0.49 to adapt to many kinds of systems.
+\`configure' configures tcejdb 1.0.50 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1319,7 +1319,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of tcejdb 1.0.49:";;
+     short | recursive ) echo "Configuration of tcejdb 1.0.50:";;
    esac
   cat <<\_ACEOF
 
@@ -1426,7 +1426,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-tcejdb configure 1.0.49
+tcejdb configure 1.0.50
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1724,7 +1724,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by tcejdb $as_me 1.0.49, which was
+It was created by tcejdb $as_me 1.0.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4894,7 +4894,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by tcejdb $as_me 1.0.49, which was
+This file was extended by tcejdb $as_me 1.0.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -4947,7 +4947,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-tcejdb config.status 1.0.49
+tcejdb config.status 1.0.50
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
index 03c7feb..78754c1 100644 (file)
@@ -11,7 +11,7 @@ test -n "$CPPFLAGS" && MYCPPFLAGS="$CPPFLAGS $MYCPPFLAGS"
 test -n "$LDFLAGS" && MYLDFLAGS="$LDFLAGS $MYLDFLAGS"
 
 # Package name
-AC_INIT(tcejdb, 1.0.49)
+AC_INIT(tcejdb, 1.0.50)
 
 # Package information
 MYLIBVER=9
index 11a971d..fc4c4eb 100644 (file)
@@ -1343,10 +1343,37 @@ void tchdbsetecode(TCHDB *hdb, int ecode, const char *filename, int line, const
   if (ecode == TCESUCCESS) {
       return;
   }
-  if(ecode != TCEINVALID && ecode != TCEKEEP && ecode != TCENOREC){
-    hdb->fatal = true;
-    if(hdb->fd >= 0 && (hdb->omode & HDBOWRITER)) tchdbsetflag(hdb, HDBFFATAL, true);
+
+  switch (ecode) { //Fatal errors
+        case TCETHREAD:
+        case TCENOFILE:
+        case TCENOPERM:
+        case TCEMETA:
+        case TCERHEAD:
+        case TCEOPEN:
+        case TCECLOSE:
+        case TCETRUNC:
+        case TCESYNC:
+        case TCESTAT:
+        case TCESEEK:
+        case TCEREAD:
+        case TCEWRITE:
+        case TCEMMAP:
+        case TCELOCK:
+        case TCEUNLINK:
+        case TCERENAME:
+        case TCEMKDIR:
+        case TCERMDIR:
+        case TCEMISC:
+        {
+            hdb->fatal = true;
+            if (hdb->fd >= 0 && (hdb->omode & HDBOWRITER)) tchdbsetflag(hdb, HDBFFATAL, true);
+            break;
+        }
+        default:
+            break;
   }
+
   if(ecode != TCENOREC && hdb->dbgfd >= 0 && (hdb->dbgfd != UINT16_MAX || hdb->fatal)){
     int dbgfd = (hdb->dbgfd == UINT16_MAX) ? 1 : hdb->dbgfd;
     char obuf[HDBIOBUFSIZ];
index 5ec14e7..affa3f1 100644 (file)
@@ -3866,6 +3866,22 @@ void testTicket28() {
     CU_ASSERT_EQUAL(ejdbecode(jb), JBEQERROR);
     CU_ASSERT_PTR_NULL(q1);
     bson_destroy(&bsq1);
+
+    //Second step
+    bson_init_as_query(&bsq1);
+    bson_finish(&bsq1);
+    q1 = ejdbcreatequery(jb, &bsq1, NULL, 0, NULL);
+    CU_ASSERT_PTR_NOT_NULL_FATAL(q1);
+    uint32_t count = 0;
+    TCXSTR *log = tcxstrnew();
+    TCLIST *q1res = ejdbqryexecute(coll, q1, &count, 0, log);
+    CU_ASSERT_EQUAL(ejdbecode(jb), TCESUCCESS);
+    CU_ASSERT_PTR_NOT_NULL_FATAL(q1res);
+
+    bson_destroy(&bsq1);
+    tcxstrdel(log);
+    ejdbquerydel(q1);
+    tclistdel(q1res);
 }
 
 int main() {