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

Reply via email to