mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-07 02:42:48 +03:00
Remove the OP_RowKey opcode. Use OP_RowData in its place.
FossilOrigin-Name: 6ac7b07a4aff2e1a9031289e3dafdb9ac0071c24
This commit is contained in:
21
src/vdbe.c
21
src/vdbe.c
@@ -4638,26 +4638,18 @@ case OP_SorterData: {
|
||||
/* Opcode: RowData P1 P2 * * *
|
||||
** Synopsis: r[P2]=data
|
||||
**
|
||||
** Write into register P2 the complete row data for cursor P1.
|
||||
** Write into register P2 the complete row content for the row at
|
||||
** which cursor P1 is currently pointing.
|
||||
** There is no interpretation of the data.
|
||||
** It is just copied onto the P2 register exactly as
|
||||
** it is found in the database file.
|
||||
**
|
||||
** If the P1 cursor must be pointing to a valid row (not a NULL row)
|
||||
** of a real table, not a pseudo-table.
|
||||
*/
|
||||
/* Opcode: RowKey P1 P2 * * *
|
||||
** Synopsis: r[P2]=key
|
||||
**
|
||||
** Write into register P2 the complete row key for cursor P1.
|
||||
** There is no interpretation of the data.
|
||||
** The key is copied onto the P2 register exactly as
|
||||
** it is found in the database file.
|
||||
** If cursor P1 is an index, then the content is the key of the row.
|
||||
** If cursor P2 is a table, then the content extracted is the data.
|
||||
**
|
||||
** If the P1 cursor must be pointing to a valid row (not a NULL row)
|
||||
** of a real table, not a pseudo-table.
|
||||
*/
|
||||
case OP_RowKey:
|
||||
case OP_RowData: {
|
||||
VdbeCursor *pC;
|
||||
BtCursor *pCrsr;
|
||||
@@ -4666,19 +4658,16 @@ case OP_RowData: {
|
||||
pOut = &aMem[pOp->p2];
|
||||
memAboutToChange(p, pOut);
|
||||
|
||||
/* Note that RowKey and RowData are really exactly the same instruction */
|
||||
assert( pOp->p1>=0 && pOp->p1<p->nCursor );
|
||||
pC = p->apCsr[pOp->p1];
|
||||
assert( pC!=0 );
|
||||
assert( pC->eCurType==CURTYPE_BTREE );
|
||||
assert( isSorter(pC)==0 );
|
||||
assert( pC->isTable || pOp->opcode!=OP_RowData );
|
||||
assert( pC->isTable==0 || pOp->opcode==OP_RowData );
|
||||
assert( pC->nullRow==0 );
|
||||
assert( pC->uc.pCursor!=0 );
|
||||
pCrsr = pC->uc.pCursor;
|
||||
|
||||
/* The OP_RowKey and OP_RowData opcodes always follow OP_NotExists or
|
||||
/* The OP_RowData opcodes always follow OP_NotExists or
|
||||
** OP_SeekRowid or OP_Rewind/Op_Next with no intervening instructions
|
||||
** that might invalidate the cursor.
|
||||
** If this where not the case, on of the following assert()s
|
||||
|
Reference in New Issue
Block a user