A computer-implemented method for a database management system performing a join operation, over a first database object and a second database object, which are horizontally partitioned across a plurality of nodes, to produce a join result materialization comprising: assigning a respective local join node, from the plurality of nodes, to each respective row of a plurality of rows in the first database object and the second database object, wherein said assigning uses a partitioning technique over join keys; transmitting, over a network to each local join node, a respective set of join tuples, wherein each join tuple of the respective set of join tuples: represents a respective row in a set of rows, of the plurality of rows, to which the local join node was assigned, and comprises a join key from the represented row and a row identifier for the represented row; each local join node, of the plurality of nodes, performing a local join operation over the respective set of join tuples to produce a respective set of join result tuples; wherein each join result tuple, of the respective sets of join result tuples, comprises a respective first row identifier from the first database object and a respective second row identifier from the second database object that identify respective rows that include matching join keys and are matched by a local join operation; each node of the plurality of nodes receiving a respective materialization set of join result tuples sent from one or more other nodes of the plurality of nodes; and each node of the plurality of nodes materializing a respective portion of the join result materialization based, at least in part, on the respective materialization set of join result tuples received by said node; wherein the method is performed by one or more computing devices. assigning a respective local join node, from the plurality of nodes, to each respective row of a plurality of rows in the first database object and the second database object, wherein said assigning uses a partitioning technique over join keys; transmitting, over a network to each local join node, a respective set of join tuples, wherein each join tuple of the respective set of join tuples: represents a respective row in a set of rows, of the plurality of rows, to which the local join node was assigned, and comprises a join key from the represented row and a row identifier for the represented row; represents a respective row in a set of rows, of the plurality of rows, to which the local join node was assigned, and comprises a join key from the represented row and a row identifier for the represented row; each local join node, of the plurality of nodes, performing a local join operation over the respective set of join tuples to produce a respective set of join result tuples; wherein each join result tuple, of the respective sets of join result tuples, comprises a respective first row identifier from the first database object and a respective second row identifier from the second database object that identify respective rows that include matching join keys and are matched by a local join operation; each node of the plurality of nodes receiving a respective materialization set of join result tuples sent from one or more other nodes of the plurality of nodes; and each node of the plurality of nodes materializing a respective portion of the join result materialization based, at least in part, on the respective materialization set of join result tuples received by said node; wherein the method is performed by one or more computing devices.