8 # use a BEGIN block so we print our plan before SQL::Abstract is loaded
9 BEGIN { plan tests => 7 }
13 my $sql_maker = SQL::Abstract->new;
15 $sql_maker->{quote_char} = '`';
16 $sql_maker->{name_sep} = '.';
18 my ($sql,) = $sql_maker->select(
29 'artist.artistid' => 'me.artist'
40 'artist.name' => 'Caterwauler McCrae',
49 q/SELECT COUNT( * ) FROM `cd` `me` JOIN `artist` `artist` ON ( `artist`.`artistid` = `me`.`artist` ) WHERE ( `artist`.`name` = ? AND `me`.`year` = ? )/,
50 'got correct SQL for count query with quoting');
52 ($sql,) = $sql_maker->select(
75 local $TODO = "order_by with quoting needs fixing (ash/castaway)";
78 q/SELECT `me`.`cdid`, `me`.`artist`, `me`.`title`, `me`.`year` FROM `cd` `me` ORDER BY `year` DESC/,
79 'quoted ORDER BY with DESC okay');
83 ($sql,) = $sql_maker->select(
98 is($sql, q/SELECT `me`.* FROM `cd` `me`/, 'select attr with me.* is right');
100 ($sql,) = $sql_maker->select(
121 q/SELECT `me`.`cdid`, `me`.`artist`, `me`.`title`, `me`.`year` FROM `cd` `me` ORDER BY year DESC/,
122 'did not quote ORDER BY with scalarref');
131 ($sql,@binds) = $sql_maker->update(
140 q/UPDATE `group` SET `name` = ?, `order` = ?/,
141 'quoted table names for UPDATE');
143 $sql_maker->{quote_char} = [qw/[ ]/];
145 ($sql,) = $sql_maker->select(
152 'artist' => 'artist',
156 'artist.artistid' => 'me.artist'
167 'artist.name' => 'Caterwauler McCrae',
176 q/SELECT COUNT( * ) FROM [cd] [me] JOIN [artist] [artist] ON ( [artist].[artistid] = [me].[artist] ) WHERE ( [artist].[name] = ? AND [me].[year] = ? )/,
177 'got correct SQL for count query with bracket quoting');
180 ($sql,@binds) = $sql_maker->update(
189 q/UPDATE [group] SET [name] = ?, [order] = ?/,
190 'bracket quoted table names for UPDATE');