Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Update this branch with latest trunk changes. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | window-functions |
Files: | files | file ages | folders |
SHA3-256: |
98cc26598718e5557ee00aa77336024c |
User & Date: | dan 2019-03-19 11:17:28.065 |
Context
2019-03-19
| ||
11:56 | Revert the OP_MustBeInt opcode implementation on this branch so that it again matches trunk. The extra functionality is no longer required. (check-in: c02f77b1b4 user: dan tags: window-functions) | |
11:17 | Update this branch with latest trunk changes. (check-in: 98cc265987 user: dan tags: window-functions) | |
09:57 | Add a LICENSE.md, containing the text of the blessing. (check-in: cbb7e60272 user: drh tags: trunk) | |
06:40 | Ensure that all the new window-function keywords can still be used as SQL identifiers. (check-in: a6d61dfd47 user: dan tags: window-functions) | |
Changes
Added LICENSE.md.
> > > > > > | 1 2 3 4 5 6 | The author disclaims copyright to this source code. In place of a legal notice, here is a blessing: * May you do good and not evil. * May you find forgiveness for yourself and forgive others. * May you share freely, never taking more than you give. |
Changes to README.md.
1 2 3 4 5 6 7 | <h1 align="center">SQLite Source Repository</h1> This repository contains the complete source code for the [SQLite database engine](https://sqlite.org/). Some test scripts are also included. However, many other test scripts and most of the documentation are managed separately. | > | > > > > > | > > > > | > > | > > > < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <h1 align="center">SQLite Source Repository</h1> This repository contains the complete source code for the [SQLite database engine](https://sqlite.org/). Some test scripts are also included. However, many other test scripts and most of the documentation are managed separately. ## Version Control SQLite sources are managed using the [Fossil](https://www.fossil-scm.org/), a distributed version control system that was specifically designed and written to support SQLite development. The [Fossil repository](https://sqlite.org/src/timeline) contains the urtext. If you are reading this on GitHub or some other Git repository or service, then you are looking at a mirror. The names of check-ins and other artifacts in a Git mirror are different from the official names for those objects. The offical names for check-ins are found in a footer on the check-in comment for authorized mirrors. The official check-in name can also be seen in the `manifest.uuid` file in the root of the tree. Always use the official name, not the Git-name, when communicating about an SQLite check-in. If you pulled your SQLite source code from a secondary source and want to verify its integrity, there are hints on how to do that in the [Verifying Code Authenticity](#vauth) section below. ## Obtaining The Code If you do not want to use Fossil, you can download tarballs or ZIP archives or [SQLite archives](https://sqlite.org/cli.html#sqlar) as follows: * Lastest trunk check-in as [Tarball](https://www.sqlite.org/src/tarball/sqlite.tar.gz), [ZIP-archive](https://www.sqlite.org/src/zip/sqlite.zip), or [SQLite-archive](https://www.sqlite.org/src/sqlar/sqlite.sqlar). |
︙ | ︙ | |||
290 291 292 293 294 295 296 297 298 299 300 301 302 303 | * **ext/misc/json1.c** - This file implements the various JSON functions that are build into SQLite. There are many other source files. Each has a succinct header comment that describes its purpose and role within the larger system. ## Contacts The main SQLite webpage is [http://www.sqlite.org/](http://www.sqlite.org/) with geographically distributed backups at [http://www2.sqlite.org/](http://www2.sqlite.org) and [http://www3.sqlite.org/](http://www3.sqlite.org). | > > > > > > > > > > > > > > > > > > > > > > > > > > > | 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 | * **ext/misc/json1.c** - This file implements the various JSON functions that are build into SQLite. There are many other source files. Each has a succinct header comment that describes its purpose and role within the larger system. <a name="vauth"></a> ## Verifying Code Authenticity If you obtained an SQLite source tree from a secondary source, such as a GitHub mirror, and you want to verify that it has not been altered, there are a couple of ways to do that. If you have an official release version of SQLite, and you are using the `sqlite3.c` amalgamation, then SHA3-256 hashes for the amalgamation are available in the [change log](https://www.sqlite.org/changes.html) on the official website. After building the `sqlite3.c` file, you can check that is authentic by comparing the hash. This does not ensure that the test scripts are unaltered, but it does validate the deliverable part of the code and only involves computing and comparing a single hash. For versions other than an official release, or if you are building the `sqlite3.c` amalgamation using non-standard build options, the verification process is a little more involved. The `manifest` file at the root directory of the source tree ([example](https://sqlite.org/src/artifact/bd49a8271d650fa8)) contains either a SHA3-256 hash (for newer files) or a SHA1 hash (for older files) for every source file in the repository. You can write a script to extracts hashes from `manifest` and verifies the hashes against the corresponding files in the source tree. The SHA3-256 hash of the `manifest` file itself is the official name of the version of the source tree that you have. The `manifest.uuid` file should contain the SHA3-256 hash of the `manifest` file. If all of the above hash comparisons are correct, then you can be confident that your source tree is authentic and unadulterated. ## Contacts The main SQLite webpage is [http://www.sqlite.org/](http://www.sqlite.org/) with geographically distributed backups at [http://www2.sqlite.org/](http://www2.sqlite.org) and [http://www3.sqlite.org/](http://www3.sqlite.org). |
Changes to ext/fts5/fts5Int.h.
︙ | ︙ | |||
579 580 581 582 583 584 585 586 | /* ** Empty (but do not delete) a hash table. */ void sqlite3Fts5HashClear(Fts5Hash*); int sqlite3Fts5HashQuery( Fts5Hash*, /* Hash table to query */ const char *pTerm, int nTerm, /* Query term */ | > | | 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 | /* ** Empty (but do not delete) a hash table. */ void sqlite3Fts5HashClear(Fts5Hash*); int sqlite3Fts5HashQuery( Fts5Hash*, /* Hash table to query */ int nPre, const char *pTerm, int nTerm, /* Query term */ void **ppObj, /* OUT: Pointer to doclist for pTerm */ int *pnDoclist /* OUT: Size of doclist in bytes */ ); int sqlite3Fts5HashScanInit( Fts5Hash*, /* Hash table to query */ const char *pTerm, int nTerm /* Query prefix */ ); |
︙ | ︙ |
Changes to ext/fts5/fts5_hash.c.
︙ | ︙ | |||
183 184 185 186 187 188 189 | sqlite3_free(apOld); pHash->nSlot = nNew; pHash->aSlot = apNew; return SQLITE_OK; } | | > > > > > | > | | | | | > > | | | > | > > | 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 | sqlite3_free(apOld); pHash->nSlot = nNew; pHash->aSlot = apNew; return SQLITE_OK; } static int fts5HashAddPoslistSize( Fts5Hash *pHash, Fts5HashEntry *p, Fts5HashEntry *p2 ){ int nRet = 0; if( p->iSzPoslist ){ u8 *pPtr = p2 ? (u8*)p2 : (u8*)p; int nData = p->nData; if( pHash->eDetail==FTS5_DETAIL_NONE ){ assert( nData==p->iSzPoslist ); if( p->bDel ){ pPtr[nData++] = 0x00; if( p->bContent ){ pPtr[nData++] = 0x00; } } }else{ int nSz = (nData - p->iSzPoslist - 1); /* Size in bytes */ int nPos = nSz*2 + p->bDel; /* Value of nPos field */ assert( p->bDel==0 || p->bDel==1 ); if( nPos<=127 ){ pPtr[p->iSzPoslist] = (u8)nPos; }else{ int nByte = sqlite3Fts5GetVarintLen((u32)nPos); memmove(&pPtr[p->iSzPoslist + nByte], &pPtr[p->iSzPoslist + 1], nSz); sqlite3Fts5PutVarint(&pPtr[p->iSzPoslist], nPos); nData += (nByte-1); } } nRet = nData - p->nData; if( p2==0 ){ p->iSzPoslist = 0; p->bDel = 0; p->bContent = 0; p->nData = nData; } } return nRet; } /* ** Add an entry to the in-memory hash table. The key is the concatenation ** of bByte and (pToken/nToken). The value is (iRowid/iCol/iPos). ** ** (bByte || pToken) -> (iRowid,iCol,iPos) |
︙ | ︙ | |||
324 325 326 327 328 329 330 | assert( (p->nAlloc - p->nData) >= (9 + 4 + 1 + 3 + 5) ); pPtr = (u8*)p; /* If this is a new rowid, append the 4-byte size field for the previous ** entry, and the new rowid for this entry. */ if( iRowid!=p->iRowid ){ | | | 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 | assert( (p->nAlloc - p->nData) >= (9 + 4 + 1 + 3 + 5) ); pPtr = (u8*)p; /* If this is a new rowid, append the 4-byte size field for the previous ** entry, and the new rowid for this entry. */ if( iRowid!=p->iRowid ){ fts5HashAddPoslistSize(pHash, p, 0); p->nData += sqlite3Fts5PutVarint(&pPtr[p->nData], iRowid - p->iRowid); p->iRowid = iRowid; bNew = 1; p->iSzPoslist = p->nData; if( pHash->eDetail!=FTS5_DETAIL_NONE ){ p->nData += 1; p->iCol = (pHash->eDetail==FTS5_DETAIL_FULL ? 0 : -1); |
︙ | ︙ | |||
441 442 443 444 445 446 447 | ap = sqlite3_malloc64(sizeof(Fts5HashEntry*) * nMergeSlot); if( !ap ) return SQLITE_NOMEM; memset(ap, 0, sizeof(Fts5HashEntry*) * nMergeSlot); for(iSlot=0; iSlot<pHash->nSlot; iSlot++){ Fts5HashEntry *pIter; for(pIter=pHash->aSlot[iSlot]; pIter; pIter=pIter->pHashNext){ | > | > | 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 | ap = sqlite3_malloc64(sizeof(Fts5HashEntry*) * nMergeSlot); if( !ap ) return SQLITE_NOMEM; memset(ap, 0, sizeof(Fts5HashEntry*) * nMergeSlot); for(iSlot=0; iSlot<pHash->nSlot; iSlot++){ Fts5HashEntry *pIter; for(pIter=pHash->aSlot[iSlot]; pIter; pIter=pIter->pHashNext){ if( pTerm==0 || (pIter->nKey+1>=nTerm && 0==memcmp(fts5EntryKey(pIter), pTerm, nTerm)) ){ Fts5HashEntry *pEntry = pIter; pEntry->pScanNext = 0; for(i=0; ap[i]; i++){ pEntry = fts5HashEntryMerge(pEntry, ap[i]); ap[i] = 0; } ap[i] = pEntry; |
︙ | ︙ | |||
469 470 471 472 473 474 475 476 | } /* ** Query the hash table for a doclist associated with term pTerm/nTerm. */ int sqlite3Fts5HashQuery( Fts5Hash *pHash, /* Hash table to query */ const char *pTerm, int nTerm, /* Query term */ | > | > > > > > > | | > | > > | | 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 | } /* ** Query the hash table for a doclist associated with term pTerm/nTerm. */ int sqlite3Fts5HashQuery( Fts5Hash *pHash, /* Hash table to query */ int nPre, const char *pTerm, int nTerm, /* Query term */ void **ppOut, /* OUT: Pointer to new object */ int *pnDoclist /* OUT: Size of doclist in bytes */ ){ unsigned int iHash = fts5HashKey(pHash->nSlot, (const u8*)pTerm, nTerm); char *zKey = 0; Fts5HashEntry *p; for(p=pHash->aSlot[iHash]; p; p=p->pHashNext){ zKey = fts5EntryKey(p); assert( p->nKey+1==(int)strlen(zKey) ); if( nTerm==p->nKey+1 && memcmp(zKey, pTerm, nTerm)==0 ) break; } if( p ){ int nHashPre = sizeof(Fts5HashEntry) + nTerm + 1; int nList = p->nData - nHashPre; u8 *pRet = (u8*)(*ppOut = sqlite3_malloc64(nPre + nList + 10)); if( pRet ){ Fts5HashEntry *pFaux = (Fts5HashEntry*)&pRet[nPre-nHashPre]; memcpy(&pRet[nPre], &((u8*)p)[nHashPre], nList); nList += fts5HashAddPoslistSize(pHash, p, pFaux); *pnDoclist = nList; }else{ *pnDoclist = 0; return SQLITE_NOMEM; } }else{ *ppOut = 0; *pnDoclist = 0; } return SQLITE_OK; } int sqlite3Fts5HashScanInit( |
︙ | ︙ | |||
521 522 523 524 525 526 527 | const u8 **ppDoclist, /* OUT: pointer to doclist */ int *pnDoclist /* OUT: size of doclist in bytes */ ){ Fts5HashEntry *p; if( (p = pHash->pScan) ){ char *zKey = fts5EntryKey(p); int nTerm = (int)strlen(zKey); | | | 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 | const u8 **ppDoclist, /* OUT: pointer to doclist */ int *pnDoclist /* OUT: size of doclist in bytes */ ){ Fts5HashEntry *p; if( (p = pHash->pScan) ){ char *zKey = fts5EntryKey(p); int nTerm = (int)strlen(zKey); fts5HashAddPoslistSize(pHash, p, 0); *pzTerm = zKey; *ppDoclist = (const u8*)&zKey[nTerm+1]; *pnDoclist = p->nData - (sizeof(Fts5HashEntry) + nTerm + 1); }else{ *pzTerm = 0; *ppDoclist = 0; *pnDoclist = 0; } } |
Changes to ext/fts5/fts5_index.c.
︙ | ︙ | |||
2453 2454 2455 2456 2457 2458 2459 | */ static void fts5SegIterHashInit( Fts5Index *p, /* FTS5 backend */ const u8 *pTerm, int nTerm, /* Term to seek to */ int flags, /* Mask of FTS5INDEX_XXX flags */ Fts5SegIter *pIter /* Object to populate */ ){ | < > > > > > > > > > < | > > > > > > | < < < < | 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 | */ static void fts5SegIterHashInit( Fts5Index *p, /* FTS5 backend */ const u8 *pTerm, int nTerm, /* Term to seek to */ int flags, /* Mask of FTS5INDEX_XXX flags */ Fts5SegIter *pIter /* Object to populate */ ){ int nList = 0; const u8 *z = 0; int n = 0; Fts5Data *pLeaf = 0; assert( p->pHash ); assert( p->rc==SQLITE_OK ); if( pTerm==0 || (flags & FTS5INDEX_QUERY_SCAN) ){ const u8 *pList = 0; p->rc = sqlite3Fts5HashScanInit(p->pHash, (const char*)pTerm, nTerm); sqlite3Fts5HashScanEntry(p->pHash, (const char**)&z, &pList, &nList); n = (z ? (int)strlen((const char*)z) : 0); if( pList ){ pLeaf = fts5IdxMalloc(p, sizeof(Fts5Data)); if( pLeaf ){ pLeaf->p = pList; } } }else{ p->rc = sqlite3Fts5HashQuery(p->pHash, sizeof(Fts5Data), (const char*)pTerm, nTerm, (void**)&pLeaf, &nList ); if( pLeaf ){ pLeaf->p = (u8*)&pLeaf[1]; } z = pTerm; n = nTerm; pIter->flags |= FTS5_SEGITER_ONETERM; } if( pLeaf ){ sqlite3Fts5BufferSet(&p->rc, &pIter->term, n, z); pLeaf->nn = pLeaf->szLeaf = nList; pIter->pLeaf = pLeaf; pIter->iLeafOffset = fts5GetVarint(pLeaf->p, (u64*)&pIter->iRowid); pIter->iEndofDoclist = pLeaf->nn; if( flags & FTS5INDEX_QUERY_DESC ){ pIter->flags |= FTS5_SEGITER_REVERSE; |
︙ | ︙ |
Changes to ext/fts5/test/fts5aa.test.
︙ | ︙ | |||
423 424 425 426 427 428 429 | INSERT INTO n1 VALUES('a b c d'); } proc funk {} { db eval { UPDATE n1_config SET v=50 WHERE k='version' } set fd [db incrblob main n1_data block 10] fconfigure $fd -encoding binary -translation binary | | | 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 | INSERT INTO n1 VALUES('a b c d'); } proc funk {} { db eval { UPDATE n1_config SET v=50 WHERE k='version' } set fd [db incrblob main n1_data block 10] fconfigure $fd -encoding binary -translation binary # puts -nonewline $fd "\x44\x45" close $fd } db func funk funk # This test case corrupts the structure record within the first invocation # of function funk(). Which used to cause the bm25() function to throw an # exception. But since bm25() can now used the cached structure record, |
︙ | ︙ | |||
598 599 600 601 602 603 604 605 606 607 608 609 | } do_execsql_test 23.1 { SELECT * FROM t11, t10 WHERE t11.x = t10.x AND t10.rowid IS NULL; } do_execsql_test 23.2 { SELECT * FROM t11, t10 WHERE t10.rowid IS NULL; } } expand_all_sql db finish_test | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 | } do_execsql_test 23.1 { SELECT * FROM t11, t10 WHERE t11.x = t10.x AND t10.rowid IS NULL; } do_execsql_test 23.2 { SELECT * FROM t11, t10 WHERE t10.rowid IS NULL; } #------------------------------------------------------------------------- do_execsql_test 24.0 { CREATE VIRTUAL TABLE t12 USING fts5(x, detail=%DETAIL%); INSERT INTO t12 VALUES('aaaa'); } do_execsql_test 24.1 { BEGIN; DELETE FROM t12 WHERE rowid=1; SELECT * FROM t12('aaaa'); INSERT INTO t12 VALUES('aaaa'); END; } do_execsql_test 24.2 { INSERT INTO t12(t12) VALUES('integrity-check'); } do_execsql_test 24.3 { SELECT * FROM t12('aaaa'); } {aaaa} #------------------------------------------------------------------------- do_execsql_test 25.0 { CREATE VIRTUAL TABLE t13 USING fts5(x, detail=%DETAIL%); } do_execsql_test 25.1 { BEGIN; INSERT INTO t13 VALUES('AAAA'); SELECT * FROM t13('BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB*'); END; } } expand_all_sql db finish_test |
Changes to src/alter.c.
︙ | ︙ | |||
162 163 164 165 166 167 168 | pVTab = sqlite3GetVTable(db, pTab); if( pVTab->pVtab->pModule->xRename==0 ){ pVTab = 0; } } #endif | | | | | < > | 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 | pVTab = sqlite3GetVTable(db, pTab); if( pVTab->pVtab->pModule->xRename==0 ){ pVTab = 0; } } #endif /* Begin a transaction for database iDb. Then modify the schema cookie ** (since the ALTER TABLE modifies the schema). Call sqlite3MayAbort(), ** as the scalar functions (e.g. sqlite_rename_table()) invoked by the ** nested SQL may raise an exception. */ v = sqlite3GetVdbe(pParse); if( v==0 ){ goto exit_rename_table; } sqlite3MayAbort(pParse); /* figure out how many UTF-8 characters are in zName */ zTabName = pTab->zName; nTabName = sqlite3Utf8CharLen(zTabName, -1); /* Rewrite all CREATE TABLE, INDEX, TRIGGER or VIEW statements in ** the schema to use the new table name. */ |
︙ | ︙ | |||
239 240 241 242 243 244 245 | ** SQLite tables) that are identified by the name of the virtual table. */ #ifndef SQLITE_OMIT_VIRTUALTABLE if( pVTab ){ int i = ++pParse->nMem; sqlite3VdbeLoadString(v, i, zName); sqlite3VdbeAddOp4(v, OP_VRename, i, 0, 0,(const char*)pVTab, P4_VTAB); | < | 239 240 241 242 243 244 245 246 247 248 249 250 251 252 | ** SQLite tables) that are identified by the name of the virtual table. */ #ifndef SQLITE_OMIT_VIRTUALTABLE if( pVTab ){ int i = ++pParse->nMem; sqlite3VdbeLoadString(v, i, zName); sqlite3VdbeAddOp4(v, OP_VRename, i, 0, 0,(const char*)pVTab, P4_VTAB); } #endif renameReloadSchema(pParse, iDb); renameTestSchema(pParse, zDb, iDb==1); exit_rename_table: |
︙ | ︙ | |||
560 561 562 563 564 565 566 567 568 569 570 571 572 573 | goto exit_rename_column; } /* Do the rename operation using a recursive UPDATE statement that ** uses the sqlite_rename_column() SQL function to compute the new ** CREATE statement text for the sqlite_master table. */ zNew = sqlite3NameFromToken(db, pNew); if( !zNew ) goto exit_rename_column; assert( pNew->n>0 ); bQuote = sqlite3Isquote(pNew->z[0]); sqlite3NestedParse(pParse, "UPDATE \"%w\".%s SET " "sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) " | > | 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 | goto exit_rename_column; } /* Do the rename operation using a recursive UPDATE statement that ** uses the sqlite_rename_column() SQL function to compute the new ** CREATE statement text for the sqlite_master table. */ sqlite3MayAbort(pParse); zNew = sqlite3NameFromToken(db, pNew); if( !zNew ) goto exit_rename_column; assert( pNew->n>0 ); bQuote = sqlite3Isquote(pNew->z[0]); sqlite3NestedParse(pParse, "UPDATE \"%w\".%s SET " "sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) " |
︙ | ︙ |
Changes to src/os_unix.c.
︙ | ︙ | |||
7818 7819 7820 7821 7822 7823 7824 | ** array cannot be const. */ static sqlite3_vfs aVfs[] = { #if SQLITE_ENABLE_LOCKING_STYLE && defined(__APPLE__) UNIXVFS("unix", autolockIoFinder ), #elif OS_VXWORKS UNIXVFS("unix", vxworksIoFinder ), | < < < | 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 | ** array cannot be const. */ static sqlite3_vfs aVfs[] = { #if SQLITE_ENABLE_LOCKING_STYLE && defined(__APPLE__) UNIXVFS("unix", autolockIoFinder ), #elif OS_VXWORKS UNIXVFS("unix", vxworksIoFinder ), #else UNIXVFS("unix", posixIoFinder ), #endif UNIXVFS("unix-none", nolockIoFinder ), UNIXVFS("unix-dotfile", dotlockIoFinder ), UNIXVFS("unix-excl", posixIoFinder ), #if OS_VXWORKS |
︙ | ︙ |
Changes to src/sqlite.h.in.
︙ | ︙ | |||
4041 4042 4043 4044 4045 4046 4047 | ** the value of the fourth parameter then the resulting string value will ** contain embedded NULs. The result of expressions involving strings ** with embedded NULs is undefined. ** ** ^The fifth argument to the BLOB and string binding interfaces ** is a destructor used to dispose of the BLOB or ** string after SQLite has finished with it. ^The destructor is called | | > > | 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 | ** the value of the fourth parameter then the resulting string value will ** contain embedded NULs. The result of expressions involving strings ** with embedded NULs is undefined. ** ** ^The fifth argument to the BLOB and string binding interfaces ** is a destructor used to dispose of the BLOB or ** string after SQLite has finished with it. ^The destructor is called ** to dispose of the BLOB or string even if the call to the bind API fails, ** except the destructor is not called if the third parameter is a NULL ** pointer or the fourth parameter is negative. ** ^If the fifth argument is ** the special value [SQLITE_STATIC], then SQLite assumes that the ** information is in static, unmanaged space and does not need to be freed. ** ^If the fifth argument has the value [SQLITE_TRANSIENT], then ** SQLite makes its own private copy of the data immediately, before ** the sqlite3_bind_*() routine returns. ** |
︙ | ︙ | |||
5799 5800 5801 5802 5803 5804 5805 | ** CAPI3REF: Return The Filename For A Database Connection ** METHOD: sqlite3 ** ** ^The sqlite3_db_filename(D,N) interface returns a pointer to a filename ** associated with database N of connection D. ^The main database file ** has the name "main". If there is no attached database N on the database ** connection D, or if database N is a temporary or in-memory database, then | | | 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 | ** CAPI3REF: Return The Filename For A Database Connection ** METHOD: sqlite3 ** ** ^The sqlite3_db_filename(D,N) interface returns a pointer to a filename ** associated with database N of connection D. ^The main database file ** has the name "main". If there is no attached database N on the database ** connection D, or if database N is a temporary or in-memory database, then ** this function will return either a NULL pointer or an empty string. ** ** ^The filename returned by this function is the output of the ** xFullPathname method of the [VFS]. ^In other words, the filename ** will be an absolute pathname, even if the filename used ** to open the database originally was a URI or relative pathname. */ const char *sqlite3_db_filename(sqlite3 *db, const char *zDbName); |
︙ | ︙ |
Changes to src/vdbeaux.c.
︙ | ︙ | |||
633 634 635 636 637 638 639 640 641 642 643 644 645 646 | memset(&sIter, 0, sizeof(sIter)); sIter.v = v; while( (pOp = opIterNext(&sIter))!=0 ){ int opcode = pOp->opcode; if( opcode==OP_Destroy || opcode==OP_VUpdate || opcode==OP_VRename || opcode==OP_VDestroy || ((opcode==OP_Halt || opcode==OP_HaltIfNull) && ((pOp->p1)!=SQLITE_OK && pOp->p2==OE_Abort)) ){ hasAbort = 1; break; } if( opcode==OP_CreateBtree && pOp->p3==BTREE_INTKEY ) hasCreateTable = 1; | > | 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 | memset(&sIter, 0, sizeof(sIter)); sIter.v = v; while( (pOp = opIterNext(&sIter))!=0 ){ int opcode = pOp->opcode; if( opcode==OP_Destroy || opcode==OP_VUpdate || opcode==OP_VRename || opcode==OP_VDestroy || (opcode==OP_Function0 && pOp->p4.pFunc->funcFlags&SQLITE_FUNC_INTERNAL) || ((opcode==OP_Halt || opcode==OP_HaltIfNull) && ((pOp->p1)!=SQLITE_OK && pOp->p2==OE_Abort)) ){ hasAbort = 1; break; } if( opcode==OP_CreateBtree && pOp->p3==BTREE_INTKEY ) hasCreateTable = 1; |
︙ | ︙ |
Changes to src/wherecode.c.
︙ | ︙ | |||
1156 1157 1158 1159 1160 1161 1162 | sqlite3WalkExpr(&w, pWInfo->pWhere); sqlite3WalkExprList(&w, pWInfo->pOrderBy); sqlite3WalkExprList(&w, pWInfo->pResultSet); } } /* | | | 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 | sqlite3WalkExpr(&w, pWInfo->pWhere); sqlite3WalkExprList(&w, pWInfo->pOrderBy); sqlite3WalkExprList(&w, pWInfo->pResultSet); } } /* ** The pTruth expression is always true because it is the WHERE clause ** a partial index that is driving a query loop. Look through all of the ** WHERE clause terms on the query, and if any of those terms must be ** true because pTruth is true, then mark those WHERE clause terms as ** coded. */ static void whereApplyPartialIndexConstraints( Expr *pTruth, |
︙ | ︙ |
Changes to test/altertab3.test.
︙ | ︙ | |||
77 78 79 80 81 82 83 | ALTER TABLE t1 RENAME b TO bbb; } do_execsql_test 3.2 { SELECT sql FROM sqlite_master WHERE name = 'v1' } {{CREATE VIEW v1 AS SELECT * FROM t1 WHERE a=1 OR (bbb IN ())}} | > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > | 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | ALTER TABLE t1 RENAME b TO bbb; } do_execsql_test 3.2 { SELECT sql FROM sqlite_master WHERE name = 'v1' } {{CREATE VIEW v1 AS SELECT * FROM t1 WHERE a=1 OR (bbb IN ())}} #------------------------------------------------------------------------- reset_db do_execsql_test 4.0 { CREATE TABLE t1(a, b); CREATE TABLE t3(e, f); CREATE TRIGGER tr1 AFTER INSERT ON t1 BEGIN INSERT INTO t2 VALUES(new.a, new.b); END; } do_catchsql_test 4.1.2 { BEGIN; ALTER TABLE t3 RENAME TO t4; } {1 {error in trigger tr1: no such table: main.t2}} do_execsql_test 4.1.2 { COMMIT; } do_execsql_test 4.1.3 { SELECT * FROM sqlite_master WHERE type='table' AND name!='t1'; } {table t3 t3 3 {CREATE TABLE t3(e, f)}} do_catchsql_test 4.2.1 { BEGIN; ALTER TABLE t3 RENAME e TO eee; } {1 {error in trigger tr1: no such table: main.t2}} do_execsql_test 4.2.2 { COMMIT; } do_execsql_test 4.2.3 { SELECT * FROM sqlite_master WHERE type='table' AND name!='t1'; } {table t3 t3 3 {CREATE TABLE t3(e, f)}} finish_test |
Changes to test/sessionfuzz.c.
︙ | ︙ | |||
826 827 828 829 830 831 832 | static int conflictCall( void *NotUsed, int eConflict, sqlite3_changeset_iter *p ){ (void)NotUsed; (void)p; | < | 826 827 828 829 830 831 832 833 834 835 836 837 838 839 | static int conflictCall( void *NotUsed, int eConflict, sqlite3_changeset_iter *p ){ (void)NotUsed; (void)p; return SQLITE_CHANGESET_OMIT; } /* ** Reset the database file */ static void db_reset(sqlite3 *db){ |
︙ | ︙ |
Changes to test/window8.tcl.
︙ | ︙ | |||
92 93 94 95 96 97 98 99 100 101 102 103 104 105 | execsql_test 1.$tn.6 " SELECT a, b, sum(c) OVER (ORDER BY a $f2) FROM t3 ORDER BY 1, 2, 3; " execsql_test 1.$tn.7 " SELECT a, b, sum(c) OVER (ORDER BY a,b $f2) FROM t3 ORDER BY 1, 2, 3; " } foreach {tn ex} { 1 { EXCLUDE NO OTHERS } 2 { EXCLUDE CURRENT ROW } 3 { EXCLUDE GROUP } | > > > > > > > > > | 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | execsql_test 1.$tn.6 " SELECT a, b, sum(c) OVER (ORDER BY a $f2) FROM t3 ORDER BY 1, 2, 3; " execsql_test 1.$tn.7 " SELECT a, b, sum(c) OVER (ORDER BY a,b $f2) FROM t3 ORDER BY 1, 2, 3; " execsql_test 1.$tn.8 " SELECT a, b, sum(c) OVER (ORDER BY a $f2), sum(c) OVER (ORDER BY a $frame), sum(c) OVER (ORDER BY a,b $f2), sum(c) OVER (ORDER BY a,b $frame) FROM t3 ORDER BY 1, 2, 3; " } foreach {tn ex} { 1 { EXCLUDE NO OTHERS } 2 { EXCLUDE CURRENT ROW } 3 { EXCLUDE GROUP } |
︙ | ︙ |
Changes to test/window8.test.
︙ | ︙ | |||
174 175 176 177 178 179 180 181 182 183 184 185 186 187 | GG bb 28983 GG bb 28983 GG bb 28983 HH aa 31854 HH aa 31854 HH aa 31854 HH bb 34103 HH bb 34103 HH bb 34103 HH bb 34103 HH bb 34103 HH bb 34103 II aa 37297 II aa 37297 II bb 38347 II bb 38347 II bb 38347 II bb 38347 II bb 38347 JJ aa 40937 JJ aa 40937 JJ aa 40937 JJ aa 40937 JJ bb 42951 JJ bb 42951 JJ bb 42951 JJ bb 42951} do_execsql_test 1.2.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 AA bb 4685 AA bb 4685 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 CC aa 15147 CC aa 15147 CC aa 15147 CC aa 15147 CC bb 15147 CC bb 15147 | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 | GG bb 28983 GG bb 28983 GG bb 28983 HH aa 31854 HH aa 31854 HH aa 31854 HH bb 34103 HH bb 34103 HH bb 34103 HH bb 34103 HH bb 34103 HH bb 34103 II aa 37297 II aa 37297 II bb 38347 II bb 38347 II bb 38347 II bb 38347 II bb 38347 JJ aa 40937 JJ aa 40937 JJ aa 40937 JJ aa 40937 JJ bb 42951 JJ bb 42951 JJ bb 42951 JJ bb 42951} do_execsql_test 1.1.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa {} {} {} {} AA aa {} {} {} {} AA aa {} {} {} {} AA aa {} {} {} {} AA bb {} {} 2307 2307 AA bb {} {} 2307 2307 AA bb {} {} 2307 2307 AA bb {} {} 2307 2307 BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 BB bb 4685 4685 7558 7558 BB bb 4685 4685 7558 7558 BB bb 4685 4685 7558 7558 BB bb 4685 4685 7558 7558 BB bb 4685 4685 7558 7558 BB bb 4685 4685 7558 7558 CC aa 12025 12025 12025 12025 CC aa 12025 12025 12025 12025 CC aa 12025 12025 12025 12025 CC aa 12025 12025 12025 12025 CC bb 12025 12025 13979 13979 CC bb 12025 12025 13979 13979 DD aa 15147 15147 15147 15147 DD aa 15147 15147 15147 15147 DD aa 15147 15147 15147 15147 DD bb 15147 15147 16472 16472 DD bb 15147 15147 16472 16472 DD bb 15147 15147 16472 16472 DD bb 15147 15147 16472 16472 EE aa 19179 19179 19179 19179 EE aa 19179 19179 19179 19179 EE bb 19179 19179 20069 20069 EE bb 19179 19179 20069 20069 EE bb 19179 19179 20069 20069 FF aa 21718 21718 21718 21718 FF aa 21718 21718 21718 21718 FF aa 21718 21718 21718 21718 FF aa 21718 21718 21718 21718 FF bb 21718 21718 23881 23881 FF bb 21718 21718 23881 23881 FF bb 21718 21718 23881 23881 FF bb 21718 21718 23881 23881 FF bb 21718 21718 23881 23881 FF bb 21718 21718 23881 23881 GG aa 27386 27386 27386 27386 GG aa 27386 27386 27386 27386 GG aa 27386 27386 27386 27386 GG aa 27386 27386 27386 27386 GG bb 27386 27386 28983 28983 GG bb 27386 27386 28983 28983 GG bb 27386 27386 28983 28983 GG bb 27386 27386 28983 28983 HH aa 31854 31854 31854 31854 HH aa 31854 31854 31854 31854 HH aa 31854 31854 31854 31854 HH bb 31854 31854 34103 34103 HH bb 31854 31854 34103 34103 HH bb 31854 31854 34103 34103 HH bb 31854 31854 34103 34103 HH bb 31854 31854 34103 34103 HH bb 31854 31854 34103 34103 II aa 37297 37297 37297 37297 II aa 37297 37297 37297 37297 II bb 37297 37297 38347 38347 II bb 37297 37297 38347 38347 II bb 37297 37297 38347 38347 II bb 37297 37297 38347 38347 II bb 37297 37297 38347 38347 JJ aa 40937 40937 40937 40937 JJ aa 40937 40937 40937 40937 JJ aa 40937 40937 40937 40937 JJ aa 40937 40937 40937 40937 JJ bb 40937 40937 42951 42951 JJ bb 40937 40937 42951 42951 JJ bb 40937 40937 42951 42951 JJ bb 40937 40937 42951 42951} do_execsql_test 1.2.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 AA bb 4685 AA bb 4685 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 CC aa 15147 CC aa 15147 CC aa 15147 CC aa 15147 CC bb 15147 CC bb 15147 |
︙ | ︙ | |||
299 300 301 302 303 304 305 306 307 308 309 310 311 312 | GG bb 30916 GG bb 30925 GG bb 31010 GG bb 31694 HH aa 33124 HH aa 33313 HH aa 33623 HH bb 36334 HH bb 36567 HH bb 36614 HH bb 36942 HH bb 36967 HH bb 37164 II aa 37695 II aa 37949 II bb 40132 II bb 40266 II bb 40494 II bb 40516 II bb 40687 JJ aa 42052 JJ aa 42183 JJ aa 42717 JJ aa 42838 JJ bb 43898 JJ bb 44383 JJ bb 44401 JJ bb 44480} do_execsql_test 1.3.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 12025 AA aa 12025 AA aa 12025 AA aa 12025 AA bb 12025 AA bb 12025 AA bb 12025 AA bb 12025 BB aa 15147 BB aa 15147 BB aa 15147 BB aa 15147 BB aa 15147 BB aa 15147 BB bb 15147 BB bb 15147 BB bb 15147 BB bb 15147 BB bb 15147 BB bb 15147 CC aa 19179 CC aa 19179 CC aa 19179 CC aa 19179 CC bb 19179 | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 | GG bb 30916 GG bb 30925 GG bb 31010 GG bb 31694 HH aa 33124 HH aa 33313 HH aa 33623 HH bb 36334 HH bb 36567 HH bb 36614 HH bb 36942 HH bb 36967 HH bb 37164 II aa 37695 II aa 37949 II bb 40132 II bb 40266 II bb 40494 II bb 40516 II bb 40687 JJ aa 42052 JJ aa 42183 JJ aa 42717 JJ aa 42838 JJ bb 43898 JJ bb 44383 JJ bb 44401 JJ bb 44480} do_execsql_test 1.2.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 3751 4685 1373 2307 AA aa 3774 4685 1396 2307 AA aa 4446 4685 2068 2307 AA aa 4462 4685 2084 2307 AA bb 3815 4685 3815 4685 AA bb 4058 4685 4058 4685 AA bb 4113 4685 4113 4685 AA bb 4376 4685 4376 4685 BB aa 11263 12025 6796 7558 BB aa 11365 12025 6898 7558 BB aa 11613 12025 7146 7558 BB aa 11626 12025 7159 7558 BB aa 11632 12025 7165 7558 BB aa 11778 12025 7311 7558 BB bb 11185 12025 11185 12025 BB bb 11233 12025 11233 12025 BB bb 11239 12025 11239 12025 BB bb 11314 12025 11314 12025 BB bb 11320 12025 11320 12025 BB bb 11392 12025 11392 12025 CC aa 14388 15147 13220 13979 CC aa 14540 15147 13372 13979 CC aa 14717 15147 13549 13979 CC aa 14989 15147 13821 13979 CC bb 14325 15147 14325 15147 CC bb 14801 15147 14801 15147 DD aa 18334 19179 15627 16472 DD aa 18923 19179 16216 16472 DD aa 18955 19179 16248 16472 DD bb 18220 19179 18220 19179 DD bb 18385 19179 18385 19179 DD bb 18463 19179 18463 19179 DD bb 18941 19179 18941 19179 EE aa 20941 21718 19292 20069 EE aa 21605 21718 19956 20069 EE bb 20950 21718 20950 21718 EE bb 21089 21718 21089 21718 EE bb 21466 21718 21466 21718 FF aa 26716 27386 23211 23881 FF aa 26719 27386 23214 23881 FF aa 26768 27386 23263 23881 FF aa 27178 27386 23673 23881 FF bb 26448 27386 26448 27386 FF bb 26516 27386 26516 27386 FF bb 26660 27386 26660 27386 FF bb 26812 27386 26812 27386 FF bb 27091 27386 27091 27386 FF bb 27284 27386 27284 27386 GG aa 31220 31854 28349 28983 GG aa 31374 31854 28503 28983 GG aa 31519 31854 28648 28983 GG aa 31706 31854 28835 28983 GG bb 30916 31854 30916 31854 GG bb 30925 31854 30925 31854 GG bb 31010 31854 31010 31854 GG bb 31694 31854 31694 31854 HH aa 36318 37297 33124 34103 HH aa 36507 37297 33313 34103 HH aa 36817 37297 33623 34103 HH bb 36334 37297 36334 37297 HH bb 36567 37297 36567 37297 HH bb 36614 37297 36614 37297 HH bb 36942 37297 36942 37297 HH bb 36967 37297 36967 37297 HH bb 37164 37297 37164 37297 II aa 40285 40937 37695 38347 II aa 40539 40937 37949 38347 II bb 40132 40937 40132 40937 II bb 40266 40937 40266 40937 II bb 40494 40937 40494 40937 II bb 40516 40937 40516 40937 II bb 40687 40937 40687 40937 JJ aa 43838 44737 42052 42951 JJ aa 43969 44737 42183 42951 JJ aa 44503 44737 42717 42951 JJ aa 44624 44737 42838 42951 JJ bb 43898 44737 43898 44737 JJ bb 44383 44737 44383 44737 JJ bb 44401 44737 44401 44737 JJ bb 44480 44737 44480 44737} do_execsql_test 1.3.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 12025 AA aa 12025 AA aa 12025 AA aa 12025 AA bb 12025 AA bb 12025 AA bb 12025 AA bb 12025 BB aa 15147 BB aa 15147 BB aa 15147 BB aa 15147 BB aa 15147 BB aa 15147 BB bb 15147 BB bb 15147 BB bb 15147 BB bb 15147 BB bb 15147 BB bb 15147 CC aa 19179 CC aa 19179 CC aa 19179 CC aa 19179 CC bb 19179 |
︙ | ︙ | |||
424 425 426 427 428 429 430 431 432 433 434 435 436 437 | GG aa 31706 GG bb 33165 GG bb 33174 GG bb 33259 GG bb 33943 HH aa 36318 HH aa 36507 HH aa 36817 HH bb 37384 HH bb 37617 HH bb 37664 HH bb 37992 HH bb 38017 HH bb 38214 II aa 40285 II aa 40539 II bb 42146 II bb 42280 II bb 42508 II bb 42530 II bb 42701 JJ aa 43838 JJ aa 43969 JJ aa 44503 JJ aa 44624 JJ bb 43898 JJ bb 44383 JJ bb 44401 JJ bb 44480} do_execsql_test 1.4.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 44737 AA aa 44737 AA aa 44737 AA aa 44737 AA bb 44737 AA bb 44737 AA bb 44737 AA bb 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 CC aa 44737 CC aa 44737 CC aa 44737 CC aa 44737 CC bb 44737 | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 | GG aa 31706 GG bb 33165 GG bb 33174 GG bb 33259 GG bb 33943 HH aa 36318 HH aa 36507 HH aa 36817 HH bb 37384 HH bb 37617 HH bb 37664 HH bb 37992 HH bb 38017 HH bb 38214 II aa 40285 II aa 40539 II bb 42146 II bb 42280 II bb 42508 II bb 42530 II bb 42701 JJ aa 43838 JJ aa 43969 JJ aa 44503 JJ aa 44624 JJ bb 43898 JJ bb 44383 JJ bb 44401 JJ bb 44480} do_execsql_test 1.3.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 11091 12025 3751 4685 AA aa 11114 12025 3774 4685 AA aa 11786 12025 4446 4685 AA aa 11802 12025 4462 4685 AA bb 11155 12025 6688 7558 AA bb 11398 12025 6931 7558 AA bb 11453 12025 6986 7558 AA bb 11716 12025 7249 7558 BB aa 14385 15147 11263 12025 BB aa 14487 15147 11365 12025 BB aa 14735 15147 11613 12025 BB aa 14748 15147 11626 12025 BB aa 14754 15147 11632 12025 BB aa 14900 15147 11778 12025 BB bb 14307 15147 13139 13979 BB bb 14355 15147 13187 13979 BB bb 14361 15147 13193 13979 BB bb 14436 15147 13268 13979 BB bb 14442 15147 13274 13979 BB bb 14514 15147 13346 13979 CC aa 18420 19179 14388 15147 CC aa 18572 19179 14540 15147 CC aa 18749 19179 14717 15147 CC aa 19021 19179 14989 15147 CC bb 18357 19179 15650 16472 CC bb 18833 19179 16126 16472 DD aa 20873 21718 18334 19179 DD aa 21462 21718 18923 19179 DD aa 21494 21718 18955 19179 DD bb 20759 21718 19110 20069 DD bb 20924 21718 19275 20069 DD bb 21002 21718 19353 20069 DD bb 21480 21718 19831 20069 EE aa 26609 27386 20941 21718 EE aa 27273 27386 21605 21718 EE bb 26618 27386 23113 23881 EE bb 26757 27386 23252 23881 EE bb 27134 27386 23629 23881 FF aa 31184 31854 26716 27386 FF aa 31187 31854 26719 27386 FF aa 31236 31854 26768 27386 FF aa 31646 31854 27178 27386 FF bb 30916 31854 28045 28983 FF bb 30984 31854 28113 28983 FF bb 31128 31854 28257 28983 FF bb 31280 31854 28409 28983 FF bb 31559 31854 28688 28983 FF bb 31752 31854 28881 28983 GG aa 36663 37297 31220 31854 GG aa 36817 37297 31374 31854 GG aa 36962 37297 31519 31854 GG aa 37149 37297 31706 31854 GG bb 36359 37297 33165 34103 GG bb 36368 37297 33174 34103 GG bb 36453 37297 33259 34103 GG bb 37137 37297 33943 34103 HH aa 39958 40937 36318 37297 HH aa 40147 40937 36507 37297 HH aa 40457 40937 36817 37297 HH bb 39974 40937 37384 38347 HH bb 40207 40937 37617 38347 HH bb 40254 40937 37664 38347 HH bb 40582 40937 37992 38347 HH bb 40607 40937 38017 38347 HH bb 40804 40937 38214 38347 II aa 44085 44737 40285 40937 II aa 44339 44737 40539 40937 II bb 43932 44737 42146 42951 II bb 44066 44737 42280 42951 II bb 44294 44737 42508 42951 II bb 44316 44737 42530 42951 II bb 44487 44737 42701 42951 JJ aa 43838 44737 43838 44737 JJ aa 43969 44737 43969 44737 JJ aa 44503 44737 44503 44737 JJ aa 44624 44737 44624 44737 JJ bb 43898 44737 43898 44737 JJ bb 44383 44737 44383 44737 JJ bb 44401 44737 44401 44737 JJ bb 44480 44737 44480 44737} do_execsql_test 1.4.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 44737 AA aa 44737 AA aa 44737 AA aa 44737 AA bb 44737 AA bb 44737 AA bb 44737 AA bb 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 CC aa 44737 CC aa 44737 CC aa 44737 CC aa 44737 CC bb 44737 |
︙ | ︙ | |||
549 550 551 552 553 554 555 556 557 558 559 560 561 562 | GG aa 44402 GG aa 44589 GG bb 43799 GG bb 43808 GG bb 43893 GG bb 44577 HH aa 43758 HH aa 43947 HH aa 44257 HH bb 43774 HH bb 44007 HH bb 44054 HH bb 44382 HH bb 44407 HH bb 44604 II aa 44085 II aa 44339 II bb 43932 II bb 44066 II bb 44294 II bb 44316 II bb 44487 JJ aa 43838 JJ aa 43969 JJ aa 44503 JJ aa 44624 JJ bb 43898 JJ bb 44383 JJ bb 44401 JJ bb 44480} do_execsql_test 1.5.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} AA bb {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} CC aa {} CC aa {} CC aa {} CC aa {} CC bb {} CC bb {} DD aa {} DD aa {} DD aa {} DD bb {} DD bb {} DD bb {} DD bb {} EE aa {} EE aa {} | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 | GG aa 44402 GG aa 44589 GG bb 43799 GG bb 43808 GG bb 43893 GG bb 44577 HH aa 43758 HH aa 43947 HH aa 44257 HH bb 43774 HH bb 44007 HH bb 44054 HH bb 44382 HH bb 44407 HH bb 44604 II aa 44085 II aa 44339 II bb 43932 II bb 44066 II bb 44294 II bb 44316 II bb 44487 JJ aa 43838 JJ aa 43969 JJ aa 44503 JJ aa 44624 JJ bb 43898 JJ bb 44383 JJ bb 44401 JJ bb 44480} do_execsql_test 1.4.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 43803 44737 43803 44737 AA aa 43826 44737 43826 44737 AA aa 44498 44737 44498 44737 AA aa 44514 44737 44514 44737 AA bb 43867 44737 43867 44737 AA bb 44110 44737 44110 44737 AA bb 44165 44737 44165 44737 AA bb 44428 44737 44428 44737 BB aa 43975 44737 43975 44737 BB aa 44077 44737 44077 44737 BB aa 44325 44737 44325 44737 BB aa 44338 44737 44338 44737 BB aa 44344 44737 44344 44737 BB aa 44490 44737 44490 44737 BB bb 43897 44737 43897 44737 BB bb 43945 44737 43945 44737 BB bb 43951 44737 43951 44737 BB bb 44026 44737 44026 44737 BB bb 44032 44737 44032 44737 BB bb 44104 44737 44104 44737 CC aa 43978 44737 43978 44737 CC aa 44130 44737 44130 44737 CC aa 44307 44737 44307 44737 CC aa 44579 44737 44579 44737 CC bb 43915 44737 43915 44737 CC bb 44391 44737 44391 44737 DD aa 43892 44737 43892 44737 DD aa 44481 44737 44481 44737 DD aa 44513 44737 44513 44737 DD bb 43778 44737 43778 44737 DD bb 43943 44737 43943 44737 DD bb 44021 44737 44021 44737 DD bb 44499 44737 44499 44737 EE aa 43960 44737 43960 44737 EE aa 44624 44737 44624 44737 EE bb 43969 44737 43969 44737 EE bb 44108 44737 44108 44737 EE bb 44485 44737 44485 44737 FF aa 44067 44737 44067 44737 FF aa 44070 44737 44070 44737 FF aa 44119 44737 44119 44737 FF aa 44529 44737 44529 44737 FF bb 43799 44737 43799 44737 FF bb 43867 44737 43867 44737 FF bb 44011 44737 44011 44737 FF bb 44163 44737 44163 44737 FF bb 44442 44737 44442 44737 FF bb 44635 44737 44635 44737 GG aa 44103 44737 44103 44737 GG aa 44257 44737 44257 44737 GG aa 44402 44737 44402 44737 GG aa 44589 44737 44589 44737 GG bb 43799 44737 43799 44737 GG bb 43808 44737 43808 44737 GG bb 43893 44737 43893 44737 GG bb 44577 44737 44577 44737 HH aa 43758 44737 43758 44737 HH aa 43947 44737 43947 44737 HH aa 44257 44737 44257 44737 HH bb 43774 44737 43774 44737 HH bb 44007 44737 44007 44737 HH bb 44054 44737 44054 44737 HH bb 44382 44737 44382 44737 HH bb 44407 44737 44407 44737 HH bb 44604 44737 44604 44737 II aa 44085 44737 44085 44737 II aa 44339 44737 44339 44737 II bb 43932 44737 43932 44737 II bb 44066 44737 44066 44737 II bb 44294 44737 44294 44737 II bb 44316 44737 44316 44737 II bb 44487 44737 44487 44737 JJ aa 43838 44737 43838 44737 JJ aa 43969 44737 43969 44737 JJ aa 44503 44737 44503 44737 JJ aa 44624 44737 44624 44737 JJ bb 43898 44737 43898 44737 JJ bb 44383 44737 44383 44737 JJ bb 44401 44737 44401 44737 JJ bb 44480 44737 44480 44737} do_execsql_test 1.5.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} AA bb {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} CC aa {} CC aa {} CC aa {} CC aa {} CC bb {} CC bb {} DD aa {} DD aa {} DD aa {} DD bb {} DD bb {} DD bb {} DD bb {} EE aa {} EE aa {} |
︙ | ︙ | |||
654 655 656 657 658 659 660 661 662 663 664 665 666 667 | FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} GG aa {} GG aa {} GG aa {} GG aa {} GG bb {} GG bb {} GG bb {} GG bb {} HH aa {} HH aa {} HH aa {} HH bb {} HH bb {} HH bb {} HH bb {} HH bb {} HH bb {} II aa {} II aa {} II bb {} II bb {} II bb {} II bb {} II bb {} JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} JJ bb {} JJ bb {} JJ bb {}} do_execsql_test 1.6.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} AA bb {} BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 CC aa 12025 CC aa 12025 CC aa 12025 CC aa 12025 CC bb 12025 CC bb 12025 DD aa 10462 DD aa 10462 DD aa 10462 | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 | FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} GG aa {} GG aa {} GG aa {} GG aa {} GG bb {} GG bb {} GG bb {} GG bb {} HH aa {} HH aa {} HH aa {} HH bb {} HH bb {} HH bb {} HH bb {} HH bb {} HH bb {} II aa {} II aa {} II bb {} II bb {} II bb {} II bb {} II bb {} JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} JJ bb {} JJ bb {} JJ bb {}} do_execsql_test 1.5.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa {} {} {} {} AA aa {} {} {} {} AA aa {} {} {} {} AA aa {} {} {} {} AA bb {} {} {} {} AA bb {} {} {} {} AA bb {} {} {} {} AA bb {} {} {} {} BB aa {} {} {} {} BB aa {} {} {} {} BB aa {} {} {} {} BB aa {} {} {} {} BB aa {} {} {} {} BB aa {} {} {} {} BB bb {} {} {} {} BB bb {} {} {} {} BB bb {} {} {} {} BB bb {} {} {} {} BB bb {} {} {} {} BB bb {} {} {} {} CC aa {} {} {} {} CC aa {} {} {} {} CC aa {} {} {} {} CC aa {} {} {} {} CC bb {} {} {} {} CC bb {} {} {} {} DD aa {} {} {} {} DD aa {} {} {} {} DD aa {} {} {} {} DD bb {} {} {} {} DD bb {} {} {} {} DD bb {} {} {} {} DD bb {} {} {} {} EE aa {} {} {} {} EE aa {} {} {} {} EE bb {} {} {} {} EE bb {} {} {} {} EE bb {} {} {} {} FF aa {} {} {} {} FF aa {} {} {} {} FF aa {} {} {} {} FF aa {} {} {} {} FF bb {} {} {} {} FF bb {} {} {} {} FF bb {} {} {} {} FF bb {} {} {} {} FF bb {} {} {} {} FF bb {} {} {} {} GG aa {} {} {} {} GG aa {} {} {} {} GG aa {} {} {} {} GG aa {} {} {} {} GG bb {} {} {} {} GG bb {} {} {} {} GG bb {} {} {} {} GG bb {} {} {} {} HH aa {} {} {} {} HH aa {} {} {} {} HH aa {} {} {} {} HH bb {} {} {} {} HH bb {} {} {} {} HH bb {} {} {} {} HH bb {} {} {} {} HH bb {} {} {} {} HH bb {} {} {} {} II aa {} {} {} {} II aa {} {} {} {} II bb {} {} {} {} II bb {} {} {} {} II bb {} {} {} {} II bb {} {} {} {} II bb {} {} {} {} JJ aa {} {} {} {} JJ aa {} {} {} {} JJ aa {} {} {} {} JJ aa {} {} {} {} JJ bb {} {} {} {} JJ bb {} {} {} {} JJ bb {} {} {} {} JJ bb {} {} {} {}} do_execsql_test 1.6.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} AA bb {} BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 CC aa 12025 CC aa 12025 CC aa 12025 CC aa 12025 CC bb 12025 CC bb 12025 DD aa 10462 DD aa 10462 DD aa 10462 |
︙ | ︙ | |||
773 774 775 776 777 778 779 780 781 782 783 784 785 786 | GG aa 5668 GG aa 5668 GG aa 5668 GG aa 5668 GG bb 5102 GG bb 5102 GG bb 5102 GG bb 5102 HH aa 4468 HH aa 4468 HH aa 4468 HH bb 5120 HH bb 5120 HH bb 5120 HH bb 5120 HH bb 5120 HH bb 5120 II aa 5443 II aa 5443 II bb 4244 II bb 4244 II bb 4244 II bb 4244 II bb 4244 JJ aa 3640 JJ aa 3640 JJ aa 3640 JJ aa 3640 JJ bb 4604 JJ bb 4604 JJ bb 4604 JJ bb 4604} do_execsql_test 1.7.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} AA bb {} BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 CC aa 12025 CC aa 12025 CC aa 12025 CC aa 12025 CC bb 12025 CC bb 12025 DD aa 15147 DD aa 15147 DD aa 15147 | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 | GG aa 5668 GG aa 5668 GG aa 5668 GG aa 5668 GG bb 5102 GG bb 5102 GG bb 5102 GG bb 5102 HH aa 4468 HH aa 4468 HH aa 4468 HH bb 5120 HH bb 5120 HH bb 5120 HH bb 5120 HH bb 5120 HH bb 5120 II aa 5443 II aa 5443 II bb 4244 II bb 4244 II bb 4244 II bb 4244 II bb 4244 JJ aa 3640 JJ aa 3640 JJ aa 3640 JJ aa 3640 JJ bb 4604 JJ bb 4604 JJ bb 4604 JJ bb 4604} do_execsql_test 1.6.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa {} {} {} {} AA aa {} {} {} {} AA aa {} {} {} {} AA aa {} {} {} {} AA bb {} {} 2307 2307 AA bb {} {} 2307 2307 AA bb {} {} 2307 2307 AA bb {} {} 2307 2307 BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 BB bb 4685 4685 5251 5251 BB bb 4685 4685 5251 5251 BB bb 4685 4685 5251 5251 BB bb 4685 4685 5251 5251 BB bb 4685 4685 5251 5251 BB bb 4685 4685 5251 5251 CC aa 12025 12025 7340 7340 CC aa 12025 12025 7340 7340 CC aa 12025 12025 7340 7340 CC aa 12025 12025 7340 7340 CC bb 12025 12025 6421 6421 CC bb 12025 12025 6421 6421 DD aa 10462 10462 3122 3122 DD aa 10462 10462 3122 3122 DD aa 10462 10462 3122 3122 DD bb 10462 10462 2493 2493 DD bb 10462 10462 2493 2493 DD bb 10462 10462 2493 2493 DD bb 10462 10462 2493 2493 EE aa 7154 7154 4032 4032 EE aa 7154 7154 4032 4032 EE bb 7154 7154 3597 3597 EE bb 7154 7154 3597 3597 EE bb 7154 7154 3597 3597 FF aa 6571 6571 2539 2539 FF aa 6571 6571 2539 2539 FF aa 6571 6571 2539 2539 FF aa 6571 6571 2539 2539 FF bb 6571 6571 3812 3812 FF bb 6571 6571 3812 3812 FF bb 6571 6571 3812 3812 FF bb 6571 6571 3812 3812 FF bb 6571 6571 3812 3812 FF bb 6571 6571 3812 3812 GG aa 8207 8207 5668 5668 GG aa 8207 8207 5668 5668 GG aa 8207 8207 5668 5668 GG aa 8207 8207 5668 5668 GG bb 8207 8207 5102 5102 GG bb 8207 8207 5102 5102 GG bb 8207 8207 5102 5102 GG bb 8207 8207 5102 5102 HH aa 10136 10136 4468 4468 HH aa 10136 10136 4468 4468 HH aa 10136 10136 4468 4468 HH bb 10136 10136 5120 5120 HH bb 10136 10136 5120 5120 HH bb 10136 10136 5120 5120 HH bb 10136 10136 5120 5120 HH bb 10136 10136 5120 5120 HH bb 10136 10136 5120 5120 II aa 9911 9911 5443 5443 II aa 9911 9911 5443 5443 II bb 9911 9911 4244 4244 II bb 9911 9911 4244 4244 II bb 9911 9911 4244 4244 II bb 9911 9911 4244 4244 II bb 9911 9911 4244 4244 JJ aa 9083 9083 3640 3640 JJ aa 9083 9083 3640 3640 JJ aa 9083 9083 3640 3640 JJ aa 9083 9083 3640 3640 JJ bb 9083 9083 4604 4604 JJ bb 9083 9083 4604 4604 JJ bb 9083 9083 4604 4604 JJ bb 9083 9083 4604 4604} do_execsql_test 1.7.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} AA bb {} BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 CC aa 12025 CC aa 12025 CC aa 12025 CC aa 12025 CC bb 12025 CC bb 12025 DD aa 15147 DD aa 15147 DD aa 15147 |
︙ | ︙ | |||
892 893 894 895 896 897 898 899 900 901 902 903 904 905 | GG aa 7317 GG aa 7317 GG aa 7317 GG aa 7317 GG bb 7265 GG bb 7265 GG bb 7265 GG bb 7265 HH aa 7973 HH aa 7973 HH aa 7973 HH bb 6717 HH bb 6717 HH bb 6717 HH bb 6717 HH bb 6717 HH bb 6717 II aa 8314 II aa 8314 II bb 6493 II bb 6493 II bb 6493 II bb 6493 II bb 6493 JJ aa 6834 JJ aa 6834 JJ aa 6834 JJ aa 6834 JJ bb 5654 JJ bb 5654 JJ bb 5654 JJ bb 5654} do_execsql_test 1.8.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 AA bb 4685 AA bb 4685 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 CC aa 15147 CC aa 15147 CC aa 15147 CC aa 15147 CC bb 15147 CC bb 15147 | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 | GG aa 7317 GG aa 7317 GG aa 7317 GG aa 7317 GG bb 7265 GG bb 7265 GG bb 7265 GG bb 7265 HH aa 7973 HH aa 7973 HH aa 7973 HH bb 6717 HH bb 6717 HH bb 6717 HH bb 6717 HH bb 6717 HH bb 6717 II aa 8314 II aa 8314 II bb 6493 II bb 6493 II bb 6493 II bb 6493 II bb 6493 JJ aa 6834 JJ aa 6834 JJ aa 6834 JJ aa 6834 JJ bb 5654 JJ bb 5654 JJ bb 5654 JJ bb 5654} do_execsql_test 1.7.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa {} {} {} {} AA aa {} {} {} {} AA aa {} {} {} {} AA aa {} {} {} {} AA bb {} {} 2307 2307 AA bb {} {} 2307 2307 AA bb {} {} 2307 2307 AA bb {} {} 2307 2307 BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 BB bb 4685 4685 7558 7558 BB bb 4685 4685 7558 7558 BB bb 4685 4685 7558 7558 BB bb 4685 4685 7558 7558 BB bb 4685 4685 7558 7558 BB bb 4685 4685 7558 7558 CC aa 12025 12025 9718 9718 CC aa 12025 12025 9718 9718 CC aa 12025 12025 9718 9718 CC aa 12025 12025 9718 9718 CC bb 12025 12025 9294 9294 CC bb 12025 12025 9294 9294 DD aa 15147 15147 7589 7589 DD aa 15147 15147 7589 7589 DD aa 15147 15147 7589 7589 DD bb 15147 15147 4447 4447 DD bb 15147 15147 4447 4447 DD bb 15147 15147 4447 4447 DD bb 15147 15147 4447 4447 EE aa 14494 14494 5200 5200 EE aa 14494 14494 5200 5200 EE bb 14494 14494 4922 4922 EE bb 14494 14494 4922 4922 EE bb 14494 14494 4922 4922 FF aa 9693 9693 5246 5246 FF aa 9693 9693 5246 5246 FF aa 9693 9693 5246 5246 FF aa 9693 9693 5246 5246 FF bb 9693 9693 4702 4702 FF bb 9693 9693 4702 4702 FF bb 9693 9693 4702 4702 FF bb 9693 9693 4702 4702 FF bb 9693 9693 4702 4702 FF bb 9693 9693 4702 4702 GG aa 12239 12239 7317 7317 GG aa 12239 12239 7317 7317 GG aa 12239 12239 7317 7317 GG aa 12239 12239 7317 7317 GG bb 12239 12239 7265 7265 GG bb 12239 12239 7265 7265 GG bb 12239 12239 7265 7265 GG bb 12239 12239 7265 7265 HH aa 12675 12675 7973 7973 HH aa 12675 12675 7973 7973 HH aa 12675 12675 7973 7973 HH bb 12675 12675 6717 6717 HH bb 12675 12675 6717 6717 HH bb 12675 12675 6717 6717 HH bb 12675 12675 6717 6717 HH bb 12675 12675 6717 6717 HH bb 12675 12675 6717 6717 II aa 15579 15579 8314 8314 II aa 15579 15579 8314 8314 II bb 15579 15579 6493 6493 II bb 15579 15579 6493 6493 II bb 15579 15579 6493 6493 II bb 15579 15579 6493 6493 II bb 15579 15579 6493 6493 JJ aa 13551 13551 6834 6834 JJ aa 13551 13551 6834 6834 JJ aa 13551 13551 6834 6834 JJ aa 13551 13551 6834 6834 JJ bb 13551 13551 5654 5654 JJ bb 13551 13551 5654 5654 JJ bb 13551 13551 5654 5654 JJ bb 13551 13551 5654 5654} do_execsql_test 1.8.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 AA bb 4685 AA bb 4685 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 CC aa 15147 CC aa 15147 CC aa 15147 CC aa 15147 CC bb 15147 CC bb 15147 |
︙ | ︙ | |||
1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 | FF bb 7633 FF bb 7912 FF bb 8105 GG aa 8280 GG aa 8434 GG aa 8579 GG aa 8766 GG bb 9198 GG bb 9207 GG bb 9292 GG bb 9976 HH aa 9243 HH aa 9432 HH aa 9742 HH bb 8948 HH bb 9181 HH bb 9228 HH bb 9556 HH bb 9581 HH bb 9778 II aa 8712 II aa 8966 II bb 8278 II bb 8412 II bb 8640 II bb 8662 II bb 8833 JJ aa 7949 JJ aa 8080 JJ aa 8614 JJ aa 8735 JJ bb 6601 JJ bb 7086 JJ bb 7104 JJ bb 7183} do_execsql_test 1.9.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 AA bb 4685 AA bb 4685 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 CC aa 15147 CC aa 15147 CC aa 15147 CC aa 15147 CC bb 15147 CC bb 15147 | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 | FF bb 7633 FF bb 7912 FF bb 8105 GG aa 8280 GG aa 8434 GG aa 8579 GG aa 8766 GG bb 9198 GG bb 9207 GG bb 9292 GG bb 9976 HH aa 9243 HH aa 9432 HH aa 9742 HH bb 8948 HH bb 9181 HH bb 9228 HH bb 9556 HH bb 9581 HH bb 9778 II aa 8712 II aa 8966 II bb 8278 II bb 8412 II bb 8640 II bb 8662 II bb 8833 JJ aa 7949 JJ aa 8080 JJ aa 8614 JJ aa 8735 JJ bb 6601 JJ bb 7086 JJ bb 7104 JJ bb 7183} do_execsql_test 1.8.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 3751 4685 1373 2307 AA aa 3774 4685 1396 2307 AA aa 4446 4685 2068 2307 AA aa 4462 4685 2084 2307 AA bb 3815 4685 3815 4685 AA bb 4058 4685 4058 4685 AA bb 4113 4685 4113 4685 AA bb 4376 4685 4376 4685 BB aa 11263 12025 6796 7558 BB aa 11365 12025 6898 7558 BB aa 11613 12025 7146 7558 BB aa 11626 12025 7159 7558 BB aa 11632 12025 7165 7558 BB aa 11778 12025 7311 7558 BB bb 11185 12025 11185 12025 BB bb 11233 12025 11233 12025 BB bb 11239 12025 11239 12025 BB bb 11314 12025 11314 12025 BB bb 11320 12025 11320 12025 BB bb 11392 12025 11392 12025 CC aa 14388 15147 10913 11672 CC aa 14540 15147 11065 11672 CC aa 14717 15147 11242 11672 CC aa 14989 15147 11514 11672 CC bb 14325 15147 9640 10462 CC bb 14801 15147 10116 10462 DD aa 18334 19179 8069 8914 DD aa 18923 19179 8658 8914 DD aa 18955 19179 8690 8914 DD bb 18220 19179 6195 7154 DD bb 18385 19179 6360 7154 DD bb 18463 19179 6438 7154 DD bb 18941 19179 6916 7154 EE aa 16256 17033 5313 6090 EE aa 16920 17033 5977 6090 EE bb 16265 17033 5803 6571 EE bb 16404 17033 5942 6571 EE bb 16781 17033 6319 6571 FF aa 14691 15361 6739 7409 FF aa 14694 15361 6742 7409 FF aa 14743 15361 6791 7409 FF aa 15153 15361 7201 7409 FF bb 14423 15361 7269 8207 FF bb 14491 15361 7337 8207 FF bb 14635 15361 7481 8207 FF bb 14787 15361 7633 8207 FF bb 15066 15361 7912 8207 FF bb 15259 15361 8105 8207 GG aa 16073 16707 8280 8914 GG aa 16227 16707 8434 8914 GG aa 16372 16707 8579 8914 GG aa 16559 16707 8766 8914 GG bb 15769 16707 9198 10136 GG bb 15778 16707 9207 10136 GG bb 15863 16707 9292 10136 GG bb 16547 16707 9976 10136 HH aa 17139 18118 9243 10222 HH aa 17328 18118 9432 10222 HH aa 17638 18118 9742 10222 HH bb 17155 18118 8948 9911 HH bb 17388 18118 9181 9911 HH bb 17435 18118 9228 9911 HH bb 17763 18118 9556 9911 HH bb 17788 18118 9581 9911 HH bb 17985 18118 9778 9911 II aa 18567 19219 8712 9364 II aa 18821 19219 8966 9364 II bb 18414 19219 8278 9083 II bb 18548 19219 8412 9083 II bb 18776 19219 8640 9083 II bb 18798 19219 8662 9083 II bb 18969 19219 8833 9083 JJ aa 16452 17351 7949 8848 JJ aa 16583 17351 8080 8848 JJ aa 17117 17351 8614 8848 JJ aa 17238 17351 8735 8848 JJ bb 16512 17351 6601 7440 JJ bb 16997 17351 7086 7440 JJ bb 17015 17351 7104 7440 JJ bb 17094 17351 7183 7440} do_execsql_test 1.9.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 AA bb 4685 AA bb 4685 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 CC aa 15147 CC aa 15147 CC aa 15147 CC aa 15147 CC bb 15147 CC bb 15147 |
︙ | ︙ | |||
1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 | GG aa 6631 GG aa 6785 GG aa 6930 GG aa 7117 GG bb 7035 GG bb 7044 GG bb 7129 GG bb 7813 HH aa 5738 HH aa 5927 HH aa 6237 HH bb 7351 HH bb 7584 HH bb 7631 HH bb 7959 HH bb 7984 HH bb 8181 II aa 5841 II aa 6095 II bb 6029 II bb 6163 II bb 6391 II bb 6413 II bb 6584 JJ aa 4755 JJ aa 4886 JJ aa 5420 JJ aa 5541 JJ bb 5551 JJ bb 6036 JJ bb 6054 JJ bb 6133} do_execsql_test 1.10.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 AA bb 4685 AA bb 4685 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 CC aa 15147 CC aa 15147 CC aa 15147 CC aa 15147 CC bb 15147 CC bb 15147 | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 | GG aa 6631 GG aa 6785 GG aa 6930 GG aa 7117 GG bb 7035 GG bb 7044 GG bb 7129 GG bb 7813 HH aa 5738 HH aa 5927 HH aa 6237 HH bb 7351 HH bb 7584 HH bb 7631 HH bb 7959 HH bb 7984 HH bb 8181 II aa 5841 II aa 6095 II bb 6029 II bb 6163 II bb 6391 II bb 6413 II bb 6584 JJ aa 4755 JJ aa 4886 JJ aa 5420 JJ aa 5541 JJ bb 5551 JJ bb 6036 JJ bb 6054 JJ bb 6133} do_execsql_test 1.9.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 3751 4685 1373 2307 AA aa 3774 4685 1396 2307 AA aa 4446 4685 2068 2307 AA aa 4462 4685 2084 2307 AA bb 3815 4685 3815 4685 AA bb 4058 4685 4058 4685 AA bb 4113 4685 4113 4685 AA bb 4376 4685 4376 4685 BB aa 11263 12025 6796 7558 BB aa 11365 12025 6898 7558 BB aa 11613 12025 7146 7558 BB aa 11626 12025 7159 7558 BB aa 11632 12025 7165 7558 BB aa 11778 12025 7311 7558 BB bb 11185 12025 8878 9718 BB bb 11233 12025 8926 9718 BB bb 11239 12025 8932 9718 BB bb 11314 12025 9007 9718 BB bb 11320 12025 9013 9718 BB bb 11392 12025 9085 9718 CC aa 14388 15147 8535 9294 CC aa 14540 15147 8687 9294 CC aa 14717 15147 8864 9294 CC aa 14989 15147 9136 9294 CC bb 14325 15147 6767 7589 CC bb 14801 15147 7243 7589 DD aa 13649 14494 3602 4447 DD aa 14238 14494 4191 4447 DD aa 14270 14494 4223 4447 DD bb 13535 14494 4241 5200 DD bb 13700 14494 4406 5200 DD bb 13778 14494 4484 5200 DD bb 14256 14494 4962 5200 EE aa 8916 9693 4145 4922 EE aa 9580 9693 4809 4922 EE bb 8925 9693 4478 5246 EE bb 9064 9693 4617 5246 EE bb 9441 9693 4994 5246 FF aa 11569 12239 4032 4702 FF aa 11572 12239 4035 4702 FF aa 11621 12239 4084 4702 FF aa 12031 12239 4494 4702 FF bb 11301 12239 6379 7317 FF bb 11369 12239 6447 7317 FF bb 11513 12239 6591 7317 FF bb 11665 12239 6743 7317 FF bb 11944 12239 7022 7317 FF bb 12137 12239 7215 7317 GG aa 12041 12675 6631 7265 GG aa 12195 12675 6785 7265 GG aa 12340 12675 6930 7265 GG aa 12527 12675 7117 7265 GG bb 11737 12675 7035 7973 GG bb 11746 12675 7044 7973 GG bb 11831 12675 7129 7973 GG bb 12515 12675 7813 7973 HH aa 14600 15579 5738 6717 HH aa 14789 15579 5927 6717 HH aa 15099 15579 6237 6717 HH bb 14616 15579 7351 8314 HH bb 14849 15579 7584 8314 HH bb 14896 15579 7631 8314 HH bb 15224 15579 7959 8314 HH bb 15249 15579 7984 8314 HH bb 15446 15579 8181 8314 II aa 12899 13551 5841 6493 II aa 13153 13551 6095 6493 II bb 12746 13551 6029 6834 II bb 12880 13551 6163 6834 II bb 13108 13551 6391 6834 II bb 13130 13551 6413 6834 II bb 13301 13551 6584 6834 JJ aa 11984 12883 4755 5654 JJ aa 12115 12883 4886 5654 JJ aa 12649 12883 5420 5654 JJ aa 12770 12883 5541 5654 JJ bb 12044 12883 5551 6390 JJ bb 12529 12883 6036 6390 JJ bb 12547 12883 6054 6390 JJ bb 12626 12883 6133 6390} do_execsql_test 1.10.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 AA bb 4685 AA bb 4685 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB aa 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 CC aa 15147 CC aa 15147 CC aa 15147 CC aa 15147 CC bb 15147 CC bb 15147 |
︙ | ︙ | |||
1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 | FF bb 7633 FF bb 7912 FF bb 8105 GG aa 8280 GG aa 8434 GG aa 8579 GG aa 8766 GG bb 9198 GG bb 9207 GG bb 9292 GG bb 9976 HH aa 9243 HH aa 9432 HH aa 9742 HH bb 8948 HH bb 9181 HH bb 9228 HH bb 9556 HH bb 9581 HH bb 9778 II aa 8712 II aa 8966 II bb 8278 II bb 8412 II bb 8640 II bb 8662 II bb 8833 JJ aa 7949 JJ aa 8080 JJ aa 8614 JJ aa 8735 JJ bb 6601 JJ bb 7086 JJ bb 7104 JJ bb 7183} do_execsql_test 1.11.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 44737 AA aa 44737 AA aa 44737 AA aa 44737 AA bb 44737 AA bb 44737 AA bb 44737 AA bb 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 CC aa 44737 CC aa 44737 CC aa 44737 CC aa 44737 CC bb 44737 | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 | FF bb 7633 FF bb 7912 FF bb 8105 GG aa 8280 GG aa 8434 GG aa 8579 GG aa 8766 GG bb 9198 GG bb 9207 GG bb 9292 GG bb 9976 HH aa 9243 HH aa 9432 HH aa 9742 HH bb 8948 HH bb 9181 HH bb 9228 HH bb 9556 HH bb 9581 HH bb 9778 II aa 8712 II aa 8966 II bb 8278 II bb 8412 II bb 8640 II bb 8662 II bb 8833 JJ aa 7949 JJ aa 8080 JJ aa 8614 JJ aa 8735 JJ bb 6601 JJ bb 7086 JJ bb 7104 JJ bb 7183} do_execsql_test 1.10.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 3751 4685 1373 2307 AA aa 3774 4685 1396 2307 AA aa 4446 4685 2068 2307 AA aa 4462 4685 2084 2307 AA bb 3815 4685 3815 4685 AA bb 4058 4685 4058 4685 AA bb 4113 4685 4113 4685 AA bb 4376 4685 4376 4685 BB aa 11263 12025 6796 7558 BB aa 11365 12025 6898 7558 BB aa 11613 12025 7146 7558 BB aa 11626 12025 7159 7558 BB aa 11632 12025 7165 7558 BB aa 11778 12025 7311 7558 BB bb 11185 12025 11185 12025 BB bb 11233 12025 11233 12025 BB bb 11239 12025 11239 12025 BB bb 11314 12025 11314 12025 BB bb 11320 12025 11320 12025 BB bb 11392 12025 11392 12025 CC aa 14388 15147 10913 11672 CC aa 14540 15147 11065 11672 CC aa 14717 15147 11242 11672 CC aa 14989 15147 11514 11672 CC bb 14325 15147 9640 10462 CC bb 14801 15147 10116 10462 DD aa 18334 19179 8069 8914 DD aa 18923 19179 8658 8914 DD aa 18955 19179 8690 8914 DD bb 18220 19179 6195 7154 DD bb 18385 19179 6360 7154 DD bb 18463 19179 6438 7154 DD bb 18941 19179 6916 7154 EE aa 16256 17033 5313 6090 EE aa 16920 17033 5977 6090 EE bb 16265 17033 5803 6571 EE bb 16404 17033 5942 6571 EE bb 16781 17033 6319 6571 FF aa 14691 15361 6739 7409 FF aa 14694 15361 6742 7409 FF aa 14743 15361 6791 7409 FF aa 15153 15361 7201 7409 FF bb 14423 15361 7269 8207 FF bb 14491 15361 7337 8207 FF bb 14635 15361 7481 8207 FF bb 14787 15361 7633 8207 FF bb 15066 15361 7912 8207 FF bb 15259 15361 8105 8207 GG aa 16073 16707 8280 8914 GG aa 16227 16707 8434 8914 GG aa 16372 16707 8579 8914 GG aa 16559 16707 8766 8914 GG bb 15769 16707 9198 10136 GG bb 15778 16707 9207 10136 GG bb 15863 16707 9292 10136 GG bb 16547 16707 9976 10136 HH aa 17139 18118 9243 10222 HH aa 17328 18118 9432 10222 HH aa 17638 18118 9742 10222 HH bb 17155 18118 8948 9911 HH bb 17388 18118 9181 9911 HH bb 17435 18118 9228 9911 HH bb 17763 18118 9556 9911 HH bb 17788 18118 9581 9911 HH bb 17985 18118 9778 9911 II aa 18567 19219 8712 9364 II aa 18821 19219 8966 9364 II bb 18414 19219 8278 9083 II bb 18548 19219 8412 9083 II bb 18776 19219 8640 9083 II bb 18798 19219 8662 9083 II bb 18969 19219 8833 9083 JJ aa 16452 17351 7949 8848 JJ aa 16583 17351 8080 8848 JJ aa 17117 17351 8614 8848 JJ aa 17238 17351 8735 8848 JJ bb 16512 17351 6601 7440 JJ bb 16997 17351 7086 7440 JJ bb 17015 17351 7104 7440 JJ bb 17094 17351 7183 7440} do_execsql_test 1.11.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 44737 AA aa 44737 AA aa 44737 AA aa 44737 AA bb 44737 AA bb 44737 AA bb 44737 AA bb 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 CC aa 44737 CC aa 44737 CC aa 44737 CC aa 44737 CC bb 44737 |
︙ | ︙ | |||
1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 | GG aa 22684 GG aa 22871 GG bb 19918 GG bb 19927 GG bb 20012 GG bb 20696 HH aa 16372 HH aa 16561 HH aa 16871 HH bb 14791 HH bb 15024 HH bb 15071 HH bb 15399 HH bb 15424 HH bb 15621 II aa 12231 II aa 12485 II bb 9829 II bb 9963 II bb 10191 II bb 10213 II bb 10384 JJ aa 6541 JJ aa 6672 JJ aa 7206 JJ aa 7327 JJ bb 5551 JJ bb 6036 JJ bb 6054 JJ bb 6133} do_execsql_test 1.12.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 AA bb 4685 AA bb 4685 BB aa 7340 BB aa 7340 BB aa 7340 BB aa 7340 BB aa 7340 BB aa 7340 BB bb 7340 BB bb 7340 BB bb 7340 BB bb 7340 BB bb 7340 BB bb 7340 CC aa 3122 CC aa 3122 CC aa 3122 CC aa 3122 CC bb 3122 CC bb 3122 DD aa 4032 DD aa 4032 DD aa 4032 DD bb 4032 | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 | GG aa 22684 GG aa 22871 GG bb 19918 GG bb 19927 GG bb 20012 GG bb 20696 HH aa 16372 HH aa 16561 HH aa 16871 HH bb 14791 HH bb 15024 HH bb 15071 HH bb 15399 HH bb 15424 HH bb 15621 II aa 12231 II aa 12485 II bb 9829 II bb 9963 II bb 10191 II bb 10213 II bb 10384 JJ aa 6541 JJ aa 6672 JJ aa 7206 JJ aa 7327 JJ bb 5551 JJ bb 6036 JJ bb 6054 JJ bb 6133} do_execsql_test 1.11.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 43803 44737 43803 44737 AA aa 43826 44737 43826 44737 AA aa 44498 44737 44498 44737 AA aa 44514 44737 44514 44737 AA bb 43867 44737 43867 44737 AA bb 44110 44737 44110 44737 AA bb 44165 44737 44165 44737 AA bb 44428 44737 44428 44737 BB aa 43975 44737 43975 44737 BB aa 44077 44737 44077 44737 BB aa 44325 44737 44325 44737 BB aa 44338 44737 44338 44737 BB aa 44344 44737 44344 44737 BB aa 44490 44737 44490 44737 BB bb 43897 44737 41590 42430 BB bb 43945 44737 41638 42430 BB bb 43951 44737 41644 42430 BB bb 44026 44737 41719 42430 BB bb 44032 44737 41725 42430 BB bb 44104 44737 41797 42430 CC aa 43978 44737 39293 40052 CC aa 44130 44737 39445 40052 CC aa 44307 44737 39622 40052 CC aa 44579 44737 39894 40052 CC bb 43915 44737 36357 37179 CC bb 44391 44737 36833 37179 DD aa 39207 40052 31867 32712 DD aa 39796 40052 32456 32712 DD aa 39828 40052 32488 32712 DD bb 39093 40052 29799 30758 DD bb 39258 40052 29964 30758 DD bb 39336 40052 30042 30758 DD bb 39814 40052 30520 30758 EE aa 31935 32712 28813 29590 EE aa 32599 32712 29477 29590 EE bb 31944 32712 27497 28265 EE bb 32083 32712 27636 28265 EE bb 32460 32712 28013 28265 FF aa 28920 29590 24888 25558 FF aa 28923 29590 24891 25558 FF aa 28972 29590 24940 25558 FF aa 29382 29590 25350 25558 FF bb 28652 29590 23730 24668 FF bb 28720 29590 23798 24668 FF bb 28864 29590 23942 24668 FF bb 29016 29590 24094 24668 FF bb 29295 29590 24373 24668 FF bb 29488 29590 24566 24668 GG aa 24924 25558 22385 23019 GG aa 25078 25558 22539 23019 GG aa 25223 25558 22684 23019 GG aa 25410 25558 22871 23019 GG bb 24620 25558 19918 20856 GG bb 24629 25558 19927 20856 GG bb 24714 25558 20012 20856 GG bb 25398 25558 20696 20856 HH aa 22040 23019 16372 17351 HH aa 22229 23019 16561 17351 HH aa 22539 23019 16871 17351 HH bb 22056 23019 14791 15754 HH bb 22289 23019 15024 15754 HH bb 22336 23019 15071 15754 HH bb 22664 23019 15399 15754 HH bb 22689 23019 15424 15754 HH bb 22886 23019 15621 15754 II aa 16699 17351 12231 12883 II aa 16953 17351 12485 12883 II bb 16546 17351 9829 10634 II bb 16680 17351 9963 10634 II bb 16908 17351 10191 10634 II bb 16930 17351 10213 10634 II bb 17101 17351 10384 10634 JJ aa 11984 12883 6541 7440 JJ aa 12115 12883 6672 7440 JJ aa 12649 12883 7206 7440 JJ aa 12770 12883 7327 7440 JJ bb 12044 12883 5551 6390 JJ bb 12529 12883 6036 6390 JJ bb 12547 12883 6054 6390 JJ bb 12626 12883 6133 6390} do_execsql_test 1.12.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 AA bb 4685 AA bb 4685 BB aa 7340 BB aa 7340 BB aa 7340 BB aa 7340 BB aa 7340 BB aa 7340 BB bb 7340 BB bb 7340 BB bb 7340 BB bb 7340 BB bb 7340 BB bb 7340 CC aa 3122 CC aa 3122 CC aa 3122 CC aa 3122 CC bb 3122 CC bb 3122 DD aa 4032 DD aa 4032 DD aa 4032 DD bb 4032 |
︙ | ︙ | |||
1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 | GG aa 963 GG aa 1117 GG aa 1262 GG aa 1449 GG bb 1933 GG bb 1942 GG bb 2027 GG bb 2711 HH aa 1270 HH aa 1459 HH aa 1769 HH bb 2231 HH bb 2464 HH bb 2511 HH bb 2839 HH bb 2864 HH bb 3061 II aa 398 II aa 652 II bb 1785 II bb 1919 II bb 2147 II bb 2169 II bb 2340 JJ aa 1115 JJ aa 1246 JJ aa 1780 JJ aa 1901 JJ bb 947 JJ bb 1432 JJ bb 1450 JJ bb 1529} do_execsql_test 1.13.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 12025 AA aa 12025 AA aa 12025 AA aa 12025 AA bb 12025 AA bb 12025 AA bb 12025 AA bb 12025 BB aa 10462 BB aa 10462 BB aa 10462 BB aa 10462 BB aa 10462 BB aa 10462 BB bb 10462 BB bb 10462 BB bb 10462 BB bb 10462 BB bb 10462 BB bb 10462 CC aa 7154 CC aa 7154 CC aa 7154 CC aa 7154 CC bb 7154 CC bb 7154 | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 | GG aa 963 GG aa 1117 GG aa 1262 GG aa 1449 GG bb 1933 GG bb 1942 GG bb 2027 GG bb 2711 HH aa 1270 HH aa 1459 HH aa 1769 HH bb 2231 HH bb 2464 HH bb 2511 HH bb 2839 HH bb 2864 HH bb 3061 II aa 398 II aa 652 II bb 1785 II bb 1919 II bb 2147 II bb 2169 II bb 2340 JJ aa 1115 JJ aa 1246 JJ aa 1780 JJ aa 1901 JJ bb 947 JJ bb 1432 JJ bb 1450 JJ bb 1529} do_execsql_test 1.12.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 3751 4685 1373 2307 AA aa 3774 4685 1396 2307 AA aa 4446 4685 2068 2307 AA aa 4462 4685 2084 2307 AA bb 3815 4685 1508 2378 AA bb 4058 4685 1751 2378 AA bb 4113 4685 1806 2378 AA bb 4376 4685 2069 2378 BB aa 6578 7340 2111 2873 BB aa 6680 7340 2213 2873 BB aa 6928 7340 2461 2873 BB aa 6941 7340 2474 2873 BB aa 6947 7340 2480 2873 BB aa 7093 7340 2626 2873 BB bb 6500 7340 3627 4467 BB bb 6548 7340 3675 4467 BB bb 6554 7340 3681 4467 BB bb 6629 7340 3756 4467 BB bb 6635 7340 3762 4467 BB bb 6707 7340 3834 4467 CC aa 2363 3122 1195 1954 CC aa 2515 3122 1347 1954 CC aa 2692 3122 1524 1954 CC aa 2964 3122 1796 1954 CC bb 2300 3122 346 1168 CC bb 2776 3122 822 1168 DD aa 3187 4032 480 1325 DD aa 3776 4032 1069 1325 DD aa 3808 4032 1101 1325 DD bb 3073 4032 1748 2707 DD bb 3238 4032 1913 2707 DD bb 3316 4032 1991 2707 DD bb 3794 4032 2469 2707 EE aa 1762 2539 113 890 EE aa 2426 2539 777 890 EE bb 1771 2539 881 1649 EE bb 1910 2539 1020 1649 EE bb 2287 2539 1397 1649 FF aa 4998 5668 1493 2163 FF aa 5001 5668 1496 2163 FF aa 5050 5668 1545 2163 FF aa 5460 5668 1955 2163 FF bb 4730 5668 2567 3505 FF bb 4798 5668 2635 3505 FF bb 4942 5668 2779 3505 FF bb 5094 5668 2931 3505 FF bb 5373 5668 3210 3505 FF bb 5566 5668 3403 3505 GG aa 3834 4468 963 1597 GG aa 3988 4468 1117 1597 GG aa 4133 4468 1262 1597 GG aa 4320 4468 1449 1597 GG bb 3530 4468 1933 2871 GG bb 3539 4468 1942 2871 GG bb 3624 4468 2027 2871 GG bb 4308 4468 2711 2871 HH aa 4464 5443 1270 2249 HH aa 4653 5443 1459 2249 HH aa 4963 5443 1769 2249 HH bb 4480 5443 2231 3194 HH bb 4713 5443 2464 3194 HH bb 4760 5443 2511 3194 HH bb 5088 5443 2839 3194 HH bb 5113 5443 2864 3194 HH bb 5310 5443 3061 3194 II aa 2988 3640 398 1050 II aa 3242 3640 652 1050 II bb 2835 3640 1785 2590 II bb 2969 3640 1919 2590 II bb 3197 3640 2147 2590 II bb 3219 3640 2169 2590 II bb 3390 3640 2340 2590 JJ aa 2901 3800 1115 2014 JJ aa 3032 3800 1246 2014 JJ aa 3566 3800 1780 2014 JJ aa 3687 3800 1901 2014 JJ bb 2961 3800 947 1786 JJ bb 3446 3800 1432 1786 JJ bb 3464 3800 1450 1786 JJ bb 3543 3800 1529 1786} do_execsql_test 1.13.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 12025 AA aa 12025 AA aa 12025 AA aa 12025 AA bb 12025 AA bb 12025 AA bb 12025 AA bb 12025 BB aa 10462 BB aa 10462 BB aa 10462 BB aa 10462 BB aa 10462 BB aa 10462 BB bb 10462 BB bb 10462 BB bb 10462 BB bb 10462 BB bb 10462 BB bb 10462 CC aa 7154 CC aa 7154 CC aa 7154 CC aa 7154 CC bb 7154 CC bb 7154 |
︙ | ︙ | |||
1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 | GG aa 3834 GG aa 3988 GG aa 4133 GG aa 4320 GG bb 4182 GG bb 4191 GG bb 4276 GG bb 4960 HH aa 4464 HH aa 4653 HH aa 4963 HH bb 3281 HH bb 3514 HH bb 3561 HH bb 3889 HH bb 3914 HH bb 4111 II aa 2988 II aa 3242 II bb 3799 II bb 3933 II bb 4161 II bb 4183 II bb 4354 JJ aa 2901 JJ aa 3032 JJ aa 3566 JJ aa 3687 JJ bb 947 JJ bb 1432 JJ bb 1450 JJ bb 1529} do_execsql_test 1.14.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 44737 AA aa 44737 AA aa 44737 AA aa 44737 AA bb 44737 AA bb 44737 AA bb 44737 AA bb 44737 BB aa 40052 BB aa 40052 BB aa 40052 BB aa 40052 BB aa 40052 BB aa 40052 BB bb 40052 BB bb 40052 BB bb 40052 BB bb 40052 BB bb 40052 BB bb 40052 CC aa 32712 CC aa 32712 CC aa 32712 CC aa 32712 CC bb 32712 | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 | GG aa 3834 GG aa 3988 GG aa 4133 GG aa 4320 GG bb 4182 GG bb 4191 GG bb 4276 GG bb 4960 HH aa 4464 HH aa 4653 HH aa 4963 HH bb 3281 HH bb 3514 HH bb 3561 HH bb 3889 HH bb 3914 HH bb 4111 II aa 2988 II aa 3242 II bb 3799 II bb 3933 II bb 4161 II bb 4183 II bb 4354 JJ aa 2901 JJ aa 3032 JJ aa 3566 JJ aa 3687 JJ bb 947 JJ bb 1432 JJ bb 1450 JJ bb 1529} do_execsql_test 1.13.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 11091 12025 3751 4685 AA aa 11114 12025 3774 4685 AA aa 11786 12025 4446 4685 AA aa 11802 12025 4462 4685 AA bb 11155 12025 4381 5251 AA bb 11398 12025 4624 5251 AA bb 11453 12025 4679 5251 AA bb 11716 12025 4942 5251 BB aa 9700 10462 6578 7340 BB aa 9802 10462 6680 7340 BB aa 10050 10462 6928 7340 BB aa 10063 10462 6941 7340 BB aa 10069 10462 6947 7340 BB aa 10215 10462 7093 7340 BB bb 9622 10462 5581 6421 BB bb 9670 10462 5629 6421 BB bb 9676 10462 5635 6421 BB bb 9751 10462 5710 6421 BB bb 9757 10462 5716 6421 BB bb 9829 10462 5788 6421 CC aa 6395 7154 2363 3122 CC aa 6547 7154 2515 3122 CC aa 6724 7154 2692 3122 CC aa 6996 7154 2964 3122 CC bb 6332 7154 1671 2493 CC bb 6808 7154 2147 2493 DD aa 5726 6571 3187 4032 DD aa 6315 6571 3776 4032 DD aa 6347 6571 3808 4032 DD bb 5612 6571 2638 3597 DD bb 5777 6571 2803 3597 DD bb 5855 6571 2881 3597 DD bb 6333 6571 3359 3597 EE aa 7430 8207 1762 2539 EE aa 8094 8207 2426 2539 EE bb 7439 8207 3044 3812 EE bb 7578 8207 3183 3812 EE bb 7955 8207 3560 3812 FF aa 9466 10136 4998 5668 FF aa 9469 10136 5001 5668 FF aa 9518 10136 5050 5668 FF aa 9928 10136 5460 5668 FF bb 9198 10136 4164 5102 FF bb 9266 10136 4232 5102 FF bb 9410 10136 4376 5102 FF bb 9562 10136 4528 5102 FF bb 9841 10136 4807 5102 FF bb 10034 10136 5000 5102 GG aa 9277 9911 3834 4468 GG aa 9431 9911 3988 4468 GG aa 9576 9911 4133 4468 GG aa 9763 9911 4320 4468 GG bb 8973 9911 4182 5120 GG bb 8982 9911 4191 5120 GG bb 9067 9911 4276 5120 GG bb 9751 9911 4960 5120 HH aa 8104 9083 4464 5443 HH aa 8293 9083 4653 5443 HH aa 8603 9083 4963 5443 HH bb 8120 9083 3281 4244 HH bb 8353 9083 3514 4244 HH bb 8400 9083 3561 4244 HH bb 8728 9083 3889 4244 HH bb 8753 9083 3914 4244 HH bb 8950 9083 4111 4244 II aa 6788 7440 2988 3640 II aa 7042 7440 3242 3640 II bb 6635 7440 3799 4604 II bb 6769 7440 3933 4604 II bb 6997 7440 4161 4604 II bb 7019 7440 4183 4604 II bb 7190 7440 4354 4604 JJ aa 2901 3800 2901 3800 JJ aa 3032 3800 3032 3800 JJ aa 3566 3800 3566 3800 JJ aa 3687 3800 3687 3800 JJ bb 2961 3800 947 1786 JJ bb 3446 3800 1432 1786 JJ bb 3464 3800 1450 1786 JJ bb 3543 3800 1529 1786} do_execsql_test 1.14.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 44737 AA aa 44737 AA aa 44737 AA aa 44737 AA bb 44737 AA bb 44737 AA bb 44737 AA bb 44737 BB aa 40052 BB aa 40052 BB aa 40052 BB aa 40052 BB aa 40052 BB aa 40052 BB bb 40052 BB bb 40052 BB bb 40052 BB bb 40052 BB bb 40052 BB bb 40052 CC aa 32712 CC aa 32712 CC aa 32712 CC aa 32712 CC bb 32712 |
︙ | ︙ | |||
1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 | GG aa 17016 GG aa 17203 GG bb 14816 GG bb 14825 GG bb 14910 GG bb 15594 HH aa 11904 HH aa 12093 HH aa 12403 HH bb 9671 HH bb 9904 HH bb 9951 HH bb 10279 HH bb 10304 HH bb 10501 II aa 6788 II aa 7042 II bb 5585 II bb 5719 II bb 5947 II bb 5969 II bb 6140 JJ aa 2901 JJ aa 3032 JJ aa 3566 JJ aa 3687 JJ bb 947 JJ bb 1432 JJ bb 1450 JJ bb 1529} do_execsql_test 1.15.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 44737 AA aa 44737 AA aa 44737 AA aa 44737 AA bb 44737 AA bb 44737 AA bb 44737 AA bb 44737 BB aa 40052 BB aa 40052 BB aa 40052 BB aa 40052 BB aa 40052 BB aa 40052 BB bb 40052 BB bb 40052 BB bb 40052 BB bb 40052 BB bb 40052 BB bb 40052 CC aa 32712 CC aa 32712 CC aa 32712 CC aa 32712 CC bb 32712 | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 | GG aa 17016 GG aa 17203 GG bb 14816 GG bb 14825 GG bb 14910 GG bb 15594 HH aa 11904 HH aa 12093 HH aa 12403 HH bb 9671 HH bb 9904 HH bb 9951 HH bb 10279 HH bb 10304 HH bb 10501 II aa 6788 II aa 7042 II bb 5585 II bb 5719 II bb 5947 II bb 5969 II bb 6140 JJ aa 2901 JJ aa 3032 JJ aa 3566 JJ aa 3687 JJ bb 947 JJ bb 1432 JJ bb 1450 JJ bb 1529} do_execsql_test 1.14.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 43803 44737 43803 44737 AA aa 43826 44737 43826 44737 AA aa 44498 44737 44498 44737 AA aa 44514 44737 44514 44737 AA bb 43867 44737 41560 42430 AA bb 44110 44737 41803 42430 AA bb 44165 44737 41858 42430 AA bb 44428 44737 42121 42430 BB aa 39290 40052 39290 40052 BB aa 39392 40052 39392 40052 BB aa 39640 40052 39640 40052 BB aa 39653 40052 39653 40052 BB aa 39659 40052 39659 40052 BB aa 39805 40052 39805 40052 BB bb 39212 40052 36339 37179 BB bb 39260 40052 36387 37179 BB bb 39266 40052 36393 37179 BB bb 39341 40052 36468 37179 BB bb 39347 40052 36474 37179 BB bb 39419 40052 36546 37179 CC aa 31953 32712 31953 32712 CC aa 32105 32712 32105 32712 CC aa 32282 32712 32282 32712 CC aa 32554 32712 32554 32712 CC bb 31890 32712 29936 30758 CC bb 32366 32712 30412 30758 DD aa 28745 29590 28745 29590 DD aa 29334 29590 29334 29590 DD aa 29366 29590 29366 29590 DD bb 28631 29590 27306 28265 DD bb 28796 29590 27471 28265 DD bb 28874 29590 27549 28265 DD bb 29352 29590 28027 28265 EE aa 24781 25558 24781 25558 EE aa 25445 25558 25445 25558 EE bb 24790 25558 23900 24668 EE bb 24929 25558 24039 24668 EE bb 25306 25558 24416 24668 FF aa 22349 23019 22349 23019 FF aa 22352 23019 22352 23019 FF aa 22401 23019 22401 23019 FF aa 22811 23019 22811 23019 FF bb 22081 23019 19918 20856 FF bb 22149 23019 19986 20856 FF bb 22293 23019 20130 20856 FF bb 22445 23019 20282 20856 FF bb 22724 23019 20561 20856 FF bb 22917 23019 20754 20856 GG aa 16717 17351 16717 17351 GG aa 16871 17351 16871 17351 GG aa 17016 17351 17016 17351 GG aa 17203 17351 17203 17351 GG bb 16413 17351 14816 15754 GG bb 16422 17351 14825 15754 GG bb 16507 17351 14910 15754 GG bb 17191 17351 15594 15754 HH aa 11904 12883 11904 12883 HH aa 12093 12883 12093 12883 HH aa 12403 12883 12403 12883 HH bb 11920 12883 9671 10634 HH bb 12153 12883 9904 10634 HH bb 12200 12883 9951 10634 HH bb 12528 12883 10279 10634 HH bb 12553 12883 10304 10634 HH bb 12750 12883 10501 10634 II aa 6788 7440 6788 7440 II aa 7042 7440 7042 7440 II bb 6635 7440 5585 6390 II bb 6769 7440 5719 6390 II bb 6997 7440 5947 6390 II bb 7019 7440 5969 6390 II bb 7190 7440 6140 6390 JJ aa 2901 3800 2901 3800 JJ aa 3032 3800 3032 3800 JJ aa 3566 3800 3566 3800 JJ aa 3687 3800 3687 3800 JJ bb 2961 3800 947 1786 JJ bb 3446 3800 1432 1786 JJ bb 3464 3800 1450 1786 JJ bb 3543 3800 1529 1786} do_execsql_test 1.15.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 44737 AA aa 44737 AA aa 44737 AA aa 44737 AA bb 44737 AA bb 44737 AA bb 44737 AA bb 44737 BB aa 40052 BB aa 40052 BB aa 40052 BB aa 40052 BB aa 40052 BB aa 40052 BB bb 40052 BB bb 40052 BB bb 40052 BB bb 40052 BB bb 40052 BB bb 40052 CC aa 32712 CC aa 32712 CC aa 32712 CC aa 32712 CC bb 32712 |
︙ | ︙ | |||
1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 | GG aa 17016 GG aa 17203 GG bb 14816 GG bb 14825 GG bb 14910 GG bb 15594 HH aa 11904 HH aa 12093 HH aa 12403 HH bb 9671 HH bb 9904 HH bb 9951 HH bb 10279 HH bb 10304 HH bb 10501 II aa 6788 II aa 7042 II bb 5585 II bb 5719 II bb 5947 II bb 5969 II bb 6140 JJ aa 2901 JJ aa 3032 JJ aa 3566 JJ aa 3687 JJ bb 947 JJ bb 1432 JJ bb 1450 JJ bb 1529} do_execsql_test 1.16.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 AA bb 4685 AA bb 4685 BB aa 7340 BB aa 7340 BB aa 7340 BB aa 7340 BB aa 7340 BB aa 7340 BB bb 7340 BB bb 7340 BB bb 7340 BB bb 7340 BB bb 7340 BB bb 7340 CC aa 3122 CC aa 3122 CC aa 3122 CC aa 3122 CC bb 3122 CC bb 3122 DD aa 4032 DD aa 4032 DD aa 4032 DD bb 4032 | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 | GG aa 17016 GG aa 17203 GG bb 14816 GG bb 14825 GG bb 14910 GG bb 15594 HH aa 11904 HH aa 12093 HH aa 12403 HH bb 9671 HH bb 9904 HH bb 9951 HH bb 10279 HH bb 10304 HH bb 10501 II aa 6788 II aa 7042 II bb 5585 II bb 5719 II bb 5947 II bb 5969 II bb 6140 JJ aa 2901 JJ aa 3032 JJ aa 3566 JJ aa 3687 JJ bb 947 JJ bb 1432 JJ bb 1450 JJ bb 1529} do_execsql_test 1.15.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 43803 44737 43803 44737 AA aa 43826 44737 43826 44737 AA aa 44498 44737 44498 44737 AA aa 44514 44737 44514 44737 AA bb 43867 44737 41560 42430 AA bb 44110 44737 41803 42430 AA bb 44165 44737 41858 42430 AA bb 44428 44737 42121 42430 BB aa 39290 40052 39290 40052 BB aa 39392 40052 39392 40052 BB aa 39640 40052 39640 40052 BB aa 39653 40052 39653 40052 BB aa 39659 40052 39659 40052 BB aa 39805 40052 39805 40052 BB bb 39212 40052 36339 37179 BB bb 39260 40052 36387 37179 BB bb 39266 40052 36393 37179 BB bb 39341 40052 36468 37179 BB bb 39347 40052 36474 37179 BB bb 39419 40052 36546 37179 CC aa 31953 32712 31953 32712 CC aa 32105 32712 32105 32712 CC aa 32282 32712 32282 32712 CC aa 32554 32712 32554 32712 CC bb 31890 32712 29936 30758 CC bb 32366 32712 30412 30758 DD aa 28745 29590 28745 29590 DD aa 29334 29590 29334 29590 DD aa 29366 29590 29366 29590 DD bb 28631 29590 27306 28265 DD bb 28796 29590 27471 28265 DD bb 28874 29590 27549 28265 DD bb 29352 29590 28027 28265 EE aa 24781 25558 24781 25558 EE aa 25445 25558 25445 25558 EE bb 24790 25558 23900 24668 EE bb 24929 25558 24039 24668 EE bb 25306 25558 24416 24668 FF aa 22349 23019 22349 23019 FF aa 22352 23019 22352 23019 FF aa 22401 23019 22401 23019 FF aa 22811 23019 22811 23019 FF bb 22081 23019 19918 20856 FF bb 22149 23019 19986 20856 FF bb 22293 23019 20130 20856 FF bb 22445 23019 20282 20856 FF bb 22724 23019 20561 20856 FF bb 22917 23019 20754 20856 GG aa 16717 17351 16717 17351 GG aa 16871 17351 16871 17351 GG aa 17016 17351 17016 17351 GG aa 17203 17351 17203 17351 GG bb 16413 17351 14816 15754 GG bb 16422 17351 14825 15754 GG bb 16507 17351 14910 15754 GG bb 17191 17351 15594 15754 HH aa 11904 12883 11904 12883 HH aa 12093 12883 12093 12883 HH aa 12403 12883 12403 12883 HH bb 11920 12883 9671 10634 HH bb 12153 12883 9904 10634 HH bb 12200 12883 9951 10634 HH bb 12528 12883 10279 10634 HH bb 12553 12883 10304 10634 HH bb 12750 12883 10501 10634 II aa 6788 7440 6788 7440 II aa 7042 7440 7042 7440 II bb 6635 7440 5585 6390 II bb 6769 7440 5719 6390 II bb 6997 7440 5947 6390 II bb 7019 7440 5969 6390 II bb 7190 7440 6140 6390 JJ aa 2901 3800 2901 3800 JJ aa 3032 3800 3032 3800 JJ aa 3566 3800 3566 3800 JJ aa 3687 3800 3687 3800 JJ bb 2961 3800 947 1786 JJ bb 3446 3800 1432 1786 JJ bb 3464 3800 1450 1786 JJ bb 3543 3800 1529 1786} do_execsql_test 1.16.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 AA bb 4685 AA bb 4685 BB aa 7340 BB aa 7340 BB aa 7340 BB aa 7340 BB aa 7340 BB aa 7340 BB bb 7340 BB bb 7340 BB bb 7340 BB bb 7340 BB bb 7340 BB bb 7340 CC aa 3122 CC aa 3122 CC aa 3122 CC aa 3122 CC bb 3122 CC bb 3122 DD aa 4032 DD aa 4032 DD aa 4032 DD bb 4032 |
︙ | ︙ | |||
1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 | GG aa 963 GG aa 1117 GG aa 1262 GG aa 1449 GG bb 1933 GG bb 1942 GG bb 2027 GG bb 2711 HH aa 1270 HH aa 1459 HH aa 1769 HH bb 2231 HH bb 2464 HH bb 2511 HH bb 2839 HH bb 2864 HH bb 3061 II aa 398 II aa 652 II bb 1785 II bb 1919 II bb 2147 II bb 2169 II bb 2340 JJ aa 1115 JJ aa 1246 JJ aa 1780 JJ aa 1901 JJ bb 947 JJ bb 1432 JJ bb 1450 JJ bb 1529} do_execsql_test 1.17.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} AA bb {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} CC aa {} CC aa {} CC aa {} CC aa {} CC bb {} CC bb {} DD aa {} DD aa {} DD aa {} DD bb {} DD bb {} DD bb {} DD bb {} EE aa {} EE aa {} | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 | GG aa 963 GG aa 1117 GG aa 1262 GG aa 1449 GG bb 1933 GG bb 1942 GG bb 2027 GG bb 2711 HH aa 1270 HH aa 1459 HH aa 1769 HH bb 2231 HH bb 2464 HH bb 2511 HH bb 2839 HH bb 2864 HH bb 3061 II aa 398 II aa 652 II bb 1785 II bb 1919 II bb 2147 II bb 2169 II bb 2340 JJ aa 1115 JJ aa 1246 JJ aa 1780 JJ aa 1901 JJ bb 947 JJ bb 1432 JJ bb 1450 JJ bb 1529} do_execsql_test 1.16.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 3751 4685 1373 2307 AA aa 3774 4685 1396 2307 AA aa 4446 4685 2068 2307 AA aa 4462 4685 2084 2307 AA bb 3815 4685 1508 2378 AA bb 4058 4685 1751 2378 AA bb 4113 4685 1806 2378 AA bb 4376 4685 2069 2378 BB aa 6578 7340 2111 2873 BB aa 6680 7340 2213 2873 BB aa 6928 7340 2461 2873 BB aa 6941 7340 2474 2873 BB aa 6947 7340 2480 2873 BB aa 7093 7340 2626 2873 BB bb 6500 7340 3627 4467 BB bb 6548 7340 3675 4467 BB bb 6554 7340 3681 4467 BB bb 6629 7340 3756 4467 BB bb 6635 7340 3762 4467 BB bb 6707 7340 3834 4467 CC aa 2363 3122 1195 1954 CC aa 2515 3122 1347 1954 CC aa 2692 3122 1524 1954 CC aa 2964 3122 1796 1954 CC bb 2300 3122 346 1168 CC bb 2776 3122 822 1168 DD aa 3187 4032 480 1325 DD aa 3776 4032 1069 1325 DD aa 3808 4032 1101 1325 DD bb 3073 4032 1748 2707 DD bb 3238 4032 1913 2707 DD bb 3316 4032 1991 2707 DD bb 3794 4032 2469 2707 EE aa 1762 2539 113 890 EE aa 2426 2539 777 890 EE bb 1771 2539 881 1649 EE bb 1910 2539 1020 1649 EE bb 2287 2539 1397 1649 FF aa 4998 5668 1493 2163 FF aa 5001 5668 1496 2163 FF aa 5050 5668 1545 2163 FF aa 5460 5668 1955 2163 FF bb 4730 5668 2567 3505 FF bb 4798 5668 2635 3505 FF bb 4942 5668 2779 3505 FF bb 5094 5668 2931 3505 FF bb 5373 5668 3210 3505 FF bb 5566 5668 3403 3505 GG aa 3834 4468 963 1597 GG aa 3988 4468 1117 1597 GG aa 4133 4468 1262 1597 GG aa 4320 4468 1449 1597 GG bb 3530 4468 1933 2871 GG bb 3539 4468 1942 2871 GG bb 3624 4468 2027 2871 GG bb 4308 4468 2711 2871 HH aa 4464 5443 1270 2249 HH aa 4653 5443 1459 2249 HH aa 4963 5443 1769 2249 HH bb 4480 5443 2231 3194 HH bb 4713 5443 2464 3194 HH bb 4760 5443 2511 3194 HH bb 5088 5443 2839 3194 HH bb 5113 5443 2864 3194 HH bb 5310 5443 3061 3194 II aa 2988 3640 398 1050 II aa 3242 3640 652 1050 II bb 2835 3640 1785 2590 II bb 2969 3640 1919 2590 II bb 3197 3640 2147 2590 II bb 3219 3640 2169 2590 II bb 3390 3640 2340 2590 JJ aa 2901 3800 1115 2014 JJ aa 3032 3800 1246 2014 JJ aa 3566 3800 1780 2014 JJ aa 3687 3800 1901 2014 JJ bb 2961 3800 947 1786 JJ bb 3446 3800 1432 1786 JJ bb 3464 3800 1450 1786 JJ bb 3543 3800 1529 1786} do_execsql_test 1.17.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} AA bb {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} CC aa {} CC aa {} CC aa {} CC aa {} CC bb {} CC bb {} DD aa {} DD aa {} DD aa {} DD bb {} DD bb {} DD bb {} DD bb {} EE aa {} EE aa {} |
︙ | ︙ | |||
2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 | FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} GG aa {} GG aa {} GG aa {} GG aa {} GG bb {} GG bb {} GG bb {} GG bb {} HH aa {} HH aa {} HH aa {} HH bb {} HH bb {} HH bb {} HH bb {} HH bb {} HH bb {} II aa {} II aa {} II bb {} II bb {} II bb {} II bb {} II bb {} JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} JJ bb {} JJ bb {} JJ bb {}} do_execsql_test 1.18.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 22701 AA aa 22701 AA aa 22701 AA aa 22701 AA bb 22701 AA bb 22701 AA bb 22701 AA bb 22701 BB aa 19829 BB aa 19829 BB aa 19829 BB aa 19829 BB aa 19829 BB aa 19829 BB bb 19829 BB bb 19829 BB bb 19829 BB bb 19829 BB bb 19829 BB bb 19829 CC aa 22150 CC aa 22150 CC aa 22150 CC aa 22150 CC bb 22150 | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 | FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} GG aa {} GG aa {} GG aa {} GG aa {} GG bb {} GG bb {} GG bb {} GG bb {} HH aa {} HH aa {} HH aa {} HH bb {} HH bb {} HH bb {} HH bb {} HH bb {} HH bb {} II aa {} II aa {} II bb {} II bb {} II bb {} II bb {} II bb {} JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} JJ bb {} JJ bb {} JJ bb {}} do_execsql_test 1.17.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa {} {} {} {} AA aa {} {} {} {} AA aa {} {} {} {} AA aa {} {} {} {} AA bb {} {} {} {} AA bb {} {} {} {} AA bb {} {} {} {} AA bb {} {} {} {} BB aa {} {} {} {} BB aa {} {} {} {} BB aa {} {} {} {} BB aa {} {} {} {} BB aa {} {} {} {} BB aa {} {} {} {} BB bb {} {} {} {} BB bb {} {} {} {} BB bb {} {} {} {} BB bb {} {} {} {} BB bb {} {} {} {} BB bb {} {} {} {} CC aa {} {} {} {} CC aa {} {} {} {} CC aa {} {} {} {} CC aa {} {} {} {} CC bb {} {} {} {} CC bb {} {} {} {} DD aa {} {} {} {} DD aa {} {} {} {} DD aa {} {} {} {} DD bb {} {} {} {} DD bb {} {} {} {} DD bb {} {} {} {} DD bb {} {} {} {} EE aa {} {} {} {} EE aa {} {} {} {} EE bb {} {} {} {} EE bb {} {} {} {} EE bb {} {} {} {} FF aa {} {} {} {} FF aa {} {} {} {} FF aa {} {} {} {} FF aa {} {} {} {} FF bb {} {} {} {} FF bb {} {} {} {} FF bb {} {} {} {} FF bb {} {} {} {} FF bb {} {} {} {} FF bb {} {} {} {} GG aa {} {} {} {} GG aa {} {} {} {} GG aa {} {} {} {} GG aa {} {} {} {} GG bb {} {} {} {} GG bb {} {} {} {} GG bb {} {} {} {} GG bb {} {} {} {} HH aa {} {} {} {} HH aa {} {} {} {} HH aa {} {} {} {} HH bb {} {} {} {} HH bb {} {} {} {} HH bb {} {} {} {} HH bb {} {} {} {} HH bb {} {} {} {} HH bb {} {} {} {} II aa {} {} {} {} II aa {} {} {} {} II bb {} {} {} {} II bb {} {} {} {} II bb {} {} {} {} II bb {} {} {} {} II bb {} {} {} {} JJ aa {} {} {} {} JJ aa {} {} {} {} JJ aa {} {} {} {} JJ aa {} {} {} {} JJ bb {} {} {} {} JJ bb {} {} {} {} JJ bb {} {} {} {} JJ bb {} {} {} {}} do_execsql_test 1.18.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 22701 AA aa 22701 AA aa 22701 AA aa 22701 AA bb 22701 AA bb 22701 AA bb 22701 AA bb 22701 BB aa 19829 BB aa 19829 BB aa 19829 BB aa 19829 BB aa 19829 BB aa 19829 BB bb 19829 BB bb 19829 BB bb 19829 BB bb 19829 BB bb 19829 BB bb 19829 CC aa 22150 CC aa 22150 CC aa 22150 CC aa 22150 CC bb 22150 |
︙ | ︙ | |||
2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 | GG aa 11954 GG bb 11097 GG bb 11097 GG bb 11097 GG bb 11097 HH aa 10634 HH aa 10634 HH aa 10634 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 II aa 6390 II aa 6390 II bb 3800 II bb 3800 II bb 3800 II bb 3800 II bb 3800 JJ aa 1786 JJ aa 1786 JJ aa 1786 JJ aa 1786 JJ bb {} JJ bb {} JJ bb {} JJ bb {}} do_execsql_test 1.19.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 40052 AA aa 40052 AA aa 40052 AA aa 40052 AA bb 40052 AA bb 40052 AA bb 40052 AA bb 40052 BB aa 32712 BB aa 32712 BB aa 32712 BB aa 32712 BB aa 32712 BB aa 32712 BB bb 32712 BB bb 32712 BB bb 32712 BB bb 32712 BB bb 32712 BB bb 32712 CC aa 29590 CC aa 29590 CC aa 29590 CC aa 29590 CC bb 29590 | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 | GG aa 11954 GG bb 11097 GG bb 11097 GG bb 11097 GG bb 11097 HH aa 10634 HH aa 10634 HH aa 10634 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 II aa 6390 II aa 6390 II bb 3800 II bb 3800 II bb 3800 II bb 3800 II bb 3800 JJ aa 1786 JJ aa 1786 JJ aa 1786 JJ aa 1786 JJ bb {} JJ bb {} JJ bb {} JJ bb {}} do_execsql_test 1.18.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 22701 22701 12840 12840 AA aa 22701 22701 12840 12840 AA aa 22701 22701 12840 12840 AA aa 22701 22701 12840 12840 AA bb 22701 22701 11787 11787 AA bb 22701 22701 11787 11787 AA bb 22701 22701 11787 11787 AA bb 22701 22701 11787 11787 BB aa 19829 19829 11621 11621 BB aa 19829 19829 11621 11621 BB aa 19829 19829 11621 11621 BB aa 19829 19829 11621 11621 BB aa 19829 19829 11621 11621 BB aa 19829 19829 11621 11621 BB bb 19829 19829 8044 8044 BB bb 19829 19829 8044 8044 BB bb 19829 19829 8044 8044 BB bb 19829 19829 8044 8044 BB bb 19829 19829 8044 8044 BB bb 19829 19829 8044 8044 CC aa 22150 22150 7739 7739 CC aa 22150 22150 7739 7739 CC aa 22150 22150 7739 7739 CC aa 22150 22150 7739 7739 CC bb 22150 22150 8734 8734 CC bb 22150 22150 8734 8734 DD aa 21758 21758 10914 10914 DD aa 21758 21758 10914 10914 DD aa 21758 21758 10914 10914 DD bb 21758 21758 9804 9804 DD bb 21758 21758 9804 9804 DD bb 21758 21758 9804 9804 DD bb 21758 21758 9804 9804 EE aa 23019 23019 11785 11785 EE aa 23019 23019 11785 11785 EE bb 23019 23019 12385 12385 EE bb 23019 23019 12385 12385 EE bb 23019 23019 12385 12385 FF aa 17351 17351 13416 13416 FF aa 17351 17351 13416 13416 FF aa 17351 17351 13416 13416 FF aa 17351 17351 13416 13416 FF bb 17351 17351 10961 10961 FF bb 17351 17351 10961 10961 FF bb 17351 17351 10961 10961 FF bb 17351 17351 10961 10961 FF bb 17351 17351 10961 10961 FF bb 17351 17351 10961 10961 GG aa 12883 12883 11954 11954 GG aa 12883 12883 11954 11954 GG aa 12883 12883 11954 11954 GG aa 12883 12883 11954 11954 GG bb 12883 12883 11097 11097 GG bb 12883 12883 11097 11097 GG bb 12883 12883 11097 11097 GG bb 12883 12883 11097 11097 HH aa 7440 7440 10634 10634 HH aa 7440 7440 10634 10634 HH aa 7440 7440 10634 10634 HH bb 7440 7440 7440 7440 HH bb 7440 7440 7440 7440 HH bb 7440 7440 7440 7440 HH bb 7440 7440 7440 7440 HH bb 7440 7440 7440 7440 HH bb 7440 7440 7440 7440 II aa 3800 3800 6390 6390 II aa 3800 3800 6390 6390 II bb 3800 3800 3800 3800 II bb 3800 3800 3800 3800 II bb 3800 3800 3800 3800 II bb 3800 3800 3800 3800 II bb 3800 3800 3800 3800 JJ aa {} {} 1786 1786 JJ aa {} {} 1786 1786 JJ aa {} {} 1786 1786 JJ aa {} {} 1786 1786 JJ bb {} {} {} {} JJ bb {} {} {} {} JJ bb {} {} {} {} JJ bb {} {} {} {}} do_execsql_test 1.19.1 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 40052 AA aa 40052 AA aa 40052 AA aa 40052 AA bb 40052 AA bb 40052 AA bb 40052 AA bb 40052 BB aa 32712 BB aa 32712 BB aa 32712 BB aa 32712 BB aa 32712 BB aa 32712 BB bb 32712 BB bb 32712 BB bb 32712 BB bb 32712 BB bb 32712 BB bb 32712 CC aa 29590 CC aa 29590 CC aa 29590 CC aa 29590 CC bb 29590 |
︙ | ︙ | |||
2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 | GG aa 15754 GG aa 15754 GG bb 12883 GG bb 12883 GG bb 12883 GG bb 12883 HH aa 10634 HH aa 10634 HH aa 10634 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 II aa 6390 II aa 6390 II bb 3800 II bb 3800 II bb 3800 II bb 3800 II bb 3800 JJ aa 1786 JJ aa 1786 JJ aa 1786 JJ aa 1786 JJ bb {} JJ bb {} JJ bb {} JJ bb {}} do_execsql_test 2.1.1 { SELECT row_number() OVER win FROM t3 WINDOW win AS ( ORDER BY c, b, a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 | GG aa 15754 GG aa 15754 GG bb 12883 GG bb 12883 GG bb 12883 GG bb 12883 HH aa 10634 HH aa 10634 HH aa 10634 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 II aa 6390 II aa 6390 II bb 3800 II bb 3800 II bb 3800 II bb 3800 II bb 3800 JJ aa 1786 JJ aa 1786 JJ aa 1786 JJ aa 1786 JJ bb {} JJ bb {} JJ bb {} JJ bb {}} do_execsql_test 1.19.8 { SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING ), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW), sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; } {AA aa 40052 40052 42430 42430 AA aa 40052 40052 42430 42430 AA aa 40052 40052 42430 42430 AA aa 40052 40052 42430 42430 AA bb 40052 40052 40052 40052 AA bb 40052 40052 40052 40052 AA bb 40052 40052 40052 40052 AA bb 40052 40052 40052 40052 BB aa 32712 32712 37179 37179 BB aa 32712 32712 37179 37179 BB aa 32712 32712 37179 37179 BB aa 32712 32712 37179 37179 BB aa 32712 32712 37179 37179 BB aa 32712 32712 37179 37179 BB bb 32712 32712 32712 32712 BB bb 32712 32712 32712 32712 BB bb 32712 32712 32712 32712 BB bb 32712 32712 32712 32712 BB bb 32712 32712 32712 32712 BB bb 32712 32712 32712 32712 CC aa 29590 29590 30758 30758 CC aa 29590 29590 30758 30758 CC aa 29590 29590 30758 30758 CC aa 29590 29590 30758 30758 CC bb 29590 29590 29590 29590 CC bb 29590 29590 29590 29590 DD aa 25558 25558 28265 28265 DD aa 25558 25558 28265 28265 DD aa 25558 25558 28265 28265 DD bb 25558 25558 25558 25558 DD bb 25558 25558 25558 25558 DD bb 25558 25558 25558 25558 DD bb 25558 25558 25558 25558 EE aa 23019 23019 24668 24668 EE aa 23019 23019 24668 24668 EE bb 23019 23019 23019 23019 EE bb 23019 23019 23019 23019 EE bb 23019 23019 23019 23019 FF aa 17351 17351 20856 20856 FF aa 17351 17351 20856 20856 FF aa 17351 17351 20856 20856 FF aa 17351 17351 20856 20856 FF bb 17351 17351 17351 17351 FF bb 17351 17351 17351 17351 FF bb 17351 17351 17351 17351 FF bb 17351 17351 17351 17351 FF bb 17351 17351 17351 17351 FF bb 17351 17351 17351 17351 GG aa 12883 12883 15754 15754 GG aa 12883 12883 15754 15754 GG aa 12883 12883 15754 15754 GG aa 12883 12883 15754 15754 GG bb 12883 12883 12883 12883 GG bb 12883 12883 12883 12883 GG bb 12883 12883 12883 12883 GG bb 12883 12883 12883 12883 HH aa 7440 7440 10634 10634 HH aa 7440 7440 10634 10634 HH aa 7440 7440 10634 10634 HH bb 7440 7440 7440 7440 HH bb 7440 7440 7440 7440 HH bb 7440 7440 7440 7440 HH bb 7440 7440 7440 7440 HH bb 7440 7440 7440 7440 HH bb 7440 7440 7440 7440 II aa 3800 3800 6390 6390 II aa 3800 3800 6390 6390 II bb 3800 3800 3800 3800 II bb 3800 3800 3800 3800 II bb 3800 3800 3800 3800 II bb 3800 3800 3800 3800 II bb 3800 3800 3800 3800 JJ aa {} {} 1786 1786 JJ aa {} {} 1786 1786 JJ aa {} {} 1786 1786 JJ aa {} {} 1786 1786 JJ bb {} {} {} {} JJ bb {} {} {} {} JJ bb {} {} {} {} JJ bb {} {} {} {}} do_execsql_test 2.1.1 { SELECT row_number() OVER win FROM t3 WINDOW win AS ( ORDER BY c, b, a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) |
︙ | ︙ |