Changeset: 9ec792882357 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/9ec792882357
Branch: default
Log Message:

Merged properties into default


diffs (truncated from 8518 to 300 lines):

diff --git a/monetdb5/modules/atoms/CMakeLists.txt 
b/monetdb5/modules/atoms/CMakeLists.txt
--- a/monetdb5/modules/atoms/CMakeLists.txt
+++ b/monetdb5/modules/atoms/CMakeLists.txt
@@ -18,7 +18,7 @@ target_sources(atoms
   url.c
   uuid.c
   json.c
-  mtime.c
+  mtime.c mtime.h
   inet.c
   identifier.c
   xml.c xml.h
diff --git a/monetdb5/modules/atoms/mtime.c b/monetdb5/modules/atoms/mtime.c
--- a/monetdb5/modules/atoms/mtime.c
+++ b/monetdb5/modules/atoms/mtime.c
@@ -29,11 +29,9 @@
  */
 
 #include "monetdb_config.h"
-#include "gdk.h"
-#include "gdk_time.h"
+#include "mtime.h"
 #include "mal_client.h"
-#include "mal_interpreter.h"
-#include "mal_exception.h"
+
 
 #ifndef HAVE_STRPTIME
 extern char *strptime(const char *, const char *, struct tm *);
@@ -486,13 +484,6 @@ bailout:                                                   
                                                                        \
 #define func2_noexcept(FUNC, RET, PARAM1, PARAM2) RET = FUNC(PARAM1, PARAM2)
 #define func2_except(FUNC, RET, PARAM1, PARAM2) msg = FUNC(&RET, PARAM1, 
PARAM2); if (msg) break
 
-/* TODO change dayint again into an int instead of lng */
-static inline lng
-date_diff_imp(const date d1, const date d2)
-{
-       int diff = date_diff(d1, d2);
-       return is_int_nil(diff) ? lng_nil : (lng) diff * (lng) (24*60*60*1000);
-}
 func2(MTIMEdate_diff, "diff",
          date, date, lng, date_diff_imp, func2_noexcept,
          DEC_VAR, DEC_VAR, DEC_VAR_R, DEC_INT,
@@ -506,28 +497,6 @@ func2(MTIMEdaytime_diff_msec, "diff",
          GET_NEXT_VAR, GET_NEXT_VAR,
          APPEND_VAR, FINISH_INT_SINGLE, CLEAR_NOTHING)
 
-static inline str
-date_sub_msec_interval(date *ret, date d, lng ms)
-{
-       if (is_date_nil(d) || is_lng_nil(ms)) {
-               *ret = date_nil;
-               return MAL_SUCCEED;
-       }
-       if (is_date_nil((*ret = date_add_day(d, (int) (-ms / 
(24*60*60*1000))))))
-               throw(MAL, "mtime.date_sub_msec_interval", SQLSTATE(22003) 
"overflow in calculation");
-       return MAL_SUCCEED;
-}
-static inline str
-date_add_msec_interval(date *ret, date d, lng ms)
-{
-       if (is_date_nil(d) || is_lng_nil(ms)) {
-               *ret = date_nil;
-               return MAL_SUCCEED;
-       }
-       if (is_date_nil((*ret = date_add_day(d, (int) (ms / (24*60*60*1000))))))
-               throw(MAL, "mtime.date_add_msec_interval", SQLSTATE(22003) 
"overflow in calculation");
-       return MAL_SUCCEED;
-}
 func2(MTIMEdate_sub_msec_interval, "date_sub_msec_interval",
          date, lng, date, date_sub_msec_interval, func2_except,
          DEC_VAR_R, DEC_VAR_R, DEC_VAR_R, DEC_INT,
@@ -541,28 +510,6 @@ func2(MTIMEdate_add_msec_interval, "date
          GET_NEXT_VAR, GET_NEXT_VAR,
          APPEND_VAR, FINISH_INT_SINGLE, CLEAR_NOTHING)
 
-static inline str
-timestamp_sub_msec_interval(timestamp *ret, timestamp ts, lng ms)
-{
-       if (is_timestamp_nil(ts) || is_lng_nil(ms)) {
-               *ret = timestamp_nil;
-               return MAL_SUCCEED;
-       }
-       if (is_timestamp_nil((*ret = timestamp_add_usec(ts, -ms * 1000))))
-               throw(MAL, "mtime.timestamp_sub_msec_interval", SQLSTATE(22003) 
"overflow in calculation");
-       return MAL_SUCCEED;
-}
-static inline str
-timestamp_add_msec_interval(timestamp *ret, timestamp ts, lng ms)
-{
-       if (is_timestamp_nil(ts) || is_lng_nil(ms)) {
-               *ret = timestamp_nil;
-               return MAL_SUCCEED;
-       }
-       if (is_timestamp_nil((*ret = timestamp_add_usec(ts, ms * 1000))))
-               throw(MAL, "mtime.timestamp_add_msec_interval", SQLSTATE(22003) 
"overflow in calculation");
-       return MAL_SUCCEED;
-}
 func2(MTIMEtimestamp_sub_msec_interval, "timestamp_sub_msec_interval",
          timestamp, lng, timestamp, timestamp_sub_msec_interval, func2_except,
          DEC_VAR_R, DEC_VAR_R, DEC_VAR_R, DEC_INT,
@@ -576,28 +523,6 @@ func2(MTIMEtimestamp_add_msec_interval, 
          GET_NEXT_VAR, GET_NEXT_VAR,
          APPEND_VAR, FINISH_INT_SINGLE, CLEAR_NOTHING)
 
-static inline str
-timestamp_sub_month_interval(timestamp *ret, timestamp ts, int m)
-{
-       if (is_timestamp_nil(ts) || is_int_nil(m)) {
-               *ret = timestamp_nil;
-               return MAL_SUCCEED;
-       }
-       if (is_timestamp_nil((*ret = timestamp_add_month(ts, -m))))
-               throw(MAL, "mtime.timestamp_sub_month_interval", 
SQLSTATE(22003) "overflow in calculation");
-       return MAL_SUCCEED;
-}
-static inline str
-timestamp_add_month_interval(timestamp *ret, timestamp ts, int m)
-{
-       if (is_timestamp_nil(ts) || is_int_nil(m)) {
-               *ret = timestamp_nil;
-               return MAL_SUCCEED;
-       }
-       if (is_timestamp_nil((*ret = timestamp_add_month(ts, m))))
-               throw(MAL, "mtime.timestamp_add_month_interval", 
SQLSTATE(22003) "overflow in calculation");
-       return MAL_SUCCEED;
-}
 func2(MTIMEtimestamp_sub_month_interval, "timestamp_sub_month_interval",
          timestamp, int, timestamp, timestamp_sub_month_interval, func2_except,
          DEC_VAR_R, DEC_VAR_R, DEC_VAR_R, DEC_INT,
@@ -611,20 +536,6 @@ func2(MTIMEtimestamp_add_month_interval,
          GET_NEXT_VAR, GET_NEXT_VAR,
          APPEND_VAR, FINISH_INT_SINGLE, CLEAR_NOTHING)
 
-static inline daytime
-time_sub_msec_interval(const daytime t, const lng ms)
-{
-       if (is_lng_nil(ms))
-               return daytime_nil;
-       return daytime_add_usec_modulo(t, -ms * 1000);
-}
-static inline daytime
-time_add_msec_interval(const daytime t, const lng ms)
-{
-       if (is_lng_nil(ms))
-               return daytime_nil;
-       return daytime_add_usec_modulo(t, ms * 1000);
-}
 func2(MTIMEtime_sub_msec_interval, "time_sub_msec_interval",
          daytime, lng, daytime, time_sub_msec_interval, func2_noexcept,
          DEC_VAR_R, DEC_VAR_R, DEC_VAR_R, DEC_INT,
@@ -638,28 +549,6 @@ func2(MTIMEtime_add_msec_interval, "time
          GET_NEXT_VAR, GET_NEXT_VAR,
          APPEND_VAR, FINISH_INT_SINGLE, CLEAR_NOTHING)
 
-static inline str
-date_submonths(date *ret, date d, int m)
-{
-       if (is_date_nil(d) || is_int_nil(m)) {
-               *ret = date_nil;
-               return MAL_SUCCEED;
-       }
-       if (is_date_nil((*ret = date_add_month(d, -m))))
-               throw(MAL, "mtime.date_submonths", SQLSTATE(22003) "overflow in 
calculation");
-       return MAL_SUCCEED;
-}
-static inline str
-date_addmonths(date *ret, date d, int m)
-{
-       if (is_date_nil(d) || is_int_nil(m)) {
-               *ret = date_nil;
-               return MAL_SUCCEED;
-       }
-       if (is_date_nil((*ret = date_add_month(d, m))))
-               throw(MAL, "mtime.date_addmonths", SQLSTATE(22003) "overflow in 
calculation");
-       return MAL_SUCCEED;
-}
 func2(MTIMEdate_submonths, "date_submonths",
          date, int, date, date_submonths, func2_except,
          DEC_VAR_R, DEC_VAR_R, DEC_VAR_R, DEC_INT,
@@ -673,8 +562,6 @@ func2(MTIMEdate_addmonths, "date_addmont
          GET_NEXT_VAR, GET_NEXT_VAR,
          APPEND_VAR, FINISH_INT_SINGLE, CLEAR_NOTHING)
 
-#define date_to_msec_since_epoch(t) is_date_nil(t) ? lng_nil : 
(timestamp_diff(timestamp_create(t, daytime_create(0, 0, 0, 0)), unixepoch) / 
1000)
-#define daytime_to_msec_since_epoch(t) daytime_diff(t, daytime_create(0, 0, 0, 
0))
 func1(MTIMEdate_extract_century, "date_century", date, int,
          date_century, COPYFLAGS, func1_noexcept,
          DEC_VAR_R, DEC_VAR_R,
@@ -736,22 +623,6 @@ func1(MTIMEdaytime_extract_epoch_ms, "ep
          DEC_VAR_R, DEC_VAR_R,
          INIT_VARIN, INIT_VAROUT, GET_NEXT_VAR)
 
-static inline lng
-TSDIFF(timestamp t1, timestamp t2)
-{
-       lng diff = timestamp_diff(t1, t2);
-       if (!is_lng_nil(diff)) {
-#ifndef TRUNCATE_NUMBERS
-               if (diff < 0)
-                       diff = -((-diff + 500) / 1000);
-               else
-                       diff = (diff + 500) / 1000;
-#else
-               diff /= 1000;
-#endif
-       }
-       return diff;
-}
 func2(MTIMEtimestamp_diff_msec, "diff",
          timestamp, timestamp, lng, TSDIFF, func2_noexcept,
          DEC_VAR, DEC_VAR, DEC_VAR_R, DEC_INT,
@@ -759,26 +630,6 @@ func2(MTIMEtimestamp_diff_msec, "diff",
          GET_NEXT_VAR, GET_NEXT_VAR,
          APPEND_VAR, FINISH_INT_SINGLE, CLEAR_NOTHING)
 
-static inline int
-timestamp_century(const timestamp t)
-{
-       if (is_timestamp_nil(t))
-               return int_nil;
-       int y = date_year(timestamp_date(t));
-       if (y > 0)
-               return (y - 1) / 100 + 1;
-       else
-               return -((-y - 1) / 100 + 1);
-}
-#define timestamp_decade(t) is_timestamp_nil(t) ? int_nil : 
date_year(timestamp_date(t)) / 10
-#define timestamp_year(t) date_year(timestamp_date(t))
-#define timestamp_quarter(t) is_timestamp_nil(t) ? int_nil : 
(date_month(timestamp_date(t)) - 1) / 3 + 1
-#define timestamp_month(t) date_month(timestamp_date(t))
-#define timestamp_day(t) date_day(timestamp_date(t))
-#define timestamp_hours(t) daytime_hour(timestamp_daytime(t))
-#define timestamp_minutes(t) daytime_min(timestamp_daytime(t))
-#define timestamp_extract_usecond(ts)  daytime_sec_usec(timestamp_daytime(ts))
-#define timestamp_to_msec_since_epoch(t) is_timestamp_nil(t) ? lng_nil : 
(timestamp_diff(t, unixepoch) / 1000)
 func1(MTIMEtimestamp_century, "timestamp_century", timestamp, int,
          timestamp_century, COPYFLAGS, func1_noexcept,
          DEC_VAR_R, DEC_VAR_R,
@@ -820,13 +671,6 @@ func1(MTIMEtimestamp_extract_epoch_ms, "
          DEC_VAR_R, DEC_VAR_R,
          INIT_VARIN, INIT_VAROUT, GET_NEXT_VAR)
 
-#define sql_year(m) is_int_nil(m) ? int_nil : m / 12
-#define sql_month(m) is_int_nil(m) ? int_nil : m % 12
-#define sql_day(m) is_lng_nil(m) ? lng_nil : m / (24*60*60*1000)
-#define sql_hours(m) is_lng_nil(m) ? int_nil : (int) ((m % (24*60*60*1000)) / 
(60*60*1000))
-#define sql_minutes(m) is_lng_nil(m) ? int_nil : (int) ((m % (60*60*1000)) / 
(60*1000))
-#define sql_seconds(m) is_lng_nil(m) ? int_nil : (int) ((m % (60*1000)) / 1000)
-#define msec_since_epoch(ts)   ts
 func1(MTIMEsql_year, "sql_year", int, int,
          sql_year, COPYFLAGS, func1_noexcept,
          DEC_VAR_R, DEC_VAR_R,
diff --git a/monetdb5/modules/atoms/mtime.h b/monetdb5/modules/atoms/mtime.h
new file mode 100644
--- /dev/null
+++ b/monetdb5/modules/atoms/mtime.h
@@ -0,0 +1,187 @@
+/*
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0.  If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * Copyright 1997 - July 2008 CWI, August 2008 - 2022 MonetDB B.V.
+ */
+
+#ifndef __MTIME_H__
+#define __MTIME_H__
+
+#include "monetdb_config.h"
+#include "gdk.h"
+#include "gdk_time.h"
+#include "mal_interpreter.h"
+#include "mal_exception.h"
+
+/* TODO change dayint again into an int instead of lng */
+static inline lng
+date_diff_imp(const date d1, const date d2)
+{
+       int diff = date_diff(d1, d2);
+       return is_int_nil(diff) ? lng_nil : (lng) diff * (lng) (24*60*60*1000);
+}
+
+static inline daytime
+time_sub_msec_interval(const daytime t, const lng ms)
+{
+       if (is_lng_nil(ms))
+               return daytime_nil;
+       return daytime_add_usec_modulo(t, -ms * 1000);
+}
+
+static inline daytime
+time_add_msec_interval(const daytime t, const lng ms)
+{
+       if (is_lng_nil(ms))
+               return daytime_nil;
+       return daytime_add_usec_modulo(t, ms * 1000);
+}
+
+static inline str
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to