A little clarification - if both databases are sorted up, it gets the incorrect result in 2 seconds. If they are randomly sorted, it takes 10 minutes to get the same result.
My guess would be that the problem is issue #703. And before you say “but I am not using grabdata(”, you actually are, that is how the double chevron feature works.
It means that grabdata(, and double chevron notation, is off the table in formulafill, select, and any other statement where a formula is repeatedly evaluated over and over again for each record in the database. That certainly does limit the scope of the superlookup( statement when used with these statements.
Has this been fixed? I have a slightly different problem with superlookup(:
This works as expected:
field Matches1
formulafill superlookup(FileName2, {««Nombre»» contains MNombre1 and ««Nombre»» contains MApellido1},{Cedula},"default","")
But removing the default option:
field Matches1
formulafill superlookup(FileName2, {««Nombre»» contains MNombre1 and ««Nombre»» contains MApellido1},{Cedula})
… gives an error message: “superlookup( function failed to match”. It would appear that the default option is actually a requirement which makes a real mess of what I’m currently trying to do.
I’ve tried using "default",Matches1so that existing values in the Matches1 field will not be destroyed if there is no match but that doesn’t work because the field name is not in double chevrons but, if I put it in double chevrons, I get an error message, “Field or variable «Matches1 does not exist”. How can I specify that existing values should remain unchanged if there is no match?