7 use DBIC::SqlMakerTest;
9 my $schema = DBICTest->init_schema;
11 $schema->storage->_sql_maker->limit_dialect ('RowNumberOver');
13 my $rs_selectas_col = $schema->resultset ('BooksInLibrary')->search ({}, {
14 '+select' => ['owner.name'],
15 '+as' => ['owner.name'],
21 $rs_selectas_col->as_query,
23 SELECT id, source, owner, title, price,
26 SELECT id, source, owner, title, price,
28 ROW_NUMBER() OVER( ) AS rno__row__index
30 SELECT me.id, me.source, me.owner, me.title, me.price,
31 owner.name AS owner__name
33 JOIN owners owner ON owner.id = me.owner
37 WHERE rno__row__index BETWEEN 1 AND 1
39 [ [ { sqlt_datatype => 'varchar', sqlt_size => 100, dbic_colname => 'source' }
43 $schema->storage->_sql_maker->quote_char ([qw/ [ ] /]);
44 $schema->storage->_sql_maker->name_sep ('.');
46 my $rs_selectas_rel = $schema->resultset ('BooksInLibrary')->search ({}, {
47 '+select' => ['owner.name'],
48 '+as' => ['owner_name'],
54 $rs_selectas_rel->as_query,
56 SELECT [id], [source], [owner], [title], [price],
59 SELECT [id], [source], [owner], [title], [price],
61 ROW_NUMBER() OVER( ) AS [rno__row__index]
63 SELECT [me].[id], [me].[source], [me].[owner], [me].[title], [me].[price],
64 [owner].[name] AS [owner_name]
66 JOIN [owners] [owner] ON [owner].[id] = [me].[owner]
67 WHERE ( [source] = ? )
70 WHERE [rno__row__index] BETWEEN 1 AND 1
72 [ [ { sqlt_datatype => 'varchar', sqlt_size => 100, dbic_colname => 'source' }
77 my $rs = $schema->resultset('Artist')->search({}, {
82 local $rs->result_source->{name} = "weird \n newline/multi \t \t space containing \n table";
85 ${$rs->as_query}->[0],
86 qr| weird \s \n \s newline/multi \s \t \s \t \s space \s containing \s \n \s table|x,
87 'Newlines/spaces preserved in final sql',