<div dir="ltr">Diff for the newer version of patch after fixing remarks:<div><br></div><div><div> </div><div>diff --git a/src/box/sql/analyze.c b/src/box/sql/analyze.c</div><div>index f0054c5..d95d534 100644</div><div>--- a/src/box/sql/analyze.c</div><div>+++ b/src/box/sql/analyze.c</div><div>@@ -1123,6 +1123,8 @@ analyzeDatabase(Parse * pParse)</div><div> <span style="white-space:pre">   </span>iTab = pParse->nTab;</div><div> <span style="white-space:pre">     </span>for (k = sqliteHashFirst(&pSchema->tblHash); k; k = sqliteHashNext(k)) {</div><div> <span style="white-space:pre">             </span>Table *pTab = (Table *) sqliteHashData(k);</div><div>+<span style="white-space:pre">           </span>if (space_is_view(pTab))</div><div>+<span style="white-space:pre">                     </span>continue;</div><div> <span style="white-space:pre">           </span>analyzeOneTable(pParse, pTab, 0, iStatCur, iMem, iTab);</div><div> <span style="white-space:pre">     </span>}</div><div> <span style="white-space:pre">   </span>loadAnalysis(pParse);</div><div>@@ -1179,8 +1181,12 @@ sqlite3Analyze(Parse * pParse, Token * pName)</div><div> <span style="white-space:pre">            </span>/* Form 2:  Analyze table named */</div><div> <span style="white-space:pre">         </span>z = sqlite3NameFromToken(db, pName);</div><div> <span style="white-space:pre">                </span>if (z) {</div><div>-<span style="white-space:pre">                     </span>if ((pTab = sqlite3LocateTable(pParse, 0, z)) != 0) {</div><div>-<span style="white-space:pre">                                </span>analyzeTable(pParse, pTab, 0);</div><div>+<span style="white-space:pre">                       </span>if ((pTab = sqlite3LocateTable(pParse, 0, z))) {</div><div>+<span style="white-space:pre">                             </span>if (space_is_view(pTab))</div><div>+<span style="white-space:pre">                                     </span>sqlite3ErrorMsg(pParse, "VIEWs aren't "</div><div>+<span style="white-space:pre">                                        </span>"allowed to be analyzed");</div><div>+<span style="white-space:pre">                         </span>else</div><div>+<span style="white-space:pre">                                 </span>analyzeTable(pParse, pTab, 0);</div><div> <span style="white-space:pre">                      </span>}</div><div> <span style="white-space:pre">           </span>}</div><div> <span style="white-space:pre">           </span>sqlite3DbFree(db, z);</div><div>diff --git a/test/sql-tap/analyzeD.test.lua b/test/sql-tap/analyzeD.test.lua</div><div>index 8fdadf5..5d25a1d 100755</div><div>--- a/test/sql-tap/analyzeD.test.lua</div><div>+++ b/test/sql-tap/analyzeD.test.lua</div><div>@@ -1,6 +1,6 @@</div><div> #!/usr/bin/env tarantool</div><div> test = require("sqltester")</div><div>-test:plan(9)</div><div>+test:plan(11)</div><div> </div><div> testprefix = "analyzeD"</div><div> </div><div>@@ -139,5 +139,26 @@ test:do_execsql_test(</div><div>         -- </1.8></div><div>    <span style="white-space:pre">       </span>})</div><div> </div><div>+test:do_catchsql_test(</div><div>+<span style="white-space:pre">    </span>"analyzeD-1.9",</div><div>+<span style="white-space:pre">    </span>[[</div><div>+<span style="white-space:pre">           </span>CREATE TABLE table1(id INT PRIMARY KEY, a INT);</div><div>+<span style="white-space:pre">              </span>CREATE VIEW v AS SELECT * FROM table1;</div><div>+<span style="white-space:pre">               </span>ANALYZE;</div><div>+<span style="white-space:pre">     </span>]], {</div><div>+<span style="white-space:pre">                </span>-- <analyzeD-1.9></div><div>+<span style="white-space:pre">              </span>0</div><div>+<span style="white-space:pre">            </span>-- <analyzeD-1.9></div><div>+<span style="white-space:pre">      </span>})</div><div>+</div><div>+test:do_catchsql_test(</div><div>+<span style="white-space:pre">     </span>"analyzeD-1.10",</div><div>+<span style="white-space:pre">   </span>[[</div><div>+<span style="white-space:pre">           </span>ANALYZE v;</div><div>+<span style="white-space:pre">   </span>]], {</div><div>+<span style="white-space:pre">                </span>-- <analyzeD-1.10></div><div>+<span style="white-space:pre">             </span>1, "VIEWs aren't allowed to be analyzed"</div><div>+<span style="white-space:pre">               </span>-- <analyzeD-1.10></div><div>+<span style="white-space:pre">     </span>})</div><div> </div><div> test:finish_test()</div></div><div><br></div></div>