/ Check-in [eb1fb420]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Add implementation of nth_value() window function.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | exp-window-functions
Files: files | file ages | folders
SHA3-256:eb1fb420ac70857e7ca4cbad78be15a27bee8f915ba2da080c7efa1879c06c31
User & Date: dan 2018-06-06 20:51:02
Context
2018-06-07
15:54
Fix problems with the nth_value() function. check-in: 63002b9a user: dan tags: exp-window-functions
2018-06-06
20:51
Add implementation of nth_value() window function. check-in: eb1fb420 user: dan tags: exp-window-functions
2018-06-05
16:16
Add implementation of last_value() window function. check-in: 2493ce1a user: dan tags: exp-window-functions
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/window.c.

   614    614     if( sqlite3ExprListCompare(p1->pOrderBy, p2->pOrderBy, -1) ) return 1;
   615    615     return 0;
   616    616   }
   617    617   
   618    618   static void windowAggInit(Parse *pParse, Window *pMWin){
   619    619     Window *pWin;
   620    620     for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
   621         -    int funcFlags = pWin->pFunc->funcFlags;
   622         -    if( (funcFlags & SQLITE_FUNC_MINMAX) && pWin->eStart!=TK_UNBOUNDED ){
          621  +    Vdbe *v = sqlite3GetVdbe(pParse);
          622  +    FuncDef *p = pWin->pFunc;
          623  +    if( (p->funcFlags & SQLITE_FUNC_MINMAX) && pWin->eStart!=TK_UNBOUNDED ){
   623    624         ExprList *pList = pWin->pOwner->x.pList;
   624    625         KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pList, 0, 0);
   625         -      Vdbe *v = sqlite3GetVdbe(pParse);
   626    626         pWin->csrApp = pParse->nTab++;
   627    627         pWin->regApp = pParse->nMem+1;
   628    628         pParse->nMem += 3;
   629    629         if( pKeyInfo && pWin->pFunc->zName[1]=='i' ){
   630    630           assert( pKeyInfo->aSortOrder[0]==0 );
   631    631           pKeyInfo->aSortOrder[0] = 1;
   632    632         }
   633    633         sqlite3VdbeAddOp2(v, OP_OpenEphemeral, pWin->csrApp, 2);
   634    634         sqlite3VdbeAppendP4(v, pKeyInfo, P4_KEYINFO);
   635    635         sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp+1);
   636    636       }
          637  +    else if( p->xSFunc==nth_valueStepFunc ){
          638  +      /* Allocate two registers at pWin->regApp. These will be used to
          639  +      ** store the start and end index of the current frame.  */
          640  +      assert( pMWin->iEphCsr );
          641  +      pWin->regApp = pParse->nMem+1;
          642  +      pWin->csrApp = pParse->nTab++;
          643  +      pParse->nMem += 2;
          644  +      sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp);
          645  +      sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp+1);
          646  +      sqlite3VdbeAddOp2(v, OP_OpenDup, pWin->csrApp, pMWin->iEphCsr);
          647  +    }
   637    648     }
   638    649   }
   639    650   
   640    651   void sqlite3WindowCodeInit(Parse *pParse, Window *pWin){
   641    652     Vdbe *v = sqlite3GetVdbe(pParse);
   642    653     int nPart = (pWin->pPartition ? pWin->pPartition->nExpr : 0);
   643    654     nPart += (pWin->pOrderBy ? pWin->pOrderBy->nExpr : 0);
................................................................................
   699    710           nArg++;
   700    711         }
   701    712       }else{
   702    713         assert( !(flags & SQLITE_FUNC_WINDOW_SIZE) );
   703    714         regArg = reg + pWin->iArgCol;
   704    715       }
   705    716   
   706         -    if( pWin->csrApp ){
          717  +    if( (pWin->pFunc->funcFlags & SQLITE_FUNC_MINMAX) 
          718  +      && pWin->eStart!=TK_UNBOUNDED 
          719  +    ){
   707    720         if( bInverse==0 ){
   708    721           sqlite3VdbeAddOp2(v, OP_AddImm, pWin->regApp+1, 1);
   709    722           sqlite3VdbeAddOp2(v, OP_SCopy, regArg, pWin->regApp);
   710    723           sqlite3VdbeAddOp3(v, OP_MakeRecord, pWin->regApp, 2, pWin->regApp+2);
   711    724           sqlite3VdbeAddOp2(v, OP_IdxInsert, pWin->csrApp, pWin->regApp+2);
   712    725         }else{
   713    726           sqlite3VdbeAddOp4Int(v, OP_SeekGE, pWin->csrApp, 0, regArg, 1);
   714    727           sqlite3VdbeAddOp1(v, OP_Delete, pWin->csrApp);
   715    728           sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2);
   716    729         }
          730  +    }else if( pWin->regApp ){
          731  +      assert( pWin->pFunc->xSFunc==nth_valueStepFunc );
          732  +      assert( bInverse==0 || bInverse==1 );
          733  +      sqlite3VdbeAddOp2(v, OP_AddImm, pWin->regApp+1-bInverse, 1);
   717    734       }else{
   718    735         if( pWin->pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL ){
   719    736           CollSeq *pColl;
   720    737           pColl = sqlite3ExprCollSeq(pParse, pWin->pOwner->x.pList->a[0].pExpr);
   721    738           sqlite3VdbeAddOp4(v, OP_CollSeq, 0,0,0, (const char*)pColl, P4_COLLSEQ);
   722    739         }
   723    740         sqlite3VdbeAddOp3(v, OP_AggStep0, bInverse, regArg, pWin->regAccum);
................................................................................
   728    745   }
   729    746   
   730    747   static void windowAggFinal(Parse *pParse, Window *pMWin, int bFinal){
   731    748     Vdbe *v = sqlite3GetVdbe(pParse);
   732    749     Window *pWin;
   733    750   
   734    751     for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
   735         -    if( pWin->csrApp ){
          752  +    if( (pWin->pFunc->funcFlags & SQLITE_FUNC_MINMAX) 
          753  +     && pWin->eStart!=TK_UNBOUNDED 
          754  +    ){
   736    755         sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regResult);
   737    756         sqlite3VdbeAddOp1(v, OP_Last, pWin->csrApp);
   738    757         sqlite3VdbeAddOp3(v, OP_Column, pWin->csrApp, 0, pWin->regResult);
   739    758         sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2);
   740    759         if( bFinal ){
   741    760           sqlite3VdbeAddOp1(v, OP_ResetSorter, pWin->csrApp);
   742    761         }
          762  +    }else if( pWin->regApp ){
          763  +      if( bFinal ){
          764  +        sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp);
          765  +        sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp+1);
          766  +      }
   743    767       }else{
   744    768         if( bFinal==0 ){
   745    769           sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regResult);
   746    770         }
   747    771         sqlite3VdbeAddOp2(v, OP_AggFinal, pWin->regAccum, pWin->nArg);
   748    772         sqlite3VdbeAppendP4(v, pWin->pFunc, P4_FUNCDEF);
   749    773         if( bFinal ){
................................................................................
   806    830   
   807    831     /* End of the input loop */
   808    832     sqlite3WhereEnd(pWInfo);
   809    833   
   810    834     /* Invoke "flush_partition" to deal with the final (or only) partition */
   811    835     sqlite3VdbeAddOp2(v, OP_Gosub, regFlushPart, lblFlushPart);
   812    836   }
          837  +
          838  +static void windowReturnOneRow(
          839  +  Parse *pParse,
          840  +  Window *pMWin,
          841  +  int regGosub,
          842  +  int addrGosub
          843  +){
          844  +  Vdbe *v = sqlite3GetVdbe(pParse);
          845  +  Window *pWin;
          846  +  for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
          847  +    FuncDef *pFunc = pWin->pFunc;
          848  +    if( pFunc->xSFunc==nth_valueStepFunc ){
          849  +      int csr = pWin->csrApp;
          850  +      int lbl = sqlite3VdbeMakeLabel(v);
          851  +      int tmpReg = sqlite3GetTempReg(pParse);
          852  +      sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regResult);
          853  +      sqlite3VdbeAddOp3(v, OP_Column, pWin->iEphCsr, pWin->iArgCol+1, tmpReg);
          854  +      sqlite3VdbeAddOp3(v, OP_Add, tmpReg, pWin->regApp, tmpReg);
          855  +      sqlite3VdbeAddOp3(v, OP_Gt, pWin->regApp+1, lbl, tmpReg);
          856  +      sqlite3VdbeAddOp3(v, OP_SeekRowid, csr, lbl, tmpReg);
          857  +      sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol, pWin->regResult);
          858  +      sqlite3VdbeResolveLabel(v, lbl);
          859  +      sqlite3ReleaseTempReg(pParse, tmpReg);
          860  +    }
          861  +  }
          862  +  sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub);
          863  +}
          864  +
          865  +static void windowReturnRows(
          866  +  Parse *pParse,
          867  +  Window *pMWin,
          868  +  int regCtr,
          869  +  int bFinal,
          870  +  int regGosub,
          871  +  int addrGosub,
          872  +  int regInvArg,
          873  +  int regInvSize
          874  +){
          875  +  int addr;
          876  +  Vdbe *v = sqlite3GetVdbe(pParse);
          877  +  windowAggFinal(pParse, pMWin, 0);
          878  +  addr = sqlite3VdbeAddOp3(v, OP_IfPos, regCtr, sqlite3VdbeCurrentAddr(v)+2 ,1);
          879  +  sqlite3VdbeAddOp2(v, OP_Goto, 0, 0);
          880  +  windowReturnOneRow(pParse, pMWin, regGosub, addrGosub);
          881  +  if( regInvArg ){
          882  +    windowAggStep(pParse, pMWin, pMWin->iEphCsr, 1, regInvArg, regInvSize);
          883  +  }
          884  +  sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, addr);
          885  +  sqlite3VdbeJumpHere(v, addr+1);   /* The OP_Goto */
          886  +}
   813    887   
   814    888   /*
   815    889   ** ROWS BETWEEN <expr1> PRECEDING AND <expr2> FOLLOWING
   816    890   ** ----------------------------------------------------
   817    891   **
   818    892   ** Pseudo-code for the implementation of this window frame type is as
   819    893   ** follows. sqlite3WhereBegin() has already been called to generate the
................................................................................
  1077   1151       nPeerVal = pMWin->pOrderBy->nExpr;
  1078   1152       pParse->nMem += (2 * nPeerVal);
  1079   1153       for(k=0; k<nPeerVal; k++){
  1080   1154         sqlite3VdbeAddOp3(v, OP_Column, pMWin->iEphCsr, iPeer+k, regPeerVal+k);
  1081   1155       }
  1082   1156       sqlite3VdbeAddOp2(v, OP_Integer, 0, regPeer);
  1083   1157     }
         1158  +
  1084   1159     windowAggFinal(pParse, pMWin, 0);
  1085   1160     if( bRange ){
  1086   1161       sqlite3VdbeAddOp2(v, OP_AddImm, regPeer, 1);
  1087   1162     }
  1088         -  sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub);
         1163  +  windowReturnOneRow(pParse, pMWin, regGosub, addrGosub);
  1089   1164     sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, sqlite3VdbeCurrentAddr(v)+2);
  1090   1165     sqlite3VdbeAddOp2(v, OP_Goto, 0, lblFlushDone);
  1091   1166     if( bRange ){
  1092   1167       KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pMWin->pOrderBy,0,0);
  1093   1168       int addrJump = sqlite3VdbeCurrentAddr(v)-4;
  1094   1169       for(k=0; k<nPeerVal; k++){
  1095   1170         int iOut = regPeerVal + nPeerVal + k;
................................................................................
  1199   1274     int csrLead;
  1200   1275     int regCtr;
  1201   1276     int regArg;                     /* Register array to martial function args */
  1202   1277     int regSize;
  1203   1278     int nArg;
  1204   1279   
  1205   1280     assert( (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_CURRENT) 
         1281  +       || (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_UNBOUNDED) 
         1282  +       || (pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_CURRENT) 
  1206   1283     );
  1207   1284   
  1208   1285     regNewPeer = pParse->nMem+1;
  1209   1286     pParse->nMem += nPeer;
  1210   1287   
  1211   1288     /* Allocate register and label for the "flush_partition" sub-routine. */
  1212   1289     regFlushPart = ++pParse->nMem;
................................................................................
  1232   1309     regArg = pParse->nMem+1;
  1233   1310     pParse->nMem += nArg;
  1234   1311   
  1235   1312     sqlite3VdbeAddOp2(v, OP_Integer, 0, regCtr);
  1236   1313     addrRewind = sqlite3VdbeAddOp1(v, OP_Rewind, csrLead);
  1237   1314     sqlite3VdbeAddOp1(v, OP_Rewind, pMWin->iEphCsr);
  1238   1315   
  1239         -  if( pOrderBy ){
  1240         -    int addrJump;                 /* Address of OP_Jump below */
  1241         -    int iOff = pMWin->nBufferCol + (pPart ? pPart->nExpr : 0);
  1242         -    int regPeer = pMWin->regPart + (pPart ? pPart->nExpr : 0);
  1243         -    KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pOrderBy, 0, 0);
  1244         -
  1245         -    for(k=0; k<nPeer; k++){
  1246         -      sqlite3VdbeAddOp3(v, OP_Column, csrLead, iOff+k, regNewPeer+k);
         1316  +  if( pOrderBy && pMWin->eEnd==TK_CURRENT ){
         1317  +    int bCurrent = (pMWin->eEnd==TK_CURRENT && pMWin->eStart==TK_CURRENT);
         1318  +    int addrJump = 0;             /* Address of OP_Jump below */
         1319  +    if( pMWin->eType==TK_RANGE ){
         1320  +      int iOff = pMWin->nBufferCol + (pPart ? pPart->nExpr : 0);
         1321  +      int regPeer = pMWin->regPart + (pPart ? pPart->nExpr : 0);
         1322  +      KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pOrderBy, 0, 0);
         1323  +      for(k=0; k<nPeer; k++){
         1324  +        sqlite3VdbeAddOp3(v, OP_Column, csrLead, iOff+k, regNewPeer+k);
         1325  +      }
         1326  +      addr = sqlite3VdbeAddOp3(v, OP_Compare, regNewPeer, regPeer, nPeer);
         1327  +      sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO);
         1328  +      addrJump = sqlite3VdbeAddOp3(v, OP_Jump, addr+2, 0, addr+2);
         1329  +      sqlite3VdbeAddOp3(v, OP_Copy, regNewPeer, regPeer, nPeer-1);
  1247   1330       }
  1248   1331   
  1249         -    addr = sqlite3VdbeAddOp3(v, OP_Compare, regNewPeer, regPeer, nPeer);
  1250         -    sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO);
  1251         -    addrJump = sqlite3VdbeAddOp3(v, OP_Jump, addr+2, 0, addr+2);
  1252         -    sqlite3VdbeAddOp3(v, OP_Copy, regNewPeer, regPeer, nPeer-1);
  1253         -    windowAggFinal(pParse, pMWin, 0);
  1254         -    sqlite3VdbeAddOp3(v, OP_IfPos, regCtr, sqlite3VdbeCurrentAddr(v)+2 , 1);
  1255         -    sqlite3VdbeAddOp2(v, OP_Goto, 0, sqlite3VdbeCurrentAddr(v)+3);
  1256         -    sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub);
  1257         -    sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, sqlite3VdbeCurrentAddr(v)-3);
  1258         -    sqlite3VdbeJumpHere(v, addrJump);
         1332  +    windowReturnRows(pParse, pMWin, regCtr, 0, regGosub, addrGosub, 
         1333  +        (bCurrent ? regArg : 0), (bCurrent ? regSize : 0)
         1334  +    );
         1335  +    if( addrJump ) sqlite3VdbeJumpHere(v, addrJump);
  1259   1336     }
  1260   1337   
  1261   1338     windowAggStep(pParse, pMWin, csrLead, 0, regArg, regSize);
  1262   1339     sqlite3VdbeAddOp2(v, OP_AddImm, regCtr, 1);
  1263         -
  1264   1340     sqlite3VdbeAddOp2(v, OP_Next, csrLead, addrRewind+2);
  1265   1341   
  1266         -  windowAggFinal(pParse, pMWin, 1);
  1267         -
  1268         -  sqlite3VdbeAddOp3(v, OP_IfPos, regCtr, sqlite3VdbeCurrentAddr(v)+2 , 1);
  1269         -  sqlite3VdbeAddOp2(v, OP_Goto, 0, sqlite3VdbeCurrentAddr(v)+3);
  1270         -  sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub);
  1271         -  sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, sqlite3VdbeCurrentAddr(v)-3);
         1342  +  windowReturnRows(pParse, pMWin, regCtr, 1, regGosub, addrGosub, 0, 0);
  1272   1343   
  1273   1344     sqlite3VdbeJumpHere(v, addrRewind);
  1274   1345     sqlite3VdbeJumpHere(v, addrRewind+1);
  1275   1346     sqlite3VdbeAddOp1(v, OP_ResetSorter, pMWin->iEphCsr);
  1276   1347     sqlite3VdbeAddOp1(v, OP_Return, regFlushPart);
  1277   1348   
  1278   1349     /* Jump to here to skip over flush_partition */
................................................................................
  1493   1564      || (pMWin->eStart==TK_CURRENT&&pMWin->eEnd==TK_UNBOUNDED&&pMWin->pOrderBy)
  1494   1565     ){
  1495   1566       windowCodeRowExprStep(pParse, p, pWInfo, regGosub, addrGosub);
  1496   1567       return;
  1497   1568     }
  1498   1569   
  1499   1570     for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
  1500         -    if( pWin->pFunc->funcFlags & SQLITE_FUNC_WINDOW_SIZE ){
         1571  +    FuncDef *pFunc = pWin->pFunc;
         1572  +    if( (pFunc->funcFlags & SQLITE_FUNC_WINDOW_SIZE)
         1573  +     || (pFunc->xSFunc==nth_valueStepFunc)
         1574  +    ){
  1501   1575         windowCodeCacheStep(pParse, p, pWInfo, regGosub, addrGosub);
  1502   1576         return;
  1503   1577       }
  1504   1578     }
  1505   1579   
  1506   1580     *pbLoop = 1;
  1507   1581     windowCodeDefaultStep(pParse, p, pWInfo, regGosub, addrGosub);
  1508   1582   }
  1509         -
  1510   1583   

Changes to test/window3.tcl.

   141    141     execsql_float_test 1.$tn.7.4 "
   142    142       SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b $window ) FROM t2
   143    143     "
   144    144     execsql_float_test 1.$tn.7.5 "
   145    145       SELECT percent_rank() OVER ( ORDER BY b%10 $window ) FROM t2
   146    146     "
   147    147     execsql_float_test 1.$tn.7.6 "
   148         -    SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 $window ) FROM t2
          148  +    SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 $window) FROM t2
   149    149     "
   150    150   
   151    151     execsql_float_test 1.$tn.8.1 "
   152    152       SELECT cume_dist() OVER ( ORDER BY a $window ) FROM t2
   153    153     "
   154    154     execsql_float_test 1.$tn.8.2 "
   155    155       SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a $window ) FROM t2
................................................................................
   201    201     execsql_test 1.$tn.9.5 "
   202    202       SELECT last_value(a+b) OVER ( ORDER BY b%10,a $window ) FROM t2
   203    203     "
   204    204     execsql_test 1.$tn.9.6 "
   205    205       SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 $window) FROM t2
   206    206     "
   207    207   
          208  +  execsql_test 1.$tn.10.1 "
          209  +    SELECT nth_value(b,b+1) OVER (ORDER BY a $window) FROM t2
          210  +  "
          211  +  execsql_test 1.$tn.9.2 "
          212  +    SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a $window) FROM t2
          213  +  "
          214  +  execsql_test 1.$tn.9.3 "
          215  +    SELECT nth_value(b,b+1) OVER ( ORDER BY b,a $window ) FROM t2
          216  +  "
          217  +  execsql_test 1.$tn.9.4 "
          218  +    SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a $window ) FROM t2
          219  +  "
          220  +  execsql_test 1.$tn.9.5 "
          221  +    SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a $window ) FROM t2
          222  +  "
          223  +  execsql_test 1.$tn.9.6 "
          224  +    SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 $window) FROM t2
          225  +  "
   208    226   }
   209    227   
   210    228   finish_test
   211    229   

Changes to test/window3.test.

   167    167       lappend myres [format %.2f [set r]]
   168    168     }
   169    169     set myres
   170    170   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
   171    171   
   172    172   do_test 1.1.7.6 {
   173    173     set myres {}
   174         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
          174  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2}] {
   175    175       lappend myres [format %.2f [set r]]
   176    176     }
   177    177     set myres
   178    178   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
   179    179   
   180    180   do_test 1.1.8.1 {
   181    181     set myres {}
................................................................................
   293    293     SELECT last_value(a+b) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
   294    294   } {1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229}
   295    295   
   296    296   do_execsql_test 1.1.9.6 {
   297    297     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
   298    298   } {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
   299    299   
          300  +do_execsql_test 1.1.10.1 {
          301  +  SELECT nth_value(b,b+1) OVER (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
          302  +} {0   {}   {}   {}   {}   {}   {}   {}   41   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   2   {}   29   {}   {}   {}   46   62   62   {}   {}   16   {}   33   {}   {}   {}   {}   {}   78   {}   61   {}   59   77   {}   74   {}   27   {}   22   39   67   {}   54   85   74   90   7   61   90   62   {}   93   {}   {}   {}   {}   23   {}   74   93   30   23   29   3   1   41   {}   65   33   2   98   86   89   25   76   {}   40   38   15   13   96   74   97   81   40   16   99   76   96   32   80   86   59   2   99   84   84   39   65   27   76   78   84   16   2   96   59   16   41   28   13   89   22   4   42   91   41   33   87   55   81   29   36   28   6   47   97   97   85   33   41   93   15   85   89   98   98   43   23   73   4   56   29   89   46   65   38   59   68   47   9   93   9   23   39   16   93   98   74   65   75   15   56   93   12   2   81   2   23   97   47   91   15   93   35   16   63   8   53   91   33}
          303  +
          304  +do_execsql_test 1.1.9.2 {
          305  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
          306  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   81   {}   21   {}   {}   {}   {}   21   {}   {}   {}   21   {}   {}   {}   {}   {}   {}   12   {}   {}   {}   12   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   23   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   73   {}   23   {}   {}   {}   {}   {}   {}   {}   {}   74   {}   {}   {}   {}   {}   {}   {}   {}   64   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   15   {}   {}   {}   {}   {}   {}   55   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   27   47   {}   {}   {}   {}   {}   {}   {}   {}   {}   98   {}   98   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   29   {}   {}   {}   {}   {}   {}   {}   29   29   {}   {}   {}}
          307  +
          308  +do_execsql_test 1.1.9.3 {
          309  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
          310  +} {0   1   1   1   1   1   2   2   2   2   3   3   3   3   4   4   4   5   5   5   6   7   7   7   7   7   7   7   8   8   8   8   8   8   8   9   9   10   11   11   11   11   12   12   12   12   12   13   13   13   13   13   14   15   15   15   15   15   15   15   15   16   16   16   16   16   16   16   16   16   16   17   17   19   19   19   19   20   20   21   21   21   21   21   22   22   22   22   23   23   23   23   23   25   25   26   26   26   26   26   27   27   28   29   29   29   29   30   30   30   30   30   30   30   30   31   31   31   31   31   32   32   33   33   33   33   33   33   33   33   34   34   34   34   35   35   35   36   36   36   36   36   36   36   36   36   36   36   36   37   37   37   37   38   38   38   39   39   39   39   39   40   40   40   40   41   41   41   41   41   41   42   43   43   43   43   43   43   44   44   44   44   44   46   46   46   46   47   47   47   47   47   47   47   47   47   47   49   49   49}
          311  +
          312  +do_execsql_test 1.1.9.4 {
          313  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
          314  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
          315  +
          316  +do_execsql_test 1.1.9.5 {
          317  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
          318  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   90   1   30   {}   {}   {}   31   30   {}   {}   {}   1   40   {}   50   11   81   42   40   {}   50   81   40   {}   {}   50   {}   52   {}   41   81   {}   41   {}   2   30   2   81   82   53   {}   10   {}   {}   81   {}   41   10   81   30   81   {}   3   3   23   {}   3   61   80   {}   94   3   91   91   72   3   63   30   91   94   94   72   91   73   91   84   84   33   41   1   33   84   73   73   91   20   41   84   33   33   84   33   41   84   21   44   22   90   22   81   81   74   93   93   93   81   21   83   44   44   21   21   21   13   21   21   34   11   34   73   74   2   60   2   34   2   34   74   60   23   2   2   2   11   91   60   62   73   74   70   51   65   74   93   65   70   34   70   93   93   93   62   35   44   43   12   35   41   43   44   44   41   80   54   72   43   41   43   91   12   80   80   35   33   12}
          319  +
          320  +do_execsql_test 1.1.9.6 {
          321  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
          322  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
          323  +
   300    324   do_execsql_test 1.2.2.1 {
   301    325     SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
   302    326   } {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99}
   303    327   
   304    328   do_execsql_test 1.2.2.2 {
   305    329     SELECT min(b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
   306    330   } {0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0}
................................................................................
   407    431       lappend myres [format %.2f [set r]]
   408    432     }
   409    433     set myres
   410    434   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
   411    435   
   412    436   do_test 1.2.7.6 {
   413    437     set myres {}
   414         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
          438  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2}] {
   415    439       lappend myres [format %.2f [set r]]
   416    440     }
   417    441     set myres
   418    442   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
   419    443   
   420    444   do_test 1.2.8.1 {
   421    445     set myres {}
................................................................................
   533    557     SELECT last_value(a+b) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
   534    558   } {229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229}
   535    559   
   536    560   do_execsql_test 1.2.9.6 {
   537    561     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
   538    562   } {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
   539    563   
          564  +do_execsql_test 1.2.10.1 {
          565  +  SELECT nth_value(b,b+1) OVER (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
          566  +} {0   81   86   81   46   98   97   23   41   72   29   13   28   35   16   47   47   9   24   26   98   58   8   24   30   91   58   2   56   29   73   2   42   46   62   62   73   40   16   85   33   37   81   25   9   87   78   87   61   28   59   77   90   74   9   27   41   22   39   67   72   54   85   74   90   7   61   90   62   4   93   72   96   94   29   23   95   74   93   30   23   29   3   1   41   80   65   33   2   98   86   89   25   76   65   40   38   15   13   96   74   97   81   40   16   99   76   96   32   80   86   59   2   99   84   84   39   65   27   76   78   84   16   2   96   59   16   41   28   13   89   22   4   42   91   41   33   87   55   81   29   36   28   6   47   97   97   85   33   41   93   15   85   89   98   98   43   23   73   4   56   29   89   46   65   38   59   68   47   9   93   9   23   39   16   93   98   74   65   75   15   56   93   12   2   81   2   23   97   47   91   15   93   35   16   63   8   53   91   33}
          567  +
          568  +do_execsql_test 1.2.9.2 {
          569  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
          570  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   81   21   21   {}   {}   {}   {}   21   {}   {}   {}   21   12   {}   72   {}   {}   {}   12   {}   72   {}   12   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   23   {}   {}   {}   {}   {}   73   {}   {}   {}   {}   {}   73   {}   23   {}   {}   {}   {}   {}   {}   {}   {}   74   {}   {}   {}   {}   {}   {}   {}   {}   64   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   55   {}   {}   {}   {}   {}   {}   15   55   {}   {}   {}   {}   {}   55   {}   {}   {}   {}   16   {}   26   26   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   27   47   {}   {}   {}   98   {}   {}   {}   {}   {}   98   {}   98   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   29   {}   {}   {}   {}   {}   9   {}   29   29   {}   {}   {}}
          571  +
          572  +do_execsql_test 1.2.9.3 {
          573  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
          574  +} {0   1   1   1   1   1   2   2   2   2   3   3   3   3   4   4   4   5   5   5   6   7   7   7   7   7   7   7   8   8   8   8   8   8   8   9   9   10   11   11   11   11   12   12   12   12   12   13   13   13   13   13   14   15   15   15   15   15   15   15   15   16   16   16   16   16   16   16   16   16   16   17   17   19   19   19   19   20   20   21   21   21   21   21   22   22   22   22   23   23   23   23   23   25   25   26   26   26   26   26   27   27   28   29   29   29   29   30   30   30   30   30   30   30   30   31   31   31   31   31   32   32   33   33   33   33   33   33   33   33   34   34   34   34   35   35   35   36   36   36   36   36   36   36   36   36   36   36   36   37   37   37   37   38   38   38   39   39   39   39   39   40   40   40   40   41   41   41   41   41   41   42   43   43   43   43   43   43   44   44   44   44   44   46   46   46   46   47   47   47   47   47   47   47   47   47   47   49   49   49}
          575  +
          576  +do_execsql_test 1.2.9.4 {
          577  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
          578  +} {0   80   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   1   51   51   91   91   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   2   2   62   62   62   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   13   13   43   43   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   74   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   35   85   85   85   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   66   66   66   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   37   37   37   87   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   58   58   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   39   39   39   89   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
          579  +
          580  +do_execsql_test 1.2.9.5 {
          581  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
          582  +} {0   74   32   31   84   91   74   3   93   84   74   31   12   90   31   22   74   64   43   64   64   90   74   22   43   90   1   30   62   22   31   31   30   74   64   64   1   40   33   50   11   81   42   40   13   50   81   40   13   13   50   33   52   24   41   81   34   41   34   2   30   2   81   82   53   33   10   33   33   81   34   41   10   81   30   81   4   3   3   23   94   3   61   80   84   94   3   91   91   72   3   63   30   91   94   94   72   91   73   91   84   84   33   41   1   33   84   73   73   91   20   41   84   33   33   84   33   41   84   21   44   22   90   22   81   81   74   93   93   93   81   21   83   44   44   21   21   21   13   21   21   34   11   34   73   74   2   60   2   34   2   34   74   60   23   2   2   2   11   91   60   62   73   74   70   51   65   74   93   65   70   34   70   93   93   93   62   35   44   43   12   35   41   43   44   44   41   80   54   72   43   41   43   91   12   80   80   35   33   12}
          583  +
          584  +do_execsql_test 1.2.9.6 {
          585  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
          586  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
          587  +
   540    588   do_execsql_test 1.3.2.1 {
   541    589     SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
   542    590   } {0   74   41   74   23   99   26   33   2   89   81   96   59   38   68   39   62   91   46   6   99   97   27   46   78   54   97   8   67   29   93   84   77   23   16   16   93   65   35   47   7   86   74   61   91   85   24   85   43   59   12   32   56   3   91   22   90   55   15   28   89   25   47   1   56   40   43   56   16   75   36   89   98   76   81   4   94   42   30   78   33   29   53   63   2   87   37   80   84   72   41   9   61   73   95   65   13   58   96   98   1   21   74   65   35   5   73   11   51   87   41   12   8   20   31   31   15   95   22   73   79   88   34   8   11   49   34   90   59   96   60   55   75   77   44   2   7   85   57   74   29   70   59   19   39   26   26   47   80   90   36   58   47   9   72   72   66   33   93   75   64   81   9   23   37   13   12   14   62   91   36   91   33   15   34   36   99   3   95   69   58   52   30   50   84   10   84   33   21   39   44   58   30   38   34   83   27   82   17   7}
   543    591   
   544    592   do_execsql_test 1.3.2.2 {
   545    593     SELECT min(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
   546    594   } {0   74   41   74   23   99   26   33   2   89   81   96   59   38   68   39   62   91   46   6   99   97   27   46   78   54   97   8   67   29   93   84   77   23   16   16   93   65   35   47   7   86   74   61   91   85   24   85   43   59   12   32   56   3   91   22   90   55   15   28   89   25   47   1   56   40   43   56   16   75   36   89   98   76   81   4   94   42   30   78   33   29   53   63   2   87   37   80   84   72   41   9   61   73   95   65   13   58   96   98   1   21   74   65   35   5   73   11   51   87   41   12   8   20   31   31   15   95   22   73   79   88   34   8   11   49   34   90   59   96   60   55   75   77   44   2   7   85   57   74   29   70   59   19   39   26   26   47   80   90   36   58   47   9   72   72   66   33   93   75   64   81   9   23   37   13   12   14   62   91   36   91   33   15   34   36   99   3   95   69   58   52   30   50   84   10   84   33   21   39   44   58   30   38   34   83   27   82   17   7}
................................................................................
   647    695       lappend myres [format %.2f [set r]]
   648    696     }
   649    697     set myres
   650    698   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
   651    699   
   652    700   do_test 1.3.7.6 {
   653    701     set myres {}
   654         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
          702  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2}] {
   655    703       lappend myres [format %.2f [set r]]
   656    704     }
   657    705     set myres
   658    706   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
   659    707   
   660    708   do_test 1.3.8.1 {
   661    709     set myres {}
................................................................................
   773    821     SELECT last_value(a+b) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
   774    822   } {1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229}
   775    823   
   776    824   do_execsql_test 1.3.9.6 {
   777    825     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2
   778    826   } {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
   779    827   
          828  +do_execsql_test 1.3.10.1 {
          829  +  SELECT nth_value(b,b+1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2
          830  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
          831  +
          832  +do_execsql_test 1.3.9.2 {
          833  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2
          834  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
          835  +
          836  +do_execsql_test 1.3.9.3 {
          837  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
          838  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
          839  +
          840  +do_execsql_test 1.3.9.4 {
          841  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
          842  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
          843  +
          844  +do_execsql_test 1.3.9.5 {
          845  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
          846  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
          847  +
          848  +do_execsql_test 1.3.9.6 {
          849  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2
          850  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
          851  +
   780    852   do_execsql_test 1.4.2.1 {
   781    853     SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
   782    854   } {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   95   95   84   84   84   84   84   84   84   84   83   83   83   83   83   83   83   83   83   82   82   17   7}
   783    855   
   784    856   do_execsql_test 1.4.2.2 {
   785    857     SELECT min(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
   786    858   } {0   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7}
................................................................................
   887    959       lappend myres [format %.2f [set r]]
   888    960     }
   889    961     set myres
   890    962   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
   891    963   
   892    964   do_test 1.4.7.6 {
   893    965     set myres {}
   894         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
          966  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2}] {
   895    967       lappend myres [format %.2f [set r]]
   896    968     }
   897    969     set myres
   898    970   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
   899    971   
   900    972   do_test 1.4.8.1 {
   901    973     set myres {}
................................................................................
  1013   1085     SELECT last_value(a+b) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
  1014   1086   } {229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229}
  1015   1087   
  1016   1088   do_execsql_test 1.4.9.6 {
  1017   1089     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2
  1018   1090   } {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
  1019   1091   
         1092  +do_execsql_test 1.4.10.1 {
         1093  +  SELECT nth_value(b,b+1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2
         1094  +} {0   4   61   42   8   35   77   7   81   96   9   11   89   32   53   91   30   51   56   54   73   22   59   75   74   78   8   16   65   15   8   31   87   90   12   32   96   74   76   37   85   90   15   35   2   60   36   75   9   51   47   63   51   90   26   42   26   8   76   80   90   37   87   56   79   5   87   8   2   39   73   64   36   90   72   78   36   73   51   33   20   41   2   26   37   33   8   14   33   81   55   1   9   12   39   64   87   72   34   82   21   34   99   62   74   41   69   22   75   27   58   8   79   77   26   26   55   {}   29   30   7   {}   66   55   2   34   64   {}   33   {}   44   84   {}   {}   95   85   19   {}   83   {}   91   {}   {}   9   50   91   33   34   {}   {}   84   {}   7   9   {}   {}   {}   44   {}   {}   {}   {}   91   84   {}   95   95   52   {}   {}   {}   {}   {}   21   {}   {}   {}   58   {}   {}   {}   {}   {}   {}   {}   83   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         1095  +
         1096  +do_execsql_test 1.4.9.2 {
         1097  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2
         1098  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   21   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   12   {}   62   {}   {}   {}   12   {}   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   53   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   95   {}   {}   {}   {}   {}   {}   85   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   56   {}   36   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   57   {}   {}   {}   {}   {}   7   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   8   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   9   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         1099  +
         1100  +do_execsql_test 1.4.9.3 {
         1101  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
         1102  +} {0   1   2   2   3   3   5   6   7   8   8   9   9   10   11   12   12   13   13   14   15   16   16   17   19   20   21   22   23   23   24   25   26   26   27   28   29   30   31   31   33   33   33   33   34   34   35   36   36   36   37   37   38   39   39   40   41   41   42   43   44   46   47   47   47   47   49   51   52   53   54   55   56   56   57   58   58   58   59   59   59   61   61   62   63   65   65   65   67   69   70   72   72   73   74   74   74   74   75   76   77   78   80   81   81   83   84   84   84   85   85   87   87   88   89   89   90   90   90   91   91   91   93   93   95   95   96   96   97   98   99   99   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         1103  +
         1104  +do_execsql_test 1.4.9.4 {
         1105  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
         1106  +} {0   80   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   11   61   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   12   12   72   82   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   13   23   63   73   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   74   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   35   85   85   95   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   76   86   96   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   37   47   47   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   58   68   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   39   49   59   99   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         1107  +
         1108  +do_execsql_test 1.4.9.5 {
         1109  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
         1110  +} {0   64   42   81   94   1   44   73   74   44   85   22   33   41   72   93   34   65   54   5   15   81   15   63   84   21   2   62   54   93   43   33   2   75   16   86   23   12   85   62   13   53   94   12   75   23   73   72   96   46   33   55   25   26   74   34   87   84   87   55   53   25   84   75   56   66   54   36   97   55   78   84   84   95   74   65   17   87   77   96   8   47   95   34   89   98   7   46   6   96   8   47   95   56   89   59   36   36   78   96   89   29   37   95   56   39   {}   8   58   67   85   86   {}   58   49   {}   29   76   {}   77   {}   78   56   98   36   97   {}   59   89   89   47   78   {}   {}   {}   38   68   58   {}   58   38   {}   98   {}   {}   {}   19   57   9   {}   9   {}   {}   7   {}   {}   {}   39   89   38   78   39   {}   {}   8   19   {}   {}   {}   {}   89   {}   39   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   9   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         1111  +
         1112  +do_execsql_test 1.4.9.6 {
         1113  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2
         1114  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         1115  +
  1020   1116   do_execsql_test 1.5.2.1 {
  1021   1117     SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
  1022   1118   } {{}   {}   {}   {}   0   74   74   74   74   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99}
  1023   1119   
  1024   1120   do_execsql_test 1.5.2.2 {
  1025   1121     SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
  1026   1122   } {{}   {}   {}   {}   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0}
................................................................................
  1127   1223       lappend myres [format %.2f [set r]]
  1128   1224     }
  1129   1225     set myres
  1130   1226   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
  1131   1227   
  1132   1228   do_test 1.5.7.6 {
  1133   1229     set myres {}
  1134         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
         1230  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2}] {
  1135   1231       lappend myres [format %.2f [set r]]
  1136   1232     }
  1137   1233     set myres
  1138   1234   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
  1139   1235   
  1140   1236   do_test 1.5.8.1 {
  1141   1237     set myres {}
................................................................................
  1253   1349     SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
  1254   1350   } {{}   {}   {}   {}   1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163}
  1255   1351   
  1256   1352   do_execsql_test 1.5.9.6 {
  1257   1353     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2
  1258   1354   } {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
  1259   1355   
         1356  +do_execsql_test 1.5.10.1 {
         1357  +  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2
         1358  +} {{}   {}   {}   {}   {}   {}   {}   {}   41   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   2   {}   {}   {}   {}   {}   46   62   62   {}   {}   {}   {}   33   {}   {}   {}   {}   {}   78   {}   61   {}   59   77   {}   74   {}   27   {}   {}   39   67   {}   54   85   74   90   7   61   90   62   {}   93   {}   {}   {}   {}   23   {}   74   93   {}   23   29   3   1   41   {}   65   33   2   98   86   89   25   76   {}   40   38   15   {}   {}   74   97   81   40   16   99   76   96   32   80   86   59   2   99   84   84   39   65   27   76   78   84   16   2   96   59   16   41   28   13   89   22   4   42   91   41   33   87   55   81   29   36   28   6   47   97   97   85   33   41   93   15   85   89   98   98   43   23   73   4   56   29   89   46   65   38   59   68   47   9   93   9   23   39   16   93   98   74   65   75   15   56   93   12   2   81   2   23   97   47   91   15   93   35   16   63   8   53   91   33}
         1359  +
         1360  +do_execsql_test 1.5.9.2 {
         1361  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2
         1362  +} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   81   {}   {}   {}   {}   {}   {}   21   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   12   {}   {}   {}   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   73   {}   23   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   15   {}   {}   {}   {}   {}   {}   55   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   29   29   {}   {}   {}}
         1363  +
         1364  +do_execsql_test 1.5.9.3 {
         1365  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
         1366  +} {{}   {}   {}   {}   {}   {}   {}   2   2   2   3   3   3   3   4   4   4   5   5   5   6   7   7   7   7   7   7   7   8   8   8   8   8   8   8   9   9   10   11   11   11   11   12   12   12   12   12   13   13   13   13   13   14   15   15   15   15   15   15   15   15   16   16   16   16   16   16   16   16   16   16   17   17   19   19   19   19   20   20   21   21   21   21   21   22   22   22   22   23   23   23   23   23   25   25   26   26   26   26   26   27   27   28   29   29   29   29   30   30   30   30   30   30   30   30   31   31   31   31   31   32   32   33   33   33   33   33   33   33   33   34   34   34   34   35   35   35   36   36   36   36   36   36   36   36   36   36   36   36   37   37   37   37   38   38   38   39   39   39   39   39   40   40   40   40   41   41   41   41   41   41   42   43   43   43   43   43   43   44   44   44   44   44   46   46   46   46   47   47   47   47   47   47   47   47   47   47   49   49   49}
         1367  +
         1368  +do_execsql_test 1.5.9.4 {
         1369  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
         1370  +} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         1371  +
         1372  +do_execsql_test 1.5.9.5 {
         1373  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
         1374  +} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   90   1   30   {}   {}   {}   {}   30   {}   {}   {}   1   40   {}   50   11   81   {}   40   {}   50   81   40   {}   {}   50   {}   {}   {}   41   81   {}   41   {}   2   30   2   81   82   {}   {}   10   {}   {}   81   {}   41   10   81   30   81   {}   {}   3   23   {}   3   61   80   {}   {}   3   91   91   72   3   63   30   91   94   94   72   91   73   91   84   84   33   41   1   33   84   73   73   91   20   41   84   33   33   84   33   41   84   21   44   22   90   22   81   81   74   93   93   93   81   21   83   44   44   21   21   21   13   21   21   34   11   34   73   74   2   60   2   34   2   34   74   60   23   2   2   2   11   91   60   62   73   74   70   51   65   74   93   65   70   34   70   93   93   93   62   35   44   43   12   35   41   43   44   44   41   80   54   72   43   41   43   91   12   80   80   35   33   12}
         1375  +
         1376  +do_execsql_test 1.5.9.6 {
         1377  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2
         1378  +} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         1379  +
  1260   1380   do_execsql_test 1.6.2.1 {
  1261   1381     SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
  1262   1382   } {{}   {}   0   74   74   74   74   99   99   99   33   89   89   96   96   96   68   68   68   91   91   91   99   99   99   97   78   78   97   97   97   67   93   93   93   84   77   23   93   93   93   65   47   86   86   86   91   91   91   85   85   85   59   59   56   56   91   91   91   90   90   55   89   89   89   47   56   56   56   56   56   75   75   89   98   98   98   81   94   94   94   78   78   78   53   63   63   87   87   87   84   84   84   72   61   73   95   95   95   65   96   98   98   98   74   74   74   65   73   73   73   87   87   87   41   20   31   31   31   95   95   95   79   88   88   88   34   49   49   90   90   96   96   96   75   77   77   77   44   85   85   85   74   74   70   70   59   39   39   47   80   90   90   90   58   58   72   72   72   72   93   93   93   81   81   81   37   37   37   14   62   91   91   91   91   91   34   36   99   99   99   95   95   69   58   52   84   84   84   84   84   39   44   58   58   58   38   83   83   83}
  1263   1383   
  1264   1384   do_execsql_test 1.6.2.2 {
  1265   1385     SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
  1266   1386   } {{}   {}   0   0   0   41   23   23   23   26   2   2   2   81   59   38   38   38   39   39   46   6   6   6   27   27   27   46   54   8   8   8   29   29   77   23   16   16   16   16   35   35   7   7   7   61   61   61   24   24   24   43   12   12   12   3   3   3   22   22   15   15   15   25   25   1   1   1   40   40   16   16   16   36   36   76   76   4   4   4   30   30   30   29   29   29   2   2   2   37   37   72   41   9   9   9   61   65   13   13   13   58   1   1   1   21   35   5   5   5   11   11   41   12   8   8   8   20   15   15   15   22   22   73   34   8   8   8   11   34   34   59   59   55   55   55   44   2   2   2   7   57   29   29   29   19   19   19   26   26   26   47   36   36   36   9   9   9   66   33   33   33   64   64   9   9   9   13   12   12   12   14   36   36   33   15   15   15   34   3   3   3   58   52   30   30   30   10   10   10   21   21   21   39   30   30   30   34   27   27}
................................................................................
  1367   1487       lappend myres [format %.2f [set r]]
  1368   1488     }
  1369   1489     set myres
  1370   1490   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
  1371   1491   
  1372   1492   do_test 1.6.7.6 {
  1373   1493     set myres {}
  1374         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
         1494  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING) FROM t2}] {
  1375   1495       lappend myres [format %.2f [set r]]
  1376   1496     }
  1377   1497     set myres
  1378   1498   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
  1379   1499   
  1380   1500   do_test 1.6.8.1 {
  1381   1501     set myres {}
................................................................................
  1493   1613     SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
  1494   1614   } {{}   {}   1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276}
  1495   1615   
  1496   1616   do_execsql_test 1.6.9.6 {
  1497   1617     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING) FROM t2
  1498   1618   } {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
  1499   1619   
         1620  +do_execsql_test 1.6.10.1 {
         1621  +  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING) FROM t2
         1622  +} {{}   {}   {}   {}   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   89   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   53   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   77   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         1623  +
         1624  +do_execsql_test 1.6.9.2 {
         1625  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING) FROM t2
         1626  +} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   22   {}   {}   {}   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         1627  +
         1628  +do_execsql_test 1.6.9.3 {
         1629  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
         1630  +} {{}   {}   {}   {}   1   2   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         1631  +
         1632  +do_execsql_test 1.6.9.4 {
         1633  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
         1634  +} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         1635  +
         1636  +do_execsql_test 1.6.9.5 {
         1637  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
         1638  +} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   91   {}   {}   {}   {}   {}   22   {}   {}   {}   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         1639  +
         1640  +do_execsql_test 1.6.9.6 {
         1641  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING) FROM t2
         1642  +} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         1643  +
  1500   1644   do_execsql_test 1.7.2.1 {
  1501   1645     SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
  1502   1646   } {0   74   74   74   74   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99}
  1503   1647   
  1504   1648   do_execsql_test 1.7.2.2 {
  1505   1649     SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
  1506   1650   } {0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0}
................................................................................
  1607   1751       lappend myres [format %.2f [set r]]
  1608   1752     }
  1609   1753     set myres
  1610   1754   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
  1611   1755   
  1612   1756   do_test 1.7.7.6 {
  1613   1757     set myres {}
  1614         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
         1758  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2}] {
  1615   1759       lappend myres [format %.2f [set r]]
  1616   1760     }
  1617   1761     set myres
  1618   1762   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
  1619   1763   
  1620   1764   do_test 1.7.8.1 {
  1621   1765     set myres {}
................................................................................
  1733   1877     SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
  1734   1878   } {1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229}
  1735   1879   
  1736   1880   do_execsql_test 1.7.9.6 {
  1737   1881     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
  1738   1882   } {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
  1739   1883   
         1884  +do_execsql_test 1.7.10.1 {
         1885  +  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
         1886  +} {0   {}   {}   {}   {}   {}   {}   {}   41   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   2   {}   29   {}   {}   {}   46   62   62   {}   {}   16   {}   33   {}   {}   {}   {}   {}   78   {}   61   {}   59   77   {}   74   {}   27   {}   22   39   67   {}   54   85   74   90   7   61   90   62   {}   93   {}   {}   {}   {}   23   {}   74   93   30   23   29   3   1   41   {}   65   33   2   98   86   89   25   76   {}   40   38   15   13   96   74   97   81   40   16   99   76   96   32   80   86   59   2   99   84   84   39   65   27   76   78   84   16   2   96   59   16   41   28   13   89   22   4   42   91   41   33   87   55   81   29   36   28   6   47   97   97   85   33   41   93   15   85   89   98   98   43   23   73   4   56   29   89   46   65   38   59   68   47   9   93   9   23   39   16   93   98   74   65   75   15   56   93   12   2   81   2   23   97   47   91   15   93   35   16   63   8   53   91   33}
         1887  +
         1888  +do_execsql_test 1.7.9.2 {
         1889  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
         1890  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   81   {}   21   {}   {}   {}   {}   21   {}   {}   {}   21   {}   {}   {}   {}   {}   {}   12   {}   {}   {}   12   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   23   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   73   {}   23   {}   {}   {}   {}   {}   {}   {}   {}   74   {}   {}   {}   {}   {}   {}   {}   {}   64   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   15   {}   {}   {}   {}   {}   {}   55   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   27   47   {}   {}   {}   {}   {}   {}   {}   {}   {}   98   {}   98   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   29   {}   {}   {}   {}   {}   {}   {}   29   29   {}   {}   {}}
         1891  +
         1892  +do_execsql_test 1.7.9.3 {
         1893  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
         1894  +} {0   1   1   1   1   1   2   2   2   2   3   3   3   3   4   4   4   5   5   5   6   7   7   7   7   7   7   7   8   8   8   8   8   8   8   9   9   10   11   11   11   11   12   12   12   12   12   13   13   13   13   13   14   15   15   15   15   15   15   15   15   16   16   16   16   16   16   16   16   16   16   17   17   19   19   19   19   20   20   21   21   21   21   21   22   22   22   22   23   23   23   23   23   25   25   26   26   26   26   26   27   27   28   29   29   29   29   30   30   30   30   30   30   30   30   31   31   31   31   31   32   32   33   33   33   33   33   33   33   33   34   34   34   34   35   35   35   36   36   36   36   36   36   36   36   36   36   36   36   37   37   37   37   38   38   38   39   39   39   39   39   40   40   40   40   41   41   41   41   41   41   42   43   43   43   43   43   43   44   44   44   44   44   46   46   46   46   47   47   47   47   47   47   47   47   47   47   49   49   49}
         1895  +
         1896  +do_execsql_test 1.7.9.4 {
         1897  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
         1898  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         1899  +
         1900  +do_execsql_test 1.7.9.5 {
         1901  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
         1902  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   90   1   30   {}   {}   {}   31   30   {}   {}   {}   1   40   {}   50   11   81   42   40   {}   50   81   40   {}   {}   50   {}   52   {}   41   81   {}   41   {}   2   30   2   81   82   53   {}   10   {}   {}   81   {}   41   10   81   30   81   {}   3   3   23   {}   3   61   80   {}   94   3   91   91   72   3   63   30   91   94   94   72   91   73   91   84   84   33   41   1   33   84   73   73   91   20   41   84   33   33   84   33   41   84   21   44   22   90   22   81   81   74   93   93   93   81   21   83   44   44   21   21   21   13   21   21   34   11   34   73   74   2   60   2   34   2   34   74   60   23   2   2   2   11   91   60   62   73   74   70   51   65   74   93   65   70   34   70   93   93   93   62   35   44   43   12   35   41   43   44   44   41   80   54   72   43   41   43   91   12   80   80   35   33   12}
         1903  +
         1904  +do_execsql_test 1.7.9.6 {
         1905  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
         1906  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         1907  +
  1740   1908   do_execsql_test 1.8.2.1 {
  1741   1909     SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
  1742   1910   } {0   74   74   74   74   99   99   99   99   99   89   96   96   96   96   96   68   91   91   91   99   99   99   99   99   97   97   97   97   97   97   93   93   93   93   84   93   93   93   93   93   86   86   86   91   91   91   91   91   85   85   85   59   59   91   91   91   91   91   90   90   89   89   89   89   56   56   56   56   75   75   89   98   98   98   98   98   94   94   94   94   78   78   78   63   87   87   87   87   87   84   84   84   73   95   95   95   95   96   98   98   98   98   98   74   74   74   73   73   87   87   87   87   87   41   31   31   95   95   95   95   95   88   88   88   88   49   90   90   96   96   96   96   96   77   77   77   85   85   85   85   85   74   74   70   70   59   47   80   90   90   90   90   90   72   72   72   72   93   93   93   93   93   81   81   81   37   37   62   91   91   91   91   91   91   91   99   99   99   99   99   95   95   69   84   84   84   84   84   84   84   58   58   58   58   83   83   83   83   83}
  1743   1911   
  1744   1912   do_execsql_test 1.8.2.2 {
  1745   1913     SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
  1746   1914   } {0   0   0   0   0   23   23   23   2   2   2   2   2   38   38   38   38   38   39   6   6   6   6   6   27   27   27   8   8   8   8   8   29   23   16   16   16   16   16   16   7   7   7   7   7   61   24   24   24   24   12   12   12   3   3   3   3   3   15   15   15   15   15   1   1   1   1   1   16   16   16   16   16   36   36   4   4   4   4   4   30   29   29   29   2   2   2   2   2   37   37   9   9   9   9   9   13   13   13   13   1   1   1   1   1   5   5   5   5   5   11   11   8   8   8   8   8   15   15   15   15   22   22   8   8   8   8   8   11   34   34   55   55   55   44   2   2   2   2   2   7   29   29   19   19   19   19   19   26   26   26   36   36   9   9   9   9   9   33   33   33   33   9   9   9   9   9   12   12   12   12   14   33   15   15   15   15   3   3   3   3   3   30   30   30   10   10   10   10   10   21   21   21   30   30   30   27   27   17   7}
................................................................................
  1847   2015       lappend myres [format %.2f [set r]]
  1848   2016     }
  1849   2017     set myres
  1850   2018   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
  1851   2019   
  1852   2020   do_test 1.8.7.6 {
  1853   2021     set myres {}
  1854         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
         2022  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW) FROM t2}] {
  1855   2023       lappend myres [format %.2f [set r]]
  1856   2024     }
  1857   2025     set myres
  1858   2026   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
  1859   2027   
  1860   2028   do_test 1.8.8.1 {
  1861   2029     set myres {}
................................................................................
  1973   2141     SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
  1974   2142   } {1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229}
  1975   2143   
  1976   2144   do_execsql_test 1.8.9.6 {
  1977   2145     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW) FROM t2
  1978   2146   } {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
  1979   2147   
         2148  +do_execsql_test 1.8.10.1 {
         2149  +  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW) FROM t2
         2150  +} {0   {}   {}   {}   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   56   {}   {}   {}   {}   {}   {}   {}   {}   {}   89   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   4   {}   {}   {}   {}   {}   {}   {}   {}   53   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   77   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   99   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2151  +
         2152  +do_execsql_test 1.8.9.2 {
         2153  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW) FROM t2
         2154  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   22   {}   {}   {}   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   43   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   33   {}   {}   {}   {}   {}   {}   {}   {}   4   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2155  +
         2156  +do_execsql_test 1.8.9.3 {
         2157  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
         2158  +} {0   1   1   1   1   2   2   3   4   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2159  +
         2160  +do_execsql_test 1.8.9.4 {
         2161  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
         2162  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2163  +
         2164  +do_execsql_test 1.8.9.5 {
         2165  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
         2166  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   91   {}   {}   {}   {}   {}   22   {}   {}   {}   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   43   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   33   {}   {}   {}   {}   {}   {}   {}   {}   4   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2167  +
         2168  +do_execsql_test 1.8.9.6 {
         2169  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW) FROM t2
         2170  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2171  +
  1980   2172   do_execsql_test 1.9.2.1 {
  1981   2173     SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
  1982   2174   } {0   74   41   74   23   99   26   33   2   89   81   96   59   38   68   39   62   91   46   6   99   97   27   46   78   54   97   8   67   29   93   84   77   23   16   16   93   65   35   47   7   86   74   61   91   85   24   85   43   59   12   32   56   3   91   22   90   55   15   28   89   25   47   1   56   40   43   56   16   75   36   89   98   76   81   4   94   42   30   78   33   29   53   63   2   87   37   80   84   72   41   9   61   73   95   65   13   58   96   98   1   21   74   65   35   5   73   11   51   87   41   12   8   20   31   31   15   95   22   73   79   88   34   8   11   49   34   90   59   96   60   55   75   77   44   2   7   85   57   74   29   70   59   19   39   26   26   47   80   90   36   58   47   9   72   72   66   33   93   75   64   81   9   23   37   13   12   14   62   91   36   91   33   15   34   36   99   3   95   69   58   52   30   50   84   10   84   33   21   39   44   58   30   38   34   83   27   82   17   7}
  1983   2175   
  1984   2176   do_execsql_test 1.9.2.2 {
  1985   2177     SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
  1986   2178   } {0   74   41   74   23   99   26   33   2   89   81   96   59   38   68   39   62   91   46   6   99   97   27   46   78   54   97   8   67   29   93   84   77   23   16   16   93   65   35   47   7   86   74   61   91   85   24   85   43   59   12   32   56   3   91   22   90   55   15   28   89   25   47   1   56   40   43   56   16   75   36   89   98   76   81   4   94   42   30   78   33   29   53   63   2   87   37   80   84   72   41   9   61   73   95   65   13   58   96   98   1   21   74   65   35   5   73   11   51   87   41   12   8   20   31   31   15   95   22   73   79   88   34   8   11   49   34   90   59   96   60   55   75   77   44   2   7   85   57   74   29   70   59   19   39   26   26   47   80   90   36   58   47   9   72   72   66   33   93   75   64   81   9   23   37   13   12   14   62   91   36   91   33   15   34   36   99   3   95   69   58   52   30   50   84   10   84   33   21   39   44   58   30   38   34   83   27   82   17   7}
................................................................................
  2087   2279       lappend myres [format %.2f [set r]]
  2088   2280     }
  2089   2281     set myres
  2090   2282   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
  2091   2283   
  2092   2284   do_test 1.9.7.6 {
  2093   2285     set myres {}
  2094         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
         2286  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2}] {
  2095   2287       lappend myres [format %.2f [set r]]
  2096   2288     }
  2097   2289     set myres
  2098   2290   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
  2099   2291   
  2100   2292   do_test 1.9.8.1 {
  2101   2293     set myres {}
................................................................................
  2213   2405     SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
  2214   2406   } {1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229}
  2215   2407   
  2216   2408   do_execsql_test 1.9.9.6 {
  2217   2409     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2
  2218   2410   } {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
  2219   2411   
         2412  +do_execsql_test 1.9.10.1 {
         2413  +  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2
         2414  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2415  +
         2416  +do_execsql_test 1.9.9.2 {
         2417  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2
         2418  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2419  +
         2420  +do_execsql_test 1.9.9.3 {
         2421  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
         2422  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2423  +
         2424  +do_execsql_test 1.9.9.4 {
         2425  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
         2426  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2427  +
         2428  +do_execsql_test 1.9.9.5 {
         2429  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
         2430  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2431  +
         2432  +do_execsql_test 1.9.9.6 {
         2433  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2
         2434  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2435  +
  2220   2436   do_execsql_test 1.10.2.1 {
  2221   2437     SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
  2222   2438   } {74   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99}
  2223   2439   
  2224   2440   do_execsql_test 1.10.2.2 {
  2225   2441     SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
  2226   2442   } {0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0}
................................................................................
  2327   2543       lappend myres [format %.2f [set r]]
  2328   2544     }
  2329   2545     set myres
  2330   2546   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
  2331   2547   
  2332   2548   do_test 1.10.7.6 {
  2333   2549     set myres {}
  2334         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
         2550  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2}] {
  2335   2551       lappend myres [format %.2f [set r]]
  2336   2552     }
  2337   2553     set myres
  2338   2554   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
  2339   2555   
  2340   2556   do_test 1.10.8.1 {
  2341   2557     set myres {}
................................................................................
  2453   2669     SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
  2454   2670   } {168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229   229   229   229   229}
  2455   2671   
  2456   2672   do_execsql_test 1.10.9.6 {
  2457   2673     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2
  2458   2674   } {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
  2459   2675   
         2676  +do_execsql_test 1.10.10.1 {
         2677  +  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2
         2678  +} {0   {}   {}   {}   {}   {}   {}   {}   41   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   2   {}   29   {}   {}   {}   46   62   62   {}   {}   16   {}   33   {}   {}   {}   {}   {}   78   {}   61   {}   59   77   90   74   {}   27   {}   22   39   67   {}   54   85   74   90   7   61   90   62   {}   93   {}   {}   94   {}   23   {}   74   93   30   23   29   3   1   41   80   65   33   2   98   86   89   25   76   65   40   38   15   13   96   74   97   81   40   16   99   76   96   32   80   86   59   2   99   84   84   39   65   27   76   78   84   16   2   96   59   16   41   28   13   89   22   4   42   91   41   33   87   55   81   29   36   28   6   47   97   97   85   33   41   93   15   85   89   98   98   43   23   73   4   56   29   89   46   65   38   59   68   47   9   93   9   23   39   16   93   98   74   65   75   15   56   93   12   2   81   2   23   97   47   91   15   93   35   16   63   8   53   91   33}
         2679  +
         2680  +do_execsql_test 1.10.9.2 {
         2681  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2
         2682  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   81   {}   21   {}   {}   {}   {}   21   {}   {}   {}   21   12   {}   {}   {}   {}   {}   12   {}   72   {}   12   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   23   {}   {}   {}   {}   {}   73   {}   {}   {}   {}   {}   73   {}   23   {}   {}   {}   {}   {}   {}   {}   {}   74   {}   {}   {}   {}   {}   {}   {}   {}   64   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   15   55   {}   {}   {}   {}   {}   55   {}   {}   {}   {}   16   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   27   47   {}   {}   {}   {}   {}   {}   {}   {}   {}   98   {}   98   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   29   {}   {}   {}   {}   {}   9   {}   29   29   {}   {}   {}}
         2683  +
         2684  +do_execsql_test 1.10.9.3 {
         2685  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
         2686  +} {0   1   1   1   1   1   2   2   2   2   3   3   3   3   4   4   4   5   5   5   6   7   7   7   7   7   7   7   8   8   8   8   8   8   8   9   9   10   11   11   11   11   12   12   12   12   12   13   13   13   13   13   14   15   15   15   15   15   15   15   15   16   16   16   16   16   16   16   16   16   16   17   17   19   19   19   19   20   20   21   21   21   21   21   22   22   22   22   23   23   23   23   23   25   25   26   26   26   26   26   27   27   28   29   29   29   29   30   30   30   30   30   30   30   30   31   31   31   31   31   32   32   33   33   33   33   33   33   33   33   34   34   34   34   35   35   35   36   36   36   36   36   36   36   36   36   36   36   36   37   37   37   37   38   38   38   39   39   39   39   39   40   40   40   40   41   41   41   41   41   41   42   43   43   43   43   43   43   44   44   44   44   44   46   46   46   46   47   47   47   47   47   47   47   47   47   47   49   49   49}
         2687  +
         2688  +do_execsql_test 1.10.9.4 {
         2689  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
         2690  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   1   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   2   2   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   13   13   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2691  +
         2692  +do_execsql_test 1.10.9.5 {
         2693  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
         2694  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   90   1   30   {}   {}   31   31   30   {}   {}   {}   1   40   {}   50   11   81   42   40   {}   50   81   40   {}   {}   50   {}   52   {}   41   81   {}   41   {}   2   30   2   81   82   53   {}   10   {}   {}   81   {}   41   10   81   30   81   {}   3   3   23   94   3   61   80   {}   94   3   91   91   72   3   63   30   91   94   94   72   91   73   91   84   84   33   41   1   33   84   73   73   91   20   41   84   33   33   84   33   41   84   21   44   22   90   22   81   81   74   93   93   93   81   21   83   44   44   21   21   21   13   21   21   34   11   34   73   74   2   60   2   34   2   34   74   60   23   2   2   2   11   91   60   62   73   74   70   51   65   74   93   65   70   34   70   93   93   93   62   35   44   43   12   35   41   43   44   44   41   80   54   72   43   41   43   91   12   80   80   35   33   12}
         2695  +
         2696  +do_execsql_test 1.10.9.6 {
         2697  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2
         2698  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2699  +
  2460   2700   do_execsql_test 1.11.2.1 {
  2461   2701     SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
  2462   2702   } {74   74   74   99   99   99   99   99   99   99   96   96   96   96   96   96   91   91   99   99   99   99   99   99   99   97   97   97   97   97   97   93   93   93   93   93   93   93   93   93   93   86   91   91   91   91   91   91   91   85   85   85   91   91   91   91   91   91   91   90   90   89   89   89   89   56   56   75   75   89   98   98   98   98   98   98   98   94   94   94   94   78   78   87   87   87   87   87   87   87   84   84   95   95   95   95   96   98   98   98   98   98   98   98   74   74   74   87   87   87   87   87   87   87   41   95   95   95   95   95   95   95   88   88   88   90   90   96   96   96   96   96   96   96   77   85   85   85   85   85   85   85   74   74   70   70   80   90   90   90   90   90   90   90   72   72   93   93   93   93   93   93   93   81   81   81   62   91   91   91   91   91   91   91   99   99   99   99   99   99   99   95   95   84   84   84   84   84   84   84   84   58   58   83   83   83   83   83   83   83}
  2463   2703   
  2464   2704   do_execsql_test 1.11.2.2 {
  2465   2705     SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
  2466   2706   } {0   0   0   0   0   23   2   2   2   2   2   2   2   38   38   38   38   6   6   6   6   6   6   6   27   8   8   8   8   8   8   8   16   16   16   16   16   16   7   7   7   7   7   7   7   24   24   24   12   12   12   3   3   3   3   3   3   3   15   15   15   1   1   1   1   1   1   1   16   16   16   16   16   4   4   4   4   4   4   4   29   29   2   2   2   2   2   2   2   9   9   9   9   9   9   9   13   13   1   1   1   1   1   1   1   5   5   5   5   5   8   8   8   8   8   8   8   15   15   15   15   8   8   8   8   8   8   8   11   34   34   55   44   2   2   2   2   2   2   2   7   19   19   19   19   19   19   19   26   26   26   9   9   9   9   9   9   9   33   33   9   9   9   9   9   9   9   12   12   12   12   14   15   15   15   3   3   3   3   3   3   3   30   10   10   10   10   10   10   10   21   21   21   30   27   27   17   7   7   7}
................................................................................
  2567   2807       lappend myres [format %.2f [set r]]
  2568   2808     }
  2569   2809     set myres
  2570   2810   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
  2571   2811   
  2572   2812   do_test 1.11.7.6 {
  2573   2813     set myres {}
  2574         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
         2814  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING) FROM t2}] {
  2575   2815       lappend myres [format %.2f [set r]]
  2576   2816     }
  2577   2817     set myres
  2578   2818   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
  2579   2819   
  2580   2820   do_test 1.11.8.1 {
  2581   2821     set myres {}
................................................................................
  2693   2933     SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
  2694   2934   } {106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229   229   229}
  2695   2935   
  2696   2936   do_execsql_test 1.11.9.6 {
  2697   2937     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING) FROM t2
  2698   2938   } {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
  2699   2939   
         2940  +do_execsql_test 1.11.10.1 {
         2941  +  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING) FROM t2
         2942  +} {0   {}   {}   {}   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   97   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   56   {}   {}   {}   {}   {}   {}   {}   {}   {}   89   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   4   {}   {}   {}   {}   {}   {}   {}   {}   53   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   {}   {}   {}   {}   73   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   77   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   99   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2943  +
         2944  +do_execsql_test 1.11.9.2 {
         2945  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING) FROM t2
         2946  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   12   {}   {}   {}   {}   {}   22   {}   {}   {}   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   43   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   33   {}   {}   {}   {}   {}   {}   {}   {}   4   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   15   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2947  +
         2948  +do_execsql_test 1.11.9.3 {
         2949  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
         2950  +} {0   1   1   1   1   2   2   3   4   6   7   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2951  +
         2952  +do_execsql_test 1.11.9.4 {
         2953  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
         2954  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   1   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   2   2   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   13   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2955  +
         2956  +do_execsql_test 1.11.9.5 {
         2957  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
         2958  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   91   {}   {}   {}   {}   {}   22   {}   {}   {}   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   43   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   33   {}   {}   {}   {}   {}   {}   {}   {}   4   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   15   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   16   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2959  +
         2960  +do_execsql_test 1.11.9.6 {
         2961  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING) FROM t2
         2962  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         2963  +
  2700   2964   do_execsql_test 1.12.2.1 {
  2701   2965     SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
  2702   2966   } {74   99   99   99   99   99   89   96   96   96   96   96   68   91   91   91   99   99   99   99   99   97   97   97   97   97   97   93   93   93   93   84   93   93   93   93   93   86   86   86   91   91   91   91   91   85   85   85   59   59   91   91   91   91   91   90   90   89   89   89   89   56   56   56   56   75   75   89   98   98   98   98   98   94   94   94   94   78   78   78   63   87   87   87   87   87   84   84   84   73   95   95   95   95   96   98   98   98   98   98   74   74   74   73   73   87   87   87   87   87   41   31   31   95   95   95   95   95   88   88   88   88   49   90   90   96   96   96   96   96   77   77   77   85   85   85   85   85   74   74   70   70   59   47   80   90   90   90   90   90   72   72   72   72   93   93   93   93   93   81   81   81   37   37   62   91   91   91   91   91   91   91   99   99   99   99   99   95   95   69   84   84   84   84   84   84   84   58   58   58   58   83   83   83   83   83   82   82   17   7}
  2703   2967   
  2704   2968   do_execsql_test 1.12.2.2 {
  2705   2969     SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
  2706   2970   } {0   23   23   23   2   2   2   2   2   38   38   38   38   38   39   6   6   6   6   6   27   27   27   8   8   8   8   8   29   23   16   16   16   16   16   16   7   7   7   7   7   61   24   24   24   24   12   12   12   3   3   3   3   3   15   15   15   15   15   1   1   1   1   1   16   16   16   16   16   36   36   4   4   4   4   4   30   29   29   29   2   2   2   2   2   37   37   9   9   9   9   9   13   13   13   13   1   1   1   1   1   5   5   5   5   5   11   11   8   8   8   8   8   15   15   15   15   22   22   8   8   8   8   8   11   34   34   55   55   55   44   2   2   2   2   2   7   29   29   19   19   19   19   19   26   26   26   36   36   9   9   9   9   9   33   33   33   33   9   9   9   9   9   12   12   12   12   14   33   15   15   15   15   3   3   3   3   3   30   30   30   10   10   10   10   10   21   21   21   30   30   30   27   27   17   7   7   7   7   7}
................................................................................
  2807   3071       lappend myres [format %.2f [set r]]
  2808   3072     }
  2809   3073     set myres
  2810   3074   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
  2811   3075   
  2812   3076   do_test 1.12.7.6 {
  2813   3077     set myres {}
  2814         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
         3078  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING) FROM t2}] {
  2815   3079       lappend myres [format %.2f [set r]]
  2816   3080     }
  2817   3081     set myres
  2818   3082   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
  2819   3083   
  2820   3084   do_test 1.12.8.1 {
  2821   3085     set myres {}
................................................................................
  2933   3197     SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
  2934   3198   } {168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229   229   229   229   229}
  2935   3199   
  2936   3200   do_execsql_test 1.12.9.6 {
  2937   3201     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING) FROM t2
  2938   3202   } {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
  2939   3203   
         3204  +do_execsql_test 1.12.10.1 {
         3205  +  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING) FROM t2
         3206  +} {0   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   {}   {}   56   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   78   {}   {}   {}   {}   {}   {}   {}   {}   37   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   21   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   85   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         3207  +
         3208  +do_execsql_test 1.12.9.2 {
         3209  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING) FROM t2
         3210  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   21   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   12   {}   {}   {}   {}   {}   12   {}   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   53   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         3211  +
         3212  +do_execsql_test 1.12.9.3 {
         3213  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
         3214  +} {0   1   2   2   3   3   5   6   7   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         3215  +
         3216  +do_execsql_test 1.12.9.4 {
         3217  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
         3218  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   11   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   12   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   13   23   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         3219  +
         3220  +do_execsql_test 1.12.9.5 {
         3221  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
         3222  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   21   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   12   {}   {}   {}   {}   {}   12   {}   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   53   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   74   {}   {}   {}   {}   {}   {}   {}   {}   34   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         3223  +
         3224  +do_execsql_test 1.12.9.6 {
         3225  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING) FROM t2
         3226  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         3227  +
  2940   3228   do_execsql_test 1.13.2.1 {
  2941   3229     SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
  2942   3230   } {74   99   99   99   33   89   89   96   96   96   68   68   68   91   91   91   99   99   99   97   78   78   97   97   97   67   93   93   93   84   77   23   93   93   93   65   47   86   86   86   91   91   91   85   85   85   59   59   56   56   91   91   91   90   90   55   89   89   89   47   56   56   56   56   56   75   75   89   98   98   98   81   94   94   94   78   78   78   53   63   63   87   87   87   84   84   84   72   61   73   95   95   95   65   96   98   98   98   74   74   74   65   73   73   73   87   87   87   41   20   31   31   31   95   95   95   79   88   88   88   34   49   49   90   90   96   96   96   75   77   77   77   44   85   85   85   74   74   70   70   59   39   39   47   80   90   90   90   58   58   72   72   72   72   93   93   93   81   81   81   37   37   37   14   62   91   91   91   91   91   34   36   99   99   99   95   95   69   58   52   84   84   84   84   84   39   44   58   58   58   38   83   83   83   82   82   17   7   {}   {}}
  2943   3231   
  2944   3232   do_execsql_test 1.13.2.2 {
  2945   3233     SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
  2946   3234   } {23   23   23   26   2   2   2   81   59   38   38   38   39   39   46   6   6   6   27   27   27   46   54   8   8   8   29   29   77   23   16   16   16   16   35   35   7   7   7   61   61   61   24   24   24   43   12   12   12   3   3   3   22   22   15   15   15   25   25   1   1   1   40   40   16   16   16   36   36   76   76   4   4   4   30   30   30   29   29   29   2   2   2   37   37   72   41   9   9   9   61   65   13   13   13   58   1   1   1   21   35   5   5   5   11   11   41   12   8   8   8   20   15   15   15   22   22   73   34   8   8   8   11   34   34   59   59   55   55   55   44   2   2   2   7   57   29   29   29   19   19   19   26   26   26   47   36   36   36   9   9   9   66   33   33   33   64   64   9   9   9   13   12   12   12   14   36   36   33   15   15   15   34   3   3   3   58   52   30   30   30   10   10   10   21   21   21   39   30   30   30   34   27   27   17   7   7   7   {}   {}}
................................................................................
  3047   3335       lappend myres [format %.2f [set r]]
  3048   3336     }
  3049   3337     set myres
  3050   3338   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
  3051   3339   
  3052   3340   do_test 1.13.7.6 {
  3053   3341     set myres {}
  3054         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
         3342  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING) FROM t2}] {
  3055   3343       lappend myres [format %.2f [set r]]
  3056   3344     }
  3057   3345     set myres
  3058   3346   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
  3059   3347   
  3060   3348   do_test 1.13.8.1 {
  3061   3349     set myres {}
................................................................................
  3173   3461     SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
  3174   3462   } {168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229   229   229   {}   {}}
  3175   3463   
  3176   3464   do_execsql_test 1.13.9.6 {
  3177   3465     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING) FROM t2
  3178   3466   } {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
  3179   3467   
         3468  +do_execsql_test 1.13.10.1 {
         3469  +  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING) FROM t2
         3470  +} {41   {}   {}   {}   {}   {}   {}   {}   59   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   43   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   84   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   65   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   74   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         3471  +
         3472  +do_execsql_test 1.13.9.2 {
         3473  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING) FROM t2
         3474  +} {40   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   51   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   22   {}   {}   {}   {}   {}   2   {}   {}   {}   62   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         3475  +
         3476  +do_execsql_test 1.13.9.3 {
         3477  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
         3478  +} {1   2   2   3   4   5   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         3479  +
         3480  +do_execsql_test 1.13.9.4 {
         3481  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
         3482  +} {20   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   11   21   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   12   12   22   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         3483  +
         3484  +do_execsql_test 1.13.9.5 {
         3485  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
         3486  +} {40   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   51   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   22   {}   {}   {}   {}   {}   2   {}   {}   {}   62   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         3487  +
         3488  +do_execsql_test 1.13.9.6 {
         3489  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING) FROM t2
         3490  +} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         3491  +
  3180   3492   do_execsql_test 1.14.2.1 {
  3181   3493     SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
  3182   3494   } {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99}
  3183   3495   
  3184   3496   do_execsql_test 1.14.2.2 {
  3185   3497     SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
  3186   3498   } {0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0}
................................................................................
  3287   3599       lappend myres [format %.2f [set r]]
  3288   3600     }
  3289   3601     set myres
  3290   3602   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
  3291   3603   
  3292   3604   do_test 1.14.7.6 {
  3293   3605     set myres {}
  3294         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
         3606  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2}] {
  3295   3607       lappend myres [format %.2f [set r]]
  3296   3608     }
  3297   3609     set myres
  3298   3610   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
  3299   3611   
  3300   3612   do_test 1.14.8.1 {
  3301   3613     set myres {}
................................................................................
  3413   3725     SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
  3414   3726   } {229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229}
  3415   3727   
  3416   3728   do_execsql_test 1.14.9.6 {
  3417   3729     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
  3418   3730   } {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
  3419   3731   
         3732  +do_execsql_test 1.14.10.1 {
         3733  +  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
         3734  +} {0   81   86   81   46   98   97   23   41   72   29   13   28   35   16   47   47   9   24   26   98   58   8   24   30   91   58   2   56   29   73   2   42   46   62   62   73   40   16   85   33   37   81   25   9   87   78   87   61   28   59   77   90   74   9   27   41   22   39   67   72   54   85   74   90   7   61   90   62   4   93   72   96   94   29   23   95   74   93   30   23   29   3   1   41   80   65   33   2   98   86   89   25   76   65   40   38   15   13   96   74   97   81   40   16   99   76   96   32   80   86   59   2   99   84   84   39   65   27   76   78   84   16   2   96   59   16   41   28   13   89   22   4   42   91   41   33   87   55   81   29   36   28   6   47   97   97   85   33   41   93   15   85   89   98   98   43   23   73   4   56   29   89   46   65   38   59   68   47   9   93   9   23   39   16   93   98   74   65   75   15   56   93   12   2   81   2   23   97   47   91   15   93   35   16   63   8   53   91   33}
         3735  +
         3736  +do_execsql_test 1.14.9.2 {
         3737  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
         3738  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   81   21   21   {}   {}   {}   {}   21   {}   {}   {}   21   12   {}   72   {}   {}   {}   12   {}   72   {}   12   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   23   {}   {}   {}   {}   {}   73   {}   {}   {}   {}   {}   73   {}   23   {}   {}   {}   {}   {}   {}   {}   {}   74   {}   {}   {}   {}   {}   {}   {}   {}   64   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   55   {}   {}   {}   {}   {}   {}   15   55   {}   {}   {}   {}   {}   55   {}   {}   {}   {}   16   {}   26   26   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   27   47   {}   {}   {}   98   {}   {}   {}   {}   {}   98   {}   98   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   29   {}   {}   {}   {}   {}   9   {}   29   29   {}   {}   {}}
         3739  +
         3740  +do_execsql_test 1.14.9.3 {
         3741  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
         3742  +} {0   1   1   1   1   1   2   2   2   2   3   3   3   3   4   4   4   5   5   5   6   7   7   7   7   7   7   7   8   8   8   8   8   8   8   9   9   10   11   11   11   11   12   12   12   12   12   13   13   13   13   13   14   15   15   15   15   15   15   15   15   16   16   16   16   16   16   16   16   16   16   17   17   19   19   19   19   20   20   21   21   21   21   21   22   22   22   22   23   23   23   23   23   25   25   26   26   26   26   26   27   27   28   29   29   29   29   30   30   30   30   30   30   30   30   31   31   31   31   31   32   32   33   33   33   33   33   33   33   33   34   34   34   34   35   35   35   36   36   36   36   36   36   36   36   36   36   36   36   37   37   37   37   38   38   38   39   39   39   39   39   40   40   40   40   41   41   41   41   41   41   42   43   43   43   43   43   43   44   44   44   44   44   46   46   46   46   47   47   47   47   47   47   47   47   47   47   49   49   49}
         3743  +
         3744  +do_execsql_test 1.14.9.4 {
         3745  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
         3746  +} {0   80   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   1   51   51   91   91   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   2   2   62   62   62   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   13   13   43   43   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   74   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   35   85   85   85   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   66   66   66   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   37   37   37   87   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   58   58   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   39   39   39   89   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         3747  +
         3748  +do_execsql_test 1.14.9.5 {
         3749  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
         3750  +} {0   74   32   31   84   91   74   3   93   84   74   31   12   90   31   22   74   64   43   64   64   90   74   22   43   90   1   30   62   22   31   31   30   74   64   64   1   40   33   50   11   81   42   40   13   50   81   40   13   13   50   33   52   24   41   81   34   41   34   2   30   2   81   82   53   33   10   33   33   81   34   41   10   81   30   81   4   3   3   23   94   3   61   80   84   94   3   91   91   72   3   63   30   91   94   94   72   91   73   91   84   84   33   41   1   33   84   73   73   91   20   41   84   33   33   84   33   41   84   21   44   22   90   22   81   81   74   93   93   93   81   21   83   44   44   21   21   21   13   21   21   34   11   34   73   74   2   60   2   34   2   34   74   60   23   2   2   2   11   91   60   62   73   74   70   51   65   74   93   65   70   34   70   93   93   93   62   35   44   43   12   35   41   43   44   44   41   80   54   72   43   41   43   91   12   80   80   35   33   12}
         3751  +
         3752  +do_execsql_test 1.14.9.6 {
         3753  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
         3754  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         3755  +
  3420   3756   do_execsql_test 1.15.2.1 {
  3421   3757     SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
  3422   3758   } {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   95   95   84   84   84   84   84   84   84   84   83   83   83   83   83   83   83   83   83}
  3423   3759   
  3424   3760   do_execsql_test 1.15.2.2 {
  3425   3761     SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
  3426   3762   } {0   0   0   0   0   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7}
................................................................................
  3527   3863       lappend myres [format %.2f [set r]]
  3528   3864     }
  3529   3865     set myres
  3530   3866   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
  3531   3867   
  3532   3868   do_test 1.15.7.6 {
  3533   3869     set myres {}
  3534         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
         3870  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING) FROM t2}] {
  3535   3871       lappend myres [format %.2f [set r]]
  3536   3872     }
  3537   3873     set myres
  3538   3874   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
  3539   3875   
  3540   3876   do_test 1.15.8.1 {
  3541   3877     set myres {}
................................................................................
  3653   3989     SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
  3654   3990   } {229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229}
  3655   3991   
  3656   3992   do_execsql_test 1.15.9.6 {
  3657   3993     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING) FROM t2
  3658   3994   } {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
  3659   3995   
         3996  +do_execsql_test 1.15.10.1 {
         3997  +  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING) FROM t2
         3998  +} {0   81   86   81   46   1   67   93   26   95   80   65   56   85   30   12   81   35   89   97   31   31   85   40   96   4   73   84   9   91   73   12   5   56   24   85   49   96   75   53   61   8   8   1   55   34   43   59   80   35   15   78   35   56   70   76   59   51   75   63   26   53   5   89   15   21   5   73   33   29   74   66   12   26   58   4   12   31   35   9   87   73   55   59   53   62   73   23   62   33   90   13   90   9   10   66   5   58   44   38   58   22   33   37   2   73   36   31   72   30   47   73   15   96   70   59   90   {}   7   21   83   {}   47   90   55   36   66   {}   50   {}   84   30   {}   {}   34   77   74   {}   58   {}   13   {}   82   93   69   14   62   44   {}   {}   30   {}   83   93   {}   {}   {}   84   {}   {}   {}   {}   14   30   82   34   34   3   {}   {}   {}   {}   {}   84   {}   {}   {}   99   {}   {}   {}   {}   {}   {}   {}   58   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         3999  +
         4000  +do_execsql_test 1.15.9.2 {
         4001  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING) FROM t2
         4002  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   81   {}   91   {}   {}   {}   {}   {}   {}   {}   {}   {}   12   {}   72   {}   {}   {}   22   {}   82   {}   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   43   {}   {}   {}   {}   {}   33   {}   {}   {}   {}   {}   {}   {}   33   {}   {}   {}   {}   {}   {}   {}   {}   4   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   75   {}   {}   {}   {}   {}   {}   15   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   16   {}   26   36   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   37   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   98   {}   {}   {}   {}   {}   58   {}   38   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   59   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4003  +
         4004  +do_execsql_test 1.15.9.3 {
         4005  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
         4006  +} {0   1   1   1   1   2   2   3   4   6   7   8   8   8   9   9   10   11   12   12   13   14   15   15   16   16   17   19   21   22   22   23   23   24   25   26   27   29   29   30   30   31   32   33   33   33   34   34   34   35   36   36   36   37   38   38   39   39   40   41   41   43   44   44   46   46   47   47   47   49   50   52   53   55   55   56   56   57   58   58   58   59   59   59   61   62   62   63   65   65   66   68   69   72   72   73   73   74   74   74   75   76   77   78   80   81   81   82   83   84   84   85   85   85   86   87   88   89   89   90   90   91   91   91   93   93   95   95   95   96   97   98   99   99   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4007  +
         4008  +do_execsql_test 1.15.9.4 {
         4009  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
         4010  +} {0   80   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   1   51   51   91   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   2   2   62   62   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   13   13   43   43   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   74   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   35   85   85   85   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   66   66   66   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   37   37   37   87   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   58   58   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   39   39   39   89   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4011  +
         4012  +do_execsql_test 1.15.9.5 {
         4013  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
         4014  +} {0   74   32   31   84   1   14   53   3   84   44   2   93   91   32   52   34   25   33   95   65   61   35   3   74   81   2   91   33   13   23   93   12   5   46   6   82   91   44   2   73   43   84   22   95   82   63   12   75   15   93   35   85   36   33   94   77   83   7   65   43   85   64   95   46   96   33   26   36   65   17   74   74   55   33   25   47   7   47   56   7   87   55   4   58   28   47   15   95   56   7   87   55   46   58   58   26   56   17   16   99   29   7   75   16   38   99   58   98   36   15   6   {}   8   89   9   9   56   {}   97   {}   78   16   28   26   36   {}   59   39   99   27   78   {}   {}   {}   37   27   98   {}   88   8   {}   28   {}   {}   {}   49   37   29   {}   59   {}   {}   47   {}   69   39   59   99   8   78   9   {}   {}   58   49   {}   {}   {}   {}   58   {}   38   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   59   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4015  +
         4016  +do_execsql_test 1.15.9.6 {
         4017  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING) FROM t2
         4018  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4019  +
  3660   4020   do_execsql_test 1.16.2.1 {
  3661   4021     SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
  3662   4022   } {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   95   95   84   84   84   84   84   84   84   84   83   83   83   83   83   83   83   83   83   82   82   17   7}
  3663   4023   
  3664   4024   do_execsql_test 1.16.2.2 {
  3665   4025     SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
  3666   4026   } {0   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7}
................................................................................
  3767   4127       lappend myres [format %.2f [set r]]
  3768   4128     }
  3769   4129     set myres
  3770   4130   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
  3771   4131   
  3772   4132   do_test 1.16.7.6 {
  3773   4133     set myres {}
  3774         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
         4134  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2}] {
  3775   4135       lappend myres [format %.2f [set r]]
  3776   4136     }
  3777   4137     set myres
  3778   4138   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
  3779   4139   
  3780   4140   do_test 1.16.8.1 {
  3781   4141     set myres {}
................................................................................
  3893   4253     SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
  3894   4254   } {229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229}
  3895   4255   
  3896   4256   do_execsql_test 1.16.9.6 {
  3897   4257     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2
  3898   4258   } {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
  3899   4259   
         4260  +do_execsql_test 1.16.10.1 {
         4261  +  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2
         4262  +} {0   4   61   42   8   35   77   7   81   96   9   11   89   32   53   91   30   51   56   54   73   22   59   75   74   78   8   16   65   15   8   31   87   90   12   32   96   74   76   37   85   90   15   35   2   60   36   75   9   51   47   63   51   90   26   42   26   8   76   80   90   37   87   56   79   5   87   8   2   39   73   64   36   90   72   78   36   73   51   33   20   41   2   26   37   33   8   14   33   81   55   1   9   12   39   64   87   72   34   82   21   34   99   62   74   41   69   22   75   27   58   8   79   77   26   26   55   {}   29   30   7   {}   66   55   2   34   64   {}   33   {}   44   84   {}   {}   95   85   19   {}   83   {}   91   {}   {}   9   50   91   33   34   {}   {}   84   {}   7   9   {}   {}   {}   44   {}   {}   {}   {}   91   84   {}   95   95   52   {}   {}   {}   {}   {}   21   {}   {}   {}   58   {}   {}   {}   {}   {}   {}   {}   83   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4263  +
         4264  +do_execsql_test 1.16.9.2 {
         4265  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2
         4266  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   21   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   12   {}   62   {}   {}   {}   12   {}   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   53   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   95   {}   {}   {}   {}   {}   {}   85   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   56   {}   36   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   57   {}   {}   {}   {}   {}   7   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   8   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   9   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4267  +
         4268  +do_execsql_test 1.16.9.3 {
         4269  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
         4270  +} {0   1   2   2   3   3   5   6   7   8   8   9   9   10   11   12   12   13   13   14   15   16   16   17   19   20   21   22   23   23   24   25   26   26   27   28   29   30   31   31   33   33   33   33   34   34   35   36   36   36   37   37   38   39   39   40   41   41   42   43   44   46   47   47   47   47   49   51   52   53   54   55   56   56   57   58   58   58   59   59   59   61   61   62   63   65   65   65   67   69   70   72   72   73   74   74   74   74   75   76   77   78   80   81   81   83   84   84   84   85   85   87   87   88   89   89   90   90   90   91   91   91   93   93   95   95   96   96   97   98   99   99   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4271  +
         4272  +do_execsql_test 1.16.9.4 {
         4273  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
         4274  +} {0   80   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   11   61   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   12   12   72   82   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   13   23   63   73   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   74   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   35   85   85   95   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   76   86   96   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   37   47   47   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   58   68   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   39   49   59   99   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4275  +
         4276  +do_execsql_test 1.16.9.5 {
         4277  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
         4278  +} {0   64   42   81   94   1   44   73   74   44   85   22   33   41   72   93   34   65   54   5   15   81   15   63   84   21   2   62   54   93   43   33   2   75   16   86   23   12   85   62   13   53   94   12   75   23   73   72   96   46   33   55   25   26   74   34   87   84   87   55   53   25   84   75   56   66   54   36   97   55   78   84   84   95   74   65   17   87   77   96   8   47   95   34   89   98   7   46   6   96   8   47   95   56   89   59   36   36   78   96   89   29   37   95   56   39   {}   8   58   67   85   86   {}   58   49   {}   29   76   {}   77   {}   78   56   98   36   97   {}   59   89   89   47   78   {}   {}   {}   38   68   58   {}   58   38   {}   98   {}   {}   {}   19   57   9   {}   9   {}   {}   7   {}   {}   {}   39   89   38   78   39   {}   {}   8   19   {}   {}   {}   {}   89   {}   39   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   9   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4279  +
         4280  +do_execsql_test 1.16.9.6 {
         4281  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2
         4282  +} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4283  +
  3900   4284   do_execsql_test 1.17.2.1 {
  3901   4285     SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
  3902   4286   } {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   95   95   84   84   84   84   84   84   84   84   83   83   83   83   83   83   83   83   83   82   82   17   7   {}   {}   {}   {}}
  3903   4287   
  3904   4288   do_execsql_test 1.17.2.2 {
  3905   4289     SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
  3906   4290   } {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   {}   {}   {}   {}}
................................................................................
  4007   4391       lappend myres [format %.2f [set r]]
  4008   4392     }
  4009   4393     set myres
  4010   4394   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
  4011   4395   
  4012   4396   do_test 1.17.7.6 {
  4013   4397     set myres {}
  4014         -  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
         4398  +  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING) FROM t2}] {
  4015   4399       lappend myres [format %.2f [set r]]
  4016   4400     }
  4017   4401     set myres
  4018   4402   } {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
  4019   4403   
  4020   4404   do_test 1.17.8.1 {
  4021   4405     set myres {}
................................................................................
  4133   4517     SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
  4134   4518   } {229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   {}   {}   {}   {}}
  4135   4519   
  4136   4520   do_execsql_test 1.17.9.6 {
  4137   4521     SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING) FROM t2
  4138   4522   } {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
  4139   4523   
         4524  +do_execsql_test 1.17.10.1 {
         4525  +  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING) FROM t2
         4526  +} {23   78   85   29   84   51   93   91   68   74   65   12   4   22   37   15   53   8   16   29   8   34   3   76   73   63   90   47   98   47   90   73   20   89   91   22   77   73   42   41   32   55   79   51   74   44   81   7   65   8   43   80   8   89   90   29   36   15   42   9   9   41   20   16   11   87   20   90   84   80   41   37   34   9   75   63   34   8   8   81   95   31   74   36   41   99   90   91   99   13   2   35   33   36   38   37   20   75   17   {}   5   34   58   33   19   31   50   34   23   {}   72   90   11   85   90   36   2   {}   39   27   {}   {}   64   2   74   95   37   {}   58   {}   34   44   {}   {}   30   70   47   {}   7   {}   15   {}   {}   12   33   36   99   17   {}   {}   44   {}   {}   12   {}   {}   {}   34   {}   {}   {}   {}   36   44   {}   30   30   10   {}   {}   {}   {}   {}   30   {}   {}   {}   84   {}   {}   {}   {}   {}   {}   {}   7   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4527  +
         4528  +do_execsql_test 1.17.9.2 {
         4529  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING) FROM t2
         4530  +} {80   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   21   {}   {}   {}   31   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   {}   {}   {}   {}   {}   72   {}   {}   {}   82   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   73   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   64   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   76   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   27   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   38   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4531  +
         4532  +do_execsql_test 1.17.9.3 {
         4533  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
         4534  +} {2   3   3   5   6   7   7   8   8   9   10   11   12   12   13   13   14   15   15   16   16   19   20   21   22   22   23   23   25   26   26   27   28   29   29   30   31   32   33   33   33   34   34   34   35   36   36   37   37   38   39   39   40   41   41   42   43   44   44   46   47   47   49   50   51   52   53   55   55   56   56   57   58   58   58   59   59   59   60   61   62   63   64   65   65   67   68   69   72   72   73   73   74   74   74   75   75   76   77   78   80   81   81   83   84   84   85   85   86   87   88   89   89   90   90   91   91   91   91   93   93   94   95   95   96   97   98   98   99   99   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4535  +
         4536  +do_execsql_test 1.17.9.4 {
         4537  +  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
         4538  +} {30   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   21   31   91   91   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   22   22   32   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   33   33   83   93   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   44   84   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   65   95   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   36   96   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   47   57   67   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   78   88   98   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   59   59   69   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4539  +
         4540  +do_execsql_test 1.17.9.5 {
         4541  +  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
         4542  +} {80   84   22   2   34   41   85   23   24   34   25   12   13   11   72   3   85   95   4   75   85   21   65   73   44   31   62   42   4   3   73   13   2   95   56   16   43   2   25   33   83   73   34   72   96   43   13   82   16   16   13   15   65   36   74   14   7   94   47   95   73   65   35   96   36   27   4   67   77   95   78   65   44   5   74   95   78   47   47   36   58   17   5   64   29   58   8   16   86   36   58   17   5   36   29   59   67   26   78   66   49   59   38   6   96   89   {}   38   99   47   26   16   {}   8   19   {}   9   26   {}   87   {}   88   76   58   67   77   {}   9   79   49   37   88   {}   {}   {}   28   98   99   {}   59   39   {}   58   {}   {}   {}   99   27   39   {}   29   {}   {}   8   {}   {}   {}   69   49   39   88   {}   {}   {}   38   99   {}   {}   {}   {}   29   {}   89   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4543  +
         4544  +do_execsql_test 1.17.9.6 {
         4545  +  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING) FROM t2
         4546  +} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
         4547  +
  4140   4548   finish_test

Changes to test/window4.tcl.

    22     22     INSERT INTO t3 VALUES('a'), ('b'), ('c'), ('d'), ('e');
    23     23     INSERT INTO t3 VALUES('f'), ('g'), ('h'), ('i'), ('j');
    24     24   }
    25     25   
    26     26   for {set i 1} {$i < 20} {incr i} {
    27     27     execsql_test 1.$i "SELECT a, ntile($i) OVER (ORDER BY a) FROM t3"
    28     28   }
           29  +
           30  +execsql_test 2.0 {
           31  +  DROP TABLE IF EXISTS t4;
           32  +  CREATE TABLE t4(a INTEGER PRIMARY KEY, b TEXT, c INTEGER);
           33  +  INSERT INTO t4 VALUES(1, 'A', 9);
           34  +  INSERT INTO t4 VALUES(2, 'B', 3);
           35  +  INSERT INTO t4 VALUES(3, 'C', 2);
           36  +  INSERT INTO t4 VALUES(4, 'D', 10);
           37  +  INSERT INTO t4 VALUES(5, 'E', 5);
           38  +  INSERT INTO t4 VALUES(6, 'F', 1);
           39  +  INSERT INTO t4 VALUES(7, 'G', 1);
           40  +  INSERT INTO t4 VALUES(8, 'H', 2);
           41  +  INSERT INTO t4 VALUES(9, 'I', 10);
           42  +  INSERT INTO t4 VALUES(10, 'J', 4);
           43  +}
           44  +
           45  +execsql_test 2.1 {
           46  +  SELECT a, nth_value(b, c) OVER (ORDER BY a) FROM t4
           47  +}
           48  +
           49  +execsql_test 3.0 {
           50  +  DROP TABLE IF EXISTS t5;
           51  +  CREATE TABLE t5(a INTEGER PRIMARY KEY, b TEXT, c TEXT, d INTEGER);
           52  +  INSERT INTO t5 VALUES(1, 'A', 'one',   5);
           53  +  INSERT INTO t5 VALUES(2, 'B', 'two',   4);
           54  +  INSERT INTO t5 VALUES(3, 'A', 'three', 3);
           55  +  INSERT INTO t5 VALUES(4, 'B', 'four',  2);
           56  +  INSERT INTO t5 VALUES(5, 'A', 'five',  1);
           57  +}
           58  +
           59  +execsql_test 3.1 {
           60  +  SELECT a, nth_value(c, d) OVER (ORDER BY b) FROM t5
           61  +}
           62  +
           63  +execsql_test 3.2 {
           64  +  SELECT a, nth_value(c, d) OVER (PARTITION BY b ORDER BY a) FROM t5
           65  +}
    29     66   
    30     67   finish_test
           68  +

Changes to test/window4.test.

    98     98     SELECT a, ntile(18) OVER (ORDER BY a) FROM t3
    99     99   } {a 1   b 2   c 3   d 4   e 5   f 6   g 7   h 8   i 9   j 10}
   100    100   
   101    101   do_execsql_test 1.19 {
   102    102     SELECT a, ntile(19) OVER (ORDER BY a) FROM t3
   103    103   } {a 1   b 2   c 3   d 4   e 5   f 6   g 7   h 8   i 9   j 10}
   104    104   
          105  +do_execsql_test 2.0 {
          106  +  DROP TABLE IF EXISTS t4;
          107  +  CREATE TABLE t4(a INTEGER PRIMARY KEY, b TEXT, c INTEGER);
          108  +  INSERT INTO t4 VALUES(1, 'A', 9);
          109  +  INSERT INTO t4 VALUES(2, 'B', 3);
          110  +  INSERT INTO t4 VALUES(3, 'C', 2);
          111  +  INSERT INTO t4 VALUES(4, 'D', 10);
          112  +  INSERT INTO t4 VALUES(5, 'E', 5);
          113  +  INSERT INTO t4 VALUES(6, 'F', 1);
          114  +  INSERT INTO t4 VALUES(7, 'G', 1);
          115  +  INSERT INTO t4 VALUES(8, 'H', 2);
          116  +  INSERT INTO t4 VALUES(9, 'I', 10);
          117  +  INSERT INTO t4 VALUES(10, 'J', 4);
          118  +} {}
          119  +
          120  +do_execsql_test 2.1 {
          121  +  SELECT a, nth_value(b, c) OVER (ORDER BY a) FROM t4
          122  +} {1 {}   2 {}   3 B   4 {}   5 E   6 A   7 A   8 B   9 {}   10 D}
          123  +
          124  +do_execsql_test 3.0 {
          125  +  DROP TABLE IF EXISTS t5;
          126  +  CREATE TABLE t5(a INTEGER PRIMARY KEY, b TEXT, c TEXT, d INTEGER);
          127  +  INSERT INTO t5 VALUES(1, 'A', 'one',   5);
          128  +  INSERT INTO t5 VALUES(2, 'B', 'two',   4);
          129  +  INSERT INTO t5 VALUES(3, 'A', 'three', 3);
          130  +  INSERT INTO t5 VALUES(4, 'B', 'four',  2);
          131  +  INSERT INTO t5 VALUES(5, 'A', 'five',  1);
          132  +} {}
          133  +
          134  +do_execsql_test 3.1 {
          135  +  SELECT a, nth_value(c, d) OVER (ORDER BY b) FROM t5
          136  +} {1 {}   3 five   5 one   2 two   4 three}
          137  +
          138  +explain_i {
          139  +  SELECT a, nth_value(c, d) OVER (PARTITION BY b ORDER BY a) FROM t5
          140  +  }
          141  +do_execsql_test 3.2 {
          142  +  SELECT a, nth_value(c, d) OVER (PARTITION BY b ORDER BY a) FROM t5
          143  +} {1 {}   3 {}   5 one   2 {}   4 four}
          144  +
   105    145   finish_test