Browse Source

fix sqlite mutex/vfs/

geniusgogo 11 years ago
parent
commit
d246db603c

+ 1 - 0
components/external/SQLite-3.8.1/src/mutex_rtt.c

@@ -166,6 +166,7 @@ static sqlite3_mutex *rttMutexAlloc(int iType){
 #if SQLITE_MUTEX_NREF
 #if SQLITE_MUTEX_NREF
       p->id = iType;
       p->id = iType;
 #endif
 #endif
+      rt_mutex_init(&p->mutex, "sqlmtx", RT_IPC_FLAG_PRIO);
       break;
       break;
     }
     }
   }
   }

+ 1 - 1
components/external/SQLite-3.8.1/src/os_rtt.c

@@ -404,7 +404,7 @@ static int robust_open(const char *z, int f, mode_t m){
     sqlite3_log(SQLITE_WARNING,
     sqlite3_log(SQLITE_WARNING,
                 "attempt to open \"%s\" as file descriptor %d", z, fd);
                 "attempt to open \"%s\" as file descriptor %d", z, fd);
     fd = -1;
     fd = -1;
-    if( osOpen("/dev/null", f, m)<0 ) break;
+    if( osOpen("/000111sql.test111000", f, m)<0 ) break;
   }
   }
 
 
   return fd;
   return fd;

File diff suppressed because it is too large
+ 155 - 155
components/external/sqlite/sqlite3.c


+ 6 - 0
components/external/sqlite/test/test10.c

@@ -20,12 +20,18 @@ int test10_main(int argc, char **argv){
     rt_kprintf("Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
     rt_kprintf("Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
     return(1);
     return(1);
   }
   }
+  rt_kprintf("ready open %s\n", argv[1]);
   rc = sqlite3_open(argv[1], &db);
   rc = sqlite3_open(argv[1], &db);
+  
   if( rc ){
   if( rc ){
     rt_kprintf("Can't open database: %s\n", sqlite3_errmsg(db));
     rt_kprintf("Can't open database: %s\n", sqlite3_errmsg(db));
     sqlite3_close(db);
     sqlite3_close(db);
     return(1);
     return(1);
   }
   }
+  else{
+    rt_kprintf("open %s success\n", argv[1]);
+  }
+  rt_kprintf("SQL exec: %s\n", argv[2]);
   rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
   rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
   if( rc!=SQLITE_OK ){
   if( rc!=SQLITE_OK ){
     rt_kprintf("SQL error: %s\n", zErrMsg);
     rt_kprintf("SQL error: %s\n", zErrMsg);

Some files were not shown because too many files changed in this diff