4 use Test::More tests => 12;
7 use_ok('SQL::Abstract') or BAIL_OUT( "$@" );
9 my $sqla = SQL::Abstract->create(1);
13 [ '>', [-name => qw/me id/], [-value => 500 ] ]
16 "simple where clause";
20 ), "0 = 1", "emtpy -in";
24 [ '>', [-name => qw/me id/], [-value => 500 ] ]
27 "simple where clause";
29 eq_or_diff( [ SQL::Abstract->generate(
32 [ '>', [-name => qw/me id/], [-value => 500 ] ],
33 [ '==', [-name => qw/me name/], [-value => '200' ] ]
36 [ "WHERE me.id > ? AND me.name = ?",
47 [ '>', [-name => qw/me id/], [-value => 500 ] ],
48 [ '==', [-name => qw/me name/], [-value => '200' ] ],
50 ), "WHERE me.id > ? OR me.name = ?",
51 "where clause (simple or)";
56 [ '>', [-name => qw/me id/], [-value => 500 ] ],
58 [ '==', [-name => qw/me name/], [-value => '200' ] ],
59 [ '==', [-name => qw/me name/], [-value => '100' ] ]
62 ), "WHERE me.id > ? OR me.name = ? OR me.name = ?",
63 "where clause (nested or)";
67 [ '==', [-name => qw/me id/], [-value => 500 ] ],
69 [ '>', [-name => qw/me name/], [-value => '200' ] ],
70 [ '<', [-name => qw/me name/], [-value => '100' ] ]
73 ), "WHERE me.id = ? OR me.name > ? AND me.name < ?",
74 "where clause (inner and)";
78 [ '==', [-name => qw/me id/], [-value => 500 ] ],
80 [ '>', [-name => qw/me name/], [-value => '200' ] ],
81 [ '<', [-name => qw/me name/], [-value => '100' ] ]
84 ), "WHERE me.id = ? AND me.name > ? AND me.name < ?",
85 "where clause (nested and)";
90 [ '==', [-name => qw/me id/], [-value => 500 ] ],
92 [ '>', [-name => qw/me name/], [-value => '200' ] ],
93 [ '<', [-name => qw/me name/], [-value => '100' ] ]
96 ), "WHERE me.id = ? AND (me.name > ? OR me.name < ?)",
97 "where clause (inner or)";
100 [SQL::Abstract->generate(
104 [-name => qw/me id/],
112 [ "WHERE me.id IN (?, ?, ?)",
120 [SQL::Abstract->generate(
124 [-name => qw/me id/],
132 [ "WHERE me.id NOT IN (?, ?, ?)",
136 "where NOT IN clause");