public boolean returnParameters() { return isCallableStatement || !returnsResultSet(); }
public boolean returnParameters() { return isCallableStatement || !returnsResultSet(); }
public boolean returnParameters() { return isCallableStatement || !returnsResultSet(); }
@Override public boolean isReturingParams() { if (userCommand instanceof StoredProcedure) { StoredProcedure sp = (StoredProcedure)userCommand; if (sp.isCallableStatement() && sp.returnsResultSet()) { for (SPParameter param : sp.getMapOfParameters().values()) { int type = param.getParameterType(); if (type == SPParameter.INOUT || type == SPParameter.OUT || type == SPParameter.RETURN_VALUE) { return true; } } } } return false; }
@Override public boolean isReturingParams() { if (userCommand instanceof StoredProcedure) { StoredProcedure sp = (StoredProcedure)userCommand; if (sp.isCallableStatement() && sp.returnsResultSet()) { for (SPParameter param : sp.getMapOfParameters().values()) { int type = param.getParameterType(); if (type == SPParameter.INOUT || type == SPParameter.OUT || type == SPParameter.RETURN_VALUE) { return true; } } } } return false; }
@Override public boolean isReturingParams() { if (userCommand instanceof StoredProcedure) { StoredProcedure sp = (StoredProcedure)userCommand; if (sp.isCallableStatement() && sp.returnsResultSet()) { for (SPParameter param : sp.getMapOfParameters().values()) { int type = param.getParameterType(); if (type == SPParameter.INOUT || type == SPParameter.OUT || type == SPParameter.RETURN_VALUE) { return true; } } } } return false; }
@Test public void testReturnAndResultSet() throws Exception { String ddl = "CREATE FOREIGN PROCEDURE proc (OUT param STRING RESULT) RETURNS TABLE (a INTEGER, b STRING);"; //$NON-NLS-1$ TransformationMetadata tm = RealMetadataFactory.fromDDL(ddl, "x", "y"); StoredProcedure sp = (StoredProcedure) TestResolver.helpResolve("exec proc()", tm); assertEquals(2, sp.getProjectedSymbols().size()); assertEquals("y.proc.b", sp.getProjectedSymbols().get(1).toString()); assertTrue(sp.returnsResultSet()); sp.setCallableStatement(true); assertEquals(3, sp.getProjectedSymbols().size()); assertEquals("y.proc.param", sp.getProjectedSymbols().get(2).toString()); CreateProcedureCommand cpc = (CreateProcedureCommand) TestResolver.helpResolve("begin exec proc(); end", tm); assertEquals(2, cpc.getProjectedSymbols().size()); assertEquals(2, ((CommandStatement)cpc.getBlock().getStatements().get(0)).getCommand().getProjectedSymbols().size()); assertTrue(cpc.returnsResultSet()); TestValidator.helpValidate("begin declare string var; var = exec proc(); select var; end", new String[] {"SELECT var;"}, tm); }