Repository: gluesql/gluesql (rust)

Issue:
Current aggregation functions are case-sensitive
```sql
SELECT COUNT(*) FROM TableA;

SELECT count(*) FROM TableA;
```

both should work but the second one is not working.

Pull request description:
Fix aggregate to handle function names case-insensitively
#resolve #33 

Patch:
diff --git a/src/executor/aggregate.rs b/src/executor/aggregate.rs
index 077fdd00..ec6a42d0 100644
--- a/src/executor/aggregate.rs
+++ b/src/executor/aggregate.rs
@@ -145,7 +145,7 @@ fn aggregate<'a>(
         Expr::Function(func) => {
             let Function { name, args, .. } = func;
 
-            match get_name(name)?.as_str() {
+            match get_name(name)?.to_uppercase().as_str() {
                 "COUNT" => {
                     let expr = args.get(0).ok_or(AggregateError::Unreachable)?;
 


Test patch:
diff --git a/src/tests/aggregate.rs b/src/tests/aggregate.rs
index bca1190a..f46f727d 100644
--- a/src/tests/aggregate.rs
+++ b/src/tests/aggregate.rs
@@ -29,6 +29,7 @@ pub fn aggregate(mut tester: impl tests::Tester) {
 
     let test_cases = vec![
         ("SELECT COUNT(*) FROM Item", select!(I64; 5)),
+        ("SELECT count(*) FROM Item", select!(I64; 5)),
         ("SELECT COUNT(*), COUNT(*) FROM Item", select!(I64 I64; 5 5)),
         (
             "SELECT SUM(quantity), MAX(quantity), MIN(quantity) FROM Item",