feat: Hive: support SORT BY direction (#1873)

This commit is contained in:
Chen Chongchen 2025-06-06 15:11:44 +08:00 committed by GitHub
parent 4cf5e571d3
commit e2b1ae36e9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 5 additions and 2 deletions

View file

@ -341,7 +341,7 @@ pub struct Select {
/// DISTRIBUTE BY (Hive) /// DISTRIBUTE BY (Hive)
pub distribute_by: Vec<Expr>, pub distribute_by: Vec<Expr>,
/// SORT BY (Hive) /// SORT BY (Hive)
pub sort_by: Vec<Expr>, pub sort_by: Vec<OrderByExpr>,
/// HAVING /// HAVING
pub having: Option<Expr>, pub having: Option<Expr>,
/// WINDOW AS /// WINDOW AS

View file

@ -11591,7 +11591,7 @@ impl<'a> Parser<'a> {
}; };
let sort_by = if self.parse_keywords(&[Keyword::SORT, Keyword::BY]) { let sort_by = if self.parse_keywords(&[Keyword::SORT, Keyword::BY]) {
self.parse_comma_separated(Parser::parse_expr)? self.parse_comma_separated(Parser::parse_order_by_expr)?
} else { } else {
vec![] vec![]
}; };

View file

@ -341,6 +341,9 @@ fn lateral_view() {
fn sort_by() { fn sort_by() {
let sort_by = "SELECT * FROM db.table SORT BY a"; let sort_by = "SELECT * FROM db.table SORT BY a";
hive().verified_stmt(sort_by); hive().verified_stmt(sort_by);
let sort_by_with_direction = "SELECT * FROM db.table SORT BY a, b DESC";
hive().verified_stmt(sort_by_with_direction);
} }
#[test] #[test]