protected override void ExecuteStatement(ExecutionContext context)
{
var cursorInfo = new CursorInfo(CursorName, Flags, QueryExpression);
if (Parameters != null) {
foreach (var parameter in Parameters) {
cursorInfo.Parameters.Add(parameter);
}
}
// TODO:
//var queryPlan = context.Request.Context.QueryPlanner().PlanQuery(new QueryInfo(context.Request, QueryExpression));
//var selectedTables = queryPlan.DiscoverAccessedResources();
//foreach (var tableName in selectedTables) {
// if (!context.User.CanSelectFromTable(tableName))
// throw new MissingPrivilegesException(context.User.Name, tableName, Privileges.Select);
//}
context.Request.Context.DeclareCursor(cursorInfo);
}