mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-09-26 15:39:12 +00:00
Add LIMIT as RESERVED_FOR_TABLE_ALIAS, this closes Issue#67
This commit is contained in:
parent
908082d26f
commit
d263d285e2
3 changed files with 11 additions and 2 deletions
|
@ -393,7 +393,7 @@ pub const RESERVED_FOR_TABLE_ALIAS: &[&str] = &[
|
||||||
// Reserved as both a table and a column alias:
|
// Reserved as both a table and a column alias:
|
||||||
WITH, SELECT, WHERE, GROUP, ORDER, UNION, EXCEPT, INTERSECT,
|
WITH, SELECT, WHERE, GROUP, ORDER, UNION, EXCEPT, INTERSECT,
|
||||||
// Reserved only as a table alias in the `FROM`/`JOIN` clauses:
|
// Reserved only as a table alias in the `FROM`/`JOIN` clauses:
|
||||||
ON, JOIN, INNER, CROSS, FULL, LEFT, RIGHT, NATURAL, USING,
|
ON, JOIN, INNER, CROSS, FULL, LEFT, RIGHT, NATURAL, USING, LIMIT,
|
||||||
];
|
];
|
||||||
|
|
||||||
/// Can't be used as a column alias, so that `SELECT <expr> alias`
|
/// Can't be used as a column alias, so that `SELECT <expr> alias`
|
||||||
|
|
|
@ -1202,7 +1202,6 @@ impl Parser {
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
};
|
};
|
||||||
|
|
||||||
let limit = if self.parse_keyword("LIMIT") {
|
let limit = if self.parse_keyword("LIMIT") {
|
||||||
self.parse_limit()?
|
self.parse_limit()?
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -124,6 +124,16 @@ fn parse_simple_select() {
|
||||||
assert_eq!(Some(ASTNode::SQLValue(Value::Long(5))), select.limit);
|
assert_eq!(Some(ASTNode::SQLValue(Value::Long(5))), select.limit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn parse_select_with_limit_but_no_where() {
|
||||||
|
let sql = "SELECT id, fname, lname FROM customer LIMIT 5";
|
||||||
|
let select = verified_only_select(sql);
|
||||||
|
assert_eq!(false, select.distinct);
|
||||||
|
assert_eq!(3, select.projection.len());
|
||||||
|
let select = verified_query(sql);
|
||||||
|
assert_eq!(Some(ASTNode::SQLValue(Value::Long(5))), select.limit);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn parse_select_distinct() {
|
fn parse_select_distinct() {
|
||||||
let sql = "SELECT DISTINCT name FROM customer";
|
let sql = "SELECT DISTINCT name FROM customer";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue