<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class=""> +ssize_t<br class="">+sql_index_tuple_size(struct space *space, struct index *idx)<br class="">+{<br class="">+<span class="Apple-tab-span" style="white-space: pre;">     </span>assert(space != NULL);<br class="">+<span class="Apple-tab-span" style="white-space: pre;">      </span>assert(idx != NULL);<br class="">+<span class="Apple-tab-span" style="white-space: pre;">        </span>assert(idx->def->space_id == space->def->id);<br class="">+<span class="Apple-tab-span" style="white-space: pre;">   </span>ssize_t tuple_count = idx->vtab->size(idx);<br class="">+<span class="Apple-tab-span" style="white-space: pre;">   </span>ssize_t space_size = space->vtab->bsize(space);<br class=""></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">1. Lets use wrappers: index_size() and space_bsize() - they are defined</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">already.</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""></div></blockquote><div><br class=""></div>Done:<br class=""><div><br class=""></div><div><div>+++ b/src/box/sql/analyze.c</div><div>@@ -1197,9 +1197,10 @@ sql_index_tuple_size(struct space *space, struct index *idx)</div><div>        assert(space != NULL);</div><div>        assert(idx != NULL);</div><div>        assert(idx->def->space_id == space->def->id);</div><div>-       ssize_t tuple_count = idx->vtab->size(idx);</div><div>-       ssize_t space_size = space->vtab->bsize(space);</div><div>-       ssize_t avg_tuple_size = DIV_OR_ZERO(space_size, tuple_count);</div><div>+       ssize_t tuple_count = index_size(idx);</div><div>+       ssize_t space_size = space_bsize(space);</div><div>+       ssize_t avg_tuple_size = tuple_count != 0 ?</div><div>+                                (space_size / tuple_count) : 0;</div></div><br class=""><blockquote type="cite" class=""><div class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">diff --git a/src/box/sql/select.c b/src/box/sql/select.c<br class="">index 0df8a71d4..391b7e0a2 100644<br class="">--- a/src/box/sql/select.c<br class="">+++ b/src/box/sql/select.c<br class="">@@ -1588,20 +1588,19 @@ generateSortTail(Parse * pParse,<span class="Apple-tab-span" style="white-space: pre;">  </span>/* Parsing context */<br class="">  * the SQLITE_ENABLE_COLUMN_METADATA compile-time option is used.<br class="">  */<br class=""> #ifdef SQLITE_ENABLE_COLUMN_METADATA<br class="">-#define columnType(A,B,C,D,E,F) columnTypeImpl(A,B,D,E,F)<br class="">+#define columnType(A,B,C,D,E) columnTypeImpl(A,B,D,E)<br class=""> #else<span class="Apple-tab-span" style="white-space: pre;">        </span><span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-tab-span" style="white-space: pre;">  </span>/* if !defined(SQLITE_ENABLE_COLUMN_METADATA) */<br class="">-#define columnType(A,B,C,D,E,F) columnTypeImpl(A,B,F)<br class="">+#define columnType(A,B,C,D,E) columnTypeImpl(A,B)<br class=""> #endif<br class=""> static enum field_type<br class="">-columnTypeImpl(NameContext * pNC, Expr * pExpr,<br class="">+columnTypeImpl(NameContext * pNC, Expr * pExpr<br class=""> #ifdef SQLITE_ENABLE_COLUMN_METADATA<br class="">-<span class="Apple-tab-span" style="white-space: pre;">        </span><span class="Apple-converted-space"> </span>      const char **pzOrigTab, const char **pzOrigCol,<br class="">+<span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-converted-space"> </span>      , const char **pzOrigTab, const char **pzOrigCol,<br class=""></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">2. As I can see, the third argument is always NULL. Lets remove it</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">too.</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""></div></blockquote><div><br class=""></div><div>Done:</div><div><br class=""></div><div><div>@@ -1655,8 +1655,8 @@ columnTypeImpl(NameContext * pNC, Expr * pExpr</div><div>                                        sNC.pNext = pNC;</div><div>                                        sNC.pParse = pNC->pParse;</div><div>                                        column_type =</div><div>-                                           columnType(&sNC, p, 0,</div><div>-                                                      &zOrigTab, &zOrigCol);</div><div>+                                           columnType(&sNC, p, &zOrigTab,</div><div>+                                                      &zOrigCol);</div><div><br class=""></div><div><div>@@ -1685,7 +1685,7 @@ columnTypeImpl(NameContext * pNC, Expr * pExpr</div><div>                        sNC.pNext = pNC;</div><div>                        sNC.pParse = pNC->pParse;</div><div>                        column_type =</div><div>-                           columnType(&sNC, p, 0, &zOrigTab, &zOrigCol);</div><div>+                           columnType(&sNC, p, &zOrigTab, &zOrigCol);</div><div><br class=""></div><div><div>@@ -1921,7 +1921,7 @@ sqlite3SelectAddColumnTypeAndCollation(Parse * pParse,            /* Parsing contexts */</div><div>        for (i = 0, pCol = pTab->aCol; i < pTab->nCol; i++, pCol++) {</div><div>                enum field_type type;</div><div>                p = a[i].pExpr;</div><div>-               type = columnType(&sNC, p, 0, 0, 0);</div><div>+               type = columnType(&sNC, p, 0, 0);</div></div></div></div><br class=""><blockquote type="cite" class=""><div class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">diff --git a/src/box/sql/sqliteInt.h b/src/box/sql/sqliteInt.h<br class="">index 59662cf14..8ca8e808f 100644<br class="">--- a/src/box/sql/sqliteInt.h<br class="">+++ b/src/box/sql/sqliteInt.h<br class="">@@ -1396,6 +1396,11 @@ struct BusyHandler {<br class="">  */<br class=""> #define IsPowerOfTwo(X) (((X)&((X)-1))==0)<br class=""> +#ifdef ZERO_OR_DIV<br class="">+#undef ZERO_OR_DIV<br class="">+#endif<br class="">+#define DIV_OR_ZERO(NUM, DENOM) (((DENOM) != 0) ? ((NUM) / (DENOM)) : 0)<br class=""></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">3.</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Divide by 0: *exists*</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Programmers:</span><a href="https://pm1.narvii.com/6585/b5b717574d0d6250181c18aadd89fbe0b3c7bf3a_hq.jpg" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">https://pm1.narvii.com/6585/b5b717574d0d6250181c18aadd89fbe0b3c7bf3a_hq.jpg</a><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Lets just inline it. And what is ZERO_OR_DIV?</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""></div></blockquote><div><br class=""></div><div>It was just typo in naming. Anyway, I have removed this macro:</div><div><br class=""></div><div><div>+++ b/src/box/sql/sqliteInt.h</div><div>@@ -1389,11 +1389,6 @@ struct BusyHandler {</div><div>  */</div><div> #define IsPowerOfTwo(X) (((X)&((X)-1))==0)</div><div> </div><div>-#ifdef ZERO_OR_DIV</div><div>-#undef ZERO_OR_DIV</div><div>-#endif</div><div>-#define DIV_OR_ZERO(NUM, DENOM) (((DENOM) != 0) ? ((NUM) / (DENOM)) : 0)</div><div>-</div></div><br class=""><blockquote type="cite" class=""><div class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">diff --git a/src/box/sql/where.c b/src/box/sql/where.c<br class="">index 2a2630281..51b53c2df 100644<br class="">--- a/src/box/sql/where.c<br class="">+++ b/src/box/sql/where.c<br class="">@@ -2545,15 +2537,31 @@ whereLoopAddBtreeIndex(WhereLoopBuilder * pBuilder,<span class="Apple-tab-span" style="white-space: pre;">     </span>/* The WhereLoop factory */<br class=""> <span class="Apple-tab-span" style="white-space: pre;">    </span><span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-converted-space"> </span>* seek only. Then, if this is a non-covering index, add the cost of<br class=""> <span class="Apple-tab-span" style="white-space: pre;">     </span><span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-converted-space"> </span>* visiting the rows in the main table.<br class=""> <span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-converted-space"> </span>*/<br class="">-<span class="Apple-tab-span" style="white-space: pre;">   </span><span class="Apple-tab-span" style="white-space: pre;">  </span>rCostIdx =<br class="">-<span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-converted-space"> </span>   pNew->nOut + 1 +<br class="">-<span class="Apple-tab-span" style="white-space: pre;">        </span><span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-converted-space"> </span>   (15 * pProbe->szIdxRow) / pSrc->pTab->szTabRow;<br class="">+<span class="Apple-tab-span" style="white-space: pre;">   </span><span class="Apple-tab-span" style="white-space: pre;">  </span>struct space *space =<br class="">+<span class="Apple-tab-span" style="white-space: pre;">       </span><span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-tab-span" style="white-space: pre;">  </span>space_by_id(SQLITE_PAGENO_TO_SPACEID(pProbe->tnum));<br class="">+<span class="Apple-tab-span" style="white-space: pre;">     </span><span class="Apple-tab-span" style="white-space: pre;">  </span>assert(space != NULL);<br class="">+<span class="Apple-tab-span" style="white-space: pre;">      </span><span class="Apple-tab-span" style="white-space: pre;">  </span>struct index *idx =<br class="">+<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-tab-span" style="white-space: pre;">  </span>space_index(space,<br class="">+<span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-converted-space"> </span>   SQLITE_PAGENO_TO_INDEXID(pProbe->tnum));<br class="">+<span class="Apple-tab-span" style="white-space: pre;">        </span><span class="Apple-tab-span" style="white-space: pre;">  </span>assert(idx != NULL);<br class="">+<span class="Apple-tab-span" style="white-space: pre;">        </span><span class="Apple-tab-span" style="white-space: pre;">  </span>/*<br class="">+<span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-converted-space"> </span>* FIXME: currently, the procedure below makes no<br class="">+<span class="Apple-tab-span" style="white-space: pre;">     </span><span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-converted-space"> </span>* sense, since there are no partial indexes, so<br class="">+<span class="Apple-tab-span" style="white-space: pre;">      </span><span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-converted-space"> </span>* all indexes in the space feature the same<br class="">+<span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-converted-space"> </span>* average tuple size.<br class=""></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">4. Do not forget about Vinyl. In it even with no partial indexes different</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">ones can contain different tuple count, tuples of different size (due to</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">specific of secondary indexes disk data structure). Now it does not support SQL,</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">but will do.</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""></div></blockquote><div><br class=""></div>Ok, updated comment (and inlined macro):<br class=""><div><br class=""></div><div><div>--- a/src/box/sql/where.c</div><div>+++ b/src/box/sql/where.c</div><div>@@ -2544,14 +2544,17 @@ whereLoopAddBtreeIndex(WhereLoopBuilder * pBuilder,     /* The WhereLoop factory */</div><div>                 * FIXME: currently, the procedure below makes no</div><div>                 * sense, since there are no partial indexes, so</div><div>                 * all indexes in the space feature the same</div><div>-                * average tuple size.</div><div>+                * average tuple size. Moreover, secondary</div><div>+                * indexes in Vinyl engine may contain different</div><div>+                * tuple count of different sizes.</div><div>                 */</div><div>                ssize_t avg_tuple_size = sql_index_tuple_size(space, idx);</div><div>                struct index *pk = space_index(space, 0);</div><div>                assert(pProbe->pTable == pSrc->pTab);</div><div>                ssize_t avg_tuple_size_pk = sql_index_tuple_size(space, pk);</div><div>-               uint32_t partial_index_cost = DIV_OR_ZERO((15 * avg_tuple_size),</div><div>-                                                         avg_tuple_size_pk);</div><div>+               uint32_t partial_index_cost =</div><div>+                       avg_tuple_size_pk != 0 ?</div><div>+                       (15 * avg_tuple_size) / avg_tuple_size_pk : 0;</div></div><br class=""><blockquote type="cite" class=""><div class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">diff --git a/test/sql-tap/analyze9.test.lua b/test/sql-tap/analyze9.test.lua<br class="">index 4ce575e90..3b3d52f67 100755<br class="">--- a/test/sql-tap/analyze9.test.lua<br class="">+++ b/test/sql-tap/analyze9.test.lua<br class="">+-- These tests are commented until query planer will be stable.<br class=""></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">5. What do you mean saying 'unstable'? The test is flaky or incorrect?</span></div></blockquote><br class=""></div><div>Both.</div><br class=""></div></body></html>