paramRd.setNullType(NullType.values()[Integer.parseInt(tokens.get(tokenIndex++))]);
paramRd.setNullType(NullType.values()[Integer.parseInt(tokens.get(tokenIndex++))]);
@Override public void loadMetadata(MetadataFactory factory, ExecutionFactory<Object, Object> executionFactory, Object connectionFactory) throws TranslatorException { Schema s = factory.getSchema(); for (Table t : s.getTables().values()) { if (!t.isPhysical()) { continue; } Column c = t.getColumnByName(multiSourceColumnName); if (c == null) { c = factory.addColumn(multiSourceColumnName, DataTypeManager.DefaultDataTypes.STRING, t); MultiSourceMetadataWrapper.setMultiSourceElementMetadata(c); } } outer: for (Procedure p : s.getProcedures().values()) { if (p.isVirtual()) { continue; } for (ProcedureParameter pp : p.getParameters()) { if (multiSourceColumnName.equalsIgnoreCase(pp.getName())) { continue outer; } } ProcedureParameter pp = factory.addProcedureParameter(multiSourceColumnName, DataTypeManager.DefaultDataTypes.STRING, Type.In, p); pp.setNullType(NullType.Nullable); } }
@Override public void execute(String name, String nameInSource, Property property, boolean array) { String type = getPropertyType(property, array); if (procedure.getParameterByName(nameInSource) == null) { ProcedureParameter param = mf.addProcedureParameter(name, type, Type.In, procedure); param.setProperty(PARAMETER_TYPE, parameter.getIn()); if (property != null && !property.getRequired()) { param.setProperty(BaseColumn.DEFAULT_HANDLING, BaseColumn.OMIT_DEFAULT); } param.setNullType(NullType.No_Nulls); param.setAnnotation(property!=null?property.getDescription():null); if (!name.equalsIgnoreCase(nameInSource)) { param.setNameInSource(nameInSource); } } } };
@Override public void loadMetadata(MetadataFactory factory, ExecutionFactory executionFactory, Object connectionFactory) throws TranslatorException { if (executionFactory != null && executionFactory.supportsDirectQueryProcedure() && factory.getSchema().getProcedure(executionFactory.getDirectQueryProcedureName()) == null) { Procedure p = factory.addProcedure(executionFactory.getDirectQueryProcedureName()); p.setAnnotation("Invokes translator with a native query that returns results in an array of values"); //$NON-NLS-1$ ProcedureParameter param = factory.addProcedureParameter("request", TypeFacility.RUNTIME_NAMES.STRING, Type.In, p); //$NON-NLS-1$ param.setAnnotation("The native query to execute"); //$NON-NLS-1$ param.setNullType(NullType.No_Nulls); param = factory.addProcedureParameter("variable", TypeFacility.RUNTIME_NAMES.OBJECT, Type.In, p); //$NON-NLS-1$ param.setAnnotation("Any number of varaibles; usage will vary by translator"); //$NON-NLS-1$ param.setNullType(NullType.Nullable); param.setVarArg(true); factory.addProcedureResultSetColumn("tuple", DataTypeManager.getDataTypeName(DataTypeManager.getArrayType(TypeFacility.RUNTIME_TYPES.OBJECT)), p); //$NON-NLS-1$ } } }
@Override public void loadMetadata(MetadataFactory factory, ExecutionFactory executionFactory, Object connectionFactory) throws TranslatorException { if (executionFactory != null && executionFactory.supportsDirectQueryProcedure() && factory.getSchema().getProcedure(executionFactory.getDirectQueryProcedureName()) == null) { Procedure p = factory.addProcedure(executionFactory.getDirectQueryProcedureName()); p.setAnnotation("Invokes translator with a native query that returns results in an array of values"); //$NON-NLS-1$ ProcedureParameter param = factory.addProcedureParameter("request", TypeFacility.RUNTIME_NAMES.STRING, Type.In, p); //$NON-NLS-1$ param.setAnnotation("The native query to execute"); //$NON-NLS-1$ param.setNullType(NullType.No_Nulls); param = factory.addProcedureParameter("variable", TypeFacility.RUNTIME_NAMES.OBJECT, Type.In, p); //$NON-NLS-1$ param.setAnnotation("Any number of varaibles; usage will vary by translator"); //$NON-NLS-1$ param.setNullType(NullType.Nullable); param.setVarArg(true); factory.addProcedureResultSetColumn("tuple", DataTypeManager.getDataTypeName(DataTypeManager.getArrayType(TypeFacility.RUNTIME_TYPES.OBJECT)), p); //$NON-NLS-1$ } } }
@Override public void loadMetadata(MetadataFactory factory, ExecutionFactory executionFactory, Object connectionFactory) throws TranslatorException { if (executionFactory != null && executionFactory.supportsDirectQueryProcedure() && factory.getSchema().getProcedure(executionFactory.getDirectQueryProcedureName()) == null) { Procedure p = factory.addProcedure(executionFactory.getDirectQueryProcedureName()); p.setAnnotation("Invokes translator with a native query that returns results in an array of values"); //$NON-NLS-1$ ProcedureParameter param = factory.addProcedureParameter("request", TypeFacility.RUNTIME_NAMES.STRING, Type.In, p); //$NON-NLS-1$ param.setAnnotation("The native query to execute"); //$NON-NLS-1$ param.setNullType(NullType.No_Nulls); param = factory.addProcedureParameter("variable", TypeFacility.RUNTIME_NAMES.OBJECT, Type.In, p); //$NON-NLS-1$ param.setAnnotation("Any number of varaibles; usage will vary by translator"); //$NON-NLS-1$ param.setNullType(NullType.Nullable); param.setVarArg(true); factory.addProcedureResultSetColumn("tuple", DataTypeManager.getDataTypeName(DataTypeManager.getArrayType(TypeFacility.RUNTIME_TYPES.OBJECT)), p); //$NON-NLS-1$ } } }
procedure); p.setProperty(PARAMETER_TYPE, parameter.getIn()); p.setNullType(NullType.No_Nulls); p.setAnnotation(parameter.getDescription()); pp.setProperty(BaseColumn.DEFAULT_HANDLING, BaseColumn.OMIT_DEFAULT); pp.setNullType(NullType.No_Nulls);
rs2p2.setNullType(org.teiid.metadata.BaseColumn.NullType.Nullable); QueryNode sq2n1 = new QueryNode("CREATE VIRTUAL PROCEDURE BEGIN\n" //$NON-NLS-1$ //$NON-NLS-2$ + "execute string 'SELECT a, b FROM MultiModel.Phys where SOURCE_NAME = Virt.sq1.in'; END"); //$NON-NLS-1$ ProcedureParameter rs3p2 = createParameter("in", ParameterInfo.IN, DataTypeManager.DefaultDataTypes.STRING); //$NON-NLS-1$ ProcedureParameter rs3p3 = createParameter("source_name", ParameterInfo.IN, DataTypeManager.DefaultDataTypes.STRING); //$NON-NLS-1$ rs3p3.setNullType(org.teiid.metadata.BaseColumn.NullType.Nullable); Procedure sq2 = createStoredProcedure("proc", physModel, Arrays.asList(rs3p2, rs3p3)); sq2.setResultSet(rs3);
private ProcedureParameter addParameterAsColumn(MetadataFactory mf, Procedure procedure, CsdlParameter parameter) { ProcedureParameter p = mf.addProcedureParameter( parameter.getName(), ODataTypeManager.teiidType(parameter.getType(),parameter.isCollection()), ProcedureParameter.Type.In, procedure); p.setNullType(parameter.isNullable()?NullType.Nullable:NullType.No_Nulls); if (parameter.getMaxLength() != null) { p.setLength(parameter.getMaxLength()); } if (parameter.getPrecision() != null) { p.setPrecision(parameter.getPrecision()); } if (parameter.getScale() != null) { p.setScale(parameter.getScale()); } handleGeometryTypes(parameter.getSrid(), parameter.getType(), p); return p; }
setTypeInfo(type, param); if (notNull) { param.setNullType(Column.NullType.No_Nulls);
setTypeInfo(type, param); if (notNull) { param.setNullType(Column.NullType.No_Nulls);
setTypeInfo(type, param); if (notNull) { param.setNullType(Column.NullType.No_Nulls);
ProcedureParameter rs5p3b = createParameter("in2", ParameterInfo.IN, DataTypeManager.DefaultDataTypes.INTEGER); //$NON-NLS-1$ ProcedureParameter rs5p4b = createParameter("in3", ParameterInfo.IN, DataTypeManager.DefaultDataTypes.STRING); //$NON-NLS-1$ rs5p3b.setNullType(NullType.Nullable); rs5p4b.setDefaultValue("YYZ"); //$NON-NLS-1$ QueryNode sq3n1b = new QueryNode("CREATE VIRTUAL PROCEDURE BEGIN SELECT e1, e2 FROM pm1.g1 WHERE e1=pm1.sq3b.in UNION ALL SELECT e1, e2 FROM pm1.g1 WHERE e2=pm1.sq3b.in2; END"); //$NON-NLS-1$ //$NON-NLS-2$ rsParameterBigDecimal.setNullType(NullType.Nullable); rsParameterBigDecimal.setDefaultValue(new String("13.0")); //$NON-NLS-1$ ProcedureParameter rsParameterBigInteger = createParameter("inBigInteger", ParameterInfo.IN, DataTypeManager.DefaultDataTypes.BIG_INTEGER); //$NON-NLS-1$ rsParameterBigInteger.setNullType(NullType.Nullable); rsParameterBigInteger.setDefaultValue(new String("13")); //$NON-NLS-1$ ProcedureParameter rsParameterBoolean = createParameter("inBoolean", ParameterInfo.IN, DataTypeManager.DefaultDataTypes.BOOLEAN); //$NON-NLS-1$ rsParameterBoolean.setNullType(NullType.Nullable); rsParameterBoolean.setDefaultValue(new String("True")); //$NON-NLS-1$ ProcedureParameter rsParameterByte = createParameter("inByte", ParameterInfo.IN, DataTypeManager.DefaultDataTypes.BYTE); //$NON-NLS-1$ rsParameterByte.setNullType(NullType.Nullable); rsParameterByte.setDefaultValue(new String("1")); //$NON-NLS-1$ ProcedureParameter rsParameterChar = createParameter("inChar", ParameterInfo.IN, DataTypeManager.DefaultDataTypes.CHAR); //$NON-NLS-1$ rsParameterChar.setNullType(NullType.Nullable); rsParameterChar.setDefaultValue(new String("q")); //$NON-NLS-1$ ProcedureParameter rsParameterDate = createParameter("inDate", ParameterInfo.IN, DataTypeManager.DefaultDataTypes.DATE); //$NON-NLS-1$ rsParameterDate.setNullType(NullType.Nullable); rsParameterDate.setDefaultValue(new String("2003-03-20")); //$NON-NLS-1$ ProcedureParameter rsParameterDouble = createParameter("inDouble", ParameterInfo.IN, DataTypeManager.DefaultDataTypes.DOUBLE); //$NON-NLS-1$ rsParameterDouble.setNullType(NullType.Nullable); rsParameterDouble.setDefaultValue(new String("13.0")); //$NON-NLS-1$ ProcedureParameter rsParameterFloat = createParameter("inFloat", ParameterInfo.IN, DataTypeManager.DefaultDataTypes.FLOAT); //$NON-NLS-1$ rsParameterFloat.setNullType(NullType.Nullable); rsParameterFloat.setDefaultValue(new String("13")); //$NON-NLS-1$
ColumnSet<Procedure> rs = createResultSet("sp1.vsprs1", new String[] { "StringKey" }, new String[] { DataTypeManager.DefaultDataTypes.STRING }); //$NON-NLS-1$ //$NON-NLS-2$ ProcedureParameter param = createParameter("param1", ParameterInfo.IN, DataTypeManager.DefaultDataTypes.STRING); //$NON-NLS-1$ param.setNullType(NullType.Nullable); QueryNode sp1qn = new QueryNode("/*+ cache */ CREATE VIRTUAL PROCEDURE BEGIN SELECT x as StringKey from matsrc where x = param1; END"); //$NON-NLS-1$ //$NON-NLS-2$ Procedure vsp5 = createVirtualProcedure("sp1", sp, Arrays.asList(param), sp1qn); //$NON-NLS-1$
vsp9p1.setNullType(NullType.No_Nulls); ProcedureParameter vsp9p2 = createParameter("p1", ParameterInfo.IN, DataTypeManager.DefaultDataTypes.INTEGER); //$NON-NLS-1$ ProcedureParameter vsp9p3 = createParameter("p2", ParameterInfo.OUT, DataTypeManager.DefaultDataTypes.INTEGER); //$NON-NLS-1$