func()

in sg/internal/engine/rego_query.go [247:270]


func (engine *RegoEngine) executeOneQuery(
	ctx context.Context,
	parsedInput ast.Value,
	query string,
) ([]result.Result, error) {
	// NOTE: we expect the policy implementation is deterministic, which provides
	// the same results for the same policy rules, input and query.
	cacheKey := queryCacheKey{
		compilerKey: engine.compilerKey,
		parsedInput: parsedInput,
		query:       query,
	}
	if cachedResults, ok := engine.queryCache.get(cacheKey); ok {
		return cachedResults, nil
	}

	results, err := engine.executeOneQuerySlow(ctx, parsedInput, query)
	if err != nil {
		return nil, err
	}

	engine.queryCache.set(cacheKey, results)
	return results, nil
}