• Now, when I change the definition of that column in the table function to allow NULLs, it works!

    And the last 2 versions which previously threw the error do NOT return NULL in that column, they return the data as expected.

    It's as if it's trying to fully populate the function table first -- some first name / last names are NULL -- then filter by the WHERE clause... But why on only the last 2 formulations of what *should* be identical queries?