github.com/10ego/gthp@v0.0.0-20241025155251-e1514fa71fbb/internal/database/entities/query.sql.go (about)

     1  // Code generated by sqlc. DO NOT EDIT.
     2  // versions:
     3  //   sqlc v1.27.0
     4  // source: query.sql
     5  
     6  package db
     7  
     8  import (
     9  	"context"
    10  	"database/sql"
    11  )
    12  
    13  const getParentOrg = `-- name: GetParentOrg :many
    14  WITH RECURSIVE orgs_q as
    15  (
    16  	select id, name, parent_id
    17  	from organizations o
    18  	where o.name = $1 
    19  	UNION ALL
    20  select p.id, p.name, p.parent_id
    21  from organizations p
    22  INNER JOIN orgs_q q ON o.id = q.parent_id 
    23  )
    24  select id, name, parent_id from orgs_q
    25  `
    26  
    27  type GetParentOrgRow struct {
    28  	ID       string
    29  	Name     string
    30  	ParentID sql.NullString
    31  }
    32  
    33  func (q *Queries) GetParentOrg(ctx context.Context, name string) ([]GetParentOrgRow, error) {
    34  	rows, err := q.db.QueryContext(ctx, getParentOrg, name)
    35  	if err != nil {
    36  		return nil, err
    37  	}
    38  	defer rows.Close()
    39  	items := []GetParentOrgRow{}
    40  	for rows.Next() {
    41  		var i GetParentOrgRow
    42  		if err := rows.Scan(&i.ID, &i.Name, &i.ParentID); err != nil {
    43  			return nil, err
    44  		}
    45  		items = append(items, i)
    46  	}
    47  	if err := rows.Close(); err != nil {
    48  		return nil, err
    49  	}
    50  	if err := rows.Err(); err != nil {
    51  		return nil, err
    52  	}
    53  	return items, nil
    54  }