package Ġorg . kom apper . core . dsl . query Ċ Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġorg . kom apper . core . dsl . context . Select Context Ċ import Ġorg . kom apper . core . dsl . expression . Column Expression Ċ import Ġorg . kom apper . core . dsl . expression . Sub query Expression Ċ import Ġorg . kom apper . core . dsl . visitor . Flow Query Visitor Ċ import Ġorg . kom apper . core . dsl . visitor . Query Visitor Ċ Ċ internal Ġclass ĠSingle Column Select Query < A Ġ: ĠAny >( ĊĠĠĠ Ġoverride Ġval Ġcontext : ĠSelect Context < *, Ġ*, Ġ* >, ĊĠĠĠ Ġprivate Ġval Ġexpression : ĠColumn Expression < A , Ġ*> Ċ ) Ġ: ĠFlow Sub query < A ?> Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġsupport : ĠFlow Sub query Support < A ?> Ġ= ĊĠĠĠĠĠĠĠ ĠFlow Sub query Support ( context ) Ġ{ ĠSingle Column Set Operation Query ( it , Ġexpression Ġ= Ġexpression ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< VISIT _ RESULT > Ġaccept ( visitor : ĠFlow Query Visitor < VISIT _ RESULT >): ĠVIS IT _ RESULT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġvisitor . single Column Select Query ( context , Ġexpression ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< R > Ġcollect ( collect : Ġsuspend Ġ( Flow < A ?> ) Ġ-> ĠR ): ĠQuery < R > Ġ= Ġobject Ġ: ĠQuery < R > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< VISIT _ RESULT > Ġaccept ( visitor : ĠQuery Visitor < VISIT _ RESULT >): ĠVIS IT _ RESULT Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvisitor . single Column Select Query ( context , Ġexpression , Ġcollect ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġexcept ( other : ĠSub query Expression < A ?> ): ĠFlow Set Operation Query < A ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsupport . except ( other ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġintersect ( other : ĠSub query Expression < A ?> ): ĠFlow Set Operation Query < A ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsupport . intersect ( other ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġunion ( other : ĠSub query Expression < A ?> ): ĠFlow Set Operation Query < A ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsupport . union ( other ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġunion All ( other : ĠSub query Expression < A ?> ): ĠFlow Set Operation Query < A ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsupport . union All ( other ) ĊĠĠĠ Ġ} Ċ } Ċ