> One question: as a novice here, I think I understand the right hand > side of your JOIN "... k(value)" is shorthand for: > > ... AS table_name(column_name) > > except that I don't see any clues in the docs that > jsonb_object_keys() is a "table function".> Can you kindly clarify? The clue is in the column "return type" which states: "setof text" for jsonb_object_keys() A function returning "setof" is the same as a "table function"