-module(cake@query@join). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([table/1, sub_query/1, inner/3, left/3, right/3, full/3, cross/2]). -spec table(binary()) -> cake@internal@query:join_target(). table(Tbl_nm) -> _pipe = Tbl_nm, {join_table, _pipe}. -spec sub_query(cake@internal@query:'query'()) -> cake@internal@query:join_target(). sub_query(Sq) -> _pipe = Sq, {join_sub_query, _pipe}. -spec inner( cake@internal@query:join_target(), cake@internal@query:where(), binary() ) -> cake@internal@query:join(). inner(Wth, On, Als) -> _pipe = Wth, {inner_join, _pipe, Als, On}. -spec left( cake@internal@query:join_target(), cake@internal@query:where(), binary() ) -> cake@internal@query:join(). left(Wth, On, Als) -> _pipe = Wth, {left_join, _pipe, Als, On}. -spec right( cake@internal@query:join_target(), cake@internal@query:where(), binary() ) -> cake@internal@query:join(). right(Wth, On, Als) -> _pipe = Wth, {right_join, _pipe, Als, On}. -spec full( cake@internal@query:join_target(), cake@internal@query:where(), binary() ) -> cake@internal@query:join(). full(Wth, On, Als) -> _pipe = Wth, {full_join, _pipe, Als, On}. -spec cross(cake@internal@query:join_target(), binary()) -> cake@internal@query:join(). cross(Wth, Als) -> _pipe = Wth, {cross_join, _pipe, Als}.