more examples
[dbsrgits/SQL-Abstract.git] / test.pl
1 use SQL::Abstract2;
2
3 my $bind_vars = [];
4 my $q = SQL::Abstract2->new;
5
6 my $test_struct =
7   [-select =>
8    [-fields =>
9     [-name => qw/table1 field1/],
10     [-name => qw/table1 field2/],
11     [-name => qw/table2 field3/],
12    ],
13    [-from => ( [-name => 'schema', 'table1'],
14                [-name => 'schema', 'table1', [-as => 'table2'] ],
15                ['-left join' =>
16                 [-name => 'schema', 'table2', [-as => 'table3'] ],
17                 [-on => [ -and => ( ['=', ( [-name => 'table1', 'fielda'],
18                                             [-name => 'table2', 'fielda'] ) ],
19                                     ['=', ( [-name => 'table1', 'fielda'],
20                                             [-name => 'table2', 'fielda'] ) ],
21                                   ),
22                         ],
23                 ],
24                ],
25              )
26    ],
27    [-where => [-and => [-and => ( ['<' => ( [-name => qw/table1 field1/],
28                                      [-date_sub => ['-curr_date'], qw/15 DAY/]
29                                    ),
30                            ],
31                            ['!=' => [-name => 'field3'], [-value => undef] ],
32                            ['='  => [-name => 'field4'], [-value => 500]   ],
33                          ),
34                 ],
35                 [-or => ( [-in => [-name => 'field5'], [-value => 100], [-value => 100]],
36                           [-between => [-name => 'field6'], [-value => 12], [-value => 26]]
37                         ),
38                 ],
39               ],
40    ],
41    [-'group by' => [-name => 'field4']],
42    [-'order by' => [-asc => [-name => 'field3']] ],
43    [-'limit' => [-value => 30],  [-value => 100]],
44   ];
45
46 print $q->handle_op($test_struct);