Prevent NULLS FIRST/LAST from being used in CREATE INDEX and other statements.

FossilOrigin-Name: bb9767a287097a615aeb4abdba689b10e1a1c36c016c8e55905b508075e62c86
diff --git a/src/expr.c b/src/expr.c
index c5072aa..6948c5a 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -1653,6 +1653,7 @@
 ** Set the sort order for the last element on the given ExprList.
 */
 void sqlite3ExprListSetSortOrder(ExprList *p, int iSortOrder, int eNulls){
+  struct ExprList_item *pItem;
   if( p==0 ) return;
   assert( p->nExpr>0 );
 
@@ -1666,10 +1667,18 @@
        || eNulls==SQLITE_SO_DESC 
   );
 
-  if( iSortOrder==SQLITE_SO_UNDEFINED ) iSortOrder = SQLITE_SO_ASC;
-  p->a[p->nExpr-1].sortFlags = (u8)iSortOrder;
-  if( eNulls!=SQLITE_SO_UNDEFINED && iSortOrder!=eNulls ){
-    p->a[p->nExpr-1].sortFlags |= KEYINFO_ORDER_BIGNULL;
+  pItem = &p->a[p->nExpr-1];
+  assert( pItem->bNulls==0 );
+  if( iSortOrder==SQLITE_SO_UNDEFINED ){
+    iSortOrder = SQLITE_SO_ASC;
+  }
+  pItem->sortFlags = (u8)iSortOrder;
+
+  if( eNulls!=SQLITE_SO_UNDEFINED ){
+    pItem->bNulls = 1;
+    if( iSortOrder!=eNulls ){
+      pItem->sortFlags |= KEYINFO_ORDER_BIGNULL;
+    }
   }
 }