-module(galchemy@examples@join_example). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src\\galchemy\\examples\\join_example.gleam"). -export([build_query/0, main/0]). -file("src\\galchemy\\examples\\join_example.gleam", 10). -spec build_query() -> galchemy@ast@expression:select_query(). build_query() -> Users = galchemy@dsl@table:as_( galchemy@dsl@table:table(<<"users"/utf8>>), <<"u"/utf8>> ), Posts = galchemy@dsl@table:as_( galchemy@dsl@table:table(<<"posts"/utf8>>), <<"p"/utf8>> ), User_id = galchemy@dsl@table:int(Users, <<"id"/utf8>>), User_name = galchemy@dsl@table:text(Users, <<"name"/utf8>>), Post_user_id = galchemy@dsl@table:int(Posts, <<"user_id"/utf8>>), Post_published = galchemy@dsl@table:bool(Posts, <<"published"/utf8>>), _pipe = galchemy@dsl@select:select( [galchemy@dsl@expr:item(galchemy@dsl@expr:col(User_id)), galchemy@dsl@expr:item(galchemy@dsl@expr:col(User_name)), galchemy@dsl@expr:as_( galchemy@dsl@expr:col(Post_user_id), <<"author_id"/utf8>> )] ), _pipe@1 = galchemy@dsl@select:from(_pipe, Users), _pipe@2 = galchemy@dsl@select:inner_join( _pipe@1, Posts, galchemy@dsl@predicate:eq( galchemy@dsl@expr:col(User_id), galchemy@dsl@expr:col(Post_user_id) ) ), galchemy@dsl@select:where_( _pipe@2, galchemy@dsl@predicate:eq( galchemy@dsl@expr:col(Post_published), galchemy@dsl@expr:bool(true) ) ). -file("src\\galchemy\\examples\\join_example.gleam", 31). -spec main() -> nil. main() -> gleam_stdlib:println(<<"Join example"/utf8>>), gleam_stdlib:println( gleam@string:inspect(galchemy:compile({select, build_query()})) ).