Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Remove dead code from vdbeaux.c. Add comments describing desired changes to OP_Sort processing in select.c (CVS 1398) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
ae37e8a0bff39fd1568eae83f8761c34 |
User & Date: | drh 2004-05-18 22:38:32.000 |
Context
2004-05-18
| ||
23:21 | Add definitions of the CollSeq and KeyInfo structures. (CVS 1399) (check-in: cd1be81569 user: drh tags: trunk) | |
22:38 | Remove dead code from vdbeaux.c. Add comments describing desired changes to OP_Sort processing in select.c (CVS 1398) (check-in: ae37e8a0bf user: drh tags: trunk) | |
22:17 | Remove the OP_StrEq opcodes. (CVS 1397) (check-in: 238442bbd2 user: drh tags: trunk) | |
Changes
Changes to src/select.c.
︙ | ︙ | |||
8 9 10 11 12 13 14 | ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains C code routines that are called by the parser ** to handle SELECT statements in SQLite. ** | | | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains C code routines that are called by the parser ** to handle SELECT statements in SQLite. ** ** $Id: select.c,v 1.168 2004/05/18 22:38:32 drh Exp $ */ #include "sqliteInt.h" /* ** Allocate a new Select structure and return a pointer to that ** structure. |
︙ | ︙ | |||
306 307 308 309 310 311 312 313 314 315 316 317 318 319 | pParse->nAgg = 0; pParse->useAgg = 0; } /* ** Insert code into "v" that will push the record on the top of the ** stack into the sorter. */ static void pushOntoSorter(Parse *pParse, Vdbe *v, ExprList *pOrderBy){ char *zSortOrder; int i; zSortOrder = sqliteMalloc( pOrderBy->nExpr + 1 ); if( zSortOrder==0 ) return; for(i=0; i<pOrderBy->nExpr; i++){ | > > > > > > | 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 | pParse->nAgg = 0; pParse->useAgg = 0; } /* ** Insert code into "v" that will push the record on the top of the ** stack into the sorter. ** ** FIX ME: Change this so that it uses the OP_MakeKey opcode ** instead of OP_SortMakeKey. Delete the OP_SortMakeKey opcode. ** All columns should have affinity NONE. Handle ASC versus ** DESC sort order by defining a list of comparison functions to ** be used by the OP_Sort opcode. */ static void pushOntoSorter(Parse *pParse, Vdbe *v, ExprList *pOrderBy){ char *zSortOrder; int i; zSortOrder = sqliteMalloc( pOrderBy->nExpr + 1 ); if( zSortOrder==0 ) return; for(i=0; i<pOrderBy->nExpr; i++){ |
︙ | ︙ | |||
2521 2522 2523 2524 2525 2526 2527 | /* Control jumps to here if an error is encountered above, or upon ** successful coding of the SELECT. */ select_end: sqliteAggregateInfoReset(pParse); return rc; } | < < < | 2527 2528 2529 2530 2531 2532 2533 | /* Control jumps to here if an error is encountered above, or upon ** successful coding of the SELECT. */ select_end: sqliteAggregateInfoReset(pParse); return rc; } |
Changes to src/vdbeInt.h.
︙ | ︙ | |||
317 318 319 320 321 322 323 | */ void sqlite3VdbeCleanupCursor(Cursor*); void sqlite3VdbeSorterReset(Vdbe*); void sqlite3VdbeAggReset(Agg*); void sqlite3VdbeKeylistFree(Keylist*); void sqliteVdbePopStack(Vdbe*,int); int sqlite3VdbeCursorMoveto(Cursor*); | < | 317 318 319 320 321 322 323 324 325 326 327 328 329 330 | */ void sqlite3VdbeCleanupCursor(Cursor*); void sqlite3VdbeSorterReset(Vdbe*); void sqlite3VdbeAggReset(Agg*); void sqlite3VdbeKeylistFree(Keylist*); void sqliteVdbePopStack(Vdbe*,int); int sqlite3VdbeCursorMoveto(Cursor*); #if !defined(NDEBUG) || defined(VDBE_PROFILE) void sqlite3VdbePrintOp(FILE*, int, Op*); #endif int sqlite3VdbeSerialTypeLen(u64); u64 sqlite3VdbeSerialType(const Mem *); int sqlite3VdbeSerialPut(unsigned char *, const Mem *); int sqlite3VdbeSerialGet(const unsigned char *, u64, Mem *); |
︙ | ︙ |
Changes to src/vdbeaux.c.
︙ | ︙ | |||
1012 1013 1014 1015 1016 1017 1018 | sqliteFree(p->aOp); sqliteFree(p->aLabel); sqliteFree(p->aStack); p->magic = VDBE_MAGIC_DEAD; sqliteFree(p); } | < < < < < < < < < < < < < < < < < < < < < < < < < < < | 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 | sqliteFree(p->aOp); sqliteFree(p->aLabel); sqliteFree(p->aStack); p->magic = VDBE_MAGIC_DEAD; sqliteFree(p); } /* ** If a MoveTo operation is pending on the given cursor, then do that ** MoveTo now. Return an error code. If no MoveTo is pending, this ** routine does nothing and returns SQLITE_OK. */ int sqlite3VdbeCursorMoveto(Cursor *p){ if( p->deferredMoveto ){ |
︙ | ︙ | |||
1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 | sqlite3_search_count++; p->deferredMoveto = 0; p->cacheValid = 0; } return SQLITE_OK; } /* ** FIX ME ** ** This function is included temporarily so that regression tests have ** a chance of passing. It always uses memcmp(). */ int sqlite2BtreeKeyCompare( | > | 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 | sqlite3_search_count++; p->deferredMoveto = 0; p->cacheValid = 0; } return SQLITE_OK; } #if 0 /* ** FIX ME ** ** This function is included temporarily so that regression tests have ** a chance of passing. It always uses memcmp(). */ int sqlite2BtreeKeyCompare( |
︙ | ︙ | |||
1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 | rc = sqlite3BtreeKey(pCur, 0, nCellKey, pMallocedKey); *pResult = memcmp(pMallocedKey, pKey, nKey>nCellKey?nCellKey:nKey); sqliteFree(pMallocedKey); return rc; } /* ** The following functions: ** ** sqlite3VdbeSerialType() ** sqlite3VdbeSerialTypeLen() ** sqlite3VdbeSerialRead() | > | 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 | rc = sqlite3BtreeKey(pCur, 0, nCellKey, pMallocedKey); *pResult = memcmp(pMallocedKey, pKey, nKey>nCellKey?nCellKey:nKey); sqliteFree(pMallocedKey); return rc; } #endif /* ** The following functions: ** ** sqlite3VdbeSerialType() ** sqlite3VdbeSerialTypeLen() ** sqlite3VdbeSerialRead() |
︙ | ︙ |