Changeset: e2c8c7512fb5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e2c8c7512fb5
Modified Files:
        gdk/gdk_calc.c
        gdk/gdk_calc_convert.c
        gdk/gdk_calc_muldiv.c
        gdk/gdk_calc_private.h
        testing/sqllogictest.py
Branch: default
Log Message:

Merge with Jan2022 branch.


diffs (120 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -754,3 +754,4 @@ 97e76b882f9fb28327393d21708fb22f2f6c22f1
 f458e1c71c73d6bd9636369c1406eadb74f016bf Jan2022_9
 f458e1c71c73d6bd9636369c1406eadb74f016bf Jan2022_SP1_release
 00463fdd0d51d7ce058549a82bc74efaea6035a2 Jul2021_15
+00463fdd0d51d7ce058549a82bc74efaea6035a2 Jul2021_SP3_release
diff --git a/gdk/gdk_calc_convert.c b/gdk/gdk_calc_convert.c
--- a/gdk/gdk_calc_convert.c
+++ b/gdk/gdk_calc_convert.c
@@ -443,7 +443,7 @@ convert_##TYPE1##_##TYPE2(const TYPE1 *s
                                dst[i] = TYPE2##_nil;                   \
                                nils++;                                 \
                        } else {                                        \
-                               long double m = (long double) v * mul;  \
+                               ldouble m = (ldouble) v * mul;          \
                                dst[i] = (TYPE2) rounddbl(m);           \
                                if ((is_##TYPE2##_nil(dst[i]) ||        \
                                     (precision &&                      \
@@ -467,7 +467,7 @@ convert_##TYPE1##_##TYPE2(const TYPE1 *s
                                dst[i] = TYPE2##_nil;                   \
                                nils++;                                 \
                        } else {                                        \
-                               long double m = (long double) v * mul;  \
+                               ldouble m = (ldouble) v * mul;          \
                                dst[i] = (TYPE2) rounddbl(m);           \
                                if ((is_##TYPE2##_nil(dst[i]) ||        \
                                     (precision &&                      \
diff --git a/gdk/gdk_calc_muldiv.c b/gdk/gdk_calc_muldiv.c
--- a/gdk/gdk_calc_muldiv.c
+++ b/gdk/gdk_calc_muldiv.c
@@ -360,7 +360,7 @@ mul_##TYPE1##_##TYPE2##_##TYPE3(                            
        \
                                dst[k] = TYPE3##_nil;                   \
                                nils++;                                 \
                        } else {                                        \
-                               long double m = lft[i] * (long double) rgt[j]; \
+                               ldouble m = lft[i] * (ldouble) rgt[j];  \
                                dst[k] = (TYPE3) rounddbl(m);           \
                        }                                               \
                }                                                       \
@@ -382,7 +382,7 @@ mul_##TYPE1##_##TYPE2##_##TYPE3(                            
        \
                                dst[k] = TYPE3##_nil;                   \
                                nils++;                                 \
                        } else {                                        \
-                               long double m = lft[i] * (long double) rgt[j]; \
+                               ldouble m = lft[i] * (ldouble) rgt[j];  \
                                dst[k] = (TYPE3) rounddbl(m);           \
                        }                                               \
                }                                                       \
@@ -2674,7 +2674,7 @@ div_##TYPE1##_##TYPE2##_##TYPE3(                          
        \
                                        dst[k] = TYPE3##_nil;           \
                                        nils++;                         \
                                } else {                                \
-                                       dst[k] = (TYPE3) rounddbl(lft[i] / 
(long double) rgt[j]); \
+                                       dst[k] = (TYPE3) rounddbl(lft[i] / 
(ldouble) rgt[j]); \
                                }                                       \
                        }                                               \
                }                                                       \
@@ -2704,7 +2704,7 @@ div_##TYPE1##_##TYPE2##_##TYPE3(                          
        \
                                        dst[k] = TYPE3##_nil;           \
                                        nils++;                         \
                                } else {                                \
-                                       dst[k] = (TYPE3) rounddbl(lft[i] / 
(long double) rgt[j]); \
+                                       dst[k] = (TYPE3) rounddbl(lft[i] / 
(ldouble) rgt[j]); \
                                }                                       \
                        }                                               \
                }                                                       \
diff --git a/gdk/gdk_calc_private.h b/gdk/gdk_calc_private.h
--- a/gdk/gdk_calc_private.h
+++ b/gdk/gdk_calc_private.h
@@ -651,8 +651,23 @@ BUN dofsum(const void *restrict values, 
                }                                                       \
        } while (0)
 
+#if defined(_MSC_VER) && defined(__INTEL_COMPILER)
+/* with Intel compiler on Windows, avoid using roundl and llroundl: they
+ * cause a mysterious crash; long double is the same size as double
+ * anyway */
+typedef double ldouble;
 #ifdef TRUNCATE_NUMBERS
-#define rounddbl(x)    (x)
+#define rounddbl(x)    (x)
 #else
-#define rounddbl(x)    roundl(x)
+#define rounddbl(x)    roundl(x)
+#define rounddbl(x)    round(x)
 #endif
+#else
+typedef long double ldouble;
+#ifdef TRUNCATE_NUMBERS
+#define rounddbl(x)    (x)
+#else
+/* round long double to long long int in one go */
+#define rounddbl(x)    llroundl(x)
+#endif
+#endif
diff --git a/testing/sqllogictest.py b/testing/sqllogictest.py
--- a/testing/sqllogictest.py
+++ b/testing/sqllogictest.py
@@ -742,6 +742,10 @@ if __name__ == '__main__':
                         help='port the server listens on')
     parser.add_argument('--database', action='store', default='demo',
                         help='name of the database')
+    parser.add_argument('--user', action='store', default='monetdb',
+                        help='user name to login to the database with')
+    parser.add_argument('--password', action='store', default='monetdb',
+                        help='password to use to login to the database with')
     parser.add_argument('--language', action='store', default='sql',
                         help='language to use for testing')
     parser.add_argument('--nodrop', action='store_true',
@@ -761,7 +765,7 @@ if __name__ == '__main__':
     args = opts.tests
     sql = SQLLogic(report=opts.report)
     sql.res = opts.results
-    sql.connect(hostname=opts.host, port=opts.port, database=opts.database, 
language=opts.language)
+    sql.connect(hostname=opts.host, port=opts.port, database=opts.database, 
language=opts.language, username=opts.user, password=opts.password)
     for test in args:
         try:
             if not opts.nodrop:
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to