Maybe it's time someone who was involved in the change to step in.
Because I don't know how you would change the locate when dealing with (MEMO).
It was just a bad fix.
Are you perhaps referring to this thread rvk ?
Yes. It will render any calculated field (so also any AS) as ftMemo.
Resulting in the (MEMO) but what's worse, inability to use that fiepd in locate.
And there is no other option to force ftString, other than adding (calculated) fields to your table.
CAST(x as varchar) as y should always be seen as ftString.
The original reason why fields were cut at 255 char/1020 bytes is that somehow an string without size was found (which results in cutting the field). VARCHAR without length is cut in FPC while VARCHAR(25) works just fine. Maybe that should have been addressed.
The fact that TEXT is translated to ftMemo isn't a big deal as long as VARCHAR and CAST is treated as ftString.