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');
53 ($sql,) = $sql_maker->select(
77 q/SELECT `me`.`cdid`, `me`.`artist`, `me`.`title`, `me`.`year` FROM `cd` `me` ORDER BY `year` DESC/,
78 'quoted ORDER BY with DESC okay');
81 ($sql,) = $sql_maker->select(
96 is($sql, q/SELECT `me`.* FROM `cd` `me`/, 'select attr with me.* is right');
98 ($sql,) = $sql_maker->select(
119 q/SELECT `me`.`cdid`, `me`.`artist`, `me`.`title`, `me`.`year` FROM `cd` `me` ORDER BY year DESC/,
120 'did not quote ORDER BY with scalarref');
129 ($sql,@binds) = $sql_maker->update(
138 q/UPDATE `group` SET `name` = ?, `order` = ?/,
139 'quoted table names for UPDATE');
141 $sql_maker->{quote_char} = [qw/[ ]/];
143 ($sql,) = $sql_maker->select(
150 'artist' => 'artist',
154 'artist.artistid' => 'me.artist'
165 'artist.name' => 'Caterwauler McCrae',
174 q/SELECT COUNT( * ) FROM [cd] [me] JOIN [artist] [artist] ON ( [artist].[artistid] = [me].[artist] ) WHERE ( [artist].[name] = ? AND [me].[year] = ? )/,
175 'got correct SQL for count query with bracket quoting');
178 ($sql,@binds) = $sql_maker->update(
187 q/UPDATE [group] SET [name] = ?, [order] = ?/,
188 'bracket quoted table names for UPDATE');