Changeset: 61a0819c002a for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=61a0819c002a Added Files: sql/test/BugTracker-2020/Tests/log.Bug-6960.sql sql/test/BugTracker-2020/Tests/log.Bug-6960.stable.err sql/test/BugTracker-2020/Tests/log.Bug-6960.stable.out Modified Files: monetdb5/ChangeLog.Oct2020 monetdb5/modules/kernel/mmath.c sql/test/BugTracker-2020/Tests/All Branch: Oct2020 Log Message:
Test and fix for bug 6960, ie made log(x,y) SQL compliant diffs (109 lines): diff --git a/monetdb5/ChangeLog.Oct2020 b/monetdb5/ChangeLog.Oct2020 --- a/monetdb5/ChangeLog.Oct2020 +++ b/monetdb5/ChangeLog.Oct2020 @@ -14,3 +14,7 @@ system choose a free port (like mapi_autosense). Default behavior has not changed. +* Mon Aug 31 2020 Pedro Ferreira <pedro.ferre...@monetdbsolutions.com> +- Made general logarithm function log(x,base) compliant with the SQL + standard, by swapping the input parameters. + Instead of log(x,base), now is log(base,x). diff --git a/monetdb5/modules/kernel/mmath.c b/monetdb5/modules/kernel/mmath.c --- a/monetdb5/modules/kernel/mmath.c +++ b/monetdb5/modules/kernel/mmath.c @@ -28,13 +28,13 @@ #define degrees(x) ((x) * (180.0 / M_PI)) double -logbs(double x, double base) +logbs(double base, double x) { return log(x) / log(base); } float -logbsf(float x, float base) +logbsf(float base, float x) { return logf(x) / logf(base); } diff --git a/sql/test/BugTracker-2020/Tests/All b/sql/test/BugTracker-2020/Tests/All --- a/sql/test/BugTracker-2020/Tests/All +++ b/sql/test/BugTracker-2020/Tests/All @@ -21,3 +21,4 @@ HAVE_PYMONETDB?remote-table-like.Bug-684 copy-empty-blob.Bug-6948 values-like-join.Bug-6954 round.Bug-6955 +log.Bug-6960 diff --git a/sql/test/BugTracker-2020/Tests/log.Bug-6960.sql b/sql/test/BugTracker-2020/Tests/log.Bug-6960.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2020/Tests/log.Bug-6960.sql @@ -0,0 +1,5 @@ +SELECT LOG(2.0, 64.0); -- 6.0 +SELECT LOG(2,65536); -- 16.0 +SELECT LOG(10,100); -- 2.0 +SELECT LOG(2,42); -- 5.392317423 +SELECT LOG(1,100); -- error, divide by 0 diff --git a/sql/test/BugTracker-2020/Tests/log.Bug-6960.stable.err b/sql/test/BugTracker-2020/Tests/log.Bug-6960.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2020/Tests/log.Bug-6960.stable.err @@ -0,0 +1,15 @@ +stderr of test 'log.Bug-6960` in directory 'sql/test/BugTracker-2020` itself: + + +# 18:18:15 > +# 18:18:15 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-201441" "--port=37404" +# 18:18:15 > + +MAPI = (monetdb) /var/tmp/mtest-201441/.s.monetdb.37404 +QUERY = SELECT LOG(1,100); -- error, divide by 0 +ERROR = !Math exception: Divide by zero + +# 18:18:15 > +# 18:18:15 > "Done." +# 18:18:15 > + diff --git a/sql/test/BugTracker-2020/Tests/log.Bug-6960.stable.out b/sql/test/BugTracker-2020/Tests/log.Bug-6960.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2020/Tests/log.Bug-6960.stable.out @@ -0,0 +1,36 @@ +stdout of test 'log.Bug-6960` in directory 'sql/test/BugTracker-2020` itself: + + +# 18:18:15 > +# 18:18:15 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-201441" "--port=37404" +# 18:18:15 > + +#SELECT LOG(2.0, 64.0); -- 6.0 +% .%2 # table_name +% %2 # name +% double # type +% 24 # length +[ 6 ] +#SELECT LOG(2,65536); -- 16.0 +% .%2 # table_name +% %2 # name +% double # type +% 24 # length +[ 16 ] +#SELECT LOG(10,100); -- 2.0 +% .%2 # table_name +% %2 # name +% double # type +% 24 # length +[ 2 ] +#SELECT LOG(2,42); +% .%2 # table_name +% %2 # name +% double # type +% 24 # length +[ 5.392317423 ] + +# 18:18:15 > +# 18:18:15 > "Done." +# 18:18:15 > + _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list