added aggregate functions and is-null
diff --git a/asterix-doc/src/site/markdown/aql/functions.md b/asterix-doc/src/site/markdown/aql/functions.md
index 1cda336..3b669d2 100644
--- a/asterix-doc/src/site/markdown/aql/functions.md
+++ b/asterix-doc/src/site/markdown/aql/functions.md
@@ -534,6 +534,95 @@
         " the voice-command is bad:("
         " the voicemail-service is awesome"
 
+## Aggregate Functions ##
+### count ###
+ * Syntax:
+ 
+        count(list)
+        
+ * Gets the number of items in the given list.
+ * Arguments:
+    * `list`: An `orderedList` or `unorderedList` containing the items to be counted, or a `null` value.
+ * Return Value:
+    * An `int64` value representing the number of items in the given list. `0i64` is returned if the input is `null`.
+    
+ * Example:
+ 
+        use dataverse TinySocial;
+
+        let $l1 := ['hello', 'world', 1, 2, 3]
+        let $l2 := for $i in dataset TwitterUsers return $i
+        return {"count1": count($l1), "count2": count($l2)}
+
+ * The expected result is:
+ 
+        { "count1": 5i64, "count2": 4i64 }    
+        
+### avg ###
+ * Syntax:
+ 
+        avg(num_list)
+        
+ * Gets the average value of the items in the given list.
+ * Arguments:
+    * `num_list`: An `orderedList` or `unorderedList` containing numeric or null values, or a `null` value.
+ * Return Value:
+    * An `double` value representing the average of the numbers in the given list. `null` is returned if the input is `null`, or the input list contains `null`. Non-numeric types in the input list will cause an error.
+    
+ * Example:
+ 
+        use dataverse TinySocial;
+
+        let $l := for $i in dataset TwitterUsers return $i.friends_count
+        return {"avg_friend_count": avg($l)}
+
+ * The expected result is:
+ 
+        { "avg_friend_count": 191.5d }   
+
+### sum ###
+ * Syntax:
+ 
+        sum(num_list)
+        
+ * Gets the sum of the items in the given list.
+ * Arguments:
+    * `num_list`: An `orderedList` or `unorderedList` containing numeric or null values, or a `null` value.
+ * Return Value:
+    * An `double` value representing the sum of the numbers in the given list. `null` is returned if the input is `null`, or the input list contains `null`. Non-numeric types in the input list will cause an error.
+    
+ * Example:
+ 
+        use dataverse TinySocial;
+
+        let $l := for $i in dataset TwitterUsers return $i.friends_count
+        return {"sum_friend_count": sum($l)}
+
+ * The expected result is:
+ 
+        { "sum_friend_count": 766 }  
+        
+### min/max ###
+ * Syntax:
+ 
+        min(num_list), max(num_list)
+        
+ * Gets the min/max of numeric items in the given list.
+ * Arguments:
+    * `num_list`: An `orderedList` or `unorderedList` containing the items to be compared, or a `null` value.
+ * Return Value:
+    * The min/max value of the given list. The returning type is decided by the item containing the type with the highest order in the numeric type promotion order (`int8`-> `int16`->`int32`->`float`->`double`, `int32`->`int64`->`double`) among items. `null` is returned if the input is `null`, or the input list contains `null`. Non-numeric types in the input list will cause an error.
+    
+ * Example:
+ 
+        use dataverse TinySocial;
+
+        let $l := for $i in dataset TwitterUsers return $i. friends_count
+        return {"min_friend_count": min($l), "max_friend_count": max($l)}
+
+ * The expected result is:
+ 
+        { "min_friend_count": 18, "max_friend_count": 445 }    
 
 ## Spatial Functions ##
 ### create-point ###
@@ -1933,3 +2022,28 @@
  * The expected result is:
 
         { "start": date("1984-01-01"), "end": date("1985-01-01") }
+
+## Other Functions ##
+
+### is-null ###
+ * Syntax:
+
+        is-null(var)
+
+ * Checks whether the given variable is a `null` value.
+ * Arguments:
+    * `var` : A variable (any type is allowed).
+ * Return Value:
+    * A `boolean` on whether the variable is a `null` or not.
+
+ * Example:
+
+        for $m in ['hello', 'world', null]
+        where not(is-null($m))
+        return $m
+
+
+ * The expected result is:
+
+        "hello"
+        "world"
\ No newline at end of file