-module(galchemy@examples@simple_select). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src\\galchemy\\examples\\simple_select.gleam"). -export([build_query/0, row_decoder/0, run/1, main/0]). -file("src\\galchemy\\examples\\simple_select.gleam", 13). -spec build_query() -> galchemy@ast@expression:select_query(). build_query() -> Users = galchemy@dsl@table:as_( galchemy@dsl@table:table(<<"users"/utf8>>), <<"u"/utf8>> ), Id = galchemy@dsl@table:int(Users, <<"id"/utf8>>), Name = galchemy@dsl@table:text(Users, <<"name"/utf8>>), Active = galchemy@dsl@table:bool(Users, <<"active"/utf8>>), _pipe = galchemy@dsl@select:select( [galchemy@dsl@expr:item(galchemy@dsl@expr:col(Id)), galchemy@dsl@expr:item(galchemy@dsl@expr:col(Name))] ), _pipe@1 = galchemy@dsl@select:from(_pipe, Users), _pipe@2 = galchemy@dsl@select:where_( _pipe@1, galchemy@dsl@predicate:'and'( galchemy@dsl@predicate:eq( galchemy@dsl@expr:col(Active), galchemy@dsl@expr:bool(true) ), galchemy@dsl@predicate:ilike( galchemy@dsl@expr:col(Name), galchemy@dsl@expr:text(<<"A%"/utf8>>) ) ) ), _pipe@3 = galchemy@dsl@select:order_by( _pipe@2, galchemy@dsl@select:asc(galchemy@dsl@expr:col(Id)) ), galchemy@dsl@select:limit(_pipe@3, 20). -file("src\\galchemy\\examples\\simple_select.gleam", 32). -spec row_decoder() -> gleam@dynamic@decode:decoder({integer(), binary()}). row_decoder() -> _pipe = gleam@dynamic@decode:at( [0], {decoder, fun gleam@dynamic@decode:decode_int/1} ), gleam@dynamic@decode:then( _pipe, fun(Id) -> _pipe@1 = gleam@dynamic@decode:at( [1], {decoder, fun gleam@dynamic@decode:decode_string/1} ), gleam@dynamic@decode:map(_pipe@1, fun(Name) -> {Id, Name} end) end ). -file("src\\galchemy\\examples\\simple_select.gleam", 40). -spec run(pog:connection()) -> {ok, pog:returned({integer(), binary()})} | {error, galchemy@sql@postgres:postgres_error()}. run(Connection) -> galchemy@sql@postgres:execute_with( {select, build_query()}, row_decoder(), Connection ). -file("src\\galchemy\\examples\\simple_select.gleam", 44). -spec main() -> nil. main() -> gleam_stdlib:println(<<"Simple select example"/utf8>>), gleam_stdlib:println( gleam@string:inspect(galchemy:compile({select, build_query()})) ).