]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
In Lemon, if a non-terminal has the same type as a terminal, then reuse the
authordrh <drh@noemail.net>
Tue, 1 Jul 2008 16:34:49 +0000 (16:34 +0000)
committerdrh <drh@noemail.net>
Tue, 1 Jul 2008 16:34:49 +0000 (16:34 +0000)
terminal type in the YYMINORTYPE union for the non-terminal.  This gives
better table compression. (CVS 5334)

FossilOrigin-Name: 5c9cc22cd8e9bec3d8622d2c354423281f2db0fb

manifest
manifest.uuid
tool/lemon.c

index 4cd7f3e6581bc5db31395d57c1a319d2811a1c35..d1a76f14c5e2ab2493aa503a722a2fcc776a5a9b 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\smemory\sleak\sto\sdo\swith\sthe\srecent\sUNION\sALL\ssub-select\soptimization.\s(CVS\s5333)
-D 2008-07-01T16:05:26
+C In\sLemon,\sif\sa\snon-terminal\shas\sthe\ssame\stype\sas\sa\sterminal,\sthen\sreuse\sthe\nterminal\stype\sin\sthe\sYYMINORTYPE\sunion\sfor\sthe\snon-terminal.\s\sThis\sgives\nbetter\stable\scompression.\s(CVS\s5334)
+D 2008-07-01T16:34:50
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in 325dfac0a0dd1cb4d975f1ace6453157892e6042
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -574,7 +574,7 @@ F test/where6.test 42c4373595f4409d9c6a9987b4a60000ad664faf
 F test/zeroblob.test 792124852ec61458a2eb527b5091791215e0be95
 F tool/diffdb.c 7524b1b5df217c20cd0431f6789851a4e0cb191b
 F tool/fragck.tcl 5265a95126abcf6ab357f7efa544787e5963f439
-F tool/lemon.c a9c51c1ede7f35dc8746894e7f8cc7e3704ecef8
+F tool/lemon.c b7ea2ab73efcae17de678e27311e3a6fb45b9916
 F tool/lempar.c aab54f1758c554e550ff5c4b191053a819279a2b
 F tool/memleak.awk 4e7690a51bf3ed757e611273d43fe3f65b510133
 F tool/memleak2.awk 9cc20c8e8f3c675efac71ea0721ee6874a1566e8
@@ -596,7 +596,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 1dbced29de5f59ba2ebf877edcadf171540374d1
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
-P a79786a961dba8f4ffaddbe55e6467c14b12f7d6
-R 486d38d9b6a956a8f41daead08c2e751
-U danielk1977
-Z 25057041e9180e7e0042d3e827e454fe
+P 6ee71f4ddb4fa934f58c87dad2d30560af2e55d7
+R abb51076ff7832ca4d7b7efbfab1e246
+U drh
+Z 25821389214193632a5f6ed1eb5ed459
index 70a3bc97326fe67f28c512ece2784a92b13312cc..e0be29f2c775ae15868c4c3901cffa2d6fc5f0d6 100644 (file)
@@ -1 +1 @@
-6ee71f4ddb4fa934f58c87dad2d30560af2e55d7
\ No newline at end of file
+5c9cc22cd8e9bec3d8622d2c354423281f2db0fb
\ No newline at end of file
index 7dcbe6c7397ab812d7249f6bdc5d834f3eef55b2..85baf4200b1db9a1672c1471432d12f3066317f7 100644 (file)
@@ -3412,6 +3412,10 @@ int mhflag;                 /* True if generating makeheaders output */
     while( *cp ) stddt[j++] = *cp++;
     while( j>0 && isspace(stddt[j-1]) ) j--;
     stddt[j] = 0;
+    if( strcmp(stddt, lemp->tokentype)==0 ){
+      sp->dtnum = 0;
+      continue;
+    }
     hash = 0;
     for(j=0; stddt[j]; j++){
       hash = hash*53 + stddt[j];