Why is it that grafting a whole other query engine in is working, while attempts at bringing column storage (cstore) in, in a more integrated way, did not?
I think it comes down to every aspect of the DBMS being optimized differently. For instance, UDFs in DuckDB have vectors as input and output, while that would be confusing and unnecessary in PostgreSQL.