This message was forwarded from developers-l...@monetdb.org.  The MonetDB
mailing lists have moved to monetdb.org.  Please subscribe to
developers-l...@monetdb.org, and unsubscribe from this list.
See: http://mail.monetdb.org/mailman/listinfo/developers-list

Send developers-list mailing list submissions to
        developers-l...@monetdb.org

To subscribe or unsubscribe via the World Wide Web, visit
        http://mail.monetdb.org/mailman/listinfo/developers-list
or, via email, send a message with subject or body 'help' to
        developers-list-requ...@monetdb.org

You can reach the person managing the list at
        developers-list-ow...@monetdb.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of developers-list digest..."


Today's Topics:

   1. Re: MonetDB: Oct2012 - fixed bug 3209, ie first crossproduct
      if the ... (Ying Zhang)


----------------------------------------------------------------------

Message: 1
Date: Sun, 16 Dec 2012 20:08:01 +0100
From: Ying Zhang <y.zh...@cwi.nl>
To: developers-l...@monetdb.org
Cc: checkin-l...@monetdb.org
Subject: Re: MonetDB: Oct2012 - fixed bug 3209, ie first crossproduct
        if the ...
Message-ID: <df5cbab6-0ebb-437d-af37-a5b5c23e8...@cwi.nl>
Content-Type: text/plain; charset=windows-1252

Hai Niels,

Your fix works in Feb2013, but not in Oct2012?

Jennie

On Dec 15, 2012, at 12:29, Niels Nes wrote:

> Changeset: 8650dce52dd8 for MonetDB
> URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8650dce52dd8
> Modified Files:
>       sql/server/rel_exp.c
>       sql/server/rel_exp.h
> Branch: Oct2012
> Log Message:
> 
> fixed bug 3209, ie first crossproduct if the join expression consists
> of functions (these should have been pushed down, whenever possible).
> 
> 
> diffs (59 lines):
> 
> diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
> --- a/sql/server/rel_exp.c
> +++ b/sql/server/rel_exp.c
> @@ -1032,6 +1032,44 @@ exp_is_atom( sql_exp *e )
> }
> 
> static int
> +exps_has_func( list *exps)
> +{
> +     node *n;
> +     int has_func = 0;
> +
> +     for(n=exps->h; n && !has_func; n=n->next) 
> +             has_func |= exp_has_func(n->data);
> +     return has_func;
> +}
> +
> +int
> +exp_has_func( sql_exp *e )
> +{
> +     switch (e->type) {
> +     case e_atom:
> +             return 0;
> +     case e_convert:
> +             return exp_has_func(e->l);
> +     case e_func:
> +     case e_aggr:
> +             return 1;
> +     case e_cmp:
> +             if (e->flag == cmp_or) {
> +                     return (exps_has_func(e->l) || exps_has_func(e->r));
> +             } else if (e->flag == cmp_in || e->flag == cmp_notin || e->flag 
> == cmp_filter) {
> +                     return (exp_has_func(e->l) || exps_has_func(e->r));
> +             } else {
> +                     return (exp_has_func(e->l) || exp_has_func(e->r) || 
> +                                     (e->f && exp_has_func(e->f)));
> +             }
> +     case e_column:
> +     case e_psm:
> +             return 0;
> +     }
> +     return 0;
> +}
> +
> +static int
> exp_key( sql_exp *e )
> {
>       if (e->name)
> diff --git a/sql/server/rel_exp.h b/sql/server/rel_exp.h
> --- a/sql/server/rel_exp.h
> +++ b/sql/server/rel_exp.h
> @@ -105,6 +105,7 @@ extern int exp_is_eqjoin(sql_exp *e);
> extern int exp_is_correlation(sql_exp *e, sql_rel *r );
> extern int exp_is_join_exp(sql_exp *e);
> extern int exp_is_atom(sql_exp *e);
> +extern int exp_has_func(sql_exp *e);
> 
> extern sql_exp *exps_bind_column( list *exps, char *cname, int *ambiguous);
> extern sql_exp *exps_bind_column2( list *exps, char *rname, char *cname);
> _______________________________________________
> checkin-list mailing list
> checkin-l...@monetdb.org
> http://mail.monetdb.org/mailman/listinfo/checkin-list



------------------------------

_______________________________________________
developers-list mailing list
developers-l...@monetdb.org
http://mail.monetdb.org/mailman/listinfo/developers-list


End of developers-list Digest, Vol 4, Issue 13
**********************************************

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Monetdb-developers mailing list
Monetdb-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/monetdb-developers

Reply via email to