private DefaultQuery mockQuery() { InternalQueryService queryService = mock(InternalQueryService.class); when(cache.getQueryService()).thenReturn(queryService); DefaultQuery query = mock(DefaultQuery.class); when(queryService.newQuery(any())).thenReturn(query); when(query.getRegionsInQuery(any())).thenReturn(Collections.singleton(REGION)); return query; }
Set regionsInQuery = locQuery.getRegionsInQuery(parameters);
String queryStr = constructRegionQueryString(predicate.trim()); DefaultQuery query = (DefaultQuery) qs.newQuery(queryStr); if (query.getRegionsInQuery(params).size() != 1) { throw new QueryInvalidException( "Prevent multiple region query from being executed through region.query()");
for (final Object o : getRegionsInQuery(parameters)) { String regionPath = (String) o; Region rgn = this.cache.getRegion(regionPath);
@Override protected void before() throws Throwable { securityService = mock(SecurityService.class); message = mock(Message.class); connection = mock(ServerConnection.class); cache = mock(InternalCache.class); cqService = mock(CqService.class); internalCqQuery = mock(InternalCqQuery.class); String regionName = "regionName"; Part part = mock(Part.class); CachedRegionHelper crHelper = mock(CachedRegionHelper.class); DefaultQueryService queryService = mock(DefaultQueryService.class); DefaultQuery query = mock(DefaultQuery.class); Set<String> regionsInQuery = new HashSet(); regionsInQuery.add(regionName); when(connection.getCachedRegionHelper()).thenReturn(crHelper); when(connection.getCacheServerStats()).thenReturn(mock(CacheServerStats.class)); when(connection.getAcceptor()).thenReturn(mock(AcceptorImpl.class)); when(connection.getChunkedResponseMessage()).thenReturn(mock(ChunkedMessage.class)); when(message.getPart(anyInt())).thenReturn(part); when(part.getString()).thenReturn("CQ"); when(part.getInt()).thenReturn(10); when(crHelper.getCache()).thenReturn(cache); when(cache.getCqService()).thenReturn(cqService); when(cache.getLocalQueryService()).thenReturn(queryService); when(queryService.newQuery(anyString())).thenReturn(query); when(query.getRegionsInQuery(null)).thenReturn(regionsInQuery); when(cqService.getCq("CQ")).thenReturn(internalCqQuery); when(internalCqQuery.getRegionName()).thenReturn(regionName); }
@Override public Object query(String queryString, Object[] bindParameters) throws NameResolutionException, TypeMismatchException, QueryInvocationTargetException, FunctionDomainException { InternalQueryService queryService = cache.getQueryService(); Query query = queryService.newQuery(queryString); for (String regionName : ((DefaultQuery) query).getRegionsInQuery(bindParameters)) { security.authorize(DATA, READ, regionName, ALL); } Object result = query.execute(bindParameters); if (security.needsPostProcessing()) { return postProcessQueryResults(result); } else { return result; } }
serverConnection.getCachedRegionHelper().getCache().getLocalQueryService(); org.apache.geode.cache.query.Query query = queryService.newQuery(queryString); Set regionNames = ((DefaultQuery) query).getRegionsInQuery(null); regionNames = queryContext.getRegionNames(); if (regionNames == null) { regionNames = ((DefaultQuery) query).getRegionsInQuery(null);
Set regionNames = ((DefaultQuery) query).getRegionsInQuery(queryParams); regionNames = queryContext.getRegionNames(); if (regionNames == null) { regionNames = ((DefaultQuery) query).getRegionsInQuery(null);
if (authzRequest != null) { query = qService.newQuery(cqQueryString); cqRegionNames = ((DefaultQuery) query).getRegionsInQuery(null); executeCQContext = authzRequest.executeCQAuthorize(cqName, cqQueryString, cqRegionNames); String newCqQueryString = executeCQContext.getQuery(); cqRegionNames = executeCQContext.getRegionNames(); if (cqRegionNames == null) { cqRegionNames = ((DefaultQuery) query).getRegionsInQuery(null); if (query == null) { query = qService.newQuery(cqQueryString); cqRegionNames = ((DefaultQuery) query).getRegionsInQuery(null);
cqRegionNames = ((DefaultQuery) query).getRegionsInQuery(null); if (authzRequest != null) { executeCQContext = authzRequest.executeCQAuthorize(cqName, cqQueryString, cqRegionNames); cqRegionNames = executeCQContext.getRegionNames(); if (cqRegionNames == null) { cqRegionNames = ((DefaultQuery) query).getRegionsInQuery(null); ((DefaultQuery) query).getRegionsInQuery(null).forEach((regionName) -> securityService .authorize(Resource.DATA, Operation.READ, (String) regionName)); if (query == null) { query = qService.newQuery(cqQueryString); cqRegionNames = ((DefaultQuery) query).getRegionsInQuery(null);