From 25e3666f9823892060e8adaad8e91c1f015067af Mon Sep 17 00:00:00 2001 From: Jay Date: Tue, 22 Nov 2016 21:19:30 +0800 Subject: [PATCH] copr: aggr null for first (#1339) --- src/server/coprocessor/aggregate.rs | 3 --- tests/coprocessor/test_select.rs | 5 +++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/server/coprocessor/aggregate.rs b/src/server/coprocessor/aggregate.rs index 6433754d196..e59971ca97e 100644 --- a/src/server/coprocessor/aggregate.rs +++ b/src/server/coprocessor/aggregate.rs @@ -61,9 +61,6 @@ impl AggrFunc for First { if args.len() != 1 { return Err(box_err!("Wrong number of args for AggFuncFirstRow: {}", args.len())); } - if args[0] == Datum::Null { - return Ok(()); - } *self = args.pop(); Ok(()) } diff --git a/tests/coprocessor/test_select.rs b/tests/coprocessor/test_select.rs index 38e480fae2d..aa4c6dc03cd 100644 --- a/tests/coprocessor/test_select.rs +++ b/tests/coprocessor/test_select.rs @@ -656,6 +656,7 @@ fn test_aggr_first() { let data = vec![ (1, Some("name:0"), 2), (2, Some("name:3"), 3), + (3, Some("name:5"), 3), (4, Some("name:0"), 1), (5, Some("name:5"), 4), (6, Some("name:5"), 4), @@ -671,7 +672,7 @@ fn test_aggr_first() { let exp = vec![ (Datum::Bytes(b"name:0".to_vec()), 1), (Datum::Bytes(b"name:3".to_vec()), 2), - (Datum::Bytes(b"name:5".to_vec()), 5), + (Datum::Bytes(b"name:5".to_vec()), 3), (Datum::Null, 7), ]; let req = Select::from(&product.table).first(product.id).group_by(&[product.name]).build(); @@ -690,7 +691,7 @@ fn test_aggr_first() { (3, Datum::Bytes(b"name:3".to_vec())), (1, Datum::Bytes(b"name:0".to_vec())), (4, Datum::Bytes(b"name:5".to_vec())), - (5, Datum::Bytes(b"name:5".to_vec())), + (5, Datum::Null), (6, Datum::Null), ]; let req = Select::from(&product.table).first(product.name).group_by(&[product.count]).build();