X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FSQL-Abstract.git;a=blobdiff_plain;f=t%2F21op_ident.t;fp=t%2F21op_ident.t;h=d73b11cece340844075cda101c11c625d62bc7ac;hp=a0e566b4d7ecae763080328c6abec59b0f60a03c;hb=8f1b2aaf128039bebbfc328fb0416ec9d16aeaac;hpb=2972827e573b0217735b901088e69c994ba8d226 diff --git a/t/21op_ident.t b/t/21op_ident.t index a0e566b..d73b11c 100644 --- a/t/21op_ident.t +++ b/t/21op_ident.t @@ -17,6 +17,16 @@ for my $q ('', '"') { $sql_maker->where({ foo => { -ident => undef } }) } qr/-ident requires a single plain scalar argument/; + throws_ok { + local $sql_maker->{disable_old_special_ops} = 1; + $sql_maker->where({'-or' => [{'-ident' => 'foo'},'foo']}) + } qr/Illegal.*top-level/; + + throws_ok { + local $sql_maker->{disable_old_special_ops} = 1; + $sql_maker->where({'-or' => [{'-ident' => 'foo'},{'=' => \'bozz'}]}) + } qr/Illegal.*top-level/; + my ($sql, @bind) = $sql_maker->select('artist', '*', { 'artist.name' => { -ident => 'artist.pseudonym' } } ); is_same_sql_bind ( $sql, @@ -41,6 +51,18 @@ for my $q ('', '"') { ", [], ); + + ($sql) = $sql_maker->select( + \(my $from = 'foo JOIN bar ON foo.bar_id = bar.id'), + [ { -ident => [ 'foo', 'name' ] }, { -ident => [ 'bar', '*' ] } ] + ); + + is_same_sql_bind( + $sql, + undef, + "SELECT ${q}foo${q}.${q}name${q}, ${q}bar${q}.* + FROM $from" + ); } done_testing;