aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2018-12-29 02:26:59 +0000
committerdrh <drh@noemail.net>2018-12-29 02:26:59 +0000
commitec4ccdbcb1bd9d129888b38f209ed36bbe38a5d8 (patch)
treeaff455cde56406dac489f5097da7ff4eaa480ebb /src/analyze.c
parent81f9159b5ec0e19d9aafee9c03a13bc4e7735cd8 (diff)
downloadsqlite-ec4ccdbcb1bd9d129888b38f209ed36bbe38a5d8.tar.gz
sqlite-ec4ccdbcb1bd9d129888b38f209ed36bbe38a5d8.zip
A new implementation of sqlite3VdbeMakeLabel() is faster and makes fewer
memory allocations by deferring memory allocation until sqlite3VdbeResolveLabel() is called, at which point the code generator has a better idea of how big the relocation table needs to be. The sqlite3VdbeMakeLabel() routine now takes a Parse* parameter instead of Vdbe*. FossilOrigin-Name: 4a0929ac76d8aa5dd65eac3b83d6bbf41e505e01d175ca0fb2b19ba02d439415
Diffstat (limited to 'src/analyze.c')
-rw-r--r--src/analyze.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/analyze.c b/src/analyze.c
index 5075b5786..e6b27aaad 100644
--- a/src/analyze.c
+++ b/src/analyze.c
@@ -1156,7 +1156,7 @@ static void analyzeOneTable(
addrNextRow = sqlite3VdbeCurrentAddr(v);
if( nColTest>0 ){
- int endDistinctTest = sqlite3VdbeMakeLabel(v);
+ int endDistinctTest = sqlite3VdbeMakeLabel(pParse);
int *aGotoChng; /* Array of jump instruction addresses */
aGotoChng = sqlite3DbMallocRawNN(db, sizeof(int)*nColTest);
if( aGotoChng==0 ) continue;