Changeset: fb9c92e89ef7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fb9c92e89ef7
Modified Files:
        monetdb5/modules/atoms/mtime.c
Branch: default
Log Message:

Some mtime functions take strings as input/output parameters, so I had do 
change the func1 and func2 macros to reflect this


diffs (truncated from 474 to 300 lines):

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
@@ -67,13 +67,39 @@ MTIMEcurrent_timestamp(timestamp *ret)
 
 #define is_str_nil strNil
 
-#define COPYFLAGS      do { bn->tsorted = b->tsorted; bn->trevsorted = 
b->trevsorted; } while (0)
+
+#define DEC_INT(INTYPE, VAR) INTYPE * VAR;
+
+#define INIT_INT(VAR, VAR_BAT) VAR = Tloc(VAR_BAT, 0);
+
+#define APPEND_INT(MALFUNC) dst[i] = res;
+
+#define GET_NEXT_INT(VAR) VAR[i]
+
+
+#define DEC_STR(INTYPE, VAR) BATiter VAR;
+
+#define INIT_STR(VAR, VAR_BAT) VAR = bat_iterator(VAR_BAT);
+
+#define APPEND_STR(MALFUNC) \
+       if (BUNappend(bn, res, false) != GDK_SUCCEED) { \
+               msg = createException(SQL, "batmtime." MALFUNC, SQLSTATE(HY013) 
MAL_MALLOC_FAIL); \
+               break; \
+       }
+
+#define GET_NEXT_STR(VAR) BUNtvar(VAR, i)
+
+
+#define DEC_NOTHING(A, B) ;
+
+#define COPYFLAGS      do { bn->tsorted = b1->tsorted; bn->trevsorted = 
b1->trevsorted; } while (0)
 #define SETFLAGS       do { bn->tsorted = bn->trevsorted = n < 2; } while (0)
-#define func1(NAME, NAMEBULK, MALFUNC, INTYPE, OUTYPE, FUNC, SETFLAGS, 
FUNC_CALL)      \
-mal_export str NAME(OUTYPE *ret, const INTYPE *src);                           
        \
+#define func1(NAME, NAMEBULK, MALFUNC, INTYPE, OUTTYPE, FUNC, SETFLAGS, 
FUNC_CALL, DEC_INPUT, DEC_OUTPUT, \
+                         INIT_INPUT, INIT_OUTPUT, GET_NEXT_INPUT)      \
+mal_export str NAME(OUTTYPE *ret, const INTYPE *src);                          
        \
 mal_export str NAMEBULK(bat *ret, const bat *bid);                             
                \
 str                                                                            
                                                                \
-NAME(OUTYPE *ret, const INTYPE *src)                                           
                        \
+NAME(OUTTYPE *ret, const INTYPE *src)                                          
                        \
 {                                                                              
                                                                \
        str msg = MAL_SUCCEED;                                                  
                                        \
        do {                                                                    
                                                        \
@@ -84,36 +110,36 @@ NAME(OUTYPE *ret, const INTYPE *src)                       
        
 str                                                                            
                                                                \
 NAMEBULK(bat *ret, const bat *bid)                                             
                                \
 {                                                                              
                                                                \
-       BAT *b = NULL, *bn = NULL;                                              
                                        \
+       BAT *b1 = NULL, *bn = NULL;                                             
                                        \
        BUN n;                                                                  
                                                        \
-       const INTYPE *src;                                                      
                                                \
-       OUTYPE *dst;                                                            
                                                \
+       DEC_INPUT(INTYPE, src1);                                                
                                        \
+       DEC_OUTPUT(OUTTYPE, dst);                                               
                                        \
        str msg = MAL_SUCCEED;                                                  
                                        \
                                                                                
                                                                \
-       if ((b = BATdescriptor(*bid)) == NULL)  {                               
                        \
+       if ((b1 = BATdescriptor(*bid)) == NULL) {                               
                        \
                msg = createException(MAL, "batmtime." MALFUNC,                 
                \
                          SQLSTATE(HY002) RUNTIME_OBJECT_MISSING);              
                        \
                goto bailout;                                                   
                                                \
        }                                                                       
                                                                \
-       n = BATcount(b);                                                        
                                                \
-       if ((bn = COLnew(b->hseqbase, TYPE_##OUTYPE, n, TRANSIENT)) == NULL) { \
+       n = BATcount(b1);                                                       
                                                \
+       if ((bn = COLnew(b1->hseqbase, TYPE_##OUTTYPE, n, TRANSIENT)) == NULL) 
{ \
                msg = createException(MAL, "batmtime." MALFUNC,                 
                \
                          SQLSTATE(HY013) MAL_MALLOC_FAIL);                     
                        \
                goto bailout;                                                   
                                                \
        }                                                                       
                                                                \
-       src = Tloc(b, 0);                                                       
                                                \
-       dst = Tloc(bn, 0);                                                      
                                                \
-       for (BUN i = 0; i < n; i++) {                                           
                                \
-               FUNC_CALL(FUNC, (dst[i]), src[i]);                              
                                \
+       INIT_INPUT(src1, b1);                                                   
                                        \
+       INIT_OUTPUT(dst, bn);                                                   
                                        \
+       for (BUN i = 0; i < n; i++) {                                           
                                \
+               FUNC_CALL(FUNC, (dst[i]), (GET_NEXT_INPUT(src1)));              
                \
        }                                                                       
                                                                \
-       bn->tnonil = b->tnonil;                                                 
                                        \
-       bn->tnil = b->tnil;                                                     
                                                \
+       bn->tnonil = b1->tnonil;                                                
                                        \
+       bn->tnil = b1->tnil;                                                    
                                        \
        BATsetcount(bn, n);                                                     
                                                \
        SETFLAGS;                                                               
                                                        \
        bn->tkey = false;                                                       
                                                \
 bailout:                                                                       
                                                        \
-       if (b)                                                                  
                                                        \
-               BBPunfix(b->batCacheid);                                        
                                        \
+       if (b1)                                                                 
                                                        \
+               BBPunfix(b1->batCacheid);                                       
                                        \
        if (msg && bn)                                                          
                                                \
                BBPreclaim(bn);                                                 
                                                \
        else if (bn)                                                            
                                                \
@@ -124,7 +150,8 @@ bailout:                                                    
                                                                        \
 #define func1_noexcept(FUNC, RET, PARAM) RET = FUNC(PARAM)
 #define func1_except(FUNC, RET, PARAM) msg = FUNC(&RET, PARAM); if (msg) break;
 
-#define func2(NAME, NAMEBULK, MALFUNC, INTYPE1, INTYPE2, OUTTYPE, FUNC, 
FUNC_CALL)     \
+#define func2(NAME, NAMEBULK, MALFUNC, INTYPE1, INTYPE2, OUTTYPE, FUNC, 
FUNC_CALL, DEC_INPUT1, DEC_INPUT2, DEC_OUTPUT, \
+                        INIT_INPUT1, INIT_INPUT2, INIT_OUTPUT, 
GET_NEXT_INPUT1, GET_NEXT_INPUT2, APPEND_NEXT)  \
 mal_export str NAME(OUTTYPE *ret, const INTYPE1 *v1, const INTYPE2 *v2); \
 mal_export str NAMEBULK(bat *ret, const bat *bid1, const bat *bid2);   \
 mal_export str NAMEBULK##_p1(bat *ret, const INTYPE1 *src1, const bat *bid2);  
\
@@ -143,9 +170,9 @@ NAMEBULK(bat *ret, const bat *bid1, cons
 {                                                                              
                                                                \
        BAT *b1 = NULL, *b2 = NULL, *bn = NULL;                                 
                        \
        BUN n;                                                                  
                                                        \
-       const INTYPE1 *src1;                                                    
                                        \
-       const INTYPE2 *src2;                                                    
                                        \
-       OUTTYPE *dst;                                                           
                                                \
+       DEC_INPUT1(INTYPE1, src1);                                              
                                        \
+       DEC_INPUT2(INTYPE2, src2);                                              
                                        \
+       DEC_OUTPUT(OUTTYPE, dst);                                               
                                        \
        str msg = MAL_SUCCEED;                                                  
                                        \
                                                                                
                                                                \
        b1 = BATdescriptor(*bid1);                                              
                                        \
@@ -166,11 +193,13 @@ NAMEBULK(bat *ret, const bat *bid1, cons
                          SQLSTATE(HY013) MAL_MALLOC_FAIL);                     
                        \
                goto bailout;                                                   
                                                \
        }                                                                       
                                                                \
-       src1 = Tloc(b1, 0);                                                     
                                                \
-       src2 = Tloc(b2, 0);                                                     
                                                \
-       dst = Tloc(bn, 0);                                                      
                                                \
-       for (BUN i = 0; i < n; i++) {                                           
                                \
-               FUNC_CALL(FUNC, (dst[i]), src1[i], src2[i]);                    
                \
+       INIT_INPUT1(src1, b1);                                                  
                                        \
+       INIT_INPUT2(src2, b2);                                                  
                                        \
+       INIT_OUTPUT(dst, bn);                                                   
                                        \
+       for (BUN i = 0; i < n; i++) {                                           
                                \
+               OUTTYPE res;                                                    
                                                \
+               FUNC_CALL(FUNC, (res), (GET_NEXT_INPUT1(src1)), 
(GET_NEXT_INPUT2(src2)));       \
+               APPEND_NEXT(MALFUNC);                                           
                                        \
        }                                                                       
                                                                \
        bn->tnonil = b1->tnonil & b2->tnonil;                                   
                        \
        bn->tnil = b1->tnil | b2->tnil;                                         
                                \
@@ -194,8 +223,8 @@ NAMEBULK##_p1(bat *ret, const INTYPE1 *s
 {                                                                              
                                                                \
        BAT *b2 = NULL, *bn = NULL;                                             
                                        \
        BUN n;                                                                  
                                                        \
-       const INTYPE2 *src2;                                                    
                                        \
-       OUTTYPE *dst;                                                           
                                                \
+       DEC_INPUT2(INTYPE2, src2);                                              
                                        \
+       DEC_OUTPUT(OUTTYPE, dst);                                               
                                        \
        str msg = MAL_SUCCEED;                                                  
                                        \
                                                                                
                                                                \
        if ((b2 = BATdescriptor(*bid2)) == NULL) {                              
                        \
@@ -209,10 +238,12 @@ NAMEBULK##_p1(bat *ret, const INTYPE1 *s
                          SQLSTATE(HY013) MAL_MALLOC_FAIL);                     
                        \
                goto bailout;                                                   
                                                \
        }                                                                       
                                                                \
-       src2 = Tloc(b2, 0);                                                     
                                                \
-       dst = Tloc(bn, 0);                                                      
                                                \
-       for (BUN i = 0; i < n; i++) {                                           
                                \
-               FUNC_CALL(FUNC, (dst[i]), (*src1), src2[i]);                    
                \
+       INIT_INPUT2(src2, b2);                                                  
                                        \
+       INIT_OUTPUT(dst, bn);                                                   
                                        \
+       for (BUN i = 0; i < n; i++) {                                           
                                \
+               OUTTYPE res;                                                    
                                                \
+               FUNC_CALL(FUNC, (res), *src1, (GET_NEXT_INPUT2(src2)));         
        \
+               APPEND_NEXT(MALFUNC);                                           
                                        \
        }                                                                       
                                                                \
        bn->tnonil = !is_##INTYPE1##_nil(*src1) && b2->tnonil;                  
        \
        bn->tnil = is_##INTYPE1##_nil(*src1) || b2->tnil;                       
                \
@@ -234,8 +265,8 @@ NAMEBULK##_p2(bat *ret, const bat *bid1,
 {                                                                              
                                                                \
        BAT *b1 = NULL, *bn = NULL;                                             
                                        \
        BUN n;                                                                  
                                                        \
-       const INTYPE1 *src1;                                                    
                                        \
-       OUTTYPE *dst;                                                           
                                                \
+       DEC_INPUT1(INTYPE1, src1);                                              
                                        \
+       DEC_OUTPUT(OUTTYPE, dst);                                               
                                        \
        str msg = MAL_SUCCEED;                                                  
                                        \
                                                                                
                                                                \
        if ((b1 = BATdescriptor(*bid1)) == NULL) {                              
                        \
@@ -249,10 +280,12 @@ NAMEBULK##_p2(bat *ret, const bat *bid1,
                          SQLSTATE(HY013) MAL_MALLOC_FAIL);                     
                        \
                goto bailout;                                                   
                                                \
        }                                                                       
                                                                \
-       src1 = Tloc(b1, 0);                                                     
                                                \
-       dst = Tloc(bn, 0);                                                      
                                                \
-       for (BUN i = 0; i < n; i++) {                                           
                                \
-               FUNC_CALL(FUNC, (dst[i]), src1[i], (*src2));                    
                \
+       INIT_INPUT1(src1, b1);                                                  
                                        \
+       INIT_OUTPUT(dst, bn);                                                   
                                        \
+       for (BUN i = 0; i < n; i++) {                                           
                                \
+               OUTTYPE res;                                                    
                                                \
+               FUNC_CALL(FUNC, (res), (GET_NEXT_INPUT1(src1)), *src2);         
        \
+               APPEND_NEXT(MALFUNC);                                           
                                        \
        }                                                                       
                                                                \
        bn->tnonil = b1->tnonil && !is_##INTYPE2##_nil(*src2);                  
        \
        bn->tnil = b1->tnil || is_##INTYPE2##_nil(*src2);                       
                \
@@ -273,8 +306,10 @@ 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;
 
-func2(MTIMEdate_diff, MTIMEdate_diff_bulk, "diff", date, date, int, date_diff, 
func2_noexcept)
-func2(MTIMEdaytime_diff_msec, MTIMEdaytime_diff_msec_bulk, "diff", daytime, 
daytime, lng, daytime_diff, func2_noexcept)
+func2(MTIMEdate_diff, MTIMEdate_diff_bulk, "diff", date, date, int, date_diff, 
func2_noexcept,
+        DEC_INT, DEC_INT, DEC_INT, INIT_INT, INIT_INT, INIT_INT, GET_NEXT_INT, 
GET_NEXT_INT, APPEND_INT)
+func2(MTIMEdaytime_diff_msec, MTIMEdaytime_diff_msec_bulk, "diff", daytime, 
daytime, lng, daytime_diff, func2_noexcept,
+        DEC_INT, DEC_INT, DEC_INT, INIT_INT, INIT_INT, INIT_INT, GET_NEXT_INT, 
GET_NEXT_INT, APPEND_INT)
 
 #define func2chk(NAME, NAMEBULK, MALFUNC, INTYPE1, INTYPE2, OUTTYPE, FUNC)     
\
 mal_export str NAME(OUTTYPE *ret, const INTYPE1 *v1, const INTYPE2 *v2); \
@@ -468,26 +503,40 @@ time_add_msec_interval(const daytime t, 
                return daytime_nil;
        return daytime_add_usec_modulo(t, ms * 1000);
 }
-func2(MTIMEtime_sub_msec_interval, MTIMEtime_sub_msec_interval_bulk, 
"time_sub_msec_interval", daytime, lng, daytime, time_sub_msec_interval, 
func2_noexcept)
-func2(MTIMEtime_add_msec_interval, MTIMEtime_add_msec_interval_bulk, 
"time_add_msec_interval", daytime, lng, daytime, time_add_msec_interval, 
func2_noexcept)
+func2(MTIMEtime_sub_msec_interval, MTIMEtime_sub_msec_interval_bulk, 
"time_sub_msec_interval", daytime, lng, daytime, time_sub_msec_interval, 
func2_noexcept, 
+         DEC_INT, DEC_INT, DEC_INT, INIT_INT, INIT_INT, INIT_INT, 
GET_NEXT_INT, GET_NEXT_INT, APPEND_INT)
+func2(MTIMEtime_add_msec_interval, MTIMEtime_add_msec_interval_bulk, 
"time_add_msec_interval", daytime, lng, daytime, time_add_msec_interval, 
func2_noexcept, 
+         DEC_INT, DEC_INT, DEC_INT, INIT_INT, INIT_INT, INIT_INT, 
GET_NEXT_INT, GET_NEXT_INT, APPEND_INT)
 
 #define date_submonths(d, m) date_add_month(d, -m)
 #define date_addmonths(d, m) date_add_month(d, m)
 func2chk(MTIMEdate_submonths, MTIMEdate_submonths_bulk, "date_submonths", 
date, int, date, date_submonths)
 func2chk(MTIMEdate_addmonths, MTIMEdate_addmonths_bulk, "date_addmonths", 
date, int, date, date_addmonths)
 
-func1(MTIMEdate_extract_century, MTIMEdate_extract_century_bulk, 
"date_century", date, int, date_century, COPYFLAGS, func1_noexcept)
-func1(MTIMEdate_extract_decade, MTIMEdate_extract_decade_bulk, "date_decade", 
date, int, date_decade, COPYFLAGS, func1_noexcept)
-func1(MTIMEdate_extract_year, MTIMEdate_extract_year_bulk, "date_year", date, 
int, date_year, COPYFLAGS, func1_noexcept)
-func1(MTIMEdate_extract_quarter, MTIMEdate_extract_quarter_bulk, 
"date_quarter", date, int, date_quarter, SETFLAGS, func1_noexcept)
-func1(MTIMEdate_extract_month, MTIMEdate_extract_month_bulk, "date_month", 
date, int, date_month, SETFLAGS, func1_noexcept)
-func1(MTIMEdate_extract_day, MTIMEdate_extract_day_bulk, "date_day", date, 
int, date_day, SETFLAGS, func1_noexcept)
-func1(MTIMEdate_extract_dayofyear, MTIMEdate_extract_dayofyear_bulk, 
"date_dayofyear", date, int, date_dayofyear, SETFLAGS, func1_noexcept)
-func1(MTIMEdate_extract_weekofyear, MTIMEdate_extract_weekofyear_bulk, 
"date_weekofyear", date, int, date_weekofyear, SETFLAGS, func1_noexcept)
-func1(MTIMEdate_extract_dayofweek, MTIMEdate_extract_dayofweek_bulk, 
"date_dayofweek", date, int, date_dayofweek, SETFLAGS, func1_noexcept)
-func1(MTIMEdaytime_extract_hours, MTIMEdaytime_extract_hours_bulk, 
"daytime_hour", daytime, int, daytime_hour, COPYFLAGS, func1_noexcept)
-func1(MTIMEdaytime_extract_minutes, MTIMEdaytime_extract_minutes_bulk, 
"daytime_minutes", daytime, int, daytime_min, SETFLAGS, func1_noexcept)
-func1(MTIMEdaytime_extract_sql_seconds, MTIMEdaytime_extract_sql_seconds_bulk, 
"daytime_seconds", daytime, int, daytime_sec_usec, SETFLAGS, func1_noexcept)
+func1(MTIMEdate_extract_century, MTIMEdate_extract_century_bulk, 
"date_century", date, int, date_century, COPYFLAGS, func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEdate_extract_decade, MTIMEdate_extract_decade_bulk, "date_decade", 
date, int, date_decade, COPYFLAGS, func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEdate_extract_year, MTIMEdate_extract_year_bulk, "date_year", date, 
int, date_year, COPYFLAGS, func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEdate_extract_quarter, MTIMEdate_extract_quarter_bulk, 
"date_quarter", date, int, date_quarter, SETFLAGS, func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEdate_extract_month, MTIMEdate_extract_month_bulk, "date_month", 
date, int, date_month, SETFLAGS, func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEdate_extract_day, MTIMEdate_extract_day_bulk, "date_day", date, 
int, date_day, SETFLAGS, func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEdate_extract_dayofyear, MTIMEdate_extract_dayofyear_bulk, 
"date_dayofyear", date, int, date_dayofyear, SETFLAGS, func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEdate_extract_weekofyear, MTIMEdate_extract_weekofyear_bulk, 
"date_weekofyear", date, int, date_weekofyear, SETFLAGS, func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEdate_extract_dayofweek, MTIMEdate_extract_dayofweek_bulk, 
"date_dayofweek", date, int, date_dayofweek, SETFLAGS, func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEdaytime_extract_hours, MTIMEdaytime_extract_hours_bulk, 
"daytime_hour", daytime, int, daytime_hour, COPYFLAGS, func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEdaytime_extract_minutes, MTIMEdaytime_extract_minutes_bulk, 
"daytime_minutes", daytime, int, daytime_min, SETFLAGS, func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEdaytime_extract_sql_seconds, MTIMEdaytime_extract_sql_seconds_bulk, 
"daytime_seconds", daytime, int, daytime_sec_usec, SETFLAGS, func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
 
 static inline lng
 TSDIFF(timestamp t1, timestamp t2)
@@ -505,7 +554,8 @@ TSDIFF(timestamp t1, timestamp t2)
        }
        return diff;
 }
-func2(MTIMEtimestamp_diff_msec, MTIMEtimestamp_diff_msec_bulk, "diff", 
timestamp, timestamp, lng, TSDIFF, func2_noexcept)
+func2(MTIMEtimestamp_diff_msec, MTIMEtimestamp_diff_msec_bulk, "diff", 
timestamp, timestamp, lng, TSDIFF, func2_noexcept, 
+         DEC_INT, DEC_INT, DEC_INT, INIT_INT, INIT_INT, INIT_INT, 
GET_NEXT_INT, GET_NEXT_INT, APPEND_INT)
 
 static inline int
 timestamp_century(const timestamp t)
@@ -526,15 +576,24 @@ timestamp_century(const timestamp 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))
-func1(MTIMEtimestamp_century, MTIMEtimestamp_century_bulk, 
"timestamp_century", timestamp, int, timestamp_century, COPYFLAGS, 
func1_noexcept)
-func1(MTIMEtimestamp_decade, MTIMEtimestamp_decade_bulk, "timestamp_decade", 
timestamp, int, timestamp_decade, COPYFLAGS, func1_noexcept)
-func1(MTIMEtimestamp_year, MTIMEtimestamp_year_bulk, "timestamp_year", 
timestamp, int, timestamp_year, COPYFLAGS, func1_noexcept)
-func1(MTIMEtimestamp_quarter, MTIMEtimestamp_quarter_bulk, 
"timestamp_quarter", timestamp, int, timestamp_quarter, SETFLAGS, 
func1_noexcept)
-func1(MTIMEtimestamp_month, MTIMEtimestamp_month_bulk, "timestamp_month", 
timestamp, int, timestamp_month, SETFLAGS, func1_noexcept)
-func1(MTIMEtimestamp_day, MTIMEtimestamp_day_bulk, "timestamp_day", timestamp, 
int, timestamp_day, SETFLAGS, func1_noexcept)
-func1(MTIMEtimestamp_hours, MTIMEtimestamp_hours_bulk, "timestamp_hours", 
timestamp, int, timestamp_hours, SETFLAGS, func1_noexcept)
-func1(MTIMEtimestamp_minutes, MTIMEtimestamp_minutes_bulk, 
"timestamp_minutes", timestamp, int, timestamp_minutes, SETFLAGS, 
func1_noexcept)
-func1(MTIMEtimestamp_sql_seconds, MTIMEtimestamp_sql_seconds_bulk, 
"sql_seconds", timestamp, int, timestamp_extract_usecond, SETFLAGS, 
func1_noexcept)
+func1(MTIMEtimestamp_century, MTIMEtimestamp_century_bulk, 
"timestamp_century", timestamp, int, timestamp_century, COPYFLAGS, 
func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEtimestamp_decade, MTIMEtimestamp_decade_bulk, "timestamp_decade", 
timestamp, int, timestamp_decade, COPYFLAGS, func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEtimestamp_year, MTIMEtimestamp_year_bulk, "timestamp_year", 
timestamp, int, timestamp_year, COPYFLAGS, func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEtimestamp_quarter, MTIMEtimestamp_quarter_bulk, 
"timestamp_quarter", timestamp, int, timestamp_quarter, SETFLAGS, 
func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEtimestamp_month, MTIMEtimestamp_month_bulk, "timestamp_month", 
timestamp, int, timestamp_month, SETFLAGS, func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEtimestamp_day, MTIMEtimestamp_day_bulk, "timestamp_day", timestamp, 
int, timestamp_day, SETFLAGS, func1_noexcept,
+         DEC_INT, DEC_INT, INIT_INT, INIT_INT, GET_NEXT_INT)
+func1(MTIMEtimestamp_hours, MTIMEtimestamp_hours_bulk, "timestamp_hours", 
timestamp, int, timestamp_hours, SETFLAGS, func1_noexcept,
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to