-module(cake@query@join). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([table/1, sub_query/1, cross/2, inner/3, left_outer/3, right_outer/3, full_outer/3]). -spec table(binary()) -> cake@internal@query:join(). table(Tbl) -> _pipe = Tbl, {join_table, _pipe}. -spec sub_query(cake@internal@query:'query'()) -> cake@internal@query:join(). sub_query(Sq) -> _pipe = Sq, {join_sub_query, _pipe}. -spec cross(cake@internal@query:join(), binary()) -> cake@internal@query:join_part(). cross(Wth, Als) -> {cross_join, Wth, Als}. -spec inner( cake@internal@query:join(), binary(), cake@internal@query:where_part() ) -> cake@internal@query:join_part(). inner(Wth, Als, On) -> {inner_join, Wth, Als, On}. -spec left_outer( cake@internal@query:join(), binary(), cake@internal@query:where_part() ) -> cake@internal@query:join_part(). left_outer(Wth, Als, On) -> {left_outer_join, Wth, Als, On}. -spec right_outer( cake@internal@query:join(), binary(), cake@internal@query:where_part() ) -> cake@internal@query:join_part(). right_outer(Wth, Als, On) -> {right_outer_join, Wth, Als, On}. -spec full_outer( cake@internal@query:join(), binary(), cake@internal@query:where_part() ) -> cake@internal@query:join_part(). full_outer(Wth, Als, On) -> {full_outer_join, Wth, Als, On}.