1
0
mirror of https://github.com/sqlite/sqlite.git synced 2026-10-23 21:49:02 +03:00

Check the datatype of the second (optional) argument to the log() SQL

function and return NULL if it is non-numeric as the documentation says
it should.
[bugs:/info/2026-10-18T05:05:18Z|Bug 2026-10-18T05:05:18Z]

FossilOrigin-Name: a99e577b951fa38fcdff3693072c2f78e546be6a1c187b648f043b499a06768e
This commit is contained in:
drh
2026-10-18 10:14:50 +00:00
parent ea9d6e8419
commit 18347d8044
4 changed files with 14 additions and 9 deletions

View File

@@ -1,5 +1,5 @@
C Fix\san\sincorrect\sassert()\sin\sgenerate_series().\s\sNo\simpact\son\snon-debug\nbuilds.\n[bugs:/info/2026-10-17T09:24:09Z|Bug\s2026-10-17T09:24:09Z]
D 2026-10-17T12:03:36.275
C Check\sthe\sdatatype\sof\sthe\ssecond\s(optional)\sargument\sto\sthe\slog()\sSQL\nfunction\sand\sreturn\sNULL\sif\sit\sis\snon-numeric\sas\sthe\sdocumentation\ssays\nit\sshould.\n[bugs:/info/2026-10-18T05:05:18Z|Bug\s2026-10-18T05:05:18Z]
D 2026-10-18T10:14:50.771
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -756,7 +756,7 @@ F src/delete.c 59eeca3fb88c29329afc41bb803ee568b120d9dd7470b5f38ab55cc38390b451
F src/expr.c c404d1908874e6f8542a81b38a5ef7985581394c34e418f7ed3798e09f4e42d1
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
F src/fkey.c 26788ae6c785d70f9829c4176e9764447014fc73e6ba31e9f1881720a64ae7f1
F src/func.c 54d96eeafcb6ec4cff92028ea0f7bb09e27b375b248d969aeb80a61e560ef302
F src/func.c e3099dc33a2fbf2e1e563d49810988dfad3e030d1cd151360d5ecb865c8652a1
F src/global.c 7eea537ac0c113ac55cb2dd4d8fc2a6a91ae478be34231b4efaffc46817fee85
F src/hash.c 03c8c0f4be9e8bcb6de65aa26d34a61d48a9430747084a69f9469fbb00ea52ca
F src/hash.h 46b92795a95bfefb210f52f0c316e9d7cdbcdd7e7fcfb0d8be796d3a5767cddf
@@ -1314,7 +1314,7 @@ F test/func3.test 6b22dfada95b778d01dba75aa00fa8e6a1fb90d30b859241638e7540edcfb3
F test/func4.test a02e695f62beb31cb092dccf6873ff97543407fff97a5f3ec4da70b5b337bc84
F test/func5.test 863e6d1bd0013d09c17236f8a13ea34008dd857d87d85a13a673960e4c25d82a
F test/func6.test 3bc89ec0f2605736d3a118f43d25ef58115a7db4dba8ae939a363917d815c0bb
F test/func7.test c7a866fba2f7c0a49b25b783d36c1e47cd606981c1f016d2cbb9d4d8a99fc533
F test/func7.test 9896bee8cab608b2ac3a31548e9a1e860fdd1ba30be1707b0d025fee516fdddf
F test/func8.test c4e2ecacf9f16e47a245e7a25fbabcc7e78f9c7c41a80f158527cdfdc6dd299d
F test/func9.test 32c7d53b9bc99ddd45fad29457add438f2aca43d24920793773a96b13610f552
F test/fuzz-oss1.test 514dcabb24687818ea949fa6760229eaacad74ca70157743ef36d35bbe01ffb0
@@ -2287,8 +2287,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
P d43611f653bad426df8dc4ac12d0fff1662245b0715f7e66a023bd1dd129faea
R 4860e4e720900d9865bb628f2bb5e16b
P c5d67762df0507fe58e035b572623f36efb394d08d322bbdb313a2f0da49c734
R 7227e2346bda99428702d1a8b098b920
U drh
Z 1becf78a83ced1d37cf8fb84d4943e6b
Z 6f06ce634f5d3481d95d17a08a4bd787
# Remove this line to create a well-formed Fossil manifest.

View File

@@ -1 +1 @@
c5d67762df0507fe58e035b572623f36efb394d08d322bbdb313a2f0da49c734
a99e577b951fa38fcdff3693072c2f78e546be6a1c187b648f043b499a06768e

View File

@@ -2538,7 +2538,7 @@ static void logFunc(
return;
}
if( argc==2 ){
switch( sqlite3_value_numeric_type(argv[0]) ){
switch( sqlite3_value_numeric_type(argv[1]) ){
case SQLITE_INTEGER:
case SQLITE_FLOAT:
b = log(x);

View File

@@ -30,6 +30,11 @@ do_execsql_test func7-200 {
do_execsql_test func7-210 {
SELECT ln(-5), log(-5,100.0);
} {{} {}}
db null NULL
do_execsql_test func7-220 {
SELECT log(2,8), log(2,'8'), log(2,'8xyz'), log(2,x'38');
} {3.0 3.0 NULL NULL}
db null {}
# Test cases derived from PostgreSQL documentation
#