Show symbolic SELECT names in EXPLAIN QUERY PLAN output when compiling with
SQLITE_ENABLE_SELECTTRACE.

FossilOrigin-Name: 16c22ff8189c2beaf03f3fcab2434bbd9d2d9960b54598dc62489d829568f669
diff --git a/manifest b/manifest
index 29697c2..8ef9b14 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C In\sthe\scompile_options\spragma,\sshow\sthe\sactual\svalue\sof\sthe\nSQLITE_ENABLE_CEROD\scompile-time\soption,\sif\sit\sexists.
-D 2018-03-19T16:09:36.383
+C Show\ssymbolic\sSELECT\snames\sin\sEXPLAIN\sQUERY\sPLAN\soutput\swhen\scompiling\swith\nSQLITE_ENABLE_SELECTTRACE.
+D 2018-03-19T16:59:22.525
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F Makefile.in 7016fc56c6b9bfe5daac4f34be8be38d8c0b5fab79ccbfb764d3b23bf1c6fff3
@@ -441,7 +441,7 @@
 F src/dbpage.c 8db4c97f630e7d83f884ea75caf1ffd0988c160e9d530194d93721c80821e0f6
 F src/dbstat.c 7a4ba8518b6369ef3600c49cf9c918ad979acba610b2aebef1b656d649b96720
 F src/delete.c 20c8788451dc737a967c87ea53ad43544d617f5b57d32ccce8bd52a0daf9e89b
-F src/expr.c 904f85e5f5fa232488cbb662fcf3306ae203728751468670fb9840a9b1886abc
+F src/expr.c a750629a0a14805485f8f39d7a72061a996e30e95dc084f1e4002be0b4d9ec18
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c d617daf66b5515e2b42c1405b2b4984c30ca50fb705ab164271a9bf66c69e331
 F src/func.c 94f42cba2cc1c34aeaa441022ba0170ec3fec4bba54db4e0ded085c6dc0fdc51
@@ -574,7 +574,7 @@
 F src/walker.c da987a20d40145c0a03c07d8fefcb2ed363becc7680d0500d9c79915591f5b1f
 F src/where.c 7cae47e813393d70c6d327fdf000fcb30f76b1b0b5a5b52ff6402e0c658de32c
 F src/whereInt.h 82c04c5075308abbac59180c8bad5ecb45b07453981f60a53f3c7dee21e1e971
-F src/wherecode.c e1aaadd8fec650037cfbf27d1b3470338fb3b58fec34d11082df16fe9a08fbd7
+F src/wherecode.c 051ee5c07e19e0c823f5967657a878dee3f178735b7ff0c08978d602cc47899a
 F src/whereexpr.c 53532be687e12f3cd314f1e204cd4fbdac7ad250e918a182b048121e16e828ae
 F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
 F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd
@@ -1712,7 +1712,7 @@
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 30704d2a52d37717d8b34a402c99ea32453e5c1a9840037dba96591f4acc1503
-R 948fd22db623d1822c5dd56df59e09be
+P 1ec339fd109b31e1d2b1e73345bd7a00c3d755f2c45c14d050a8203969163d60
+R 14934bc398e01ad8706c67a5fd7e4aee
 U drh
-Z ea6de7e0ab684bd3025cd78cad9267f5
+Z a7b300e166343731d98b86b915f652d8
diff --git a/manifest.uuid b/manifest.uuid
index 3815614..0fac55b 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-1ec339fd109b31e1d2b1e73345bd7a00c3d755f2c45c14d050a8203969163d60
\ No newline at end of file
+16c22ff8189c2beaf03f3fcab2434bbd9d2d9960b54598dc62489d829568f669
\ No newline at end of file
diff --git a/src/expr.c b/src/expr.c
index d2fad0f..4e33e66 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -2613,6 +2613,12 @@
         pExpr->op==TK_IN?"LIST":"SCALAR",
         pParse->iNextSelectId
     );
+#if SELECTTRACE_ENABLED
+    if( ExprHasProperty(pExpr, EP_xIsSelect) && pExpr->x.pSelect!=0 ){
+       zMsg = sqlite3MPrintf(pParse->db, "%z (%s)", zMsg,
+                             pExpr->x.pSelect->zSelName);
+    }
+#endif
     sqlite3VdbeAddOp4(v, OP_Explain, pParse->iSelectId, 0, 0, zMsg, P4_DYNAMIC);
   }
 #endif
diff --git a/src/wherecode.c b/src/wherecode.c
index e40a940..377c4d1 100644
--- a/src/wherecode.c
+++ b/src/wherecode.c
@@ -153,7 +153,12 @@
     sqlite3StrAccumInit(&str, db, zBuf, sizeof(zBuf), SQLITE_MAX_LENGTH);
     sqlite3StrAccumAppendAll(&str, isSearch ? "SEARCH" : "SCAN");
     if( pItem->pSelect ){
+#if SELECTTRACE_ENABLED
+      sqlite3XPrintf(&str, " SUBQUERY %d (%s)",
+                     pItem->iSelectId, pItem->pSelect->zSelName);
+#else
       sqlite3XPrintf(&str, " SUBQUERY %d", pItem->iSelectId);
+#endif
     }else{
       sqlite3XPrintf(&str, " TABLE %s", pItem->zName);
     }