Uploaded image for project: 'HPCC'
  1. HPCC
  2. HPCC-13171

Inefficient dictionary lookup code

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 5.4.0
    • Component/s: Code Generator
    • Labels:

      Description

      If you have the same item being looked up in multiple dictionaries, a temporary row gets created for the left hand side which is never used.

      d1 := DATASET(['One','Two','Three'], { string search });
      d2 := DATASET(['Four','Five','Six'], { string search });
      d3 := DATASET(['One','Seven','Six','Eight'], { string text });
      
      p := TABLE(NOFOLD(d3), { text in DICTIONARY(d1) or text in DICTIONARY(d2) });
      output(p);
      

      The solution might require a new operator which doesn't use a record for the lefthand side of the operator.

        Attachments

          Activity

            People

            • Assignee:
              ghalliday Gavin Halliday
              Reporter:
              ghalliday Gavin Halliday
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: