Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Rearrange some code in the RowSet logic for clarity of presentation, while adding an /*OPTIMIZATION-IF-TRUE*/ comment. It should operate identically. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
5748e64376c1c2be5154a632d1527cfe |
User & Date: | drh 2016-04-28 18:53:08.454 |
Context
2016-04-28
| ||
19:23 | Fix typo in comment. No changes to code. (check-in: 9f6f17b5c9 user: mistachkin tags: trunk) | |
18:53 | Rearrange some code in the RowSet logic for clarity of presentation, while adding an /*OPTIMIZATION-IF-TRUE*/ comment. It should operate identically. (check-in: 5748e64376 user: drh tags: trunk) | |
14:15 | Use comments to mark several branches as optimizations. No changes to code. (check-in: 33e6274727 user: drh tags: trunk) | |
Changes
Changes to src/rowset.c.
︙ | ︙ | |||
334 335 336 337 338 339 340 | int iDepth ){ struct RowSetEntry *p; /* Root of the new tree */ struct RowSetEntry *pLeft; /* Left subtree */ if( *ppList==0 ){ return 0; } | | | | | < < | | | | | | | | > > > > > | 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 | int iDepth ){ struct RowSetEntry *p; /* Root of the new tree */ struct RowSetEntry *pLeft; /* Left subtree */ if( *ppList==0 ){ return 0; } if( iDepth>1 ){ /*OPTIMIZATION-IF-TRUE*/ /* This branch cases a *balanced* tree to be generated. A valid tree ** is still generated without this branch, but it is wildly unbalanced ** and inefficient. */ pLeft = rowSetNDeepTree(ppList, iDepth-1); p = *ppList; if( p==0 ){ return pLeft; } p->pLeft = pLeft; *ppList = p->pRight; p->pRight = rowSetNDeepTree(ppList, iDepth-1); }else{ p = *ppList; *ppList = p->pRight; p->pLeft = p->pRight = 0; } return p; } /* ** Convert a sorted list of elements into a binary tree. Make the tree ** as deep as it needs to be in order to contain the entire list. */ |
︙ | ︙ |