← Back to team overview

zorba-coders team mailing list archive

Re: [Merge] lp:~zorba-coders/zorba/use-dataguide into lp:zorba

 

Review: Needs Fixing

I have tried some basic queries and there is a huge performance improvement. This is great. 
However, I detected a memory leak and have one question.

- memory leak in translator.cpp:4823

==20325== 88 (32 direct, 56 indirect) bytes in 1 blocks are definitely lost in loss record 4 of 4
==20325==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==20325==    by 0x55B8897: zorba::TranslatorImpl::begin_visit(zorba::AnnotationListParsenode const&) (translator.cpp:4823)
==20325==    by 0x556447D: zorba::AnnotationListParsenode::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:903)
==20325==    by 0x55B18A8: zorba::TranslatorImpl::preprocessVFOList(zorba::VFO_DeclList const&) (translator.cpp:3904)
==20325==    by 0x55A9951: zorba::TranslatorImpl::begin_visit(zorba::Prolog const&) (translator.cpp:2889)
==20325==    by 0x5562201: zorba::Prolog::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:262)
==20325==    by 0x5561E7A: zorba::LibraryModule::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:174)
==20325==    by 0x559CCD8: zorba::translate_aux(zorba::TranslatorImpl*, zorba::parsenode const&, zorba::static_context*, unsigned long, zorba::ModulesInfo*, std::map<zorba::rstring<zorba::rstring_classes::rep<zorba::atomic_int, std::char_traits<char>, std::allocator<char> > >, zorba::rstring<zorba::rstring_classes::rep<zorba::atomic_int, std::char_traits<char>, std::allocator<char> > >, std::less<zorba::rstring<zorba::rstring_classes::rep<zorba::atomic_int, std::char_traits<char>, std::allocator<char> > > >, std::allocator<std::pair<zorba::rstring<zorba::rstring_classes::rep<zorba::atomic_int, std::char_traits<char>, std::allocator<char> > > const, zorba::rstring<zorba::rstring_classes::rep<zorba::atomic_int, std::char_traits<char>, std::allocator<char> > > > > > const&, bool, zorba::StaticContextConsts::xquery_version_t) (translator.cpp:16343)
==20325==    by 0x55AF5C4: zorba::TranslatorImpl::end_visit(zorba::ModuleImport const&, void*) (translator.cpp:3589)
==20325==    by 0x55635D3: zorba::ModuleImport::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:667)
==20325==    by 0x55A99BB: zorba::TranslatorImpl::begin_visit(zorba::Prolog const&) (translator.cpp:2899)

- In the following query, no dataguide seems to be pushed into the parser. Why?

import module namespace f = "http://expath.org/ns/file";;

for $obj in parse-json(f:read-text(fn:resolve-uri("citylots-small.json")))
group by $s := $obj.STREET
return {
  street : $s,
  count : count($obj)
}
-- 
https://code.launchpad.net/~zorba-coders/zorba/use-dataguide/+merge/176385
Your team Zorba Coders is subscribed to branch lp:zorba.


Follow ups

References