[Monetdb-developers] MonetDB: Feb2010 - Various small bugfixes (in pf property infere...

Stefan Manegold Stefan.Manegold at cwi.nl
Tue Jul 6 15:56:56 CEST 2010


Jan,

are this checkin to the Feb2010 branch (changeset 1e2808a8e416) and your
other checkin to the Jun2010 branch (changeset cc8b3ce4c30a) meant for these
branches, only, or should they also be propagated to (merged into) the
Jun2010 branch (changeset 1e2808a8e416) and default branch (both
changesets).

In either case, do you take care of the respective merges (both doing and
preventing the propagation require merging the heads) yourself, or do you
prefer us to do them?

Thanks!

Stefan

On Tue, Jul 06, 2010 at 03:32:22PM +0200, Jan Rittinger wrote:
> Changeset: 1e2808a8e416 for MonetDB
> URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1e2808a8e416
> Modified Files:
> 	pathfinder/compiler/algebra/opt/opt_complex.c
> 	pathfinder/compiler/algebra/prop/prop_dom.c
> 	pathfinder/compiler/sql/lalg2sql.brg
> Branch: Feb2010
> Log Message:
> 
> Various small bugfixes (in pf property inference, optimizations & SQL code generation).
> 
> 
> diffs (63 lines):
> 
> diff -r a7a0e0845e56 -r 1e2808a8e416 pathfinder/compiler/algebra/opt/opt_complex.c
> --- a/pathfinder/compiler/algebra/opt/opt_complex.c	Tue Jul 06 07:29:54 2010 +0200
> +++ b/pathfinder/compiler/algebra/opt/opt_complex.c	Tue Jul 06 15:32:06 2010 +0200
> @@ -2118,20 +2118,21 @@
>                  for (unsigned int i = 0; i < schema.count; i++)
>                      schema.items[i].name =
>                          PFord_order_col_at (p->sem.sort.sortby, i);
> -                 if (PFprop_ckey (p->prop, schema)) {
> -                     *p = *PFla_rowrank (
> -                               L(p),
> -                               p->sem.sort.res,
> -                               p->sem.sort.sortby);
> -                    modified = true;
> -                    break;
> -                 }
> +                if (PFprop_ckey (p->prop, schema)) {
> +                    *p = *PFla_rowrank (
> +                              L(p),
> +                              p->sem.sort.res,
> +                              p->sem.sort.sortby);
> +                   modified = true;
> +                   break;
> +                }
>              }
>  
>              /* Replace the rownumber operator by a projection
>                 if only its value distribution (keys) are required
>                 instead of its real values. */
>              if (!PFprop_req_value_col (p->prop, p->sem.sort.res) &&
> +		!p->sem.sort.part &&
>                  PFord_count (p->sem.sort.sortby) == 1 &&
>                  PFprop_key (p->prop,
>                              PFord_order_col_at (p->sem.sort.sortby, 0))) {
> diff -r a7a0e0845e56 -r 1e2808a8e416 pathfinder/compiler/algebra/prop/prop_dom.c
> --- a/pathfinder/compiler/algebra/prop/prop_dom.c	Tue Jul 06 07:29:54 2010 +0200
> +++ b/pathfinder/compiler/algebra/prop/prop_dom.c	Tue Jul 06 15:32:06 2010 +0200
> @@ -907,9 +907,11 @@
>                                          L(n)->schema.items[i].name),
>                              dom);
>  
> -                add_disjdom (dom,
> -                             PFprop_dom (R(n)->prop,
> -                                         L(n)->schema.items[i].name));
> +                /* we can only infer the disjointness for a single column */
> +                if (n->schema.count == 1)
> +                    add_disjdom (dom,
> +                                 PFprop_dom (R(n)->prop,
> +                                             L(n)->schema.items[i].name));
>              }
>              break;
>  
> diff -r a7a0e0845e56 -r 1e2808a8e416 pathfinder/compiler/sql/lalg2sql.brg
> --- a/pathfinder/compiler/sql/lalg2sql.brg	Tue Jul 06 07:29:54 2010 +0200
> +++ b/pathfinder/compiler/sql/lalg2sql.brg	Tue Jul 06 15:32:06 2010 +0200
> @@ -4078,7 +4078,7 @@
>                          }
>                          /* In case the column did not exist in
>                             the column list already ... */
> -                        if (!found)
> +                        if (!found && !IS_LITERAL(expr))
>                              /* ... extend the group by list. */
>                              groupbylist = column_list (groupbylist, expr);
>                      }   break;
> _______________________________________________
> Checkin-list mailing list
> Checkin-list at monetdb.org
> http://mail.monetdb.org/mailman/listinfo/checkin-list

-- 
| Dr. Stefan Manegold | mailto:Stefan.Manegold at cwi.nl |
| CWI,  P.O.Box 94079 | http://www.cwi.nl/~manegold/  |
| 1090 GB Amsterdam   | Tel.: +31 (20) 592-4212       |
| The Netherlands     | Fax : +31 (20) 592-4199       |




More information about the developers-list mailing list