[Monetdb-developers] what should happen when appending to a nil bat?

Ying Zhang Y.Zhang at cwi.nl
Wed Dec 21 13:26:08 CET 2005


To me, the second possibility seems better, since the tail value of 'b'
is preserved.

But how about a third possibility: reject such 'append' and require a
explicit type casting?


Regards,

Jennie

On Wed, Dec 21, 2005 at 01:08:26PM +0100, Sjoerd Mullender wrote:
> Consider this scenario:
> mil>var a := new(oid,void).insert(0 at 0,nil);
> mil>a.print();
> #-----------------#
> # h     t         # name
> # oid   void      # type
> #-----------------#
> [ 0 at 0,    nil     ]
> mil>var b := new(oid,oid).insert(0 at 0,1 at 0);
> mil>b.print();
> #-----------------#
> # h     t         # name
> # oid   oid       # type
> #-----------------#
> [ 0 at 0,    1 at 0     ]
> mil>a.append(b);
> mil>a.print();
> 
> The question is, what should the result be?
> 
> As I see it, there are two possibilities:
> #-----------------#
> # h     t         # name
> # oid   void      # type
> #-----------------#
> [ 0 at 0,    nil     ]
> [ 1 at 0,    nil     ]
> or
> #-----------------#
> # h     t         # name
> # oid   oid       # type
> #-----------------#
> [ 0 at 0,    nil     ]
> [ 1 at 0,    1 at 0     ]
> 
> The former keeps the nil tail (the tail of a was void without seqbase
> and stays that way), whereas the latter materializes the tail so that
> the tail value of b gets inserted.
> 
> Opinions?
> 
> -- 
> Sjoerd Mullender






More information about the developers-list mailing list