From d74e1907ddae4786a9647dcc29ed8e07bf542d5e Mon Sep 17 00:00:00 2001 From: Timothy Warren Date: Mon, 12 Mar 2012 16:09:12 -0400 Subject: [PATCH] Added truncate tests to firebird/sqlite test suites --- sys/db/db_pdo.php | 15 +++++++++------ sys/db/drivers/firebird-ibase.php | 2 +- sys/db/drivers/sqlite.php | 10 ++++------ tests/databases/firebird.php | 7 +++++++ tests/databases/sqlite.php | 6 ++++++ tests/test_dbs/FB_TEST_DB.FDB | Bin 802816 -> 802816 bytes 6 files changed, 27 insertions(+), 13 deletions(-) diff --git a/sys/db/db_pdo.php b/sys/db/db_pdo.php index e2ef609..4c4b129 100644 --- a/sys/db/db_pdo.php +++ b/sys/db/db_pdo.php @@ -54,11 +54,11 @@ abstract class DB_PDO extends PDO { $this->statement =& $query; - /*if( ! (is_array($data) || is_object($data))) + if( ! (is_array($data) || is_object($data))) { trigger_error("Invalid data argument"); return FALSE; - }*/ + } // Bind the parameters foreach($data as $k => $value) @@ -125,15 +125,18 @@ abstract class DB_PDO extends PDO { * @param PDOStatement $statement * @return int */ - public function affected_rows($statement) + public function affected_rows($statement='') { - $this->statement = $statement; - + if ( ! empty($statement)) + { + $this->statement = $statement; + } + // Execute the query $this->statement->execute(); // Return number of rows affected - return $this->statement->rowCount; + return $this->statement->rowCount(); } // -------------------------------------------------------------------------- diff --git a/sys/db/drivers/firebird-ibase.php b/sys/db/drivers/firebird-ibase.php index b33cae4..e631b5e 100644 --- a/sys/db/drivers/firebird-ibase.php +++ b/sys/db/drivers/firebird-ibase.php @@ -65,7 +65,7 @@ class firebird extends DB_PDO { { // Firebird lacka a truncate command $sql = 'DELETE FROM "'.$table.'"'; - $this->query($sql); + $this->statement = $this->query($sql); } // -------------------------------------------------------------------------- diff --git a/sys/db/drivers/sqlite.php b/sys/db/drivers/sqlite.php index 7b50ef4..ed58c1e 100644 --- a/sys/db/drivers/sqlite.php +++ b/sys/db/drivers/sqlite.php @@ -46,13 +46,11 @@ class SQLite extends DB_PDO { { // SQLite has a TRUNCATE optimization, // but no support for the actual command. - $sql = 'DELETE FROM :table'; + $sql = 'DELETE FROM "'.$table.'"'; - $this->prepare_query($sql, array( - ':table' => $table - )); - - $this->statement->execute(); + $this->statement = $this->query($sql); + + return $this->statement; } // -------------------------------------------------------------------------- diff --git a/tests/databases/firebird.php b/tests/databases/firebird.php index 82a7cf6..b715ac0 100644 --- a/tests/databases/firebird.php +++ b/tests/databases/firebird.php @@ -103,6 +103,13 @@ class FirebirdTest extends UnitTestCase { $this->assertTrue($table_exists); }*/ + function TestTruncate() + { + $this->db->truncate('create_test'); + + $this->assertTrue($this->db->affected_rows() > 0); + } + function TestCommitTransaction() { $res = $this->db->beginTransaction(); diff --git a/tests/databases/sqlite.php b/tests/databases/sqlite.php index 314cbf4..6ce21ad 100644 --- a/tests/databases/sqlite.php +++ b/tests/databases/sqlite.php @@ -79,6 +79,12 @@ class SQLiteTest extends UnitTestCase { $this->assertEqual($dbs['create_test'], 'CREATE TABLE "create_test" (id INTEGER PRIMARY KEY, key TEXT , val TEXT )'); } + function TestTruncate() + { + $this->db->truncate('create_test'); + $this->assertIsA($this->db->affected_rows(), 'int'); + } + function TestPreparedStatements() { $sql = <<SAQ&UVsgIiIx zmDcKyjZ{#BlfbEzA0Qc-N%HuDZEvSuO~(?y)N`Dc%_qAzHbnYv9dAp2kb3RmbnK^@ zT*l93BDqX7mx<*v@m!`Nm#NHUs&bj?gPEFGD@_r{riJWL%Hb$)+OTUXVE)DeHb*ia>}V>K%2i60gZMY1yz^28E<;Q8{O=NbOK z!<`QAcK9WSzvu8ShhJ2joj&1roen!4?r?aA!{2duyTk1cf15aKulNP0!?zs%ro-QG z_<4u7IsBZ%&w}Oor&r+XPKU2K{EWk2b@*wApK^Gs!&@Y0`JO-NblB|hCWoJJc%#D` z9DZE0yk@$;O6o$wkp7 zf8To1Bz5827tNT4(9cu6B5&iL=WYCV6{m)6yknT+L&J2AQI#wkv1dFmLQ@Wm*f9$) z*(qPTMDd%KY&^x{uZ&Wh9kubtqcl1-M(22DjFLl&=o;gfY0Rq2cFe1n?HT`};+a=$ z{NfcGpSVJ!$65T?IK|m30Wh}!*jT_^@%p=1AsoCaYUDls(N%L3)`qLEi3em;=QVoI_gu3{{dGzthhnRo*Op#+YK5sbApns6E=Bgf|CEJWYtZZ{Ng4hAKs)fb(1#v;Up!;Cn>qX zlBaG_^4cv*KDuSctiDZ2=WR-QZrh~3K*^>8B_ze)7VOvg}0UEdqz}y93?gB7(0hqf0%v}KHE&vy~01ey)VD17icLA8Y z0L)zg<}Lu=)dhXA04_Km3-lvEZP*$Q;DYvefQN&lahn7cl&qtcsGnN?NLIvagzwfod8fYHYHzhLR&Sl#H@uouK4pLCJYx$Fv5N zvYXHnO0OlG1a}9utG=K)K0WjA9m}>ycH2~%s0CNq1xdy;R8bAZr z0GMk4%ryY!8US+*fVl?1ch|ryrGZ)Y?c7?cZkt+l+tk`5n5}M`+3L2LZIdyTG}o!y zrp_jVb?UaMSGP^QO^(%5l2=K~9GmQ$L&?A#8Y3EPva^AbBMp>{vSi&{N?x8z$@#f< zOzS*K+UHSnbe>IuMoQK+QnI(vCSxjTo=-`~e47l;r!kdHl&o#C$+0F%@=ZZw%XYcu z=7`B(w)kmpU$DsgU6An}4DRzj6Zd+DMaKJ7Bo4e1)Xv{7vkM~O)yr2Lee!p6j3mPM zuZm3MTr}LD7fU0Ln5txvMwPAA&UGB6cHJWwI+McY&qILX)cA-yZAp#h{rIr$ z$!aWmKYqz}DOaO;KYmfyDD++$Ht$cv)jDr=r!A@Rv|h&++mqGEWxZgj?NY8rz1R2L zt7|lSy);Q51g&RjPauCBaW5@@?%4&a$K`+d8jX9;@9f<5kk_149~FETBa4&tQIYNA z)5yOZdiV~DSt4qdPvrO6l?&xx;PE+P_Rg@X$>wG+XVPEns@g_a4Z&A6-hUqc`-bvXiz;xobRGvQ+_XwArcxu5m)nfvqAH z$ZsEp&DIz;`ZA9Ia-;5}eIId)DA_yn`8sTSvMbW>@qbFW6!hahrDd#@6$o_}%15wG2lOAh>N zuoe=2_iD$cHyjP@%9VWwQlD`S+vnQrf>QEWW$wkmS5>+47a}2~gm5H8PD02Dp(KPe zAzTUJP6*E);gub~X(ye+yEI42>8k7260^N0W~*|o@PK6*)rPvgoS&D96}$Q!P>- zdeVPb?bKSCSPoN<1RPtyqjsdiaP5~V#D0DZrE!2b~tq>d+za#ymBuyz6*8M_}}+< zJaj+P^fBtJrqlPiX)>$n^#?CBef@x&u0Bv_m`<6Sew#$5k?WVr!T!Wmy8-txw14zh;*VYuNuoN)lL z*%PDH$Q7O_Y1kivGk!*NxMS3eT;q;X1zh4reZz7|%rr?YToO&W1eOK3;*8O8xT4h= zr6#zf8g)4$so)9VhE4@f0GBkPUXCcj{$m*rAmaf{m%MMg#OQmhdZC!hkL~vyG?qM3 z=bGBjH?}@eX91mj!l?8qqYs~2$auoaCnB=T_6I=k`Skj3due25M32q2HAg(69nsFU``mBdu#3 zkkE5$AV!VIRe>l8=z84LE~3*Pqix6y{wP&J*CnWv&~KkFMhB7Oz9=<7*NagXA%-E} z^U(2r=sI2uVXwtv0YU>9f_{6U>;0-QW(h67r58fp2k~x3)IiAgaUV?`_Yf-t+yo(4 zBMS(bAmn}swj0q3AvYpdLC69^9yhg$=yc(ZksF}nDxCHusFToZA9Q>WISw5+K*x)n z;R-6k#xMkX9>U!ZA;%%)wWt>$H0%#S$h{EqepASAr-a-qYo?Gd$eMMC2aQTaO9^?4 zqM1TIq%g{JGFs!b&<-b~M`^UkWuf&hMweVX6?9u@g_}{Ao6(q!W_lR4dl+5wSW~K( z(MB($Q(g<*O`|%M(O%U;7gV0A)EI5iEOba?l;>l##%G}&K1PqyXp!GS>-~%_`FScB zu+WMCqpm;-wJbKzTvM;hvh-?xfwIrx|4^@%T=V~bdYxkHbqfEjEA#m^Y{|FZYd)jA z0!C{J?Dty0=usLiDzx8gA)`x$JQXam-)j-0t|CTbHkvt=QTtRz*QQ!iYB8gY#f(lB zTj*{Y)dd;t4O-|zkf$n37;P!B(4i7Wd8Lfjlv-#p0GegPJs`-VyUQ+O#;a^(qs>=_QpR@i0VGl@Ba)LY#QfSjBpRWJx7jm0N w_L&@`ZBW%6XEo!n(88|Mru^x&F)*l>JI-jvq|izo#W^SQ+N1}8_J%3{0HNdsrvLx|