Page tree

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

The project proposal application period for 2020 summer internships is now open. Please see our list of Available Projects. Contact the project mentor for more information and to discuss your ideas. You may suggest a project idea of your own but it must leverage HPCC Systems in some way. Contact us for support from an HPCC Systems mentor with experience in your chosen project area.

Anshu Ranjan contributed to this project as part of the HPCC Systems Summer Internship Program. He’s been working on this project with his mentors Gavin Halliday and Jamie Noss. 


  • Ensuring inline and out of line datasets are optimized.
  • Ensuring unshared inline datasets are evaluated as efficiently as they are currently.
  • Ensuring child queries are not executed if they can be short-circuited.
  • Ensuring any shared code is only executed once.
  • Ensuring results that are used conditionally are only evaluated when required (can conflict with the previous requirement)
  • Providing a framework which is clearly understood and can be extended.

By the GSoC mid term review we would expect you to have a provisional design for a new child query algorithm, and an implementation which shows some improvements on a selection of test cases.



Gavin Halliday
Contact Details

Backup Mentor: Jamie Noss
Contact Details

Skills needed
  • Ability to code in C++.
  • Ability to think through complex interactions between different constraints.
  • Ability to discuss and iteratively design solutions together with other team members.
  • Ability to build and test the HPCC system (guidance will be provided).
  • Ability to write test code.


  • A provisional design for a full solution.
  • Simple test cases that can be compiled and show improved generated code and/or execution graphs.

End of project

  • Test cases added to the regression suites to cover key and boundary cases.
  • Implementation of a new child dataset processing mechanism.
  • Significant improvements to the generated code for some examples from the regression suites.
  • No significant degradation in generated code code for other examples in the regression suites.
  • Documentation of the new mechanism.
Other resources