aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <>2021-07-22 18:22:51 +0000
committerdrh <>2021-07-22 18:22:51 +0000
commit55b8b73e749aa1dca43febaa9c546ca23e3bc0a7 (patch)
treea929166105ba3a4a1b0b39ded5512f6e4bd5b858 /src
parent348e002ec90494809e8151e3738157edf5483ff6 (diff)
downloadsqlite-55b8b73e749aa1dca43febaa9c546ca23e3bc0a7.tar.gz
sqlite-55b8b73e749aa1dca43febaa9c546ca23e3bc0a7.zip
Fix ALTER TABLE DROP COLUMN so that it generates valid bytecode even when
operating on a corrupt database and using PRAGMA writable_schema=ON. dbsqlfuzz 5f09e7bcc78b4954d06bf9f2400d7715f48d1fef FossilOrigin-Name: b65f4f763979ee9e0b943c787609ea22d6f7e01d41dfc1e084ec50a085a3550c
Diffstat (limited to 'src')
-rw-r--r--src/alter.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/alter.c b/src/alter.c
index 9c5b46261..c29be3f6e 100644
--- a/src/alter.c
+++ b/src/alter.c
@@ -2174,6 +2174,12 @@ void sqlite3AlterDropColumn(Parse *pParse, SrcList *pSrc, Token *pName){
nField++;
}
}
+ if( nField==0 ){
+ /* dbsqlfuzz 5f09e7bcc78b4954d06bf9f2400d7715f48d1fef */
+ pParse->nMem++;
+ sqlite3VdbeAddOp2(v, OP_Null, 0, reg+1);
+ nField = 1;
+ }
sqlite3VdbeAddOp3(v, OP_MakeRecord, reg+1, nField, regRec);
if( pPk ){
sqlite3VdbeAddOp4Int(v, OP_IdxInsert, iCur, regRec, reg+1, pPk->nKeyCol);