# 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.

SELECT *
FROM test
WHERE int_col < 5
ORDER BY int_col DESC,
         long_col ASC
LIMIT 5;
--
+-----------+--------------------+---------------+------------------------+--------------------+
|int_col    |long_col            |float_col      |double_col              |char_col            |
+-----------+--------------------+---------------+------------------------+--------------------+
|          4|                  16|              2|                       8|          4 2.000000|
|          2|                   4|     1.41421354|      2.8284271247461903|          2 1.414214|
|         -1|                   1|              1|                      -1|         -1 1.000000|
|         -3|                   9|     1.73205078|      -5.196152422706632|         -3 1.732051|
|         -5|                  25|     2.23606801|     -11.180339887498949|         -5 2.236068|
+-----------+--------------------+---------------+------------------------+--------------------+
==

# Simple SELECT.
SELECT *
FROM test
WHERE int_col < 10
  AND long_col < 100
  AND double_col < 0;
--
+-----------+--------------------+---------------+------------------------+--------------------+
|int_col    |long_col            |float_col      |double_col              |char_col            |
+-----------+--------------------+---------------+------------------------+--------------------+
|         -1|                   1|              1|                      -1|         -1 1.000000|
|         -3|                   9|     1.73205078|      -5.196152422706632|         -3 1.732051|
|         -5|                  25|     2.23606801|     -11.180339887498949|         -5 2.236068|
|         -7|                  49|     2.64575124|     -18.520259177452136|         -7 2.645751|
|         -9|                  81|              3|                     -27|         -9 3.000000|
+-----------+--------------------+---------------+------------------------+--------------------+
==

# Modulo operator
SELECT int_col % 2,
       long_col % (int_col * int_col),
       float_col % 1,
       double_col % 1.0
FROM test;
--
+-----------+----------------------------+---------------+------------------------+
|(int_col%2)|(long_col%(int_col*int_col))|(float_col%1)  |(double_col%1.0)        |
+-----------+----------------------------+---------------+------------------------+
|       NULL|                        NULL|              0|                    NULL|
|         -1|                           0|              0|                       0|
|          0|                           0|    0.414213538|     0.82842712474619029|
|         -1|                           0|    0.732050776|    -0.19615242270663202|
|          0|                           0|              0|                       0|
|         -1|                           0|     0.23606801|    -0.18033988749894903|
|          0|                           0|    0.449489832|     0.69693845669906729|
|         -1|                           0|    0.645751238|     -0.5202591774521359|
|          0|                           0|    0.828427076|     0.62741699796952233|
|         -1|                           0|              0|                       0|
|       NULL|                        NULL|    0.162277699|                    NULL|
|         -1|                           0|     0.31662488|    -0.48287269390939969|
|          0|                           0|    0.464101553|     0.56921938165305619|
|         -1|                           0|    0.605551243|    -0.87216658103185551|
|          0|                           0|    0.741657495|      0.3832034148351795|
|         -1|                           0|    0.872983456|   -0.094750193111252656|
|          0|                           0|              0|                       0|
|         -1|                           0|    0.123105526|   -0.092795635500223739|
|          0|                           0|    0.242640495|     0.36753236814712409|
|         -1|                           0|    0.358899117|    -0.81907992727280998|
|       NULL|                        NULL|    0.472136021|                    NULL|
|         -1|                           0|    0.582575798|    -0.23408959407264263|
|          0|                           0|    0.690415859|     0.18914671611545941|
|         -1|                           0|     0.79583168|    -0.30412503619254494|
|          0|                           0|    0.898979664|      0.5755076535925383|
+-----------+----------------------------+---------------+------------------------+
==

SELECT i,
       i/4 AS bit2,
       (i%4)/2 AS bit1,
       i%2 AS bit0
FROM generate_series(0, 7) AS gs(i);

--
+-----------+-----------+-----------+-----------+
|i          |bit2       |bit1       |bit0       |
+-----------+-----------+-----------+-----------+
|          0|          0|          0|          0|
|          1|          0|          0|          1|
|          2|          0|          1|          0|
|          3|          0|          1|          1|
|          4|          1|          0|          0|
|          5|          1|          0|          1|
|          6|          1|          1|          0|
|          7|          1|          1|          1|
+-----------+-----------+-----------+-----------+
==

SELECT *
FROM test
WHERE int_col < 10
  AND long_col < 100;
--
+-----------+--------------------+---------------+------------------------+--------------------+
|int_col    |long_col            |float_col      |double_col              |char_col            |
+-----------+--------------------+---------------+------------------------+--------------------+
|         -1|                   1|              1|                      -1|         -1 1.000000|
|          2|                   4|     1.41421354|      2.8284271247461903|          2 1.414214|
|         -3|                   9|     1.73205078|      -5.196152422706632|         -3 1.732051|
|          4|                  16|              2|                       8|          4 2.000000|
|         -5|                  25|     2.23606801|     -11.180339887498949|         -5 2.236068|
|          6|                  36|     2.44948983|      14.696938456699067|          6 2.449490|
|         -7|                  49|     2.64575124|     -18.520259177452136|         -7 2.645751|
|          8|                  64|     2.82842708|      22.627416997969522|          8 2.828427|
|         -9|                  81|              3|                     -27|         -9 3.000000|
+-----------+--------------------+---------------+------------------------+--------------------+
==

SELECT int_col,
       int_col+100 AS alias_col,
       char_col AS char_col
FROM test
WHERE int_col < 10
  AND long_col < 100;
--
+-----------+-----------+--------------------+
|int_col    |alias_col  |char_col            |
+-----------+-----------+--------------------+
|         -1|         99|         -1 1.000000|
|          2|        102|          2 1.414214|
|         -3|         97|         -3 1.732051|
|          4|        104|          4 2.000000|
|         -5|         95|         -5 2.236068|
|          6|        106|          6 2.449490|
|         -7|         93|         -7 2.645751|
|          8|        108|          8 2.828427|
|         -9|         91|         -9 3.000000|
+-----------+-----------+--------------------+
==

# Nested queries.
SELECT *
FROM
  (SELECT *
   FROM
     (SELECT *
      FROM
        (SELECT *
         FROM test
         WHERE long_col < 100) a
      WHERE double_col<0) a
   WHERE long_col < 200) a
WHERE int_col < 10;
--
+-----------+--------------------+---------------+------------------------+--------------------+
|int_col    |long_col            |float_col      |double_col              |char_col            |
+-----------+--------------------+---------------+------------------------+--------------------+
|         -1|                   1|              1|                      -1|         -1 1.000000|
|         -3|                   9|     1.73205078|      -5.196152422706632|         -3 1.732051|
|         -5|                  25|     2.23606801|     -11.180339887498949|         -5 2.236068|
|         -7|                  49|     2.64575124|     -18.520259177452136|         -7 2.645751|
|         -9|                  81|              3|                     -27|         -9 3.000000|
+-----------+--------------------+---------------+------------------------+--------------------+
==

WITH subquery1 AS
  (SELECT *
   FROM test
   WHERE int_col < 10),
     subquery2 AS
  (SELECT *
   FROM subquery1
   WHERE long_col < 100)
SELECT *
FROM subquery2
WHERE double_col < 0;
--
[same as above]
==

SELECT NULL,
       1/NULL,
       int_col+NULL,
       int_col+long_col,
       float_col+NULL,
       -NULL
FROM test
WHERE long_col < 100
ORDER BY 4 NULLS LAST;
--
+----+--------+--------------+--------------------+----------------+-----+
|NULL|(1/NULL)|(int_col+NULL)|(int_col+long_col)  |(float_col+NULL)|-NULL|
+----+--------+--------------+--------------------+----------------+-----+
|NULL|    NULL|          NULL|                   0|            NULL| NULL|
|NULL|    NULL|          NULL|                   6|            NULL| NULL|
|NULL|    NULL|          NULL|                   6|            NULL| NULL|
|NULL|    NULL|          NULL|                  20|            NULL| NULL|
|NULL|    NULL|          NULL|                  20|            NULL| NULL|
|NULL|    NULL|          NULL|                  42|            NULL| NULL|
|NULL|    NULL|          NULL|                  42|            NULL| NULL|
|NULL|    NULL|          NULL|                  72|            NULL| NULL|
|NULL|    NULL|          NULL|                  72|            NULL| NULL|
|NULL|    NULL|          NULL|                NULL|            NULL| NULL|
+----+--------+--------------+--------------------+----------------+-----+
==

SELECT int_col "
this

is multi-line

column name
"
FROM test
WHERE int_col < 10
  AND long_col < 100
  AND double_col < 0;
--
+----------------------------------+
|
this

is multi-line

column name
|
+----------------------------------+
|                                -1|
|                                -3|
|                                -5|
|                                -7|
|                                -9|
+----------------------------------+
==

# Alias support.
SELECT int_col+100 AS alias_col,
       char_col AS char_col
FROM test
WHERE int_col < 10
  AND long_col < 100;
--
+-----------+--------------------+
|alias_col  |char_col            |
+-----------+--------------------+
|         99|         -1 1.000000|
|        102|          2 1.414214|
|         97|         -3 1.732051|
|        104|          4 2.000000|
|         95|         -5 2.236068|
|        106|          6 2.449490|
|         93|         -7 2.645751|
|        108|          8 2.828427|
|         91|         -9 3.000000|
+-----------+--------------------+
==

# The execution engine currently does not support self-join.
SELECT a.int_col,
       a.int_col*b.int_col,
       b.long_col
FROM test AS a,
     test AS b
WHERE a.int_col*b.int_col = b.long_col;
--
ERROR: NestedLoopsJoin does not support self-join yet
==

# The nested loops join is not a self-join, because the predicate "a.int_col<10" is pushed under the join, which results
# in a new relation.
SELECT a.int_col,
       a.int_col*b.int_col,
       b.long_col
FROM test AS a,
     test AS b
WHERE a.long_col < 100
  AND a.int_col*b.int_col = b.long_col;
--
+-----------+---------------------+--------------------+
|int_col    |(a.int_col*b.int_col)|long_col            |
+-----------+---------------------+--------------------+
|         -1|                    1|                   1|
|          2|                    4|                   4|
|         -3|                    9|                   9|
|          4|                   16|                  16|
|         -5|                   25|                  25|
|          6|                   36|                  36|
|         -7|                   49|                  49|
|          8|                   64|                  64|
|         -9|                   81|                  81|
+-----------+---------------------+--------------------+
==

# Hash join does not support the self-join.
SELECT a.int_col,
       b.int_col
FROM test AS a,
     test AS b
WHERE a.int_col = b.int_col;
--
ERROR: Self-join is not supported
==

# This is not a self-join, because there is a Select under the HashJoin for "a.long_col < 50".
SELECT a.int_col,
       b.int_col
FROM test AS a,
     test AS b
WHERE a.long_col < 50
  AND a.int_col = b.int_col;
--
+-----------+-----------+
|int_col    |int_col    |
+-----------+-----------+
|         -1|         -1|
|          2|          2|
|         -3|         -3|
|          4|          4|
|         -5|         -5|
|          6|          6|
|         -7|         -7|
+-----------+-----------+
==

# Hash join does not support a join predicate with two different types of attributes.
SELECT a.int_col,
       b.long_col
FROM test AS a,
     test AS b
WHERE a.int_col = b.long_col;
--
ERROR: Equality join predicate between two attributes of different types is not allowed in HashJoin
==

# Join with char-type attributes.
SELECT a.char_col,
       b.char_col,
       a.int_col
FROM test AS a,
     test AS b
WHERE a.char_col = b.char_col
  AND a.long_col < 100;
--
+--------------------+--------------------+-----------+
|char_col            |char_col            |int_col    |
+--------------------+--------------------+-----------+
|          0 0.000000|          0 0.000000|       NULL|
|         -1 1.000000|         -1 1.000000|         -1|
|          2 1.414214|          2 1.414214|          2|
|         -3 1.732051|         -3 1.732051|         -3|
|          4 2.000000|          4 2.000000|          4|
|         -5 2.236068|         -5 2.236068|         -5|
|          6 2.449490|          6 2.449490|          6|
|         -7 2.645751|         -7 2.645751|         -7|
|          8 2.828427|          8 2.828427|          8|
|         -9 3.000000|         -9 3.000000|         -9|
+--------------------+--------------------+-----------+
==

# Cross-product
SELECT a.int_col,
       b.int_col
FROM test AS a,
     test AS b
WHERE a.int_col BETWEEN 0 AND 3
  AND b.int_col BETWEEN 0 AND 3;
--
+-----------+-----------+
|int_col    |int_col    |
+-----------+-----------+
|          2|          2|
+-----------+-----------+
==

# Mixed multiple nested loops joins and hash joins
SELECT a.int_col,
       b.int_col,
       c.float_col,
       d.float_col+a.int_col,
       d.float_col,
       b.double_col,
       c.int_col
FROM test AS a,
     test AS b,
     test AS c,
  (SELECT a.float_col
   FROM test AS a,
        test AS b
   WHERE a.int_col < 5) AS d
WHERE a.int_col = b.int_col
  AND a.long_col = b.long_col
  AND c.float_col > d.float_col+a.int_col
  AND d.float_col <= 1
  AND a.int_col BETWEEN 0 AND 5
  AND c.float_col > 4.7;
--
+-----------+-----------+---------------+-----------------------+---------------+------------------------+-----------+
|int_col    |int_col    |float_col      |(d.float_col+a.int_col)|float_col      |double_col              |int_col    |
+-----------+-----------+---------------+-----------------------+---------------+------------------------+-----------+
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.79583168|                      3|              1|      2.8284271247461903|        -23|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
|          2|          2|     4.89897966|                      3|              1|      2.8284271247461903|         24|
+-----------+-----------+---------------+-----------------------+---------------+------------------------+-----------+
==

SELECT COUNT(*)
FROM
  (SELECT a.float_col
   FROM test a,
        test b
   WHERE a.float_col > 1) c;
--
+--------------------+
|COUNT(*)            |
+--------------------+
|                 575|
+--------------------+
==

SELECT DATE '2000-02-29' + INTERVAL '1 year',
       DATE '1998-03-31' + INTERVAL '1 month',
       DATE '2000-03-31' - INTERVAL '1 month',
       DATE '2000-01-31' + INTERVAL '1 month',
       DATETIME '2000-02-29' + INTERVAL '1 day',
       DATE '2000-02-29' - INTERVAL '1 year'
FROM test
WHERE int_col = 2;
--
+------------------------------------------------+-------------------------------------------------+-------------------------------------------------+-------------------------------------------------+--------------------------------------------------+------------------------------------------------+
|(Date('2000-02-29')+YearMonthInterval('1 year'))|(Date('1998-03-31')+YearMonthInterval('1 month'))|(Date('2000-03-31')-YearMonthInterval('1 month'))|(Date('2000-01-31')+YearMonthInterval('1 month'))|(Datetime('2000-02-29')+DatetimeInterval('1 day'))|(Date('2000-02-29')-YearMonthInterval('1 year'))|
+------------------------------------------------+-------------------------------------------------+-------------------------------------------------+-------------------------------------------------+--------------------------------------------------+------------------------------------------------+
|                                      2001-02-28|                                       1998-04-30|                                       2000-02-29|                                       2000-02-29|                               2000-03-01T00:00:00|                                      1999-02-28|
+------------------------------------------------+-------------------------------------------------+-------------------------------------------------+-------------------------------------------------+--------------------------------------------------+------------------------------------------------+
==

SELECT DATETIME '2000-02-29' - DATETIME '2000-02-28',
       DATETIME '2000-02-29' - DATETIME '1999-02-28'
FROM test
WHERE int_col = 2;
--
+-----------------------------------------------+-----------------------------------------------+
|(Datetime('2000-02-29')-Datetime('2000-02-28'))|(Datetime('2000-02-29')-Datetime('1999-02-28'))|
+-----------------------------------------------+-----------------------------------------------+
|                                 1 day 00:00:00|                              366 days 00:00:00|
+-----------------------------------------------+-----------------------------------------------+
==

SELECT INTERVAL '1 year' + INTERVAL '1 month',
       INTERVAL '1 year' + INTERVAL '13 month',
       INTERVAL '21 day' + INTERVAL '14 day',
       INTERVAL '21 day' * 4
FROM test
WHERE int_col = 2;
--
+----------------------------------------------------------+-----------------------------------------------------------+-------------------------------------------------------+----------------------------------------+
|(YearMonthInterval('1 year')+YearMonthInterval('1 month'))|(YearMonthInterval('1 year')+YearMonthInterval('13 month'))|(DatetimeInterval('21 day')+DatetimeInterval('14 day'))|(DatetimeInterval('21 day')*4)          |
+----------------------------------------------------------+-----------------------------------------------------------+-------------------------------------------------------+----------------------------------------+
|                                              1 year 1 mon|                                              2 years 1 mon|                                       35 days 00:00:00|                        84 days 00:00:00|
+----------------------------------------------------------+-----------------------------------------------------------+-------------------------------------------------------+----------------------------------------+
==

SELECT DATE '+1980-02-29' + INTERVAL '1 year'
FROM test
WHERE int_col = 2;
--
+-------------------------------------------------+
|(Date('+1980-02-29')+YearMonthInterval('1 year'))|
+-------------------------------------------------+
|                                       1981-02-28|
+-------------------------------------------------+
==

SELECT int_col
FROM test
GROUP BY int_col
ORDER BY int_col;
--
+-----------+
|int_col    |
+-----------+
|        -23|
|        -21|
|        -19|
|        -17|
|        -15|
|        -13|
|        -11|
|         -9|
|         -7|
|         -5|
|         -3|
|         -1|
|          2|
|          4|
|          6|
|          8|
|         12|
|         14|
|         16|
|         18|
|         22|
|         24|
+-----------+
==

SELECT COUNT(*),
       COUNT(1),
       COUNT(0),
       SUM(int_col) / COUNT(*),
       AVG(int_col+0) * COUNT(1),
       MAX(double_col+100),
       MIN(float_col+1)
FROM test;
--
+--------------------+--------------------+--------------------+-----------------------+---------------------------+------------------------+------------------+
|COUNT(*)            |COUNT(1)            |COUNT(0)            |(SUM(int_col)/COUNT(*))|(AVG((int_col+0))*COUNT(1))|MAX((double_col+100))   |MIN((float_col+1))|
+--------------------+--------------------+--------------------+-----------------------+---------------------------+------------------------+------------------+
|                  25|                  25|                  25|                      0|        -20.454545454545457|      217.57550765359252|                 1|
+--------------------+--------------------+--------------------+-----------------------+---------------------------+------------------------+------------------+
==

SELECT COUNT(NULL)
FROM test;
--
+--------------------+
|COUNT(NULL)         |
+--------------------+
|                   0|
+--------------------+
==

SELECT long_col/100 AS group_col,
       COUNT(*),
       SUM(int_col)
FROM test
GROUP BY group_col
HAVING MIN(float_col) > 0;
--
+--------------------+--------------------+--------------------+
|group_col           |COUNT(*)            |SUM(int_col)        |
+--------------------+--------------------+--------------------+
|                   1|                   5|                   2|
|                   2|                   3|                 -16|
|                   3|                   2|                  -1|
|                   4|                   3|                   1|
|                   5|                   2|                   1|
+--------------------+--------------------+--------------------+
==

SELECT COUNT(*),
       long_col/100 AS group_col1,
       long_col/50 AS group_col2
FROM test
GROUP BY group_col1,
         group_col2
HAVING COUNT(*) > 0
AND group_col2 > 5
ORDER BY group_col1,
         group_col2;
--
+--------------------+--------------------+--------------------+
|COUNT(*)            |group_col1          |group_col2          |
+--------------------+--------------------+--------------------+
|                   1|                   3|                   6|
|                   1|                   3|                   7|
|                   2|                   4|                   8|
|                   1|                   4|                   9|
|                   1|                   5|                  10|
|                   1|                   5|                  11|
+--------------------+--------------------+--------------------+
==


CREATE TABLE dates (value DATETIME);
INSERT INTO dates VALUES (DATETIME '2016-01-02 10:20:30');
INSERT INTO dates VALUES (DATETIME '2016-02-03 11:21:31');
INSERT INTO dates VALUES (DATETIME '2016-03-04 12:22:32');

SELECT EXTRACT(YEAR FROM value) * 10000 +
       EXTRACT(MONTH FROM value) * 100 +
       EXTRACT(DAY FROM value) AS date_digits
FROM dates;
--
+--------------------+
|date_digits         |
+--------------------+
|            20160102|
|            20160203|
|            20160304|
+--------------------+
==

SELECT SUM(EXTRACT(SECOND FROM value))
FROM dates;
--
+-------------------------------+
|SUM(EXTRACT(SECOND FROM value))|
+-------------------------------+
|                             93|
+-------------------------------+
==

SELECT EXTRACT(HOUR FROM value + INTERVAL '1 hour')
FROM dates;
--
+-----------------------------------------------------+
|EXTRACT(HOUR FROM (value+DatetimeInterval('1 hour')))|
+-----------------------------------------------------+
|                                                   11|
|                                                   12|
|                                                   13|
+-----------------------------------------------------+
==

SELECT i,
       CASE i%2
         WHEN 1 THEN 'odd'
         ELSE 'even'
       END
FROM generate_series(1, 5) AS gs(i);
--
+-----------+--------------------------------------------+
|i          |CASE (i%2) WHEN 1 THEN 'odd' ELSE 'even' END|
+-----------+--------------------------------------------+
|          1|                                         odd|
|          2|                                        even|
|          3|                                         odd|
|          4|                                        even|
|          5|                                         odd|
+-----------+--------------------------------------------+
==

SELECT SUM(CASE WHEN i < 4 THEN i
                ELSE i * i
           END) AS result
FROM generate_series(1, 5) AS gs(i);
--
+--------------------+
|result              |
+--------------------+
|                  47|
+--------------------+
==

SELECT *
FROM generate_series(1, 3) AS gs1(i),
     generate_series(1, 3) AS gs2(j)
WHERE CASE WHEN i < j THEN i
           ELSE j
       END > 1;
--
+-----------+-----------+
|i          |j          |
+-----------+-----------+
|          2|          2|
|          2|          3|
|          3|          2|
|          3|          3|
+-----------+-----------+
==

SELECT i AS odd
FROM generate_series(0, 10, 1) AS gs1(i)
WHERE
  NOT EXISTS (
    SELECT *
    FROM generate_series(0, 10, 2) AS gs2(even)
    WHERE i = even
  );
--
+-----------+
|odd        |
+-----------+
|          1|
|          3|
|          5|
|          7|
|          9|
+-----------+
==

SELECT i
FROM generate_series(0, 100, 3) AS gs1(i)
WHERE
  EXISTS (
    SELECT *
    FROM generate_series(0, 100, 5) AS gs2(i)
    WHERE gs1.i = gs2.i
  )
  AND NOT EXISTS (
    SELECT *
    FROM generate_series(0, 100, 10) AS gs3(i)
    WHERE gs1.i = gs3.i
  )
  AND (i < 40 OR i > 60);
--
+-----------+
|i          |
+-----------+
|         15|
|         75|
+-----------+
==

# SUBSTRING function
SELECT char_col,
       SUBSTRING(char_col FROM 1 FOR 2) AS negative_value
FROM test
WHERE SUBSTRING(char_col FROM 1 FOR 1) = '-'
--
+--------------------+--------------+
|char_col            |negative_value|
+--------------------+--------------+
|         -1 1.000000|            -1|
|         -3 1.732051|            -3|
|         -5 2.236068|            -5|
|         -7 2.645751|            -7|
|         -9 3.000000|            -9|
|        -11 3.316625|            -1|
|        -13 3.605551|            -1|
|        -15 3.872983|            -1|
|        -17 4.123106|            -1|
|        -19 4.358899|            -1|
|        -21 4.582576|            -2|
|        -23 4.795832|            -2|
+--------------------+--------------+
==

# IN predicate
SELECT *
FROM generate_series(1, 5) AS gs(i)
WHERE i IN (2, 4);
--
+-----------+
|i          |
+-----------+
|          2|
|          4|
+-----------+
==

SELECT *
FROM generate_series(1, 5) AS gs(i)
WHERE i NOT IN (2, 4);
--
+-----------+
|i          |
+-----------+
|          1|
|          3|
|          5|
+-----------+
==

SELECT *
FROM generate_series(1, 5) AS gs(i)
WHERE i NOT IN (i*i-6, CASE WHEN i < 3 THEN 1 ELSE 4 END);
--
+-----------+
|i          |
+-----------+
|          2|
|          5|
+-----------+
==

SELECT *
FROM generate_series(1, 10) AS gs(i)
WHERE i NOT IN (
  SELECT *
  FROM generate_series(2, 10, 2)
);
--
+-----------+
|i          |
+-----------+
|          1|
|          3|
|          5|
|          7|
|          9|
+-----------+
==

# Scalar subquery expression
SELECT *
FROM test
WHERE double_col < 0
  AND long_col > (SELECT AVG(long_col) FROM test);
--
+-----------+--------------------+---------------+------------------------+--------------------+
|int_col    |long_col            |float_col      |double_col              |char_col            |
+-----------+--------------------+---------------+------------------------+--------------------+
|        -15|                 225|     3.87298346|     -58.094750193111253|        -15 3.872983|
|        -17|                 289|     4.12310553|     -70.092795635500224|        -17 4.123106|
|        -19|                 361|     4.35889912|      -82.81907992727281|        -19 4.358899|
|        -21|                 441|      4.5825758|     -96.234089594072643|        -21 4.582576|
|        -23|                 529|     4.79583168|     -110.30412503619254|        -23 4.795832|
+-----------+--------------------+---------------+------------------------+--------------------+
==

SELECT i + (
  SELECT SUM(j)
  FROM generate_series(1, 10) AS gs(j))
FROM generate_series(1, 5) AS gs(i);
--
+----------------------+
|(i+SubqueryExpression)|
+----------------------+
|                    56|
|                    57|
|                    58|
|                    59|
|                    60|
+----------------------+
==

SELECT i + (
  SELECT SUM(j)
  FROM generate_series(1, 10) AS gs1(j),
       generate_series(1, 10) AS gs2(k)
  WHERE i = k AND j <= k)
FROM generate_series(1, 5) AS gs(i);
--
+----------------------+
|(i+SubqueryExpression)|
+----------------------+
|                     2|
|                     5|
|                     9|
|                    14|
|                    20|
+----------------------+
==

# This query is to test that the output columns have the correct alias name as specified.
SELECT *
FROM (
  SELECT i, SUM(i) AS sum
  FROM generate_series(1, 2) AS gs(i)
  GROUP BY i
) t1 JOIN (
  SELECT j, AVG(j) AS avg
  FROM generate_series(1, 2) AS gs(j)
  GROUP BY j
) t2 ON i = j;
--
+-----------+--------------------+-----------+------------------------+
|i          |sum                 |j          |avg                     |
+-----------+--------------------+-----------+------------------------+
|          1|                   1|          1|                       1|
|          2|                   2|          2|                       2|
+-----------+--------------------+-----------+------------------------+
==

# Same shared subplan referenced multiple times.
WITH t(x, y) AS (
  SELECT i % 5, i
  FROM generate_series(1, 20) AS g(i)
)
SELECT *
FROM t
WHERE t.y = (
  SELECT MAX(y)
  FROM t t1
  WHERE t.x = t1.x
)
ORDER BY x;
--
+-----------+-----------+
|x          |y          |
+-----------+-----------+
|          0|         20|
|          1|         16|
|          2|         17|
|          3|         18|
|          4|         19|
+-----------+-----------+
==

SELECT COUNT(*)
FROM test,
     (SELECT AVG(long_col) a FROM test) subquery
WHERE double_col < 0
  AND long_col > subquery.a;
--
+--------------------+
|COUNT(*)            |
+--------------------+
|                   5|
+--------------------+
==

# Window Aggregation Test.
SELECT char_col, long_col, avg(long_col) OVER w FROM test
WINDOW w AS
(ORDER BY char_col DESC NULLS LAST
 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW);
--
+--------------------+--------------------+------------------------+
|char_col            |long_col            |avg(long_col)           |
+--------------------+--------------------+------------------------+
|          8 2.828427|                  64|                      64|
|          6 2.449490|                  36|                      50|
|          4 2.000000|                  16|      38.666666666666664|
|         24 4.898979|                 576|                     173|
|         22 4.690416|                 484|      235.19999999999999|
|         20 4.472136|                 400|      262.66666666666669|
|          2 1.414214|                   4|      225.71428571428572|
|         18 4.242641|                 324|                     238|
|         16 4.000000|                 256|                     240|
|         14 3.741657|                 196|      235.59999999999999|
|         12 3.464102|                 144|      227.27272727272728|
|         10 3.162278|                 100|      216.66666666666666|
|          0 0.000000|                   0|                     200|
|         -9 3.000000|                  81|                   191.5|
|         -7 2.645751|                  49|                     182|
|         -5 2.236068|                  25|                172.1875|
|         -3 1.732051|                   9|      162.58823529411765|
|        -23 4.795832|                 529|      182.94444444444446|
|        -21 4.582576|                 441|      196.52631578947367|
|        -19 4.358899|                 361|                  204.75|
|        -17 4.123106|                 289|      208.76190476190476|
|        -15 3.872983|                 225|                   209.5|
|        -13 3.605551|                 169|       207.7391304347826|
|        -11 3.316625|                 121|                 204.125|
|         -1 1.000000|                   1|                     196|
+--------------------+--------------------+------------------------+
==

SELECT long_col, int_col, avg(int_col) OVER w FROM test
WINDOW w AS
(ORDER BY long_col DESC NULLS LAST
 ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING);
--
+--------------------+-----------+------------------------+
|long_col            |int_col    |avg(int_col)            |
+--------------------+-----------+------------------------+
|                 576|         24|       7.666666666666667|
|                 529|        -23|                     0.5|
|                 484|         22|                     0.5|
|                 441|        -21|                  -10.25|
|                 400|       NULL|                       0|
|                 361|        -19|                   -9.75|
|                 324|         18|                    -0.5|
|                 289|        -17|     -3.3999999999999999|
|                 256|         16|      3.2000000000000002|
|                 225|        -15|                      -3|
|                 196|         14|      2.7999999999999998|
|                 169|        -13|     -2.6000000000000001|
|                 144|         12|                     0.5|
|                 121|        -11|                   -5.25|
|                 100|       NULL|                       0|
|                  81|         -9|                   -4.75|
|                  64|          8|                    -0.5|
|                  49|         -7|     -1.3999999999999999|
|                  36|          6|                     1.2|
|                  25|         -5|                      -1|
|                  16|          4|     0.80000000000000004|
|                   9|         -3|    -0.59999999999999998|
|                   4|          2|                     0.5|
|                   1|         -1|    -0.66666666666666663|
|                   0|       NULL|                     0.5|
+--------------------+-----------+------------------------+
==

SELECT float_col, double_col, avg(double_col) OVER
(ORDER BY float_col DESC NULLS LAST, int_col ASC NULLS FIRST
 RANGE BETWEEN 2 PRECEDING AND 2 FOLLOWING)
FROM test;
--
+---------------+------------------------+------------------------+
|float_col      |double_col              |avg(double_col)         |
+---------------+------------------------+------------------------+
|     4.89897966|      117.57550765359254|     -5.2010907233390986|
|     4.79583168|     -110.30412503619254|     -3.3458568752518572|
|     4.69041586|      103.18914671611546|     -3.3458568752518572|
|      4.5825758|     -96.234089594072643|     -4.2942570191393745|
|     4.47213602|                    NULL|     -4.2942570191393745|
|     4.35889912|      -82.81907992727281|     -3.1771278735018194|
|      4.2426405|      76.367532368147124|     -3.1771278735018194|
|     4.12310553|     -70.092795635500224|     -3.6217507631683268|
|              4|                      64|     -3.0100796703699935|
|     3.87298346|     -58.094750193111253|     -3.0100796703699935|
|      3.7416575|       52.38320341483518|     -3.0100796703699935|
|     3.60555124|     -46.872166581031856|     -3.1193833079868254|
|     3.46410155|      41.569219381653056|     -3.1193833079868254|
|     3.31662488|       -36.4828726939094|     -2.8361542397614437|
|      3.1622777|                    NULL|     -2.8361542397614437|
|              3|                     -27|     -2.7526926834086507|
|     2.82842708|      22.627416997969522|     -8.4826069851706123|
|     2.64575124|     -18.520259177452136|     -9.0010404404476727|
|     2.44948983|      14.696938456699067|     -4.1547599319129516|
|     2.23606801|     -11.180339887498949|     -4.2708832009567148|
|              2|                       8|     0.11724429467951912|
|     1.73205078|      -5.196152422706632|     -4.7108157334609286|
|     1.41421354|      2.8284271247461903|     -5.1226841602152344|
|              1|                      -1|      -1.638218767582549|
|              0|                    NULL|      1.1580686755098886|
+---------------+------------------------+------------------------+
==

SELECT sum(avg(int_col) OVER w) FROM test
WINDOW w AS
(PARTITION BY char_col
 ORDER BY long_col
 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW);
--
+------------------------+
|sum(avg(int_col))       |
+------------------------+
|                     -18|
+------------------------+
