diff options
author | drh <> | 2021-07-22 18:22:51 +0000 |
---|---|---|
committer | drh <> | 2021-07-22 18:22:51 +0000 |
commit | 55b8b73e749aa1dca43febaa9c546ca23e3bc0a7 (patch) | |
tree | a929166105ba3a4a1b0b39ded5512f6e4bd5b858 /src | |
parent | 348e002ec90494809e8151e3738157edf5483ff6 (diff) | |
download | sqlite-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.c | 6 |
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); |