1. A method for executing an outer join in a relational database distributed across multiple hosts to process a query, the method comprising: creating a tuple list for relations in the relational database and for joins referencing each relation; performing a sequence of semijoin reduction steps on the joins; and adding virtual connector pairs to the tuple lists.