Bugs item #2010806, was opened at 2008-07-04 16:55
Message generated for change (Comment added) made by nielsnes
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=482468&aid=2010806&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 4.24
>Status: Closed
>Resolution: Fixed
Priority: 5
Private: No
Submitted By: Ying Zhang (yingying)
Assigned to: Niels Nes (nielsnes)
Summary: Project on BAT with batFirst > 0 returns wrong results

Initial Comment:
Execute the MIL PROC project() on a BAT which has a batFirst > 0 returns wrong 
results:

MonetDB>var a := 
monet_environment.copy().access(BAT_WRITE).delete("exec_prefix").delete("prefix").delete("gdk_debug").delete("gdk_embedded").delete("gdk_vm_minsize").delete("mapi_debug").delete("mapi_noheaders").delete("monet_daemon").delete("monet_mod_path").delete("monet_pid").delete("monet_prompt").delete("monet_welcome").delete("sql_debug").delete("sql_logdir").insert("gdk_mem_maxsize",
 str(mem_maxsize())).sort();
MonetDB>a.info().print();
#-----------------------------------------#
# h                     t                 # name
# str                   str               # type
#-----------------------------------------#
...
[ "batFirst",             "13"            ]
...
MonetDB>a.project(oid_nil).print();
#---------------------------------#
# h                     t         # name
# str                   oid       # type
#---------------------------------#
[ "config",               nil     ]
[ "datadir",              nil     ]
[ "gdk_alloc_map",        nil     ]
[ "gdk_arch",             nil     ]
[ "gdk_dbfarm",           nil     ]
[ "gdk_dbname",           nil     ]
[ "gdk_mem_bigsize",      nil     ]
[ "gdk_mem_maxsize",      nil     ]
[ "gdk_mem_pagebits",     nil     ]
[ "gdk_version",          nil     ]
[ "gdk_vmtrim",           nil     ]
[ "host",                 nil     ]
[ "mapi_clients",         nil     ]
[ "mapi_open",            nil     ]
[ "mapi_port",            nil     ]
[ "monet_admin",          nil     ]
[ "monet_cwd",            nil     ]
[ "monet_version",        nil     ]
[ "standoff_end",         nil     ]
[ "standoff_ns",          nil     ]
[ "standoff_start",       [EMAIL PROTECTED]     ]
[ "xquery_backend",       [EMAIL PROTECTED]     ]
[ "xquery_cacheMB",       [EMAIL PROTECTED]     ]
[ "xquery_cacherules",    [EMAIL PROTECTED]     ]
[ "xquery_logdir",        [EMAIL PROTECTED]     ]
[ "xquery_output",        [EMAIL PROTECTED]     ]
[ "xquery_procMB",        [EMAIL PROTECTED]     ]
[ "xrpc_admin",           [EMAIL PROTECTED]     ]
[ "xrpc_open",            [EMAIL PROTECTED]     ]
[ "xrpc_options",         [EMAIL PROTECTED]     ]
[ "xrpc_port",            [EMAIL PROTECTED]     ]
[ "xrpc_trusted",         [EMAIL PROTECTED]     ]
[ "xrpc_user",            [EMAIL PROTECTED]     ]

Thanks Sjoerd and Stefan for find the (possible) cause of the problem:
it seems that BATconst does not take into account an input BAT with deleted 
BUNs and batFirst > 0.  When VIEWcreate(b, bt) is called, b is not alligned 
with bt.

However, this problem seems also related with the use of 'sort()' in above MIL 
code.  Because, without the 'sort', even batFirst > 0, project produces correct 
result:

1. Start a new Mserver session, without 'sort()', project(oid_nil) produces 
correct results:

MonetDB>var a := 
monet_environment.copy().access(BAT_WRITE).delete("exec_prefix").delete("prefix").delete("gdk_debug").delete("gdk_embedded").delete("gdk_vm_minsize").delete("mapi_debug").delete("mapi_noheaders").delete("monet_daemon").delete("monet_mod_path").delete("monet_pid").delete("monet_prompt").delete("monet_welcome").delete("sql_debug").delete("sql_logdir").insert("gdk_mem_maxsize",
 str(mem_maxsize()));
MonetDB>a.info().find("batFirst").print();
[ "13" ]
MonetDB>a.project(oid_nil).print();
#---------------------------------#
# h                     t         # name
# str                   oid       # type
#---------------------------------#
[ "gdk_alloc_map",        nil     ]
[ "gdk_mem_pagebits",     nil     ]
...
[ "xquery_backend",       nil     ]
[ "gdk_mem_maxsize",      nil     ]

2. In the same Mserver session, now we use 'sort()', results of 
project(oid_nil) contains garbage:

MonetDB>a := 
monet_environment.copy().access(BAT_WRITE).delete("exec_prefix").delete("prefix").delete("gdk_debug").delete("gdk_embedded").delete("gdk_vm_minsize").delete("mapi_debug").delete("mapi_noheaders").delete("monet_daemon").delete("monet_mod_path").delete("monet_pid").delete("monet_prompt").delete("monet_welcome").delete("sql_debug").delete("sql_logdir").insert("gdk_mem_maxsize",
 str(mem_maxsize())).sort();
MonetDB>a.info().find("batFirst").print();
[ "13" ]
MonetDB>a.project(oid_nil).print();
#---------------------------------#
# h                     t         # name
# str                   oid       # type
#---------------------------------#
[ "config",               nil     ]
[ "datadir",              nil     ]
...
[ "standoff_end",         nil     ]
[ "standoff_ns",          nil     ]
[ "standoff_start",       [EMAIL PROTECTED]     ]
[ "xquery_backend",       [EMAIL PROTECTED]     ]
...
[ "xrpc_trusted",         [EMAIL PROTECTED]     ]
[ "xrpc_user",            [EMAIL PROTECTED]     ]

3. In the same Mserver session, subsequent execution of the MIL statement, 
*with* 'sort()' produces correct results:

MonetDB>a := 
monet_environment.copy().access(BAT_WRITE).delete("exec_prefix").delete("prefix").delete("gdk_debug").delete("gdk_embedded").delete("gdk_vm_minsize").delete("mapi_debug").delete("mapi_noheaders").delete("monet_daemon").delete("monet_mod_path").delete("monet_pid").delete("monet_prompt").delete("monet_welcome").delete("sql_debug").delete("sql_logdir").insert("gdk_mem_maxsize",
 str(mem_maxsize())).sort();
MonetDB>a.info().find("batFirst").print();
[ "13" ]
MonetDB>a.project(oid_nil).print();
#---------------------------------#
# h                     t         # name
# str                   oid       # type
#---------------------------------#
[ "config",               nil     ]
[ "datadir",              nil     ]
...
[ "xrpc_trusted",         nil     ]
[ "xrpc_user",            nil     ]

Kind regards,

Jennie

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

>Comment By: Niels Nes (nielsnes)
Date: 2008-07-11 10:58

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

fixed in the stable and current. The bunFirst got unaligned because the
sort leaves this correctly set. We solved this in BATconst with an extra
BATslice.

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

Comment By: Ying Zhang (yingying)
Date: 2008-07-07 15:27

Message:
Logged In: YES 
user_id=341633
Originator: YES

Test added in

MonetDB4/tests/BugTracker/Tests/project_on_BAT_with_batFirst.SF-2020806

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

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

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Monetdb-bugs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-bugs

Reply via email to