From 9f1c071659ed1bb952013a9b947d8cc1ed04cb75 Mon Sep 17 00:00:00 2001 From: slava Date: Sat, 7 Feb 2015 11:16:00 +0200 Subject: [PATCH 1/3] remove duplicate test --- t/01_basic.t | 3 --- 1 file changed, 3 deletions(-) diff --git a/t/01_basic.t b/t/01_basic.t index 43dd1af..e8751f4 100644 --- a/t/01_basic.t +++ b/t/01_basic.t @@ -26,10 +26,7 @@ subtest 'basic' => sub { is $sql->as_sql, '(((foo.id=? AND bar.name=?) OR bar.age=?) OR (foo.id=?)) OR (bar.name=?)'; is_deeply [$sql->bind], [qw/1 nekokak 33 2 tokuhirom/]; - is $sql->as_sql , '(((foo.id=? AND bar.name=?) OR bar.age=?) OR (foo.id=?)) OR (bar.name=?)'; - $sql = sql_obj('SELECT * FROM user WHERE ') + $sql; - is $sql->as_sql , 'SELECT * FROM user WHERE (((foo.id=? AND bar.name=?) OR bar.age=?) OR (foo.id=?)) OR (bar.name=?)'; }; From c018f47fa3b8db0b6155f9d557bb4519411a2fcb Mon Sep 17 00:00:00 2001 From: spechenin Date: Sat, 7 Feb 2015 11:25:54 +0200 Subject: [PATCH 2/3] add test to catch a bug in sql_obj sql_obj without binding parameter introduce undef value in binding list. $sql = sql_obj("SELECT * FROM table") $sql->bind() results in [undef], must be [] --- t/01_basic.t | 1 + 1 file changed, 1 insertion(+) diff --git a/t/01_basic.t b/t/01_basic.t index e8751f4..c09e6e8 100644 --- a/t/01_basic.t +++ b/t/01_basic.t @@ -28,6 +28,7 @@ subtest 'basic' => sub { $sql = sql_obj('SELECT * FROM user WHERE ') + $sql; is $sql->as_sql , 'SELECT * FROM user WHERE (((foo.id=? AND bar.name=?) OR bar.age=?) OR (foo.id=?)) OR (bar.name=?)'; + is_deeply [$sql->bind], [qw/1 nekokak 33 2 tokuhirom/]; }; subtest 'sql_type' => sub { From 88318a588d531d66126dc3e73d5733f4d2e456ed Mon Sep 17 00:00:00 2001 From: spechenin Date: Sat, 7 Feb 2015 14:39:28 +0200 Subject: [PATCH 3/3] fix a bug in sql_obj() sql_obj() without binding parameter introduce undef value in binding list. $sql = sql_obj("SELECT * FROM table") $sql->bind() results in [undef], must be [] --- lib/SQL/Object.pm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/SQL/Object.pm b/lib/SQL/Object.pm index f8c183d..796fa88 100644 --- a/lib/SQL/Object.pm +++ b/lib/SQL/Object.pm @@ -34,8 +34,14 @@ sub sql_obj { } }ge; } + elsif (ref($args) eq 'ARRAY') { + $bind = $args; + } + elsif (defined($args)) { + $bind = [$args]; + } else { - $bind = ref($args) eq 'ARRAY' ? $args : [$args]; + $bind = []; } SQL::Object->new(sql => $sql, bind => $bind);