#51 + #53
authoradam <adamansky@gmail.com>
Wed, 20 Mar 2013 13:20:24 +0000 (20:20 +0700)
committeradam <adamansky@gmail.com>
Wed, 20 Mar 2013 13:20:24 +0000 (20:20 +0700)
Changelog
Makefile
package.json
tcejdb/Changelog
tcejdb/Makefile.in
tcejdb/ejdb.c
tcejdb/testejdb/Makefile
tcejdb/testejdb/t4.c [new file with mode: 0644]

index 8b2b7e0..fcc9743 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,9 @@
+2013-03-20 Anton Adamansky. <adamansky@gmail.com>
+    * Python3 binding
+    * Lua binding
+    * Minor bug fixes
+    - Release 1.0.66
+
 2013-01-22 Anton Adamansky. <adamansky@gmail.com>
     * Collection joins now supported (ticket #43)
     - Release 1.0.55
index 418615e..00ef3e2 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,7 @@
 
 all: fix-changelogs
        cd tcejdb && ./configure
+       $(MAKE) -C ./tcejdb version
        $(MAKE) -C ./tcejdb
 
 clean:
@@ -9,7 +10,7 @@ clean:
        - rm -rf ./var/*
        - rm -f *.upload
        - rm -f libtcejdb*.tar.gz libtcejdb*.deb libtcejdb*.changes libtcejdb*.build libtcejdb*.dsc
-       - rm -f python*.tar.gz python*.deb python*.changes python*.build python*.dsc    
+       - rm -f python*.tar.gz python*.deb python*.changes python*.build python*.dsc
 
 deb-packages: fix-changelogs
        cd ./tcejdb && autoconf && ./configure
index a0dd7ae..58c5f74 100644 (file)
@@ -1,6 +1,6 @@
 {
     "name" : "ejdb",
-    "version" : "1.0.63",
+    "version" : "1.0.64",
     "main" : "node/ejdb.js",
     "homepage" : "http://ejdb.org",
     "description" : "EJDB - Embedded JSON Database engine",
index 8b2b7e0..fcc9743 100644 (file)
@@ -1,3 +1,9 @@
+2013-03-20 Anton Adamansky. <adamansky@gmail.com>
+    * Python3 binding
+    * Lua binding
+    * Minor bug fixes
+    - Release 1.0.66
+
 2013-01-22 Anton Adamansky. <adamansky@gmail.com>
     * Collection joins now supported (ticket #43)
     - Release 1.0.55
index 8c60958..74fabef 100644 (file)
@@ -78,7 +78,7 @@ POSTCMD = @MYPOSTCMD@
 #================================================================
 
 
-all : version $(LIBRARYFILES) $(COMMANDFILES) $(CGIFILES)
+all : $(LIBRARYFILES) $(COMMANDFILES) $(CGIFILES)
        @$(POSTCMD)
        @printf '\n'
        @printf '#================================================================\n'
@@ -673,7 +673,7 @@ wordtable :
        ./tctmgr importtsv casket words.tsv
 
 
-.PHONY : all clean install check check-ejdb deb-packages
+.PHONY : all version clean install check check-ejdb deb-packages
 
 
  deb-packages :
index b17f392..2b81768 100644 (file)
@@ -4260,7 +4260,11 @@ static bool _createcoldb(const char *colname, EJDB *jb, EJCOLLOPTS *opts, TCTDB
     TCXSTR *cxpath = tcxstrnew2(mdbpath);
     tcxstrcat2(cxpath, "_");
     tcxstrcat2(cxpath, colname);
-    rv = tctdbopen(cdb, tcxstrptr(cxpath), jb->metadb->hdb->omode);
+    uint32_t mode = jb->metadb->hdb->omode;
+    if (mode & (JBOWRITER | JBOCREAT)) {
+        mode |= JBOCREAT;
+    }
+    rv = tctdbopen(cdb, tcxstrptr(cxpath), mode);
     *res = rv ? cdb : NULL;
     tcxstrdel(cxpath);
     return rv;
index d8df4ed..c006fc7 100644 (file)
@@ -7,9 +7,9 @@ CMDLDFLAGS =
 LIBS = -lz -lpthread -lm -lc -lcunit
 RUNENV = LD_LIBRARY_PATH=.:.. DYLD_LIBRARY_PATH=.:..
 
-TESTS = t1 t2 t3
+TESTS = t1 t2 t3 t4
 
-check : all check-t1 check-t2 check-t3;
+check : all check-t1 check-t2 check-t3 check-t4;
 
 check-valgrind :
        make RUNCMD="valgrind --tool=memcheck --leak-check=full --error-exitcode=1" check
@@ -20,6 +20,9 @@ check-valgrind-t2 :
 check-valgrind-t3 :
        make RUNCMD="valgrind --tool=memcheck --leak-check=full --error-exitcode=1" check-t3
 
+check-valgrind-t4 :
+       make RUNCMD="valgrind --tool=memcheck --leak-check=full --error-exitcode=1" check-t4
+
 check-t1 :
        $(RUNENV) $(RUNCMD) ./t1
 
@@ -29,6 +32,9 @@ check-t2 :
 check-t3 :
        $(RUNENV) $(RUNCMD) ./t3
 
+check-t4 :
+       $(RUNENV) $(RUNCMD) ./t4
+
 
 all : $(TESTS)
 
@@ -44,6 +50,9 @@ t2 : t2.o
 t3 : t3.o
        $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) -ltcejdb $(CMDLDFLAGS) $(LIBS)
 
+t4 : t4.o
+       $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) -ltcejdb $(CMDLDFLAGS) $(LIBS)
+
 
-.PHONY : all clean check run-t1 run-t2 run-t3
+.PHONY : all clean check check-t1 check-t2 check-t3 check-t4
 
diff --git a/tcejdb/testejdb/t4.c b/tcejdb/testejdb/t4.c
new file mode 100644 (file)
index 0000000..793ca62
--- /dev/null
@@ -0,0 +1,75 @@
+
+#include <locale.h>
+#include <pthread.h>
+#include "ejdb_private.h"
+
+#include "CUnit/Basic.h"
+
+/*
+ * CUnit Test Suite
+ */
+
+static void eprint(EJDB *jb, int line, const char *func) {
+    int ecode = ejdbecode(jb);
+    fprintf(stderr, "%d: %s: error: %d: %s\n",
+            line, func, ecode, ejdberrmsg(ecode));
+}
+
+void testTicket53() {
+    EJDB *jb = ejdbnew();
+    CU_ASSERT_TRUE_FATAL(ejdbopen(jb, "dbt4_53", JBOWRITER | JBOCREAT));
+    ejdbclose(jb);
+    ejdbdel(jb);
+
+    jb = ejdbnew();
+    CU_ASSERT_TRUE_FATAL(ejdbopen(jb, "dbt4_53", JBOWRITER));
+
+    EJCOLL *coll = ejdbcreatecoll(jb, "mycoll", NULL);
+    if (!coll) {
+        eprint(jb, __LINE__, "testTicket53");
+    }
+    CU_ASSERT_TRUE(coll);
+    ejdbclose(jb);
+    ejdbdel(jb);
+}
+
+int init_suite(void) {
+    return 0;
+}
+
+int clean_suite(void) {
+    return 0;
+}
+
+
+int main() {
+    setlocale(LC_ALL, "en_US.UTF-8");
+    CU_pSuite pSuite = NULL;
+
+    /* Initialize the CUnit test registry */
+    if (CUE_SUCCESS != CU_initialize_registry())
+        return CU_get_error();
+
+    /* Add a suite to the registry */
+    pSuite = CU_add_suite("t4", init_suite, clean_suite);
+    if (NULL == pSuite) {
+        CU_cleanup_registry();
+        return CU_get_error();
+    }
+
+    /* Add the tests to the suite */
+    if (
+            (NULL == CU_add_test(pSuite, "testTicket53", testTicket53))
+
+            ) {
+        CU_cleanup_registry();
+        return CU_get_error();
+    }
+
+    /* Run all tests using the CUnit Basic interface */
+    CU_basic_set_mode(CU_BRM_VERBOSE);
+    CU_basic_run_tests();
+    int ret = CU_get_error() || CU_get_number_of_failures();
+    CU_cleanup_registry();
+    return ret;
+}