From 676fa25a0f7737d7e233a840a5c2d7dffdccb75a Mon Sep 17 00:00:00 2001 From: drh Date: Thu, 17 Oct 2019 14:21:07 +0000 Subject: [PATCH] Bug fixes so that "make test" once against runs with no errors. FossilOrigin-Name: 7bfe0f679d8951b3e925bdf549efa0f8d6b514eddeaca69cbfddbd9476cfff5f --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/insert.c | 13 ++++++++----- src/pragma.c | 6 ++++-- 4 files changed, 20 insertions(+), 15 deletions(-) diff --git a/manifest b/manifest index 76163c6d4d..93dc0ecab7 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sthe\stable_info\sand\stable_xinfo\spragmas\sso\sthat\sthey\swork\swith\svirtual\ncolumns.\s\sTable_info\somits\svirtual\scolumns.\s\sTable_xinfo\sgives\sthem\sa\n"hidden"\sflag\sof\s2,\sand\s3\sfor\sSTORED\scolumns. -D 2019-10-17T13:15:40.320 +C Bug\sfixes\sso\sthat\s"make\stest"\sonce\sagainst\sruns\swith\sno\serrors. +D 2019-10-17T14:21:07.409 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -486,7 +486,7 @@ F src/hash.c 8d7dda241d0ebdafb6ffdeda3149a412d7df75102cecfc1021c98d6219823b19 F src/hash.h 9d56a9079d523b648774c1784b74b89bd93fac7b365210157482e4319a468f38 F src/hwtime.h 747c1bbe9df21a92e9c50f3bbec1de841dc5e5da F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71 -F src/insert.c 9dabd02b24946f4c38ae7ef566d65abc16476f9d26b3a630261f91e09c726722 +F src/insert.c 3cf6462f09ef50916e5e859b56cb7bbf3a7e0b8f25a9cac0c99c572ba08c0779 F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa F src/loadext.c 4ddc65ae13c0d93db0ceedc8b14a28c8c260513448b0eb8c5a2ac375e3b6a85d F src/main.c 3e01f6a1c96643381b5f9d79e4ff7f2520bc5712197746fb0852283e78cccf66 @@ -518,7 +518,7 @@ F src/parse.y bc453ce808316facd191413bfa4ec6730a1d693b98fd8be5addef8fbfd62bb7b F src/pcache.c 385ff064bca69789d199a98e2169445dc16e4291fa807babd61d4890c3b34177 F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586 F src/pcache1.c 62714cbd1b7299a6e6a27a587b66b4fd3a836a84e1181e7f96f5c34a50917848 -F src/pragma.c 7b4c4040124572d3e477f30a5daf640f7a8ea2f019f7c0a4031633f36ae9935a +F src/pragma.c 61abcb6d9f80d06ed3b0d0843a7cef32e96a569a27b94ebfd764dc6c1ce1cd1d F src/pragma.h 40962d65b645bb3f08c1f4c456effd01c6e7f073f68ea25177e0c95e181cff75 F src/prepare.c 6049beb71385f017af6fc320d2c75a4e50b75e280c54232442b785fbb83df057 F src/printf.c 9be6945837c839ba57837b4bc3af349eba630920fa5532aa518816defe42a7d4 @@ -1847,7 +1847,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 64db39f92d68d1b9f23e48af35e16b969c38b58041fbe900066eeb3ddb291cef -R f385e86a0426e23d58beffa7242fb5ce +P 069351b85f9a706f60d3e98fbc8aaf40c374356b967c0464aede30ead3d9d18b +R a9daba7f86da0ab938b557a0a9cc8b96 U drh -Z 1c8932097c2a1d388102affd6e7e0105 +Z 1fb219ce2b5d60344f9b3644d927ae0d diff --git a/manifest.uuid b/manifest.uuid index 31afc5e354..0a25f0c923 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -069351b85f9a706f60d3e98fbc8aaf40c374356b967c0464aede30ead3d9d18b \ No newline at end of file +7bfe0f679d8951b3e925bdf549efa0f8d6b514eddeaca69cbfddbd9476cfff5f \ No newline at end of file diff --git a/src/insert.c b/src/insert.c index 20b5d9a91c..1c628c670a 100644 --- a/src/insert.c +++ b/src/insert.c @@ -1009,6 +1009,7 @@ void sqlite3Insert( iRegStore = regRowid+1; for(i=0; inCol; i++, iRegStore++){ int k; + u32 colFlags; assert( i>=nHidden ); assert( iRegStore==sqlite3ColumnOfTable(pTab,i)+regRowid+1 ); if( i==pTab->iPKey ){ @@ -1020,16 +1021,18 @@ void sqlite3Insert( sqlite3VdbeAddOp1(v, OP_SoftNull, iRegStore); continue; } - if( pTab->aCol[i].colFlags & COLFLAG_NOINSERT ){ + if( ((colFlags = pTab->aCol[i].colFlags) & COLFLAG_NOINSERT)!=0 ){ nHidden++; - if( pTab->aCol[i].colFlags & COLFLAG_VIRTUAL ){ + if( (colFlags & COLFLAG_VIRTUAL)!=0 ){ /* Virtual columns are no stored */ iRegStore--; - }else{ - /* Hidden and stored columns get the default value */ + continue; + }else if( (colFlags & COLFLAG_STORED)!=0 || pColumn==0 ){ + /* Stored columns get the default value. Also hidden columns + ** that are not explicitly named in the INSERT */ sqlite3ExprCodeFactorable(pParse, pTab->aCol[i].pDflt, iRegStore); + continue; } - continue; } if( pColumn ){ for(j=0; jnId && pColumn->a[j].idx!=i; j++){} diff --git a/src/pragma.c b/src/pragma.c index 551cc7aa0f..d9f249d138 100644 --- a/src/pragma.c +++ b/src/pragma.c @@ -1102,8 +1102,10 @@ void sqlite3Pragma( for(i=0, pCol=pTab->aCol; inCol; i++, pCol++){ int isHidden = 0; if( pCol->colFlags & COLFLAG_NOINSERT ){ - nHidden++; - if( pPragma->iArg==0 ) continue; + if( pPragma->iArg==0 ){ + nHidden++; + continue; + } if( pCol->colFlags & COLFLAG_VIRTUAL ){ isHidden = 2; /* GENERATED ALWAYS AS ... VIRTUAL */ }else if( pCol->colFlags & COLFLAG_VIRTUAL ){ -- 2.47.2