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

Sjoerd Mullender sjoerd at acm.org
Wed Dec 21 13:48:18 CET 2005


Note that this solution also means that when you insert a non-nil value
into a nil column, the column should get materialized as well (this is
currently not the case):

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>a.insert(1 at 0,1 at 0);
mil>a.print();
#-----------------#
# h     t         # name
# oid   oid       # type
#-----------------#
[ 0 at 0,    nil     ]
[ 1 at 0,    1 at 0     ]

Stefan Manegold wrote:
> I also vote for the second alternative.
> 
> If/where desired the first result can then achieved by 
> 
> 	a.append(b.mark(nil));
> 
> Stefan
> 
> On Wed, Dec 21, 2005 at 01:26:08PM +0100, Ying Zhang wrote:
> 
>>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
>>
>>
>>
>>
>>-------------------------------------------------------
>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
>>for problems?  Stop!  Download the new AJAX search engine that makes
>>searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
>>_______________________________________________
>>Monetdb-developers mailing list
>>Monetdb-developers at lists.sourceforge.net
>>https://lists.sourceforge.net/lists/listinfo/monetdb-developers
>>
> 
> 


-- 
Sjoerd Mullender
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 369 bytes
Desc: OpenPGP digital signature
URL: <http://www.monetdb.org/pipermail/developers-list/attachments/20051221/5cc6d0d2/attachment.sig>


More information about the developers-list mailing list