Tag Meaning
----|----------------------
* Always include line
& Include line if ALL parameters and dependencies are true.
| Include line if ANY parameters and dependencies are true.
# Never include line, i.e. this line is a comment
####
Symbol | Meaning | Example | In Query | Bind Var
--------|-------------------|---------|--------------|----------
?? Named Placeholder ?foo? '?' YES
!! Dependency !foo! Empty string NO
!~! Negated Dependency !~foo! Empty string NO
##
##
my $sql = <<'END';
# TAG CODE with PLACEHOLDERS and DEPENDENCIES
* SELECT
& count(*), !want_count!
& some, !want_data!
& stuff, !want_data!
* WHERE
* foo = ?foo?
& AND bar = ?bar?
& ORDER BY someting !want_data!
& LIMIT ?page_size? !want_data!
& OFFSET ?offset? !want_data!
END
my ($query, @bind_vars) = DBIx::PreQL->build_query(
query => $sql,
data => {
foo => $foo,
bar => $bar,
want_count => !!$count_only,
want_data => !$count_only,
page_size => $page_size,
$offset => $page_size * $page_number,
},
);
##
##
SELECT
some,
stuff
WHERE
foo = ?
AND bar = ?
ORDER BY someting
LIMIT ?
OFFSET ?
BINDVARS: 'Foolike', 'Barlike', 3, 30