func (s *SQLStore) SubjectSets(ctx context.Context, object ac.Object, relations ...string) ([]ac.SubjectSet, error) {
	sqlbuilder := goqu.Dialect("postgres").From(object.Namespace).Select("subject").Where(
		goqu.Ex{
			"object":   object.ID,
			"relation": relations,
			"subject":  goqu.Op{"like": "_%%:_%%#_%%"},
		},
	)
	sql, args, err := sqlbuilder.ToSQL()
	if err != nil {
		return nil, err
	}
	rows, err := s.DB.Query(sql, args...)
	if err != nil {
		return nil, err
	}
	subjects := []ac.SubjectSet{}
	for rows.Next() {
		var s string
		if err := rows.Scan(&s); err != nil {
			return nil, err
		}
		subjectSet, err := ac.SubjectSetFromString(s)
		if err != nil {
			return nil, err
		}
		subjects = append(subjects, subjectSet)
	}
	rows.Close()
	return subjects, nil
}
SubjectSets fetches the subject sets for all of the (object, relation) pairs provided.
package datastores
import (
	"context"
	"database/sql"
	"github.com/doug-martin/goqu/v9"
	_ "github.com/doug-martin/goqu/v9/dialect/postgres"  
	"github.com/doug-martin/goqu/v9/exp"
	_ "github.com/lib/pq"
	aclpb "github.com/authorizer-tech/access-controller/genprotos/authorizer/accesscontroller/v1alpha1"
	ac "github.com/authorizer-tech/access-controller/internal"
)
type SQLStore struct {
	DB *sql.DB
}