public boolean isVarArgs() { if (this.inParameters != null && this.inParameters.size() > 0) { return inParameters.get(inParameters.size() - 1).isVarArg(); } return false; }
@Override public boolean isVariadic(Object metadataID) { if (metadataID instanceof ProcedureParameter) { return ((ProcedureParameter)metadataID).isVarArg(); } if (metadataID instanceof FunctionParameter) { return ((FunctionParameter)metadataID).isVarArg(); } return false; }
@Override public boolean isVariadic(Object metadataID) { if (metadataID instanceof ProcedureParameter) { return ((ProcedureParameter)metadataID).isVarArg(); } if (metadataID instanceof FunctionParameter) { return ((FunctionParameter)metadataID).isVarArg(); } return false; }
@Override public boolean isVariadic(Object metadataID) { if (metadataID instanceof ProcedureParameter) { return ((ProcedureParameter)metadataID).isVarArg(); } if (metadataID instanceof FunctionParameter) { return ((FunctionParameter)metadataID).isVarArg(); } return false; }
private void visit(FunctionParameter param) { if (param.isVarArg()) { append(NonReserved.VARIADIC).append(SPACE); } appendColumn(param, true, true); }
private void visit(FunctionParameter param) { if (param.isVarArg()) { append(NonReserved.VARIADIC).append(SPACE); } appendColumn(param, true, true); }
private void visit(FunctionParameter param) { if (param.isVarArg()) { append(NonReserved.VARIADIC).append(SPACE); } appendColumn(param, true, true); }
@Test(expected=MetadataException.class) public void testInvalidFunctionBody() throws Exception { String ddl = "CREATE FOREIGN FUNCTION SourceFunc(flag boolean) RETURNS varchar AS SELECT 'a';"; Schema s = helpParse(ddl, "model").getSchema(); FunctionMethod fm = s.getFunction("z"); assertTrue( fm.getInputParameters().get(0).isVarArg()); }
@Test(expected=MetadataException.class) public void testInvalidProcedureBody() throws Exception { String ddl = "CREATE FOREIGN PROCEDURE SourceFunc(flag boolean) RETURNS varchar AS SELECT 'a';"; Schema s = helpParse(ddl, "model").getSchema(); FunctionMethod fm = s.getFunction("z"); assertTrue( fm.getInputParameters().get(0).isVarArg()); }
@Test public void testVarArgs() throws Exception { String ddl = "CREATE FUNCTION SourceFunc(flag boolean) RETURNS varchar options (varargs 'true', UUID 'z')"; Schema s = helpParse(ddl, "model").getSchema(); FunctionMethod fm = s.getFunction("z"); assertTrue( fm.getInputParameters().get(0).isVarArg()); }
if (param.isVarArg() && param != func.getInputParameters().get(func.getInputParameterCount() -1)) { metadataValidator.log(report, model, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31112, func.getFullName()));
if (param.isVarArg() && param != func.getInputParameters().get(func.getInputParameterCount() -1)) { metadataValidator.log(report, model, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31112, func.getFullName()));
if (param.isVarArg() && param != func.getInputParameters().get(func.getInputParameterCount() -1)) { metadataValidator.log(report, model, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31112, func.getFullName()));
@Test public void testUDF() throws Exception { String ddl = "CREATE VIRTUAL FUNCTION SourceFunc(flag boolean, msg varchar) RETURNS varchar " + "OPTIONS(CATEGORY 'misc', DETERMINISM 'DETERMINISTIC', " + "\"NULL-ON-NULL\" 'true', JAVA_CLASS 'foo', JAVA_METHOD 'bar', RANDOM 'any', UUID 'x')"; Schema s = helpParse(ddl, "model").getSchema(); FunctionMethod fm = s.getFunction("x"); assertNotNull(fm); assertEquals("string", fm.getOutputParameter().getRuntimeType()); assertEquals(FunctionMethod.PushDown.CAN_PUSHDOWN, fm.getPushdown()); assertEquals(2, fm.getInputParameterCount()); assertEquals("flag", fm.getInputParameters().get(0).getName()); assertEquals("boolean", fm.getInputParameters().get(0).getRuntimeType()); assertEquals("msg", fm.getInputParameters().get(1).getName()); assertEquals("string", fm.getInputParameters().get(1).getRuntimeType()); assertFalse( fm.getInputParameters().get(1).isVarArg()); assertEquals(FunctionMethod.Determinism.DETERMINISTIC, fm.getDeterminism()); assertEquals("misc", fm.getCategory()); assertEquals(true, fm.isNullOnNull()); assertEquals("foo", fm.getInvocationClass()); assertEquals("bar", fm.getInvocationMethod()); assertEquals("any", fm.getProperties().get("RANDOM")); }
@Test public void testUDAggregate() throws Exception { String ddl = "CREATE VIRTUAL FUNCTION SourceFunc(flag boolean, msg varchar) RETURNS varchar " + "OPTIONS(CATEGORY 'misc', AGGREGATE 'true', \"allows-distinct\" 'true', UUID 'y')"; Schema s = helpParse(ddl, "model").getSchema(); FunctionMethod fm = s.getFunction("y"); assertNotNull(fm); assertEquals("string", fm.getOutputParameter().getRuntimeType()); assertEquals(FunctionMethod.PushDown.CAN_PUSHDOWN, fm.getPushdown()); assertEquals(2, fm.getInputParameterCount()); assertEquals("flag", fm.getInputParameters().get(0).getName()); assertEquals("boolean", fm.getInputParameters().get(0).getRuntimeType()); assertEquals("msg", fm.getInputParameters().get(1).getName()); assertEquals("string", fm.getInputParameters().get(1).getRuntimeType()); assertFalse( fm.getInputParameters().get(1).isVarArg()); assertNotNull(fm.getAggregateAttributes()); assertTrue(fm.getAggregateAttributes().allowsDistinct()); assertEquals(FunctionMethod.Determinism.DETERMINISTIC, fm.getDeterminism()); assertEquals("misc", fm.getCategory()); assertFalse(fm.isNullOnNull()); }