[prev in list] [next in list] [prev in thread] [next in thread] 

List:       monetdb-developers
Subject:    Re: [Monetdb-developers] [Monetdb-checkins]
From:       Tang Nan <joe.ntang () gmail ! com>
Date:       2009-12-06 17:13:30
Message-ID: 3041d170912060913i41dc27dr19574ea1d6baf092 () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hi Stefan,

I have two simple questions concerning the compilation errors for pma.mx.

(i) pma.mx:393: parameter "dummy" was set but never used, here "dummy" is
defined for PMAdel_@1(void *dummy, bat *bid, oid *pos).
I use "void *dummy" since this function has no input parameters. What I did
is in line 401 using "dummy=0", but the compiler still complains.
What is the right way to handle it?

(ii) the other question is still about type conversion. many warnings are
like this "slen = ceil(dstep);" while the lhs is a BUN while the rhs is a
double value.
Is "slen = (BUN) ceil(dstep)" a right way?

many thanks,
Nan Tang

On Fri, Dec 4, 2009 at 4:41 PM, Stefan Manegold <Stefan.Manegold@cwi.nl>wrote:

> Nan,
>
> in addition to Sjoerd's comments, I noticed that your approach to
> solving/avoiding some of the type mismatch complaints on Windows
> is to add an explicit cast, in most cases from type oid to type int.
> The latter is 32-bit (signed) on all platforms, while the former can be
> either 32-bit or 64-bit (unsigned, but only 31/63 bits are actually used).
> In case oid is 64-(63-)bit, casting to int might result in an overflow;
> I did not see any checks or assertions to ensure that such overflows cannot
> happen or are detected properly.
>
> As far as I can see, most of the cases deal with variable that (explicitly
> or implicitly) represent the number of BUNs in a BAT. For that purpose, you
> should better use type BUN in C code and :wrd in MAL, instead of mixing oid
> & int. :wrd is 32-bit on 32-bit systems and 64-bit on 64-bit systems
> (signed); BUN is large enough to hold the max. number of BUNs allowed per
> BAT, i.e., 32-bit on 32-bit systems and 64-bit systems with 32-bit OIDs,
> and
> 64-bit on 64-bit systems with 64-bit OIDs (unsigned, but only 31/63 bits
> are
> used).
>
> Let me know, in case you need more advice about the MonetDB type system and
> how to use it.
>
> Stefan
>
> On Fri, Dec 04, 2009 at 10:27:01AM +0100, Sjoerd Mullender wrote:
> > I noticed that you return constant strings when an error occurs.  This
> > doesn't work since the interpreter expects that strings are allocated
> > with GDKmalloc (i.e., it calls GDKfree on the error messages).
> >
> > When you want to return an error, use the macro throw() (see numerous
> > examples in the code).
> >
> > Also, I noticed that there are calls to PMAnew in your code that don't
> > check the return value (which could be an allocated string per the
> > above), so there is a potential memory leak here.  (Plus, when PMAnew
> > fails for whatever reason, you may not want to continue.)
> >
> > This latter remark might be true for other functions.  I didn't check.
> >
> > Tang Nan wrote:
> > > Update of /cvsroot/monetdb/MonetDB5/src/modules/mal
> > > In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:
> /tmp/cvs-serv28068/src/modules/mal
> > >
> > > Modified Files:
> > >     pma.mx
> > > Log Message:
> > > fix some bugs about type conversion failure on Windows
> > >
> > >
> > > Index: pma.mx
> > > ===================================================================
> > > RCS file: /cvsroot/monetdb/MonetDB5/src/modules/mal/pma.mx,v
> > > retrieving revision 1.7
> > > retrieving revision 1.8
> > > diff -u -d -r1.7 -r1.8
> > > --- pma.mx  2 Nov 2009 16:53:38 -0000       1.7
> > > +++ pma.mx  4 Dec 2009 08:52:46 -0000       1.8
> > > @@ -75,10 +75,6 @@
> > >  @:pma_mal(lng)@
> > >  @:pma_mal(flt)@
> > >  @:pma_mal(dbl)@
> > > -@(
> > > -StM: disabled as the code clearly cannot handle type str (yet?)
> > > -@:pma_mal(str)@
> > > -@)
> > >
> > >  @+ PMA API
> > >  @h
> > > @@ -115,10 +111,6 @@
> > >  @:pma_decl(lng)@
> > >  @:pma_decl(flt)@
> > >  @:pma_decl(dbl)@
> > > -@(
> > > -StM: disabled as the code clearly cannot handle type str (yet?)
> > > -@:pma_decl(str)@
> > > -@)
> > >  #endif     /* _PMA_H_ */
> > >
> > >  @+ PMA implementation
> > > @@ -155,10 +147,6 @@
> > >     for (cnt = PMA_SEG; cnt < *sz; cnt <<= 1);      /* figure out the
> size */
> > >     b = BATnew(TYPE_void, *tpe, cnt);
> > >     if (b) {
> > > -@(
> > > -StM: disabled as the code clearly cannot handle other than fixed-size
> linear types (yet?)
> > > -           var_t nil_off;
> > > -@)
> > >             switch(ATOMstorage(*tpe)) {
> > >             case TYPE_chr: @:fillnill(chr, chr_nil)@
> > >             case TYPE_bte: @:fillnill(bte, bte_nil)@
> > > @@ -168,15 +156,8 @@
> > >             case TYPE_flt: @:fillnill(flt, flt_nil)@
> > >             case TYPE_dbl: @:fillnill(dbl, dbl_nil)@
> > >             case TYPE_ptr: @:fillnill(ptr, ptr_nil)@
> > > -           default:
> > > -                   BBPunfix(b->batCacheid);
> > > -                   return "PMAnew: type not supported (yet?)";
> > > -@(
> > > -StM: disabled as the code clearly cannot handle other than fixed-size
> linear types (yet?)
> > > -                          BUNins(b, NULL, (ptr)str_nil, FALSE);
> > > -                          nil_off = *(var_t*) Tloc(b, BUNfirst(b));
> > > -                          @:fillnill(wrd, nil_off)@
> > > -@)
> > > +           default:                BBPunfix(b->batCacheid);
> > > +                                           return "PMAnew: type not
> supported (yet?)";
> > >             }
> > >             BATsetcount(b, cnt);
> > >             b->tsorted = 0;
> > > @@ -417,7 +398,7 @@
> > >     bat ret;
> > >     BAT *b, *bn;
> > >     @1 *base, *basen;
> > > -   (void)dummy;
> > > +   dummy = 0;
> > >     b = BATdescriptor(*bid);
> > >     if (b == NULL) return "PMAdel: illegal bat parameter";
> > >     psz = BATcount(b);
> > > @@ -725,9 +706,9 @@
> > >  pma_export str
> > >  PMAbulkins_@1(oid *pos_res, bat *bid, oid *pos, bat *ibid) {
> > >     bit fgw, fg;
> > > -   int tpe, size;
> > > +   int tpe, size, slen;
> > >     oid i, j, k, ht, sz, isz, psz, cnt, icnt, lv, wsz, snum, scl, scr,
> wbeg, mpos, cur;
> > > -   dbl dens, dent, step, dstep, slen;
> > > +   dbl dens, dent, step, dstep;
> > >     bat ret;
> > >     BAT *b, *bi, *bn;
> > >     @1 *base, *basei, *basen;
> > > @@ -795,7 +776,7 @@
> > >                                     cur = i;
> > >                             }
> > >                     } else {
> > > -                           if (fg && (i - cur >= slen)) {
> > > +                           if (fg && ((int)(i - cur) >= slen)) {
> > >                                     base[cur] = base[i];
> > >                                     base[i] = (@1)@1_nil;
> > >                                     cur += slen;
> > > @@ -815,7 +796,7 @@
> > >                                     cur = i;
> > >                             }
> > >                     } else {
> > > -                           if (fg && (cur - i >= slen)) {
> > > +                           if (fg && ((int)(cur - i) >= slen)) {
> > >                                     base[cur] = base[i];
> > >                                     base[i] = (@1)@1_nil;
> > >                                     cur -= slen;
> > > @@ -839,7 +820,7 @@
> > >             while (TaoMin * size < cnt + icnt) size <<= 1;
> > >             dstep = (dbl)size / (cnt + icnt);
> > >             slen = ceil(dstep);
> > > -           if ((cnt + icnt) * slen > size) slen--;
> > > +           if ((int)(cnt + icnt) * slen > size) slen--;
> > >             tpe = TYPE_@1;
> > >             PMAnew(&ret, &tpe, &size);
> > >             bn =  BATdescriptor(ret);
> > > @@ -877,7 +858,7 @@
> > >     BAT *b;
> > >     oid lo, hi, lo_res, hi_res, pos_res;
> > >     int i;
> > > -   (void)dummy;
> > > +   dummy = 0;
> > >     b = BATdescriptor(*bid);
> > >     if (b == NULL) return "PMAfnd: illegal bat parameter";
> > >     for (i = 0; i < *num; i++) {
> > > @@ -916,7 +897,3 @@
> > >  @:pma_impl(lng)@
> > >  @:pma_impl(flt)@
> > >  @:pma_impl(dbl)@
> > > -@(
> > > -StM: disabled as the code clearly cannot handle type str (yet?)
> > > -@:pma_impl(str)@
> > > -@)
> > >
> > >
> > >
> ------------------------------------------------------------------------------
> > > Join us December 9, 2009 for the Red Hat Virtual Experience,
> > > a free event focused on virtualization and cloud computing.
> > > Attend in-depth sessions from your desk. Your couch. Anywhere.
> > > http://p.sf.net/sfu/redhat-sfdev2dev
> > > _______________________________________________
> > > Monetdb-checkins mailing list
> > > Monetdb-checkins@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/monetdb-checkins
> >
> >
> > --
> > Sjoerd Mullender
> >
>
>
>
> >
> ------------------------------------------------------------------------------
> > Join us December 9, 2009 for the Red Hat Virtual Experience,
> > a free event focused on virtualization and cloud computing.
> > Attend in-depth sessions from your desk. Your couch. Anywhere.
> > http://p.sf.net/sfu/redhat-sfdev2dev
> > _______________________________________________
> > Monetdb-checkins mailing list
> > Monetdb-checkins@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/monetdb-checkins
>
>
> --
> | Dr. Stefan Manegold | mailto:Stefan.Manegold@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-4312       |
>
>
> ------------------------------------------------------------------------------
> Join us December 9, 2009 for the Red Hat Virtual Experience,
> a free event focused on virtualization and cloud computing.
> Attend in-depth sessions from your desk. Your couch. Anywhere.
> http://p.sf.net/sfu/redhat-sfdev2dev
> _______________________________________________
> Monetdb-checkins mailing list
> Monetdb-checkins@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/monetdb-checkins
>



-- 
Nan Tang
CWI, Amsterdam, The Netherlands
Tel: +31 624356999
Email: tang at cwi.nl / joe.ntang at gmail.com

[Attachment #5 (text/html)]

<div>Hi Stefan,</div>
<div> </div>
<div>I have two simple questions concerning the compilation errors for <a \
href="http://pma.mx">pma.mx</a>.<br><br>(i) <a href="http://pma.mx:393/" \
target="_blank">pma.mx:393</a>: parameter &quot;dummy&quot; was set but never used, \
here &quot;dummy&quot; is defined for PMAdel_@1(void *dummy, bat *bid, oid \
*pos).</div>

<div>I use &quot;void *dummy&quot; since this function has no input parameters. What \
I did is in line 401 using &quot;dummy=0&quot;, but the compiler still complains. \
</div> <div>What is the right way to handle it?</div>
<div> </div>
<div>(ii) the other question is still about type conversion. many warnings are like \
this &quot;slen = ceil(dstep);&quot; while the lhs is a BUN while the rhs is a double \
value.</div> <div>Is &quot;slen = (BUN) ceil(dstep)&quot; a right way?</div>
<div> </div>
<div>many thanks,</div>
<div>Nan Tang</div>
<div> </div>
<div class="gmail_quote">On Fri, Dec 4, 2009 at 4:41 PM, Stefan Manegold <span \
dir="ltr">&lt;<a href="mailto:Stefan.Manegold@cwi.nl">Stefan.Manegold@cwi.nl</a>&gt;</span> \
wrote:<br> <blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; \
PADDING-LEFT: 1ex" class="gmail_quote">Nan,<br><br>in addition to Sjoerd&#39;s \
comments, I noticed that your approach to<br>solving/avoiding some of the type \
mismatch complaints on Windows<br> is to add an explicit cast, in most cases from \
type oid to type int.<br>The latter is 32-bit (signed) on all platforms, while the \
former can be<br>either 32-bit or 64-bit (unsigned, but only 31/63 bits are actually \
used).<br> In case oid is 64-(63-)bit, casting to int might result in an \
overflow;<br>I did not see any checks or assertions to ensure that such overflows \
cannot<br>happen or are detected properly.<br><br>As far as I can see, most of the \
cases deal with variable that (explicitly<br> or implicitly) represent the number of \
BUNs in a BAT. For that purpose, you<br>should better use type BUN in C code and :wrd \
in MAL, instead of mixing oid<br>&amp; int. :wrd is 32-bit on 32-bit systems and \
64-bit on 64-bit systems<br> (signed); BUN is large enough to hold the max. number of \
BUNs allowed per<br>BAT, i.e., 32-bit on 32-bit systems and 64-bit systems with \
32-bit OIDs, and<br>64-bit on 64-bit systems with 64-bit OIDs (unsigned, but only \
31/63 bits are<br> used).<br><br>Let me know, in case you need more advice about the \
MonetDB type system and<br>how to use it.<br><br>Stefan<br> <div>
<div></div>
<div class="h5"><br>On Fri, Dec 04, 2009 at 10:27:01AM +0100, Sjoerd Mullender \
wrote:<br>&gt; I noticed that you return constant strings when an error occurs.  \
This<br>&gt; doesn&#39;t work since the interpreter expects that strings are \
allocated<br> &gt; with GDKmalloc (i.e., it calls GDKfree on the error \
messages).<br>&gt;<br>&gt; When you want to return an error, use the macro throw() \
(see numerous<br>&gt; examples in the code).<br>&gt;<br>&gt; Also, I noticed that \
there are calls to PMAnew in your code that don&#39;t<br> &gt; check the return value \
(which could be an allocated string per the<br>&gt; above), so there is a potential \
memory leak here.  (Plus, when PMAnew<br>&gt; fails for whatever reason, you may not \
want to continue.)<br>&gt;<br> &gt; This latter remark might be true for other \
functions.  I didn&#39;t check.<br>&gt;<br>&gt; Tang Nan wrote:<br>&gt; &gt; Update \
of /cvsroot/monetdb/MonetDB5/src/modules/mal<br>&gt; &gt; In directory \
sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv28068/src/modules/mal<br> &gt; \
&gt;<br>&gt; &gt; Modified Files:<br>&gt; &gt;     <a href="http://pma.mx/" \
target="_blank">pma.mx</a><br>&gt; &gt; Log Message:<br>&gt; &gt; fix some bugs about \
type conversion failure on Windows<br>&gt; &gt;<br>&gt; &gt;<br> &gt; &gt; Index: <a \
href="http://pma.mx/" target="_blank">pma.mx</a><br>&gt; &gt; \
===================================================================<br>&gt; &gt; RCS \
file: /cvsroot/monetdb/MonetDB5/src/modules/mal/<a href="http://pma.mx/" \
target="_blank">pma.mx</a>,v<br> &gt; &gt; retrieving revision 1.7<br>&gt; &gt; \
retrieving revision 1.8<br>&gt; &gt; diff -u -d -r1.7 -r1.8<br>&gt; &gt; --- <a \
href="http://pma.mx/" target="_blank">pma.mx</a>  2 Nov 2009 16:53:38 -0000       \
1.7<br>&gt; &gt; +++ <a href="http://pma.mx/" target="_blank">pma.mx</a>  4 Dec 2009 \
08:52:46 -0000       1.8<br> &gt; &gt; @@ -75,10 +75,6 @@<br>&gt; &gt;  \
@:pma_mal(lng)@<br>&gt; &gt;  @:pma_mal(flt)@<br>&gt; &gt;  @:pma_mal(dbl)@<br>&gt; \
&gt; -@(<br>&gt; &gt; -StM: disabled as the code clearly cannot handle type str \
(yet?)<br>&gt; &gt; -@:pma_mal(str)@<br> &gt; &gt; -@)<br>&gt; &gt;<br>&gt; &gt;  @+ \
PMA API<br>&gt; &gt;  @h<br>&gt; &gt; @@ -115,10 +111,6 @@<br>&gt; &gt;  \
@:pma_decl(lng)@<br>&gt; &gt;  @:pma_decl(flt)@<br>&gt; &gt;  \
@:pma_decl(dbl)@<br>&gt; &gt; -@(<br>&gt; &gt; -StM: disabled as the code clearly \
cannot handle type str (yet?)<br> &gt; &gt; -@:pma_decl(str)@<br>&gt; &gt; \
-@)<br>&gt; &gt;  #endif     /* _PMA_H_ */<br>&gt; &gt;<br>&gt; &gt;  @+ PMA \
implementation<br>&gt; &gt; @@ -155,10 +147,6 @@<br>&gt; &gt;     for (cnt = PMA_SEG; \
cnt &lt; *sz; cnt &lt;&lt;= 1);      /* figure out the size */<br> &gt; &gt;     b = \
BATnew(TYPE_void, *tpe, cnt);<br>&gt; &gt;     if (b) {<br>&gt; &gt; -@(<br>&gt; &gt; \
-StM: disabled as the code clearly cannot handle other than fixed-size linear types \
(yet?)<br>&gt; &gt; -           var_t nil_off;<br> &gt; &gt; -@)<br>&gt; &gt;         \
switch(ATOMstorage(*tpe)) {<br>&gt; &gt;             case TYPE_chr: @:fillnill(chr, \
chr_nil)@<br>&gt; &gt;             case TYPE_bte: @:fillnill(bte, bte_nil)@<br>&gt; \
&gt; @@ -168,15 +156,8 @@<br> &gt; &gt;             case TYPE_flt: @:fillnill(flt, \
flt_nil)@<br>&gt; &gt;             case TYPE_dbl: @:fillnill(dbl, dbl_nil)@<br>&gt; \
&gt;             case TYPE_ptr: @:fillnill(ptr, ptr_nil)@<br>&gt; &gt; -           \
default:<br> &gt; &gt; -                   BBPunfix(b-&gt;batCacheid);<br>&gt; &gt; - \
return &quot;PMAnew: type not supported (yet?)&quot;;<br>&gt; &gt; -@(<br>&gt; &gt; \
-StM: disabled as the code clearly cannot handle other than fixed-size linear types \
(yet?)<br> &gt; &gt; -                          BUNins(b, NULL, (ptr)str_nil, \
FALSE);<br>&gt; &gt; -                          nil_off = *(var_t*) Tloc(b, \
BUNfirst(b));<br>&gt; &gt; -                          @:fillnill(wrd, nil_off)@<br> \
&gt; &gt; -@)<br>&gt; &gt; +           default:                \
BBPunfix(b-&gt;batCacheid);<br>&gt; &gt; +                                           \
return &quot;PMAnew: type not supported (yet?)&quot;;<br>&gt; &gt;             }<br> \
&gt; &gt;             BATsetcount(b, cnt);<br>&gt; &gt;             b-&gt;tsorted = \
0;<br>&gt; &gt; @@ -417,7 +398,7 @@<br>&gt; &gt;     bat ret;<br>&gt; &gt;     BAT \
*b, *bn;<br>&gt; &gt;     @1 *base, *basen;<br>&gt; &gt; -   (void)dummy;<br> &gt; \
&gt; +   dummy = 0;<br>&gt; &gt;     b = BATdescriptor(*bid);<br>&gt; &gt;     if (b \
== NULL) return &quot;PMAdel: illegal bat parameter&quot;;<br>&gt; &gt;     psz = \
BATcount(b);<br>&gt; &gt; @@ -725,9 +706,9 @@<br> &gt; &gt;  pma_export str<br>&gt; \
&gt;  PMAbulkins_@1(oid *pos_res, bat *bid, oid *pos, bat *ibid) {<br>&gt; &gt;     \
bit fgw, fg;<br>&gt; &gt; -   int tpe, size;<br>&gt; &gt; +   int tpe, size, \
slen;<br>&gt; &gt;     oid i, j, k, ht, sz, isz, psz, cnt, icnt, lv, wsz, snum, scl, \
scr, wbeg, mpos, cur;<br> &gt; &gt; -   dbl dens, dent, step, dstep, slen;<br>&gt; \
&gt; +   dbl dens, dent, step, dstep;<br>&gt; &gt;     bat ret;<br>&gt; &gt;     BAT \
*b, *bi, *bn;<br>&gt; &gt;     @1 *base, *basei, *basen;<br>&gt; &gt; @@ -795,7 \
+776,7 @@<br> &gt; &gt;                                     cur = i;<br>&gt; &gt;     \
}<br>&gt; &gt;                     } else {<br>&gt; &gt; -                           \
if (fg &amp;&amp; (i - cur &gt;= slen)) {<br> &gt; &gt; +                           \
if (fg &amp;&amp; ((int)(i - cur) &gt;= slen)) {<br>&gt; &gt;                         \
base[cur] = base[i];<br>&gt; &gt;                                     base[i] = \
(@1)@1_nil;<br> &gt; &gt;                                     cur += slen;<br>&gt; \
&gt; @@ -815,7 +796,7 @@<br>&gt; &gt;                                     cur = \
i;<br>&gt; &gt;                             }<br>&gt; &gt;                     } else \
{<br> &gt; &gt; -                           if (fg &amp;&amp; (cur - i &gt;= slen)) \
{<br>&gt; &gt; +                           if (fg &amp;&amp; ((int)(cur - i) &gt;= \
slen)) {<br>&gt; &gt;                                     base[cur] = base[i];<br> \
&gt; &gt;                                     base[i] = (@1)@1_nil;<br>&gt; &gt;      \
cur -= slen;<br>&gt; &gt; @@ -839,7 +820,7 @@<br>&gt; &gt;             while (TaoMin \
* size &lt; cnt + icnt) size &lt;&lt;= 1;<br> &gt; &gt;             dstep = (dbl)size \
/ (cnt + icnt);<br>&gt; &gt;             slen = ceil(dstep);<br>&gt; &gt; -           \
if ((cnt + icnt) * slen &gt; size) slen--;<br>&gt; &gt; +           if ((int)(cnt + \
icnt) * slen &gt; size) slen--;<br> &gt; &gt;             tpe = TYPE_@1;<br>&gt; &gt; \
PMAnew(&amp;ret, &amp;tpe, &amp;size);<br>&gt; &gt;             bn =  \
BATdescriptor(ret);<br>&gt; &gt; @@ -877,7 +858,7 @@<br>&gt; &gt;     BAT *b;<br>&gt; \
&gt;     oid lo, hi, lo_res, hi_res, pos_res;<br> &gt; &gt;     int i;<br>&gt; &gt; - \
(void)dummy;<br>&gt; &gt; +   dummy = 0;<br>&gt; &gt;     b = \
BATdescriptor(*bid);<br>&gt; &gt;     if (b == NULL) return &quot;PMAfnd: illegal bat \
parameter&quot;;<br>&gt; &gt;     for (i = 0; i &lt; *num; i++) {<br> &gt; &gt; @@ \
-916,7 +897,3 @@<br>&gt; &gt;  @:pma_impl(lng)@<br>&gt; &gt;  \
@:pma_impl(flt)@<br>&gt; &gt;  @:pma_impl(dbl)@<br>&gt; &gt; -@(<br>&gt; &gt; -StM: \
disabled as the code clearly cannot handle type str (yet?)<br> &gt; &gt; \
-@:pma_impl(str)@<br>&gt; &gt; -@)<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; \
------------------------------------------------------------------------------<br>&gt; \
&gt; Join us December 9, 2009 for the Red Hat Virtual Experience,<br> &gt; &gt; a \
free event focused on virtualization and cloud computing.<br>&gt; &gt; Attend \
in-depth sessions from your desk. Your couch. Anywhere.<br>&gt; &gt; <a \
href="http://p.sf.net/sfu/redhat-sfdev2dev" \
target="_blank">http://p.sf.net/sfu/redhat-sfdev2dev</a><br> &gt; &gt; \
_______________________________________________<br>&gt; &gt; Monetdb-checkins mailing \
list<br>&gt; &gt; <a \
href="mailto:Monetdb-checkins@lists.sourceforge.net">Monetdb-checkins@lists.sourceforge.net</a><br>&gt; \
&gt; <a href="https://lists.sourceforge.net/lists/listinfo/monetdb-checkins" \
target="_blank">https://lists.sourceforge.net/lists/listinfo/monetdb-checkins</a><br> \
&gt;<br>&gt;<br>&gt; --<br>&gt; Sjoerd Mullender<br>&gt;<br><br><br><br>&gt; \
------------------------------------------------------------------------------<br>&gt; \
Join us December 9, 2009 for the Red Hat Virtual Experience,<br> &gt; a free event \
focused on virtualization and cloud computing.<br>&gt; Attend in-depth sessions from \
your desk. Your couch. Anywhere.<br>&gt; <a \
href="http://p.sf.net/sfu/redhat-sfdev2dev" \
target="_blank">http://p.sf.net/sfu/redhat-sfdev2dev</a><br> &gt; \
_______________________________________________<br>&gt; Monetdb-checkins mailing \
list<br>&gt; <a href="mailto:Monetdb-checkins@lists.sourceforge.net">Monetdb-checkins@lists.sourceforge.net</a><br>&gt; \
<a href="https://lists.sourceforge.net/lists/listinfo/monetdb-checkins" \
target="_blank">https://lists.sourceforge.net/lists/listinfo/monetdb-checkins</a><br> \
<br><br>--<br></div></div>| Dr. Stefan Manegold | mailto:<a \
href="mailto:Stefan.Manegold@cwi.nl">Stefan.Manegold@cwi.nl</a> |<br>| CWI,  P.O.Box \
94079 | <a href="http://www.cwi.nl/~manegold/" \
target="_blank">http://www.cwi.nl/~manegold/</a>  |<br> | 1090 GB Amsterdam   | Tel.: \
+31 (20) 592-4212       |<br>| The Netherlands     | Fax : +31 (20) 592-4312       \
|<br> <div>
<div></div>
<div class="h5"><br>------------------------------------------------------------------------------<br>Join \
us December 9, 2009 for the Red Hat Virtual Experience,<br>a free event focused on \
virtualization and cloud computing.<br> Attend in-depth sessions from your desk. Your \
couch. Anywhere.<br><a href="http://p.sf.net/sfu/redhat-sfdev2dev" \
target="_blank">http://p.sf.net/sfu/redhat-sfdev2dev</a><br>_______________________________________________<br>
 Monetdb-checkins mailing list<br><a \
href="mailto:Monetdb-checkins@lists.sourceforge.net">Monetdb-checkins@lists.sourceforge.net</a><br><a \
href="https://lists.sourceforge.net/lists/listinfo/monetdb-checkins" \
target="_blank">https://lists.sourceforge.net/lists/listinfo/monetdb-checkins</a><br> \
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Nan Tang<br>CWI, \
Amsterdam, The Netherlands<br>Tel: +31 624356999<br>Email: tang at <a \
href="http://cwi.nl">cwi.nl</a> / joe.ntang at <a \
href="http://gmail.com">gmail.com</a><br>



------------------------------------------------------------------------------
Join us December 9, 2009 for the Red Hat Virtual Experience,
a free event focused on virtualization and cloud computing. 
Attend in-depth sessions from your desk. Your couch. Anywhere.
http://p.sf.net/sfu/redhat-sfdev2dev

_______________________________________________
Monetdb-developers mailing list
Monetdb-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/monetdb-developers


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic