You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jc...@apache.org on 2016/03/02 12:00:15 UTC

[04/18] hive git commit: HIVE-12994: Implement support for NULLS FIRST/NULLS LAST (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)

http://git-wip-us.apache.org/repos/asf/hive/blob/9350b693/ql/src/test/results/clientpositive/tez/vectorized_ptf.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/vectorized_ptf.q.out b/ql/src/test/results/clientpositive/tez/vectorized_ptf.q.out
index 431e334..3d1f22f 100644
--- a/ql/src/test/results/clientpositive/tez/vectorized_ptf.q.out
+++ b/ql/src/test/results/clientpositive/tez/vectorized_ptf.q.out
@@ -157,8 +157,9 @@ TOK_QUERY
                   p_mfgr
             TOK_ORDERBY
                TOK_TABSORTCOLNAMEASC
-                  TOK_TABLE_OR_COL
-                     p_name
+                  TOK_NULLS_FIRST
+                     TOK_TABLE_OR_COL
+                        p_name
    TOK_INSERT
       TOK_DESTINATION
          TOK_DIR
@@ -183,8 +184,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             r
          TOK_SELEXPR
             TOK_FUNCTION
@@ -196,8 +198,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             dr
          TOK_SELEXPR
             TOK_FUNCTION
@@ -211,8 +214,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
                   TOK_WINDOWRANGE
                      preceding
                         unbounded
@@ -241,6 +245,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string), p_name (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: p_mfgr (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -313,13 +318,14 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int, _col7: double
                         partition by: _col2
                         raw input shape:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col1 (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: _col2 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -342,7 +348,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         partition by: _col2
                         raw input shape:
                         window functions:
@@ -511,10 +517,11 @@ TOK_QUERY
                   p_mfgr
             TOK_SORTBY
                TOK_TABSORTCOLNAMEASC
-                  .
-                     TOK_TABLE_OR_COL
-                        j
-                     p_name
+                  TOK_NULLS_FIRST
+                     .
+                        TOK_TABLE_OR_COL
+                           j
+                        p_name
    TOK_INSERT
       TOK_DESTINATION
          TOK_DIR
@@ -547,8 +554,9 @@ TOK_QUERY
                               p_mfgr
                         TOK_ORDERBY
                            TOK_TABSORTCOLNAMEASC
-                              TOK_TABLE_OR_COL
-                                 p_name
+                              TOK_NULLS_FIRST
+                                 TOK_TABLE_OR_COL
+                                    p_name
             deltaSz
 
 
@@ -578,6 +586,7 @@ STAGE PLANS:
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: p_partkey (type: int)
+                      null sort order: a
                       sort order: +
                       Map-reduce partition columns: p_partkey (type: int)
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -646,6 +655,7 @@ STAGE PLANS:
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: p_partkey (type: int)
+                      null sort order: a
                       sort order: +
                       Map-reduce partition columns: p_partkey (type: int)
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -715,6 +725,7 @@ STAGE PLANS:
                 Statistics: Num rows: 28 Data size: 17646 Basic stats: COMPLETE Column stats: NONE
                 Reduce Output Operator
                   key expressions: _col2 (type: string), _col1 (type: string)
+                  null sort order: aa
                   sort order: ++
                   Map-reduce partition columns: _col2 (type: string)
                   Statistics: Num rows: 28 Data size: 17646 Basic stats: COMPLETE Column stats: NONE
@@ -737,13 +748,14 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2
                         raw input shape:
                   Statistics: Num rows: 28 Data size: 17646 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col1 (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: _col2 (type: string)
                     Statistics: Num rows: 28 Data size: 17646 Basic stats: COMPLETE Column stats: NONE
@@ -766,7 +778,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         partition by: _col2
                         raw input shape:
                         window functions:
@@ -886,8 +898,9 @@ TOK_QUERY
                   p_mfgr
             TOK_ORDERBY
                TOK_TABSORTCOLNAMEASC
-                  TOK_TABLE_OR_COL
-                     p_name
+                  TOK_NULLS_FIRST
+                     TOK_TABLE_OR_COL
+                        p_name
    TOK_INSERT
       TOK_DESTINATION
          TOK_DIR
@@ -924,6 +937,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string), p_name (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: p_mfgr (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -996,7 +1010,7 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2
                         raw input shape:
@@ -1114,8 +1128,9 @@ TOK_QUERY
                   p_mfgr
             TOK_ORDERBY
                TOK_TABSORTCOLNAMEASC
-                  TOK_TABLE_OR_COL
-                     p_name
+                  TOK_NULLS_FIRST
+                     TOK_TABLE_OR_COL
+                        p_name
    TOK_INSERT
       TOK_DESTINATION
          TOK_DIR
@@ -1140,8 +1155,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             r
          TOK_SELEXPR
             TOK_FUNCTION
@@ -1153,8 +1169,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             dr
          TOK_SELEXPR
             TOK_FUNCTION
@@ -1168,8 +1185,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
                   TOK_WINDOWRANGE
                      preceding
                         unbounded
@@ -1198,6 +1216,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string), p_name (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: p_mfgr (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -1270,13 +1289,14 @@ STAGE PLANS:
                       Partition table definition
                         input alias: abc
                         name: noop
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int, _col7: double
                         partition by: _col2
                         raw input shape:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col1 (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: _col2 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -1299,7 +1319,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         partition by: _col2
                         raw input shape:
                         window functions:
@@ -1444,8 +1464,9 @@ TOK_QUERY
                   p_mfgr
             TOK_ORDERBY
                TOK_TABSORTCOLNAMEASC
-                  TOK_TABLE_OR_COL
-                     p_name
+                  TOK_NULLS_FIRST
+                     TOK_TABLE_OR_COL
+                        p_name
    TOK_INSERT
       TOK_DESTINATION
          TOK_DIR
@@ -1470,8 +1491,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             r
          TOK_SELEXPR
             TOK_FUNCTION
@@ -1483,8 +1505,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             dr
          TOK_SELEXPR
             TOK_TABLE_OR_COL
@@ -1507,8 +1530,9 @@ TOK_QUERY
                               p_mfgr
                         TOK_ORDERBY
                            TOK_TABSORTCOLNAMEASC
-                              TOK_TABLE_OR_COL
-                                 p_name
+                              TOK_NULLS_FIRST
+                                 TOK_TABLE_OR_COL
+                                    p_name
             deltaSz
 
 
@@ -1533,6 +1557,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string), p_name (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: p_mfgr (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -1605,13 +1630,14 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2
                         raw input shape:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col1 (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: _col2 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -1634,7 +1660,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         partition by: _col2
                         raw input shape:
                         window functions:
@@ -1782,8 +1808,9 @@ TOK_QUERY
                   p_mfgr
             TOK_ORDERBY
                TOK_TABSORTCOLNAMEASC
-                  TOK_TABLE_OR_COL
-                     p_name
+                  TOK_NULLS_FIRST
+                     TOK_TABLE_OR_COL
+                        p_name
    TOK_INSERT
       TOK_DESTINATION
          TOK_DIR
@@ -1808,8 +1835,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             r
          TOK_SELEXPR
             TOK_FUNCTION
@@ -1821,8 +1849,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             dr
          TOK_SELEXPR
             TOK_TABLE_OR_COL
@@ -1845,8 +1874,9 @@ TOK_QUERY
                               p_mfgr
                         TOK_ORDERBY
                            TOK_TABSORTCOLNAMEASC
-                              TOK_TABLE_OR_COL
-                                 p_name
+                              TOK_NULLS_FIRST
+                                 TOK_TABLE_OR_COL
+                                    p_name
             deltaSz
       TOK_GROUPBY
          TOK_TABLE_OR_COL
@@ -1878,6 +1908,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string), p_name (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: p_mfgr (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -1950,7 +1981,7 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2
                         raw input shape:
@@ -1966,6 +1997,7 @@ STAGE PLANS:
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                       Reduce Output Operator
                         key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: int)
+                        null sort order: aaa
                         sort order: +++
                         Map-reduce partition columns: _col0 (type: string)
                         Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -1988,7 +2020,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         partition by: _col0
                         raw input shape:
                         window functions:
@@ -2131,8 +2163,9 @@ TOK_QUERY
                      p_mfgr
                TOK_ORDERBY
                   TOK_TABSORTCOLNAMEASC
-                     TOK_TABLE_OR_COL
-                        p_name
+                     TOK_NULLS_FIRST
+                        TOK_TABLE_OR_COL
+                           p_name
          TOK_TABREF
             TOK_TABNAME
                part_orc
@@ -2178,6 +2211,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string), p_name (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: p_mfgr (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -2246,6 +2280,7 @@ STAGE PLANS:
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: p_partkey (type: int)
+                      null sort order: a
                       sort order: +
                       Map-reduce partition columns: p_partkey (type: int)
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -2317,7 +2352,7 @@ STAGE PLANS:
                       Partition table definition
                         input alias: abc
                         name: noop
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         output shape: _col0: int, _col1: string, _col2: string, _col3: string, _col4: string, _col5: int, _col6: string, _col7: double, _col8: string
                         partition by: _col2
                         raw input shape:
@@ -2328,6 +2363,7 @@ STAGE PLANS:
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: _col0 (type: int)
+                      null sort order: a
                       sort order: +
                       Map-reduce partition columns: _col0 (type: int)
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -2458,8 +2494,9 @@ TOK_QUERY
                      p_mfgr
                TOK_ORDERBY
                   TOK_TABSORTCOLNAMEASC
-                     TOK_TABLE_OR_COL
-                        p_name
+                     TOK_NULLS_FIRST
+                        TOK_TABLE_OR_COL
+                           p_name
          =
             .
                TOK_TABLE_OR_COL
@@ -2505,6 +2542,7 @@ STAGE PLANS:
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: p_partkey (type: int)
+                      null sort order: a
                       sort order: +
                       Map-reduce partition columns: p_partkey (type: int)
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -2568,6 +2606,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string), p_name (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: p_mfgr (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -2678,7 +2717,7 @@ STAGE PLANS:
                       Partition table definition
                         input alias: abc
                         name: noop
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         output shape: _col0: int, _col1: string, _col2: string, _col3: string, _col4: string, _col5: int, _col6: string, _col7: double, _col8: string
                         partition by: _col2
                         raw input shape:
@@ -2689,6 +2728,7 @@ STAGE PLANS:
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: _col0 (type: int)
+                      null sort order: a
                       sort order: +
                       Map-reduce partition columns: _col0 (type: int)
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -2779,11 +2819,13 @@ TOK_QUERY
                   p_mfgr
             TOK_ORDERBY
                TOK_TABSORTCOLNAMEASC
-                  TOK_TABLE_OR_COL
-                     p_name
+                  TOK_NULLS_FIRST
+                     TOK_TABLE_OR_COL
+                        p_name
                TOK_TABSORTCOLNAMEDESC
-                  TOK_TABLE_OR_COL
-                     p_size
+                  TOK_NULLS_LAST
+                     TOK_TABLE_OR_COL
+                        p_size
    TOK_INSERT
       TOK_DESTINATION
          TOK_DIR
@@ -2808,11 +2850,13 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
                         TOK_TABSORTCOLNAMEDESC
-                           TOK_TABLE_OR_COL
-                              p_size
+                           TOK_NULLS_LAST
+                              TOK_TABLE_OR_COL
+                                 p_size
             r
 
 
@@ -2844,7 +2888,7 @@ STAGE PLANS:
                         Partition table definition
                           input alias: ptf_1
                           name: noopwithmap
-                          order by: p_name, p_size(DESC)
+                          order by: p_name ASC NULLS FIRST, p_size DESC NULLS LAST
                           output shape: p_name: string, p_mfgr: string, p_size: int
                           partition by: p_mfgr
                           raw input shape:
@@ -2853,6 +2897,7 @@ STAGE PLANS:
                     Map-side function: true
                     Reduce Output Operator
                       key expressions: p_mfgr (type: string), p_name (type: string), p_size (type: int)
+                      null sort order: aaz
                       sort order: ++-
                       Map-reduce partition columns: p_mfgr (type: string)
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -2923,7 +2968,7 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noopwithmap
-                        order by: _col1, _col5(DESC)
+                        order by: _col1 ASC NULLS FIRST, _col5 DESC NULLS LAST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2
                         raw input shape:
@@ -2931,6 +2976,7 @@ STAGE PLANS:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col1 (type: string), _col5 (type: int)
+                    null sort order: aaz
                     sort order: ++-
                     Map-reduce partition columns: _col2 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -2952,7 +2998,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col1, _col5(DESC)
+                        order by: _col1 ASC NULLS FIRST, _col5 DESC NULLS LAST
                         partition by: _col2
                         raw input shape:
                         window functions:
@@ -3076,8 +3122,9 @@ TOK_QUERY
                   p_mfgr
             TOK_ORDERBY
                TOK_TABSORTCOLNAMEASC
-                  TOK_TABLE_OR_COL
-                     p_name
+                  TOK_NULLS_FIRST
+                     TOK_TABLE_OR_COL
+                        p_name
    TOK_INSERT
       TOK_DESTINATION
          TOK_DIR
@@ -3102,8 +3149,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             r
          TOK_SELEXPR
             TOK_FUNCTION
@@ -3115,8 +3163,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             dr
          TOK_SELEXPR
             TOK_FUNCTION
@@ -3130,8 +3179,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
                   TOK_WINDOWRANGE
                      preceding
                         unbounded
@@ -3167,7 +3217,7 @@ STAGE PLANS:
                         Partition table definition
                           input alias: ptf_1
                           name: noopwithmap
-                          order by: p_name
+                          order by: p_name ASC NULLS FIRST
                           output shape: p_name: string, p_mfgr: string, p_size: int, p_retailprice: double
                           partition by: p_mfgr
                           raw input shape:
@@ -3176,6 +3226,7 @@ STAGE PLANS:
                     Map-side function: true
                     Reduce Output Operator
                       key expressions: p_mfgr (type: string), p_name (type: string)
+                      null sort order: aa
                       sort order: ++
                       Map-reduce partition columns: p_mfgr (type: string)
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -3247,7 +3298,7 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noopwithmap
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int, _col7: double
                         partition by: _col2
                         raw input shape:
@@ -3255,6 +3306,7 @@ STAGE PLANS:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col1 (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: _col2 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -3277,7 +3329,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         partition by: _col2
                         raw input shape:
                         window functions:
@@ -3418,8 +3470,9 @@ TOK_QUERY
                   p_mfgr
             TOK_ORDERBY
                TOK_TABSORTCOLNAMEASC
-                  TOK_TABLE_OR_COL
-                     p_name
+                  TOK_NULLS_FIRST
+                     TOK_TABLE_OR_COL
+                        p_name
    TOK_INSERT
       TOK_DESTINATION
          TOK_DIR
@@ -3444,8 +3497,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             r
          TOK_SELEXPR
             TOK_FUNCTION
@@ -3457,8 +3511,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             dr
          TOK_SELEXPR
             TOK_FUNCTION
@@ -3472,8 +3527,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
                   TOK_WINDOWRANGE
                      preceding
                         unbounded
@@ -3502,6 +3558,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string), p_name (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: p_mfgr (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -3574,13 +3631,14 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int, _col7: double
                         partition by: _col2
                         raw input shape:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col1 (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: _col2 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -3603,7 +3661,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         partition by: _col2
                         raw input shape:
                         window functions:
@@ -3750,11 +3808,13 @@ TOK_QUERY
                         p_mfgr
                   TOK_ORDERBY
                      TOK_TABSORTCOLNAMEASC
-                        TOK_TABLE_OR_COL
-                           p_mfgr
+                        TOK_NULLS_FIRST
+                           TOK_TABLE_OR_COL
+                              p_mfgr
                      TOK_TABSORTCOLNAMEASC
-                        TOK_TABLE_OR_COL
-                           p_name
+                        TOK_NULLS_FIRST
+                           TOK_TABLE_OR_COL
+                              p_name
    TOK_INSERT
       TOK_DESTINATION
          TOK_DIR
@@ -3779,8 +3839,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             r
          TOK_SELEXPR
             TOK_FUNCTION
@@ -3792,8 +3853,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             dr
          TOK_SELEXPR
             TOK_FUNCTION
@@ -3807,8 +3869,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
                   TOK_WINDOWRANGE
                      preceding
                         unbounded
@@ -3838,6 +3901,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string), p_name (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: p_mfgr (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -3910,7 +3974,7 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col2, _col1
+                        order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int, _col7: double
                         partition by: _col2
                         raw input shape:
@@ -3924,7 +3988,7 @@ STAGE PLANS:
                         Partition table definition
                           input alias: ptf_1
                           name: noopwithmap
-                          order by: _col2, _col1
+                          order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                           output shape: _col1: string, _col2: string, _col5: int, _col7: double
                           partition by: _col2
                           raw input shape:
@@ -3932,7 +3996,7 @@ STAGE PLANS:
                         Partition table definition
                           input alias: ptf_2
                           name: noop
-                          order by: _col2, _col1
+                          order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                           output shape: _col1: string, _col2: string, _col5: int, _col7: double
                           partition by: _col2
                           raw input shape:
@@ -3940,6 +4004,7 @@ STAGE PLANS:
                     Map-side function: true
                     Reduce Output Operator
                       key expressions: _col2 (type: string), _col1 (type: string)
+                      null sort order: aa
                       sort order: ++
                       Map-reduce partition columns: _col2 (type: string)
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -3962,7 +4027,7 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noopwithmap
-                        order by: _col2, _col1
+                        order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int, _col7: double
                         partition by: _col2
                         raw input shape:
@@ -3970,13 +4035,14 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_2
                         name: noop
-                        order by: _col2, _col1
+                        order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int, _col7: double
                         partition by: _col2
                         raw input shape:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col1 (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: _col2 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -3999,7 +4065,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         partition by: _col2
                         raw input shape:
                         window functions:
@@ -4153,8 +4219,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             TOK_INSERT
                TOK_DESTINATION
                   TOK_DIR
@@ -4178,8 +4245,9 @@ TOK_QUERY
                                     p_mfgr
                               TOK_ORDERBY
                                  TOK_TABSORTCOLNAMEASC
-                                    TOK_TABLE_OR_COL
-                                       p_name
+                                    TOK_NULLS_FIRST
+                                       TOK_TABLE_OR_COL
+                                          p_name
                      cd
                   TOK_SELEXPR
                      TOK_TABLE_OR_COL
@@ -4202,8 +4270,9 @@ TOK_QUERY
                                  p_mfgr
                            TOK_ORDERBY
                               TOK_TABSORTCOLNAMEASC
-                                 TOK_TABLE_OR_COL
-                                    p_name
+                                 TOK_NULLS_FIRST
+                                    TOK_TABLE_OR_COL
+                                       p_name
                         TOK_WINDOWRANGE
                            preceding
                               2
@@ -4254,6 +4323,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string), p_name (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: p_mfgr (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -4326,13 +4396,14 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int, _col7: double
                         partition by: _col2
                         raw input shape:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col1 (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: _col2 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -4355,7 +4426,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         partition by: _col2
                         raw input shape:
                         window functions:
@@ -4504,8 +4575,9 @@ TOK_QUERY
                      p_mfgr
                TOK_ORDERBY
                   TOK_TABSORTCOLNAMEASC
-                     TOK_TABLE_OR_COL
-                        p_name
+                     TOK_NULLS_FIRST
+                        TOK_TABLE_OR_COL
+                           p_name
          TOK_TABREF
             TOK_TABNAME
                part_orc
@@ -4546,10 +4618,11 @@ TOK_QUERY
                            p_mfgr
                      TOK_SORTBY
                         TOK_TABSORTCOLNAMEASC
-                           .
-                              TOK_TABLE_OR_COL
-                                 abc
-                              p_name
+                           TOK_NULLS_FIRST
+                              .
+                                 TOK_TABLE_OR_COL
+                                    abc
+                                 p_name
             r
          TOK_SELEXPR
             TOK_FUNCTION
@@ -4563,10 +4636,11 @@ TOK_QUERY
                            p_mfgr
                      TOK_SORTBY
                         TOK_TABSORTCOLNAMEASC
-                           .
-                              TOK_TABLE_OR_COL
-                                 abc
-                              p_name
+                           TOK_NULLS_FIRST
+                              .
+                                 TOK_TABLE_OR_COL
+                                    abc
+                                 p_name
             dr
          TOK_SELEXPR
             TOK_FUNCTION
@@ -4584,10 +4658,11 @@ TOK_QUERY
                            p_mfgr
                      TOK_SORTBY
                         TOK_TABSORTCOLNAMEASC
-                           .
-                              TOK_TABLE_OR_COL
-                                 abc
-                              p_name
+                           TOK_NULLS_FIRST
+                              .
+                                 TOK_TABLE_OR_COL
+                                    abc
+                                 p_name
             cd
          TOK_SELEXPR
             .
@@ -4610,10 +4685,11 @@ TOK_QUERY
                            p_mfgr
                      TOK_SORTBY
                         TOK_TABSORTCOLNAMEASC
-                           .
-                              TOK_TABLE_OR_COL
-                                 abc
-                              p_name
+                           TOK_NULLS_FIRST
+                              .
+                                 TOK_TABLE_OR_COL
+                                    abc
+                                 p_name
                   TOK_WINDOWRANGE
                      preceding
                         unbounded
@@ -4650,10 +4726,11 @@ TOK_QUERY
                               p_mfgr
                         TOK_SORTBY
                            TOK_TABSORTCOLNAMEASC
-                              .
-                                 TOK_TABLE_OR_COL
-                                    abc
-                                 p_name
+                              TOK_NULLS_FIRST
+                                 .
+                                    TOK_TABLE_OR_COL
+                                       abc
+                                    p_name
             deltaSz
 
 
@@ -4679,6 +4756,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string), p_name (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: p_mfgr (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -4747,6 +4825,7 @@ STAGE PLANS:
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: p_partkey (type: int)
+                      null sort order: a
                       sort order: +
                       Map-reduce partition columns: p_partkey (type: int)
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -4818,7 +4897,7 @@ STAGE PLANS:
                       Partition table definition
                         input alias: abc
                         name: noop
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         output shape: _col0: int, _col1: string, _col2: string, _col5: int, _col7: double
                         partition by: _col2
                         raw input shape:
@@ -4829,6 +4908,7 @@ STAGE PLANS:
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: _col0 (type: int)
+                      null sort order: a
                       sort order: +
                       Map-reduce partition columns: _col0 (type: int)
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -4849,6 +4929,7 @@ STAGE PLANS:
                 Statistics: Num rows: 28 Data size: 17646 Basic stats: COMPLETE Column stats: NONE
                 Reduce Output Operator
                   key expressions: _col2 (type: string), _col1 (type: string)
+                  null sort order: aa
                   sort order: ++
                   Map-reduce partition columns: _col2 (type: string)
                   Statistics: Num rows: 28 Data size: 17646 Basic stats: COMPLETE Column stats: NONE
@@ -4871,7 +4952,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         partition by: _col2
                         raw input shape:
                         window functions:
@@ -5027,8 +5108,9 @@ TOK_QUERY
                   p_mfgr
             TOK_ORDERBY
                TOK_TABSORTCOLNAMEASC
-                  TOK_TABLE_OR_COL
-                     p_name
+                  TOK_NULLS_FIRST
+                     TOK_TABLE_OR_COL
+                        p_name
    TOK_INSERT
       TOK_DESTINATION
          TOK_DIR
@@ -5066,6 +5148,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string), p_name (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: p_mfgr (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -5138,7 +5221,7 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2
                         raw input shape:
@@ -5154,6 +5237,7 @@ STAGE PLANS:
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                       Reduce Output Operator
                         key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: int)
+                        null sort order: aaa
                         sort order: +++
                         Map-reduce partition columns: _col0 (type: string), _col1 (type: string), _col2 (type: int)
                         Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -5287,8 +5371,9 @@ TOK_QUERY
                   p_mfgr
             TOK_ORDERBY
                TOK_TABSORTCOLNAMEASC
-                  TOK_TABLE_OR_COL
-                     p_mfgr
+                  TOK_NULLS_FIRST
+                     TOK_TABLE_OR_COL
+                        p_mfgr
    TOK_INSERT
       TOK_DESTINATION
          TOK_DIR
@@ -5321,8 +5406,9 @@ TOK_QUERY
                         p_mfgr
                   TOK_ORDERBY
                      TOK_TABSORTCOLNAMEASC
-                        TOK_TABLE_OR_COL
-                           p_brand
+                        TOK_NULLS_FIRST
+                           TOK_TABLE_OR_COL
+                              p_brand
                TOK_WINDOWRANGE
                   preceding
                      2
@@ -5360,6 +5446,7 @@ STAGE PLANS:
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                       Reduce Output Operator
                         key expressions: _col0 (type: string), _col1 (type: string)
+                        null sort order: aa
                         sort order: ++
                         Map-reduce partition columns: _col0 (type: string)
                         Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -5434,13 +5521,14 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col0
+                        order by: _col0 ASC NULLS FIRST
                         output shape: _col0: string, _col1: string, _col2: double
                         partition by: _col0
                         raw input shape:
                   Statistics: Num rows: 13 Data size: 8021 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col0 (type: string), _col1 (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: _col0 (type: string)
                     Statistics: Num rows: 13 Data size: 8021 Basic stats: COMPLETE Column stats: NONE
@@ -5463,7 +5551,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         partition by: _col0
                         raw input shape:
                         window functions:
@@ -5636,8 +5724,9 @@ TOK_QUERY
                   p_mfgr
             TOK_ORDERBY
                TOK_TABSORTCOLNAMEASC
-                  TOK_TABLE_OR_COL
-                     p_name
+                  TOK_NULLS_FIRST
+                     TOK_TABLE_OR_COL
+                        p_name
    TOK_INSERT
       TOK_DESTINATION
          TOK_TAB
@@ -5663,8 +5752,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_SORTBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             r
          TOK_SELEXPR
             TOK_FUNCTION
@@ -5676,8 +5766,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_SORTBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             dr
          TOK_SELEXPR
             TOK_FUNCTION
@@ -5691,8 +5782,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_SORTBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
                   TOK_WINDOWRANGE
                      preceding
                         unbounded
@@ -5727,8 +5819,9 @@ TOK_QUERY
                               p_mfgr
                         TOK_SORTBY
                            TOK_TABSORTCOLNAMEASC
-                              TOK_TABLE_OR_COL
-                                 p_size
+                              TOK_NULLS_FIRST
+                                 TOK_TABLE_OR_COL
+                                    p_size
                      TOK_WINDOWVALUES
                         preceding
                            5
@@ -5745,11 +5838,13 @@ TOK_QUERY
                            p_mfgr
                      TOK_SORTBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_mfgr
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_mfgr
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             r
          TOK_SELEXPR
             TOK_FUNCTION
@@ -5761,11 +5856,13 @@ TOK_QUERY
                            p_mfgr
                      TOK_SORTBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_mfgr
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_mfgr
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             dr
          TOK_SELEXPR
             TOK_FUNCTION
@@ -5777,11 +5874,13 @@ TOK_QUERY
                            p_mfgr
                      TOK_SORTBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_mfgr
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_mfgr
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             cud
          TOK_SELEXPR
             TOK_FUNCTION
@@ -5802,11 +5901,13 @@ TOK_QUERY
                         p_mfgr
                   TOK_SORTBY
                      TOK_TABSORTCOLNAMEASC
-                        TOK_TABLE_OR_COL
-                           p_mfgr
+                        TOK_NULLS_FIRST
+                           TOK_TABLE_OR_COL
+                              p_mfgr
                      TOK_TABSORTCOLNAMEASC
-                        TOK_TABLE_OR_COL
-                           p_name
+                        TOK_NULLS_FIRST
+                           TOK_TABLE_OR_COL
+                              p_name
                TOK_WINDOWRANGE
                   preceding
                      2
@@ -5841,6 +5942,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string), p_name (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: p_mfgr (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -5913,13 +6015,14 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int, _col7: double
                         partition by: _col2
                         raw input shape:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col1 (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: _col2 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -5928,6 +6031,7 @@ STAGE PLANS:
                     auto parallelism: true
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col5 (type: int)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: _col2 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -5950,7 +6054,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         partition by: _col2
                         raw input shape:
                         window functions:
@@ -6021,7 +6125,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col5
+                        order by: _col5 ASC NULLS FIRST
                         partition by: _col2
                         raw input shape:
                         window functions:
@@ -6038,6 +6142,7 @@ STAGE PLANS:
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                     Reduce Output Operator
                       key expressions: _col2 (type: string), _col1 (type: string)
+                      null sort order: aa
                       sort order: ++
                       Map-reduce partition columns: _col2 (type: string)
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -6060,7 +6165,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col3, _col2
+                        order by: _col3 ASC NULLS FIRST, _col2 ASC NULLS FIRST
                         partition by: _col3
                         raw input shape:
                         window functions:
@@ -6355,8 +6460,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_mfgr
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_mfgr
             TOK_PARTITIONINGSPEC
                TOK_DISTRIBUTEBY
                   TOK_TABLE_OR_COL
@@ -6365,11 +6471,13 @@ TOK_QUERY
                      p_name
                TOK_ORDERBY
                   TOK_TABSORTCOLNAMEASC
-                     TOK_TABLE_OR_COL
-                        p_mfgr
+                     TOK_NULLS_FIRST
+                        TOK_TABLE_OR_COL
+                           p_mfgr
                   TOK_TABSORTCOLNAMEASC
-                     TOK_TABLE_OR_COL
-                        p_name
+                     TOK_NULLS_FIRST
+                        TOK_TABLE_OR_COL
+                           p_name
          TOK_PARTITIONINGSPEC
             TOK_DISTRIBUTEBY
                TOK_TABLE_OR_COL
@@ -6378,11 +6486,13 @@ TOK_QUERY
                   p_name
             TOK_ORDERBY
                TOK_TABSORTCOLNAMEASC
-                  TOK_TABLE_OR_COL
-                     p_mfgr
+                  TOK_NULLS_FIRST
+                     TOK_TABLE_OR_COL
+                        p_mfgr
                TOK_TABSORTCOLNAMEASC
-                  TOK_TABLE_OR_COL
-                     p_name
+                  TOK_NULLS_FIRST
+                     TOK_TABLE_OR_COL
+                        p_name
    TOK_INSERT
       TOK_DESTINATION
          TOK_DIR
@@ -6460,6 +6570,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string)
+                    null sort order: a
                     sort order: +
                     Map-reduce partition columns: p_mfgr (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -6532,14 +6643,14 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col2
+                        order by: _col2 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2
                         raw input shape:
                       Partition table definition
                         input alias: ptf_2
                         name: noop
-                        order by: _col2
+                        order by: _col2 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2
                         raw input shape:
@@ -6553,7 +6664,7 @@ STAGE PLANS:
                         Partition table definition
                           input alias: ptf_1
                           name: noopwithmap
-                          order by: _col2, _col1
+                          order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                           output shape: _col1: string, _col2: string, _col5: int
                           partition by: _col2, _col1
                           raw input shape:
@@ -6561,7 +6672,7 @@ STAGE PLANS:
                         Partition table definition
                           input alias: ptf_2
                           name: noop
-                          order by: _col2, _col1
+                          order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                           output shape: _col1: string, _col2: string, _col5: int
                           partition by: _col2, _col1
                           raw input shape:
@@ -6569,6 +6680,7 @@ STAGE PLANS:
                     Map-side function: true
                     Reduce Output Operator
                       key expressions: _col2 (type: string), _col1 (type: string)
+                      null sort order: aa
                       sort order: ++
                       Map-reduce partition columns: _col2 (type: string), _col1 (type: string)
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -6591,7 +6703,7 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noopwithmap
-                        order by: _col2, _col1
+                        order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2, _col1
                         raw input shape:
@@ -6599,13 +6711,14 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_2
                         name: noop
-                        order by: _col2, _col1
+                        order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2, _col1
                         raw input shape:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col1 (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: _col2 (type: string), _col1 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -6628,7 +6741,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col2, _col1
+                        order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                         partition by: _col2, _col1
                         raw input shape:
                         window functions:
@@ -6807,8 +6920,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_mfgr
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_mfgr
             TOK_PARTITIONINGSPEC
                TOK_DISTRIBUTEBY
                   TOK_TABLE_OR_COL
@@ -6817,19 +6931,22 @@ TOK_QUERY
                      p_name
                TOK_ORDERBY
                   TOK_TABSORTCOLNAMEASC
-                     TOK_TABLE_OR_COL
-                        p_mfgr
+                     TOK_NULLS_FIRST
+                        TOK_TABLE_OR_COL
+                           p_mfgr
                   TOK_TABSORTCOLNAMEASC
-                     TOK_TABLE_OR_COL
-                        p_name
+                     TOK_NULLS_FIRST
+                        TOK_TABLE_OR_COL
+                           p_name
          TOK_PARTITIONINGSPEC
             TOK_DISTRIBUTEBY
                TOK_TABLE_OR_COL
                   p_mfgr
             TOK_ORDERBY
                TOK_TABSORTCOLNAMEASC
-                  TOK_TABLE_OR_COL
-                     p_mfgr
+                  TOK_NULLS_FIRST
+                     TOK_TABLE_OR_COL
+                        p_mfgr
    TOK_INSERT
       TOK_DESTINATION
          TOK_DIR
@@ -6851,8 +6968,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             r
          TOK_SELEXPR
             TOK_FUNCTION
@@ -6864,8 +6982,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             dr
          TOK_SELEXPR
             TOK_TABLE_OR_COL
@@ -6882,8 +7001,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
                   TOK_WINDOWRANGE
                      preceding
                         unbounded
@@ -6914,6 +7034,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string)
+                    null sort order: a
                     sort order: +
                     Map-reduce partition columns: p_mfgr (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -6986,20 +7107,21 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col2
+                        order by: _col2 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2
                         raw input shape:
                       Partition table definition
                         input alias: ptf_2
                         name: noop
-                        order by: _col2
+                        order by: _col2 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2
                         raw input shape:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col1 (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: _col2 (type: string), _col1 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -7022,13 +7144,14 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col2, _col1
+                        order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2, _col1
                         raw input shape:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string)
+                    null sort order: a
                     sort order: +
                     Map-reduce partition columns: _col2 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -7051,13 +7174,14 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col2
+                        order by: _col2 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2
                         raw input shape:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col1 (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: _col2 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -7080,7 +7204,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         partition by: _col2
                         raw input shape:
                         window functions:
@@ -7257,19 +7381,22 @@ TOK_QUERY
                            p_name
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_mfgr
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_mfgr
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             TOK_PARTITIONINGSPEC
                TOK_DISTRIBUTEBY
                   TOK_TABLE_OR_COL
                      p_mfgr
                TOK_ORDERBY
                   TOK_TABSORTCOLNAMEASC
-                     TOK_TABLE_OR_COL
-                        p_mfgr
+                     TOK_NULLS_FIRST
+                        TOK_TABLE_OR_COL
+                           p_mfgr
    TOK_INSERT
       TOK_DESTINATION
          TOK_DIR
@@ -7291,8 +7418,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             r
          TOK_SELEXPR
             TOK_FUNCTION
@@ -7304,8 +7432,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             dr
          TOK_SELEXPR
             TOK_TABLE_OR_COL
@@ -7322,8 +7451,9 @@ TOK_QUERY
                            p_mfgr
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             s1
 
 
@@ -7349,6 +7479,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string), p_name (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: p_mfgr (type: string), p_name (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -7421,20 +7552,21 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col2, _col1
+                        order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2, _col1
                         raw input shape:
                       Partition table definition
                         input alias: ptf_2
                         name: noop
-                        order by: _col2, _col1
+                        order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2, _col1
                         raw input shape:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string)
+                    null sort order: a
                     sort order: +
                     Map-reduce partition columns: _col2 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -7457,20 +7589,21 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col2
+                        order by: _col2 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2
                         raw input shape:
                       Partition table definition
                         input alias: ptf_2
                         name: noop
-                        order by: _col2
+                        order by: _col2 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2
                         raw input shape:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col1 (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: _col2 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -7493,7 +7626,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col1
+                        order by: _col1 ASC NULLS FIRST
                         partition by: _col2
                         raw input shape:
                         window functions:
@@ -7670,19 +7803,22 @@ TOK_QUERY
                            p_name
                      TOK_ORDERBY
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_mfgr
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_mfgr
                         TOK_TABSORTCOLNAMEASC
-                           TOK_TABLE_OR_COL
-                              p_name
+                           TOK_NULLS_FIRST
+                              TOK_TABLE_OR_COL
+                                 p_name
             TOK_PARTITIONINGSPEC
                TOK_DISTRIBUTEBY
                   TOK_TABLE_OR_COL
                      p_mfgr
                TOK_ORDERBY
                   TOK_TABSORTCOLNAMEASC
-                     TOK_TABLE_OR_COL
-                        p_mfgr
+                     TOK_NULLS_FIRST
+                        TOK_TABLE_OR_COL
+                           p_mfgr
          TOK_PARTITIONINGSPEC
             TOK_DISTRIBUTEBY
                TOK_TABLE_OR_COL
@@ -7691,11 +7827,13 @@ TOK_QUERY
                   p_name
             TOK_ORDERBY
                TOK_TABSORTCOLNAMEASC
-                  TOK_TABLE_OR_COL
-                     p_mfgr
+                  TOK_NULLS_FIRST
+                     TOK_TABLE_OR_COL
+                        p_mfgr
                TOK_TABSORTCOLNAMEASC
-                  TOK_TABLE_OR_COL
-                     p_name
+                  TOK_NULLS_FIRST
+                     TOK_TABLE_OR_COL
+                        p_name
    TOK_INSERT
       TOK_DESTINATION
          TOK_DIR
@@ -7774,6 +7912,7 @@ STAGE PLANS:
                   GatherStats: false
                   Reduce Output Operator
                     key expressions: p_mfgr (type: string), p_name (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: p_mfgr (type: string), p_name (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -7846,20 +7985,21 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col2, _col1
+                        order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2, _col1
                         raw input shape:
                       Partition table definition
                         input alias: ptf_2
                         name: noop
-                        order by: _col2, _col1
+                        order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2, _col1
                         raw input shape:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string)
+                    null sort order: a
                     sort order: +
                     Map-reduce partition columns: _col2 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -7882,7 +8022,7 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noop
-                        order by: _col2
+                        order by: _col2 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2
                         raw input shape:
@@ -7896,7 +8036,7 @@ STAGE PLANS:
                         Partition table definition
                           input alias: ptf_1
                           name: noopwithmap
-                          order by: _col2, _col1
+                          order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                           output shape: _col1: string, _col2: string, _col5: int
                           partition by: _col2, _col1
                           raw input shape:
@@ -7905,6 +8045,7 @@ STAGE PLANS:
                     Map-side function: true
                     Reduce Output Operator
                       key expressions: _col2 (type: string), _col1 (type: string)
+                      null sort order: aa
                       sort order: ++
                       Map-reduce partition columns: _col2 (type: string), _col1 (type: string)
                       Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -7927,7 +8068,7 @@ STAGE PLANS:
                       Partition table definition
                         input alias: ptf_1
                         name: noopwithmap
-                        order by: _col2, _col1
+                        order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                         output shape: _col1: string, _col2: string, _col5: int
                         partition by: _col2, _col1
                         raw input shape:
@@ -7935,6 +8076,7 @@ STAGE PLANS:
                   Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col2 (type: string), _col1 (type: string)
+                    null sort order: aa
                     sort order: ++
                     Map-reduce partition columns: _col2 (type: string), _col1 (type: string)
                     Statistics: Num rows: 26 Data size: 16042 Basic stats: COMPLETE Column stats: NONE
@@ -7957,7 +8099,7 @@ STAGE PLANS:
                       Windowing table definition
                         input alias: ptf_1
                         name: windowingtablefunction
-                        order by: _col2, _col1
+                        order by: _col2 ASC NULLS FIRST, _col1 ASC NULLS FIRST
                         partition by: _col2, _col1
                         raw input shape:
                         window functions:
@@ -8134,19 +8276,22 @@ TOK_QUERY
                         p_name
                   TOK_ORDERBY
                      TOK_TABSORTCOLNAMEASC
-                        TOK_TABLE_OR_COL
-                           p_mfgr
+                        TOK_NULLS_FIRST
+                           TOK_TABLE_OR_COL
+                              p_mfgr
                      TOK_TABSORTCOLNAMEASC
-                        TOK_TABLE_OR_COL
-                           p_name
+                        TOK_NULLS_FIRST
+                           TOK_TABLE_OR_COL
+                              p_name
             TOK_PARTITIONINGSPEC
                

<TRUNCATED>