You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by dl...@apache.org on 2018/10/23 16:33:33 UTC

[1/6] asterixdb git commit: [ASTERIXDB-2459][FUN] Add sttdev_pop() aggregate function

Repository: asterixdb
Updated Branches:
  refs/heads/master c4dbb6145 -> 11d5b2812


http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalStddevAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalStddevAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalStddevAggregateDescriptor.java
index f4d3bd8..b8f36dd 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalStddevAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalStddevAggregateDescriptor.java
@@ -54,7 +54,7 @@ public class SerializableLocalStddevAggregateDescriptor extends AbstractSerializ
             @Override
             public ISerializedAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx)
                     throws HyracksDataException {
-                return new SerializableLocalStddevAggregateFunction(args, ctx, sourceLoc);
+                return new SerializableLocalStddevAggregateFunction(args, ctx, false, sourceLoc);
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalStddevAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalStddevAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalStddevAggregateFunction.java
index 3693d4b..bd5a80c 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalStddevAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalStddevAggregateFunction.java
@@ -34,9 +34,12 @@ import java.io.DataOutput;
 public class SerializableLocalStddevAggregateFunction
         extends AbstractSerializableSingleVariableStatisticsAggregateFunction {
 
+    private final boolean isPop;
+
     public SerializableLocalStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context,
-            SourceLocation sourceLoc) throws HyracksDataException {
+            boolean isPop, SourceLocation sourceLoc) throws HyracksDataException {
         super(args, context, sourceLoc);
+        this.isPop = isPop;
     }
 
     @Override
@@ -67,6 +70,10 @@ public class SerializableLocalStddevAggregateFunction
 
     @Override
     protected FunctionIdentifier getFunctionIdentifier() {
-        return BuiltinFunctions.STDDEV;
+        if (isPop) {
+            return BuiltinFunctions.STDDEV_POP;
+        } else {
+            return BuiltinFunctions.STDDEV;
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..1edfd92
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalStddevPopAggregateDescriptor.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.runtime.aggregates.serializable.std;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.base.AbstractSerializableAggregateFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class SerializableLocalStddevPopAggregateDescriptor
+        extends AbstractSerializableAggregateFunctionDynamicDescriptor {
+
+    private static final long serialVersionUID = 1L;
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new SerializableLocalStddevPopAggregateDescriptor();
+        }
+    };
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.SERIAL_LOCAL_STDDEV_POP;
+    }
+
+    @Override
+    public ISerializedAggregateEvaluatorFactory createSerializableAggregateEvaluatorFactory(
+            final IScalarEvaluatorFactory[] args) {
+        return new ISerializedAggregateEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public ISerializedAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx)
+                    throws HyracksDataException {
+                return new SerializableLocalStddevAggregateFunction(args, ctx, true, sourceLoc);
+            }
+        };
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSqlStddevAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSqlStddevAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSqlStddevAggregateDescriptor.java
index a2c2a16..a046242 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSqlStddevAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSqlStddevAggregateDescriptor.java
@@ -53,7 +53,7 @@ public class SerializableSqlStddevAggregateDescriptor extends AbstractSerializab
             @Override
             public ISerializedAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx)
                     throws HyracksDataException {
-                return new SerializableSqlStddevAggregateFunction(args, ctx, sourceLoc);
+                return new SerializableSqlStddevAggregateFunction(args, ctx, false, sourceLoc);
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSqlStddevAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSqlStddevAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSqlStddevAggregateFunction.java
index 005eaad..299aa16 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSqlStddevAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSqlStddevAggregateFunction.java
@@ -31,9 +31,18 @@ import java.io.DataOutput;
 public class SerializableSqlStddevAggregateFunction
         extends AbstractSerializableSingleVariableStatisticsAggregateFunction {
 
+    private final boolean isPop;
+    private final int delta;
+
     public SerializableSqlStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context,
-            SourceLocation sourceLoc) throws HyracksDataException {
+            boolean isPop, SourceLocation sourceLoc) throws HyracksDataException {
         super(args, context, sourceLoc);
+        this.isPop = isPop;
+        if (isPop) {
+            delta = 0;
+        } else {
+            delta = 1;
+        }
     }
 
     @Override
@@ -43,7 +52,7 @@ public class SerializableSqlStddevAggregateFunction
 
     @Override
     public void finish(byte[] state, int start, int len, DataOutput result) throws HyracksDataException {
-        finishStddevFinalResults(state, start, len, result);
+        finishStddevFinalResults(state, start, len, result, delta);
     }
 
     @Override
@@ -57,7 +66,11 @@ public class SerializableSqlStddevAggregateFunction
 
     @Override
     protected FunctionIdentifier getFunctionIdentifier() {
-        return BuiltinFunctions.STDDEV;
+        if (isPop) {
+            return BuiltinFunctions.STDDEV_POP;
+        } else {
+            return BuiltinFunctions.STDDEV;
+        }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSqlStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSqlStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSqlStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..24b84b9
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableSqlStddevPopAggregateDescriptor.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.asterix.runtime.aggregates.serializable.std;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.base.AbstractSerializableAggregateFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class SerializableSqlStddevPopAggregateDescriptor
+        extends AbstractSerializableAggregateFunctionDynamicDescriptor {
+
+    private static final long serialVersionUID = 1L;
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new SerializableSqlStddevPopAggregateDescriptor();
+        }
+    };
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.SERIAL_SQL_STDDEV_POP;
+    }
+
+    @Override
+    public ISerializedAggregateEvaluatorFactory createSerializableAggregateEvaluatorFactory(
+            final IScalarEvaluatorFactory[] args) {
+        return new ISerializedAggregateEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public ISerializedAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx)
+                    throws HyracksDataException {
+                return new SerializableSqlStddevAggregateFunction(args, ctx, true, sourceLoc);
+            }
+        };
+    }
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableStddevAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableStddevAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableStddevAggregateDescriptor.java
index f20abc7..30a0d1e 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableStddevAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableStddevAggregateDescriptor.java
@@ -54,7 +54,7 @@ public class SerializableStddevAggregateDescriptor extends AbstractSerializableA
             @Override
             public ISerializedAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx)
                     throws HyracksDataException {
-                return new SerializableStddevAggregateFunction(args, ctx, sourceLoc);
+                return new SerializableStddevAggregateFunction(args, ctx, false, sourceLoc);
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableStddevAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableStddevAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableStddevAggregateFunction.java
index f30848d..c9df585 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableStddevAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableStddevAggregateFunction.java
@@ -32,9 +32,18 @@ import java.io.DataOutput;
 
 public class SerializableStddevAggregateFunction extends AbstractSerializableSingleVariableStatisticsAggregateFunction {
 
+    private final boolean isPop;
+    private final int delta;
+
     public SerializableStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context,
-            SourceLocation sourceLoc) throws HyracksDataException {
+            boolean isPop, SourceLocation sourceLoc) throws HyracksDataException {
         super(args, context, sourceLoc);
+        this.isPop = isPop;
+        if (isPop) {
+            delta = 0;
+        } else {
+            delta = 1;
+        }
     }
 
     @Override
@@ -44,7 +53,7 @@ public class SerializableStddevAggregateFunction extends AbstractSerializableSin
 
     @Override
     public void finish(byte[] state, int start, int len, DataOutput result) throws HyracksDataException {
-        finishStddevFinalResults(state, start, len, result);
+        finishStddevFinalResults(state, start, len, result, delta);
     }
 
     @Override
@@ -65,7 +74,11 @@ public class SerializableStddevAggregateFunction extends AbstractSerializableSin
 
     @Override
     protected FunctionIdentifier getFunctionIdentifier() {
-        return BuiltinFunctions.STDDEV;
+        if (isPop) {
+            return BuiltinFunctions.STDDEV_POP;
+        } else {
+            return BuiltinFunctions.STDDEV;
+        }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..e645980
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableStddevPopAggregateDescriptor.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.asterix.runtime.aggregates.serializable.std;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.base.AbstractSerializableAggregateFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class SerializableStddevPopAggregateDescriptor extends AbstractSerializableAggregateFunctionDynamicDescriptor {
+
+    private static final long serialVersionUID = 1L;
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new SerializableStddevPopAggregateDescriptor();
+        }
+    };
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.SERIAL_STDDEV_POP;
+    }
+
+    @Override
+    public ISerializedAggregateEvaluatorFactory createSerializableAggregateEvaluatorFactory(
+            final IScalarEvaluatorFactory[] args) throws AlgebricksException {
+        return new ISerializedAggregateEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public ISerializedAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx)
+                    throws HyracksDataException {
+                return new SerializableStddevAggregateFunction(args, ctx, true, sourceLoc);
+            }
+        };
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractSingleVarStatisticsAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractSingleVarStatisticsAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractSingleVarStatisticsAggregateFunction.java
index 8141839..f4171bd 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractSingleVarStatisticsAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractSingleVarStatisticsAggregateFunction.java
@@ -238,13 +238,13 @@ public abstract class AbstractSingleVarStatisticsAggregateFunction extends Abstr
         }
     }
 
-    protected void finishStddevFinalResults(IPointable result) throws HyracksDataException {
+    protected void finishStddevFinalResults(IPointable result, int delta) throws HyracksDataException {
         resultStorage.reset();
         try {
             if (moments.getCount() <= 1 || aggType == ATypeTag.NULL) {
                 nullSerde.serialize(ANull.NULL, resultStorage.getDataOutput());
             } else {
-                aDouble.setValue(Math.sqrt(moments.getM2() / (moments.getCount() - 1)));
+                aDouble.setValue(Math.sqrt(moments.getM2() / (moments.getCount() - delta)));
                 doubleSerde.serialize(aDouble, resultStorage.getDataOutput());
             }
         } catch (IOException e) {

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalSqlStddevAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalSqlStddevAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalSqlStddevAggregateDescriptor.java
index 19d90b2..4a8607a 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalSqlStddevAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalSqlStddevAggregateDescriptor.java
@@ -54,7 +54,7 @@ public class GlobalSqlStddevAggregateDescriptor extends AbstractAggregateFunctio
             @Override
             public IAggregateEvaluator createAggregateEvaluator(final IHyracksTaskContext ctx)
                     throws HyracksDataException {
-                return new GlobalSqlStddevAggregateFunction(args, ctx, sourceLoc);
+                return new GlobalSqlStddevAggregateFunction(args, ctx, false, sourceLoc);
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalSqlStddevAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalSqlStddevAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalSqlStddevAggregateFunction.java
index 3728201..8ae5796 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalSqlStddevAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalSqlStddevAggregateFunction.java
@@ -30,9 +30,18 @@ import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
 
 public class GlobalSqlStddevAggregateFunction extends AbstractSingleVarStatisticsAggregateFunction {
 
-    public GlobalSqlStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context,
+    private final boolean isPop;
+    private final int delta;
+
+    public GlobalSqlStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context, boolean isPop,
             SourceLocation sourceLoc) throws HyracksDataException {
         super(args, context, sourceLoc);
+        this.isPop = isPop;
+        if (isPop) {
+            delta = 0;
+        } else {
+            delta = 1;
+        }
     }
 
     @Override
@@ -42,7 +51,7 @@ public class GlobalSqlStddevAggregateFunction extends AbstractSingleVarStatistic
 
     @Override
     public void finish(IPointable result) throws HyracksDataException {
-        finishStddevFinalResults(result);
+        finishStddevFinalResults(result, delta);
     }
 
     @Override
@@ -56,7 +65,11 @@ public class GlobalSqlStddevAggregateFunction extends AbstractSingleVarStatistic
 
     @Override
     protected FunctionIdentifier getFunctionIdentifier() {
-        return BuiltinFunctions.STDDEV;
+        if (isPop) {
+            return BuiltinFunctions.STDDEV_POP;
+        } else {
+            return BuiltinFunctions.STDDEV;
+        }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalSqlStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalSqlStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalSqlStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..b227f2d
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalSqlStddevPopAggregateDescriptor.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.runtime.aggregates.std;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.base.AbstractAggregateFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class GlobalSqlStddevPopAggregateDescriptor extends AbstractAggregateFunctionDynamicDescriptor {
+
+    private static final long serialVersionUID = 1L;
+
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new GlobalSqlStddevPopAggregateDescriptor();
+        }
+    };
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.GLOBAL_SQL_STDDEV_POP;
+    }
+
+    @Override
+    public IAggregateEvaluatorFactory createAggregateEvaluatorFactory(final IScalarEvaluatorFactory[] args) {
+        return new IAggregateEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public IAggregateEvaluator createAggregateEvaluator(final IHyracksTaskContext ctx)
+                    throws HyracksDataException {
+                return new GlobalSqlStddevAggregateFunction(args, ctx, true, sourceLoc);
+            }
+        };
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalStddevAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalStddevAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalStddevAggregateDescriptor.java
index 3ab204c..015abb5 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalStddevAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalStddevAggregateDescriptor.java
@@ -54,7 +54,7 @@ public class GlobalStddevAggregateDescriptor extends AbstractAggregateFunctionDy
             @Override
             public IAggregateEvaluator createAggregateEvaluator(final IHyracksTaskContext ctx)
                     throws HyracksDataException {
-                return new GlobalStddevAggregateFunction(args, ctx, sourceLoc);
+                return new GlobalStddevAggregateFunction(args, ctx, false, sourceLoc);
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalStddevAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalStddevAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalStddevAggregateFunction.java
index 5ceea4b..e459b6d 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalStddevAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalStddevAggregateFunction.java
@@ -31,9 +31,18 @@ import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
 
 public class GlobalStddevAggregateFunction extends AbstractSingleVarStatisticsAggregateFunction {
 
-    public GlobalStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context,
+    private final boolean isPop;
+    private final int delta;
+
+    public GlobalStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context, boolean isPop,
             SourceLocation sourceLoc) throws HyracksDataException {
         super(args, context, sourceLoc);
+        this.isPop = isPop;
+        if (isPop) {
+            delta = 0;
+        } else {
+            delta = 1;
+        }
     }
 
     @Override
@@ -43,7 +52,7 @@ public class GlobalStddevAggregateFunction extends AbstractSingleVarStatisticsAg
 
     @Override
     public void finish(IPointable result) throws HyracksDataException {
-        finishStddevFinalResults(result);
+        finishStddevFinalResults(result, delta);
     }
 
     @Override
@@ -63,7 +72,11 @@ public class GlobalStddevAggregateFunction extends AbstractSingleVarStatisticsAg
 
     @Override
     protected FunctionIdentifier getFunctionIdentifier() {
-        return BuiltinFunctions.STDDEV;
+        if (isPop) {
+            return BuiltinFunctions.STDDEV_POP;
+        } else {
+            return BuiltinFunctions.STDDEV;
+        }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..1dc3083
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/GlobalStddevPopAggregateDescriptor.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.runtime.aggregates.std;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.base.AbstractAggregateFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class GlobalStddevPopAggregateDescriptor extends AbstractAggregateFunctionDynamicDescriptor {
+
+    private static final long serialVersionUID = 1L;
+
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new GlobalStddevPopAggregateDescriptor();
+        }
+    };
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.GLOBAL_STDDEV_POP;
+    }
+
+    @Override
+    public IAggregateEvaluatorFactory createAggregateEvaluatorFactory(final IScalarEvaluatorFactory[] args) {
+        return new IAggregateEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public IAggregateEvaluator createAggregateEvaluator(final IHyracksTaskContext ctx)
+                    throws HyracksDataException {
+                return new GlobalStddevAggregateFunction(args, ctx, true, sourceLoc);
+            }
+        };
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateSqlStddevAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateSqlStddevAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateSqlStddevAggregateDescriptor.java
index f96a757..6d979da 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateSqlStddevAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateSqlStddevAggregateDescriptor.java
@@ -53,7 +53,7 @@ public class IntermediateSqlStddevAggregateDescriptor extends AbstractAggregateF
             @Override
             public IAggregateEvaluator createAggregateEvaluator(final IHyracksTaskContext ctx)
                     throws HyracksDataException {
-                return new IntermediateSqlStddevAggregateFunction(args, ctx, sourceLoc);
+                return new IntermediateSqlStddevAggregateFunction(args, ctx, false, sourceLoc);
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateSqlStddevAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateSqlStddevAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateSqlStddevAggregateFunction.java
index 44a0315..5711d0a 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateSqlStddevAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateSqlStddevAggregateFunction.java
@@ -30,9 +30,12 @@ import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
 
 public class IntermediateSqlStddevAggregateFunction extends AbstractSingleVarStatisticsAggregateFunction {
 
+    private final boolean isPop;
+
     public IntermediateSqlStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context,
-            SourceLocation sourceLoc) throws HyracksDataException {
+            boolean isPop, SourceLocation sourceLoc) throws HyracksDataException {
         super(args, context, sourceLoc);
+        this.isPop = isPop;
     }
 
     @Override
@@ -56,6 +59,10 @@ public class IntermediateSqlStddevAggregateFunction extends AbstractSingleVarSta
 
     @Override
     protected FunctionIdentifier getFunctionIdentifier() {
-        return BuiltinFunctions.STDDEV;
+        if (isPop) {
+            return BuiltinFunctions.STDDEV_POP;
+        } else {
+            return BuiltinFunctions.STDDEV;
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateSqlStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateSqlStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateSqlStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..f568394
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateSqlStddevPopAggregateDescriptor.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.runtime.aggregates.std;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.base.AbstractAggregateFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class IntermediateSqlStddevPopAggregateDescriptor extends AbstractAggregateFunctionDynamicDescriptor {
+
+    private static final long serialVersionUID = 1L;
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new IntermediateSqlStddevPopAggregateDescriptor();
+        }
+    };
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.INTERMEDIATE_SQL_STDDEV_POP;
+    }
+
+    @Override
+    public IAggregateEvaluatorFactory createAggregateEvaluatorFactory(final IScalarEvaluatorFactory[] args) {
+        return new IAggregateEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public IAggregateEvaluator createAggregateEvaluator(final IHyracksTaskContext ctx)
+                    throws HyracksDataException {
+                return new IntermediateSqlStddevAggregateFunction(args, ctx, true, sourceLoc);
+            }
+        };
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateStddevAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateStddevAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateStddevAggregateDescriptor.java
index 503072b..34248d1 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateStddevAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateStddevAggregateDescriptor.java
@@ -54,7 +54,7 @@ public class IntermediateStddevAggregateDescriptor extends AbstractAggregateFunc
             @Override
             public IAggregateEvaluator createAggregateEvaluator(final IHyracksTaskContext ctx)
                     throws HyracksDataException {
-                return new IntermediateStddevAggregateFunction(args, ctx, sourceLoc);
+                return new IntermediateStddevAggregateFunction(args, ctx, false, sourceLoc);
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateStddevAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateStddevAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateStddevAggregateFunction.java
index 238a523..77b5bf0 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateStddevAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateStddevAggregateFunction.java
@@ -32,9 +32,12 @@ import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
 
 public class IntermediateStddevAggregateFunction extends AbstractSingleVarStatisticsAggregateFunction {
 
+    private final boolean isPop;
+
     public IntermediateStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context,
-            SourceLocation sourceLoc) throws HyracksDataException {
+            boolean isPop, SourceLocation sourceLoc) throws HyracksDataException {
         super(args, context, sourceLoc);
+        this.isPop = isPop;
     }
 
     @Override
@@ -64,7 +67,11 @@ public class IntermediateStddevAggregateFunction extends AbstractSingleVarStatis
 
     @Override
     protected FunctionIdentifier getFunctionIdentifier() {
-        return BuiltinFunctions.STDDEV;
+        if (isPop) {
+            return BuiltinFunctions.STDDEV_POP;
+        } else {
+            return BuiltinFunctions.STDDEV;
+        }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..62a70f5
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateStddevPopAggregateDescriptor.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.runtime.aggregates.std;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.base.AbstractAggregateFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class IntermediateStddevPopAggregateDescriptor extends AbstractAggregateFunctionDynamicDescriptor {
+
+    private static final long serialVersionUID = 1L;
+
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new IntermediateStddevPopAggregateDescriptor();
+        }
+    };
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.INTERMEDIATE_STDDEV_POP;
+    }
+
+    @Override
+    public IAggregateEvaluatorFactory createAggregateEvaluatorFactory(final IScalarEvaluatorFactory[] args) {
+        return new IAggregateEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public IAggregateEvaluator createAggregateEvaluator(final IHyracksTaskContext ctx)
+                    throws HyracksDataException {
+                return new IntermediateStddevAggregateFunction(args, ctx, true, sourceLoc);
+            }
+        };
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSqlStddevAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSqlStddevAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSqlStddevAggregateDescriptor.java
index c89e71f..34d2e72 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSqlStddevAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSqlStddevAggregateDescriptor.java
@@ -53,7 +53,7 @@ public class LocalSqlStddevAggregateDescriptor extends AbstractAggregateFunction
             @Override
             public IAggregateEvaluator createAggregateEvaluator(final IHyracksTaskContext ctx)
                     throws HyracksDataException {
-                return new LocalSqlStddevAggregateFunction(args, ctx, sourceLoc);
+                return new LocalSqlStddevAggregateFunction(args, ctx, false, sourceLoc);
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSqlStddevAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSqlStddevAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSqlStddevAggregateFunction.java
index b030b8e..205d931 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSqlStddevAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSqlStddevAggregateFunction.java
@@ -30,9 +30,12 @@ import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
 
 public class LocalSqlStddevAggregateFunction extends AbstractSingleVarStatisticsAggregateFunction {
 
-    public LocalSqlStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context,
+    private final boolean isPop;
+
+    public LocalSqlStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context, boolean isPop,
             SourceLocation sourceLoc) throws HyracksDataException {
         super(args, context, sourceLoc);
+        this.isPop = isPop;
     }
 
     @Override
@@ -56,6 +59,10 @@ public class LocalSqlStddevAggregateFunction extends AbstractSingleVarStatistics
 
     @Override
     protected FunctionIdentifier getFunctionIdentifier() {
-        return BuiltinFunctions.STDDEV;
+        if (isPop) {
+            return BuiltinFunctions.STDDEV_POP;
+        } else {
+            return BuiltinFunctions.STDDEV;
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSqlStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSqlStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSqlStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..74eb2a7
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalSqlStddevPopAggregateDescriptor.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.runtime.aggregates.std;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.base.AbstractAggregateFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class LocalSqlStddevPopAggregateDescriptor extends AbstractAggregateFunctionDynamicDescriptor {
+
+    private static final long serialVersionUID = 1L;
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new LocalSqlStddevPopAggregateDescriptor();
+        }
+    };
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.LOCAL_SQL_STDDEV_POP;
+    }
+
+    @Override
+    public IAggregateEvaluatorFactory createAggregateEvaluatorFactory(final IScalarEvaluatorFactory[] args) {
+        return new IAggregateEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public IAggregateEvaluator createAggregateEvaluator(final IHyracksTaskContext ctx)
+                    throws HyracksDataException {
+                return new LocalSqlStddevAggregateFunction(args, ctx, true, sourceLoc);
+            }
+        };
+    }
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalStddevAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalStddevAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalStddevAggregateDescriptor.java
index 79bea48..9cd6b5d 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalStddevAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalStddevAggregateDescriptor.java
@@ -53,7 +53,7 @@ public class LocalStddevAggregateDescriptor extends AbstractAggregateFunctionDyn
             @Override
             public IAggregateEvaluator createAggregateEvaluator(final IHyracksTaskContext ctx)
                     throws HyracksDataException {
-                return new LocalStddevAggregateFunction(args, ctx, sourceLoc);
+                return new LocalStddevAggregateFunction(args, ctx, false, sourceLoc);
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalStddevAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalStddevAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalStddevAggregateFunction.java
index 7ebdb1f..c9cf9a7 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalStddevAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalStddevAggregateFunction.java
@@ -31,9 +31,12 @@ import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
 
 public class LocalStddevAggregateFunction extends AbstractSingleVarStatisticsAggregateFunction {
 
-    public LocalStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context,
+    private final boolean isPop;
+
+    public LocalStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context, boolean isPop,
             SourceLocation sourceLoc) throws HyracksDataException {
         super(args, context, sourceLoc);
+        this.isPop = isPop;
     }
 
     @Override
@@ -63,7 +66,11 @@ public class LocalStddevAggregateFunction extends AbstractSingleVarStatisticsAgg
 
     @Override
     protected FunctionIdentifier getFunctionIdentifier() {
-        return BuiltinFunctions.STDDEV;
+        if (isPop) {
+            return BuiltinFunctions.STDDEV_POP;
+        } else {
+            return BuiltinFunctions.STDDEV;
+        }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..d74cf7e
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/LocalStddevPopAggregateDescriptor.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.runtime.aggregates.std;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.base.AbstractAggregateFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class LocalStddevPopAggregateDescriptor extends AbstractAggregateFunctionDynamicDescriptor {
+
+    private static final long serialVersionUID = 1L;
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new LocalStddevPopAggregateDescriptor();
+        }
+    };
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.LOCAL_STDDEV_POP;
+    }
+
+    @Override
+    public IAggregateEvaluatorFactory createAggregateEvaluatorFactory(final IScalarEvaluatorFactory[] args) {
+        return new IAggregateEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public IAggregateEvaluator createAggregateEvaluator(final IHyracksTaskContext ctx)
+                    throws HyracksDataException {
+                return new LocalStddevAggregateFunction(args, ctx, true, sourceLoc);
+            }
+        };
+    }
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlStddevAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlStddevAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlStddevAggregateDescriptor.java
index 41cc3ee..0124aec 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlStddevAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlStddevAggregateDescriptor.java
@@ -53,7 +53,7 @@ public class SqlStddevAggregateDescriptor extends AbstractAggregateFunctionDynam
             @Override
             public IAggregateEvaluator createAggregateEvaluator(final IHyracksTaskContext ctx)
                     throws HyracksDataException {
-                return new SqlStddevAggregateFunction(args, ctx, sourceLoc);
+                return new SqlStddevAggregateFunction(args, ctx, false, sourceLoc);
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlStddevAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlStddevAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlStddevAggregateFunction.java
index 962d351..97807a0 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlStddevAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlStddevAggregateFunction.java
@@ -30,9 +30,18 @@ import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
 
 public class SqlStddevAggregateFunction extends AbstractSingleVarStatisticsAggregateFunction {
 
-    public SqlStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context,
+    private final boolean isPop;
+    private final int delta;
+
+    public SqlStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context, boolean isPop,
             SourceLocation sourceLoc) throws HyracksDataException {
         super(args, context, sourceLoc);
+        this.isPop = isPop;
+        if (isPop) {
+            delta = 0;
+        } else {
+            delta = 1;
+        }
     }
 
     @Override
@@ -42,7 +51,7 @@ public class SqlStddevAggregateFunction extends AbstractSingleVarStatisticsAggre
 
     @Override
     public void finish(IPointable result) throws HyracksDataException {
-        finishStddevFinalResults(result);
+        finishStddevFinalResults(result, delta);
     }
 
     @Override
@@ -56,6 +65,10 @@ public class SqlStddevAggregateFunction extends AbstractSingleVarStatisticsAggre
 
     @Override
     protected FunctionIdentifier getFunctionIdentifier() {
-        return BuiltinFunctions.STDDEV;
+        if (isPop) {
+            return BuiltinFunctions.STDDEV_POP;
+        } else {
+            return BuiltinFunctions.STDDEV;
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..06b8cd4
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlStddevPopAggregateDescriptor.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.runtime.aggregates.std;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.base.AbstractAggregateFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class SqlStddevPopAggregateDescriptor extends AbstractAggregateFunctionDynamicDescriptor {
+
+    private static final long serialVersionUID = 1L;
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new SqlStddevPopAggregateDescriptor();
+        }
+    };
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.SQL_STDDEV_POP;
+    }
+
+    @Override
+    public IAggregateEvaluatorFactory createAggregateEvaluatorFactory(final IScalarEvaluatorFactory[] args) {
+        return new IAggregateEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public IAggregateEvaluator createAggregateEvaluator(final IHyracksTaskContext ctx)
+                    throws HyracksDataException {
+                return new SqlStddevAggregateFunction(args, ctx, true, sourceLoc);
+            }
+        };
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/StddevAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/StddevAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/StddevAggregateDescriptor.java
index 0b6bb5b..07dcbd0 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/StddevAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/StddevAggregateDescriptor.java
@@ -53,7 +53,7 @@ public class StddevAggregateDescriptor extends AbstractAggregateFunctionDynamicD
             @Override
             public IAggregateEvaluator createAggregateEvaluator(final IHyracksTaskContext ctx)
                     throws HyracksDataException {
-                return new StddevAggregateFunction(args, ctx, sourceLoc);
+                return new StddevAggregateFunction(args, ctx, false, sourceLoc);
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/StddevAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/StddevAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/StddevAggregateFunction.java
index 7b5e423..553562e 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/StddevAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/StddevAggregateFunction.java
@@ -31,9 +31,18 @@ import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
 
 public class StddevAggregateFunction extends AbstractSingleVarStatisticsAggregateFunction {
 
-    public StddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context,
+    private final boolean isPop;
+    private final int delta;
+
+    public StddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context, boolean isPop,
             SourceLocation sourceLoc) throws HyracksDataException {
         super(args, context, sourceLoc);
+        this.isPop = isPop;
+        if (isPop) {
+            delta = 0;
+        } else {
+            delta = 1;
+        }
     }
 
     @Override
@@ -43,7 +52,7 @@ public class StddevAggregateFunction extends AbstractSingleVarStatisticsAggregat
 
     @Override
     public void finish(IPointable result) throws HyracksDataException {
-        finishStddevFinalResults(result);
+        finishStddevFinalResults(result, delta);
     }
 
     @Override
@@ -63,7 +72,11 @@ public class StddevAggregateFunction extends AbstractSingleVarStatisticsAggregat
 
     @Override
     protected FunctionIdentifier getFunctionIdentifier() {
-        return BuiltinFunctions.STDDEV;
+        if (isPop) {
+            return BuiltinFunctions.STDDEV_POP;
+        } else {
+            return BuiltinFunctions.STDDEV;
+        }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/StddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/StddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/StddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..48dcea8
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/StddevPopAggregateDescriptor.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.runtime.aggregates.std;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.base.AbstractAggregateFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class StddevPopAggregateDescriptor extends AbstractAggregateFunctionDynamicDescriptor {
+
+    private static final long serialVersionUID = 1L;
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new StddevPopAggregateDescriptor();
+        }
+    };
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.STDDEV_POP;
+    }
+
+    @Override
+    public IAggregateEvaluatorFactory createAggregateEvaluatorFactory(final IScalarEvaluatorFactory[] args) {
+        return new IAggregateEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public IAggregateEvaluator createAggregateEvaluator(final IHyracksTaskContext ctx)
+                    throws HyracksDataException {
+                return new StddevAggregateFunction(args, ctx, true, sourceLoc);
+            }
+        };
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionCollection.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionCollection.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionCollection.java
index 5affbca..c8f1238 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionCollection.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionCollection.java
@@ -40,30 +40,40 @@ import org.apache.asterix.runtime.aggregates.scalar.ScalarSqlCountAggregateDescr
 import org.apache.asterix.runtime.aggregates.scalar.ScalarSqlMaxAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.scalar.ScalarSqlMinAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.scalar.ScalarSqlStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.scalar.ScalarSqlStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.scalar.ScalarSqlSumAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.scalar.ScalarStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.scalar.ScalarStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.scalar.ScalarSumAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableAvgAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableCountAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableGlobalAvgAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableGlobalSqlAvgAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableGlobalSqlStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.serializable.std.SerializableGlobalSqlStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableGlobalStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.serializable.std.SerializableGlobalStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableIntermediateAvgAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableIntermediateSqlAvgAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableIntermediateSqlStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.serializable.std.SerializableIntermediateSqlStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableIntermediateStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.serializable.std.SerializableIntermediateStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableLocalAvgAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableLocalSqlAvgAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableLocalSqlStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.serializable.std.SerializableLocalSqlStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableLocalStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.serializable.std.SerializableLocalStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableLocalSqlSumAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableLocalSumAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableSqlAvgAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableSqlCountAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableSqlStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.serializable.std.SerializableSqlStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableSqlSumAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.serializable.std.SerializableStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.serializable.std.SerializableSumAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.AvgAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.CountAggregateDescriptor;
@@ -71,11 +81,15 @@ import org.apache.asterix.runtime.aggregates.std.GlobalAvgAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.RangeMapAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.GlobalSqlAvgAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.GlobalSqlStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.std.GlobalSqlStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.GlobalStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.std.GlobalStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.IntermediateAvgAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.IntermediateSqlAvgAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.IntermediateSqlStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.std.IntermediateSqlStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.IntermediateStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.std.IntermediateStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.LocalAvgAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.LocalMaxAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.LocalMinAggregateDescriptor;
@@ -84,8 +98,10 @@ import org.apache.asterix.runtime.aggregates.std.LocalSqlAvgAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.LocalSqlMaxAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.LocalSqlMinAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.LocalSqlStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.std.LocalSqlStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.LocalSqlSumAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.LocalStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.std.LocalStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.LocalSumAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.MaxAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.MinAggregateDescriptor;
@@ -94,8 +110,10 @@ import org.apache.asterix.runtime.aggregates.std.SqlCountAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.SqlMaxAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.SqlMinAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.SqlStddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.std.SqlStddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.SqlSumAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.StddevAggregateDescriptor;
+import org.apache.asterix.runtime.aggregates.std.StddevPopAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.std.SumAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.stream.EmptyStreamAggregateDescriptor;
 import org.apache.asterix.runtime.aggregates.stream.NonEmptyStreamAggregateDescriptor;
@@ -462,6 +480,10 @@ public final class FunctionCollection implements IFunctionCollection {
         fc.add(GlobalStddevAggregateDescriptor.FACTORY);
         fc.add(LocalSamplingAggregateDescriptor.FACTORY);
         fc.add(RangeMapAggregateDescriptor.FACTORY);
+        fc.add(StddevPopAggregateDescriptor.FACTORY);
+        fc.add(LocalStddevPopAggregateDescriptor.FACTORY);
+        fc.add(IntermediateStddevPopAggregateDescriptor.FACTORY);
+        fc.add(GlobalStddevPopAggregateDescriptor.FACTORY);
 
         // serializable aggregates
         fc.add(SerializableCountAggregateDescriptor.FACTORY);
@@ -475,6 +497,10 @@ public final class FunctionCollection implements IFunctionCollection {
         fc.add(SerializableLocalStddevAggregateDescriptor.FACTORY);
         fc.add(SerializableIntermediateStddevAggregateDescriptor.FACTORY);
         fc.add(SerializableGlobalStddevAggregateDescriptor.FACTORY);
+        fc.add(SerializableStddevPopAggregateDescriptor.FACTORY);
+        fc.add(SerializableLocalStddevPopAggregateDescriptor.FACTORY);
+        fc.add(SerializableIntermediateStddevPopAggregateDescriptor.FACTORY);
+        fc.add(SerializableGlobalStddevPopAggregateDescriptor.FACTORY);
 
         // scalar aggregates
         fc.add(ScalarCountAggregateDescriptor.FACTORY);
@@ -485,6 +511,7 @@ public final class FunctionCollection implements IFunctionCollection {
         fc.add(EmptyStreamAggregateDescriptor.FACTORY);
         fc.add(NonEmptyStreamAggregateDescriptor.FACTORY);
         fc.add(ScalarStddevAggregateDescriptor.FACTORY);
+        fc.add(ScalarStddevPopAggregateDescriptor.FACTORY);
 
         // SQL aggregates
         fc.add(SqlCountAggregateDescriptor.FACTORY);
@@ -502,6 +529,10 @@ public final class FunctionCollection implements IFunctionCollection {
         fc.add(LocalSqlStddevAggregateDescriptor.FACTORY);
         fc.add(IntermediateSqlStddevAggregateDescriptor.FACTORY);
         fc.add(GlobalSqlStddevAggregateDescriptor.FACTORY);
+        fc.add(SqlStddevPopAggregateDescriptor.FACTORY);
+        fc.add(LocalSqlStddevPopAggregateDescriptor.FACTORY);
+        fc.add(IntermediateSqlStddevPopAggregateDescriptor.FACTORY);
+        fc.add(GlobalSqlStddevPopAggregateDescriptor.FACTORY);
 
         // SQL serializable aggregates
         fc.add(SerializableSqlCountAggregateDescriptor.FACTORY);
@@ -515,6 +546,10 @@ public final class FunctionCollection implements IFunctionCollection {
         fc.add(SerializableLocalSqlStddevAggregateDescriptor.FACTORY);
         fc.add(SerializableIntermediateSqlStddevAggregateDescriptor.FACTORY);
         fc.add(SerializableGlobalSqlStddevAggregateDescriptor.FACTORY);
+        fc.add(SerializableSqlStddevPopAggregateDescriptor.FACTORY);
+        fc.add(SerializableLocalSqlStddevPopAggregateDescriptor.FACTORY);
+        fc.add(SerializableIntermediateSqlStddevPopAggregateDescriptor.FACTORY);
+        fc.add(SerializableGlobalSqlStddevPopAggregateDescriptor.FACTORY);
 
         // SQL scalar aggregates
         fc.add(ScalarSqlCountAggregateDescriptor.FACTORY);
@@ -523,6 +558,7 @@ public final class FunctionCollection implements IFunctionCollection {
         fc.add(ScalarSqlMaxAggregateDescriptor.FACTORY);
         fc.add(ScalarSqlMinAggregateDescriptor.FACTORY);
         fc.add(ScalarSqlStddevAggregateDescriptor.FACTORY);
+        fc.add(ScalarSqlStddevPopAggregateDescriptor.FACTORY);
 
         // boolean functions
         fc.add(AndDescriptor.FACTORY);


[6/6] asterixdb git commit: [ASTERIXDB-2459][FUN] Add sttdev_pop() aggregate function

Posted by dl...@apache.org.
[ASTERIXDB-2459][FUN] Add sttdev_pop() aggregate function

- user model changes: yes
- storage format changes: no
- interface changes: no

Details:
1. Add stddev_pop aggregation function and test cases
2. Add stddev and stddev_pop distinct functions
3. Fix some stddev test case comments
4. Add documentation for stddev_pop

Change-Id: I1732d8d70eba26e12a6e68d0e0c621491ed6b3ae
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2997
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <je...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Dmitry Lychagin <dm...@couchbase.com>


Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/11d5b281
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/11d5b281
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/11d5b281

Branch: refs/heads/master
Commit: 11d5b2812ff304af77f548979a08ee5998e45d48
Parents: c4dbb61
Author: James Fang <jf...@ucr.edu>
Authored: Mon Oct 22 15:13:24 2018 -0700
Committer: Dmitry Lychagin <dm...@couchbase.com>
Committed: Tue Oct 23 09:33:12 2018 -0700

----------------------------------------------------------------------
 .../aggregate-sql/agg_null/agg_null.3.query.aql |   2 +-
 .../agg_null_rec/agg_null_rec.3.query.aql       |   2 +-
 .../agg_null_rec_1/agg_null_rec_1.3.query.aql   |   3 +-
 .../agg_number/agg_number.3.query.aql           |   3 +-
 .../agg_number_rec/agg_number_rec.3.query.aql   |   2 +-
 .../aggregate/agg_null/agg_null.3.query.aql     |   2 +-
 .../agg_null_rec/agg_null_rec.3.query.aql       |   2 +-
 .../agg_null_rec_1/agg_null_rec_1.3.query.aql   |   3 +-
 .../aggregate/agg_number/agg_number.3.query.aql |   3 +-
 .../agg_number_rec/agg_number_rec.3.query.aql   |   2 +-
 .../agg_null/agg_null.3.query.sqlpp             |   2 +-
 .../agg_null_rec/agg_null_rec.3.query.sqlpp     |   3 +
 .../agg_null_rec_1/agg_null_rec_1.3.query.sqlpp |   6 +
 .../agg_number/agg_number.3.query.sqlpp         |   2 +-
 .../agg_number_rec/agg_number_rec.3.query.sqlpp |   3 +
 .../scalar_stddev/scalar_stddev.1.ddl.sqlpp     |   2 +-
 .../scalar_stddev/scalar_stddev.3.query.sqlpp   |  17 +-
 .../scalar_stddev_empty.1.ddl.sqlpp             |   2 +-
 .../scalar_stddev_empty.3.query.sqlpp           |   5 +-
 .../scalar_stddev_null.1.ddl.sqlpp              |   2 +-
 .../scalar_stddev_null.3.query.sqlpp            |  17 +-
 .../serial_stddev_double.3.query.sqlpp          |   2 +-
 .../serial_stddev_double_null.3.query.sqlpp     |   2 +-
 .../serial_stddev_empty.3.query.sqlpp           |   2 +-
 .../serial_stddev_float.3.query.sqlpp           |   2 +-
 .../serial_stddev_float_null.3.query.sqlpp      |   2 +-
 .../serial_stddev_int16.3.query.sqlpp           |   2 +-
 .../serial_stddev_int16_null.3.query.sqlpp      |   2 +-
 .../serial_stddev_int32.3.query.sqlpp           |   2 +-
 .../serial_stddev_int32_null.3.query.sqlpp      |   2 +-
 .../serial_stddev_int64.3.query.sqlpp           |   2 +-
 .../serial_stddev_int64_null.3.query.sqlpp      |   2 +-
 .../serial_stddev_int8.3.query.sqlpp            |   2 +-
 .../serial_stddev_int8_null.3.query.sqlpp       |   2 +-
 .../serial_stddev_pop_mixed.1.ddl.sqlpp         |  33 ++
 .../serial_stddev_pop_mixed.2.update.sqlpp      |  29 ++
 .../serial_stddev_pop_mixed.3.query.sqlpp       |  30 ++
 .../stddev_distinct.1.query.sqlpp               |  28 ++
 .../stddev_double/stddev_double.3.query.sqlpp   |   7 +-
 .../stddev_double_null.3.query.sqlpp            |   3 +
 .../stddev_empty_01/stddev_empty_01.1.ddl.sqlpp |   2 +-
 .../stddev_empty_01.3.query.sqlpp               |  10 +-
 .../stddev_empty_02/stddev_empty_02.1.ddl.sqlpp |   2 +-
 .../stddev_empty_02.3.query.sqlpp               |   9 +-
 .../stddev_float/stddev_float.3.query.sqlpp     |   7 +-
 .../stddev_float_nu.3.query.sqlpp               |   3 +
 .../stddev_int16/stddev_int16.3.query.sqlpp     |   7 +-
 .../stddev_int16_null.3.query.sqlpp             |   3 +
 .../stddev_int32/stddev_int32.3.query.sqlpp     |   7 +-
 .../stddev_int32_null.3.query.sqlpp             |   3 +
 .../stddev_int64/stddev_int64.3.query.sqlpp     |   7 +-
 .../stddev_int64_null.3.query.sqlpp             |   3 +
 .../stddev_int8/stddev_int8.3.query.sqlpp       |   7 +-
 .../stddev_int8_null.3.query.sqlpp              |   3 +
 .../stddev_mixed/stddev_mixed.3.query.sqlpp     |   2 +-
 .../stddev_pop_mixed.3.query.sqlpp              |  28 ++
 .../aggregate/agg_null/agg_null.3.query.sqlpp   |   2 +-
 .../agg_null_rec/agg_null_rec.3.query.sqlpp     |   3 +
 .../agg_null_rec_1/agg_null_rec_1.3.query.sqlpp |   6 +
 .../agg_number/agg_number.3.query.sqlpp         |   2 +-
 .../agg_number_rec/agg_number_rec.3.query.sqlpp |   3 +
 .../scalar_stddev/scalar_stddev.1.ddl.sqlpp     |   2 +-
 .../scalar_stddev/scalar_stddev.3.query.sqlpp   |  17 +-
 .../scalar_stddev_empty.1.ddl.sqlpp             |   2 +-
 .../scalar_stddev_empty.3.query.sqlpp           |   5 +-
 .../scalar_stddev_null.1.ddl.sqlpp              |   2 +-
 .../scalar_stddev_null.3.query.sqlpp            |  17 +-
 .../serial_stddev_double.3.query.sqlpp          |   3 +-
 .../serial_stddev_double_null.3.query.sqlpp     |   3 +-
 .../serial_stddev_empty.3.query.sqlpp           |   3 +-
 .../serial_stddev_float.3.query.sqlpp           |   3 +-
 .../serial_stddev_float_null.3.query.sqlpp      |   3 +-
 .../serial_stddev_int16.3.query.sqlpp           |   3 +-
 .../serial_stddev_int16_null.3.query.sqlpp      |   3 +-
 .../serial_stddev_int32.3.query.sqlpp           |   3 +-
 .../serial_stddev_int32_null.3.query.sqlpp      |   3 +-
 .../serial_stddev_int64.3.query.sqlpp           |   3 +-
 .../serial_stddev_int64_null.3.query.sqlpp      |   3 +-
 .../serial_stddev_int8.3.query.sqlpp            |   3 +-
 .../serial_stddev_int8_null.3.query.sqlpp       |   3 +-
 .../serial_stddev_pop_mixed.1.ddl.sqlpp         |  33 ++
 .../serial_stddev_pop_mixed.2.update.sqlpp      |  29 ++
 .../serial_stddev_pop_mixed.3.query.sqlpp       |  30 ++
 .../stddev_distinct.1.query.sqlpp               |  28 ++
 .../stddev_double/stddev_double.3.query.sqlpp   |   7 +-
 .../stddev_double_null.3.query.sqlpp            |   4 +-
 .../stddev_empty_01/stddev_empty_01.1.ddl.sqlpp |   2 +-
 .../stddev_empty_01.3.query.sqlpp               |  11 +-
 .../stddev_empty_02/stddev_empty_02.1.ddl.sqlpp |   2 +-
 .../stddev_empty_02.3.query.sqlpp               |  10 +-
 .../stddev_float/stddev_float.3.query.sqlpp     |   7 +-
 .../stddev_float_null.3.query.sqlpp             |   3 +
 .../stddev_int16/stddev_int16.3.query.sqlpp     |   7 +-
 .../stddev_int16_null.3.query.sqlpp             |   3 +
 .../stddev_int32/stddev_int32.3.query.sqlpp     |   7 +-
 .../stddev_int32_null.3.query.sqlpp             |   3 +
 .../stddev_int64/stddev_int64.3.query.sqlpp     |   7 +-
 .../stddev_int64_null.3.query.sqlpp             |   3 +
 .../stddev_int8/stddev_int8.3.query.sqlpp       |   7 +-
 .../stddev_int8_null.3.query.sqlpp              |   3 +
 .../stddev_pop_mixed.3.query.sqlpp              |  28 ++
 .../aggregate-sql/agg_null/agg_null.1.adm       |   2 +-
 .../agg_null_rec/agg_null_rec.1.adm             |   2 +-
 .../agg_null_rec_1/agg_null_rec.1.adm           |   2 +-
 .../aggregate-sql/agg_number/agg_number.1.adm   |   2 +-
 .../agg_number_rec/agg_number_rec.1.adm         |   2 +-
 .../scalar_stddev/scalar_stddev.1.adm           |   7 +-
 .../scalar_stddev_empty.1.adm                   |   2 +-
 .../scalar_stddev_null/scalar_stddev_null.1.adm |   7 +-
 .../serial_stddev_double.1.adm                  |   2 +-
 .../serial_stddev_double_null.1.adm             |   2 +-
 .../serial_stddev_float.1.adm                   |   2 +-
 .../serial_stddev_float_null.1.adm              |   2 +-
 .../serial_stddev_int16.1.adm                   |   2 +-
 .../serial_stddev_int16_null.1.adm              |   2 +-
 .../serial_stddev_int32.1.adm                   |   2 +-
 .../serial_stddev_int32_null.1.adm              |   2 +-
 .../serial_stddev_int64.1.adm                   |   2 +-
 .../serial_stddev_int64_null.1.adm              |   2 +-
 .../serial_stddev_int8/serial_stddev_int8.1.adm |   2 +-
 .../serial_stddev_int8_null.1.adm               |   2 +-
 .../serial_stddev_pop_mixed.1.adm               |   1 +
 .../stddev_distinct/stddev_distinct.1.adm       |   1 +
 .../stddev_double/stddev_double.1.adm           |   2 +-
 .../stddev_double_null/stddev_double_null.1.adm |   2 +-
 .../stddev_empty_01/stddev_empty_01.1.adm       |   2 +-
 .../stddev_empty_02/stddev_empty_02.1.adm       |   2 +-
 .../stddev_float/stddev_float.1.adm             |   2 +-
 .../stddev_float_null/stddev_float_null.1.adm   |   2 +-
 .../stddev_int16/stddev_int16.1.adm             |   2 +-
 .../stddev_int16_null/stddev_int16_null.1.adm   |   2 +-
 .../stddev_int32/stddev_int32.1.adm             |   2 +-
 .../stddev_int32_null/stddev_int32_null.1.adm   |   2 +-
 .../stddev_int64/stddev_int64.1.adm             |   2 +-
 .../stddev_int64_null/stddev_int64_null.1.adm   |   2 +-
 .../aggregate-sql/stddev_int8/stddev_int8.1.adm |   2 +-
 .../stddev_int8_null/stddev_int8_null.1.adm     |   2 +-
 .../stddev_pop_mixed/stddev_pop_mixed.1.adm     |   1 +
 .../results/aggregate/agg_null/agg_null.1.adm   |   2 +-
 .../aggregate/agg_null_rec/agg_null_rec.1.adm   |   2 +-
 .../aggregate/agg_null_rec_1/agg_null_rec.1.adm |   2 +-
 .../aggregate/agg_number/agg_number.1.adm       |   2 +-
 .../agg_number_rec/agg_number_rec.1.adm         |   2 +-
 .../aggregate/scalar_stddev/scalar_stddev.1.adm |   7 +-
 .../scalar_stddev_empty.1.adm                   |   2 +-
 .../scalar_stddev_null/scalar_stddev_null.1.adm |   7 +-
 .../serial_stddev_double.1.adm                  |   2 +-
 .../serial_stddev_double_null.1.adm             |   2 +-
 .../serial_stddev_float.1.adm                   |   2 +-
 .../serial_stddev_float_null.1.adm              |   2 +-
 .../serial_stddev_int16.1.adm                   |   2 +-
 .../serial_stddev_int16_null.1.adm              |   2 +-
 .../serial_stddev_int32.1.adm                   |   2 +-
 .../serial_stddev_int32_null.1.adm              |   2 +-
 .../serial_stddev_int64.1.adm                   |   2 +-
 .../serial_stddev_int64_null.1.adm              |   2 +-
 .../serial_stddev_int8/serial_stddev_int8.1.adm |   2 +-
 .../serial_stddev_int8_null.1.adm               |   2 +-
 .../serial_stddev_pop_mixed.1.adm               |   1 +
 .../stddev_distinct/stddev_distinct.1.adm       |   1 +
 .../aggregate/stddev_double/stddev_double.1.adm |   2 +-
 .../stddev_double_null/stddev_double_null.1.adm |   2 +-
 .../stddev_empty_01/stddev_empty_01.1.adm       |   2 +-
 .../stddev_empty_02/stddev_empty_02.1.adm       |   2 +-
 .../aggregate/stddev_float/stddev_float.1.adm   |   2 +-
 .../stddev_float_null/stddev_float_null.1.adm   |   2 +-
 .../aggregate/stddev_int16/stddev_int16.1.adm   |   2 +-
 .../stddev_int16_null/stddev_int16_null.1.adm   |   2 +-
 .../aggregate/stddev_int32/stddev_int32.1.adm   |   2 +-
 .../stddev_int32_null/stddev_int32_null.1.adm   |   2 +-
 .../aggregate/stddev_int64/stddev_int64.1.adm   |   2 +-
 .../stddev_int64_null/stddev_int64_null.1.adm   |   2 +-
 .../aggregate/stddev_int8/stddev_int8.1.adm     |   2 +-
 .../stddev_int8_null/stddev_int8_null.1.adm     |   2 +-
 .../stddev_pop_mixed/stddev_pop_mixed.1.adm     |   1 +
 .../aggregate-sql/agg_null/agg_null.3.ast       |  19 ++
 .../agg_null_rec/agg_null_rec.3.ast             |  19 ++
 .../agg_null_rec_1/agg_null_rec_1.3.ast         |  26 ++
 .../aggregate-sql/agg_number/agg_number.3.ast   |  32 ++
 .../agg_number_rec/agg_number_rec.3.ast         |  19 ++
 .../scalar_stddev/scalar_stddev.3.ast           | 321 ++++++++++++------
 .../scalar_stddev_empty.3.ast                   |  30 +-
 .../scalar_stddev_null/scalar_stddev_null.3.ast | 339 +++++++++++++------
 .../serial_stddev_double.3.ast                  |  17 +
 .../serial_stddev_double_null.3.ast             |  17 +
 .../serial_stddev_empty.3.ast                   |  17 +
 .../serial_stddev_float.3.ast                   |  17 +
 .../serial_stddev_float_null.3.ast              |  17 +
 .../serial_stddev_int16.3.ast                   |  17 +
 .../serial_stddev_int16_null.3.ast              |  17 +
 .../serial_stddev_int32.3.ast                   |  17 +
 .../serial_stddev_int32_null.3.ast              |  17 +
 .../serial_stddev_int64.3.ast                   |  17 +
 .../serial_stddev_int64_null.3.ast              |  17 +
 .../serial_stddev_int8/serial_stddev_int8.3.ast |  17 +
 .../serial_stddev_int8_null.3.ast               |  17 +
 .../serial_stddev_pop_int64_null.1.ast          |   9 +
 .../serial_stddev_pop_int64_null.2.ast          |   1 +
 .../serial_stddev_pop_int64_null.3.ast          |  40 +++
 .../stddev_double/stddev_double.3.ast           |  60 +++-
 .../stddev_double_null/stddev_double_null.3.ast |  19 ++
 .../stddev_empty_01/stddev_empty_01.3.ast       |  70 +++-
 .../stddev_empty_02/stddev_empty_02.3.ast       |  57 +++-
 .../stddev_float/stddev_float.3.ast             |  72 +++-
 .../stddev_float_null/stddev_float_nu.3.ast     |  19 ++
 .../stddev_int16/stddev_int16.3.ast             |  72 +++-
 .../stddev_int16_null/stddev_int16_null.3.ast   |  19 ++
 .../stddev_int32/stddev_int32.3.ast             |  72 +++-
 .../stddev_int32_null/stddev_int32_null.3.ast   |  19 ++
 .../stddev_int64/stddev_int64.3.ast             |  72 +++-
 .../stddev_int64_null/stddev_int64_null.3.ast   |  19 ++
 .../aggregate-sql/stddev_int8/stddev_int8.3.ast |  72 +++-
 .../stddev_int8_null/stddev_int8_null.3.ast     |  19 ++
 .../stddev_pop_mixed/stddev_pop_mixed.3.ast     |  22 ++
 .../aggregate/agg_null/agg_null.3.ast           |  19 ++
 .../aggregate/agg_null_rec/agg_null_rec.3.ast   |  19 ++
 .../agg_null_rec_1/agg_null_rec_1.3.ast         |  26 ++
 .../aggregate/agg_number/agg_number.3.ast       |  32 ++
 .../agg_number_rec/agg_number_rec.3.ast         |  19 ++
 .../aggregate/scalar_stddev/scalar_stddev.3.ast | 321 ++++++++++++------
 .../scalar_stddev_empty.3.ast                   |  30 +-
 .../scalar_stddev_null/scalar_stddev_null.3.ast | 339 +++++++++++++------
 .../serial_stddev_double.3.ast                  |  14 +
 .../serial_stddev_double_null.3.ast             |  14 +
 .../serial_stddev_empty.3.ast                   |  14 +
 .../serial_stddev_float.3.ast                   |  14 +
 .../serial_stddev_float_null.3.ast              |  14 +
 .../serial_stddev_int16.3.ast                   |  14 +
 .../serial_stddev_int16_null.3.ast              |  14 +
 .../serial_stddev_int32.3.ast                   |  14 +
 .../serial_stddev_int32_null.3.ast              |  14 +
 .../serial_stddev_int64.3.ast                   |  14 +
 .../serial_stddev_int64_null.3.ast              |  14 +
 .../serial_stddev_int8/serial_stddev_int8.3.ast |  14 +
 .../serial_stddev_int8_null.3.ast               |  14 +
 .../serial_stddev_pop_mixed.1.ast               |   9 +
 .../serial_stddev_pop_mixed.2.ast               |   1 +
 .../serial_stddev_pop_mixed.3.ast               |  40 +++
 .../aggregate/stddev_double/stddev_double.3.ast |  60 +++-
 .../stddev_double_null/stddev_double_null.3.ast |  19 ++
 .../stddev_empty_01/stddev_empty_01.3.ast       |  70 +++-
 .../stddev_empty_02/stddev_empty_02.3.ast       |  57 +++-
 .../aggregate/stddev_float/stddev_float.3.ast   |  72 +++-
 .../stddev_float_null/stddev_float_nu.3.ast     |  19 ++
 .../aggregate/stddev_int16/stddev_int16.3.ast   |  72 +++-
 .../stddev_int16_null/stddev_int16_null.3.ast   |  19 ++
 .../aggregate/stddev_int32/stddev_int32.3.ast   |  54 ++-
 .../stddev_int32_null/stddev_int32_null.3.ast   |  19 ++
 .../aggregate/stddev_int64/stddev_int64.3.ast   |  72 +++-
 .../stddev_int64_null/stddev_int64_null.3.ast   |  19 ++
 .../aggregate/stddev_int8/stddev_int8.3.ast     |  72 +++-
 .../stddev_int8_null/stddev_int8_null.3.ast     |  19 ++
 .../stddev_pop_mixed/stddev_pop_mixed.3.ast     |  22 ++
 .../resources/runtimets/testsuite_sqlpp.xml     |  34 ++
 .../runtimets/testsuite_sqlpp_parser.xml        | 178 +++++++++-
 .../main/markdown/builtins/9_aggregate_sql.md   |  51 +++
 .../asterix/om/functions/BuiltinFunctions.java  | 166 +++++++++
 .../ScalarSqlStddevPopAggregateDescriptor.java  |  49 +++
 .../ScalarStddevPopAggregateDescriptor.java     |  49 +++
 ...ngleVariableStatisticsAggregateFunction.java |   4 +-
 ...zableGlobalSqlStddevAggregateDescriptor.java |   2 +-
 ...lizableGlobalSqlStddevAggregateFunction.java |  19 +-
 ...leGlobalSqlStddevPopAggregateDescriptor.java |  63 ++++
 ...alizableGlobalStddevAggregateDescriptor.java |   2 +-
 ...rializableGlobalStddevAggregateFunction.java |  19 +-
 ...zableGlobalStddevPopAggregateDescriptor.java |  63 ++++
 ...ntermediateSqlStddevAggregateDescriptor.java |   2 +-
 ...eIntermediateSqlStddevAggregateFunction.java |  11 +-
 ...rmediateSqlStddevPopAggregateDescriptor.java |  63 ++++
 ...leIntermediateStddevAggregateDescriptor.java |   2 +-
 ...ableIntermediateStddevAggregateFunction.java |  11 +-
 ...ntermediateStddevPopAggregateDescriptor.java |  63 ++++
 ...izableLocalSqlStddevAggregateDescriptor.java |   2 +-
 ...alizableLocalSqlStddevAggregateFunction.java |  11 +-
 ...bleLocalSqlStddevPopAggregateDescriptor.java |  63 ++++
 ...ializableLocalStddevAggregateDescriptor.java |   2 +-
 ...erializableLocalStddevAggregateFunction.java |  11 +-
 ...izableLocalStddevPopAggregateDescriptor.java |  63 ++++
 ...erializableSqlStddevAggregateDescriptor.java |   2 +-
 .../SerializableSqlStddevAggregateFunction.java |  19 +-
 ...alizableSqlStddevPopAggregateDescriptor.java |  61 ++++
 .../SerializableStddevAggregateDescriptor.java  |   2 +-
 .../SerializableStddevAggregateFunction.java    |  19 +-
 ...erializableStddevPopAggregateDescriptor.java |  62 ++++
 ...actSingleVarStatisticsAggregateFunction.java |   4 +-
 .../std/GlobalSqlStddevAggregateDescriptor.java |   2 +-
 .../std/GlobalSqlStddevAggregateFunction.java   |  19 +-
 .../GlobalSqlStddevPopAggregateDescriptor.java  |  62 ++++
 .../std/GlobalStddevAggregateDescriptor.java    |   2 +-
 .../std/GlobalStddevAggregateFunction.java      |  19 +-
 .../std/GlobalStddevPopAggregateDescriptor.java |  62 ++++
 ...ntermediateSqlStddevAggregateDescriptor.java |   2 +-
 .../IntermediateSqlStddevAggregateFunction.java |  11 +-
 ...rmediateSqlStddevPopAggregateDescriptor.java |  61 ++++
 .../IntermediateStddevAggregateDescriptor.java  |   2 +-
 .../IntermediateStddevAggregateFunction.java    |  11 +-
 ...ntermediateStddevPopAggregateDescriptor.java |  62 ++++
 .../std/LocalSqlStddevAggregateDescriptor.java  |   2 +-
 .../std/LocalSqlStddevAggregateFunction.java    |  11 +-
 .../LocalSqlStddevPopAggregateDescriptor.java   |  60 ++++
 .../std/LocalStddevAggregateDescriptor.java     |   2 +-
 .../std/LocalStddevAggregateFunction.java       |  11 +-
 .../std/LocalStddevPopAggregateDescriptor.java  |  60 ++++
 .../std/SqlStddevAggregateDescriptor.java       |   2 +-
 .../std/SqlStddevAggregateFunction.java         |  19 +-
 .../std/SqlStddevPopAggregateDescriptor.java    |  61 ++++
 .../std/StddevAggregateDescriptor.java          |   2 +-
 .../aggregates/std/StddevAggregateFunction.java |  19 +-
 .../std/StddevPopAggregateDescriptor.java       |  61 ++++
 .../runtime/functions/FunctionCollection.java   |  36 ++
 310 files changed, 5178 insertions(+), 956 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null/agg_null.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null/agg_null.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null/agg_null.3.query.aql
index db3e6c1..51d6069 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null/agg_null.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null/agg_null.3.query.aql
@@ -24,4 +24,4 @@
 
 let $l1 := [null]
 let $l2 := {{null, null}}
-return { "sql-count1": sql-count($l1), "average1": sql-avg($l1), "sql-sum1": sql-sum($l1), "sql-min1": sql-min($l1), "sql-max1": sql-max($l1), "sql-stddev1": sql-stddev($l1), "sql-count2": sql-count($l2), "average2": sql-avg($l2), "sql-sum2": sql-sum($l2), "sql-min2": sql-min($l2), "sql-max2": sql-max($l2),  "sql-stddev2": sql-stddev($l2)}
+return { "sql-count1": sql-count($l1), "average1": sql-avg($l1), "sql-sum1": sql-sum($l1), "sql-min1": sql-min($l1), "sql-max1": sql-max($l1), "sql-stddev1": sql-stddev($l1), "sql-stddev_pop1": sql-stddev_pop($l1), "sql-count2": sql-count($l2), "average2": sql-avg($l2), "sql-sum2": sql-sum($l2), "sql-min2": sql-min($l2), "sql-max2": sql-max($l2),  "sql-stddev2": sql-stddev($l2), "sql-stddev_pop2": sql-stddev_pop($l2) }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec/agg_null_rec.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec/agg_null_rec.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec/agg_null_rec.3.query.aql
index 0e9081a..6fcde5c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec/agg_null_rec.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec/agg_null_rec.3.query.aql
@@ -25,4 +25,4 @@
 use dataverse test;
 
 let $l := for $t in dataset Test return $t.valplus
-return { "sql-count": sql-count($l), "average": sql-avg($l), "sql-stddev": sql-stddev($l), "sql-sum": sql-sum($l), "sql-min": sql-min($l), "sql-max": sql-max($l) }
+return { "sql-count": sql-count($l), "average": sql-avg($l), "sql-stddev": sql-stddev($l), "sql-stddev_pop": sql-stddev_pop($l), "sql-sum": sql-sum($l), "sql-min": sql-min($l), "sql-max": sql-max($l) }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.aql
index 121264d..fbdaa58 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.aql
@@ -27,4 +27,5 @@ use dataverse test;
 let $l := for $t in dataset Test return $t
 return { "sql-count": sql-count($l), "average": sql-avg(for $i in $l return $i.val), "sql-sum":
 sql-sum(for $i in $l return $i.val), "sql-stddev": sql-stddev(for $i in $l return $i.valplus),
-"sql-min": sql-min(for $i in $l return $i.valplus), "sql-max": sql-max(for $i in $l return $i.valplus) }
+"sql-stddev_pop": sql-stddev_pop(for $i in $l return $i.valplus), "sql-min": sql-min(for $i in $l return $i.valplus),
+"sql-max": sql-max(for $i in $l return $i.valplus) }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number/agg_number.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number/agg_number.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number/agg_number.3.query.aql
index ea1db8a..eeab6ad 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number/agg_number.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number/agg_number.3.query.aql
@@ -30,5 +30,6 @@ let $a3 := sql-sum($l2)
 let $a4 := sql-min($l2)
 let $a5 := sql-max($l2)
 let $a6 := sql-stddev($l2)
-return { "sql-count1": sql-count($l1), "average1": sql-avg($l1), "sql-stddev1": sql-stddev($l1), "sql-sum1": sql-sum($l1), "sql-min1": sql-min($l1), "sql-max1": sql-max($l1), "sql-count2": $a1, "average2": $a2, "sql-stddev2": $a6, "sql-sum2": $a3, "sql-min2": $a4, "sql-max2": $a5 }
+let $a7 := sql-stddev_pop($l2)
+return { "sql-count1": sql-count($l1), "average1": sql-avg($l1), "sql-stddev1": sql-stddev($l1), "sql-stddev_pop1": sql-stddev_pop($l1), "sql-sum1": sql-sum($l1), "sql-min1": sql-min($l1), "sql-max1": sql-max($l1), "sql-count2": $a1, "average2": $a2, "sql-stddev2": $a6, "sql-stddev_pop2": $a7, "sql-sum2": $a3, "sql-min2": $a4, "sql-max2": $a5 }
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number_rec/agg_number_rec.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number_rec/agg_number_rec.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number_rec/agg_number_rec.3.query.aql
index 522b50e..cd93b51 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number_rec/agg_number_rec.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number_rec/agg_number_rec.3.query.aql
@@ -25,4 +25,4 @@
 use dataverse test;
 
 let $l := for $t in dataset Test return $t.valplus
-return { "sql-count": sql-count($l), "average": sql-avg($l), "sql-stddev": sql-stddev($l), "sql-sum": sql-sum($l), "sql-min": sql-min($l), "sql-max": sql-max($l) }
+return { "sql-count": sql-count($l), "average": sql-avg($l), "sql-stddev": sql-stddev($l), "sql-stddev_pop": sql-stddev_pop($l), "sql-sum": sql-sum($l), "sql-min": sql-min($l), "sql-max": sql-max($l) }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null/agg_null.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null/agg_null.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null/agg_null.3.query.aql
index 5f39d47..92fc08f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null/agg_null.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null/agg_null.3.query.aql
@@ -24,4 +24,4 @@
 
 let $l1 := [null]
 let $l2 := {{null, null}}
-return { "count1": count($l1), "average1": avg($l1), "sum1": sum($l1), "min1": min($l1), "max1": max($l1),"stddev1": stddev($l1), "count2": count($l2), "average2": avg($l2), "sum2": sum($l2), "min2": min($l2), "max2": max($l2), "stddev2": stddev($l2) }
+return { "count1": count($l1), "average1": avg($l1), "sum1": sum($l1), "min1": min($l1), "max1": max($l1),"stddev1": stddev($l1), "stddev_pop1": stddev_pop($l1), "count2": count($l2), "average2": avg($l2), "sum2": sum($l2), "min2": min($l2), "max2": max($l2), "stddev2": stddev($l2), "stddev_pop2": stddev_pop($l2) }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec/agg_null_rec.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec/agg_null_rec.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec/agg_null_rec.3.query.aql
index 5b14f2d..238fb4e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec/agg_null_rec.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec/agg_null_rec.3.query.aql
@@ -25,4 +25,4 @@
 use dataverse test;
 
 let $l := for $t in dataset Test return $t.valplus
-return { "count": count($l), "average": avg($l), "stddev": stddev($l), "sum": sum($l), "min": min($l), "max": max($l) }
+return { "count": count($l), "average": avg($l), "stddev": stddev($l), "stddev_pop": stddev_pop($l), "sum": sum($l), "min": min($l), "max": max($l) }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec_1/agg_null_rec_1.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec_1/agg_null_rec_1.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec_1/agg_null_rec_1.3.query.aql
index 5b8a017..1e2dcd2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec_1/agg_null_rec_1.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec_1/agg_null_rec_1.3.query.aql
@@ -27,4 +27,5 @@ use dataverse test;
 let $l := for $t in dataset Test return $t
 return { "count": count($l), "average": avg(for $i in $l return $i.val), "sum":
 sum(for $i in $l return $i.val), "stddev": stddev(for $i in $l return $i.val),
-"min": min(for $i in $l return $i.valplus), "max": max(for $i in $l return $i.valplus) }
+"stddev_pop": stddev_pop(for $i in $l return $i.val), "min": min(for $i in $l return $i.valplus),
+"max": max(for $i in $l return $i.valplus) }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number/agg_number.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number/agg_number.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number/agg_number.3.query.aql
index 3ece422..98e996e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number/agg_number.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number/agg_number.3.query.aql
@@ -30,5 +30,6 @@ let $a3 := sum($l2)
 let $a4 := min($l2)
 let $a5 := max($l2)
 let $a6 := stddev($l2)
-return { "count1": count($l1), "average1": avg($l1), "stddev1": stddev($l1), "sum1": sum($l1), "min1": min($l1), "max1": max($l1), "count2": $a1, "average2": $a2, "stddev2": $a6, "sum2": $a3, "min2": $a4, "max2": $a5 }
+let $a7 := stddev_pop($l2)
+return { "count1": count($l1), "average1": avg($l1), "stddev1": stddev($l1), "stddev_pop1": stddev_pop($l1), "sum1": sum($l1), "min1": min($l1), "max1": max($l1), "count2": $a1, "average2": $a2, "stddev2": $a6, "stddev_pop2": $a7, "sum2": $a3, "min2": $a4, "max2": $a5 }
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number_rec/agg_number_rec.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number_rec/agg_number_rec.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number_rec/agg_number_rec.3.query.aql
index 220ff31..8dbb4d3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number_rec/agg_number_rec.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number_rec/agg_number_rec.3.query.aql
@@ -25,4 +25,4 @@
 use dataverse test;
 
 let $l := for $t in dataset Test return $t.valplus
-return { "count": count($l), "average": avg($l), "stddev": stddev($l), "sum": sum($l), "min": min($l), "max": max($l) }
+return { "count": count($l), "average": avg($l), "stddev": stddev($l), "stddev_pop": stddev_pop($l), "sum": sum($l), "min": min($l), "max": max($l) }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null/agg_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null/agg_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null/agg_null.3.query.sqlpp
index 9fd31d1..547b555 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null/agg_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null/agg_null.3.query.sqlpp
@@ -22,4 +22,4 @@
 * Date         : Feb 7th 2014
 */
 
-{'sql-count1':array_count([null]),'average1':array_avg([null]),'sql-sum1':array_sum([null]),'sql-min1':array_min([null]),'sql-max1':array_max([null]),'sql-stddev1':array_stddev([null]),'sql-count2':array_count({{null,null}}),'average2':array_avg({{null,null}}),'sql-sum2':array_sum({{null,null}}),'sql-min2':array_min({{null,null}}),'sql-max2':array_max({{null,null}}),'sql-stddev2':array_stddev({{null,null}})};
+{'sql-count1':array_count([null]),'average1':array_avg([null]),'sql-sum1':array_sum([null]),'sql-min1':array_min([null]),'sql-max1':array_max([null]),'sql-stddev1':array_stddev([null]),'sql-stddev_pop1':array_stddev_pop([null]),'sql-count2':array_count({{null,null}}),'average2':array_avg({{null,null}}),'sql-sum2':array_sum({{null,null}}),'sql-min2':array_min({{null,null}}),'sql-max2':array_max({{null,null}}),'sql-stddev2':array_stddev({{null,null}}),'sql-stddev_pop2':array_stddev_pop({{null,null}})};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec/agg_null_rec.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec/agg_null_rec.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec/agg_null_rec.3.query.sqlpp
index b5bdd81..1831367 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec/agg_null_rec.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec/agg_null_rec.3.query.sqlpp
@@ -43,4 +43,7 @@ use test;
 )),'sql-stddev':test.array_stddev((
     select element t.valplus
     from  Test as t
+)),'sql-stddev_pop':test.array_stddev_pop((
+    select element t.valplus
+    from  Test as t
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.sqlpp
index 13c8be1..9a56d93 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.sqlpp
@@ -58,4 +58,10 @@ use test;
         select element t
         from  Test as t
     ) as i
+)),'sql-stddev_pop':test.array_stddev_pop((
+    select element i.valplus
+    from  (
+        select element t
+        from  Test as t
+    ) as i
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number/agg_number.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number/agg_number.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number/agg_number.3.query.sqlpp
index 4776925..f76f7d6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number/agg_number.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number/agg_number.3.query.sqlpp
@@ -22,4 +22,4 @@
 * Date         : Feb 7th 2014
 */
 
-{'sql-count1':array_count([float('2.0'),double('3.0'),93847382783847382,1]),'average1':array_avg([float('2.0'),double('3.0'),93847382783847382,1]),'sql-sum1':array_sum([float('2.0'),double('3.0'),93847382783847382,1]),'sql-min1':array_min([float('2.0'),double('3.0'),93847382783847382,1]),'sql-max1':array_max([float('2.0'),double('3.0'),93847382783847382,1]),'sql-stddev1':array_stddev([float('2.0'),double('3.0'),93847382783847382,1]),'sql-count2':array_count({{float('2.0'),double('3.0'),93847382783847382,1}}),'average2':array_avg({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-sum2':array_sum({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-min2':array_min({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-max2':array_max({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-stddev2':array_stddev({{float('2.0'),double('3.0'),93847382783847382,1}})};
+{'sql-count1':array_count([float('2.0'),double('3.0'),93847382783847382,1]),'average1':array_avg([float('2.0'),double('3.0'),93847382783847382,1]),'sql-sum1':array_sum([float('2.0'),double('3.0'),93847382783847382,1]),'sql-min1':array_min([float('2.0'),double('3.0'),93847382783847382,1]),'sql-max1':array_max([float('2.0'),double('3.0'),93847382783847382,1]),'sql-stddev1':array_stddev([float('2.0'),double('3.0'),93847382783847382,1]),'sql-stddev_pop1':array_stddev_pop([float('2.0'),double('3.0'),93847382783847382,1]),'sql-count2':array_count({{float('2.0'),double('3.0'),93847382783847382,1}}),'average2':array_avg({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-sum2':array_sum({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-min2':array_min({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-max2':array_max({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-stddev2':array_stddev({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-stddev_pop2':array_std
 dev_pop({{float('2.0'),double('3.0'),93847382783847382,1}})};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number_rec/agg_number_rec.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number_rec/agg_number_rec.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number_rec/agg_number_rec.3.query.sqlpp
index faec87a..790e567 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number_rec/agg_number_rec.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number_rec/agg_number_rec.3.query.sqlpp
@@ -43,4 +43,7 @@ use test;
 )),'sql-stddev':test.array_stddev((
     select element t.valplus
     from  Test as t
+)),'sql-stddev_pop':test.array_stddev_pop((
+    select element t.valplus
+    from  Test as t
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev/scalar_stddev.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev/scalar_stddev.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev/scalar_stddev.1.ddl.sqlpp
index fbd4e19..7049419 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev/scalar_stddev.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev/scalar_stddev.1.ddl.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 /*
- * Description    : Tests the scalar version of array_avg without nulls.
+ * Description    : Tests the scalar version of stddev and stddev_pop without nulls.
  * Success        : Yes
  */
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev/scalar_stddev.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev/scalar_stddev.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev/scalar_stddev.3.query.sqlpp
index 8a4ed23..061da60 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev/scalar_stddev.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev/scalar_stddev.3.query.sqlpp
@@ -17,19 +17,26 @@
  * under the License.
  */
 /*
- * Description    : Tests the scalar version of array_stddev without nulls.
+ * Description    : Tests the scalar version of stddev and stddev_pop without nulls.
  * Success        : Yes
  */
 
 use test;
 
-
-with  i8 as test.array_stddev([test.tinyint('1'),test.tinyint('2'),test.tinyint('3')]),
+{'stddev': (with  i8 as test.array_stddev([test.tinyint('1'),test.tinyint('2'),test.tinyint('3')]),
       i16 as test.array_stddev([test.smallint('1'),test.smallint('2'),test.smallint('3')]),
       i32 as test.array_stddev([test.integer('1'),test.integer('2'),test.integer('3')]),
       i64 as test.array_stddev([test.bigint('1'),test.bigint('2'),test.bigint('3')]),
       f as test.array_stddev([test.float('1'),test.float('2'),test.float('3')]),
       d as test.array_stddev([test.double('1'),test.double('2'),test.double('3')])
 select element i
-from  [i8,i16,i32,i64,f,d] as i
-;
+from  [i8,i16,i32,i64,f,d] as i),
+'stddev_pop': (with  i8 as test.array_stddev_pop([test.tinyint('1'),test.tinyint('2'),test.tinyint('3')]),
+      i16 as test.array_stddev_pop([test.smallint('1'),test.smallint('2'),test.smallint('3')]),
+      i32 as test.array_stddev_pop([test.integer('1'),test.integer('2'),test.integer('3')]),
+      i64 as test.array_stddev_pop([test.bigint('1'),test.bigint('2'),test.bigint('3')]),
+      f as test.array_stddev_pop([test.float('1'),test.float('2'),test.float('3')]),
+      d as test.array_stddev_pop([test.double('1'),test.double('2'),test.double('3')])
+select element i
+from  [i8,i16,i32,i64,f,d] as i)
+};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.1.ddl.sqlpp
index 430406c..63c85db 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.1.ddl.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 /*
- * Description    : Tests the scalar version of array_avg with an empty list.
+ * Description    : Tests the scalar version of stddev and stddev_pop with an empty list.
  * Success        : Yes
  */
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.3.query.sqlpp
index 2b01753..f29f59a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.3.query.sqlpp
@@ -17,8 +17,9 @@
  * under the License.
  */
 /*
- * Description    : Tests the scalar version of array_stddev with an empty list.
+ * Description    : Tests the scalar version of stddev and stddev_pop with an empty list.
  * Success        : Yes
  */
 
-select element array_stddev([]);
+{'stddev': (select element array_stddev([])),
+'stddev_pop': (select element array_stddev_pop([]))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_null/scalar_stddev_null.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_null/scalar_stddev_null.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_null/scalar_stddev_null.1.ddl.sqlpp
index 87b10c9..487d166 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_null/scalar_stddev_null.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_null/scalar_stddev_null.1.ddl.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 /*
- * Description    : Tests the scalar version of array_avg with nulls.
+ * Description    : Tests the scalar version of stddev and stddev_pop with nulls.
  * Success        : Yes
  */
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_null/scalar_stddev_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_null/scalar_stddev_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_null/scalar_stddev_null.3.query.sqlpp
index e49076d..8a2db99 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_null/scalar_stddev_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_stddev_null/scalar_stddev_null.3.query.sqlpp
@@ -17,19 +17,26 @@
  * under the License.
  */
 /*
- * Description    : Tests the scalar version of array_stddev with nulls.
+ * Description    : Tests the scalar version of stddev and stddev_pop with nulls.
  * Success        : Yes
  */
 
 use test;
 
-
-with  i8 as test.array_stddev([test.tinyint('1'),test.tinyint('2'),test.tinyint('3'),null]),
+{'stddev': (with  i8 as test.array_stddev([test.tinyint('1'),test.tinyint('2'),test.tinyint('3'),null]),
       i16 as test.array_stddev([test.smallint('1'),test.smallint('2'),test.smallint('3'),null]),
       i32 as test.array_stddev([test.integer('1'),test.integer('2'),test.integer('3'),null]),
       i64 as test.array_stddev([test.bigint('1'),test.bigint('2'),test.bigint('3'),null]),
       f as test.array_stddev([test.float('1'),test.float('2'),test.float('3'),null]),
       d as test.array_stddev([test.double('1'),test.double('2'),test.double('3'),null])
 select element i
-from  [i8,i16,i32,i64,f,d] as i
-;
+from  [i8,i16,i32,i64,f,d] as i),
+'stddev_pop': (with  i8 as test.array_stddev_pop([test.tinyint('1'),test.tinyint('2'),test.tinyint('3'),null]),
+      i16 as test.array_stddev_pop([test.smallint('1'),test.smallint('2'),test.smallint('3'),null]),
+      i32 as test.array_stddev_pop([test.integer('1'),test.integer('2'),test.integer('3'),null]),
+      i64 as test.array_stddev_pop([test.bigint('1'),test.bigint('2'),test.bigint('3'),null]),
+      f as test.array_stddev_pop([test.float('1'),test.float('2'),test.float('3'),null]),
+      d as test.array_stddev_pop([test.double('1'),test.double('2'),test.double('3'),null])
+select element i
+from  [i8,i16,i32,i64,f,d] as i)
+};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_double/serial_stddev_double.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_double/serial_stddev_double.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_double/serial_stddev_double.3.query.sqlpp
index 1219f2e..d20e7c9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_double/serial_stddev_double.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_double/serial_stddev_double.3.query.sqlpp
@@ -19,7 +19,7 @@
 
 use test;
 
-select gid, stddev(t.val) as stddev
+select gid, stddev(t.val) as stddev, stddev_pop(t.val) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_double_null/serial_stddev_double_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_double_null/serial_stddev_double_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_double_null/serial_stddev_double_null.3.query.sqlpp
index 2125b05..eb4bc56 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_double_null/serial_stddev_double_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_double_null/serial_stddev_double_null.3.query.sqlpp
@@ -19,7 +19,7 @@
 
 use test;
 
-select gid, stddev(t.valplus) as stddev
+select gid, stddev(t.valplus) as stddev, stddev_pop(t.valplus) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_empty/serial_stddev_empty.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_empty/serial_stddev_empty.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_empty/serial_stddev_empty.3.query.sqlpp
index 1219f2e..d20e7c9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_empty/serial_stddev_empty.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_empty/serial_stddev_empty.3.query.sqlpp
@@ -19,7 +19,7 @@
 
 use test;
 
-select gid, stddev(t.val) as stddev
+select gid, stddev(t.val) as stddev, stddev_pop(t.val) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_float/serial_stddev_float.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_float/serial_stddev_float.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_float/serial_stddev_float.3.query.sqlpp
index 1219f2e..d20e7c9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_float/serial_stddev_float.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_float/serial_stddev_float.3.query.sqlpp
@@ -19,7 +19,7 @@
 
 use test;
 
-select gid, stddev(t.val) as stddev
+select gid, stddev(t.val) as stddev, stddev_pop(t.val) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_float_null/serial_stddev_float_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_float_null/serial_stddev_float_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_float_null/serial_stddev_float_null.3.query.sqlpp
index 2125b05..eb4bc56 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_float_null/serial_stddev_float_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_float_null/serial_stddev_float_null.3.query.sqlpp
@@ -19,7 +19,7 @@
 
 use test;
 
-select gid, stddev(t.valplus) as stddev
+select gid, stddev(t.valplus) as stddev, stddev_pop(t.valplus) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int16/serial_stddev_int16.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int16/serial_stddev_int16.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int16/serial_stddev_int16.3.query.sqlpp
index 1219f2e..d20e7c9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int16/serial_stddev_int16.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int16/serial_stddev_int16.3.query.sqlpp
@@ -19,7 +19,7 @@
 
 use test;
 
-select gid, stddev(t.val) as stddev
+select gid, stddev(t.val) as stddev, stddev_pop(t.val) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int16_null/serial_stddev_int16_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int16_null/serial_stddev_int16_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int16_null/serial_stddev_int16_null.3.query.sqlpp
index 2125b05..eb4bc56 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int16_null/serial_stddev_int16_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int16_null/serial_stddev_int16_null.3.query.sqlpp
@@ -19,7 +19,7 @@
 
 use test;
 
-select gid, stddev(t.valplus) as stddev
+select gid, stddev(t.valplus) as stddev, stddev_pop(t.valplus) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int32/serial_stddev_int32.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int32/serial_stddev_int32.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int32/serial_stddev_int32.3.query.sqlpp
index 1219f2e..d20e7c9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int32/serial_stddev_int32.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int32/serial_stddev_int32.3.query.sqlpp
@@ -19,7 +19,7 @@
 
 use test;
 
-select gid, stddev(t.val) as stddev
+select gid, stddev(t.val) as stddev, stddev_pop(t.val) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int32_null/serial_stddev_int32_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int32_null/serial_stddev_int32_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int32_null/serial_stddev_int32_null.3.query.sqlpp
index 2125b05..eb4bc56 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int32_null/serial_stddev_int32_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int32_null/serial_stddev_int32_null.3.query.sqlpp
@@ -19,7 +19,7 @@
 
 use test;
 
-select gid, stddev(t.valplus) as stddev
+select gid, stddev(t.valplus) as stddev, stddev_pop(t.valplus) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int64/serial_stddev_int64.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int64/serial_stddev_int64.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int64/serial_stddev_int64.3.query.sqlpp
index 1219f2e..d20e7c9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int64/serial_stddev_int64.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int64/serial_stddev_int64.3.query.sqlpp
@@ -19,7 +19,7 @@
 
 use test;
 
-select gid, stddev(t.val) as stddev
+select gid, stddev(t.val) as stddev, stddev_pop(t.val) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int64_null/serial_stddev_int64_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int64_null/serial_stddev_int64_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int64_null/serial_stddev_int64_null.3.query.sqlpp
index 2125b05..eb4bc56 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int64_null/serial_stddev_int64_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int64_null/serial_stddev_int64_null.3.query.sqlpp
@@ -19,7 +19,7 @@
 
 use test;
 
-select gid, stddev(t.valplus) as stddev
+select gid, stddev(t.valplus) as stddev, stddev_pop(t.valplus) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int8/serial_stddev_int8.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int8/serial_stddev_int8.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int8/serial_stddev_int8.3.query.sqlpp
index 1219f2e..d20e7c9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int8/serial_stddev_int8.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int8/serial_stddev_int8.3.query.sqlpp
@@ -19,7 +19,7 @@
 
 use test;
 
-select gid, stddev(t.val) as stddev
+select gid, stddev(t.val) as stddev, stddev_pop(t.val) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int8_null/serial_stddev_int8_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int8_null/serial_stddev_int8_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int8_null/serial_stddev_int8_null.3.query.sqlpp
index 2125b05..eb4bc56 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int8_null/serial_stddev_int8_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_int8_null/serial_stddev_int8_null.3.query.sqlpp
@@ -19,7 +19,7 @@
 
 use test;
 
-select gid, stddev(t.valplus) as stddev
+select gid, stddev(t.valplus) as stddev, stddev_pop(t.valplus) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.ddl.sqlpp
new file mode 100644
index 0000000..da0bd7b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+
+create type test.TestType as
+{
+  id : bigint,
+  gid : bigint,
+  val : double
+};
+
+create  dataset Test(TestType) primary key id;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.2.update.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.2.update.sqlpp
new file mode 100644
index 0000000..8c0b731
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.2.update.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+insert into Test
+select element {'id':0,'gid':1,'val':double(4.32),'valplus':float('2.0')};
+insert into Test
+select element {'id':1,'gid':1,'val':double(5.32)};
+insert into Test
+select element {'id':2,'gid':1,'val':double(6.32),'valplus':'hello world'};
+insert into Test
+select element {'id':3,'gid':1,'val':double(4.32),'valplus':double('3.0')};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.query.sqlpp
new file mode 100644
index 0000000..207b139
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.query.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ /*
+ * Description  : Run serial-stddev over an ordered list with mixed types
+ * Expected Res : Failure
+ * Date         : March 5th 2018
+ */
+
+use test;
+
+select gid, array_stddev_pop((select value g.valplus from g)) as stddev_pop
+from Test as t
+/* +hash */
+group by t.gid as gid group as g(valplus as valplus);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_distinct/stddev_distinct.1.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_distinct/stddev_distinct.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_distinct/stddev_distinct.1.query.sqlpp
new file mode 100644
index 0000000..37606a1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_distinct/stddev_distinct.1.query.sqlpp
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ {
+   't1': to_bigint(array_stddev(distinct [10,20,30,10,20,30,10])),
+   't2': to_bigint(array_stddev(distinct [null,missing,null,missing])),
+   't3': to_bigint(array_stddev(distinct [40,null,missing,50,40,null,missing,50,40])),
+   't4': to_bigint(array_stddev(distinct [])),
+   't5': to_bigint(array_stddev_pop(distinct [10,20,30,10,20,30,10])),
+   't6': to_bigint(array_stddev_pop(distinct [null,missing,null,missing])),
+   't7': to_bigint(array_stddev_pop(distinct [40,null,missing,50,40,null,missing,50,40])),
+   't8': to_bigint(array_stddev_pop(distinct []))
+ };

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_double/stddev_double.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_double/stddev_double.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_double/stddev_double.3.query.sqlpp
index 4a539ed..ff20386 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_double/stddev_double.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_double/stddev_double.3.query.sqlpp
@@ -17,7 +17,10 @@
  * under the License.
  */
 
-select element array_stddev((
+{'stddev': (select element array_stddev((
     select element x
     from  [1.0,2.0,double('3.0')] as x
-));
+))), 'stddev_pop': (select element array_stddev_pop((
+    select element x
+    from  [1.0,2.0,double('3.0')] as x
+)))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_double_null/stddev_double_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_double_null/stddev_double_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_double_null/stddev_double_null.3.query.sqlpp
index c06f58d..3899ca2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_double_null/stddev_double_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_double_null/stddev_double_null.3.query.sqlpp
@@ -23,4 +23,7 @@ use test;
 {'stddev':test.array_stddev((
     select element x.doubleField
     from  Numeric as x
+)), 'stddev_pop':test.array_stddev_pop((
+    select element x.doubleField
+    from  Numeric as x
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_01/stddev_empty_01.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_01/stddev_empty_01.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_01/stddev_empty_01.1.ddl.sqlpp
index a6590c5..e2d346b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_01/stddev_empty_01.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_01/stddev_empty_01.1.ddl.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 /*
- * Description    : Tests that array_avg aggregation correctly returns null for an empty stream,
+ * Description    : Tests that array_stddev aggregation correctly returns null for an empty stream,
  *                  without an aggregate combiner.
  * Success        : Yes
  */

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_01/stddev_empty_01.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_01/stddev_empty_01.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_01/stddev_empty_01.3.query.sqlpp
index 8331de0..988b1e6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_01/stddev_empty_01.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_01/stddev_empty_01.3.query.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 /*
- * Description    : Tests that array_stddev aggregation correctly returns null for an empty stream,
+ * Description    : Tests that stddev and stddev_pop aggregation correctly returns null for an empty stream,
  *                  without an aggregate combiner.
  * Success        : Yes
  */
@@ -25,8 +25,12 @@
 use test;
 
 
-select element test.array_stddev((
+{'stddev': (select element test.array_stddev((
     select element x
     from  [1,2,3] as x
     where (x > 10)
-));
+))), 'stddev_pop': (select element test.array_stddev_pop((
+    select element x
+    from  [1,2,3] as x
+    where (x > 10)
+)))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_02/stddev_empty_02.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_02/stddev_empty_02.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_02/stddev_empty_02.1.ddl.sqlpp
index b9cd662..444cfb2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_02/stddev_empty_02.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_02/stddev_empty_02.1.ddl.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 /*
- * Description    : Tests that array_avg aggregation correctly returns null for an empty stream,
+ * Description    : Tests that array_stddev aggregation correctly returns null for an empty stream,
  *                  with an aggregate combiner.
  * Success        : Yes
  */

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_02/stddev_empty_02.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_02/stddev_empty_02.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_02/stddev_empty_02.3.query.sqlpp
index bfbe1b1..3ad8d1b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_02/stddev_empty_02.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_empty_02/stddev_empty_02.3.query.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 /*
- * Description    : Tests that array_stddev aggregation correctly returns null for an empty stream,
+ * Description    : Tests that stddev and stddev_pop aggregation correctly returns null for an empty stream,
  *                  with an aggregate combiner.
  * Success        : Yes
  */
@@ -25,7 +25,10 @@
 use test;
 
 
-select element test.array_stddev((
+{'stddev': (select element test.array_stddev((
     select element x.val
     from  Test as x
-));
+))), 'stddev_pop': (select element test.array_stddev_pop((
+    select element x.val
+    from  Test as x
+)))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_float/stddev_float.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_float/stddev_float.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_float/stddev_float.3.query.sqlpp
index cb51c3d..a4baabb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_float/stddev_float.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_float/stddev_float.3.query.sqlpp
@@ -20,7 +20,10 @@
 use test;
 
 
-select element test.array_stddev((
+{'stddev': (select element test.array_stddev((
     select element x
     from  [test.float('1'),test.float('2'),test.float('3')] as x
-));
+))), 'stddev_pop': (select element test.array_stddev_pop((
+    select element x
+    from  [test.float('1'),test.float('2'),test.float('3')] as x
+)))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_float_null/stddev_float_nu.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_float_null/stddev_float_nu.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_float_null/stddev_float_nu.3.query.sqlpp
index c85ce12..8a1abff 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_float_null/stddev_float_nu.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_float_null/stddev_float_nu.3.query.sqlpp
@@ -23,4 +23,7 @@ use test;
 {'stddev':test.array_stddev((
     select element x.floatField
     from  Numeric as x
+)), 'stddev_pop':test.array_stddev_pop((
+    select element x.floatField
+    from  Numeric as x
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int16/stddev_int16.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int16/stddev_int16.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int16/stddev_int16.3.query.sqlpp
index c5360e9..2ad24ab 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int16/stddev_int16.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int16/stddev_int16.3.query.sqlpp
@@ -20,7 +20,10 @@
 use test;
 
 
-select element test.array_stddev((
+{'stddev': (select element test.array_stddev((
     select element x
     from  [test.smallint('1'),test.smallint('2'),test.smallint('3')] as x
-));
+))), 'stddev_pop': (select element test.array_stddev_pop((
+    select element x
+    from  [test.smallint('1'),test.smallint('2'),test.smallint('3')] as x
+)))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int16_null/stddev_int16_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int16_null/stddev_int16_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int16_null/stddev_int16_null.3.query.sqlpp
index f89e1ec..2da44d4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int16_null/stddev_int16_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int16_null/stddev_int16_null.3.query.sqlpp
@@ -23,4 +23,7 @@ use test;
 {'stddev':test.array_stddev((
     select element x.int16Field
     from  Numeric as x
+)), 'stddev_pop':test.array_stddev_pop((
+    select element x.int16Field
+    from  Numeric as x
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int32/stddev_int32.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int32/stddev_int32.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int32/stddev_int32.3.query.sqlpp
index afbe777..b8a59c3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int32/stddev_int32.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int32/stddev_int32.3.query.sqlpp
@@ -20,7 +20,10 @@
 use test;
 
 
-select element test.array_stddev((
+{'stddev': (select element test.array_stddev((
     select element x
     from  [test.integer('1'),test.integer('2'),test.integer('3')] as x
-));
+))), 'stddev_pop': (select element test.array_stddev_pop((
+    select element x
+    from  [test.integer('1'),test.integer('2'),test.integer('3')] as x
+)))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int32_null/stddev_int32_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int32_null/stddev_int32_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int32_null/stddev_int32_null.3.query.sqlpp
index a76ea4a..4d0ff58 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int32_null/stddev_int32_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int32_null/stddev_int32_null.3.query.sqlpp
@@ -23,4 +23,7 @@ use test;
 {'stddev':test.array_stddev((
     select element x.int32Field
     from  Numeric as x
+)), 'stddev_pop':test.array_stddev_pop((
+    select element x.int32Field
+    from  Numeric as x
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int64/stddev_int64.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int64/stddev_int64.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int64/stddev_int64.3.query.sqlpp
index 17e2285..cf0fa59 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int64/stddev_int64.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int64/stddev_int64.3.query.sqlpp
@@ -20,7 +20,10 @@
 use test;
 
 
-select element test.array_stddev((
+{'stddev': (select element test.array_stddev((
     select element x
     from  [test.bigint('1'),test.bigint('2'),test.bigint('3')] as x
-));
+))), 'stddev_pop': (select element test.array_stddev_pop((
+    select element x
+    from  [test.bigint('1'),test.bigint('2'),test.bigint('3')] as x
+)))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int64_null/stddev_int64_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int64_null/stddev_int64_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int64_null/stddev_int64_null.3.query.sqlpp
index 5ed6db6..7aa502c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int64_null/stddev_int64_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int64_null/stddev_int64_null.3.query.sqlpp
@@ -23,4 +23,7 @@ use test;
 {'stddev':test.array_stddev((
     select element x.int64Field
     from  Numeric as x
+)), 'stddev_pop':test.array_stddev_pop((
+    select element x.int64Field
+    from  Numeric as x
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int8/stddev_int8.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int8/stddev_int8.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int8/stddev_int8.3.query.sqlpp
index 6efdcaf..016b368 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int8/stddev_int8.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int8/stddev_int8.3.query.sqlpp
@@ -20,7 +20,10 @@
 use test;
 
 
-select element test.array_stddev((
+{'stddev': (select element test.array_stddev((
     select element x
     from  [test.tinyint('1'),test.tinyint('2'),test.tinyint('3')] as x
-));
+))), 'stddev_pop': (select element test.array_stddev_pop((
+    select element x
+    from  [test.tinyint('1'),test.tinyint('2'),test.tinyint('3')] as x
+)))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int8_null/stddev_int8_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int8_null/stddev_int8_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int8_null/stddev_int8_null.3.query.sqlpp
index 1001843..f7e4dbe 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int8_null/stddev_int8_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_int8_null/stddev_int8_null.3.query.sqlpp
@@ -23,4 +23,7 @@ use test;
 {'stddev':test.array_stddev((
     select element x.int8Field
     from  Numeric as x
+)), 'stddev_pop':test.array_stddev_pop((
+    select element x.int8Field
+    from  Numeric as x
 ))};


[5/6] asterixdb git commit: [ASTERIXDB-2459][FUN] Add sttdev_pop() aggregate function

Posted by dl...@apache.org.
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_mixed/stddev_mixed.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_mixed/stddev_mixed.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_mixed/stddev_mixed.3.query.sqlpp
index 69ad38c..9eb1323 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_mixed/stddev_mixed.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_mixed/stddev_mixed.3.query.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 /*
-* Description  : Run array_avg over an ordered list with mixed types
+* Description  : Run array_stddev over an ordered list with mixed types
 * Expected Res : Failure
 * Date         : March 5th 2018
 */

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_pop_mixed/stddev_pop_mixed.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_pop_mixed/stddev_pop_mixed.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_pop_mixed/stddev_pop_mixed.3.query.sqlpp
new file mode 100644
index 0000000..64538e8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/stddev_pop_mixed/stddev_pop_mixed.3.query.sqlpp
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+* Description  : Run array_stddev_pop over an ordered list with mixed types
+* Expected Res : Failure
+* Date         : Feb 7th 2014
+*/
+
+select element array_stddev_pop((
+    select element x
+    from  [float('2.0'),'hello world',93847382783847382,date('2013-01-01')] as x
+));

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_null/agg_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_null/agg_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_null/agg_null.3.query.sqlpp
index 062cb48..f1eb9dd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_null/agg_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_null/agg_null.3.query.sqlpp
@@ -22,4 +22,4 @@
 * Date         : Jun 2nd 2013
 */
 
-{'count1':strict_count([null]),'average1':strict_avg([null]),'sum1':strict_sum([null]),'min1':strict_min([null]),'max1':strict_max([null]),'stddev1':strict_stddev([null]),'count2':strict_count({{null,null}}),'average2':strict_avg({{null,null}}),'sum2':strict_sum({{null,null}}),'min2':strict_min({{null,null}}),'max2':strict_max({{null,null}}),'stddev2':strict_stddev({{null,null}})};
+{'count1':strict_count([null]),'average1':strict_avg([null]),'sum1':strict_sum([null]),'min1':strict_min([null]),'max1':strict_max([null]),'stddev1':strict_stddev([null]),'stddev_pop1':strict_stddev_pop([null]),'count2':strict_count({{null,null}}),'average2':strict_avg({{null,null}}),'sum2':strict_sum({{null,null}}),'min2':strict_min({{null,null}}),'max2':strict_max({{null,null}}),'stddev2':strict_stddev({{null,null}}),'stddev_pop2':strict_stddev_pop({{null,null}})};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_null_rec/agg_null_rec.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_null_rec/agg_null_rec.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_null_rec/agg_null_rec.3.query.sqlpp
index 88c86f5..6796570 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_null_rec/agg_null_rec.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_null_rec/agg_null_rec.3.query.sqlpp
@@ -43,4 +43,7 @@ use test;
 )), 'stddev':test.strict_stddev((
     select element t.valplus
     from  Test as t
+)), 'stddev_pop':test.strict_stddev_pop((
+    select element t.valplus
+    from  Test as t
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_null_rec_1/agg_null_rec_1.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_null_rec_1/agg_null_rec_1.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_null_rec_1/agg_null_rec_1.3.query.sqlpp
index bf316da..e58aefb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_null_rec_1/agg_null_rec_1.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_null_rec_1/agg_null_rec_1.3.query.sqlpp
@@ -58,4 +58,10 @@ use test;
         select element t
         from  Test as t
     ) as i
+)),'stddev_pop':test.strict_stddev_pop((
+    select element i.val
+    from  (
+        select element t
+        from  Test as t
+    ) as i
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_number/agg_number.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_number/agg_number.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_number/agg_number.3.query.sqlpp
index e8385ca..680f5c9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_number/agg_number.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_number/agg_number.3.query.sqlpp
@@ -22,4 +22,4 @@
 * Date         : Jun 2nd 2013
 */
 
-{'count1':strict_count([float('2.0'),double('3.0'),93847382783847382,1]),'average1':strict_avg([float('2.0'),double('3.0'),93847382783847382,1]),'sum1':strict_sum([float('2.0'),double('3.0'),93847382783847382,1]),'min1':strict_min([float('2.0'),double('3.0'),93847382783847382,1]),'max1':strict_max([float('2.0'),double('3.0'),93847382783847382,1]),'stddev1':strict_stddev([float('2.0'),double('3.0'),93847382783847382,1]),'count2':strict_count({{float('2.0'),double('3.0'),93847382783847382,1}}),'average2':strict_avg({{float('2.0'),double('3.0'),93847382783847382,1}}),'sum2':strict_sum({{float('2.0'),double('3.0'),93847382783847382,1}}),'min2':strict_min({{float('2.0'),double('3.0'),93847382783847382,1}}),'max2':strict_max({{float('2.0'),double('3.0'),93847382783847382,1}}),'stddev2':strict_stddev([float('2.0'),double('3.0'),93847382783847382,1])};
\ No newline at end of file
+{'count1':strict_count([float('2.0'),double('3.0'),93847382783847382,1]),'average1':strict_avg([float('2.0'),double('3.0'),93847382783847382,1]),'sum1':strict_sum([float('2.0'),double('3.0'),93847382783847382,1]),'min1':strict_min([float('2.0'),double('3.0'),93847382783847382,1]),'max1':strict_max([float('2.0'),double('3.0'),93847382783847382,1]),'stddev1':strict_stddev([float('2.0'),double('3.0'),93847382783847382,1]),'stddev_pop1':strict_stddev_pop([float('2.0'),double('3.0'),93847382783847382,1]),'count2':strict_count({{float('2.0'),double('3.0'),93847382783847382,1}}),'average2':strict_avg({{float('2.0'),double('3.0'),93847382783847382,1}}),'sum2':strict_sum({{float('2.0'),double('3.0'),93847382783847382,1}}),'min2':strict_min({{float('2.0'),double('3.0'),93847382783847382,1}}),'max2':strict_max({{float('2.0'),double('3.0'),93847382783847382,1}}),'stddev2':strict_stddev([float('2.0'),double('3.0'),93847382783847382,1]),'stddev_pop2':strict_stddev_pop([float('2.0'),double('3.0'),
 93847382783847382,1])};
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_number_rec/agg_number_rec.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_number_rec/agg_number_rec.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_number_rec/agg_number_rec.3.query.sqlpp
index 391e49d..1144a95 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_number_rec/agg_number_rec.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/agg_number_rec/agg_number_rec.3.query.sqlpp
@@ -43,4 +43,7 @@ use test;
 )),'stddev':test.strict_stddev((
     select element t.valplus
     from  Test as t
+)),'stddev_pop':test.strict_stddev_pop((
+    select element t.valplus
+    from  Test as t
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev/scalar_stddev.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev/scalar_stddev.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev/scalar_stddev.1.ddl.sqlpp
index bc2d063..7049419 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev/scalar_stddev.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev/scalar_stddev.1.ddl.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 /*
- * Description    : Tests the scalar version of avg without nulls.
+ * Description    : Tests the scalar version of stddev and stddev_pop without nulls.
  * Success        : Yes
  */
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev/scalar_stddev.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev/scalar_stddev.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev/scalar_stddev.3.query.sqlpp
index e1d9437..a7c1497 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev/scalar_stddev.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev/scalar_stddev.3.query.sqlpp
@@ -17,19 +17,26 @@
  * under the License.
  */
 /*
- * Description    : Tests the scalar version of stddev without nulls.
+ * Description    : Tests the scalar version of stddev and stddev_pop without nulls.
  * Success        : Yes
  */
 
 use test;
 
-
-with  i8 as test.strict_stddev([test.tinyint('1'),test.tinyint('2'),test.tinyint('3')]),
+{'stddev': (with  i8 as test.strict_stddev([test.tinyint('1'),test.tinyint('2'),test.tinyint('3')]),
       i16 as test.strict_stddev([test.smallint('1'),test.smallint('2'),test.smallint('3')]),
       i32 as test.strict_stddev([test.integer('1'),test.integer('2'),test.integer('3')]),
       i64 as test.strict_stddev([test.bigint('1'),test.bigint('2'),test.bigint('3')]),
       f as test.strict_stddev([test.float('1'),test.float('2'),test.float('3')]),
       d as test.strict_stddev([test.double('1'),test.double('2'),test.double('3')])
 select element i
-from  [i8,i16,i32,i64,f,d] as i
-;
+from  [i8,i16,i32,i64,f,d] as i),
+'stddev_pop': (with  i8 as test.strict_stddev_pop([test.tinyint('1'),test.tinyint('2'),test.tinyint('3')]),
+      i16 as test.strict_stddev_pop([test.smallint('1'),test.smallint('2'),test.smallint('3')]),
+      i32 as test.strict_stddev_pop([test.integer('1'),test.integer('2'),test.integer('3')]),
+      i64 as test.strict_stddev_pop([test.bigint('1'),test.bigint('2'),test.bigint('3')]),
+      f as test.strict_stddev_pop([test.float('1'),test.float('2'),test.float('3')]),
+      d as test.strict_stddev_pop([test.double('1'),test.double('2'),test.double('3')])
+select element i
+from  [i8,i16,i32,i64,f,d] as i)
+};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_empty/scalar_stddev_empty.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_empty/scalar_stddev_empty.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_empty/scalar_stddev_empty.1.ddl.sqlpp
index cb061c2..63c85db 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_empty/scalar_stddev_empty.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_empty/scalar_stddev_empty.1.ddl.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 /*
- * Description    : Tests the scalar version of avg with an empty list.
+ * Description    : Tests the scalar version of stddev and stddev_pop with an empty list.
  * Success        : Yes
  */
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_empty/scalar_stddev_empty.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_empty/scalar_stddev_empty.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_empty/scalar_stddev_empty.3.query.sqlpp
index 9dedcbd..bdccf51 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_empty/scalar_stddev_empty.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_empty/scalar_stddev_empty.3.query.sqlpp
@@ -17,8 +17,9 @@
  * under the License.
  */
 /*
- * Description    : Tests the scalar version of stddev with an empty list.
+ * Description    : Tests the scalar version of stddev and stddev_pop with an empty list.
  * Success        : Yes
  */
 
-select element strict_stddev([]);
+{'stddev': (select element strict_stddev([])),
+'stddev_pop': (select element strict_stddev_pop([]))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_null/scalar_stddev_null.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_null/scalar_stddev_null.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_null/scalar_stddev_null.1.ddl.sqlpp
index 03230ec..487d166 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_null/scalar_stddev_null.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_null/scalar_stddev_null.1.ddl.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 /*
- * Description    : Tests the scalar version of avg with nulls.
+ * Description    : Tests the scalar version of stddev and stddev_pop with nulls.
  * Success        : Yes
  */
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_null/scalar_stddev_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_null/scalar_stddev_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_null/scalar_stddev_null.3.query.sqlpp
index e8a3d18..d486633 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_null/scalar_stddev_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/scalar_stddev_null/scalar_stddev_null.3.query.sqlpp
@@ -17,19 +17,26 @@
  * under the License.
  */
 /*
- * Description    : Tests the scalar version of stddev with nulls.
+ * Description    : Tests the scalar version of stddev and stddev_pop with nulls.
  * Success        : Yes
  */
 
 use test;
 
-
-with  i8 as test.strict_stddev([test.tinyint('1'),test.tinyint('2'),test.tinyint('3'),null]),
+{'stddev': (with  i8 as test.strict_stddev([test.tinyint('1'),test.tinyint('2'),test.tinyint('3'),null]),
       i16 as test.strict_stddev([test.smallint('1'),test.smallint('2'),test.smallint('3'),null]),
       i32 as test.strict_stddev([test.integer('1'),test.integer('2'),test.integer('3'),null]),
       i64 as test.strict_stddev([test.bigint('1'),test.bigint('2'),test.bigint('3'),null]),
       f as test.strict_stddev([test.float('1'),test.float('2'),test.float('3'),null]),
       d as test.strict_stddev([test.double('1'),test.double('2'),test.double('3'),null])
 select element i
-from  [i8,i16,i32,i64,f,d] as i
-;
+from  [i8,i16,i32,i64,f,d] as i),
+'stddev_pop': (with  i8 as test.strict_stddev_pop([test.tinyint('1'),test.tinyint('2'),test.tinyint('3'),null]),
+      i16 as test.strict_stddev_pop([test.smallint('1'),test.smallint('2'),test.smallint('3'),null]),
+      i32 as test.strict_stddev_pop([test.integer('1'),test.integer('2'),test.integer('3'),null]),
+      i64 as test.strict_stddev_pop([test.bigint('1'),test.bigint('2'),test.bigint('3'),null]),
+      f as test.strict_stddev_pop([test.float('1'),test.float('2'),test.float('3'),null]),
+      d as test.strict_stddev_pop([test.double('1'),test.double('2'),test.double('3'),null])
+select element i
+from  [i8,i16,i32,i64,f,d] as i)
+};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_double/serial_stddev_double.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_double/serial_stddev_double.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_double/serial_stddev_double.3.query.sqlpp
index c142973..ad787f5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_double/serial_stddev_double.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_double/serial_stddev_double.3.query.sqlpp
@@ -19,7 +19,8 @@
 
 use test;
 
-select gid, strict_stddev((select value g.val from g)) as stddev
+select gid, strict_stddev((select value g.val from g)) as stddev,
+   strict_stddev_pop((select value g.val from g)) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid group as g(val as val);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_double_null/serial_stddev_double_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_double_null/serial_stddev_double_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_double_null/serial_stddev_double_null.3.query.sqlpp
index 9d62353..3ca4fec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_double_null/serial_stddev_double_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_double_null/serial_stddev_double_null.3.query.sqlpp
@@ -19,7 +19,8 @@
 
 use test;
 
-select gid, strict_stddev((select value g.valplus from g)) as stddev
+select gid, strict_stddev((select value g.valplus from g)) as stddev,
+   strict_stddev_pop((select value g.valplus from g)) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid group as g(valplus as valplus);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_empty/serial_stddev_empty.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_empty/serial_stddev_empty.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_empty/serial_stddev_empty.3.query.sqlpp
index c142973..ad787f5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_empty/serial_stddev_empty.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_empty/serial_stddev_empty.3.query.sqlpp
@@ -19,7 +19,8 @@
 
 use test;
 
-select gid, strict_stddev((select value g.val from g)) as stddev
+select gid, strict_stddev((select value g.val from g)) as stddev,
+   strict_stddev_pop((select value g.val from g)) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid group as g(val as val);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_float/serial_stddev_float.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_float/serial_stddev_float.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_float/serial_stddev_float.3.query.sqlpp
index c142973..ad787f5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_float/serial_stddev_float.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_float/serial_stddev_float.3.query.sqlpp
@@ -19,7 +19,8 @@
 
 use test;
 
-select gid, strict_stddev((select value g.val from g)) as stddev
+select gid, strict_stddev((select value g.val from g)) as stddev,
+   strict_stddev_pop((select value g.val from g)) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid group as g(val as val);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_float_null/serial_stddev_float_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_float_null/serial_stddev_float_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_float_null/serial_stddev_float_null.3.query.sqlpp
index 9d62353..3ca4fec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_float_null/serial_stddev_float_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_float_null/serial_stddev_float_null.3.query.sqlpp
@@ -19,7 +19,8 @@
 
 use test;
 
-select gid, strict_stddev((select value g.valplus from g)) as stddev
+select gid, strict_stddev((select value g.valplus from g)) as stddev,
+   strict_stddev_pop((select value g.valplus from g)) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid group as g(valplus as valplus);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int16/serial_stddev_int16.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int16/serial_stddev_int16.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int16/serial_stddev_int16.3.query.sqlpp
index c142973..ad787f5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int16/serial_stddev_int16.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int16/serial_stddev_int16.3.query.sqlpp
@@ -19,7 +19,8 @@
 
 use test;
 
-select gid, strict_stddev((select value g.val from g)) as stddev
+select gid, strict_stddev((select value g.val from g)) as stddev,
+   strict_stddev_pop((select value g.val from g)) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid group as g(val as val);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int16_null/serial_stddev_int16_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int16_null/serial_stddev_int16_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int16_null/serial_stddev_int16_null.3.query.sqlpp
index 9d62353..3ca4fec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int16_null/serial_stddev_int16_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int16_null/serial_stddev_int16_null.3.query.sqlpp
@@ -19,7 +19,8 @@
 
 use test;
 
-select gid, strict_stddev((select value g.valplus from g)) as stddev
+select gid, strict_stddev((select value g.valplus from g)) as stddev,
+   strict_stddev_pop((select value g.valplus from g)) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid group as g(valplus as valplus);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int32/serial_stddev_int32.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int32/serial_stddev_int32.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int32/serial_stddev_int32.3.query.sqlpp
index c142973..ad787f5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int32/serial_stddev_int32.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int32/serial_stddev_int32.3.query.sqlpp
@@ -19,7 +19,8 @@
 
 use test;
 
-select gid, strict_stddev((select value g.val from g)) as stddev
+select gid, strict_stddev((select value g.val from g)) as stddev,
+   strict_stddev_pop((select value g.val from g)) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid group as g(val as val);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int32_null/serial_stddev_int32_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int32_null/serial_stddev_int32_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int32_null/serial_stddev_int32_null.3.query.sqlpp
index 9d62353..3ca4fec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int32_null/serial_stddev_int32_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int32_null/serial_stddev_int32_null.3.query.sqlpp
@@ -19,7 +19,8 @@
 
 use test;
 
-select gid, strict_stddev((select value g.valplus from g)) as stddev
+select gid, strict_stddev((select value g.valplus from g)) as stddev,
+   strict_stddev_pop((select value g.valplus from g)) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid group as g(valplus as valplus);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int64/serial_stddev_int64.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int64/serial_stddev_int64.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int64/serial_stddev_int64.3.query.sqlpp
index c142973..ad787f5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int64/serial_stddev_int64.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int64/serial_stddev_int64.3.query.sqlpp
@@ -19,7 +19,8 @@
 
 use test;
 
-select gid, strict_stddev((select value g.val from g)) as stddev
+select gid, strict_stddev((select value g.val from g)) as stddev,
+   strict_stddev_pop((select value g.val from g)) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid group as g(val as val);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int64_null/serial_stddev_int64_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int64_null/serial_stddev_int64_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int64_null/serial_stddev_int64_null.3.query.sqlpp
index 9d62353..3ca4fec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int64_null/serial_stddev_int64_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int64_null/serial_stddev_int64_null.3.query.sqlpp
@@ -19,7 +19,8 @@
 
 use test;
 
-select gid, strict_stddev((select value g.valplus from g)) as stddev
+select gid, strict_stddev((select value g.valplus from g)) as stddev,
+   strict_stddev_pop((select value g.valplus from g)) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid group as g(valplus as valplus);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int8/serial_stddev_int8.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int8/serial_stddev_int8.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int8/serial_stddev_int8.3.query.sqlpp
index c142973..ad787f5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int8/serial_stddev_int8.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int8/serial_stddev_int8.3.query.sqlpp
@@ -19,7 +19,8 @@
 
 use test;
 
-select gid, strict_stddev((select value g.val from g)) as stddev
+select gid, strict_stddev((select value g.val from g)) as stddev,
+   strict_stddev_pop((select value g.val from g)) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid group as g(val as val);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int8_null/serial_stddev_int8_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int8_null/serial_stddev_int8_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int8_null/serial_stddev_int8_null.3.query.sqlpp
index 9d62353..3ca4fec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int8_null/serial_stddev_int8_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_int8_null/serial_stddev_int8_null.3.query.sqlpp
@@ -19,7 +19,8 @@
 
 use test;
 
-select gid, strict_stddev((select value g.valplus from g)) as stddev
+select gid, strict_stddev((select value g.valplus from g)) as stddev,
+   strict_stddev_pop((select value g.valplus from g)) as stddev_pop
 from Test as t
 /* +hash */
 group by t.gid as gid group as g(valplus as valplus);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.ddl.sqlpp
new file mode 100644
index 0000000..da0bd7b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+
+create type test.TestType as
+{
+  id : bigint,
+  gid : bigint,
+  val : double
+};
+
+create  dataset Test(TestType) primary key id;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.2.update.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.2.update.sqlpp
new file mode 100644
index 0000000..1b4eac9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.2.update.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+insert into Test
+select element {'id':0,'gid':1,'val':double(4.32),'valplus':float('2.0')};
+insert into Test
+select element {'id':1,'gid':1,'val':double(5.32),'valplus':float('1.0')};
+insert into Test
+select element {'id':2,'gid':1,'val':double(6.32),'valplus':'hello world'};
+insert into Test
+select element {'id':3,'gid':1,'val':double(4.32),'valplus':double('3.0')};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.query.sqlpp
new file mode 100644
index 0000000..329fc59
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.query.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ /*
+ * Description  : Run serial-stddev_pop over an ordered list with mixed types
+ * Expected Res : Failure
+ * Date         : March 5th 2018
+ */
+
+use test;
+
+select gid, strict_stddev_pop((select value g.valplus from g)) as stddev_pop
+from Test as t
+/* +hash */
+group by t.gid as gid group as g(valplus as valplus);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_distinct/stddev_distinct.1.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_distinct/stddev_distinct.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_distinct/stddev_distinct.1.query.sqlpp
new file mode 100644
index 0000000..ee5b28c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_distinct/stddev_distinct.1.query.sqlpp
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ {
+   't1': to_bigint(strict_stddev(distinct [10,20,30,10,20,30,10])),
+   't2': to_bigint(strict_stddev(distinct [null,missing,null,missing])),
+   't3': to_bigint(strict_stddev(distinct [40,null,missing,50,40,null,missing,50,40])),
+   't4': to_bigint(strict_stddev(distinct [])),
+   't5': to_bigint(strict_stddev_pop(distinct [10,20,30,10,20,30,10])),
+   't6': to_bigint(strict_stddev_pop(distinct [null,missing,null,missing])),
+   't7': to_bigint(strict_stddev_pop(distinct [40,null,missing,50,40,null,missing,50,40])),
+   't8': to_bigint(strict_stddev_pop(distinct []))
+ };

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_double/stddev_double.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_double/stddev_double.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_double/stddev_double.3.query.sqlpp
index c39ca57..6ec48bd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_double/stddev_double.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_double/stddev_double.3.query.sqlpp
@@ -17,7 +17,10 @@
  * under the License.
  */
 
-select element strict_stddev((
+{'stddev':(select element strict_stddev((
     select element x
     from  [1.0,2.0,double('3.0')] as x
-));
+))), 'stddev_pop': (select element strict_stddev_pop((
+    select element x
+    from  [1.0,2.0,double('3.0')] as x
+)))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_double_null/stddev_double_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_double_null/stddev_double_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_double_null/stddev_double_null.3.query.sqlpp
index b86d514..b8970f0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_double_null/stddev_double_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_double_null/stddev_double_null.3.query.sqlpp
@@ -19,8 +19,10 @@
 
 use test;
 
-
 {'stddev':test.strict_stddev((
     select element x.doubleField
     from  Numeric as x
+)), 'stddev_pop':test.strict_stddev_pop((
+    select element x.doubleField
+    from  Numeric as x
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_01/stddev_empty_01.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_01/stddev_empty_01.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_01/stddev_empty_01.1.ddl.sqlpp
index 2ae248a..8ec3e08 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_01/stddev_empty_01.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_01/stddev_empty_01.1.ddl.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 /*
- * Description    : Tests that avg aggregation correctly returns null for an empty stream,
+ * Description    : Tests that stddev aggregation correctly returns null for an empty stream,
  *                  without an aggregate combiner.
  * Success        : Yes
  */

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_01/stddev_empty_01.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_01/stddev_empty_01.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_01/stddev_empty_01.3.query.sqlpp
index 4dd9c6c..7c02b5d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_01/stddev_empty_01.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_01/stddev_empty_01.3.query.sqlpp
@@ -17,16 +17,19 @@
  * under the License.
  */
 /*
- * Description    : Tests that avg aggregation correctly returns null for an empty stream,
+ * Description    : Tests that stddev aggregation correctly returns null for an empty stream,
  *                  without an aggregate combiner.
  * Success        : Yes
  */
 
 use test;
 
-
-select element test.strict_stddev((
+{'stddev': (select element test.strict_stddev((
+    select element x
+    from  [1,2,3] as x
+    where (x > 10)
+))), 'stddev_pop': (select element test.strict_stddev_pop((
     select element x
     from  [1,2,3] as x
     where (x > 10)
-));
+)))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_02/stddev_empty_02.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_02/stddev_empty_02.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_02/stddev_empty_02.1.ddl.sqlpp
index c65aa35..ac9ee8f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_02/stddev_empty_02.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_02/stddev_empty_02.1.ddl.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 /*
- * Description    : Tests that avg aggregation correctly returns null for an empty stream,
+ * Description    : Tests that stddev aggregation correctly returns null for an empty stream,
  *                  with an aggregate combiner.
  * Success        : Yes
  */

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_02/stddev_empty_02.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_02/stddev_empty_02.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_02/stddev_empty_02.3.query.sqlpp
index c874bee..00ef2a5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_02/stddev_empty_02.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_empty_02/stddev_empty_02.3.query.sqlpp
@@ -17,15 +17,17 @@
  * under the License.
  */
 /*
- * Description    : Tests that avg aggregation correctly returns null for an empty stream,
+ * Description    : Tests that stddev aggregation correctly returns null for an empty stream,
  *                  with an aggregate combiner.
  * Success        : Yes
  */
 
 use test;
 
-
-select element test.strict_stddev((
+{'stddev': (select element test.strict_stddev((
+    select element x.val
+    from  Test as x
+))), 'stddev_pop': (select element test.strict_stddev_pop((
     select element x.val
     from  Test as x
-));
+)))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_float/stddev_float.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_float/stddev_float.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_float/stddev_float.3.query.sqlpp
index 4639508..7d93d5f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_float/stddev_float.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_float/stddev_float.3.query.sqlpp
@@ -20,7 +20,10 @@
 use test;
 
 
-select element test.strict_stddev((
+{'stddev': (select element test.strict_stddev((
     select element x
     from  [test.float('1'),test.float('2'),test.float('3')] as x
-));
+))), 'stddev_pop': (select element test.strict_stddev_pop((
+    select element x
+    from  [test.float('1'),test.float('2'),test.float('3')] as x
+)))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_float_null/stddev_float_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_float_null/stddev_float_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_float_null/stddev_float_null.3.query.sqlpp
index 0efd9c5..8953da9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_float_null/stddev_float_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_float_null/stddev_float_null.3.query.sqlpp
@@ -23,4 +23,7 @@ use test;
 {'stddev':test.strict_stddev((
     select element x.floatField
     from  Numeric as x
+)), 'stddev_pop':test.strict_stddev_pop((
+    select element x.floatField
+    from  Numeric as x
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int16/stddev_int16.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int16/stddev_int16.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int16/stddev_int16.3.query.sqlpp
index 58f3e41..3c8b633 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int16/stddev_int16.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int16/stddev_int16.3.query.sqlpp
@@ -20,7 +20,10 @@
 use test;
 
 
-select element test.strict_stddev((
+{'stddev': (select element test.strict_stddev((
     select element x
     from  [test.smallint('1'),test.smallint('2'),test.smallint('3')] as x
-));
+))), 'stddev_pop': (select element test.strict_stddev_pop((
+    select element x
+    from  [test.smallint('1'),test.smallint('2'),test.smallint('3')] as x
+)))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int16_null/stddev_int16_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int16_null/stddev_int16_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int16_null/stddev_int16_null.3.query.sqlpp
index 7608be6..314b28f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int16_null/stddev_int16_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int16_null/stddev_int16_null.3.query.sqlpp
@@ -23,4 +23,7 @@ use test;
 {'stddev':test.strict_stddev((
     select element x.int16Field
     from  Numeric as x
+)), 'stddev_pop':test.strict_stddev_pop((
+    select element x.int16Field
+    from  Numeric as x
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int32/stddev_int32.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int32/stddev_int32.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int32/stddev_int32.3.query.sqlpp
index 90dd3b3..9f4fd0d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int32/stddev_int32.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int32/stddev_int32.3.query.sqlpp
@@ -20,7 +20,10 @@
 use test;
 
 
-select element test.strict_stddev((
+{'stddev': (select element test.strict_stddev((
     select element x
     from  [1,2,3] as x
-));
+))), 'stddev_pop': (select element test.strict_stddev_pop((
+    select element x
+    from  [1,2,3] as x
+)))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int32_null/stddev_int32_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int32_null/stddev_int32_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int32_null/stddev_int32_null.3.query.sqlpp
index 42ea3a4..404532c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int32_null/stddev_int32_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int32_null/stddev_int32_null.3.query.sqlpp
@@ -23,4 +23,7 @@ use test;
 {'stddev':test.strict_stddev((
     select element x.int32Field
     from  Numeric as x
+)), 'stddev_pop':test.strict_stddev_pop((
+    select element x.int32Field
+    from  Numeric as x
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int64/stddev_int64.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int64/stddev_int64.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int64/stddev_int64.3.query.sqlpp
index 3c7269a..4d42043 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int64/stddev_int64.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int64/stddev_int64.3.query.sqlpp
@@ -20,7 +20,10 @@
 use test;
 
 
-select element test.strict_stddev((
+{'stddev': (select element test.strict_stddev((
     select element x
     from  [test.bigint('1'),test.bigint('2'),test.bigint('3')] as x
-));
+))), 'stddev_pop': (select element test.strict_stddev_pop((
+    select element x
+    from  [test.bigint('1'),test.bigint('2'),test.bigint('3')] as x
+)))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int64_null/stddev_int64_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int64_null/stddev_int64_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int64_null/stddev_int64_null.3.query.sqlpp
index 1304170..a5808a8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int64_null/stddev_int64_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int64_null/stddev_int64_null.3.query.sqlpp
@@ -23,4 +23,7 @@ use test;
 {'stddev':test.strict_stddev((
     select element x.int64Field
     from  Numeric as x
+)), 'stddev_pop':test.strict_stddev_pop((
+    select element x.int64Field
+    from  Numeric as x
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int8/stddev_int8.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int8/stddev_int8.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int8/stddev_int8.3.query.sqlpp
index 310f840..ba6d178 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int8/stddev_int8.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int8/stddev_int8.3.query.sqlpp
@@ -20,7 +20,10 @@
 use test;
 
 
-select element test.strict_stddev((
+{'stddev': (select element test.strict_stddev((
     select element x
     from  [test.tinyint('1'),test.tinyint('2'),test.tinyint('3')] as x
-));
+))), 'stddev_pop': (select element test.strict_stddev_pop((
+    select element x
+    from  [test.tinyint('1'),test.tinyint('2'),test.tinyint('3')] as x
+)))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int8_null/stddev_int8_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int8_null/stddev_int8_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int8_null/stddev_int8_null.3.query.sqlpp
index 25f0fee..f1d1c9b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int8_null/stddev_int8_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_int8_null/stddev_int8_null.3.query.sqlpp
@@ -23,4 +23,7 @@ use test;
 {'stddev':test.strict_stddev((
     select element x.int8Field
     from  Numeric as x
+)), 'stddev_pop':test.strict_stddev_pop((
+    select element x.int8Field
+    from  Numeric as x
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_pop_mixed/stddev_pop_mixed.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_pop_mixed/stddev_pop_mixed.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_pop_mixed/stddev_pop_mixed.3.query.sqlpp
new file mode 100644
index 0000000..d068bb2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/stddev_pop_mixed/stddev_pop_mixed.3.query.sqlpp
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+* Description  : Run stddev_pop over an ordered list with mixed types
+* Expected Res : Failure
+* Date         : Jun 2nd 2013
+*/
+
+select element strict_stddev_pop((
+    select element x
+    from  [float('2.0'),'hello world',93847382783847382,date('2013-01-01')] as x
+));

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_null/agg_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_null/agg_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_null/agg_null.1.adm
index 53910f3..a8c918b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_null/agg_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_null/agg_null.1.adm
@@ -1 +1 @@
-{ "sql-count1": 0, "average1": null, "sql-sum1": null, "sql-min1": null, "sql-max1": null, "sql-stddev1": null, "sql-count2": 0, "average2": null, "sql-sum2": null, "sql-min2": null, "sql-max2": null, "sql-stddev2": null }
+{ "sql-count1": 0, "average1": null, "sql-sum1": null, "sql-min1": null, "sql-max1": null, "sql-stddev1": null, "sql-stddev_pop1": null, "sql-count2": 0, "average2": null, "sql-sum2": null, "sql-min2": null, "sql-max2": null, "sql-stddev2": null, "sql-stddev_pop2": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_null_rec/agg_null_rec.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_null_rec/agg_null_rec.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_null_rec/agg_null_rec.1.adm
index 425ca45..99d052a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_null_rec/agg_null_rec.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_null_rec/agg_null_rec.1.adm
@@ -1 +1 @@
-{ "sql-count": 2, "average": 26.0, "sql-stddev": 7.0710678118654755, "sql-sum": 52, "sql-min": 21, "sql-max": 31 }
+{ "sql-count": 2, "average": 26.0, "sql-stddev": 7.0710678118654755, "sql-stddev_pop": 5.0, "sql-sum": 52, "sql-min": 21, "sql-max": 31 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_null_rec_1/agg_null_rec.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_null_rec_1/agg_null_rec.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_null_rec_1/agg_null_rec.1.adm
index 4d9b33d..988d2e4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_null_rec_1/agg_null_rec.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_null_rec_1/agg_null_rec.1.adm
@@ -1 +1 @@
-{ "sql-count": 3, "average": 5.32, "sql-sum": 15.96, "sql-stddev": 2.720510431232472E16, "sql-min": 473847, "sql-max": 38473827484738239 }
+{ "sql-count": 3, "average": 5.32, "sql-sum": 15.96, "sql-stddev": 2.720510431232472E16, "sql-stddev_pop": 1.9236913742132196E16, "sql-min": 473847, "sql-max": 38473827484738239 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_number/agg_number.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_number/agg_number.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_number/agg_number.1.adm
index 2ea1357..37f109c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_number/agg_number.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_number/agg_number.1.adm
@@ -1 +1 @@
-{ "sql-count1": 4, "average1": 2.3461845695961844E16, "sql-stddev1": 4.6923691391923688E16, "sql-count2": 4, "average2": 2.3461845695961844E16, "sql-stddev2": 4.6923691391923688E16, "sql-sum1": 9.3847382783847376E16, "sql-min1": 1.0, "sql-max1": 9.3847382783847376E16, "sql-sum2": 9.3847382783847376E16, "sql-min2": 1.0, "sql-max2": 9.3847382783847376E16 }
+{ "sql-count1": 4, "average1": 2.3461845695961844E16, "sql-stddev1": 4.6923691391923688E16, "sql-stddev_pop1": 4.0637108784747104E16, "sql-count2": 4, "average2": 2.3461845695961844E16, "sql-stddev2": 4.6923691391923688E16, "sql-stddev_pop2": 4.0637108784747104E16, "sql-sum1": 9.3847382783847376E16, "sql-min1": 1.0, "sql-max1": 9.3847382783847376E16, "sql-sum2": 9.3847382783847376E16, "sql-min2": 1.0, "sql-max2": 9.3847382783847376E16 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_number_rec/agg_number_rec.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_number_rec/agg_number_rec.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_number_rec/agg_number_rec.1.adm
index fdc01c8..19f61fd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_number_rec/agg_number_rec.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/agg_number_rec/agg_number_rec.1.adm
@@ -1 +1 @@
-{ "sql-count": 3, "average": 1.2824609161579424E16, "sql-stddev": 2.2212874655068836E16, "sql-sum": 3.8473827484738272E16, "sql-min": 2.0, "sql-max": 3.847382748473824E16 }
+{ "sql-count": 3, "average": 1.2824609161579424E16, "sql-stddev": 2.2212874655068836E16, "sql-stddev_pop": 1.8136736208439848E16, "sql-sum": 3.8473827484738272E16, "sql-min": 2.0, "sql-max": 3.847382748473824E16 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/scalar_stddev/scalar_stddev.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/scalar_stddev/scalar_stddev.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/scalar_stddev/scalar_stddev.1.adm
index 325ebd5..16c838c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/scalar_stddev/scalar_stddev.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/scalar_stddev/scalar_stddev.1.adm
@@ -1,6 +1 @@
-1.0
-1.0
-1.0
-1.0
-1.0
-1.0
+{ "stddev": [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ], "stddev_pop": [ 0.816496580927726, 0.816496580927726, 0.816496580927726, 0.816496580927726, 0.816496580927726, 0.816496580927726 ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.1.adm
index 19765bd..eb24dcb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.1.adm
@@ -1 +1 @@
-null
+{ "stddev": [ null ], "stddev_pop": [ null ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/scalar_stddev_null/scalar_stddev_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/scalar_stddev_null/scalar_stddev_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/scalar_stddev_null/scalar_stddev_null.1.adm
index 325ebd5..16c838c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/scalar_stddev_null/scalar_stddev_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/scalar_stddev_null/scalar_stddev_null.1.adm
@@ -1,6 +1 @@
-1.0
-1.0
-1.0
-1.0
-1.0
-1.0
+{ "stddev": [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ], "stddev_pop": [ 0.816496580927726, 0.816496580927726, 0.816496580927726, 0.816496580927726, 0.816496580927726, 0.816496580927726 ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_double/serial_stddev_double.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_double/serial_stddev_double.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_double/serial_stddev_double.1.adm
index d2bef52..4e89687 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_double/serial_stddev_double.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_double/serial_stddev_double.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 0.8944271909999159 }
+{ "gid": 1, "stddev": 0.8944271909999159, "stddev_pop": 0.8 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_double_null/serial_stddev_double_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_double_null/serial_stddev_double_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_double_null/serial_stddev_double_null.1.adm
index c6fb3a0..c71ba21 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_double_null/serial_stddev_double_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_double_null/serial_stddev_double_null.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 2.2212874654736076E16 }
+{ "gid": 1, "stddev": 2.2212874654736076E16, "stddev_pop": 1.8136736208168148E16 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_float/serial_stddev_float.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_float/serial_stddev_float.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_float/serial_stddev_float.1.adm
index d2bef52..4e89687 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_float/serial_stddev_float.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_float/serial_stddev_float.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 0.8944271909999159 }
+{ "gid": 1, "stddev": 0.8944271909999159, "stddev_pop": 0.8 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_float_null/serial_stddev_float_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_float_null/serial_stddev_float_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_float_null/serial_stddev_float_null.1.adm
index 81fb89a..daa09e6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_float_null/serial_stddev_float_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_float_null/serial_stddev_float_null.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 1.0 }
+{ "gid": 1, "stddev": 1.0, "stddev_pop": 0.816496580927726 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int16/serial_stddev_int16.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int16/serial_stddev_int16.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int16/serial_stddev_int16.1.adm
index d2bef52..4e89687 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int16/serial_stddev_int16.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int16/serial_stddev_int16.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 0.8944271909999159 }
+{ "gid": 1, "stddev": 0.8944271909999159, "stddev_pop": 0.8 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int16_null/serial_stddev_int16_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int16_null/serial_stddev_int16_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int16_null/serial_stddev_int16_null.1.adm
index 81fb89a..daa09e6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int16_null/serial_stddev_int16_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int16_null/serial_stddev_int16_null.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 1.0 }
+{ "gid": 1, "stddev": 1.0, "stddev_pop": 0.816496580927726 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int32/serial_stddev_int32.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int32/serial_stddev_int32.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int32/serial_stddev_int32.1.adm
index d2bef52..4e89687 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int32/serial_stddev_int32.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int32/serial_stddev_int32.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 0.8944271909999159 }
+{ "gid": 1, "stddev": 0.8944271909999159, "stddev_pop": 0.8 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int32_null/serial_stddev_int32_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int32_null/serial_stddev_int32_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int32_null/serial_stddev_int32_null.1.adm
index 81fb89a..daa09e6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int32_null/serial_stddev_int32_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int32_null/serial_stddev_int32_null.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 1.0 }
+{ "gid": 1, "stddev": 1.0, "stddev_pop": 0.816496580927726 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int64/serial_stddev_int64.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int64/serial_stddev_int64.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int64/serial_stddev_int64.1.adm
index d2bef52..4e89687 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int64/serial_stddev_int64.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int64/serial_stddev_int64.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 0.8944271909999159 }
+{ "gid": 1, "stddev": 0.8944271909999159, "stddev_pop": 0.8 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int64_null/serial_stddev_int64_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int64_null/serial_stddev_int64_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int64_null/serial_stddev_int64_null.1.adm
index 81fb89a..daa09e6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int64_null/serial_stddev_int64_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int64_null/serial_stddev_int64_null.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 1.0 }
+{ "gid": 1, "stddev": 1.0, "stddev_pop": 0.816496580927726 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int8/serial_stddev_int8.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int8/serial_stddev_int8.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int8/serial_stddev_int8.1.adm
index d2bef52..4e89687 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int8/serial_stddev_int8.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int8/serial_stddev_int8.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 0.8944271909999159 }
+{ "gid": 1, "stddev": 0.8944271909999159, "stddev_pop": 0.8 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int8_null/serial_stddev_int8_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int8_null/serial_stddev_int8_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int8_null/serial_stddev_int8_null.1.adm
index 81fb89a..daa09e6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int8_null/serial_stddev_int8_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_int8_null/serial_stddev_int8_null.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 1.0 }
+{ "gid": 1, "stddev": 1.0, "stddev_pop": 0.816496580927726 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.adm
new file mode 100644
index 0000000..e3b97f5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.adm
@@ -0,0 +1 @@
+[  ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_distinct/stddev_distinct.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_distinct/stddev_distinct.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_distinct/stddev_distinct.1.adm
new file mode 100644
index 0000000..51a2ce7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_distinct/stddev_distinct.1.adm
@@ -0,0 +1 @@
+{ "t1": 10, "t2": null, "t3": 7, "t4": null, "t5": 8, "t6": null, "t7": 5, "t8": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_double/stddev_double.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_double/stddev_double.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_double/stddev_double.1.adm
index d3827e7..653259d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_double/stddev_double.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_double/stddev_double.1.adm
@@ -1 +1 @@
-1.0
+{ "stddev": [ 1.0 ], "stddev_pop": [ 0.816496580927726 ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_double_null/stddev_double_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_double_null/stddev_double_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_double_null/stddev_double_null.1.adm
index 74efe52..4f788be 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_double_null/stddev_double_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_double_null/stddev_double_null.1.adm
@@ -1 +1 @@
-{ "stddev": 0.0 }
+{ "stddev": 0.0, "stddev_pop": 0.0 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_empty_01/stddev_empty_01.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_empty_01/stddev_empty_01.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_empty_01/stddev_empty_01.1.adm
index 19765bd..eb24dcb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_empty_01/stddev_empty_01.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_empty_01/stddev_empty_01.1.adm
@@ -1 +1 @@
-null
+{ "stddev": [ null ], "stddev_pop": [ null ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_empty_02/stddev_empty_02.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_empty_02/stddev_empty_02.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_empty_02/stddev_empty_02.1.adm
index 19765bd..eb24dcb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_empty_02/stddev_empty_02.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_empty_02/stddev_empty_02.1.adm
@@ -1 +1 @@
-null
+{ "stddev": [ null ], "stddev_pop": [ null ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_float/stddev_float.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_float/stddev_float.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_float/stddev_float.1.adm
index d3827e7..653259d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_float/stddev_float.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_float/stddev_float.1.adm
@@ -1 +1 @@
-1.0
+{ "stddev": [ 1.0 ], "stddev_pop": [ 0.816496580927726 ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_float_null/stddev_float_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_float_null/stddev_float_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_float_null/stddev_float_null.1.adm
index 74efe52..4f788be 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_float_null/stddev_float_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_float_null/stddev_float_null.1.adm
@@ -1 +1 @@
-{ "stddev": 0.0 }
+{ "stddev": 0.0, "stddev_pop": 0.0 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int16/stddev_int16.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int16/stddev_int16.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int16/stddev_int16.1.adm
index d3827e7..653259d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int16/stddev_int16.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int16/stddev_int16.1.adm
@@ -1 +1 @@
-1.0
+{ "stddev": [ 1.0 ], "stddev_pop": [ 0.816496580927726 ] }


[4/6] asterixdb git commit: [ASTERIXDB-2459][FUN] Add sttdev_pop() aggregate function

Posted by dl...@apache.org.
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int16_null/stddev_int16_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int16_null/stddev_int16_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int16_null/stddev_int16_null.1.adm
index 74efe52..4f788be 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int16_null/stddev_int16_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int16_null/stddev_int16_null.1.adm
@@ -1 +1 @@
-{ "stddev": 0.0 }
+{ "stddev": 0.0, "stddev_pop": 0.0 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int32/stddev_int32.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int32/stddev_int32.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int32/stddev_int32.1.adm
index d3827e7..653259d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int32/stddev_int32.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int32/stddev_int32.1.adm
@@ -1 +1 @@
-1.0
+{ "stddev": [ 1.0 ], "stddev_pop": [ 0.816496580927726 ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int32_null/stddev_int32_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int32_null/stddev_int32_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int32_null/stddev_int32_null.1.adm
index 74efe52..4f788be 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int32_null/stddev_int32_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int32_null/stddev_int32_null.1.adm
@@ -1 +1 @@
-{ "stddev": 0.0 }
+{ "stddev": 0.0, "stddev_pop": 0.0 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int64/stddev_int64.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int64/stddev_int64.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int64/stddev_int64.1.adm
index d3827e7..653259d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int64/stddev_int64.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int64/stddev_int64.1.adm
@@ -1 +1 @@
-1.0
+{ "stddev": [ 1.0 ], "stddev_pop": [ 0.816496580927726 ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int64_null/stddev_int64_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int64_null/stddev_int64_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int64_null/stddev_int64_null.1.adm
index 74efe52..4f788be 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int64_null/stddev_int64_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int64_null/stddev_int64_null.1.adm
@@ -1 +1 @@
-{ "stddev": 0.0 }
+{ "stddev": 0.0, "stddev_pop": 0.0 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int8/stddev_int8.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int8/stddev_int8.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int8/stddev_int8.1.adm
index d3827e7..653259d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int8/stddev_int8.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int8/stddev_int8.1.adm
@@ -1 +1 @@
-1.0
+{ "stddev": [ 1.0 ], "stddev_pop": [ 0.816496580927726 ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int8_null/stddev_int8_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int8_null/stddev_int8_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int8_null/stddev_int8_null.1.adm
index 43cef5a..20dd54a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int8_null/stddev_int8_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_int8_null/stddev_int8_null.1.adm
@@ -1 +1 @@
-{ "stddev": 26.0 }
+{ "stddev": 26.0, "stddev_pop": 21.228911104120876 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_pop_mixed/stddev_pop_mixed.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_pop_mixed/stddev_pop_mixed.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_pop_mixed/stddev_pop_mixed.1.adm
new file mode 100644
index 0000000..e3b97f5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/stddev_pop_mixed/stddev_pop_mixed.1.adm
@@ -0,0 +1 @@
+[  ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_null/agg_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_null/agg_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_null/agg_null.1.adm
index 979beb0..78a89a3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_null/agg_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_null/agg_null.1.adm
@@ -1 +1 @@
-{ "count1": 1, "average1": null, "sum1": null, "min1": null, "max1": null, "stddev1": null, "count2": 2, "average2": null, "sum2": null, "min2": null, "max2": null, "stddev2": null }
+{ "count1": 1, "average1": null, "sum1": null, "min1": null, "max1": null, "stddev1": null, "stddev_pop1": null, "count2": 2, "average2": null, "sum2": null, "min2": null, "max2": null, "stddev2": null, "stddev_pop2": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_null_rec/agg_null_rec.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_null_rec/agg_null_rec.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_null_rec/agg_null_rec.1.adm
index 7f18cac..054e601 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_null_rec/agg_null_rec.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_null_rec/agg_null_rec.1.adm
@@ -1 +1 @@
-{ "count": 3, "average": null, "stddev": null, "sum": null, "min": null, "max": null }
\ No newline at end of file
+{ "count": 3, "average": null, "stddev": null, "stddev_pop": null, "sum": null, "min": null, "max": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_null_rec_1/agg_null_rec.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_null_rec_1/agg_null_rec.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_null_rec_1/agg_null_rec.1.adm
index 683f829..4be73ca 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_null_rec_1/agg_null_rec.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_null_rec_1/agg_null_rec.1.adm
@@ -1 +1 @@
-{ "count": 3, "average": 5.32, "sum": 15.96, "stddev": 1.0, "min": null, "max": null }
+{ "count": 3, "average": 5.32, "sum": 15.96, "stddev": 1.0, "stddev_pop": 0.816496580927726, "min": null, "max": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_number/agg_number.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_number/agg_number.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_number/agg_number.1.adm
index 7ac56d4..d6c4363 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_number/agg_number.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_number/agg_number.1.adm
@@ -1 +1 @@
-{ "count1": 4, "average1": 2.3461845695961844E16, "stddev1": 4.6923691391923688E16, "count2": 4, "average2": 2.3461845695961844E16, "stddev2": 4.6923691391923688E16, "sum1": 9.3847382783847376E16, "min1": 1.0, "max1": 9.3847382783847376E16, "sum2": 9.3847382783847376E16, "min2": 1.0, "max2": 9.3847382783847376E16 }
+{ "count1": 4, "average1": 2.3461845695961844E16, "stddev1": 4.6923691391923688E16, "stddev_pop1": 4.0637108784747104E16, "count2": 4, "average2": 2.3461845695961844E16, "stddev2": 4.6923691391923688E16, "stddev_pop2": 4.0637108784747104E16, "sum1": 9.3847382783847376E16, "min1": 1.0, "max1": 9.3847382783847376E16, "sum2": 9.3847382783847376E16, "min2": 1.0, "max2": 9.3847382783847376E16 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_number_rec/agg_number_rec.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_number_rec/agg_number_rec.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_number_rec/agg_number_rec.1.adm
index 2e68a7b..633b714 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_number_rec/agg_number_rec.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/agg_number_rec/agg_number_rec.1.adm
@@ -1 +1 @@
-{ "count": 3, "average": 1.2824609161579424E16, "stddev": 2.2212874655068836E16, "sum": 3.8473827484738272E16, "min": 2.0, "max": 3.847382748473824E16 }
+{ "count": 3, "average": 1.2824609161579424E16, "stddev": 2.2212874655068836E16, "stddev_pop": 1.8136736208439848E16, "sum": 3.8473827484738272E16, "min": 2.0, "max": 3.847382748473824E16 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/scalar_stddev/scalar_stddev.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/scalar_stddev/scalar_stddev.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/scalar_stddev/scalar_stddev.1.adm
index 325ebd5..16c838c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/scalar_stddev/scalar_stddev.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/scalar_stddev/scalar_stddev.1.adm
@@ -1,6 +1 @@
-1.0
-1.0
-1.0
-1.0
-1.0
-1.0
+{ "stddev": [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ], "stddev_pop": [ 0.816496580927726, 0.816496580927726, 0.816496580927726, 0.816496580927726, 0.816496580927726, 0.816496580927726 ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/scalar_stddev_empty/scalar_stddev_empty.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/scalar_stddev_empty/scalar_stddev_empty.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/scalar_stddev_empty/scalar_stddev_empty.1.adm
index 19765bd..eb24dcb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/scalar_stddev_empty/scalar_stddev_empty.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/scalar_stddev_empty/scalar_stddev_empty.1.adm
@@ -1 +1 @@
-null
+{ "stddev": [ null ], "stddev_pop": [ null ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/scalar_stddev_null/scalar_stddev_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/scalar_stddev_null/scalar_stddev_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/scalar_stddev_null/scalar_stddev_null.1.adm
index aef8b7f..a8cdc43 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/scalar_stddev_null/scalar_stddev_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/scalar_stddev_null/scalar_stddev_null.1.adm
@@ -1,6 +1 @@
-null
-null
-null
-null
-null
-null
+{ "stddev": [ null, null, null, null, null, null ], "stddev_pop": [ null, null, null, null, null, null ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_double/serial_stddev_double.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_double/serial_stddev_double.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_double/serial_stddev_double.1.adm
index d2bef52..4e89687 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_double/serial_stddev_double.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_double/serial_stddev_double.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 0.8944271909999159 }
+{ "gid": 1, "stddev": 0.8944271909999159, "stddev_pop": 0.8 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_double_null/serial_stddev_double_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_double_null/serial_stddev_double_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_double_null/serial_stddev_double_null.1.adm
index c65635a..0405f84 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_double_null/serial_stddev_double_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_double_null/serial_stddev_double_null.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": null }
+{ "gid": 1, "stddev": null, "stddev_pop": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_float/serial_stddev_float.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_float/serial_stddev_float.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_float/serial_stddev_float.1.adm
index d2bef52..4e89687 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_float/serial_stddev_float.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_float/serial_stddev_float.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 0.8944271909999159 }
+{ "gid": 1, "stddev": 0.8944271909999159, "stddev_pop": 0.8 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_float_null/serial_stddev_float_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_float_null/serial_stddev_float_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_float_null/serial_stddev_float_null.1.adm
index c65635a..0405f84 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_float_null/serial_stddev_float_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_float_null/serial_stddev_float_null.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": null }
+{ "gid": 1, "stddev": null, "stddev_pop": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int16/serial_stddev_int16.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int16/serial_stddev_int16.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int16/serial_stddev_int16.1.adm
index d2bef52..4e89687 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int16/serial_stddev_int16.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int16/serial_stddev_int16.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 0.8944271909999159 }
+{ "gid": 1, "stddev": 0.8944271909999159, "stddev_pop": 0.8 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int16_null/serial_stddev_int16_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int16_null/serial_stddev_int16_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int16_null/serial_stddev_int16_null.1.adm
index c65635a..0405f84 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int16_null/serial_stddev_int16_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int16_null/serial_stddev_int16_null.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": null }
+{ "gid": 1, "stddev": null, "stddev_pop": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int32/serial_stddev_int32.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int32/serial_stddev_int32.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int32/serial_stddev_int32.1.adm
index d2bef52..4e89687 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int32/serial_stddev_int32.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int32/serial_stddev_int32.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 0.8944271909999159 }
+{ "gid": 1, "stddev": 0.8944271909999159, "stddev_pop": 0.8 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int32_null/serial_stddev_int32_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int32_null/serial_stddev_int32_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int32_null/serial_stddev_int32_null.1.adm
index c65635a..0405f84 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int32_null/serial_stddev_int32_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int32_null/serial_stddev_int32_null.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": null }
+{ "gid": 1, "stddev": null, "stddev_pop": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int64/serial_stddev_int64.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int64/serial_stddev_int64.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int64/serial_stddev_int64.1.adm
index d2bef52..4e89687 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int64/serial_stddev_int64.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int64/serial_stddev_int64.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 0.8944271909999159 }
+{ "gid": 1, "stddev": 0.8944271909999159, "stddev_pop": 0.8 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int64_null/serial_stddev_int64_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int64_null/serial_stddev_int64_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int64_null/serial_stddev_int64_null.1.adm
index c65635a..0405f84 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int64_null/serial_stddev_int64_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int64_null/serial_stddev_int64_null.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": null }
+{ "gid": 1, "stddev": null, "stddev_pop": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int8/serial_stddev_int8.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int8/serial_stddev_int8.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int8/serial_stddev_int8.1.adm
index d2bef52..4e89687 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int8/serial_stddev_int8.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int8/serial_stddev_int8.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": 0.8944271909999159 }
+{ "gid": 1, "stddev": 0.8944271909999159, "stddev_pop": 0.8 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int8_null/serial_stddev_int8_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int8_null/serial_stddev_int8_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int8_null/serial_stddev_int8_null.1.adm
index c65635a..0405f84 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int8_null/serial_stddev_int8_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_int8_null/serial_stddev_int8_null.1.adm
@@ -1 +1 @@
-{ "gid": 1, "stddev": null }
+{ "gid": 1, "stddev": null, "stddev_pop": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.adm
new file mode 100644
index 0000000..8ca0475
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.adm
@@ -0,0 +1 @@
+{ "gid": 1, "stddev_pop": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_distinct/stddev_distinct.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_distinct/stddev_distinct.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_distinct/stddev_distinct.1.adm
new file mode 100644
index 0000000..17f7b05
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_distinct/stddev_distinct.1.adm
@@ -0,0 +1 @@
+{ "t1": 10, "t2": null, "t3": null, "t4": null, "t5": 8, "t6": null, "t7": null, "t8": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_double/stddev_double.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_double/stddev_double.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_double/stddev_double.1.adm
index d3827e7..653259d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_double/stddev_double.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_double/stddev_double.1.adm
@@ -1 +1 @@
-1.0
+{ "stddev": [ 1.0 ], "stddev_pop": [ 0.816496580927726 ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_double_null/stddev_double_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_double_null/stddev_double_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_double_null/stddev_double_null.1.adm
index f41cf92..07f36d3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_double_null/stddev_double_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_double_null/stddev_double_null.1.adm
@@ -1 +1 @@
-{ "stddev": null }
+{ "stddev": null, "stddev_pop": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_empty_01/stddev_empty_01.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_empty_01/stddev_empty_01.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_empty_01/stddev_empty_01.1.adm
index 19765bd..eb24dcb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_empty_01/stddev_empty_01.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_empty_01/stddev_empty_01.1.adm
@@ -1 +1 @@
-null
+{ "stddev": [ null ], "stddev_pop": [ null ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_empty_02/stddev_empty_02.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_empty_02/stddev_empty_02.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_empty_02/stddev_empty_02.1.adm
index 19765bd..eb24dcb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_empty_02/stddev_empty_02.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_empty_02/stddev_empty_02.1.adm
@@ -1 +1 @@
-null
+{ "stddev": [ null ], "stddev_pop": [ null ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_float/stddev_float.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_float/stddev_float.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_float/stddev_float.1.adm
index d3827e7..653259d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_float/stddev_float.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_float/stddev_float.1.adm
@@ -1 +1 @@
-1.0
+{ "stddev": [ 1.0 ], "stddev_pop": [ 0.816496580927726 ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_float_null/stddev_float_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_float_null/stddev_float_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_float_null/stddev_float_null.1.adm
index f41cf92..07f36d3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_float_null/stddev_float_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_float_null/stddev_float_null.1.adm
@@ -1 +1 @@
-{ "stddev": null }
+{ "stddev": null, "stddev_pop": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int16/stddev_int16.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int16/stddev_int16.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int16/stddev_int16.1.adm
index d3827e7..653259d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int16/stddev_int16.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int16/stddev_int16.1.adm
@@ -1 +1 @@
-1.0
+{ "stddev": [ 1.0 ], "stddev_pop": [ 0.816496580927726 ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int16_null/stddev_int16_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int16_null/stddev_int16_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int16_null/stddev_int16_null.1.adm
index f41cf92..07f36d3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int16_null/stddev_int16_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int16_null/stddev_int16_null.1.adm
@@ -1 +1 @@
-{ "stddev": null }
+{ "stddev": null, "stddev_pop": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int32/stddev_int32.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int32/stddev_int32.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int32/stddev_int32.1.adm
index d3827e7..653259d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int32/stddev_int32.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int32/stddev_int32.1.adm
@@ -1 +1 @@
-1.0
+{ "stddev": [ 1.0 ], "stddev_pop": [ 0.816496580927726 ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int32_null/stddev_int32_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int32_null/stddev_int32_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int32_null/stddev_int32_null.1.adm
index f41cf92..07f36d3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int32_null/stddev_int32_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int32_null/stddev_int32_null.1.adm
@@ -1 +1 @@
-{ "stddev": null }
+{ "stddev": null, "stddev_pop": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int64/stddev_int64.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int64/stddev_int64.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int64/stddev_int64.1.adm
index d3827e7..653259d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int64/stddev_int64.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int64/stddev_int64.1.adm
@@ -1 +1 @@
-1.0
+{ "stddev": [ 1.0 ], "stddev_pop": [ 0.816496580927726 ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int64_null/stddev_int64_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int64_null/stddev_int64_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int64_null/stddev_int64_null.1.adm
index f41cf92..07f36d3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int64_null/stddev_int64_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int64_null/stddev_int64_null.1.adm
@@ -1 +1 @@
-{ "stddev": null }
+{ "stddev": null, "stddev_pop": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int8/stddev_int8.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int8/stddev_int8.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int8/stddev_int8.1.adm
index d3827e7..653259d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int8/stddev_int8.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int8/stddev_int8.1.adm
@@ -1 +1 @@
-1.0
+{ "stddev": [ 1.0 ], "stddev_pop": [ 0.816496580927726 ] }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int8_null/stddev_int8_null.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int8_null/stddev_int8_null.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int8_null/stddev_int8_null.1.adm
index f41cf92..07f36d3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int8_null/stddev_int8_null.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_int8_null/stddev_int8_null.1.adm
@@ -1 +1 @@
-{ "stddev": null }
+{ "stddev": null, "stddev_pop": null }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_pop_mixed/stddev_pop_mixed.1.adm
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_pop_mixed/stddev_pop_mixed.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_pop_mixed/stddev_pop_mixed.1.adm
new file mode 100644
index 0000000..e3b97f5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/stddev_pop_mixed/stddev_pop_mixed.1.adm
@@ -0,0 +1 @@
+[  ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_null/agg_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_null/agg_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_null/agg_null.3.ast
index 7405394..0e8f3ea 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_null/agg_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_null/agg_null.3.ast
@@ -55,6 +55,15 @@ RecordConstructor [
     ]
   )
   (
+    LiteralExpr [STRING] [sql-stddev_pop1]
+    :
+    FunctionCall asterix.sql-stddev_pop@1[
+      OrderedListConstructor [
+        LiteralExpr [NULL]
+      ]
+    ]
+  )
+  (
     LiteralExpr [STRING] [sql-count2]
     :
     FunctionCall asterix.sql-count@1[
@@ -114,4 +123,14 @@ RecordConstructor [
       ]
     ]
   )
+  (
+    LiteralExpr [STRING] [sql-stddev_pop2]
+    :
+    FunctionCall asterix.sql-stddev_pop@1[
+      UnorderedListConstructor [
+        LiteralExpr [NULL]
+        LiteralExpr [NULL]
+      ]
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_null_rec/agg_null_rec.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_null_rec/agg_null_rec.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_null_rec/agg_null_rec.3.ast
index 167b753..96cbb48 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_null_rec/agg_null_rec.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_null_rec/agg_null_rec.3.ast
@@ -115,4 +115,23 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [sql-stddev_pop]
+    :
+    FunctionCall asterix.sql-stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$t ]
+          Field=valplus
+        ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.Test]
+          ]
+          AS Variable [ Name=$t ]
+        ]
+      )
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.ast
index 97c3cfa..c411817 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.ast
@@ -147,4 +147,30 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [sql-stddev_pop]
+    :
+    FunctionCall asterix.sql-stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$i ]
+          Field=valplus
+        ]
+        ]
+        FROM [          (
+            SELECT ELEMENT [
+            Variable [ Name=$t ]
+            ]
+            FROM [              FunctionCall asterix.dataset@1[
+                LiteralExpr [STRING] [test.Test]
+              ]
+              AS Variable [ Name=$t ]
+            ]
+          )
+          AS Variable [ Name=$i ]
+        ]
+      )
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_number/agg_number.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_number/agg_number.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_number/agg_number.3.ast
index bfa0267..cbaebaa 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_number/agg_number.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_number/agg_number.3.ast
@@ -97,6 +97,22 @@ RecordConstructor [
     ]
   )
   (
+    LiteralExpr [STRING] [sql-stddev_pop1]
+    :
+    FunctionCall asterix.sql-stddev_pop@1[
+      OrderedListConstructor [
+        FunctionCall null.float@1[
+          LiteralExpr [STRING] [2.0]
+        ]
+        FunctionCall null.double@1[
+          LiteralExpr [STRING] [3.0]
+        ]
+        LiteralExpr [LONG] [93847382783847382]
+        LiteralExpr [LONG] [1]
+      ]
+    ]
+  )
+  (
     LiteralExpr [STRING] [sql-count2]
     :
     FunctionCall asterix.sql-count@1[
@@ -192,4 +208,20 @@ RecordConstructor [
       ]
     ]
   )
+  (
+    LiteralExpr [STRING] [sql-stddev_pop2]
+    :
+    FunctionCall asterix.sql-stddev_pop@1[
+      UnorderedListConstructor [
+        FunctionCall null.float@1[
+          LiteralExpr [STRING] [2.0]
+        ]
+        FunctionCall null.double@1[
+          LiteralExpr [STRING] [3.0]
+        ]
+        LiteralExpr [LONG] [93847382783847382]
+        LiteralExpr [LONG] [1]
+      ]
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_number_rec/agg_number_rec.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_number_rec/agg_number_rec.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_number_rec/agg_number_rec.3.ast
index 167b753..96cbb48 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_number_rec/agg_number_rec.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/agg_number_rec/agg_number_rec.3.ast
@@ -115,4 +115,23 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [sql-stddev_pop]
+    :
+    FunctionCall asterix.sql-stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$t ]
+          Field=valplus
+        ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.Test]
+          ]
+          AS Variable [ Name=$t ]
+        ]
+      )
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_stddev/scalar_stddev.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_stddev/scalar_stddev.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_stddev/scalar_stddev.3.ast
index a206740..c9a7865 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_stddev/scalar_stddev.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_stddev/scalar_stddev.3.ast
@@ -1,105 +1,222 @@
 DataverseUse test
 Query:
-Let Variable [ Name=$i8 ]
-  :=
-  FunctionCall asterix.sql-stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.int8@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.int8@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.int8@1[
-        LiteralExpr [STRING] [3]
-      ]
-    ]
-  ]
-Let Variable [ Name=$i16 ]
-  :=
-  FunctionCall asterix.sql-stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.int16@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.int16@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.int16@1[
-        LiteralExpr [STRING] [3]
-      ]
-    ]
-  ]
-Let Variable [ Name=$i32 ]
-  :=
-  FunctionCall asterix.sql-stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.int32@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.int32@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.int32@1[
-        LiteralExpr [STRING] [3]
-      ]
-    ]
-  ]
-Let Variable [ Name=$i64 ]
-  :=
-  FunctionCall asterix.sql-stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.int64@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.int64@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.int64@1[
-        LiteralExpr [STRING] [3]
-      ]
-    ]
-  ]
-Let Variable [ Name=$f ]
-  :=
-  FunctionCall asterix.sql-stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.float@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.float@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.float@1[
-        LiteralExpr [STRING] [3]
-      ]
-    ]
-  ]
-Let Variable [ Name=$d ]
-  :=
-  FunctionCall asterix.sql-stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.double@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.double@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.double@1[
-        LiteralExpr [STRING] [3]
-      ]
-    ]
-  ]
-SELECT ELEMENT [
-Variable [ Name=$i ]
-]
-FROM [  OrderedListConstructor [
-    Variable [ Name=$i8 ]
-    Variable [ Name=$i16 ]
-    Variable [ Name=$i32 ]
-    Variable [ Name=$i64 ]
-    Variable [ Name=$f ]
-    Variable [ Name=$d ]
-  ]
-  AS Variable [ Name=$i ]
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      Let Variable [ Name=$i8 ]
+        :=
+        FunctionCall asterix.sql-stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$i16 ]
+        :=
+        FunctionCall asterix.sql-stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$i32 ]
+        :=
+        FunctionCall asterix.sql-stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$i64 ]
+        :=
+        FunctionCall asterix.sql-stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$f ]
+        :=
+        FunctionCall asterix.sql-stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$d ]
+        :=
+        FunctionCall asterix.sql-stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      SELECT ELEMENT [
+      Variable [ Name=$i ]
+      ]
+      FROM [        OrderedListConstructor [
+          Variable [ Name=$i8 ]
+          Variable [ Name=$i16 ]
+          Variable [ Name=$i32 ]
+          Variable [ Name=$i64 ]
+          Variable [ Name=$f ]
+          Variable [ Name=$d ]
+        ]
+        AS Variable [ Name=$i ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      Let Variable [ Name=$i8 ]
+        :=
+        FunctionCall asterix.sql-stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$i16 ]
+        :=
+        FunctionCall asterix.sql-stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$i32 ]
+        :=
+        FunctionCall asterix.sql-stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$i64 ]
+        :=
+        FunctionCall asterix.sql-stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$f ]
+        :=
+        FunctionCall asterix.sql-stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$d ]
+        :=
+        FunctionCall asterix.sql-stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      SELECT ELEMENT [
+      Variable [ Name=$i ]
+      ]
+      FROM [        OrderedListConstructor [
+          Variable [ Name=$i8 ]
+          Variable [ Name=$i16 ]
+          Variable [ Name=$i32 ]
+          Variable [ Name=$i64 ]
+          Variable [ Name=$f ]
+          Variable [ Name=$d ]
+        ]
+        AS Variable [ Name=$i ]
+      ]
+    )
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.3.ast
index 6954f95..3fd8fec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_stddev_empty/scalar_stddev_empty.3.ast
@@ -1,7 +1,27 @@
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.sql-stddev@1[
-  OrderedListConstructor [
-  ]
-]
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev@1[
+        OrderedListConstructor [
+        ]
+      ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev_pop@1[
+        OrderedListConstructor [
+        ]
+      ]
+      ]
+    )
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_stddev_null/scalar_stddev_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_stddev_null/scalar_stddev_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_stddev_null/scalar_stddev_null.3.ast
index 61692e0..5615328 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_stddev_null/scalar_stddev_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/scalar_stddev_null/scalar_stddev_null.3.ast
@@ -1,111 +1,234 @@
 DataverseUse test
 Query:
-Let Variable [ Name=$i8 ]
-  :=
-  FunctionCall asterix.sql-stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.int8@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.int8@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.int8@1[
-        LiteralExpr [STRING] [3]
-      ]
-      LiteralExpr [NULL]
-    ]
-  ]
-Let Variable [ Name=$i16 ]
-  :=
-  FunctionCall asterix.sql-stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.int16@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.int16@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.int16@1[
-        LiteralExpr [STRING] [3]
-      ]
-      LiteralExpr [NULL]
-    ]
-  ]
-Let Variable [ Name=$i32 ]
-  :=
-  FunctionCall asterix.sql-stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.int32@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.int32@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.int32@1[
-        LiteralExpr [STRING] [3]
-      ]
-      LiteralExpr [NULL]
-    ]
-  ]
-Let Variable [ Name=$i64 ]
-  :=
-  FunctionCall asterix.sql-stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.int64@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.int64@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.int64@1[
-        LiteralExpr [STRING] [3]
-      ]
-      LiteralExpr [NULL]
-    ]
-  ]
-Let Variable [ Name=$f ]
-  :=
-  FunctionCall asterix.sql-stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.float@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.float@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.float@1[
-        LiteralExpr [STRING] [3]
-      ]
-      LiteralExpr [NULL]
-    ]
-  ]
-Let Variable [ Name=$d ]
-  :=
-  FunctionCall asterix.sql-stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.double@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.double@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.double@1[
-        LiteralExpr [STRING] [3]
-      ]
-      LiteralExpr [NULL]
-    ]
-  ]
-SELECT ELEMENT [
-Variable [ Name=$i ]
-]
-FROM [  OrderedListConstructor [
-    Variable [ Name=$i8 ]
-    Variable [ Name=$i16 ]
-    Variable [ Name=$i32 ]
-    Variable [ Name=$i64 ]
-    Variable [ Name=$f ]
-    Variable [ Name=$d ]
-  ]
-  AS Variable [ Name=$i ]
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      Let Variable [ Name=$i8 ]
+        :=
+        FunctionCall asterix.sql-stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$i16 ]
+        :=
+        FunctionCall asterix.sql-stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$i32 ]
+        :=
+        FunctionCall asterix.sql-stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$i64 ]
+        :=
+        FunctionCall asterix.sql-stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$f ]
+        :=
+        FunctionCall asterix.sql-stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$d ]
+        :=
+        FunctionCall asterix.sql-stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      SELECT ELEMENT [
+      Variable [ Name=$i ]
+      ]
+      FROM [        OrderedListConstructor [
+          Variable [ Name=$i8 ]
+          Variable [ Name=$i16 ]
+          Variable [ Name=$i32 ]
+          Variable [ Name=$i64 ]
+          Variable [ Name=$f ]
+          Variable [ Name=$d ]
+        ]
+        AS Variable [ Name=$i ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      Let Variable [ Name=$i8 ]
+        :=
+        FunctionCall asterix.sql-stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$i16 ]
+        :=
+        FunctionCall asterix.sql-stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$i32 ]
+        :=
+        FunctionCall asterix.sql-stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$i64 ]
+        :=
+        FunctionCall asterix.sql-stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$f ]
+        :=
+        FunctionCall asterix.sql-stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$d ]
+        :=
+        FunctionCall asterix.sql-stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      SELECT ELEMENT [
+      Variable [ Name=$i ]
+      ]
+      FROM [        OrderedListConstructor [
+          Variable [ Name=$i8 ]
+          Variable [ Name=$i16 ]
+          Variable [ Name=$i32 ]
+          Variable [ Name=$i64 ]
+          Variable [ Name=$f ]
+          Variable [ Name=$d ]
+        ]
+        AS Variable [ Name=$i ]
+      ]
+    )
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_double/serial_stddev_double.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_double/serial_stddev_double.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_double/serial_stddev_double.3.ast
index 3bd59ff..d9e097b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_double/serial_stddev_double.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_double/serial_stddev_double.3.ast
@@ -20,6 +20,23 @@ FunctionCall asterix.sql-stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.sql-stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#3 ]
+        Field=t
+      ]
+      Field=val
+    ]
+    ]
+    FROM [      Variable [ Name=#1 ]
+      AS Variable [ Name=#3 ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_double_null/serial_stddev_double_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_double_null/serial_stddev_double_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_double_null/serial_stddev_double_null.3.ast
index 8dae584..923fc41 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_double_null/serial_stddev_double_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_double_null/serial_stddev_double_null.3.ast
@@ -20,6 +20,23 @@ FunctionCall asterix.sql-stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.sql-stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#3 ]
+        Field=t
+      ]
+      Field=valplus
+    ]
+    ]
+    FROM [      Variable [ Name=#1 ]
+      AS Variable [ Name=#3 ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_empty/serial_stddev_empty.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_empty/serial_stddev_empty.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_empty/serial_stddev_empty.3.ast
index 3bd59ff..d9e097b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_empty/serial_stddev_empty.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_empty/serial_stddev_empty.3.ast
@@ -20,6 +20,23 @@ FunctionCall asterix.sql-stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.sql-stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#3 ]
+        Field=t
+      ]
+      Field=val
+    ]
+    ]
+    FROM [      Variable [ Name=#1 ]
+      AS Variable [ Name=#3 ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_float/serial_stddev_float.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_float/serial_stddev_float.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_float/serial_stddev_float.3.ast
index 3bd59ff..d9e097b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_float/serial_stddev_float.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_float/serial_stddev_float.3.ast
@@ -20,6 +20,23 @@ FunctionCall asterix.sql-stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.sql-stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#3 ]
+        Field=t
+      ]
+      Field=val
+    ]
+    ]
+    FROM [      Variable [ Name=#1 ]
+      AS Variable [ Name=#3 ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_float_null/serial_stddev_float_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_float_null/serial_stddev_float_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_float_null/serial_stddev_float_null.3.ast
index 8dae584..923fc41 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_float_null/serial_stddev_float_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_float_null/serial_stddev_float_null.3.ast
@@ -20,6 +20,23 @@ FunctionCall asterix.sql-stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.sql-stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#3 ]
+        Field=t
+      ]
+      Field=valplus
+    ]
+    ]
+    FROM [      Variable [ Name=#1 ]
+      AS Variable [ Name=#3 ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int16/serial_stddev_int16.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int16/serial_stddev_int16.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int16/serial_stddev_int16.3.ast
index 3bd59ff..d9e097b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int16/serial_stddev_int16.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int16/serial_stddev_int16.3.ast
@@ -20,6 +20,23 @@ FunctionCall asterix.sql-stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.sql-stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#3 ]
+        Field=t
+      ]
+      Field=val
+    ]
+    ]
+    FROM [      Variable [ Name=#1 ]
+      AS Variable [ Name=#3 ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int16_null/serial_stddev_int16_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int16_null/serial_stddev_int16_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int16_null/serial_stddev_int16_null.3.ast
index 8dae584..923fc41 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int16_null/serial_stddev_int16_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int16_null/serial_stddev_int16_null.3.ast
@@ -20,6 +20,23 @@ FunctionCall asterix.sql-stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.sql-stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#3 ]
+        Field=t
+      ]
+      Field=valplus
+    ]
+    ]
+    FROM [      Variable [ Name=#1 ]
+      AS Variable [ Name=#3 ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int32/serial_stddev_int32.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int32/serial_stddev_int32.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int32/serial_stddev_int32.3.ast
index 3bd59ff..d9e097b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int32/serial_stddev_int32.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int32/serial_stddev_int32.3.ast
@@ -20,6 +20,23 @@ FunctionCall asterix.sql-stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.sql-stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#3 ]
+        Field=t
+      ]
+      Field=val
+    ]
+    ]
+    FROM [      Variable [ Name=#1 ]
+      AS Variable [ Name=#3 ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int32_null/serial_stddev_int32_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int32_null/serial_stddev_int32_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int32_null/serial_stddev_int32_null.3.ast
index 8dae584..923fc41 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int32_null/serial_stddev_int32_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int32_null/serial_stddev_int32_null.3.ast
@@ -20,6 +20,23 @@ FunctionCall asterix.sql-stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.sql-stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#3 ]
+        Field=t
+      ]
+      Field=valplus
+    ]
+    ]
+    FROM [      Variable [ Name=#1 ]
+      AS Variable [ Name=#3 ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int64/serial_stddev_int64.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int64/serial_stddev_int64.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int64/serial_stddev_int64.3.ast
index 3bd59ff..d9e097b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int64/serial_stddev_int64.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int64/serial_stddev_int64.3.ast
@@ -20,6 +20,23 @@ FunctionCall asterix.sql-stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.sql-stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#3 ]
+        Field=t
+      ]
+      Field=val
+    ]
+    ]
+    FROM [      Variable [ Name=#1 ]
+      AS Variable [ Name=#3 ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int64_null/serial_stddev_int64_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int64_null/serial_stddev_int64_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int64_null/serial_stddev_int64_null.3.ast
index 8dae584..923fc41 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int64_null/serial_stddev_int64_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int64_null/serial_stddev_int64_null.3.ast
@@ -20,6 +20,23 @@ FunctionCall asterix.sql-stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.sql-stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#3 ]
+        Field=t
+      ]
+      Field=valplus
+    ]
+    ]
+    FROM [      Variable [ Name=#1 ]
+      AS Variable [ Name=#3 ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int8/serial_stddev_int8.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int8/serial_stddev_int8.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int8/serial_stddev_int8.3.ast
index 3bd59ff..d9e097b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int8/serial_stddev_int8.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int8/serial_stddev_int8.3.ast
@@ -20,6 +20,23 @@ FunctionCall asterix.sql-stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.sql-stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#3 ]
+        Field=t
+      ]
+      Field=val
+    ]
+    ]
+    FROM [      Variable [ Name=#1 ]
+      AS Variable [ Name=#3 ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int8_null/serial_stddev_int8_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int8_null/serial_stddev_int8_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int8_null/serial_stddev_int8_null.3.ast
index 8dae584..923fc41 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int8_null/serial_stddev_int8_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_int8_null/serial_stddev_int8_null.3.ast
@@ -20,6 +20,23 @@ FunctionCall asterix.sql-stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.sql-stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      FieldAccessor [
+        Variable [ Name=#3 ]
+        Field=t
+      ]
+      Field=valplus
+    ]
+    ]
+    FROM [      Variable [ Name=#1 ]
+      AS Variable [ Name=#3 ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_int64_null.1.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_int64_null.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_int64_null.1.ast
new file mode 100644
index 0000000..a61c9df
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_int64_null.1.ast
@@ -0,0 +1,9 @@
+DataverseUse test
+TypeDecl TestType [
+  open RecordType {
+    id : bigint,
+    gid : bigint,
+    val : double
+  }
+]
+DatasetDecl Test(TestType) partitioned by [[id]]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_int64_null.2.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_int64_null.2.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_int64_null.2.ast
new file mode 100644
index 0000000..916a59e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_int64_null.2.ast
@@ -0,0 +1 @@
+DataverseUse test

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_int64_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_int64_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_int64_null.3.ast
new file mode 100644
index 0000000..2e6d6ae
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_int64_null.3.ast
@@ -0,0 +1,40 @@
+DataverseUse test
+Query:
+SELECT [
+Variable [ Name=$gid ]
+gid
+FunctionCall asterix.sql-stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=$g ]
+      Field=valplus
+    ]
+    ]
+    FROM [      Variable [ Name=$g ]
+      AS Variable [ Name=$g ]
+    ]
+  )
+]
+stddev_pop
+]
+FROM [  FunctionCall asterix.dataset@1[
+    LiteralExpr [STRING] [test.Test]
+  ]
+  AS Variable [ Name=$t ]
+]
+Groupby
+  Variable [ Name=$gid ]
+  :=
+  FieldAccessor [
+    Variable [ Name=$t ]
+    Field=gid
+  ]
+  GROUP AS Variable [ Name=$g ]
+  (
+    valplus:=FunctionCall asterix.field-access-by-name@2[
+  Variable [ Name=$t ]
+  LiteralExpr [STRING] [valplus]
+]
+  )
+

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_double/stddev_double.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_double/stddev_double.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_double/stddev_double.3.ast
index c0e7dac..a156d16 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_double/stddev_double.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_double/stddev_double.3.ast
@@ -1,19 +1,51 @@
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.sql-stddev@1[
+RecordConstructor [
   (
-    SELECT ELEMENT [
-    Variable [ Name=$x ]
-    ]
-    FROM [      OrderedListConstructor [
-        LiteralExpr [DOUBLE] [1.0]
-        LiteralExpr [DOUBLE] [2.0]
-        FunctionCall null.double@1[
-          LiteralExpr [STRING] [3.0]
-        ]
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              LiteralExpr [DOUBLE] [1.0]
+              LiteralExpr [DOUBLE] [2.0]
+              FunctionCall null.double@1[
+                LiteralExpr [STRING] [3.0]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
       ]
-      AS Variable [ Name=$x ]
-    ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev_pop@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              LiteralExpr [DOUBLE] [1.0]
+              LiteralExpr [DOUBLE] [2.0]
+              FunctionCall null.double@1[
+                LiteralExpr [STRING] [3.0]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
+      ]
+      ]
+    )
   )
-]
 ]


[2/6] asterixdb git commit: [ASTERIXDB-2459][FUN] Add sttdev_pop() aggregate function

Posted by dl...@apache.org.
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int32/stddev_int32.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int32/stddev_int32.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int32/stddev_int32.3.ast
index f8eb00d..626c894 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int32/stddev_int32.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int32/stddev_int32.3.ast
@@ -1,18 +1,48 @@
 DataverseUse test
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.stddev@1[
+RecordConstructor [
   (
-    SELECT ELEMENT [
-    Variable [ Name=$x ]
-    ]
-    FROM [      OrderedListConstructor [
-        LiteralExpr [LONG] [1]
-        LiteralExpr [LONG] [2]
-        LiteralExpr [LONG] [3]
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              LiteralExpr [LONG] [1]
+              LiteralExpr [LONG] [2]
+              LiteralExpr [LONG] [3]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
       ]
-      AS Variable [ Name=$x ]
-    ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev_pop@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              LiteralExpr [LONG] [1]
+              LiteralExpr [LONG] [2]
+              LiteralExpr [LONG] [3]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
+      ]
+      ]
+    )
   )
-]
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int32_null/stddev_int32_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int32_null/stddev_int32_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int32_null/stddev_int32_null.3.ast
index 8863b52..c76244c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int32_null/stddev_int32_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int32_null/stddev_int32_null.3.ast
@@ -20,4 +20,23 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    FunctionCall asterix.stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$x ]
+          Field=int32Field
+        ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.Numeric]
+          ]
+          AS Variable [ Name=$x ]
+        ]
+      )
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int64/stddev_int64.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int64/stddev_int64.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int64/stddev_int64.3.ast
index 5ddf2ae..64f7c03 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int64/stddev_int64.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int64/stddev_int64.3.ast
@@ -1,24 +1,60 @@
 DataverseUse test
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.stddev@1[
+RecordConstructor [
   (
-    SELECT ELEMENT [
-    Variable [ Name=$x ]
-    ]
-    FROM [      OrderedListConstructor [
-        FunctionCall test.int64@1[
-          LiteralExpr [STRING] [1]
-        ]
-        FunctionCall test.int64@1[
-          LiteralExpr [STRING] [2]
-        ]
-        FunctionCall test.int64@1[
-          LiteralExpr [STRING] [3]
-        ]
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.int64@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.int64@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.int64@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
       ]
-      AS Variable [ Name=$x ]
-    ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev_pop@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.int64@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.int64@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.int64@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
+      ]
+      ]
+    )
   )
-]
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int64_null/stddev_int64_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int64_null/stddev_int64_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int64_null/stddev_int64_null.3.ast
index 490ab20..27c0067 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int64_null/stddev_int64_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int64_null/stddev_int64_null.3.ast
@@ -20,4 +20,23 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    FunctionCall asterix.stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$x ]
+          Field=int64Field
+        ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.Numeric]
+          ]
+          AS Variable [ Name=$x ]
+        ]
+      )
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int8/stddev_int8.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int8/stddev_int8.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int8/stddev_int8.3.ast
index ca12465..c3eada1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int8/stddev_int8.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int8/stddev_int8.3.ast
@@ -1,24 +1,60 @@
 DataverseUse test
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.stddev@1[
+RecordConstructor [
   (
-    SELECT ELEMENT [
-    Variable [ Name=$x ]
-    ]
-    FROM [      OrderedListConstructor [
-        FunctionCall test.int8@1[
-          LiteralExpr [STRING] [1]
-        ]
-        FunctionCall test.int8@1[
-          LiteralExpr [STRING] [2]
-        ]
-        FunctionCall test.int8@1[
-          LiteralExpr [STRING] [3]
-        ]
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.int8@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.int8@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.int8@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
       ]
-      AS Variable [ Name=$x ]
-    ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev_pop@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.int8@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.int8@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.int8@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
+      ]
+      ]
+    )
   )
-]
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int8_null/stddev_int8_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int8_null/stddev_int8_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int8_null/stddev_int8_null.3.ast
index 65e8156..db4982a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int8_null/stddev_int8_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int8_null/stddev_int8_null.3.ast
@@ -20,4 +20,23 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    FunctionCall asterix.stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$x ]
+          Field=int8Field
+        ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.Numeric]
+          ]
+          AS Variable [ Name=$x ]
+        ]
+      )
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_pop_mixed/stddev_pop_mixed.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_pop_mixed/stddev_pop_mixed.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_pop_mixed/stddev_pop_mixed.3.ast
new file mode 100644
index 0000000..cc3e8fe
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_pop_mixed/stddev_pop_mixed.3.ast
@@ -0,0 +1,22 @@
+Query:
+SELECT ELEMENT [
+FunctionCall asterix.stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    Variable [ Name=$x ]
+    ]
+    FROM [      OrderedListConstructor [
+        FunctionCall null.float@1[
+          LiteralExpr [STRING] [2.0]
+        ]
+        LiteralExpr [STRING] [hello world]
+        LiteralExpr [LONG] [93847382783847382]
+        FunctionCall null.date@1[
+          LiteralExpr [STRING] [2013-01-01]
+        ]
+      ]
+      AS Variable [ Name=$x ]
+    ]
+  )
+]
+]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
index f235d54..2016ea4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
@@ -218,6 +218,18 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="aggregate">
+      <compilation-unit name="stddev_pop_mixed">
+        <output-dir compare="Text">stddev_pop_mixed</output-dir>
+        <expected-error>Type incompatibility: function agg-stddev_pop gets incompatible input values: string and float</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate">
+      <compilation-unit name="serial_stddev_pop_mixed">
+        <output-dir compare="Text">serial_stddev_pop_mixed</output-dir>
+        <expected-error>Type incompatibility: function agg-stddev_pop gets incompatible input values: string and float</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate">
       <compilation-unit name="agg_number">
         <output-dir compare="Text">agg_number</output-dir>
       </compilation-unit>
@@ -699,6 +711,11 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="aggregate">
+      <compilation-unit name="stddev_distinct">
+        <output-dir compare="Text">stddev_distinct</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate">
       <compilation-unit name="sum_double">
         <output-dir compare="Text">sum_double</output-dir>
       </compilation-unit>
@@ -841,6 +858,18 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="aggregate-sql">
+      <compilation-unit name="serial_stddev_pop_mixed">
+        <output-dir compare="Text">serial_stddev_pop_mixed</output-dir>
+        <expected-error>Invalid item type: function agg-stddev_pop cannot process item type string in an input array (or multiset)</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_pop_mixed">
+        <output-dir compare="Text">stddev_pop_mixed</output-dir>
+        <expected-error>Type incompatibility: function agg-stddev_pop gets incompatible input values: string and float</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
       <compilation-unit name="agg_number">
         <output-dir compare="Text">agg_number</output-dir>
       </compilation-unit>
@@ -1251,6 +1280,11 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_distinct">
+        <output-dir compare="Text">stddev_distinct</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
       <compilation-unit name="sum_double">
         <output-dir compare="Text">sum_double</output-dir>
       </compilation-unit>

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp_parser.xml
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp_parser.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp_parser.xml
index f1cf5bb..cd77828 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp_parser.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp_parser.xml
@@ -134,6 +134,18 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="aggregate">
+      <compilation-unit name="stddev_pop_mixed">
+        <output-dir compare="AST">stddev_pop_mixed</output-dir>
+        <expected-error>org.apache.asterix.common.exceptions.AsterixException</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate">
+      <compilation-unit name="serial_stddev_pop_mixed">
+        <output-dir compare="AST">serial_stddev_pop_mixed</output-dir>
+        <expected-error>org.apache.asterix.common.exceptions.AsterixException</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate">
       <compilation-unit name="agg_number">
         <output-dir compare="AST">agg_number</output-dir>
       </compilation-unit>
@@ -525,8 +537,8 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="aggregate">
-      <compilation-unit name="serial_stddev_pop_int8_null">
-        <output-dir compare="AST">serial_stddev_pop_int8_null</output-dir>
+      <compilation-unit name="serial_stddev_int8_null">
+        <output-dir compare="AST">serial_stddev_int8_null</output-dir>
       </compilation-unit>
     </test-case>
     <test-case FilePath="aggregate">
@@ -737,6 +749,18 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="aggregate-sql">
+      <compilation-unit name="serial_stddev_pop_mixed">
+        <output-dir compare="AST">serial_stddev_pop_mixed</output-dir>
+        <expected-error>org.apache.asterix.common.exceptions.AsterixException</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_pop_mixed">
+        <output-dir compare="AST">stddev_pop_mixed</output-dir>
+        <expected-error>org.apache.asterix.common.exceptions.AsterixException</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
       <compilation-unit name="agg_number">
         <output-dir compare="AST">agg_number</output-dir>
       </compilation-unit>
@@ -967,6 +991,21 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="aggregate-sql">
+      <compilation-unit name="scalar_stddev_pop">
+        <output-dir compare="AST">scalar_stddev_pop</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="scalar_stddev_pop_empty">
+        <output-dir compare="AST">scalar_stddev_pop_empty</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="scalar_stddev_pop_null">
+        <output-dir compare="AST">scalar_stddev_pop_null</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
       <compilation-unit name="scalar_sum">
         <output-dir compare="AST">scalar_sum</output-dir>
       </compilation-unit>
@@ -1047,6 +1086,71 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="aggregate-sql">
+      <compilation-unit name="serial_stddev_pop_double">
+        <output-dir compare="AST">serial_stddev_pop_double</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="serial_stddev_pop_double_null">
+        <output-dir compare="AST">serial_stddev_pop_double_null</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="serial_stddev_pop_empty">
+        <output-dir compare="AST">serial_stddev_pop_empty</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="serial_stddev_pop_float">
+        <output-dir compare="AST">serial_stddev_pop_float</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="serial_stddev_pop_float_null">
+        <output-dir compare="AST">serial_stddev_pop_float_null</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="serial_stddev_pop_int16">
+        <output-dir compare="AST">serial_stddev_pop_int16</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="serial_stddev_pop_int16_null">
+        <output-dir compare="AST">serial_stddev_pop_int16_null</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="serial_stddev_pop_int32">
+        <output-dir compare="AST">serial_stddev_pop_int32</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="serial_stddev_pop_int32_null">
+        <output-dir compare="AST">serial_stddev_pop_int32_null</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="serial_stddev_pop_int64">
+        <output-dir compare="AST">serial_stddev_pop_int64</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="serial_stddev_pop_int64_null">
+        <output-dir compare="AST">serial_stddev_pop_int64_null</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="serial_stddev_pop_int8">
+        <output-dir compare="AST">serial_stddev_pop_int8</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="serial_stddev_pop_int8_null">
+        <output-dir compare="AST">serial_stddev_pop_int8_null</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
       <compilation-unit name="stddev_double">
         <output-dir compare="AST">stddev_double</output-dir>
       </compilation-unit>
@@ -1117,6 +1221,76 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_pop_double">
+        <output-dir compare="AST">stddev_pop_double</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_pop_double_null">
+        <output-dir compare="AST">stddev_pop_double_null</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_pop_empty_01">
+        <output-dir compare="AST">stddev_pop_empty_01</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_pop_empty_02">
+        <output-dir compare="AST">stddev_pop_empty_02</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_pop_float">
+        <output-dir compare="AST">stddev_pop_float</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_pop_float_null">
+        <output-dir compare="AST">stddev_pop_float_null</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_pop_int16">
+        <output-dir compare="AST">stddev_pop_int16</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_pop_int16_null">
+        <output-dir compare="AST">stddev_pop_int16_null</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_pop_int32">
+        <output-dir compare="AST">stddev_pop_int32</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_pop_int32_null">
+        <output-dir compare="AST">stddev_pop_int32_null</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_pop_int64">
+        <output-dir compare="AST">stddev_pop_int64</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_pop_int64_null">
+        <output-dir compare="AST">stddev_pop_int64_null</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_pop_int8">
+        <output-dir compare="AST">stddev_pop_int8</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
+      <compilation-unit name="stddev_pop_int8_null">
+        <output-dir compare="AST">stddev_pop_int8_null</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="aggregate-sql">
       <compilation-unit name="sum_double">
         <output-dir compare="AST">sum_double</output-dir>
       </compilation-unit>

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-doc/src/main/markdown/builtins/9_aggregate_sql.md
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-doc/src/main/markdown/builtins/9_aggregate_sql.md b/asterixdb/asterix-doc/src/main/markdown/builtins/9_aggregate_sql.md
index 2036bc4..e9a5739 100644
--- a/asterixdb/asterix-doc/src/main/markdown/builtins/9_aggregate_sql.md
+++ b/asterixdb/asterix-doc/src/main/markdown/builtins/9_aggregate_sql.md
@@ -195,6 +195,32 @@ SQL++ builtin aggregate functions (e.g., `ARRAY_MIN`, `ARRAY_MAX`,
 
         1.4591664287073858
 
+### array_stddev_pop ###
+
+ * Syntax:
+
+        array_stddev_pop(num_collection)
+
+ * Gets the standard deviation value of the non-null and non-missing numeric items in the given collection.
+ * Arguments:
+    * `num_collection` could be:
+        * an `array` or `multiset` containing numeric values, `null`s or `missing`s,
+        * or, a `null` value,
+        * or, a `missing` value.
+ * Return Value:
+    * a `double` value representing the average of the non-null and non-missing numbers in the given collection,
+    * `null` is returned if the input is `null` or `missing`,
+    * `null` is returned if the given collection does not contain any non-null and non-missing items,
+    * any other non-array and non-multiset input value will cause a type error,
+    * any other non-numeric value in the input collection will cause a type error.
+
+ * Example:
+
+        array_stddev_pop( [1.2, 2.3, 3.4, 0, null] );
+
+ * The expected result is:
+
+        1.2636751956100112
 
 ### strict_count ###
  * Syntax:
@@ -352,3 +378,28 @@ SQL++ builtin aggregate functions (e.g., `ARRAY_MIN`, `ARRAY_MAX`,
  * The expected result is:
 
         100.0
+
+### strict_stddev_pop ###
+ * Syntax:
+
+        strict_stddev_pop(num_collection)
+
+ * Gets the standard deviation value of the numeric items in the given collection.
+ * Arguments:
+    * `num_collection` could be:
+        * an `array` or `multiset` containing numeric values, `null`s or `missing`s,
+        * or, a `null` value,
+        * or, a `missing` value.
+ * Return Value:
+    * a `double` value representing the average of the numbers in the given collection,
+    * `null` is returned if the input is `null` or `missing`,
+    * `null` is returned if there is a `null` or `missing` in the input collection,
+    * any other non-numeric value in the input collection will cause a type error.
+
+ * Example:
+
+        strict_stddev_pop( [100, 200, 300] );
+
+ * The expected result is:
+
+        81.64965809277261

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
index 1ff6e57..4813be9 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
@@ -482,6 +482,14 @@ public class BuiltinFunctions {
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-local-sampling", FunctionIdentifier.VARARGS);
     public static final FunctionIdentifier RANGE_MAP =
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-range-map", 1);
+    public static final FunctionIdentifier STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-stddev_pop", 1);
+    public static final FunctionIdentifier GLOBAL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-global-stddev_pop", 1);
+    public static final FunctionIdentifier INTERMEDIATE_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-intermediate-stddev_pop", 1);
+    public static final FunctionIdentifier LOCAL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-local-stddev_pop", 1);
 
     public static final FunctionIdentifier SCALAR_AVG = new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "avg", 1);
     public static final FunctionIdentifier SCALAR_COUNT =
@@ -501,6 +509,12 @@ public class BuiltinFunctions {
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "global-stddev", 1);
     public static final FunctionIdentifier SCALAR_LOCAL_STDDEV =
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "local-stddev", 1);
+    public static final FunctionIdentifier SCALAR_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "stddev_pop", 1);
+    public static final FunctionIdentifier SCALAR_GLOBAL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "global-stddev_pop", 1);
+    public static final FunctionIdentifier SCALAR_LOCAL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "local-stddev_pop", 1);
 
     // serializable aggregate functions
     public static final FunctionIdentifier SERIAL_AVG =
@@ -525,6 +539,14 @@ public class BuiltinFunctions {
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "local-stddev-serial", 1);
     public static final FunctionIdentifier SERIAL_INTERMEDIATE_STDDEV =
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "intermediate-stddev-serial", 1);
+    public static final FunctionIdentifier SERIAL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "stddev_pop-serial", 1);
+    public static final FunctionIdentifier SERIAL_GLOBAL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "global-stddev_pop-serial", 1);
+    public static final FunctionIdentifier SERIAL_LOCAL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "local-stddev_pop-serial", 1);
+    public static final FunctionIdentifier SERIAL_INTERMEDIATE_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "intermediate-stddev_pop-serial", 1);
 
     // distinct aggregate functions
     public static final FunctionIdentifier COUNT_DISTINCT =
@@ -547,6 +569,14 @@ public class BuiltinFunctions {
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-min-distinct", 1);
     public static final FunctionIdentifier SCALAR_MIN_DISTINCT =
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "min-distinct", 1);
+    public static final FunctionIdentifier STDDEV_DISTINCT =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-stddev-distinct", 1);
+    public static final FunctionIdentifier SCALAR_STDDEV_DISTINCT =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "stddev-distinct", 1);
+    public static final FunctionIdentifier STDDEV_POP_DISTINCT =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-stddev_pop-distinct", 1);
+    public static final FunctionIdentifier SCALAR_STDDEV_POP_DISTINCT =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "stddev_pop-distinct", 1);
 
     // sql aggregate functions
     public static final FunctionIdentifier SQL_AVG =
@@ -579,6 +609,14 @@ public class BuiltinFunctions {
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-global-sql-stddev", 1);
     public static final FunctionIdentifier LOCAL_SQL_STDDEV =
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-local-sql-stddev", 1);
+    public static final FunctionIdentifier SQL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-sql-stddev_pop", 1);
+    public static final FunctionIdentifier INTERMEDIATE_SQL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "intermediate-agg-sql-stddev_pop", 1);
+    public static final FunctionIdentifier GLOBAL_SQL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-global-sql-stddev_pop", 1);
+    public static final FunctionIdentifier LOCAL_SQL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-local-sql-stddev_pop", 1);
 
     public static final FunctionIdentifier SCALAR_SQL_AVG =
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "sql-avg", 1);
@@ -600,6 +638,12 @@ public class BuiltinFunctions {
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "global-sql-stddev", 1);
     public static final FunctionIdentifier SCALAR_LOCAL_SQL_STDDEV =
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "local-sql-stddev", 1);
+    public static final FunctionIdentifier SCALAR_SQL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "sql-stddev_pop", 1);
+    public static final FunctionIdentifier SCALAR_GLOBAL_SQL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "global-sql-stddev_pop", 1);
+    public static final FunctionIdentifier SCALAR_LOCAL_SQL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "local-sql-stddev_pop", 1);
 
     // serializable sql aggregate functions
     public static final FunctionIdentifier SERIAL_SQL_AVG =
@@ -624,6 +668,14 @@ public class BuiltinFunctions {
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "intermediate-sql-stddev-serial", 1);
     public static final FunctionIdentifier SERIAL_LOCAL_SQL_STDDEV =
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "local-sql-stddev-serial", 1);
+    public static final FunctionIdentifier SERIAL_SQL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "sql-stddev_pop-serial", 1);
+    public static final FunctionIdentifier SERIAL_GLOBAL_SQL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "global-sql-stddev_pop-serial", 1);
+    public static final FunctionIdentifier SERIAL_INTERMEDIATE_SQL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "intermediate-sql-stddev_pop-serial", 1);
+    public static final FunctionIdentifier SERIAL_LOCAL_SQL_STDDEV_POP =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "local-sql-stddev_pop-serial", 1);
 
     // distinct sql aggregate functions
     public static final FunctionIdentifier SQL_COUNT_DISTINCT =
@@ -646,6 +698,14 @@ public class BuiltinFunctions {
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-sql-min-distinct", 1);
     public static final FunctionIdentifier SCALAR_SQL_MIN_DISTINCT =
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "sql-min-distinct", 1);
+    public static final FunctionIdentifier SQL_STDDEV_DISTINCT =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-sql-stddev-distinct", 1);
+    public static final FunctionIdentifier SCALAR_SQL_STDDEV_DISTINCT =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "sql-stddev-distinct", 1);
+    public static final FunctionIdentifier SQL_STDDEV_POP_DISTINCT =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "agg-sql-stddev_pop-distinct", 1);
+    public static final FunctionIdentifier SCALAR_SQL_STDDEV_POP_DISTINCT =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "sql-stddev_pop-distinct", 1);
 
     // unnesting functions
     public static final FunctionIdentifier SCAN_COLLECTION =
@@ -1388,6 +1448,9 @@ public class BuiltinFunctions {
         addPrivateFunction(GLOBAL_STDDEV, NullableDoubleTypeComputer.INSTANCE, true);
         addPrivateFunction(LOCAL_SAMPLING, ListOfSamplesTypeComputer.INSTANCE, true);
         addPrivateFunction(RANGE_MAP, ABinaryTypeComputer.INSTANCE, true);
+        addPrivateFunction(LOCAL_STDDEV_POP, LocalSingleVarStatisticsTypeComputer.INSTANCE, true);
+        addFunction(STDDEV_POP, NullableDoubleTypeComputer.INSTANCE, true);
+        addPrivateFunction(GLOBAL_STDDEV_POP, NullableDoubleTypeComputer.INSTANCE, true);
 
         addPrivateFunction(SERIAL_SQL_AVG, NullableDoubleTypeComputer.INSTANCE, true);
         addPrivateFunction(SERIAL_SQL_COUNT, AInt64TypeComputer.INSTANCE, true);
@@ -1412,6 +1475,14 @@ public class BuiltinFunctions {
         addPrivateFunction(SERIAL_GLOBAL_SQL_STDDEV, NullableDoubleTypeComputer.INSTANCE, true);
         addPrivateFunction(SERIAL_LOCAL_SQL_STDDEV, LocalSingleVarStatisticsTypeComputer.INSTANCE, true);
         addPrivateFunction(SERIAL_INTERMEDIATE_SQL_STDDEV, LocalSingleVarStatisticsTypeComputer.INSTANCE, true);
+        addFunction(SCALAR_STDDEV_POP, NullableDoubleTypeComputer.INSTANCE, true);
+        addPrivateFunction(SCALAR_GLOBAL_STDDEV_POP, NullableDoubleTypeComputer.INSTANCE, true);
+        addPrivateFunction(SCALAR_LOCAL_STDDEV_POP, NullableDoubleTypeComputer.INSTANCE, true);
+        addPrivateFunction(INTERMEDIATE_STDDEV_POP, LocalSingleVarStatisticsTypeComputer.INSTANCE, true);
+        addPrivateFunction(SERIAL_SQL_STDDEV_POP, NullableDoubleTypeComputer.INSTANCE, true);
+        addPrivateFunction(SERIAL_GLOBAL_SQL_STDDEV_POP, NullableDoubleTypeComputer.INSTANCE, true);
+        addPrivateFunction(SERIAL_LOCAL_SQL_STDDEV_POP, LocalSingleVarStatisticsTypeComputer.INSTANCE, true);
+        addPrivateFunction(SERIAL_INTERMEDIATE_SQL_STDDEV_POP, LocalSingleVarStatisticsTypeComputer.INSTANCE, true);
 
         addFunction(SQL_AVG, NullableDoubleTypeComputer.INSTANCE, true);
         addPrivateFunction(GLOBAL_SQL_AVG, NullableDoubleTypeComputer.INSTANCE, true);
@@ -1439,6 +1510,13 @@ public class BuiltinFunctions {
         addFunction(SCALAR_SQL_STDDEV, NullableDoubleTypeComputer.INSTANCE, true);
         addPrivateFunction(SCALAR_GLOBAL_SQL_STDDEV, NullableDoubleTypeComputer.INSTANCE, true);
         addPrivateFunction(SCALAR_LOCAL_SQL_STDDEV, NullableDoubleTypeComputer.INSTANCE, true);
+        addFunction(SQL_STDDEV_POP, NullableDoubleTypeComputer.INSTANCE, true);
+        addPrivateFunction(GLOBAL_SQL_STDDEV_POP, NullableDoubleTypeComputer.INSTANCE, true);
+        addPrivateFunction(LOCAL_SQL_STDDEV_POP, LocalSingleVarStatisticsTypeComputer.INSTANCE, true);
+        addPrivateFunction(INTERMEDIATE_SQL_STDDEV_POP, LocalSingleVarStatisticsTypeComputer.INSTANCE, true);
+        addFunction(SCALAR_SQL_STDDEV_POP, NullableDoubleTypeComputer.INSTANCE, true);
+        addPrivateFunction(SCALAR_GLOBAL_SQL_STDDEV_POP, NullableDoubleTypeComputer.INSTANCE, true);
+        addPrivateFunction(SCALAR_LOCAL_SQL_STDDEV_POP, NullableDoubleTypeComputer.INSTANCE, true);
 
         addPrivateFunction(SERIAL_AVG, NullableDoubleTypeComputer.INSTANCE, true);
         addPrivateFunction(SERIAL_COUNT, AInt64TypeComputer.INSTANCE, true);
@@ -1451,6 +1529,10 @@ public class BuiltinFunctions {
         addPrivateFunction(SERIAL_GLOBAL_STDDEV, NullableDoubleTypeComputer.INSTANCE, true);
         addPrivateFunction(SERIAL_LOCAL_STDDEV, LocalSingleVarStatisticsTypeComputer.INSTANCE, true);
         addPrivateFunction(SERIAL_INTERMEDIATE_STDDEV, LocalSingleVarStatisticsTypeComputer.INSTANCE, true);
+        addPrivateFunction(SERIAL_STDDEV_POP, NullableDoubleTypeComputer.INSTANCE, true);
+        addPrivateFunction(SERIAL_GLOBAL_STDDEV_POP, NullableDoubleTypeComputer.INSTANCE, true);
+        addPrivateFunction(SERIAL_LOCAL_STDDEV_POP, LocalSingleVarStatisticsTypeComputer.INSTANCE, true);
+        addPrivateFunction(SERIAL_INTERMEDIATE_STDDEV_POP, LocalSingleVarStatisticsTypeComputer.INSTANCE, true);
 
         // Distinct aggregate functions
 
@@ -1479,6 +1561,16 @@ public class BuiltinFunctions {
         addFunction(SQL_MIN_DISTINCT, MinMaxAggTypeComputer.INSTANCE, true);
         addFunction(SCALAR_SQL_MIN_DISTINCT, ScalarVersionOfAggregateResultType.INSTANCE, true);
 
+        addFunction(STDDEV_DISTINCT, NullableDoubleTypeComputer.INSTANCE, true);
+        addFunction(SCALAR_STDDEV_DISTINCT, NullableDoubleTypeComputer.INSTANCE, true);
+        addFunction(SQL_STDDEV_DISTINCT, NullableDoubleTypeComputer.INSTANCE, true);
+        addFunction(SCALAR_SQL_STDDEV_DISTINCT, NullableDoubleTypeComputer.INSTANCE, true);
+
+        addFunction(STDDEV_POP_DISTINCT, NullableDoubleTypeComputer.INSTANCE, true);
+        addFunction(SCALAR_STDDEV_POP_DISTINCT, NullableDoubleTypeComputer.INSTANCE, true);
+        addFunction(SQL_STDDEV_POP_DISTINCT, NullableDoubleTypeComputer.INSTANCE, true);
+        addFunction(SCALAR_SQL_STDDEV_POP_DISTINCT, NullableDoubleTypeComputer.INSTANCE, true);
+
         // Similarity functions
         addFunction(EDIT_DISTANCE_CONTAINS, OrderedListOfAnyTypeComputer.INSTANCE, true);
         addFunction(SIMILARITY_JACCARD, AFloatTypeComputer.INSTANCE, true);
@@ -1828,6 +1920,43 @@ public class BuiltinFunctions {
         addIntermediateAgg(SERIAL_GLOBAL_STDDEV, SERIAL_INTERMEDIATE_STDDEV);
         addGlobalAgg(SERIAL_STDDEV, SERIAL_GLOBAL_STDDEV);
 
+        // STDDEV DISTINCT
+
+        addDistinctAgg(STDDEV_DISTINCT, SCALAR_STDDEV);
+        addScalarAgg(STDDEV_DISTINCT, SCALAR_STDDEV_DISTINCT);
+
+        // STDDEV_POP
+
+        addAgg(STDDEV_POP);
+        addAgg(LOCAL_STDDEV_POP);
+        addAgg(GLOBAL_STDDEV_POP);
+        addLocalAgg(STDDEV_POP, LOCAL_STDDEV_POP);
+        addIntermediateAgg(STDDEV_POP, INTERMEDIATE_STDDEV_POP);
+        addIntermediateAgg(LOCAL_STDDEV_POP, INTERMEDIATE_STDDEV_POP);
+        addIntermediateAgg(GLOBAL_STDDEV_POP, INTERMEDIATE_STDDEV_POP);
+        addGlobalAgg(STDDEV_POP, GLOBAL_STDDEV_POP);
+
+        addScalarAgg(STDDEV_POP, SCALAR_STDDEV_POP);
+        addScalarAgg(GLOBAL_STDDEV_POP, SCALAR_GLOBAL_STDDEV_POP);
+        addScalarAgg(LOCAL_STDDEV_POP, SCALAR_LOCAL_STDDEV_POP);
+
+        addSerialAgg(STDDEV_POP, SERIAL_STDDEV_POP);
+        addSerialAgg(LOCAL_STDDEV_POP, SERIAL_LOCAL_STDDEV_POP);
+        addSerialAgg(GLOBAL_STDDEV_POP, SERIAL_GLOBAL_STDDEV_POP);
+        addAgg(SERIAL_STDDEV_POP);
+        addAgg(SERIAL_LOCAL_STDDEV_POP);
+        addAgg(SERIAL_GLOBAL_STDDEV_POP);
+        addLocalAgg(SERIAL_STDDEV_POP, SERIAL_LOCAL_STDDEV_POP);
+        addIntermediateAgg(SERIAL_STDDEV_POP, SERIAL_INTERMEDIATE_STDDEV_POP);
+        addIntermediateAgg(SERIAL_LOCAL_STDDEV_POP, SERIAL_INTERMEDIATE_STDDEV_POP);
+        addIntermediateAgg(SERIAL_GLOBAL_STDDEV_POP, SERIAL_INTERMEDIATE_STDDEV_POP);
+        addGlobalAgg(SERIAL_STDDEV_POP, SERIAL_GLOBAL_STDDEV_POP);
+
+        // STDDEV_POP DISTINCT
+
+        addDistinctAgg(STDDEV_POP_DISTINCT, SCALAR_STDDEV_POP);
+        addScalarAgg(STDDEV_POP_DISTINCT, SCALAR_STDDEV_POP_DISTINCT);
+
         // FIRST_ELEMENT
 
         addAgg(SCALAR_FIRST_ELEMENT);
@@ -1947,11 +2076,48 @@ public class BuiltinFunctions {
         addIntermediateAgg(SERIAL_GLOBAL_SQL_STDDEV, SERIAL_INTERMEDIATE_SQL_STDDEV);
         addGlobalAgg(SERIAL_SQL_STDDEV, SERIAL_GLOBAL_SQL_STDDEV);
 
+        // SQL STDDEV_POP
+
+        addAgg(SQL_STDDEV_POP);
+        addAgg(LOCAL_SQL_STDDEV_POP);
+        addAgg(GLOBAL_SQL_STDDEV_POP);
+        addLocalAgg(SQL_STDDEV_POP, LOCAL_SQL_STDDEV_POP);
+        addIntermediateAgg(SQL_STDDEV_POP, INTERMEDIATE_SQL_STDDEV_POP);
+        addIntermediateAgg(LOCAL_SQL_STDDEV_POP, INTERMEDIATE_SQL_STDDEV_POP);
+        addIntermediateAgg(GLOBAL_SQL_STDDEV_POP, INTERMEDIATE_SQL_STDDEV_POP);
+        addGlobalAgg(SQL_STDDEV_POP, GLOBAL_SQL_STDDEV_POP);
+
+        addScalarAgg(SQL_STDDEV_POP, SCALAR_SQL_STDDEV_POP);
+        addScalarAgg(GLOBAL_SQL_STDDEV_POP, SCALAR_GLOBAL_SQL_STDDEV_POP);
+        addScalarAgg(LOCAL_SQL_STDDEV_POP, SCALAR_LOCAL_SQL_STDDEV_POP);
+
+        addSerialAgg(SQL_STDDEV_POP, SERIAL_SQL_STDDEV_POP);
+        addSerialAgg(LOCAL_SQL_STDDEV_POP, SERIAL_LOCAL_SQL_STDDEV_POP);
+        addSerialAgg(GLOBAL_SQL_STDDEV_POP, SERIAL_GLOBAL_SQL_STDDEV_POP);
+        addAgg(SERIAL_SQL_STDDEV_POP);
+        addAgg(SERIAL_LOCAL_SQL_STDDEV_POP);
+        addAgg(SERIAL_GLOBAL_SQL_STDDEV_POP);
+        addLocalAgg(SERIAL_SQL_STDDEV_POP, SERIAL_LOCAL_SQL_STDDEV_POP);
+        addIntermediateAgg(SERIAL_SQL_STDDEV_POP, SERIAL_INTERMEDIATE_SQL_STDDEV_POP);
+        addIntermediateAgg(SERIAL_LOCAL_SQL_STDDEV_POP, SERIAL_INTERMEDIATE_SQL_STDDEV_POP);
+        addIntermediateAgg(SERIAL_GLOBAL_SQL_STDDEV_POP, SERIAL_INTERMEDIATE_SQL_STDDEV_POP);
+        addGlobalAgg(SERIAL_SQL_STDDEV_POP, SERIAL_GLOBAL_SQL_STDDEV_POP);
+
         // SQL AVG DISTINCT
 
         addDistinctAgg(SQL_AVG_DISTINCT, SCALAR_SQL_AVG);
         addScalarAgg(SQL_AVG_DISTINCT, SCALAR_SQL_AVG_DISTINCT);
 
+        // SQL STDDEV DISTINCT
+
+        addDistinctAgg(SQL_STDDEV_DISTINCT, SCALAR_SQL_STDDEV);
+        addScalarAgg(SQL_STDDEV_DISTINCT, SCALAR_SQL_STDDEV_DISTINCT);
+
+        // SQL STDDEV_POP DISTINCT
+
+        addDistinctAgg(SQL_STDDEV_POP_DISTINCT, SCALAR_SQL_STDDEV_POP);
+        addScalarAgg(SQL_STDDEV_POP_DISTINCT, SCALAR_SQL_STDDEV_POP_DISTINCT);
+
         // SQL COUNT
 
         addAgg(SQL_COUNT);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarSqlStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarSqlStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarSqlStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..b880222
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarSqlStddevPopAggregateDescriptor.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.asterix.runtime.aggregates.scalar;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.std.SqlStddevPopAggregateDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+
+public class ScalarSqlStddevPopAggregateDescriptor extends AbstractScalarAggregateDescriptor {
+
+    private static final long serialVersionUID = 1L;
+
+    public final static FunctionIdentifier FID = BuiltinFunctions.SCALAR_SQL_STDDEV_POP;
+
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new ScalarSqlStddevPopAggregateDescriptor(
+                    SqlStddevPopAggregateDescriptor.FACTORY.createFunctionDescriptor());
+        }
+    };
+
+    private ScalarSqlStddevPopAggregateDescriptor(IFunctionDescriptor aggFuncDesc) {
+        super(aggFuncDesc);
+    }
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return FID;
+    }
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..2a566a8
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarStddevPopAggregateDescriptor.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.asterix.runtime.aggregates.scalar;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.std.StddevPopAggregateDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+
+public class ScalarStddevPopAggregateDescriptor extends AbstractScalarAggregateDescriptor {
+
+    private static final long serialVersionUID = 1L;
+
+    public final static FunctionIdentifier FID = BuiltinFunctions.SCALAR_STDDEV_POP;
+
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new ScalarStddevPopAggregateDescriptor(
+                    StddevPopAggregateDescriptor.FACTORY.createFunctionDescriptor());
+        }
+    };
+
+    private ScalarStddevPopAggregateDescriptor(IFunctionDescriptor aggFuncDesc) {
+        super(aggFuncDesc);
+    }
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return FID;
+    }
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableSingleVariableStatisticsAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableSingleVariableStatisticsAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableSingleVariableStatisticsAggregateFunction.java
index 0b16b68..d537043 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableSingleVariableStatisticsAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableSingleVariableStatisticsAggregateFunction.java
@@ -272,7 +272,7 @@ public abstract class AbstractSerializableSingleVariableStatisticsAggregateFunct
         }
     }
 
-    protected void finishStddevFinalResults(byte[] state, int start, int len, DataOutput result)
+    protected void finishStddevFinalResults(byte[] state, int start, int len, DataOutput result, int delta)
             throws HyracksDataException {
         double m2 = BufferSerDeUtil.getDouble(state, start + M2_OFFSET);
         long count = BufferSerDeUtil.getLong(state, start + COUNT_OFFSET);
@@ -281,7 +281,7 @@ public abstract class AbstractSerializableSingleVariableStatisticsAggregateFunct
             if (count <= 1 || aggType == ATypeTag.NULL) {
                 nullSerde.serialize(ANull.NULL, result);
             } else {
-                aDouble.setValue(Math.sqrt(m2 / (count - 1)));
+                aDouble.setValue(Math.sqrt(m2 / (count - delta)));
                 doubleSerde.serialize(aDouble, result);
             }
         } catch (IOException e) {

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalSqlStddevAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalSqlStddevAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalSqlStddevAggregateDescriptor.java
index d06c6aa..b3270d9 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalSqlStddevAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalSqlStddevAggregateDescriptor.java
@@ -55,7 +55,7 @@ public class SerializableGlobalSqlStddevAggregateDescriptor
             @Override
             public ISerializedAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx)
                     throws HyracksDataException {
-                return new SerializableGlobalSqlStddevAggregateFunction(args, ctx, sourceLoc);
+                return new SerializableGlobalSqlStddevAggregateFunction(args, ctx, false, sourceLoc);
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalSqlStddevAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalSqlStddevAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalSqlStddevAggregateFunction.java
index 1be87f6..8bfd405 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalSqlStddevAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalSqlStddevAggregateFunction.java
@@ -32,9 +32,18 @@ import java.io.DataOutput;
 public class SerializableGlobalSqlStddevAggregateFunction
         extends AbstractSerializableSingleVariableStatisticsAggregateFunction {
 
+    private final boolean isPop;
+    private final int delta;
+
     public SerializableGlobalSqlStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context,
-            SourceLocation sourceLoc) throws HyracksDataException {
+            boolean isPop, SourceLocation sourceLoc) throws HyracksDataException {
         super(args, context, sourceLoc);
+        this.isPop = isPop;
+        if (isPop) {
+            delta = 0;
+        } else {
+            delta = 1;
+        }
     }
 
     @Override
@@ -44,7 +53,7 @@ public class SerializableGlobalSqlStddevAggregateFunction
 
     @Override
     public void finish(byte[] state, int start, int len, DataOutput result) throws HyracksDataException {
-        finishStddevFinalResults(state, start, len, result);
+        finishStddevFinalResults(state, start, len, result, delta);
     }
 
     @Override
@@ -58,7 +67,11 @@ public class SerializableGlobalSqlStddevAggregateFunction
 
     @Override
     protected FunctionIdentifier getFunctionIdentifier() {
-        return BuiltinFunctions.STDDEV;
+        if (isPop) {
+            return BuiltinFunctions.STDDEV_POP;
+        } else {
+            return BuiltinFunctions.STDDEV;
+        }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalSqlStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalSqlStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalSqlStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..1c080e2
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalSqlStddevPopAggregateDescriptor.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.runtime.aggregates.serializable.std;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.base.AbstractSerializableAggregateFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class SerializableGlobalSqlStddevPopAggregateDescriptor
+        extends AbstractSerializableAggregateFunctionDynamicDescriptor {
+
+    private static final long serialVersionUID = 1L;
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new SerializableGlobalSqlStddevPopAggregateDescriptor();
+        }
+    };
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.SERIAL_GLOBAL_SQL_STDDEV_POP;
+    }
+
+    @Override
+    public ISerializedAggregateEvaluatorFactory createSerializableAggregateEvaluatorFactory(
+            final IScalarEvaluatorFactory[] args) {
+        return new ISerializedAggregateEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public ISerializedAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx)
+                    throws HyracksDataException {
+                return new SerializableGlobalSqlStddevAggregateFunction(args, ctx, true, sourceLoc);
+            }
+        };
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalStddevAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalStddevAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalStddevAggregateDescriptor.java
index f17ef2f..ae78504 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalStddevAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalStddevAggregateDescriptor.java
@@ -55,7 +55,7 @@ public class SerializableGlobalStddevAggregateDescriptor
             @Override
             public ISerializedAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx)
                     throws HyracksDataException {
-                return new SerializableGlobalStddevAggregateFunction(args, ctx, sourceLoc);
+                return new SerializableGlobalStddevAggregateFunction(args, ctx, false, sourceLoc);
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalStddevAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalStddevAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalStddevAggregateFunction.java
index b15cffd..b83762d 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalStddevAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalStddevAggregateFunction.java
@@ -34,9 +34,18 @@ import java.io.DataOutput;
 public class SerializableGlobalStddevAggregateFunction
         extends AbstractSerializableSingleVariableStatisticsAggregateFunction {
 
+    private final boolean isPop;
+    private final int delta;
+
     public SerializableGlobalStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context,
-            SourceLocation sourceLoc) throws HyracksDataException {
+            boolean isPop, SourceLocation sourceLoc) throws HyracksDataException {
         super(args, context, sourceLoc);
+        this.isPop = isPop;
+        if (isPop) {
+            delta = 0;
+        } else {
+            delta = 1;
+        }
     }
 
     @Override
@@ -46,7 +55,7 @@ public class SerializableGlobalStddevAggregateFunction
 
     @Override
     public void finish(byte[] state, int start, int len, DataOutput result) throws HyracksDataException {
-        finishStddevFinalResults(state, start, len, result);
+        finishStddevFinalResults(state, start, len, result, delta);
     }
 
     @Override
@@ -67,7 +76,11 @@ public class SerializableGlobalStddevAggregateFunction
 
     @Override
     protected FunctionIdentifier getFunctionIdentifier() {
-        return BuiltinFunctions.STDDEV;
+        if (isPop) {
+            return BuiltinFunctions.STDDEV_POP;
+        } else {
+            return BuiltinFunctions.STDDEV;
+        }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..b40ff5c
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableGlobalStddevPopAggregateDescriptor.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.runtime.aggregates.serializable.std;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.base.AbstractSerializableAggregateFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class SerializableGlobalStddevPopAggregateDescriptor
+        extends AbstractSerializableAggregateFunctionDynamicDescriptor {
+
+    private static final long serialVersionUID = 1L;
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new SerializableGlobalStddevPopAggregateDescriptor();
+        }
+    };
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.SERIAL_GLOBAL_STDDEV_POP;
+    }
+
+    @Override
+    public ISerializedAggregateEvaluatorFactory createSerializableAggregateEvaluatorFactory(
+            final IScalarEvaluatorFactory[] args) {
+        return new ISerializedAggregateEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public ISerializedAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx)
+                    throws HyracksDataException {
+                return new SerializableGlobalStddevAggregateFunction(args, ctx, true, sourceLoc);
+            }
+        };
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateSqlStddevAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateSqlStddevAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateSqlStddevAggregateDescriptor.java
index e5d788a..094bc18 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateSqlStddevAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateSqlStddevAggregateDescriptor.java
@@ -55,7 +55,7 @@ public class SerializableIntermediateSqlStddevAggregateDescriptor
             @Override
             public ISerializedAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx)
                     throws HyracksDataException {
-                return new SerializableIntermediateSqlStddevAggregateFunction(args, ctx, sourceLoc);
+                return new SerializableIntermediateSqlStddevAggregateFunction(args, ctx, false, sourceLoc);
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateSqlStddevAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateSqlStddevAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateSqlStddevAggregateFunction.java
index 498801b..859cace 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateSqlStddevAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateSqlStddevAggregateFunction.java
@@ -32,9 +32,12 @@ import java.io.DataOutput;
 public class SerializableIntermediateSqlStddevAggregateFunction
         extends AbstractSerializableSingleVariableStatisticsAggregateFunction {
 
+    private final boolean isPop;
+
     public SerializableIntermediateSqlStddevAggregateFunction(IScalarEvaluatorFactory[] args,
-            IHyracksTaskContext context, SourceLocation sourceLoc) throws HyracksDataException {
+            IHyracksTaskContext context, boolean isPop, SourceLocation sourceLoc) throws HyracksDataException {
         super(args, context, sourceLoc);
+        this.isPop = isPop;
     }
 
     @Override
@@ -58,6 +61,10 @@ public class SerializableIntermediateSqlStddevAggregateFunction
 
     @Override
     protected FunctionIdentifier getFunctionIdentifier() {
-        return BuiltinFunctions.STDDEV;
+        if (isPop) {
+            return BuiltinFunctions.STDDEV_POP;
+        } else {
+            return BuiltinFunctions.STDDEV;
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateSqlStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateSqlStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateSqlStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..10df14f
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateSqlStddevPopAggregateDescriptor.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.runtime.aggregates.serializable.std;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.base.AbstractSerializableAggregateFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class SerializableIntermediateSqlStddevPopAggregateDescriptor
+        extends AbstractSerializableAggregateFunctionDynamicDescriptor {
+
+    private static final long serialVersionUID = 1L;
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new SerializableIntermediateSqlStddevPopAggregateDescriptor();
+        }
+    };
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.SERIAL_INTERMEDIATE_SQL_STDDEV_POP;
+    }
+
+    @Override
+    public ISerializedAggregateEvaluatorFactory createSerializableAggregateEvaluatorFactory(
+            final IScalarEvaluatorFactory[] args) {
+        return new ISerializedAggregateEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public ISerializedAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx)
+                    throws HyracksDataException {
+                return new SerializableIntermediateSqlStddevAggregateFunction(args, ctx, true, sourceLoc);
+            }
+        };
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateStddevAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateStddevAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateStddevAggregateDescriptor.java
index d17e5b7..346241c 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateStddevAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateStddevAggregateDescriptor.java
@@ -55,7 +55,7 @@ public class SerializableIntermediateStddevAggregateDescriptor
             @Override
             public ISerializedAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx)
                     throws HyracksDataException {
-                return new SerializableIntermediateStddevAggregateFunction(args, ctx, sourceLoc);
+                return new SerializableIntermediateStddevAggregateFunction(args, ctx, false, sourceLoc);
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateStddevAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateStddevAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateStddevAggregateFunction.java
index 8bc8e14..cea4625 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateStddevAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateStddevAggregateFunction.java
@@ -34,9 +34,12 @@ import java.io.DataOutput;
 public class SerializableIntermediateStddevAggregateFunction
         extends AbstractSerializableSingleVariableStatisticsAggregateFunction {
 
+    private final boolean isPop;
+
     public SerializableIntermediateStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context,
-            SourceLocation sourceLoc) throws HyracksDataException {
+            boolean isPop, SourceLocation sourceLoc) throws HyracksDataException {
         super(args, context, sourceLoc);
+        this.isPop = isPop;
     }
 
     @Override
@@ -67,7 +70,11 @@ public class SerializableIntermediateStddevAggregateFunction
 
     @Override
     protected FunctionIdentifier getFunctionIdentifier() {
-        return BuiltinFunctions.STDDEV;
+        if (isPop) {
+            return BuiltinFunctions.STDDEV_POP;
+        } else {
+            return BuiltinFunctions.STDDEV;
+        }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..aa4a835
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableIntermediateStddevPopAggregateDescriptor.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.runtime.aggregates.serializable.std;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.base.AbstractSerializableAggregateFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class SerializableIntermediateStddevPopAggregateDescriptor
+        extends AbstractSerializableAggregateFunctionDynamicDescriptor {
+
+    private static final long serialVersionUID = 1L;
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new SerializableIntermediateStddevPopAggregateDescriptor();
+        }
+    };
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.SERIAL_INTERMEDIATE_STDDEV_POP;
+    }
+
+    @Override
+    public ISerializedAggregateEvaluatorFactory createSerializableAggregateEvaluatorFactory(
+            final IScalarEvaluatorFactory[] args) {
+        return new ISerializedAggregateEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public ISerializedAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx)
+                    throws HyracksDataException {
+                return new SerializableIntermediateStddevAggregateFunction(args, ctx, true, sourceLoc);
+            }
+        };
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalSqlStddevAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalSqlStddevAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalSqlStddevAggregateDescriptor.java
index 9fd7381..41b64ed 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalSqlStddevAggregateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalSqlStddevAggregateDescriptor.java
@@ -55,7 +55,7 @@ public class SerializableLocalSqlStddevAggregateDescriptor
             @Override
             public ISerializedAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx)
                     throws HyracksDataException {
-                return new SerializableLocalSqlStddevAggregateFunction(args, ctx, sourceLoc);
+                return new SerializableLocalSqlStddevAggregateFunction(args, ctx, false, sourceLoc);
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalSqlStddevAggregateFunction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalSqlStddevAggregateFunction.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalSqlStddevAggregateFunction.java
index d0ef10e..6215511 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalSqlStddevAggregateFunction.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalSqlStddevAggregateFunction.java
@@ -32,9 +32,12 @@ import java.io.DataOutput;
 public class SerializableLocalSqlStddevAggregateFunction
         extends AbstractSerializableSingleVariableStatisticsAggregateFunction {
 
+    private final boolean isPop;
+
     public SerializableLocalSqlStddevAggregateFunction(IScalarEvaluatorFactory[] args, IHyracksTaskContext context,
-            SourceLocation sourceLoc) throws HyracksDataException {
+            boolean isPop, SourceLocation sourceLoc) throws HyracksDataException {
         super(args, context, sourceLoc);
+        this.isPop = isPop;
     }
 
     @Override
@@ -58,6 +61,10 @@ public class SerializableLocalSqlStddevAggregateFunction
 
     @Override
     protected FunctionIdentifier getFunctionIdentifier() {
-        return BuiltinFunctions.STDDEV;
+        if (isPop) {
+            return BuiltinFunctions.STDDEV_POP;
+        } else {
+            return BuiltinFunctions.STDDEV;
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalSqlStddevPopAggregateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalSqlStddevPopAggregateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalSqlStddevPopAggregateDescriptor.java
new file mode 100644
index 0000000..c1692c2
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/SerializableLocalSqlStddevPopAggregateDescriptor.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.runtime.aggregates.serializable.std;
+
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptor;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.aggregates.base.AbstractSerializableAggregateFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class SerializableLocalSqlStddevPopAggregateDescriptor
+        extends AbstractSerializableAggregateFunctionDynamicDescriptor {
+
+    private static final long serialVersionUID = 1L;
+    public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+        @Override
+        public IFunctionDescriptor createFunctionDescriptor() {
+            return new SerializableLocalSqlStddevPopAggregateDescriptor();
+        }
+    };
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.SERIAL_LOCAL_SQL_STDDEV_POP;
+    }
+
+    @Override
+    public ISerializedAggregateEvaluatorFactory createSerializableAggregateEvaluatorFactory(
+            final IScalarEvaluatorFactory[] args) {
+        return new ISerializedAggregateEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public ISerializedAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx)
+                    throws HyracksDataException {
+                return new SerializableLocalSqlStddevAggregateFunction(args, ctx, true, sourceLoc);
+            }
+        };
+    }
+
+}


[3/6] asterixdb git commit: [ASTERIXDB-2459][FUN] Add sttdev_pop() aggregate function

Posted by dl...@apache.org.
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_double_null/stddev_double_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_double_null/stddev_double_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_double_null/stddev_double_null.3.ast
index e01f5cc..02ccab8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_double_null/stddev_double_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_double_null/stddev_double_null.3.ast
@@ -20,4 +20,23 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    FunctionCall asterix.sql-stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$x ]
+          Field=doubleField
+        ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.Numeric]
+          ]
+          AS Variable [ Name=$x ]
+        ]
+      )
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_empty_01/stddev_empty_01.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_empty_01/stddev_empty_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_empty_01/stddev_empty_01.3.ast
index f85f450..51a67dc 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_empty_01/stddev_empty_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_empty_01/stddev_empty_01.3.ast
@@ -1,24 +1,60 @@
 DataverseUse test
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.sql-stddev@1[
+RecordConstructor [
   (
-    SELECT ELEMENT [
-    Variable [ Name=$x ]
-    ]
-    FROM [      OrderedListConstructor [
-        LiteralExpr [LONG] [1]
-        LiteralExpr [LONG] [2]
-        LiteralExpr [LONG] [3]
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              LiteralExpr [LONG] [1]
+              LiteralExpr [LONG] [2]
+              LiteralExpr [LONG] [3]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+          Where
+            OperatorExpr [
+              Variable [ Name=$x ]
+              >
+              LiteralExpr [LONG] [10]
+            ]
+        )
       ]
-      AS Variable [ Name=$x ]
-    ]
-    Where
-      OperatorExpr [
-        Variable [ Name=$x ]
-        >
-        LiteralExpr [LONG] [10]
       ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev_pop@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              LiteralExpr [LONG] [1]
+              LiteralExpr [LONG] [2]
+              LiteralExpr [LONG] [3]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+          Where
+            OperatorExpr [
+              Variable [ Name=$x ]
+              >
+              LiteralExpr [LONG] [10]
+            ]
+        )
+      ]
+      ]
+    )
   )
-]
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_empty_02/stddev_empty_02.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_empty_02/stddev_empty_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_empty_02/stddev_empty_02.3.ast
index 1e74018..1fcdc77 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_empty_02/stddev_empty_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_empty_02/stddev_empty_02.3.ast
@@ -1,19 +1,50 @@
 DataverseUse test
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.sql-stddev@1[
+RecordConstructor [
   (
-    SELECT ELEMENT [
-    FieldAccessor [
-      Variable [ Name=$x ]
-      Field=val
-    ]
-    ]
-    FROM [      FunctionCall asterix.dataset@1[
-        LiteralExpr [STRING] [test.Test]
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            Variable [ Name=$x ]
+            Field=val
+          ]
+          ]
+          FROM [            FunctionCall asterix.dataset@1[
+              LiteralExpr [STRING] [test.Test]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
       ]
-      AS Variable [ Name=$x ]
-    ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev_pop@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            Variable [ Name=$x ]
+            Field=val
+          ]
+          ]
+          FROM [            FunctionCall asterix.dataset@1[
+              LiteralExpr [STRING] [test.Test]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
+      ]
+      ]
+    )
   )
-]
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_float/stddev_float.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_float/stddev_float.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_float/stddev_float.3.ast
index 139a799..3b9af93 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_float/stddev_float.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_float/stddev_float.3.ast
@@ -1,24 +1,60 @@
 DataverseUse test
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.sql-stddev@1[
+RecordConstructor [
   (
-    SELECT ELEMENT [
-    Variable [ Name=$x ]
-    ]
-    FROM [      OrderedListConstructor [
-        FunctionCall test.float@1[
-          LiteralExpr [STRING] [1]
-        ]
-        FunctionCall test.float@1[
-          LiteralExpr [STRING] [2]
-        ]
-        FunctionCall test.float@1[
-          LiteralExpr [STRING] [3]
-        ]
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.float@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.float@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.float@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
       ]
-      AS Variable [ Name=$x ]
-    ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev_pop@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.float@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.float@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.float@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
+      ]
+      ]
+    )
   )
-]
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_float_null/stddev_float_nu.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_float_null/stddev_float_nu.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_float_null/stddev_float_nu.3.ast
index 2fd1ef4..af4b678 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_float_null/stddev_float_nu.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_float_null/stddev_float_nu.3.ast
@@ -20,4 +20,23 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    FunctionCall asterix.sql-stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$x ]
+          Field=floatField
+        ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.Numeric]
+          ]
+          AS Variable [ Name=$x ]
+        ]
+      )
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int16/stddev_int16.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int16/stddev_int16.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int16/stddev_int16.3.ast
index e1d4be2..a3ae382 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int16/stddev_int16.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int16/stddev_int16.3.ast
@@ -1,24 +1,60 @@
 DataverseUse test
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.sql-stddev@1[
+RecordConstructor [
   (
-    SELECT ELEMENT [
-    Variable [ Name=$x ]
-    ]
-    FROM [      OrderedListConstructor [
-        FunctionCall test.int16@1[
-          LiteralExpr [STRING] [1]
-        ]
-        FunctionCall test.int16@1[
-          LiteralExpr [STRING] [2]
-        ]
-        FunctionCall test.int16@1[
-          LiteralExpr [STRING] [3]
-        ]
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.int16@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.int16@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.int16@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
       ]
-      AS Variable [ Name=$x ]
-    ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev_pop@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.int16@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.int16@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.int16@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
+      ]
+      ]
+    )
   )
-]
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int16_null/stddev_int16_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int16_null/stddev_int16_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int16_null/stddev_int16_null.3.ast
index ee1fdc7..abfdf357 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int16_null/stddev_int16_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int16_null/stddev_int16_null.3.ast
@@ -20,4 +20,23 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    FunctionCall asterix.sql-stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$x ]
+          Field=int16Field
+        ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.Numeric]
+          ]
+          AS Variable [ Name=$x ]
+        ]
+      )
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int32/stddev_int32.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int32/stddev_int32.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int32/stddev_int32.3.ast
index d40a004..475d383 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int32/stddev_int32.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int32/stddev_int32.3.ast
@@ -1,24 +1,60 @@
 DataverseUse test
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.sql-stddev@1[
+RecordConstructor [
   (
-    SELECT ELEMENT [
-    Variable [ Name=$x ]
-    ]
-    FROM [      OrderedListConstructor [
-        FunctionCall test.int32@1[
-          LiteralExpr [STRING] [1]
-        ]
-        FunctionCall test.int32@1[
-          LiteralExpr [STRING] [2]
-        ]
-        FunctionCall test.int32@1[
-          LiteralExpr [STRING] [3]
-        ]
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.int32@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.int32@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.int32@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
       ]
-      AS Variable [ Name=$x ]
-    ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev_pop@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.int32@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.int32@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.int32@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
+      ]
+      ]
+    )
   )
-]
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int32_null/stddev_int32_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int32_null/stddev_int32_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int32_null/stddev_int32_null.3.ast
index 55da89c..ae92087 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int32_null/stddev_int32_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int32_null/stddev_int32_null.3.ast
@@ -20,4 +20,23 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    FunctionCall asterix.sql-stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$x ]
+          Field=int32Field
+        ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.Numeric]
+          ]
+          AS Variable [ Name=$x ]
+        ]
+      )
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int64/stddev_int64.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int64/stddev_int64.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int64/stddev_int64.3.ast
index 0583b7f..aafffb8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int64/stddev_int64.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int64/stddev_int64.3.ast
@@ -1,24 +1,60 @@
 DataverseUse test
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.sql-stddev@1[
+RecordConstructor [
   (
-    SELECT ELEMENT [
-    Variable [ Name=$x ]
-    ]
-    FROM [      OrderedListConstructor [
-        FunctionCall test.int64@1[
-          LiteralExpr [STRING] [1]
-        ]
-        FunctionCall test.int64@1[
-          LiteralExpr [STRING] [2]
-        ]
-        FunctionCall test.int64@1[
-          LiteralExpr [STRING] [3]
-        ]
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.int64@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.int64@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.int64@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
       ]
-      AS Variable [ Name=$x ]
-    ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev_pop@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.int64@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.int64@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.int64@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
+      ]
+      ]
+    )
   )
-]
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int64_null/stddev_int64_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int64_null/stddev_int64_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int64_null/stddev_int64_null.3.ast
index e8787dd..8726277 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int64_null/stddev_int64_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int64_null/stddev_int64_null.3.ast
@@ -20,4 +20,23 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    FunctionCall asterix.sql-stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$x ]
+          Field=int64Field
+        ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.Numeric]
+          ]
+          AS Variable [ Name=$x ]
+        ]
+      )
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int8/stddev_int8.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int8/stddev_int8.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int8/stddev_int8.3.ast
index 2ec6818..21b3171 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int8/stddev_int8.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int8/stddev_int8.3.ast
@@ -1,24 +1,60 @@
 DataverseUse test
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.sql-stddev@1[
+RecordConstructor [
   (
-    SELECT ELEMENT [
-    Variable [ Name=$x ]
-    ]
-    FROM [      OrderedListConstructor [
-        FunctionCall test.int8@1[
-          LiteralExpr [STRING] [1]
-        ]
-        FunctionCall test.int8@1[
-          LiteralExpr [STRING] [2]
-        ]
-        FunctionCall test.int8@1[
-          LiteralExpr [STRING] [3]
-        ]
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.int8@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.int8@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.int8@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
       ]
-      AS Variable [ Name=$x ]
-    ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.sql-stddev_pop@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.int8@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.int8@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.int8@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
+      ]
+      ]
+    )
   )
-]
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int8_null/stddev_int8_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int8_null/stddev_int8_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int8_null/stddev_int8_null.3.ast
index a7c371c..f2c9bef 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int8_null/stddev_int8_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_int8_null/stddev_int8_null.3.ast
@@ -20,4 +20,23 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    FunctionCall asterix.sql-stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$x ]
+          Field=int8Field
+        ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.Numeric]
+          ]
+          AS Variable [ Name=$x ]
+        ]
+      )
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_pop_mixed/stddev_pop_mixed.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_pop_mixed/stddev_pop_mixed.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_pop_mixed/stddev_pop_mixed.3.ast
new file mode 100644
index 0000000..7c39453
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate-sql/stddev_pop_mixed/stddev_pop_mixed.3.ast
@@ -0,0 +1,22 @@
+Query:
+SELECT ELEMENT [
+FunctionCall asterix.sql-stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    Variable [ Name=$x ]
+    ]
+    FROM [      OrderedListConstructor [
+        FunctionCall null.float@1[
+          LiteralExpr [STRING] [2.0]
+        ]
+        LiteralExpr [STRING] [hello world]
+        LiteralExpr [LONG] [93847382783847382]
+        FunctionCall null.date@1[
+          LiteralExpr [STRING] [2013-01-01]
+        ]
+      ]
+      AS Variable [ Name=$x ]
+    ]
+  )
+]
+]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_null/agg_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_null/agg_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_null/agg_null.3.ast
index 42aab0a..53b7249 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_null/agg_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_null/agg_null.3.ast
@@ -55,6 +55,15 @@ RecordConstructor [
     ]
   )
   (
+    LiteralExpr [STRING] [stddev_pop1]
+    :
+    FunctionCall asterix.stddev_pop@1[
+      OrderedListConstructor [
+        LiteralExpr [NULL]
+      ]
+    ]
+  )
+  (
     LiteralExpr [STRING] [count2]
     :
     FunctionCall asterix.count@1[
@@ -114,4 +123,14 @@ RecordConstructor [
       ]
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop2]
+    :
+    FunctionCall asterix.stddev_pop@1[
+      UnorderedListConstructor [
+        LiteralExpr [NULL]
+        LiteralExpr [NULL]
+      ]
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_null_rec/agg_null_rec.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_null_rec/agg_null_rec.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_null_rec/agg_null_rec.3.ast
index ea96a9a..d92c399 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_null_rec/agg_null_rec.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_null_rec/agg_null_rec.3.ast
@@ -115,4 +115,23 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    FunctionCall asterix.stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$t ]
+          Field=valplus
+        ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.Test]
+          ]
+          AS Variable [ Name=$t ]
+        ]
+      )
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_null_rec_1/agg_null_rec_1.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_null_rec_1/agg_null_rec_1.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_null_rec_1/agg_null_rec_1.3.ast
index 5668cdb..5d11b6e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_null_rec_1/agg_null_rec_1.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_null_rec_1/agg_null_rec_1.3.ast
@@ -147,5 +147,31 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    FunctionCall asterix.stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$i ]
+          Field=val
+        ]
+        ]
+        FROM [          (
+            SELECT ELEMENT [
+            Variable [ Name=$t ]
+            ]
+            FROM [              FunctionCall asterix.dataset@1[
+                LiteralExpr [STRING] [test.Test]
+              ]
+              AS Variable [ Name=$t ]
+            ]
+          )
+          AS Variable [ Name=$i ]
+        ]
+      )
+    ]
+  )
 ]
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_number/agg_number.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_number/agg_number.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_number/agg_number.3.ast
index c3f8e5b..59c27d9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_number/agg_number.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_number/agg_number.3.ast
@@ -97,6 +97,22 @@ RecordConstructor [
     ]
   )
   (
+    LiteralExpr [STRING] [stddev_pop1]
+    :
+    FunctionCall asterix.stddev_pop@1[
+      OrderedListConstructor [
+        FunctionCall null.float@1[
+          LiteralExpr [STRING] [2.0]
+        ]
+        FunctionCall null.double@1[
+          LiteralExpr [STRING] [3.0]
+        ]
+        LiteralExpr [LONG] [93847382783847382]
+        LiteralExpr [LONG] [1]
+      ]
+    ]
+  )
+  (
     LiteralExpr [STRING] [count2]
     :
     FunctionCall asterix.count@1[
@@ -192,4 +208,20 @@ RecordConstructor [
       ]
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop2]
+    :
+    FunctionCall asterix.stddev_pop@1[
+      OrderedListConstructor [
+        FunctionCall null.float@1[
+          LiteralExpr [STRING] [2.0]
+        ]
+        FunctionCall null.double@1[
+          LiteralExpr [STRING] [3.0]
+        ]
+        LiteralExpr [LONG] [93847382783847382]
+        LiteralExpr [LONG] [1]
+      ]
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_number_rec/agg_number_rec.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_number_rec/agg_number_rec.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_number_rec/agg_number_rec.3.ast
index ea96a9a..d92c399 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_number_rec/agg_number_rec.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/agg_number_rec/agg_number_rec.3.ast
@@ -115,4 +115,23 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    FunctionCall asterix.stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$t ]
+          Field=valplus
+        ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.Test]
+          ]
+          AS Variable [ Name=$t ]
+        ]
+      )
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_stddev/scalar_stddev.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_stddev/scalar_stddev.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_stddev/scalar_stddev.3.ast
index 67d038e..4606161 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_stddev/scalar_stddev.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_stddev/scalar_stddev.3.ast
@@ -1,105 +1,222 @@
 DataverseUse test
 Query:
-Let Variable [ Name=$i8 ]
-  :=
-  FunctionCall asterix.stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.int8@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.int8@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.int8@1[
-        LiteralExpr [STRING] [3]
-      ]
-    ]
-  ]
-Let Variable [ Name=$i16 ]
-  :=
-  FunctionCall asterix.stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.int16@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.int16@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.int16@1[
-        LiteralExpr [STRING] [3]
-      ]
-    ]
-  ]
-Let Variable [ Name=$i32 ]
-  :=
-  FunctionCall asterix.stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.int32@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.int32@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.int32@1[
-        LiteralExpr [STRING] [3]
-      ]
-    ]
-  ]
-Let Variable [ Name=$i64 ]
-  :=
-  FunctionCall asterix.stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.int64@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.int64@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.int64@1[
-        LiteralExpr [STRING] [3]
-      ]
-    ]
-  ]
-Let Variable [ Name=$f ]
-  :=
-  FunctionCall asterix.stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.float@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.float@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.float@1[
-        LiteralExpr [STRING] [3]
-      ]
-    ]
-  ]
-Let Variable [ Name=$d ]
-  :=
-  FunctionCall asterix.stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.double@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.double@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.double@1[
-        LiteralExpr [STRING] [3]
-      ]
-    ]
-  ]
-SELECT ELEMENT [
-Variable [ Name=$i ]
-]
-FROM [  OrderedListConstructor [
-    Variable [ Name=$i8 ]
-    Variable [ Name=$i16 ]
-    Variable [ Name=$i32 ]
-    Variable [ Name=$i64 ]
-    Variable [ Name=$f ]
-    Variable [ Name=$d ]
-  ]
-  AS Variable [ Name=$i ]
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      Let Variable [ Name=$i8 ]
+        :=
+        FunctionCall asterix.stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$i16 ]
+        :=
+        FunctionCall asterix.stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$i32 ]
+        :=
+        FunctionCall asterix.stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$i64 ]
+        :=
+        FunctionCall asterix.stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$f ]
+        :=
+        FunctionCall asterix.stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$d ]
+        :=
+        FunctionCall asterix.stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      SELECT ELEMENT [
+      Variable [ Name=$i ]
+      ]
+      FROM [        OrderedListConstructor [
+          Variable [ Name=$i8 ]
+          Variable [ Name=$i16 ]
+          Variable [ Name=$i32 ]
+          Variable [ Name=$i64 ]
+          Variable [ Name=$f ]
+          Variable [ Name=$d ]
+        ]
+        AS Variable [ Name=$i ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      Let Variable [ Name=$i8 ]
+        :=
+        FunctionCall asterix.stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$i16 ]
+        :=
+        FunctionCall asterix.stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$i32 ]
+        :=
+        FunctionCall asterix.stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$i64 ]
+        :=
+        FunctionCall asterix.stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$f ]
+        :=
+        FunctionCall asterix.stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      Let Variable [ Name=$d ]
+        :=
+        FunctionCall asterix.stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [3]
+            ]
+          ]
+        ]
+      SELECT ELEMENT [
+      Variable [ Name=$i ]
+      ]
+      FROM [        OrderedListConstructor [
+          Variable [ Name=$i8 ]
+          Variable [ Name=$i16 ]
+          Variable [ Name=$i32 ]
+          Variable [ Name=$i64 ]
+          Variable [ Name=$f ]
+          Variable [ Name=$d ]
+        ]
+        AS Variable [ Name=$i ]
+      ]
+    )
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_stddev_empty/scalar_stddev_empty.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_stddev_empty/scalar_stddev_empty.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_stddev_empty/scalar_stddev_empty.3.ast
index 9834bb3..cb2d59f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_stddev_empty/scalar_stddev_empty.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_stddev_empty/scalar_stddev_empty.3.ast
@@ -1,7 +1,27 @@
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.stddev@1[
-  OrderedListConstructor [
-  ]
-]
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev@1[
+        OrderedListConstructor [
+        ]
+      ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev_pop@1[
+        OrderedListConstructor [
+        ]
+      ]
+      ]
+    )
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_stddev_null/scalar_stddev_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_stddev_null/scalar_stddev_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_stddev_null/scalar_stddev_null.3.ast
index eac0b48..a155c95 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_stddev_null/scalar_stddev_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/scalar_stddev_null/scalar_stddev_null.3.ast
@@ -1,111 +1,234 @@
 DataverseUse test
 Query:
-Let Variable [ Name=$i8 ]
-  :=
-  FunctionCall asterix.stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.int8@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.int8@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.int8@1[
-        LiteralExpr [STRING] [3]
-      ]
-      LiteralExpr [NULL]
-    ]
-  ]
-Let Variable [ Name=$i16 ]
-  :=
-  FunctionCall asterix.stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.int16@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.int16@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.int16@1[
-        LiteralExpr [STRING] [3]
-      ]
-      LiteralExpr [NULL]
-    ]
-  ]
-Let Variable [ Name=$i32 ]
-  :=
-  FunctionCall asterix.stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.int32@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.int32@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.int32@1[
-        LiteralExpr [STRING] [3]
-      ]
-      LiteralExpr [NULL]
-    ]
-  ]
-Let Variable [ Name=$i64 ]
-  :=
-  FunctionCall asterix.stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.int64@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.int64@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.int64@1[
-        LiteralExpr [STRING] [3]
-      ]
-      LiteralExpr [NULL]
-    ]
-  ]
-Let Variable [ Name=$f ]
-  :=
-  FunctionCall asterix.stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.float@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.float@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.float@1[
-        LiteralExpr [STRING] [3]
-      ]
-      LiteralExpr [NULL]
-    ]
-  ]
-Let Variable [ Name=$d ]
-  :=
-  FunctionCall asterix.stddev@1[
-    OrderedListConstructor [
-      FunctionCall test.double@1[
-        LiteralExpr [STRING] [1]
-      ]
-      FunctionCall test.double@1[
-        LiteralExpr [STRING] [2]
-      ]
-      FunctionCall test.double@1[
-        LiteralExpr [STRING] [3]
-      ]
-      LiteralExpr [NULL]
-    ]
-  ]
-SELECT ELEMENT [
-Variable [ Name=$i ]
-]
-FROM [  OrderedListConstructor [
-    Variable [ Name=$i8 ]
-    Variable [ Name=$i16 ]
-    Variable [ Name=$i32 ]
-    Variable [ Name=$i64 ]
-    Variable [ Name=$f ]
-    Variable [ Name=$d ]
-  ]
-  AS Variable [ Name=$i ]
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      Let Variable [ Name=$i8 ]
+        :=
+        FunctionCall asterix.stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$i16 ]
+        :=
+        FunctionCall asterix.stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$i32 ]
+        :=
+        FunctionCall asterix.stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$i64 ]
+        :=
+        FunctionCall asterix.stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$f ]
+        :=
+        FunctionCall asterix.stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$d ]
+        :=
+        FunctionCall asterix.stddev@1[
+          OrderedListConstructor [
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      SELECT ELEMENT [
+      Variable [ Name=$i ]
+      ]
+      FROM [        OrderedListConstructor [
+          Variable [ Name=$i8 ]
+          Variable [ Name=$i16 ]
+          Variable [ Name=$i32 ]
+          Variable [ Name=$i64 ]
+          Variable [ Name=$f ]
+          Variable [ Name=$d ]
+        ]
+        AS Variable [ Name=$i ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      Let Variable [ Name=$i8 ]
+        :=
+        FunctionCall asterix.stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int8@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$i16 ]
+        :=
+        FunctionCall asterix.stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int16@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$i32 ]
+        :=
+        FunctionCall asterix.stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int32@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$i64 ]
+        :=
+        FunctionCall asterix.stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.int64@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$f ]
+        :=
+        FunctionCall asterix.stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.float@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      Let Variable [ Name=$d ]
+        :=
+        FunctionCall asterix.stddev_pop@1[
+          OrderedListConstructor [
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [1]
+            ]
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [2]
+            ]
+            FunctionCall test.double@1[
+              LiteralExpr [STRING] [3]
+            ]
+            LiteralExpr [NULL]
+          ]
+        ]
+      SELECT ELEMENT [
+      Variable [ Name=$i ]
+      ]
+      FROM [        OrderedListConstructor [
+          Variable [ Name=$i8 ]
+          Variable [ Name=$i16 ]
+          Variable [ Name=$i32 ]
+          Variable [ Name=$i64 ]
+          Variable [ Name=$f ]
+          Variable [ Name=$d ]
+        ]
+        AS Variable [ Name=$i ]
+      ]
+    )
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_double/serial_stddev_double.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_double/serial_stddev_double.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_double/serial_stddev_double.3.ast
index 43263e5..02388b6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_double/serial_stddev_double.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_double/serial_stddev_double.3.ast
@@ -17,6 +17,20 @@ FunctionCall asterix.stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=$g ]
+      Field=val
+    ]
+    ]
+    FROM [      Variable [ Name=$g ]
+      AS Variable [ Name=$g ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_double_null/serial_stddev_double_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_double_null/serial_stddev_double_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_double_null/serial_stddev_double_null.3.ast
index f05d552..b8ce40c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_double_null/serial_stddev_double_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_double_null/serial_stddev_double_null.3.ast
@@ -17,6 +17,20 @@ FunctionCall asterix.stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=$g ]
+      Field=valplus
+    ]
+    ]
+    FROM [      Variable [ Name=$g ]
+      AS Variable [ Name=$g ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_empty/serial_stddev_empty.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_empty/serial_stddev_empty.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_empty/serial_stddev_empty.3.ast
index 43263e5..02388b6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_empty/serial_stddev_empty.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_empty/serial_stddev_empty.3.ast
@@ -17,6 +17,20 @@ FunctionCall asterix.stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=$g ]
+      Field=val
+    ]
+    ]
+    FROM [      Variable [ Name=$g ]
+      AS Variable [ Name=$g ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_float/serial_stddev_float.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_float/serial_stddev_float.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_float/serial_stddev_float.3.ast
index 43263e5..02388b6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_float/serial_stddev_float.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_float/serial_stddev_float.3.ast
@@ -17,6 +17,20 @@ FunctionCall asterix.stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=$g ]
+      Field=val
+    ]
+    ]
+    FROM [      Variable [ Name=$g ]
+      AS Variable [ Name=$g ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_float_null/serial_stddev_float_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_float_null/serial_stddev_float_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_float_null/serial_stddev_float_null.3.ast
index f05d552..b8ce40c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_float_null/serial_stddev_float_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_float_null/serial_stddev_float_null.3.ast
@@ -17,6 +17,20 @@ FunctionCall asterix.stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=$g ]
+      Field=valplus
+    ]
+    ]
+    FROM [      Variable [ Name=$g ]
+      AS Variable [ Name=$g ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int16/serial_stddev_int16.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int16/serial_stddev_int16.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int16/serial_stddev_int16.3.ast
index 43263e5..02388b6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int16/serial_stddev_int16.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int16/serial_stddev_int16.3.ast
@@ -17,6 +17,20 @@ FunctionCall asterix.stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=$g ]
+      Field=val
+    ]
+    ]
+    FROM [      Variable [ Name=$g ]
+      AS Variable [ Name=$g ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int16_null/serial_stddev_int16_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int16_null/serial_stddev_int16_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int16_null/serial_stddev_int16_null.3.ast
index f05d552..b8ce40c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int16_null/serial_stddev_int16_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int16_null/serial_stddev_int16_null.3.ast
@@ -17,6 +17,20 @@ FunctionCall asterix.stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=$g ]
+      Field=valplus
+    ]
+    ]
+    FROM [      Variable [ Name=$g ]
+      AS Variable [ Name=$g ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int32/serial_stddev_int32.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int32/serial_stddev_int32.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int32/serial_stddev_int32.3.ast
index 43263e5..02388b6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int32/serial_stddev_int32.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int32/serial_stddev_int32.3.ast
@@ -17,6 +17,20 @@ FunctionCall asterix.stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=$g ]
+      Field=val
+    ]
+    ]
+    FROM [      Variable [ Name=$g ]
+      AS Variable [ Name=$g ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int32_null/serial_stddev_int32_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int32_null/serial_stddev_int32_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int32_null/serial_stddev_int32_null.3.ast
index f05d552..b8ce40c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int32_null/serial_stddev_int32_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int32_null/serial_stddev_int32_null.3.ast
@@ -17,6 +17,20 @@ FunctionCall asterix.stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=$g ]
+      Field=valplus
+    ]
+    ]
+    FROM [      Variable [ Name=$g ]
+      AS Variable [ Name=$g ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int64/serial_stddev_int64.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int64/serial_stddev_int64.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int64/serial_stddev_int64.3.ast
index 43263e5..02388b6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int64/serial_stddev_int64.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int64/serial_stddev_int64.3.ast
@@ -17,6 +17,20 @@ FunctionCall asterix.stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=$g ]
+      Field=val
+    ]
+    ]
+    FROM [      Variable [ Name=$g ]
+      AS Variable [ Name=$g ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int64_null/serial_stddev_int64_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int64_null/serial_stddev_int64_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int64_null/serial_stddev_int64_null.3.ast
index f05d552..b8ce40c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int64_null/serial_stddev_int64_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int64_null/serial_stddev_int64_null.3.ast
@@ -17,6 +17,20 @@ FunctionCall asterix.stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=$g ]
+      Field=valplus
+    ]
+    ]
+    FROM [      Variable [ Name=$g ]
+      AS Variable [ Name=$g ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int8/serial_stddev_int8.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int8/serial_stddev_int8.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int8/serial_stddev_int8.3.ast
index 43263e5..02388b6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int8/serial_stddev_int8.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int8/serial_stddev_int8.3.ast
@@ -17,6 +17,20 @@ FunctionCall asterix.stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=$g ]
+      Field=val
+    ]
+    ]
+    FROM [      Variable [ Name=$g ]
+      AS Variable [ Name=$g ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int8_null/serial_stddev_int8_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int8_null/serial_stddev_int8_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int8_null/serial_stddev_int8_null.3.ast
index f05d552..b8ce40c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int8_null/serial_stddev_int8_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_int8_null/serial_stddev_int8_null.3.ast
@@ -17,6 +17,20 @@ FunctionCall asterix.stddev@1[
   )
 ]
 stddev
+FunctionCall asterix.stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=$g ]
+      Field=valplus
+    ]
+    ]
+    FROM [      Variable [ Name=$g ]
+      AS Variable [ Name=$g ]
+    ]
+  )
+]
+stddev_pop
 ]
 FROM [  FunctionCall asterix.dataset@1[
     LiteralExpr [STRING] [test.Test]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.ast
new file mode 100644
index 0000000..a61c9df
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.1.ast
@@ -0,0 +1,9 @@
+DataverseUse test
+TypeDecl TestType [
+  open RecordType {
+    id : bigint,
+    gid : bigint,
+    val : double
+  }
+]
+DatasetDecl Test(TestType) partitioned by [[id]]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.2.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.2.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.2.ast
new file mode 100644
index 0000000..916a59e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.2.ast
@@ -0,0 +1 @@
+DataverseUse test

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.ast
new file mode 100644
index 0000000..5edf9bd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.ast
@@ -0,0 +1,40 @@
+DataverseUse test
+Query:
+SELECT [
+Variable [ Name=$gid ]
+gid
+FunctionCall asterix.stddev_pop@1[
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=$g ]
+      Field=valplus
+    ]
+    ]
+    FROM [      Variable [ Name=$g ]
+      AS Variable [ Name=$g ]
+    ]
+  )
+]
+stddev_pop
+]
+FROM [  FunctionCall asterix.dataset@1[
+    LiteralExpr [STRING] [test.Test]
+  ]
+  AS Variable [ Name=$t ]
+]
+Groupby
+  Variable [ Name=$gid ]
+  :=
+  FieldAccessor [
+    Variable [ Name=$t ]
+    Field=gid
+  ]
+  GROUP AS Variable [ Name=$g ]
+  (
+    valplus:=FunctionCall asterix.field-access-by-name@2[
+  Variable [ Name=$t ]
+  LiteralExpr [STRING] [valplus]
+]
+  )
+

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_double/stddev_double.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_double/stddev_double.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_double/stddev_double.3.ast
index b2fcbe8..c2a0566 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_double/stddev_double.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_double/stddev_double.3.ast
@@ -1,19 +1,51 @@
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.stddev@1[
+RecordConstructor [
   (
-    SELECT ELEMENT [
-    Variable [ Name=$x ]
-    ]
-    FROM [      OrderedListConstructor [
-        LiteralExpr [DOUBLE] [1.0]
-        LiteralExpr [DOUBLE] [2.0]
-        FunctionCall null.double@1[
-          LiteralExpr [STRING] [3.0]
-        ]
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              LiteralExpr [DOUBLE] [1.0]
+              LiteralExpr [DOUBLE] [2.0]
+              FunctionCall null.double@1[
+                LiteralExpr [STRING] [3.0]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
       ]
-      AS Variable [ Name=$x ]
-    ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev_pop@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              LiteralExpr [DOUBLE] [1.0]
+              LiteralExpr [DOUBLE] [2.0]
+              FunctionCall null.double@1[
+                LiteralExpr [STRING] [3.0]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
+      ]
+      ]
+    )
   )
-]
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_double_null/stddev_double_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_double_null/stddev_double_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_double_null/stddev_double_null.3.ast
index 433f0bc..863ef3a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_double_null/stddev_double_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_double_null/stddev_double_null.3.ast
@@ -20,4 +20,23 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    FunctionCall asterix.stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$x ]
+          Field=doubleField
+        ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.Numeric]
+          ]
+          AS Variable [ Name=$x ]
+        ]
+      )
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_empty_01/stddev_empty_01.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_empty_01/stddev_empty_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_empty_01/stddev_empty_01.3.ast
index fe21498..6d6b228 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_empty_01/stddev_empty_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_empty_01/stddev_empty_01.3.ast
@@ -1,24 +1,60 @@
 DataverseUse test
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.stddev@1[
+RecordConstructor [
   (
-    SELECT ELEMENT [
-    Variable [ Name=$x ]
-    ]
-    FROM [      OrderedListConstructor [
-        LiteralExpr [LONG] [1]
-        LiteralExpr [LONG] [2]
-        LiteralExpr [LONG] [3]
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              LiteralExpr [LONG] [1]
+              LiteralExpr [LONG] [2]
+              LiteralExpr [LONG] [3]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+          Where
+            OperatorExpr [
+              Variable [ Name=$x ]
+              >
+              LiteralExpr [LONG] [10]
+            ]
+        )
       ]
-      AS Variable [ Name=$x ]
-    ]
-    Where
-      OperatorExpr [
-        Variable [ Name=$x ]
-        >
-        LiteralExpr [LONG] [10]
       ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev_pop@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              LiteralExpr [LONG] [1]
+              LiteralExpr [LONG] [2]
+              LiteralExpr [LONG] [3]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+          Where
+            OperatorExpr [
+              Variable [ Name=$x ]
+              >
+              LiteralExpr [LONG] [10]
+            ]
+        )
+      ]
+      ]
+    )
   )
-]
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_empty_02/stddev_empty_02.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_empty_02/stddev_empty_02.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_empty_02/stddev_empty_02.3.ast
index 6cb121c..ee7f74f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_empty_02/stddev_empty_02.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_empty_02/stddev_empty_02.3.ast
@@ -1,19 +1,50 @@
 DataverseUse test
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.stddev@1[
+RecordConstructor [
   (
-    SELECT ELEMENT [
-    FieldAccessor [
-      Variable [ Name=$x ]
-      Field=val
-    ]
-    ]
-    FROM [      FunctionCall asterix.dataset@1[
-        LiteralExpr [STRING] [test.Test]
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            Variable [ Name=$x ]
+            Field=val
+          ]
+          ]
+          FROM [            FunctionCall asterix.dataset@1[
+              LiteralExpr [STRING] [test.Test]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
       ]
-      AS Variable [ Name=$x ]
-    ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev_pop@1[
+        (
+          SELECT ELEMENT [
+          FieldAccessor [
+            Variable [ Name=$x ]
+            Field=val
+          ]
+          ]
+          FROM [            FunctionCall asterix.dataset@1[
+              LiteralExpr [STRING] [test.Test]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
+      ]
+      ]
+    )
   )
-]
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_float/stddev_float.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_float/stddev_float.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_float/stddev_float.3.ast
index 07e5c1a..679b6a5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_float/stddev_float.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_float/stddev_float.3.ast
@@ -1,24 +1,60 @@
 DataverseUse test
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.stddev@1[
+RecordConstructor [
   (
-    SELECT ELEMENT [
-    Variable [ Name=$x ]
-    ]
-    FROM [      OrderedListConstructor [
-        FunctionCall test.float@1[
-          LiteralExpr [STRING] [1]
-        ]
-        FunctionCall test.float@1[
-          LiteralExpr [STRING] [2]
-        ]
-        FunctionCall test.float@1[
-          LiteralExpr [STRING] [3]
-        ]
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.float@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.float@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.float@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
       ]
-      AS Variable [ Name=$x ]
-    ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev_pop@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.float@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.float@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.float@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
+      ]
+      ]
+    )
   )
-]
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_float_null/stddev_float_nu.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_float_null/stddev_float_nu.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_float_null/stddev_float_nu.3.ast
index f78dba8..93e6093 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_float_null/stddev_float_nu.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_float_null/stddev_float_nu.3.ast
@@ -20,4 +20,23 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    FunctionCall asterix.stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$x ]
+          Field=floatField
+        ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.Numeric]
+          ]
+          AS Variable [ Name=$x ]
+        ]
+      )
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int16/stddev_int16.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int16/stddev_int16.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int16/stddev_int16.3.ast
index 67d7880..00b7c98 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int16/stddev_int16.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int16/stddev_int16.3.ast
@@ -1,24 +1,60 @@
 DataverseUse test
 Query:
-SELECT ELEMENT [
-FunctionCall asterix.stddev@1[
+RecordConstructor [
   (
-    SELECT ELEMENT [
-    Variable [ Name=$x ]
-    ]
-    FROM [      OrderedListConstructor [
-        FunctionCall test.int16@1[
-          LiteralExpr [STRING] [1]
-        ]
-        FunctionCall test.int16@1[
-          LiteralExpr [STRING] [2]
-        ]
-        FunctionCall test.int16@1[
-          LiteralExpr [STRING] [3]
-        ]
+    LiteralExpr [STRING] [stddev]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.int16@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.int16@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.int16@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
       ]
-      AS Variable [ Name=$x ]
-    ]
+      ]
+    )
+  )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    (
+      SELECT ELEMENT [
+      FunctionCall asterix.stddev_pop@1[
+        (
+          SELECT ELEMENT [
+          Variable [ Name=$x ]
+          ]
+          FROM [            OrderedListConstructor [
+              FunctionCall test.int16@1[
+                LiteralExpr [STRING] [1]
+              ]
+              FunctionCall test.int16@1[
+                LiteralExpr [STRING] [2]
+              ]
+              FunctionCall test.int16@1[
+                LiteralExpr [STRING] [3]
+              ]
+            ]
+            AS Variable [ Name=$x ]
+          ]
+        )
+      ]
+      ]
+    )
   )
-]
 ]

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/11d5b281/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int16_null/stddev_int16_null.3.ast
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int16_null/stddev_int16_null.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int16_null/stddev_int16_null.3.ast
index 9f82ab2..bf1e0ad 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int16_null/stddev_int16_null.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/aggregate/stddev_int16_null/stddev_int16_null.3.ast
@@ -20,4 +20,23 @@ RecordConstructor [
       )
     ]
   )
+  (
+    LiteralExpr [STRING] [stddev_pop]
+    :
+    FunctionCall asterix.stddev_pop@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=$x ]
+          Field=int16Field
+        ]
+        ]
+        FROM [          FunctionCall asterix.dataset@1[
+            LiteralExpr [STRING] [test.Numeric]
+          ]
+          AS Variable [ Name=$x ]
+        ]
+      )
+    ]
+  )
 ]