]
], 'Lists parsed correctly');
-is_deeply($sqlat->parse('SELECT foo FROM bar ORDER BY x + ? DESC, oomph, y - ? DESC, unf, baz.g / ? ASC, buzz * 0 DESC, foo DESC, ickk ASC'), [
+is_deeply($sqlat->parse('SELECT foo FROM bar ORDER BY x + ? DESC, oomph, y - ? DESC, unf, baz.g / ? ASC, buzz * 0 DESC, foo LIKE ? DESC, ickk ASC'), [
[
"SELECT",
[
[
"+"
]
+ ],
+ [
+ "-PLACEHOLDER",
+ [
+ "?"
+ ]
]
]
],
- [
- "-PLACEHOLDER",
- [
- "?"
- ]
- ]
]
],
[
[
"-"
]
- ]
+ ],
+ [
+ "-PLACEHOLDER",
+ [
+ "?"
+ ]
+ ],
]
],
- [
- "-PLACEHOLDER",
- [
- "?"
- ]
- ]
]
],
[
[
"/"
]
- ]
+ ],
+ [
+ "-PLACEHOLDER",
+ [
+ "?"
+ ]
+ ],
]
],
- [
- "-PLACEHOLDER",
- [
- "?"
- ]
- ]
]
],
[
"-DESC",
[
[
- "-LITERAL",
+ "LIKE",
[
- "foo"
- ]
- ]
+ [
+ "-LITERAL",
+ [
+ "foo"
+ ]
+ ],
+ [
+ "-PLACEHOLDER",
+ [
+ "?"
+ ]
+ ],
+ ],
+ ],
]
],
[
]
], 'Crazy ORDER BY parsed correctly');
-
-is_deeply($sqlat->parse("SELECT * * FROM (SELECT *, FROM foobar baz buzz) foo bar WHERE NOT NOT NOT EXISTS (SELECT 'cr,ap') AND foo.a = ? and not (foo.b LIKE 'station') and x = y and a = b and GROUP BY , ORDER BY x x1 x2 y asc, max(y) desc x z desc"), [
+is_deeply( $sqlat->parse("META SELECT * * FROM (SELECT *, FROM foobar baz buzz) foo bar WHERE NOT NOT NOT EXISTS (SELECT 'cr,ap') AND foo.a = ? STUFF moar(stuff) and not (foo.b LIKE 'station') and x = y and z in ((1, 2)) and a = b and GROUP BY , ORDER BY x x1 x2 y asc, max(y) desc x z desc"), [
+ [
+ "-LITERAL",
+ [
+ "META"
+ ]
+ ],
[
"SELECT",
[
]
],
[
- "=",
+ "-MISC",
[
[
+ "=",
+ [
+ [
+ "-LITERAL",
+ [
+ "foo.a"
+ ]
+ ],
+ [
+ "-PLACEHOLDER",
+ [
+ "?"
+ ]
+ ],
+ ],
+ ],
+ [
"-LITERAL",
[
- "foo.a"
+ "STUFF"
]
],
+ ],
+ ],
+ [
+ 'moar',
+ [
[
- "-PLACEHOLDER",
+ '-PAREN',
[
- "?"
+ [
+ '-LITERAL',
+ [
+ 'stuff'
+ ]
+ ]
]
]
]
]
],
[
+ 'IN',
+ [
+ [
+ '-LITERAL',
+ [
+ 'z',
+ ],
+ ],
+ [
+ '-PAREN',
+ [
+ [
+ '-PAREN',
+ [
+ [
+ '-LIST',
+ [
+ [
+ '-LITERAL',
+ [
+ '1'
+ ]
+ ],
+ [
+ '-LITERAL',
+ [
+ '2'
+ ]
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ [
"=",
[
[
],
],
[
- "max",
- [
- [
"-DESC",
[
[
"-DESC",
[
[
- "-PAREN",
+ "max",
[
[
- "-LITERAL",
+ "-PAREN",
[
- "y"
+ [
+ "-LITERAL",
+ [
+ "y"
+ ]
+ ]
]
]
- ]
+ ],
]
]
],
"x"
]
],
- [
- "-LITERAL",
- [
- "z"
- ]
- ]
+ [
+ "-LITERAL",
+ [
+ "z"
]
]
]