@@ -3,8 +3,8 @@ var util = require("util");
33var sqlite3 = require ( "sqlite3" ) ;
44var Query = require ( "sql-query" ) . Query ;
55var shared = require ( "./_shared" ) ;
6+ var utils = require ( "./_utils" ) ;
67var DDL = require ( "../DDL/SQL" ) ;
7- var Promise = require ( "bluebird" ) ;
88
99exports . Driver = Driver ;
1010
@@ -212,12 +212,21 @@ Driver.prototype.remove = function (table, conditions, cb) {
212212
213213Driver . prototype . clear = function ( table , cb ) {
214214 var debug = this . opts . debug ;
215+ var self = this ;
215216
216217 this . execQuery ( "DELETE FROM ??" , [ table ] , function ( err ) {
217218 if ( err ) return cb ( err ) ;
218219
219- this . execQuery ( "DELETE FROM ?? WHERE NAME = ?" , [ 'sqlite_sequence' , table ] , cb ) ;
220- } . bind ( this ) ) ;
220+ self . execQuery ( "SELECT count(*) FROM ?? WHERE type=? AND name=?;" , [ 'sqlite_master' , 'table' , 'sqlite_sequence' ] , function ( err , data ) {
221+ if ( err ) return cb ( err ) ;
222+
223+ if ( data [ 0 ] && data [ 0 ] [ 'count(*)' ] === 1 ) {
224+ self . execQuery ( "DELETE FROM ?? WHERE NAME = ?" , [ 'sqlite_sequence' , table ] , cb ) ;
225+ } else {
226+ cb ( ) ;
227+ }
228+ } ) ;
229+ } ) ;
221230} ;
222231
223232Driver . prototype . valueToProperty = function ( value , property ) {
@@ -355,6 +364,8 @@ Driver.prototype.propertyToValue = function (value, property) {
355364 return value ;
356365} ;
357366
367+ utils . promisifyFunctions ( Driver . prototype , [ 'ping' , 'execSimpleQuery' , 'find' , 'count' , 'insert' , 'update' , 'remove' , 'clear' ] ) ;
368+
358369Object . defineProperty ( Driver . prototype , "isSql" , {
359370 value : true
360371} ) ;
0 commit comments