Criteria resolveCriteria(String criteriaString, Map symbolMap) { if (criteriaString != null && criteriaString.length() > 0) { try { Criteria crit = QueryParser.getQueryParser().parseCriteria(criteriaString); StaticSymbolMappingVisitor.mapSymbols(crit, symbolMap); ResolverVisitor.resolveLanguageObject(crit, null, planEnv.getGlobalMetadata()); return crit; } catch (Exception e) { throw new TeiidRuntimeException(e); } } return null; }
private Criteria parseCriteria(String critStr, QueryMetadataInterface metadata) { try { Criteria crit = QueryParser.getQueryParser().parseCriteria(critStr); // resolve against metadata QueryResolver.resolveCriteria(crit, metadata); return crit; } catch(TeiidException e) { throw new RuntimeException(e); } }
public void helpTestVisitor(String sql, Object modelID, TransformationMetadata metadata, CapabilitiesFinder capFinder, boolean isValid, boolean expectException) throws Exception { try { Criteria criteria = QueryParser.getQueryParser().parseCriteria(sql); QueryResolver.resolveCriteria(criteria, metadata); assertEquals("Got incorrect isValid flag", isValid, CriteriaCapabilityValidatorVisitor.canPushLanguageObject(criteria, modelID, metadata, capFinder, null)); //$NON-NLS-1$ } catch(QueryMetadataException e) { if (!expectException) { throw new RuntimeException(e); } } }
@Test public void testElementsInCritieria1() throws Exception { String criteria = "e1 = '1' and ((e1 = '2' OR e1 = '4') AND e2 = 3) or e2 is null"; //$NON-NLS-1$ Set<ElementSymbol> expected = new HashSet<ElementSymbol>(Arrays.asList(new ElementSymbol("e2"))); //$NON-NLS-1$ assertEquals(expected, RulePushSelectCriteria.getElementsIncriteria(QueryParser.getQueryParser().parseCriteria(criteria))); }
@Test public void testElementsInCritieria() throws Exception { String criteria = "e1 = '1' OR ((e1 = '2' OR e1 = '4') AND e2 = 3)"; //$NON-NLS-1$ Set<ElementSymbol> expected = new HashSet<ElementSymbol>(Arrays.asList(new ElementSymbol("e1"))); //$NON-NLS-1$ assertEquals(expected, RulePushSelectCriteria.getElementsIncriteria(QueryParser.getQueryParser().parseCriteria(criteria))); }
private static Criteria helpGetCriteria(String critString, QueryMetadataInterface metadata) throws QueryMetadataException, TeiidComponentException, TeiidProcessingException{ Criteria result = QueryParser.getQueryParser().parseCriteria(critString); QueryResolver.resolveCriteria(result, metadata); result = QueryRewriter.rewriteCriteria(result, new CommandContext(), metadata); return result; }
/** * Assumes that pm1.g1 is the only inner group */ private void helpTestNullDependentVisitor(String critSQL, boolean dependent) throws QueryParserException, QueryResolverException, QueryMetadataException, TeiidComponentException { List<GroupSymbol> innerGroups = new ArrayList<GroupSymbol>(); innerGroups.add(new GroupSymbol("pm1.g1")); //$NON-NLS-1$ Criteria crit = QueryParser.getQueryParser().parseCriteria(critSQL); QueryResolver.resolveCriteria(crit, RealMetadataFactory.example1Cached()); assertEquals(dependent, JoinUtil.isNullDependent(RealMetadataFactory.example1Cached(), innerGroups, crit)); }
@Test public void testSetCriteriaCastFromExpression_9657() { // parse Criteria actual = null; try { actual = QueryParser.getQueryParser().parseCriteria("bqt1.smalla.shortvalue IN (1, 2)"); //$NON-NLS-1$ } catch(TeiidException e) { fail("Exception during parsing (" + e.getClass().getName() + "): " + e.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ } // resolve try { QueryResolver.resolveCriteria(actual, RealMetadataFactory.exampleBQTCached()); } catch(TeiidException e) { fail("Exception during resolution (" + e.getClass().getName() + "): " + e.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ } assertEquals("Did not match expected criteria", ((SetCriteria)actual).getExpression().getType(), DataTypeManager.DefaultDataClasses.SHORT); //$NON-NLS-1$ }
if (filter == null) { try { filter = QueryParser.getQueryParser().parseCriteria(filterString); GroupSymbol gs = group; if (group.getDefinition() != null) {
if (filter == null) { try { filter = QueryParser.getQueryParser().parseCriteria(filterString); GroupSymbol gs = group; if (group.getDefinition() != null) {
private Criteria helpResolveCriteria(String sql) { Criteria criteria = null; // parse try { criteria = QueryParser.getQueryParser().parseCriteria(sql); } catch(TeiidException e) { fail("Exception during parsing (" + e.getClass().getName() + "): " + e.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ } // resolve try { QueryResolver.resolveCriteria(criteria, metadata); } catch(TeiidException e) { e.printStackTrace(); fail("Exception during resolution (" + e.getClass().getName() + "): " + e.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ } CheckSymbolsAreResolvedVisitor vis = new CheckSymbolsAreResolvedVisitor(); DeepPreOrderNavigator.doVisit(criteria, vis); Collection<LanguageObject> unresolvedSymbols = vis.getUnresolvedSymbols(); assertTrue("Found unresolved symbols: " + unresolvedSymbols, unresolvedSymbols.isEmpty()); //$NON-NLS-1$ return criteria; }
if (filter == null) { try { filter = QueryParser.getQueryParser().parseCriteria(filterString); GroupSymbol gs = group; if (group.getDefinition() != null) {
@Test public void testResolveUnqualifiedCriteria() throws Exception{ Criteria criteria = QueryParser.getQueryParser().parseCriteria("e1 = 1"); //$NON-NLS-1$ // resolve try { QueryResolver.resolveCriteria(criteria, metadata); fail("Exception expected"); //$NON-NLS-1$ } catch(QueryResolverException e) { assertEquals("TEIID31119 Symbol e1 is specified with an unknown group context", e.getMessage()); //$NON-NLS-1$ } }