Tue Aug 20, 2019 5:27 pm
Login Register Lost Password? Contact Us


DataMgmt GenData.WriteData problem

Discuss and share ideas around ECL Bundle support which is a framework for creating and managing installable ECL code components

Tue Jul 23, 2019 4:52 pm Change Time Zone

Hello!

Not sure where to ask for this, here it is.
Can I use DataMgmt ECL Bundle (https://github.com/hpcc-systems/DataMgmt) when using ClientTools/Platform 6.4.x?
Installation didn't seem to complain (and site does say "HPCC 6.0.0 or later is required."), yet when I compile GenData.WriteData, I get the following error:
Code: Select all
Error:    assert(scope) failed - file: hqlexpr.cpp, line 9904 (7, 10), 3000,

GenData.Init works just fine.

I tried with ClientTools 6.4.6 and 6.4.40.
Any idea?

Thanks!
lpezet
 
Posts: 64
Joined: Wed Sep 10, 2014 3:14 am

Tue Jul 23, 2019 8:19 pm Change Time Zone

The error you cited is an internal parser error, which is itself is pretty unusual. Can you post the ECL you wrote that called into DataMgmt.GenData.WriteData()? That may give me a clue as to what is going wrong.
DSC
Community Advisory Board Member
Community Advisory Board Member
 
Posts: 560
Joined: Tue Oct 18, 2011 4:45 pm

Wed Jul 24, 2019 1:40 pm Change Time Zone

I'm using the example(s) from the github page:
Code: Select all
IMPORT DataMgmt;
MyRecLayout := { STRING name, UNSIGNED1 age };
newData := DATASET([{'Bill', 35}], MyRecLayout);
DataMgmt.GenData.WriteData('~my_data_store', newData);


When I click on the "Check" button in the IDE, I get that error message I mentioned earlier.

Thanks!
lpezet
 
Posts: 64
Joined: Wed Sep 10, 2014 3:14 am

Wed Jul 24, 2019 1:54 pm Change Time Zone

Thanks for the code.

I was able to replicate the problem up through version 6.4.40, but the code succeeds with version 7.4.2. I believe the issue was addressed in https://track.hpccsystems.com/browse/HPCC-20328, which means the fix went into version 7.0.0. I believe that DataMgmt.GenData.AppendData() would also suffer from this same problem, as it relies on a VIRTUAL DATASET parameter.

If you want to use DataMgmt.GenData.WriteData() then you may be forced to upgrade your platform version. There is, however, a workaround: Create the subfile yourself and use DataMgmt.GenData.WriteFile() to place the file into the data store properly. DataMgmt's README talks a bit about using that function.
DSC
Community Advisory Board Member
Community Advisory Board Member
 
Posts: 560
Joined: Tue Oct 18, 2011 4:45 pm


Return to ECL Bundles

Who is online

Users browsing this forum: No registered users and 1 guest