Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Change the meaning of the SQLITE_SUBTYPE flag so that it indicates that the user-defined function cares about the subtypes of its arguments. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | window-functions-subtype-fix2 |
Files: | files | file ages | folders |
SHA3-256: |
af1bc20f502816db460d2b2d353f715d |
User & Date: | dan 2019-09-13 17:05:48.974 |
Context
2019-09-13
| ||
18:27 | Add the SQLITE_SUBTYPE flag, which may be passed to sqlite3_create_window_function() to indicate that the window function uses sqlite3_value_subtype() to check the sub-type of its arguments. (check-in: ba2ebc3a34 user: dan tags: trunk) | |
17:05 | Change the meaning of the SQLITE_SUBTYPE flag so that it indicates that the user-defined function cares about the subtypes of its arguments. (Closed-Leaf check-in: af1bc20f50 user: dan tags: window-functions-subtype-fix2) | |
16:19 | Merge latest trunk changes with this branch. (check-in: 14ef754346 user: dan tags: window-functions-subtype-fix) | |
Changes
Changes to ext/misc/json1.c.
︙ | |||
2500 2501 2502 2503 2504 2505 2506 | 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 | - - - + + + - + | } aMod[] = { { "json_each", &jsonEachModule }, { "json_tree", &jsonTreeModule }, }; #endif for(i=0; i<sizeof(aFunc)/sizeof(aFunc[0]) && rc==SQLITE_OK; i++){ rc = sqlite3_create_function(db, aFunc[i].zName, aFunc[i].nArg, |
︙ |
Changes to src/sqlite.h.in.
︙ | |||
4984 4985 4986 4987 4988 4989 4990 | 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 | - - - + + + + + + + | ** The SQLITE_DETERMINISTIC flag means that the new function will always ** maps the same inputs into the same output. The abs() function is ** deterministic, for example, but randomblob() is not. ** ** The SQLITE_DIRECTONLY flag means that the function may only be invoked ** from top-level SQL, and cannot be used in VIEWs or TRIGGERs. ** |
︙ |
Changes to src/window.c.
︙ | |||
864 865 866 867 868 869 870 | 864 865 866 867 868 869 870 871 872 873 874 875 876 877 | - - - - - - - - - - - - - - - - - - - - - - - - - - | sWalker.u.pRewrite = &sRewrite; (void)sqlite3WalkExprList(&sWalker, pEList); *ppSub = sRewrite.pSub; } |
︙ | |||
988 989 990 991 992 993 994 | 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 | - + | /* Append the arguments passed to each window function to the ** sub-select expression list. Also allocate two registers for each ** window function - one for the accumulator, another for interim ** results. */ for(pWin=pMWin; pWin; pWin=pWin->pNextWin){ ExprList *pArgs = pWin->pOwner->x.pList; |
︙ |