-C Fix\sfor\sticket\s#50.\s(CVS\s582)
-D 2002-05-23T13:15:37
+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-23T22:07:03
F Makefile.in 6291a33b87d2a395aafd7646ee1ed562c6f2c28c
F Makefile.template 4e11752e0b5c7a043ca50af4296ec562857ba495
F README a4c0ba11354ef6ba0776b400d057c59da47a4cc0
F src/test3.c 4e52fff8b01f08bd202f7633feda5639b7ba2b5e
F src/threadtest.c 81f0598e0f031c1bd506af337fdc1b7e8dff263f
F src/tokenize.c 5892a8eb8f0063718f5bec1a1b24f4c6029eba9b
-F src/trigger.c a5e6694f2cc6f1b3c10b954b9bc904548f3599fc
-F src/update.c 82ada80cdfa489a30e91dba7f29f75a20f61c8a2
+F src/trigger.c a7990d424af58d809501a393f72c12d4b039eb63
+F src/update.c 1f8f7fde797bd607fe0afb4f96a6ad83c9e8ab7b
F src/util.c 707c30f8c13cddace7c08556ac450c0b786660b3
-F src/vdbe.c 67fbceb6fa2a0ab020b65c007430272a66771ae1
-F src/vdbe.h 126a651ba26f05de075dcc6da5466244a31af6b8
+F src/vdbe.c 6c2eae8a1d03f41aa51e40772aebf581cf62d5b8
+F src/vdbe.h def669b9f2728589aabcb5db756429db02465c9a
F src/where.c 293985b6cf8391c3dcef9efcac4654884370513a
F test/all.test e4d3821eeba751829b419cd47814bd20af4286d1
F test/bigrow.test 8ab252dba108f12ad64e337b0f2ff31a807ac578
F www/sqlite.tcl 8b5884354cb615049aed83039f8dfe1552a44279
F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331
F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218
-P 4d27ee411902a197cd72416ca9da9197d3f87f13
-R 42134e515c91a3561726205cb5ceae33
+P 82b74a494ac7c751a13e67dcfa7fffb1b98ec808
+R 3e1a04e4d6e0a4fb68b8a11229bc1cc1
U drh
-Z 5548f4db8a2e3ece93a6ef0eb59cb03c
+Z 8e8caac647d0d1fcfa3e14c75f0d3c35
break;
}
case TK_UPDATE: {
- sqliteVdbeAddOp(pParse->pVdbe, OP_PushList, 0, 0);
+ sqliteVdbeAddOp(pParse->pVdbe, OP_ListPush, 0, 0);
sqliteUpdate(pParse, &pTriggerStep->target,
sqliteExprListDup(pTriggerStep->pExprList),
sqliteExprDup(pTriggerStep->pWhere), orconf);
- sqliteVdbeAddOp(pParse->pVdbe, OP_PopList, 0, 0);
+ sqliteVdbeAddOp(pParse->pVdbe, OP_ListPop, 0, 0);
break;
}
case TK_INSERT: {
break;
}
case TK_DELETE: {
- sqliteVdbeAddOp(pParse->pVdbe, OP_PushList, 0, 0);
+ sqliteVdbeAddOp(pParse->pVdbe, OP_ListPush, 0, 0);
sqliteDeleteFrom(pParse, &pTriggerStep->target,
sqliteExprDup(pTriggerStep->pWhere));
- sqliteVdbeAddOp(pParse->pVdbe, OP_PopList, 0, 0);
+ sqliteVdbeAddOp(pParse->pVdbe, OP_ListPop, 0, 0);
break;
}
default:
** But other routines are also provided to help in building up
** 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 <ctype.h>
int iLimit; /* Limit on the number of callbacks remaining */
int iOffset; /* Offset before beginning to do callbacks */
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 */
};
/*
"Clear", "CreateIndex", "CreateTable", "IntegrityCk",
"IdxPut", "IdxDelete", "IdxRecno", "IdxGT",
"IdxGE", "MemLoad", "MemStore", "ListWrite",
- "ListRewind", "ListRead", "ListReset", "SortPut",
- "SortMakeRec", "SortMakeKey", "Sort", "SortNext",
- "SortCallback", "SortReset", "FileOpen", "FileRead",
- "FileColumn", "AggReset", "AggFocus", "AggNext",
- "AggSet", "AggGet", "AggFunc", "AggInit",
+ "ListRewind", "ListRead", "ListReset", "ListPush",
+ "ListPop", "SortPut", "SortMakeRec", "SortMakeKey",
+ "Sort", "SortNext", "SortCallback", "SortReset",
+ "FileOpen", "FileRead", "FileColumn", "AggReset",
+ "AggFocus", "AggNext", "AggSet", "AggGet",
+ "AggFunc", "AggInit", "AggPush", "AggPop",
"SetInsert", "SetFound", "SetNotFound", "MakeRecord",
"MakeKey", "MakeIdxKey", "IncrKey", "Goto",
"If", "Halt", "ColumnCount", "ColumnName",
"Le", "Gt", "Ge", "IsNull",
"NotNull", "Negative", "And", "Or",
"Not", "Concat", "Noop", "Function",
- "Limit", "PushList", "PopList",
+ "Limit",
};
/*
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 * * *
**
** The TOS is the key and the NOS is the data. Pop both from the stack
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 *
**
** Pop the stack once and compare the value popped off with the
** or VDBE. The VDBE implements an abstract machine that runs a
** 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_
#define _SQLITE_VDBE_H_
#define OP_ListRewind 45
#define OP_ListRead 46
#define OP_ListReset 47
-
-#define OP_SortPut 48
-#define OP_SortMakeRec 49
-#define OP_SortMakeKey 50
-#define OP_Sort 51
-#define OP_SortNext 52
-#define OP_SortCallback 53
-#define OP_SortReset 54
-
-#define OP_FileOpen 55
-#define OP_FileRead 56
-#define OP_FileColumn 57
-
-#define OP_AggReset 58
-#define OP_AggFocus 59
-#define OP_AggNext 60
-#define OP_AggSet 61
-#define OP_AggGet 62
-#define OP_AggFunc 63
-#define OP_AggInit 64
-
-#define OP_SetInsert 65
-#define OP_SetFound 66
-#define OP_SetNotFound 67
-
-#define OP_MakeRecord 68
-#define OP_MakeKey 69
-#define OP_MakeIdxKey 70
-#define OP_IncrKey 71
-
-#define OP_Goto 72
-#define OP_If 73
-#define OP_Halt 74
-
-#define OP_ColumnCount 75
-#define OP_ColumnName 76
-#define OP_Callback 77
-#define OP_NullCallback 78
-
-#define OP_Integer 79
-#define OP_String 80
-#define OP_Pop 81
-#define OP_Dup 82
-#define OP_Pull 83
-#define OP_Push 84
-#define OP_MustBeInt 85
-
-#define OP_Add 86
-#define OP_AddImm 87
-#define OP_Subtract 88
-#define OP_Multiply 89
-#define OP_Divide 90
-#define OP_Remainder 91
-#define OP_BitAnd 92
-#define OP_BitOr 93
-#define OP_BitNot 94
-#define OP_ShiftLeft 95
-#define OP_ShiftRight 96
-#define OP_AbsValue 97
-#define OP_Eq 98
-#define OP_Ne 99
-#define OP_Lt 100
-#define OP_Le 101
-#define OP_Gt 102
-#define OP_Ge 103
-#define OP_IsNull 104
-#define OP_NotNull 105
-#define OP_Negative 106
-#define OP_And 107
-#define OP_Or 108
-#define OP_Not 109
-#define OP_Concat 110
-#define OP_Noop 111
-#define OP_Function 112
-
-#define OP_Limit 113
-
-#define OP_PushList 114
-#define OP_PopList 115
-
-#define OP_MAX 115
+#define OP_ListPush 48
+#define OP_ListPop 49
+
+#define OP_SortPut 50
+#define OP_SortMakeRec 51
+#define OP_SortMakeKey 52
+#define OP_Sort 53
+#define OP_SortNext 54
+#define OP_SortCallback 55
+#define OP_SortReset 56
+
+#define OP_FileOpen 57
+#define OP_FileRead 58
+#define OP_FileColumn 59
+
+#define OP_AggReset 60
+#define OP_AggFocus 61
+#define OP_AggNext 62
+#define OP_AggSet 63
+#define OP_AggGet 64
+#define OP_AggFunc 65
+#define OP_AggInit 66
+#define OP_AggPush 67
+#define OP_AggPop 68
+
+#define OP_SetInsert 69
+#define OP_SetFound 70
+#define OP_SetNotFound 71
+
+#define OP_MakeRecord 72
+#define OP_MakeKey 73
+#define OP_MakeIdxKey 74
+#define OP_IncrKey 75
+
+#define OP_Goto 76
+#define OP_If 77
+#define OP_Halt 78
+
+#define OP_ColumnCount 79
+#define OP_ColumnName 80
+#define OP_Callback 81
+#define OP_NullCallback 82
+
+#define OP_Integer 83
+#define OP_String 84
+#define OP_Pop 85
+#define OP_Dup 86
+#define OP_Pull 87
+#define OP_Push 88
+#define OP_MustBeInt 89
+
+#define OP_Add 90
+#define OP_AddImm 91
+#define OP_Subtract 92
+#define OP_Multiply 93
+#define OP_Divide 94
+#define OP_Remainder 95
+#define OP_BitAnd 96
+#define OP_BitOr 97
+#define OP_BitNot 98
+#define OP_ShiftLeft 99
+#define OP_ShiftRight 100
+#define OP_AbsValue 101
+#define OP_Eq 102
+#define OP_Ne 103
+#define OP_Lt 104
+#define OP_Le 105
+#define OP_Gt 106
+#define OP_Ge 107
+#define OP_IsNull 108
+#define OP_NotNull 109
+#define OP_Negative 110
+#define OP_And 111
+#define OP_Or 112
+#define OP_Not 113
+#define OP_Concat 114
+#define OP_Noop 115
+#define OP_Function 116
+
+#define OP_Limit 117
+
+
+#define OP_MAX 117
/*
** Prototypes for the VDBE interface. See comments on the implementation