Changeset: 9e628ac1c632 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9e628ac1c632 Modified Files: sql/backends/monet5/generator/Tests/generator00.stable.out sql/backends/monet5/generator/Tests/generator03.stable.out sql/backends/monet5/generator/Tests/joins01.stable.out sql/backends/monet5/generator/generator.c Branch: Mar2018 Log Message:
Off-by-one error in generator_projection. diffs (56 lines): diff --git a/sql/backends/monet5/generator/Tests/generator00.stable.out b/sql/backends/monet5/generator/Tests/generator00.stable.out --- a/sql/backends/monet5/generator/Tests/generator00.stable.out +++ b/sql/backends/monet5/generator/Tests/generator00.stable.out @@ -177,7 +177,8 @@ Ready. % .L4 # table_name % value # name % tinyint # type -% 1 # length +% 2 # length +[ 10 ] [ 8 ] [ 4 ] [ 2 ] 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 @@ -138,6 +138,7 @@ Ready. % value # name % timestamp # type % 26 # length +[ 2008-03-04 18:00:00.000000 ] [ 2008-03-04 08:00:00.000000 ] [ 2008-03-03 22:00:00.000000 ] [ 2008-03-03 12:00:00.000000 ] diff --git a/sql/backends/monet5/generator/Tests/joins01.stable.out b/sql/backends/monet5/generator/Tests/joins01.stable.out --- a/sql/backends/monet5/generator/Tests/joins01.stable.out +++ b/sql/backends/monet5/generator/Tests/joins01.stable.out @@ -95,6 +95,7 @@ Ready. [ 2008-03-03 12:00:00.000000 ] [ 2008-03-03 22:00:00.000000 ] [ 2008-03-04 08:00:00.000000 ] +[ 2008-03-04 18:00:00.000000 ] #select * from generate_series(timestamp '2008-03-04 18:00',timestamp '2008-03-01 00:00',cast( '-10' as interval hour)) X, tmp Y where X.value = Y.i order by X.value, Y.i; % .x, sys.y # table_name % value, i # name diff --git a/sql/backends/monet5/generator/generator.c b/sql/backends/monet5/generator/generator.c --- a/sql/backends/monet5/generator/generator.c +++ b/sql/backends/monet5/generator/generator.c @@ -730,7 +730,7 @@ wrapup: v = (TPE*) Tloc(bn,0);\ for(; cnt-- > 0; ol ? *ol++ : o++){\ val = f + ((TPE) ( b->ttype == TYPE_void?o:*ol)) * s;\ - if ( (s > 0 && (val < f || val >= l)) || (s < 0 && (val<l || val >=f))) \ + if ( (s > 0 && (val < f || val >= l)) || (s < 0 && (val <= l || val > f))) \ continue;\ *v++ = val;\ c++;\ @@ -822,7 +822,7 @@ str VLTgenerator_projection(Client cntxt continue; if (s > 0 && ((val.days < f.days || (val.days == f.days && val.msecs < f.msecs)) || ((val.days>l.days || (val.days== l.days && val.msecs >= l.msecs))) ) ) continue; - if (s < 0 && ((val.days < l.days || (val.days == l.days && val.msecs < l.msecs)) || ((val.days>f.days || (val.days== f.days && val.msecs >= f.msecs))) ) ) + if (s < 0 && ((val.days < l.days || (val.days == l.days && val.msecs <= l.msecs)) || ((val.days > f.days || (val.days == f.days && val.msecs > f.msecs))) ) ) continue; *v++ = val; c++; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list