@@ -442,6 +442,52 @@ func queryClickHouseID(ytProxyAddress string) (guid.GUID, error) {
442442 return guid .ParseString (strings .TrimSpace (result ))
443443}
444444
445+ func makeQuery (ctx context.Context , ytClient yt.Client , engine yt.QueryEngine , query string ) []map [string ]any {
446+ id , err := ytClient .StartQuery (ctx , engine , query , nil )
447+ Expect (err ).To (Succeed ())
448+ log .Info ("Query started" , "id" , id )
449+
450+ var previousState yt.QueryState
451+ Eventually (func () (yt.QueryState , error ) {
452+ result , err := ytClient .GetQuery (ctx , id , & yt.GetQueryOptions {
453+ Attributes : []string {"state" , "error" },
454+ })
455+ if err != nil || result .State == nil {
456+ return yt .QueryStateFailed , err
457+ }
458+ if previousState != * result .State {
459+ log .Info ("Query state" , "id" , id , "state" , * result .State , "error" , result .Err )
460+ previousState = * result .State
461+ }
462+ return * result .State , nil
463+ }, "60s" ).To (BeElementOf (yt .QueryStateAborted , yt .QueryStateCompleted , yt .QueryStateFailed ))
464+
465+ result , err := ytClient .GetQuery (ctx , id , nil )
466+ Expect (err ).To (Succeed ())
467+
468+ Expect (result .State ).To (HaveValue (Equal (yt .QueryStateCompleted )))
469+ Expect (result .ResultCount ).To (HaveValue (Equal (int64 (1 ))))
470+
471+ _ , err = ytClient .GetQueryResult (ctx , id , 0 , nil )
472+ Expect (err ).To (Succeed ())
473+
474+ reader , err := ytClient .ReadQueryResult (ctx , id , 0 , nil )
475+ Expect (err ).To (Succeed ())
476+
477+ var rows []map [string ]any
478+ for reader .Next () {
479+ var row map [string ]any
480+ Expect (reader .Scan (& row )).To (Succeed ())
481+ rows = append (rows , row )
482+ }
483+ Expect (reader .Err ()).To (Succeed ())
484+ Expect (reader .Close ()).To (Succeed ())
485+
486+ log .Info ("Query result" , "id" , id , "rows" , rows )
487+
488+ return rows
489+ }
490+
445491func readFileObject (namespace string , source ytv1.FileObjectReference ) ([]byte , error ) {
446492 objectName := types.NamespacedName {
447493 Namespace : namespace ,
0 commit comments