You're seeing just the macro union, go back to Ecto.Query module for more information.
Link to this macro

union(query, other_query)

View Source (macro)

A union query expression.

Combines result sets of multiple queries. The select of each query must be exactly the same, with the same types in the same order.

Union expression returns only unique rows as if each query returned distinct results. This may cause a performance penalty. If you need to combine multiple result sets without removing duplicate rows consider using union_all/2.

Note that the operations order_by, limit and offset of the current query apply to the result of the union.

Keywords example

supplier_query = from s in Supplier, select:
from c in Customer, select:, union: ^supplier_query

Expressions example

supplier_query = Supplier |> select([s],
Customer |> select([c], |> union(^supplier_query)