Changeset: 1abb39caea1e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1abb39caea1e
Modified Files:
        sql/backends/monet5/generator/Tests/generator03.stable.out
        sql/backends/monet5/sql_result.c
        
sql/test/BugDay_2005-10-06_2.9.3/Tests/cast_to_interval.SF-1019079.stable.out
        
sql/test/BugDay_2005-10-06_2.9.3/Tests/error_in_sql_parser.SF-1019122.stable.out
        sql/test/BugDay_2005-10-06_2.9.3/Tests/set_types.SF-932360.stable.out
        
sql/test/BugDay_2005-11-09_2.9.3/Tests/date_functions.SF-967145.stable.out
        
sql/test/BugDay_2005-11-09_2.9.3/Tests/interval_on_time_stamp.SF-1080488.stable.out
        
sql/test/BugDay_2005-12-19_2.9.3/Tests/cast_interval.SF.1280682.stable.out
        
sql/test/BugDay_2005-12-19_2.9.3/Tests/interval_times_int.SF-1281996.stable.out
        sql/test/BugTracker-2011/Tests/default-interval.Bug-2877.stable.out
        sql/test/BugTracker-2011/Tests/time_precision.Bug-2873.stable.out
        
sql/test/BugTracker-2012/Tests/incorrect_cast_from_double_to_int.Bug-2579.stable.out
        
sql/test/BugTracker-2012/Tests/now_results_in_illegal_argument.Bug-2978.stable.out
        sql/test/BugTracker-2012/Tests/timestamp-diff.Bug-3190.stable.out
        sql/test/BugTracker-2014/Tests/current_timestamp.Bug-3427.stable.out
        sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out
        sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out.single
        sql/test/BugTracker-2015/Tests/div_zero.Bug-3742.stable.out
        sql/test/BugTracker-2015/Tests/sum_interval.Bug-3785.stable.out
        sql/test/BugTracker/Tests/cast_interval2time.SF-1488247.stable.out
        sql/test/Tests/timezone.stable.out
        sql/test/VOC/Tests/median.Bug-3096.stable.out
        sql/test/bugs/Tests/default_with_cast.SF-1334486.stable.out
        sql/test/bugs/Tests/interval_convert_bugs-sf-1274077-1274085.stable.out
        sql/test/bugs/Tests/interval_parse_bug-sf-1263967.stable.out
        sql/test/pg_regress/Tests/alter_table.stable.out
        sql/test/pg_regress/Tests/date.stable.out
        sql/test/pg_regress/Tests/horology.stable.out
        sql/test/pg_regress/Tests/interval.stable.out
        sql/test/pg_regress/Tests/interval.stable.out.int128
        sql/test/pg_regress/Tests/reltime.stable.out
        sql/test/pg_regress/Tests/time.stable.out
        sql/test/pg_regress/Tests/timestamp.stable.out
        sql/test/pg_regress/Tests/timestamptz.stable.out
        sql/test/pg_regress/Tests/timetz.stable.out
Branch: Jul2015
Log Message:

Fix width calculation for interval types.


diffs (truncated from 791 to 300 lines):

diff --git a/sql/backends/monet5/generator/Tests/generator03.stable.out 
b/sql/backends/monet5/generator/Tests/generator03.stable.out
--- a/sql/backends/monet5/generator/Tests/generator03.stable.out
+++ b/sql/backends/monet5/generator/Tests/generator03.stable.out
@@ -34,7 +34,7 @@ Ready.
 % .L1 # table_name
 % L1 # name
 % sec_interval # type
-% 0 # length
+% 9 # length
 [ 36000.000    ]
 #select * from generate_series(
 #      timestamp '2008-03-01 00:00',
diff --git a/sql/backends/monet5/sql_result.c b/sql/backends/monet5/sql_result.c
--- a/sql/backends/monet5/sql_result.c
+++ b/sql/backends/monet5/sql_result.c
@@ -1363,7 +1363,9 @@ export_length(stream *s, int mtype, int 
        int ok = 1;
        size_t count = 0, incr = 0;;
 
-       if (mtype == TYPE_oid)
+       if (eclass == EC_SEC)
+               incr = 1;
+       else if (mtype == TYPE_oid)
                incr = 2;
        mtype = ATOMbasetype(mtype);
        if (mtype == TYPE_str) {
@@ -1396,7 +1398,7 @@ export_length(stream *s, int mtype, int 
                        }
                        ok = mvc_send_int(s, l);
                }
-       } else if (eclass == EC_NUM || eclass == EC_POS) {
+       } else if (eclass == EC_NUM || eclass == EC_POS || eclass == EC_MONTH 
|| eclass == EC_SEC) {
                count = 0;
                if (bid) {
                        BAT *b = BATdescriptor(bid);
@@ -1462,6 +1464,8 @@ export_length(stream *s, int mtype, int 
                                count = 0;
                        }
                }
+               if (eclass == EC_SEC && count < 5)
+                       count = 5;
                ok = mvc_send_lng(s, (lng) count);
                /* the following two could be done once by taking the
                   max value and calculating the number of digits from that
@@ -1477,7 +1481,7 @@ export_length(stream *s, int mtype, int 
                } else {        /* TYPE_dbl */
                        ok = mvc_send_int(s, 24);
                }
-       } else if (eclass == EC_DEC || eclass == EC_SEC) {
+       } else if (eclass == EC_DEC) {
                count = 1 + digits;
                if (scale > 0)
                        count += 1;
diff --git 
a/sql/test/BugDay_2005-10-06_2.9.3/Tests/cast_to_interval.SF-1019079.stable.out 
b/sql/test/BugDay_2005-10-06_2.9.3/Tests/cast_to_interval.SF-1019079.stable.out
--- 
a/sql/test/BugDay_2005-10-06_2.9.3/Tests/cast_to_interval.SF-1019079.stable.out
+++ 
b/sql/test/BugDay_2005-10-06_2.9.3/Tests/cast_to_interval.SF-1019079.stable.out
@@ -18,7 +18,7 @@ Ready.
 % .L1 # table_name
 % L1 # name
 % month_interval # type
-% 0 # length
+% 1 # length
 [ 0    ]
 
 # 12:42:49 >  
diff --git 
a/sql/test/BugDay_2005-10-06_2.9.3/Tests/error_in_sql_parser.SF-1019122.stable.out
 
b/sql/test/BugDay_2005-10-06_2.9.3/Tests/error_in_sql_parser.SF-1019122.stable.out
--- 
a/sql/test/BugDay_2005-10-06_2.9.3/Tests/error_in_sql_parser.SF-1019122.stable.out
+++ 
b/sql/test/BugDay_2005-10-06_2.9.3/Tests/error_in_sql_parser.SF-1019122.stable.out
@@ -21,7 +21,8 @@ Ready.
 % sys.t1019122 # table_name
 % m # name
 % month_interval # type
-% 0 # length
+% 1 # length
+#drop table t1019122;
 
 # 11:50:41 >  
 # 11:50:41 >  Done.
diff --git 
a/sql/test/BugDay_2005-10-06_2.9.3/Tests/set_types.SF-932360.stable.out 
b/sql/test/BugDay_2005-10-06_2.9.3/Tests/set_types.SF-932360.stable.out
--- a/sql/test/BugDay_2005-10-06_2.9.3/Tests/set_types.SF-932360.stable.out
+++ b/sql/test/BugDay_2005-10-06_2.9.3/Tests/set_types.SF-932360.stable.out
@@ -31,13 +31,13 @@ Ready.
 % .L # table_name
 % single_value # name
 % sec_interval # type
-% 0 # length
+% 6 # length
 [ 60.000       ]
 #select current_timezone;
 % .L # table_name
 % single_value # name
 % sec_interval # type
-% 0 # length
+% 5 # length
 [ 0.000        ]
 
 # 08:23:41 >  
diff --git 
a/sql/test/BugDay_2005-11-09_2.9.3/Tests/date_functions.SF-967145.stable.out 
b/sql/test/BugDay_2005-11-09_2.9.3/Tests/date_functions.SF-967145.stable.out
--- a/sql/test/BugDay_2005-11-09_2.9.3/Tests/date_functions.SF-967145.stable.out
+++ b/sql/test/BugDay_2005-11-09_2.9.3/Tests/date_functions.SF-967145.stable.out
@@ -28,13 +28,13 @@ Ready.
 % .L # table_name
 % sql_sub_current_date # name
 % month_interval # type
-% 0 # length
+% 1 # length
 [ 0    ]
 #select current_date() - current_date();
 % .L # table_name
 % sql_sub_current_date # name
 % month_interval # type
-% 0 # length
+% 1 # length
 [ 0    ]
 
 # 12:45:12 >  
diff --git 
a/sql/test/BugDay_2005-11-09_2.9.3/Tests/interval_on_time_stamp.SF-1080488.stable.out
 
b/sql/test/BugDay_2005-11-09_2.9.3/Tests/interval_on_time_stamp.SF-1080488.stable.out
--- 
a/sql/test/BugDay_2005-11-09_2.9.3/Tests/interval_on_time_stamp.SF-1080488.stable.out
+++ 
b/sql/test/BugDay_2005-11-09_2.9.3/Tests/interval_on_time_stamp.SF-1080488.stable.out
@@ -57,19 +57,19 @@ Ready.
 % .L # table_name
 % sql_add_single_value # name
 % month_interval # type
-% 0 # length
+% 1 # length
 [ 0    ]
 #select interval '00:00' hour to minute + interval '00:00' minute to second;
 % .L # table_name
 % sql_add_single_value # name
 % sec_interval # type
-% 0 # length
+% 5 # length
 [ 0.000        ]
 #select interval '2' hour + interval '74' minute;
 % .L # table_name
 % sql_add_single_value # name
 % sec_interval # type
-% 0 # length
+% 9 # length
 [ 11640.000    ]
 
 # 12:45:37 >  
diff --git 
a/sql/test/BugDay_2005-12-19_2.9.3/Tests/cast_interval.SF.1280682.stable.out 
b/sql/test/BugDay_2005-12-19_2.9.3/Tests/cast_interval.SF.1280682.stable.out
--- a/sql/test/BugDay_2005-12-19_2.9.3/Tests/cast_interval.SF.1280682.stable.out
+++ b/sql/test/BugDay_2005-12-19_2.9.3/Tests/cast_interval.SF.1280682.stable.out
@@ -18,13 +18,13 @@ Ready.
 % .L1 # table_name
 % L1 # name
 % month_interval # type
-% 0 # length
+% 2 # length
 [ 12   ]
 #select cast( 1 as interval day );
 % .L1 # table_name
 % L1 # name
 % sec_interval # type
-% 0 # length
+% 9 # length
 [ 86400.000    ]
 
 # 16:12:10 >  
diff --git 
a/sql/test/BugDay_2005-12-19_2.9.3/Tests/interval_times_int.SF-1281996.stable.out
 
b/sql/test/BugDay_2005-12-19_2.9.3/Tests/interval_times_int.SF-1281996.stable.out
--- 
a/sql/test/BugDay_2005-12-19_2.9.3/Tests/interval_times_int.SF-1281996.stable.out
+++ 
b/sql/test/BugDay_2005-12-19_2.9.3/Tests/interval_times_int.SF-1281996.stable.out
@@ -28,13 +28,13 @@ Ready.
 % .L # table_name
 % sql_mul_single_value # name
 % sec_interval # type
-% 0 # length
+% 5 # length
 [ 2.000        ]
 #select interval '1' second * 2;
 % .L # table_name
 % sql_mul_single_value # name
 % sec_interval # type
-% 0 # length
+% 5 # length
 [ 2.000        ]
 
 # 16:27:57 >  
diff --git 
a/sql/test/BugTracker-2011/Tests/default-interval.Bug-2877.stable.out 
b/sql/test/BugTracker-2011/Tests/default-interval.Bug-2877.stable.out
--- a/sql/test/BugTracker-2011/Tests/default-interval.Bug-2877.stable.out
+++ b/sql/test/BugTracker-2011/Tests/default-interval.Bug-2877.stable.out
@@ -56,7 +56,7 @@ Ready.
 % sys.table2877,       sys.table2877,  sys.table2877 # table_name
 % i,   c1,     c2 # name
 % int, sec_interval,   sec_interval # type
-% 1,   0,      0 # length
+% 1,   8,      8 # length
 [ 1,   3600.000,       3600.000        ]
 #rollback;
 
diff --git a/sql/test/BugTracker-2011/Tests/time_precision.Bug-2873.stable.out 
b/sql/test/BugTracker-2011/Tests/time_precision.Bug-2873.stable.out
--- a/sql/test/BugTracker-2011/Tests/time_precision.Bug-2873.stable.out
+++ b/sql/test/BugTracker-2011/Tests/time_precision.Bug-2873.stable.out
@@ -50,13 +50,13 @@ Ready.
 % .L # table_name
 % sql_sub_single_value # name
 % sec_interval # type
-% 0 # length
+% 5 # length
 [ 0.000        ]
 #select time(5) '20:04:04.947' - time(5) '20:04:04.847';
 % .L # table_name
 % sql_sub_single_value # name
 % sec_interval # type
-% 0 # length
+% 5 # length
 [ 0.100        ]
 #drop table t;
 
diff --git 
a/sql/test/BugTracker-2012/Tests/incorrect_cast_from_double_to_int.Bug-2579.stable.out
 
b/sql/test/BugTracker-2012/Tests/incorrect_cast_from_double_to_int.Bug-2579.stable.out
--- 
a/sql/test/BugTracker-2012/Tests/incorrect_cast_from_double_to_int.Bug-2579.stable.out
+++ 
b/sql/test/BugTracker-2012/Tests/incorrect_cast_from_double_to_int.Bug-2579.stable.out
@@ -90,13 +90,13 @@ Ready.
 % .L # table_name
 % sql_div_single_value # name
 % sec_interval # type
-% 0 # length
+% 5 # length
 [ 0.000        ]
 #SELECT '3.1'/5.1;
 % .L # table_name
 % sql_div_single_value # name
 % sec_interval # type
-% 0 # length
+% 5 # length
 [ 0.000        ]
 #SELECT 3.1/5.1;
 % .L # table_name
diff --git 
a/sql/test/BugTracker-2012/Tests/now_results_in_illegal_argument.Bug-2978.stable.out
 
b/sql/test/BugTracker-2012/Tests/now_results_in_illegal_argument.Bug-2978.stable.out
--- 
a/sql/test/BugTracker-2012/Tests/now_results_in_illegal_argument.Bug-2978.stable.out
+++ 
b/sql/test/BugTracker-2012/Tests/now_results_in_illegal_argument.Bug-2978.stable.out
@@ -51,19 +51,19 @@ Ready.
 % .L # table_name
 % current_timestamp # name
 % sec_interval # type
-% 0 # length
+% 5 # length
 [ 1.000        ]
 #select now() + interval '1' second - now();
 % .L # table_name
 % current_timestamp # name
 % sec_interval # type
-% 0 # length
+% 5 # length
 [ 1.000        ]
 #select now() - now();
 % .L # table_name
 % current_timestamp # name
 % sec_interval # type
-% 0 # length
+% 5 # length
 [ 0.000        ]
 
 # 12:53:46 >  
diff --git a/sql/test/BugTracker-2012/Tests/timestamp-diff.Bug-3190.stable.out 
b/sql/test/BugTracker-2012/Tests/timestamp-diff.Bug-3190.stable.out
--- a/sql/test/BugTracker-2012/Tests/timestamp-diff.Bug-3190.stable.out
+++ b/sql/test/BugTracker-2012/Tests/timestamp-diff.Bug-3190.stable.out
@@ -65,13 +65,13 @@ Ready.
 % sys.L # table_name
 % sql_sub_btime # name
 % sec_interval # type
-% 0 # length
+% 13 # length
 [ 189302400.000        ]
 #select btime - atime from time_table;
 % sys.L # table_name
 % sql_sub_btime # name
 % sec_interval # type
-% 0 # length
+% 13 # length
 [ 347068800.000        ]
 #drop table time_table;
 
diff --git 
a/sql/test/BugTracker-2014/Tests/current_timestamp.Bug-3427.stable.out 
b/sql/test/BugTracker-2014/Tests/current_timestamp.Bug-3427.stable.out
--- a/sql/test/BugTracker-2014/Tests/current_timestamp.Bug-3427.stable.out
+++ b/sql/test/BugTracker-2014/Tests/current_timestamp.Bug-3427.stable.out
@@ -67,7 +67,7 @@ Ready.
 % sys.x,       sys.x,  sys.L1, sys.L1 # table_name
 % i,   tn,     L1,     sql_sub_tc # name
 % int, timestamp,      sec_interval,   sec_interval # type
-% 1,   26,     0,      0 # length
+% 1,   26,     5,      5 # length
 [ 0,   NULL,   0.000,  0.000   ]
 #drop table x;
 #create table x(
@@ -82,7 +82,7 @@ Ready.
 % sys.x,       sys.x,  sys.L1, sys.L1 # table_name
 % i,   tn,     L1,     sql_sub_tc # name
 % int, time,   sec_interval,   sec_interval # type
-% 1,   8,      0,      0 # length
+% 1,   8,      5,      5 # length
 [ 0,   NULL,   0.000,  0.000   ]
 #drop table x;
 #declare t timestamp;
diff --git a/sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out 
b/sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out
--- a/sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out
+++ b/sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out
@@ -34,7 +34,7 @@ Ready.
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to