Changeset: 38a0180fecdc for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=38a0180fecdc
Modified Files:
        monetdb5/modules/atoms/mtime.c
        sql/backends/monet5/sql_datetrunc.c
        sql/test/BugTracker-2019/Tests/date_trunc.sql
Branch: datetrunc
Log Message:

Use new is_*_nil


diffs (154 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
@@ -1798,7 +1798,7 @@ MTIMEdate_extract_day(int *ret, const da
 str
 MTIMEdate_extract_ymd(int *year, int *month, int *day, const date *v)
 {
-       if (date_isnil(*v)) {
+       if (is_date_nil(*v)) {
                *year = int_nil;
                *month = int_nil;
                *day = int_nil;
diff --git a/sql/backends/monet5/sql_datetrunc.c 
b/sql/backends/monet5/sql_datetrunc.c
--- a/sql/backends/monet5/sql_datetrunc.c
+++ b/sql/backends/monet5/sql_datetrunc.c
@@ -13,7 +13,7 @@
 #define date_trunc_time_loop(NAME, TYPE, DIVISOR)      \
        if  ( strcmp(*scale, NAME) == 0){ \
                for( ; lo < hi; lo++)           \
-                       if (timestamp_isnil(bt[lo])) {                  \
+                       if (is_timestamp_nil(bt[lo])) {                 \
                                        dt[lo] = *timestamp_nil;                
\
                                        nils++;         \
                        } else {                                \
@@ -77,7 +77,7 @@ bat_date_trunc(bat *res, const str *scal
 
        if  ( strcmp(*scale, "day") == 0){ 
                for( ; lo < hi; lo++)           
-                       if (timestamp_isnil(bt[lo])) {                  
+                       if (is_timestamp_nil(bt[lo])) {                 
                                dt[lo] = *timestamp_nil;                
                        } else {                                
                                ts = bt[lo];                                    
@@ -106,7 +106,7 @@ bat_date_trunc(bat *res, const str *scal
 
 #define date_trunc_single_time(NAME, TYPE, DIVISOR)    \
        if  ( strcmp(*scale, NAME) == 0){ \
-               if (timestamp_isnil(*bt)) {                     \
+               if (is_timestamp_nil(*bt)) {                    \
                        *dt = *timestamp_nil;                   \
                } else {                                \
                        ts = *bt;                                       \
@@ -131,7 +131,7 @@ date_trunc(timestamp *dt, const str *sca
        date_trunc_single_time("hour", TIMESTAMP, (1000 * 60 * 24))
 
        if  ( strcmp(*scale, "day") == 0){ 
-               if (timestamp_isnil(*bt)) {                     
+               if (is_timestamp_nil(*bt)) {                    
                        *dt = *timestamp_nil;                   
                } else {                                
                        ts = *bt;                                       
@@ -140,20 +140,20 @@ date_trunc(timestamp *dt, const str *sca
        }       }
        
        if  ( strcmp(*scale, "week") == 0){ 
-               if (timestamp_isnil(*bt)) {                     
+               if (is_timestamp_nil(*bt)) {                    
                        *dt = *timestamp_nil;                   
                } else {                                
                        ts = *bt;                                       
                        ts.msecs = 0;
                        MTIMEdate_extract_ymd(&y, &m, &d, &ts.days);
                        MTIMEdate_extract_dayofweek(&dow, &ts.days);
-                       d =  d - dow + 1;
+                       d =  d - dow - 1;
                        MTIMEdate_create(&ts.days, &y, &m, &d);
                        *dt = ts;                                       
        }       }
        
        if  ( strcmp(*scale, "month") == 0){ 
-               if (timestamp_isnil(*bt)) {                     
+               if (is_timestamp_nil(*bt)) {                    
                        *dt = *timestamp_nil;                   
                } else {                                
                        ts = *bt;                                       
@@ -164,7 +164,7 @@ date_trunc(timestamp *dt, const str *sca
        }       }
        
        if  ( strcmp(*scale, "quarter") == 0){ 
-               if (timestamp_isnil(*bt)) {                     
+               if (is_timestamp_nil(*bt)) {                    
                        *dt = *timestamp_nil;                   
                } else {                                
                        ts = *bt;                                       
@@ -176,7 +176,7 @@ date_trunc(timestamp *dt, const str *sca
        }       }
 
        if  ( strcmp(*scale, "year") == 0){ 
-               if (timestamp_isnil(*bt)) {                     
+               if (is_timestamp_nil(*bt)) {                    
                        *dt = *timestamp_nil;                   
                } else {                                
                        ts = *bt;                                       
@@ -187,7 +187,7 @@ date_trunc(timestamp *dt, const str *sca
        }       }
 
        if  ( strcmp(*scale, "decade") == 0){ 
-               if (timestamp_isnil(*bt)) {                     
+               if (is_timestamp_nil(*bt)) {                    
                        *dt = *timestamp_nil;                   
                } else {                                
                        ts = *bt;                                       
@@ -199,7 +199,7 @@ date_trunc(timestamp *dt, const str *sca
        }       }
 
        if  ( strcmp(*scale, "century") == 0){ 
-               if (timestamp_isnil(*bt)) {                     
+               if (is_timestamp_nil(*bt)) {                    
                        *dt = *timestamp_nil;                   
                } else {                                
                        ts = *bt;                                       
@@ -211,7 +211,7 @@ date_trunc(timestamp *dt, const str *sca
        }       }
 
        if  ( strcmp(*scale, "millenium") == 0){ 
-               if (timestamp_isnil(*bt)) {                     
+               if (is_timestamp_nil(*bt)) {                    
                        *dt = *timestamp_nil;                   
                } else {                                
                        ts = *bt;                                       
diff --git a/sql/test/BugTracker-2019/Tests/date_trunc.sql 
b/sql/test/BugTracker-2019/Tests/date_trunc.sql
--- a/sql/test/BugTracker-2019/Tests/date_trunc.sql
+++ b/sql/test/BugTracker-2019/Tests/date_trunc.sql
@@ -1,16 +1,16 @@
-select timestamp '2019-02-17 02:08:12.345678';
+select timestamp '2119-02-17 02:08:12.345678';
 
-select date_trunc('microseconds', timestamp '2019-02-17 02:08:12.345678');
-select date_trunc('milliseconds', timestamp '2019-02-17 02:08:12.345678');
-select date_trunc('second', timestamp '2019-02-17 02:08:12.345678');
-select date_trunc('minute', timestamp '2019-02-17 02:08:12.345678');
-select date_trunc('hour', timestamp '2019-02-17 02:08:12.345678');
+select date_trunc('microseconds', timestamp '2119-02-17 02:08:12.345678');
+select date_trunc('milliseconds', timestamp '2119-02-17 02:08:12.345678');
+select date_trunc('second', timestamp '2119-02-17 02:08:12.345678');
+select date_trunc('minute', timestamp '2119-02-17 02:08:12.345678');
+select date_trunc('hour', timestamp '2119-02-17 02:08:12.345678');
 
-select date_trunc('day', timestamp '2019-02-17 02:08:12.345678');
-select date_trunc('week', timestamp '2019-02-17 02:08:12.345678');
-select date_trunc('month', timestamp '2019-02-17 02:08:12.345678');
-select date_trunc('quarter', timestamp '2019-02-17 02:08:12.345678');
-select date_trunc('year', timestamp '2019-02-17 02:08:12.345678');
-select date_trunc('decade', timestamp '2019-02-17 02:08:12.345678');
-select date_trunc('century', timestamp '2019-02-17 02:08:12.345678');
-select date_trunc('millennium', timestamp '2019-02-17 02:08:12.345678');
+select date_trunc('day', timestamp '2119-02-17 02:08:12.345678');
+select date_trunc('week', timestamp '2119-02-17 02:08:12.345678');
+select date_trunc('month', timestamp '2119-02-17 02:08:12.345678');
+select date_trunc('quarter', timestamp '2119-02-17 02:08:12.345678');
+select date_trunc('year', timestamp '2119-02-17 02:08:12.345678');
+select date_trunc('decade', timestamp '2119-02-17 02:08:12.345678');
+select date_trunc('century', timestamp '2119-02-17 02:08:12.345678');
+select date_trunc('millenium', timestamp '2119-02-17 02:08:12.345678');
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to