mirror of
				https://github.com/Icinga/icinga2.git
				synced 2025-11-03 21:25:56 +01:00 
			
		
		
		
	Combine all top-level filters into a single filter (with operator "and").
This commit is contained in:
		
							parent
							
								
									79579e9bb1
								
							
						
					
					
						commit
						dc27ddaada
					
				@ -116,7 +116,14 @@ Query::Query(const vector<String>& lines)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	m_Filters.swap(filters);
 | 
			
		||||
	/* Combine all top-level filters into a single filter. */
 | 
			
		||||
	AndFilter::Ptr top_filter = boost::make_shared<AndFilter>();
 | 
			
		||||
 | 
			
		||||
	BOOST_FOREACH(const Filter::Ptr& filter, filters) {
 | 
			
		||||
		top_filter->AddSubFilter(filter);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	m_Filter = top_filter;
 | 
			
		||||
	m_Stats.swap(stats);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -172,15 +179,7 @@ void Query::ExecuteGetHelper(const Stream::Ptr& stream)
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (m_Filters.size() > 1)
 | 
			
		||||
		SendResponse(stream, 452, "There must not be more than one top-level filter expression.");
 | 
			
		||||
 | 
			
		||||
	Filter::Ptr filter;
 | 
			
		||||
 | 
			
		||||
	if (!m_Filters.empty())
 | 
			
		||||
		filter = m_Filters[0];
 | 
			
		||||
 | 
			
		||||
	vector<Object::Ptr> objects = table->FilterRows(filter);
 | 
			
		||||
	vector<Object::Ptr> objects = table->FilterRows(m_Filter);
 | 
			
		||||
	vector<String> columns;
 | 
			
		||||
	
 | 
			
		||||
	if (m_Columns.size() > 0)
 | 
			
		||||
 | 
			
		||||
@ -45,7 +45,7 @@ private:
 | 
			
		||||
	String m_Table;
 | 
			
		||||
	vector<String> m_Columns;
 | 
			
		||||
 | 
			
		||||
	deque<Filter::Ptr> m_Filters;
 | 
			
		||||
	Filter::Ptr m_Filter;
 | 
			
		||||
	deque<Filter::Ptr> m_Stats;
 | 
			
		||||
 | 
			
		||||
	String m_OutputFormat;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user