Bugs item #1631298, was opened at 2007-01-09 10:36
Message generated for change (Comment added) made by stmane
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=482468&aid=1631298&group_id=56967

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Core
Group: MonetDB4 CVS Head
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Jan Rittinger (tsheyar)
Assigned to: Nobody/Anonymous (nobody)
Summary: MonetDBs NaN support broken

Initial Comment:
The support for NaN values seems to be broken (see below examples) as it 
results in random results. (To support NaN in XQuery NaN in C (MonetDB) seems 
the only feasible solution so it would be great if this could be fixed.)

MonetDB>var a := bat (void,dbl).seqbase([EMAIL 
PROTECTED]).append(dbl(2)).append(dbl(nil)).append(dbl("nan"));
MonetDB>print(a.select (dbl(nil), dbl(nil)));
#-----------------#
# h     t         # name
# oid   dbl       # type
#-----------------#
[ [EMAIL PROTECTED],    2       ]
[ [EMAIL PROTECTED],    nan     ]
MonetDB>a := bat (void,dbl).seqbase([EMAIL PROTECTED]).append(dbl("nan"));
MonetDB>print(a.select (dbl(nil), dbl(nil)));
#-----------------#
# h     t         # name
# void  dbl       # type
#-----------------#
MonetDB>a := bat (void,dbl).seqbase([EMAIL 
PROTECTED]).append(dbl("nan")).append(dbl("nan"));
MonetDB>print(a.select (dbl(nil), dbl(nil)));
#-----------------#
# h     t         # name
# void  dbl       # type
#-----------------#
MonetDB>a := bat (void,dbl).seqbase([EMAIL 
PROTECTED]).append(dbl(2)).append(dbl("nan"));
MonetDB>print(a.select (dbl(nil), dbl(nil)));
#-----------------#
# h     t         # name
# void  dbl       # type
#-----------------#
MonetDB>a := bat (void,dbl).seqbase([EMAIL 
PROTECTED]).append(dbl(2)).append(dbl("nan")).append(dbl(nil));
MonetDB>print(a.select (dbl(nil), dbl(nil)));
#-----------------#
# h     t         # name
# void  dbl       # type
#-----------------#


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

>Comment By: Stefan Manegold (stmane)
Date: 2007-01-23 11:53

Message:
Logged In: YES 
user_id=572415
Originator: NO

It seems as if NaN's do break both property management and property
checking; or at least, property management/checking seem to ignore NaN's
and then the select on supposely "sorted" tails (falling back to a slice)
fails:

========
MonetDB>debugmask(10);
MonetDB>a := bat
(void,dbl).seqbase([EMAIL 
PROTECTED]).append(dbl(2)).append(dbl("nan")).append(dbl(3));
print(a); a.info().find("tsorted").print();
#-----------------#
# h     t         # name
# void  dbl       # type
#-----------------#
[ [EMAIL PROTECTED],    2       ]
[ [EMAIL PROTECTED],    NaN     ]
[ [EMAIL PROTECTED],    3       ]
[ "65" ]
MonetDB>a := bat
(void,dbl).seqbase([EMAIL 
PROTECTED]).append(dbl(2)).append(dbl(nil)).append(dbl("nan"));
print(a); a.info().find("tsorted").print();
#-----------------#
# h     t         # name
# void  dbl       # type
#-----------------#
[ [EMAIL PROTECTED],    2       ]
[ [EMAIL PROTECTED],    nil     ]
[ [EMAIL PROTECTED],    NaN     ]
[ "0" ]
MonetDB>a := bat
(void,dbl).seqbase([EMAIL 
PROTECTED]).append(dbl(2)).append(dbl("nan")).append(dbl(nil));
print(a); a.info().find("tsorted").print();
#-----------------#
# h     t         # name
# void  dbl       # type
#-----------------#
[ [EMAIL PROTECTED],    2       ]
[ [EMAIL PROTECTED],    NaN     ]
[ [EMAIL PROTECTED],    nil     ]
[ "65" ]
MonetDB>debugmask(0);
MonetDB>a := bat
(void,dbl).seqbase([EMAIL 
PROTECTED]).append(dbl(2)).append(dbl("nan")).append(dbl(3));
print(a); a.info().find("tsorted").print();
#-----------------#
# h     t         # name
# void  dbl       # type
#-----------------#
[ [EMAIL PROTECTED],    2       ]
[ [EMAIL PROTECTED],    NaN     ]
[ [EMAIL PROTECTED],    3       ]
[ "65" ]
MonetDB>a := bat
(void,dbl).seqbase([EMAIL 
PROTECTED]).append(dbl(2)).append(dbl(nil)).append(dbl("nan"));
print(a); a.info().find("tsorted").print();
#-----------------#
# h     t         # name
# void  dbl       # type
#-----------------#
[ [EMAIL PROTECTED],    2       ]
[ [EMAIL PROTECTED],    nil     ]
[ [EMAIL PROTECTED],    NaN     ]
[ "0" ]
MonetDB>a := bat
(void,dbl).seqbase([EMAIL 
PROTECTED]).append(dbl(2)).append(dbl("nan")).append(dbl(nil));
print(a); a.info().find("tsorted").print();
#-----------------#
# h     t         # name
# void  dbl       # type
#-----------------#
[ [EMAIL PROTECTED],    2       ]
[ [EMAIL PROTECTED],    NaN     ]
[ [EMAIL PROTECTED],    nil     ]
[ "65" ]
MonetDB>
=======

Open questions:

What are the semantics of NaN's wrt. properties like sortedness?
Should they destroy the properties, ust like NILs do?

Should select(nil,nil) (supposely returning all non-nil values) also
return NaN's?


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

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=482468&aid=1631298&group_id=56967

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Monetdb-bugs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-bugs

Reply via email to