private boolean isAssignable(TempMetadataAdapter metadata, SPParameter param) throws TeiidComponentException, QueryMetadataException { if (!(param.getExpression() instanceof ElementSymbol)) { return false; } ElementSymbol symbol = (ElementSymbol)param.getExpression(); return metadata.elementSupports(symbol.getMetadataID(), SupportConstants.Element.UPDATE); }
private boolean isAssignable(TempMetadataAdapter metadata, SPParameter param) throws TeiidComponentException, QueryMetadataException { if (!(param.getExpression() instanceof ElementSymbol)) { return false; } ElementSymbol symbol = (ElementSymbol)param.getExpression(); return metadata.elementSupports(symbol.getMetadataID(), SupportConstants.Element.UPDATE); }
private boolean isAssignable(TempMetadataAdapter metadata, SPParameter param) throws TeiidComponentException, QueryMetadataException { if (!(param.getExpression() instanceof ElementSymbol)) { return false; } ElementSymbol symbol = (ElementSymbol)param.getExpression(); return metadata.elementSupports(symbol.getMetadataID(), SupportConstants.Element.UPDATE); }
public LinkedHashMap<ElementSymbol, Expression> getProcedureParameters() { LinkedHashMap<ElementSymbol, Expression> map = new LinkedHashMap<ElementSymbol, Expression>(); for (SPParameter element : this.getInputParameters()) { map.put(element.getParameterSymbol(), element.getExpression()); } // for return map; }
public LinkedHashMap<ElementSymbol, Expression> getProcedureParameters() { LinkedHashMap<ElementSymbol, Expression> map = new LinkedHashMap<ElementSymbol, Expression>(); for (SPParameter element : this.getInputParameters()) { map.put(element.getParameterSymbol(), element.getExpression()); } // for return map; }
public LinkedHashMap<ElementSymbol, Expression> getProcedureParameters() { LinkedHashMap<ElementSymbol, Expression> map = new LinkedHashMap<ElementSymbol, Expression>(); for (SPParameter element : this.getInputParameters()) { map.put(element.getParameterSymbol(), element.getExpression()); } // for return map; }
public void visit(StoredProcedure obj) { for (Iterator<SPParameter> paramIter = obj.getInputParameters().iterator(); paramIter.hasNext();) { SPParameter param = paramIter.next(); Expression expr = param.getExpression(); param.setExpression(replaceExpression(expr)); } }
public void visit(StoredProcedure obj) { for (Iterator<SPParameter> paramIter = obj.getInputParameters().iterator(); paramIter.hasNext();) { SPParameter param = paramIter.next(); Expression expr = param.getExpression(); param.setExpression(replaceExpression(expr)); } }
public void visit(StoredProcedure obj) { for (Iterator<SPParameter> paramIter = obj.getInputParameters().iterator(); paramIter.hasNext();) { SPParameter param = paramIter.next(); Expression expr = param.getExpression(); param.setExpression(replaceExpression(expr)); } }
private Command rewriteExec(StoredProcedure storedProcedure) throws TeiidComponentException, TeiidProcessingException{ //After this method, no longer need to display named parameters storedProcedure.setDisplayNamedParameters(false); for (SPParameter param : storedProcedure.getInputParameters()) { if (!processing || storedProcedure.isPushedInQuery()) { param.setExpression(rewriteExpressionDirect(param.getExpression())); } else if (!(param.getExpression() instanceof Constant)) { boolean isBindEligible = !isConstantConvert(param.getExpression()); param.setExpression(evaluate(param.getExpression(), isBindEligible)); } } return storedProcedure; }
private Command rewriteExec(StoredProcedure storedProcedure) throws TeiidComponentException, TeiidProcessingException{ //After this method, no longer need to display named parameters storedProcedure.setDisplayNamedParameters(false); for (SPParameter param : storedProcedure.getInputParameters()) { if (!processing || storedProcedure.isPushedInQuery()) { param.setExpression(rewriteExpressionDirect(param.getExpression())); } else if (!(param.getExpression() instanceof Constant)) { boolean isBindEligible = !isConstantConvert(param.getExpression()); param.setExpression(evaluate(param.getExpression(), isBindEligible)); } } return storedProcedure; }
public void visit(StoredProcedure proc){ evaluationNotPossible(EvaluationLevel.PUSH_DOWN); for (SPParameter param : proc.getInputParameters()) { if (!(param.getExpression() instanceof Constant)) { evaluationNotPossible(EvaluationLevel.PROCESSING); } } }
public void visit(StoredProcedure proc){ evaluationNotPossible(EvaluationLevel.PUSH_DOWN); for (SPParameter param : proc.getInputParameters()) { if (!(param.getExpression() instanceof Constant)) { evaluationNotPossible(EvaluationLevel.PROCESSING); } } }
public void visit(StoredProcedure proc){ evaluationNotPossible(EvaluationLevel.PUSH_DOWN); for (SPParameter param : proc.getInputParameters()) { if (!(param.getExpression() instanceof Constant)) { evaluationNotPossible(EvaluationLevel.PROCESSING); } } }
public void visit(StoredProcedure obj) { preVisitVisitor(obj); Collection<SPParameter> params = obj.getParameters(); if(params != null && !params.isEmpty()) { for (SPParameter parameter : params) { Expression expression = parameter.getExpression(); visitNode(expression); } } visitNode(obj.getOption()); postVisitVisitor(obj); } public void visit(SubqueryCompareCriteria obj) {
public void visit(StoredProcedure obj) { preVisitVisitor(obj); Collection<SPParameter> params = obj.getParameters(); if(params != null && !params.isEmpty()) { for (SPParameter parameter : params) { Expression expression = parameter.getExpression(); visitNode(expression); } } visitNode(obj.getOption()); postVisitVisitor(obj); } public void visit(SubqueryCompareCriteria obj) {
@Test public void testOptionalParams() throws Exception { String ddl = "create foreign procedure proc (x integer, y string);\n"; TransformationMetadata tm = createMetadata(ddl); String sql = "call proc (1)"; //$NON-NLS-1$ StoredProcedure sp = (StoredProcedure) TestResolver.helpResolve(sql, tm); assertEquals(new Constant(null, DataTypeManager.DefaultDataClasses.STRING), sp.getParameter(2).getExpression()); sql = "call proc (1, 'a')"; //$NON-NLS-1$ sp = (StoredProcedure) TestResolver.helpResolve(sql, tm); assertEquals(new Constant("a", DataTypeManager.DefaultDataClasses.STRING), sp.getParameter(2).getExpression()); }
@Test public void testOptionalParams1() throws Exception { String ddl = "create foreign procedure proc (x integer, y string NOT NULL, z integer);\n"; TransformationMetadata tm = createMetadata(ddl); String sql = "call proc (1, 'a')"; //$NON-NLS-1$ StoredProcedure sp = (StoredProcedure) TestResolver.helpResolve(sql, tm); assertEquals(new Constant("a", DataTypeManager.DefaultDataClasses.STRING), sp.getParameter(2).getExpression()); }
private void helpCheckParameter(SPParameter param, int paramType, int index, String name, Class<?> type, Expression expr) { assertEquals("Did not get expected parameter type", paramType, param.getParameterType()); //$NON-NLS-1$ assertEquals("Did not get expected index for param", index, param.getIndex()); //$NON-NLS-1$ assertEquals("Did not get expected name for param", name, param.getName()); //$NON-NLS-1$ assertEquals("Did not get expected type for param", type, param.getClassType()); //$NON-NLS-1$ assertEquals("Did not get expected type for param", expr, param.getExpression()); //$NON-NLS-1$ }
public void testExecParamElement() { StoredProcedure exec = new StoredProcedure(); exec.setProcedureName("pm1.proc1"); //$NON-NLS-1$ exec.setProcedureID("proc"); //$NON-NLS-1$ SPParameter param1 = new SPParameter(1, exampleElement(true, 1)); exec.setParameter(param1); // Run symbol mapper StaticSymbolMappingVisitor visitor = new StaticSymbolMappingVisitor(getSymbolMap()); DeepPreOrderNavigator.doVisit(exec, visitor); // Check that element got switched assertEquals("Stored proc param did not get mapped correctly: ", exampleElement(false, 1), param1.getExpression()); //$NON-NLS-1$ }