I try to do a join with fragmentColId to obtain the document uri, but in such a way that it won't drop the row if there is no actual fragment.
I am using op:join-doc-uri, which works fine against TDEs, but not against built-in tables like sys.sys_tables. It would be great if there is a way to write one query that works for both cases.
The information in the sys.sys_tables table does not come from any document in the database, so it doesn't have a fragment associated with any of it's rows.
If you want to alter your query based on the presence or absence of columns, you probably want to use op:column-info() to look at the Optic plan built so far and figure out what columns it returns.