mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-08 14:02:16 +03:00
Change the names of the PushList and PopList opcodes to ListPush and ListPop
so that they will appear together with the other List opcodes in the documentation. (CVS 583) FossilOrigin-Name: c53b0b9283c5c34def87d58b03fd979d03dc0890
This commit is contained in:
18
manifest
18
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Fix\sfor\sticket\s#50.\s(CVS\s582)
|
C Change\sthe\snames\sof\sthe\sPushList\sand\sPopList\sopcodes\sto\sListPush\sand\sListPop\nso\sthat\sthey\swill\sappear\stogether\swith\sthe\sother\sList\sopcodes\sin\sthe\ndocumentation.\s(CVS\s583)
|
||||||
D 2002-05-23T13:15:37
|
D 2002-05-23T22:07:03
|
||||||
F Makefile.in 6291a33b87d2a395aafd7646ee1ed562c6f2c28c
|
F Makefile.in 6291a33b87d2a395aafd7646ee1ed562c6f2c28c
|
||||||
F Makefile.template 4e11752e0b5c7a043ca50af4296ec562857ba495
|
F Makefile.template 4e11752e0b5c7a043ca50af4296ec562857ba495
|
||||||
F README a4c0ba11354ef6ba0776b400d057c59da47a4cc0
|
F README a4c0ba11354ef6ba0776b400d057c59da47a4cc0
|
||||||
@@ -49,11 +49,11 @@ F src/test2.c 669cc22781c6461a273416ec1a7414d25c081730
|
|||||||
F src/test3.c 4e52fff8b01f08bd202f7633feda5639b7ba2b5e
|
F src/test3.c 4e52fff8b01f08bd202f7633feda5639b7ba2b5e
|
||||||
F src/threadtest.c 81f0598e0f031c1bd506af337fdc1b7e8dff263f
|
F src/threadtest.c 81f0598e0f031c1bd506af337fdc1b7e8dff263f
|
||||||
F src/tokenize.c 5892a8eb8f0063718f5bec1a1b24f4c6029eba9b
|
F src/tokenize.c 5892a8eb8f0063718f5bec1a1b24f4c6029eba9b
|
||||||
F src/trigger.c a5e6694f2cc6f1b3c10b954b9bc904548f3599fc
|
F src/trigger.c a7990d424af58d809501a393f72c12d4b039eb63
|
||||||
F src/update.c 82ada80cdfa489a30e91dba7f29f75a20f61c8a2
|
F src/update.c 1f8f7fde797bd607fe0afb4f96a6ad83c9e8ab7b
|
||||||
F src/util.c 707c30f8c13cddace7c08556ac450c0b786660b3
|
F src/util.c 707c30f8c13cddace7c08556ac450c0b786660b3
|
||||||
F src/vdbe.c 67fbceb6fa2a0ab020b65c007430272a66771ae1
|
F src/vdbe.c 6c2eae8a1d03f41aa51e40772aebf581cf62d5b8
|
||||||
F src/vdbe.h 126a651ba26f05de075dcc6da5466244a31af6b8
|
F src/vdbe.h def669b9f2728589aabcb5db756429db02465c9a
|
||||||
F src/where.c 293985b6cf8391c3dcef9efcac4654884370513a
|
F src/where.c 293985b6cf8391c3dcef9efcac4654884370513a
|
||||||
F test/all.test e4d3821eeba751829b419cd47814bd20af4286d1
|
F test/all.test e4d3821eeba751829b419cd47814bd20af4286d1
|
||||||
F test/bigrow.test 8ab252dba108f12ad64e337b0f2ff31a807ac578
|
F test/bigrow.test 8ab252dba108f12ad64e337b0f2ff31a807ac578
|
||||||
@@ -134,7 +134,7 @@ F www/speed.tcl da8afcc1d3ccc5696cfb388a68982bc3d9f7f00f
|
|||||||
F www/sqlite.tcl 8b5884354cb615049aed83039f8dfe1552a44279
|
F www/sqlite.tcl 8b5884354cb615049aed83039f8dfe1552a44279
|
||||||
F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331
|
F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331
|
||||||
F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218
|
F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218
|
||||||
P 4d27ee411902a197cd72416ca9da9197d3f87f13
|
P 82b74a494ac7c751a13e67dcfa7fffb1b98ec808
|
||||||
R 42134e515c91a3561726205cb5ceae33
|
R 3e1a04e4d6e0a4fb68b8a11229bc1cc1
|
||||||
U drh
|
U drh
|
||||||
Z 5548f4db8a2e3ece93a6ef0eb59cb03c
|
Z 8e8caac647d0d1fcfa3e14c75f0d3c35
|
||||||
|
@@ -1 +1 @@
|
|||||||
82b74a494ac7c751a13e67dcfa7fffb1b98ec808
|
c53b0b9283c5c34def87d58b03fd979d03dc0890
|
@@ -479,11 +479,11 @@ static int codeTriggerProgram(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TK_UPDATE: {
|
case TK_UPDATE: {
|
||||||
sqliteVdbeAddOp(pParse->pVdbe, OP_PushList, 0, 0);
|
sqliteVdbeAddOp(pParse->pVdbe, OP_ListPush, 0, 0);
|
||||||
sqliteUpdate(pParse, &pTriggerStep->target,
|
sqliteUpdate(pParse, &pTriggerStep->target,
|
||||||
sqliteExprListDup(pTriggerStep->pExprList),
|
sqliteExprListDup(pTriggerStep->pExprList),
|
||||||
sqliteExprDup(pTriggerStep->pWhere), orconf);
|
sqliteExprDup(pTriggerStep->pWhere), orconf);
|
||||||
sqliteVdbeAddOp(pParse->pVdbe, OP_PopList, 0, 0);
|
sqliteVdbeAddOp(pParse->pVdbe, OP_ListPop, 0, 0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TK_INSERT: {
|
case TK_INSERT: {
|
||||||
@@ -494,10 +494,10 @@ static int codeTriggerProgram(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TK_DELETE: {
|
case TK_DELETE: {
|
||||||
sqliteVdbeAddOp(pParse->pVdbe, OP_PushList, 0, 0);
|
sqliteVdbeAddOp(pParse->pVdbe, OP_ListPush, 0, 0);
|
||||||
sqliteDeleteFrom(pParse, &pTriggerStep->target,
|
sqliteDeleteFrom(pParse, &pTriggerStep->target,
|
||||||
sqliteExprDup(pTriggerStep->pWhere));
|
sqliteExprDup(pTriggerStep->pWhere));
|
||||||
sqliteVdbeAddOp(pParse->pVdbe, OP_PopList, 0, 0);
|
sqliteVdbeAddOp(pParse->pVdbe, OP_ListPop, 0, 0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
** This file contains C code routines that are called by the parser
|
** This file contains C code routines that are called by the parser
|
||||||
** to handle UPDATE statements.
|
** to handle UPDATE statements.
|
||||||
**
|
**
|
||||||
** $Id: update.c,v 1.41 2002/05/23 12:50:19 drh Exp $
|
** $Id: update.c,v 1.42 2002/05/23 22:07:03 drh Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
|
|
||||||
@@ -282,7 +282,6 @@ void sqliteUpdate(
|
|||||||
** So make the cursor point at the old record.
|
** So make the cursor point at the old record.
|
||||||
*/
|
*/
|
||||||
if( !row_triggers_exist ){
|
if( !row_triggers_exist ){
|
||||||
int ii;
|
|
||||||
sqliteVdbeAddOp(v, OP_ListRewind, 0, 0);
|
sqliteVdbeAddOp(v, OP_ListRewind, 0, 0);
|
||||||
addr = sqliteVdbeAddOp(v, OP_ListRead, 0, 0);
|
addr = sqliteVdbeAddOp(v, OP_ListRead, 0, 0);
|
||||||
sqliteVdbeAddOp(v, OP_Dup, 0, 0);
|
sqliteVdbeAddOp(v, OP_Dup, 0, 0);
|
||||||
|
83
src/vdbe.c
83
src/vdbe.c
@@ -30,7 +30,7 @@
|
|||||||
** But other routines are also provided to help in building up
|
** But other routines are also provided to help in building up
|
||||||
** a program instruction by instruction.
|
** a program instruction by instruction.
|
||||||
**
|
**
|
||||||
** $Id: vdbe.c,v 1.145 2002/05/23 02:09:04 drh Exp $
|
** $Id: vdbe.c,v 1.146 2002/05/23 22:07:03 drh Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
@@ -250,7 +250,7 @@ struct Vdbe {
|
|||||||
int iLimit; /* Limit on the number of callbacks remaining */
|
int iLimit; /* Limit on the number of callbacks remaining */
|
||||||
int iOffset; /* Offset before beginning to do callbacks */
|
int iOffset; /* Offset before beginning to do callbacks */
|
||||||
int keylistStackDepth; /* The size of the "keylist" stack */
|
int keylistStackDepth; /* The size of the "keylist" stack */
|
||||||
Keylist **keylistStack; /* The stack used by opcodes PushList & PopList */
|
Keylist **keylistStack; /* The stack used by opcodes ListPush & ListPop */
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1060,11 +1060,12 @@ static char *zOpName[] = { 0,
|
|||||||
"Clear", "CreateIndex", "CreateTable", "IntegrityCk",
|
"Clear", "CreateIndex", "CreateTable", "IntegrityCk",
|
||||||
"IdxPut", "IdxDelete", "IdxRecno", "IdxGT",
|
"IdxPut", "IdxDelete", "IdxRecno", "IdxGT",
|
||||||
"IdxGE", "MemLoad", "MemStore", "ListWrite",
|
"IdxGE", "MemLoad", "MemStore", "ListWrite",
|
||||||
"ListRewind", "ListRead", "ListReset", "SortPut",
|
"ListRewind", "ListRead", "ListReset", "ListPush",
|
||||||
"SortMakeRec", "SortMakeKey", "Sort", "SortNext",
|
"ListPop", "SortPut", "SortMakeRec", "SortMakeKey",
|
||||||
"SortCallback", "SortReset", "FileOpen", "FileRead",
|
"Sort", "SortNext", "SortCallback", "SortReset",
|
||||||
"FileColumn", "AggReset", "AggFocus", "AggNext",
|
"FileOpen", "FileRead", "FileColumn", "AggReset",
|
||||||
"AggSet", "AggGet", "AggFunc", "AggInit",
|
"AggFocus", "AggNext", "AggSet", "AggGet",
|
||||||
|
"AggFunc", "AggInit", "AggPush", "AggPop",
|
||||||
"SetInsert", "SetFound", "SetNotFound", "MakeRecord",
|
"SetInsert", "SetFound", "SetNotFound", "MakeRecord",
|
||||||
"MakeKey", "MakeIdxKey", "IncrKey", "Goto",
|
"MakeKey", "MakeIdxKey", "IncrKey", "Goto",
|
||||||
"If", "Halt", "ColumnCount", "ColumnName",
|
"If", "Halt", "ColumnCount", "ColumnName",
|
||||||
@@ -1077,7 +1078,7 @@ static char *zOpName[] = { 0,
|
|||||||
"Le", "Gt", "Ge", "IsNull",
|
"Le", "Gt", "Ge", "IsNull",
|
||||||
"NotNull", "Negative", "And", "Or",
|
"NotNull", "Negative", "And", "Or",
|
||||||
"Not", "Concat", "Noop", "Function",
|
"Not", "Concat", "Noop", "Function",
|
||||||
"Limit", "PushList", "PopList",
|
"Limit",
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -3820,6 +3821,39 @@ case OP_ListReset: {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Opcode: ListPush * * *
|
||||||
|
**
|
||||||
|
** Save the current Vdbe list such that it can be restored by a PopList
|
||||||
|
** opcode. The list is empty after this is executed.
|
||||||
|
*/
|
||||||
|
case OP_ListPush: {
|
||||||
|
p->keylistStackDepth++;
|
||||||
|
assert(p->keylistStackDepth > 0);
|
||||||
|
p->keylistStack = sqliteRealloc(p->keylistStack,
|
||||||
|
sizeof(Keylist *) * p->keylistStackDepth);
|
||||||
|
p->keylistStack[p->keylistStackDepth - 1] = p->pList;
|
||||||
|
p->pList = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Opcode: ListPop * * *
|
||||||
|
**
|
||||||
|
** Restore the Vdbe list to the state it was in when PushList was last
|
||||||
|
** executed.
|
||||||
|
*/
|
||||||
|
case OP_ListPop: {
|
||||||
|
assert(p->keylistStackDepth > 0);
|
||||||
|
p->keylistStackDepth--;
|
||||||
|
KeylistFree(p->pList);
|
||||||
|
p->pList = p->keylistStack[p->keylistStackDepth];
|
||||||
|
p->keylistStack[p->keylistStackDepth] = 0;
|
||||||
|
if( p->keylistStackDepth == 0 ){
|
||||||
|
sqliteFree(p->keylistStack);
|
||||||
|
p->keylistStack = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
/* Opcode: SortPut * * *
|
/* Opcode: SortPut * * *
|
||||||
**
|
**
|
||||||
** The TOS is the key and the NOS is the data. Pop both from the stack
|
** The TOS is the key and the NOS is the data. Pop both from the stack
|
||||||
@@ -4554,39 +4588,6 @@ case OP_SetFound: {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Opcode: PushList * * *
|
|
||||||
**
|
|
||||||
** Save the current Vdbe list such that it can be restored by a PopList
|
|
||||||
** opcode. The list is empty after this is executed.
|
|
||||||
*/
|
|
||||||
case OP_PushList: {
|
|
||||||
p->keylistStackDepth++;
|
|
||||||
assert(p->keylistStackDepth > 0);
|
|
||||||
p->keylistStack = sqliteRealloc(p->keylistStack,
|
|
||||||
sizeof(Keylist *) * p->keylistStackDepth);
|
|
||||||
p->keylistStack[p->keylistStackDepth - 1] = p->pList;
|
|
||||||
p->pList = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Opcode: PopList * * *
|
|
||||||
**
|
|
||||||
** Restore the Vdbe list to the state it was in when PushList was last
|
|
||||||
** executed.
|
|
||||||
*/
|
|
||||||
case OP_PopList: {
|
|
||||||
assert(p->keylistStackDepth > 0);
|
|
||||||
p->keylistStackDepth--;
|
|
||||||
KeylistFree(p->pList);
|
|
||||||
p->pList = p->keylistStack[p->keylistStackDepth];
|
|
||||||
p->keylistStack[p->keylistStackDepth] = 0;
|
|
||||||
if( p->keylistStackDepth == 0 ){
|
|
||||||
sqliteFree(p->keylistStack);
|
|
||||||
p->keylistStack = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Opcode: SetNotFound P1 P2 *
|
/* Opcode: SetNotFound P1 P2 *
|
||||||
**
|
**
|
||||||
** Pop the stack once and compare the value popped off with the
|
** Pop the stack once and compare the value popped off with the
|
||||||
|
142
src/vdbe.h
142
src/vdbe.h
@@ -15,7 +15,7 @@
|
|||||||
** or VDBE. The VDBE implements an abstract machine that runs a
|
** or VDBE. The VDBE implements an abstract machine that runs a
|
||||||
** simple program to access and modify the underlying database.
|
** simple program to access and modify the underlying database.
|
||||||
**
|
**
|
||||||
** $Id: vdbe.h,v 1.51 2002/05/15 08:30:14 danielk1977 Exp $
|
** $Id: vdbe.h,v 1.52 2002/05/23 22:07:03 drh Exp $
|
||||||
*/
|
*/
|
||||||
#ifndef _SQLITE_VDBE_H_
|
#ifndef _SQLITE_VDBE_H_
|
||||||
#define _SQLITE_VDBE_H_
|
#define _SQLITE_VDBE_H_
|
||||||
@@ -121,87 +121,89 @@ typedef struct VdbeOp VdbeOp;
|
|||||||
#define OP_ListRewind 45
|
#define OP_ListRewind 45
|
||||||
#define OP_ListRead 46
|
#define OP_ListRead 46
|
||||||
#define OP_ListReset 47
|
#define OP_ListReset 47
|
||||||
|
#define OP_ListPush 48
|
||||||
|
#define OP_ListPop 49
|
||||||
|
|
||||||
#define OP_SortPut 48
|
#define OP_SortPut 50
|
||||||
#define OP_SortMakeRec 49
|
#define OP_SortMakeRec 51
|
||||||
#define OP_SortMakeKey 50
|
#define OP_SortMakeKey 52
|
||||||
#define OP_Sort 51
|
#define OP_Sort 53
|
||||||
#define OP_SortNext 52
|
#define OP_SortNext 54
|
||||||
#define OP_SortCallback 53
|
#define OP_SortCallback 55
|
||||||
#define OP_SortReset 54
|
#define OP_SortReset 56
|
||||||
|
|
||||||
#define OP_FileOpen 55
|
#define OP_FileOpen 57
|
||||||
#define OP_FileRead 56
|
#define OP_FileRead 58
|
||||||
#define OP_FileColumn 57
|
#define OP_FileColumn 59
|
||||||
|
|
||||||
#define OP_AggReset 58
|
#define OP_AggReset 60
|
||||||
#define OP_AggFocus 59
|
#define OP_AggFocus 61
|
||||||
#define OP_AggNext 60
|
#define OP_AggNext 62
|
||||||
#define OP_AggSet 61
|
#define OP_AggSet 63
|
||||||
#define OP_AggGet 62
|
#define OP_AggGet 64
|
||||||
#define OP_AggFunc 63
|
#define OP_AggFunc 65
|
||||||
#define OP_AggInit 64
|
#define OP_AggInit 66
|
||||||
|
#define OP_AggPush 67
|
||||||
|
#define OP_AggPop 68
|
||||||
|
|
||||||
#define OP_SetInsert 65
|
#define OP_SetInsert 69
|
||||||
#define OP_SetFound 66
|
#define OP_SetFound 70
|
||||||
#define OP_SetNotFound 67
|
#define OP_SetNotFound 71
|
||||||
|
|
||||||
#define OP_MakeRecord 68
|
#define OP_MakeRecord 72
|
||||||
#define OP_MakeKey 69
|
#define OP_MakeKey 73
|
||||||
#define OP_MakeIdxKey 70
|
#define OP_MakeIdxKey 74
|
||||||
#define OP_IncrKey 71
|
#define OP_IncrKey 75
|
||||||
|
|
||||||
#define OP_Goto 72
|
#define OP_Goto 76
|
||||||
#define OP_If 73
|
#define OP_If 77
|
||||||
#define OP_Halt 74
|
#define OP_Halt 78
|
||||||
|
|
||||||
#define OP_ColumnCount 75
|
#define OP_ColumnCount 79
|
||||||
#define OP_ColumnName 76
|
#define OP_ColumnName 80
|
||||||
#define OP_Callback 77
|
#define OP_Callback 81
|
||||||
#define OP_NullCallback 78
|
#define OP_NullCallback 82
|
||||||
|
|
||||||
#define OP_Integer 79
|
#define OP_Integer 83
|
||||||
#define OP_String 80
|
#define OP_String 84
|
||||||
#define OP_Pop 81
|
#define OP_Pop 85
|
||||||
#define OP_Dup 82
|
#define OP_Dup 86
|
||||||
#define OP_Pull 83
|
#define OP_Pull 87
|
||||||
#define OP_Push 84
|
#define OP_Push 88
|
||||||
#define OP_MustBeInt 85
|
#define OP_MustBeInt 89
|
||||||
|
|
||||||
#define OP_Add 86
|
#define OP_Add 90
|
||||||
#define OP_AddImm 87
|
#define OP_AddImm 91
|
||||||
#define OP_Subtract 88
|
#define OP_Subtract 92
|
||||||
#define OP_Multiply 89
|
#define OP_Multiply 93
|
||||||
#define OP_Divide 90
|
#define OP_Divide 94
|
||||||
#define OP_Remainder 91
|
#define OP_Remainder 95
|
||||||
#define OP_BitAnd 92
|
#define OP_BitAnd 96
|
||||||
#define OP_BitOr 93
|
#define OP_BitOr 97
|
||||||
#define OP_BitNot 94
|
#define OP_BitNot 98
|
||||||
#define OP_ShiftLeft 95
|
#define OP_ShiftLeft 99
|
||||||
#define OP_ShiftRight 96
|
#define OP_ShiftRight 100
|
||||||
#define OP_AbsValue 97
|
#define OP_AbsValue 101
|
||||||
#define OP_Eq 98
|
#define OP_Eq 102
|
||||||
#define OP_Ne 99
|
#define OP_Ne 103
|
||||||
#define OP_Lt 100
|
#define OP_Lt 104
|
||||||
#define OP_Le 101
|
#define OP_Le 105
|
||||||
#define OP_Gt 102
|
#define OP_Gt 106
|
||||||
#define OP_Ge 103
|
#define OP_Ge 107
|
||||||
#define OP_IsNull 104
|
#define OP_IsNull 108
|
||||||
#define OP_NotNull 105
|
#define OP_NotNull 109
|
||||||
#define OP_Negative 106
|
#define OP_Negative 110
|
||||||
#define OP_And 107
|
#define OP_And 111
|
||||||
#define OP_Or 108
|
#define OP_Or 112
|
||||||
#define OP_Not 109
|
#define OP_Not 113
|
||||||
#define OP_Concat 110
|
#define OP_Concat 114
|
||||||
#define OP_Noop 111
|
#define OP_Noop 115
|
||||||
#define OP_Function 112
|
#define OP_Function 116
|
||||||
|
|
||||||
#define OP_Limit 113
|
#define OP_Limit 117
|
||||||
|
|
||||||
#define OP_PushList 114
|
|
||||||
#define OP_PopList 115
|
|
||||||
|
|
||||||
#define OP_MAX 115
|
#define OP_MAX 117
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Prototypes for the VDBE interface. See comments on the implementation
|
** Prototypes for the VDBE interface. See comments on the implementation
|
||||||
|
Reference in New Issue
Block a user