private void setFunctionMethodTypes(FunctionMethod function) { FunctionParameter outputParameter = function.getOutputParameter(); if (outputParameter != null) { setDataType(outputParameter.getRuntimeType(), outputParameter, dataTypes, outputParameter.getNullType() == NullType.Nullable); } for (FunctionParameter param : function.getInputParameters()) { setDataType(param.getRuntimeType(), param, dataTypes, param.getNullType() == NullType.Nullable); } }
/** * Add a procedure parameter. * @param name * @param type should be one of {@link TypeFacility.RUNTIME_NAMES} * @param parameterType should be one of {@link ProcedureParameter.Type} * @param procedure * @return * @throws MetadataException */ public ProcedureParameter addProcedureParameter(String name, String type, ProcedureParameter.Type parameterType, Procedure procedure) { ProcedureParameter param = new ProcedureParameter(); if (renameAllDuplicates) { name = checkForDuplicate(name, (s)->procedure.getParameterByName(s) != null, "Parameter"); //$NON-NLS-1$ } param.setName(name); setUUID(param); param.setType(parameterType); param.setProcedure(procedure); setDataType(type, param, this.dataTypes, false); if (parameterType == Type.ReturnValue) { procedure.getParameters().add(0, param); for (int i = 0; i < procedure.getParameters().size(); i++) { procedure.getParameters().get(i).setPosition(i+1); //1 based indexing } } else { procedure.getParameters().add(param); param.setPosition(procedure.getParameters().size()); //1 based indexing } return param; }
column.setParent(table); setDataType(type, column, this.dataTypes, false); setUUID(column); return column;
} else if (!column.getRuntimeType().equals(dataType)) { //$NON-NLS-1$ MetadataFactory.setDataType(TypeFacility.RUNTIME_NAMES.OBJECT, column, metadataFactory.getDataTypes(), false); column.setNativeType(null); MetadataFactory.setDataType(TypeFacility.RUNTIME_NAMES.STRING, column, metadataFactory.getDataTypes(), false); } else { MetadataFactory.setDataType(TypeFacility.RUNTIME_NAMES.OBJECT, column, metadataFactory.getDataTypes(), false);
validateFunctionParameter(param); param.setPosition(i+1); MetadataFactory.setDataType(param.getRuntimeType(), param, runtimeTypeMap, true); param.getUUID(); MetadataFactory.setDataType(method.getOutputParameter().getRuntimeType(), method.getOutputParameter(), runtimeTypeMap, true); } catch(FunctionMetadataException e) { updateReport(report, method, e.getMessage());
validateFunctionParameter(param); param.setPosition(i+1); MetadataFactory.setDataType(param.getRuntimeType(), param, runtimeTypeMap, true); param.getUUID(); MetadataFactory.setDataType(method.getOutputParameter().getRuntimeType(), method.getOutputParameter(), runtimeTypeMap, true); } catch(FunctionMetadataException e) { updateReport(report, method, e.getMessage());
validateFunctionParameter(param); param.setPosition(i+1); MetadataFactory.setDataType(param.getRuntimeType(), param, runtimeTypeMap, true); param.getUUID(); MetadataFactory.setDataType(method.getOutputParameter().getRuntimeType(), method.getOutputParameter(), runtimeTypeMap, true); } catch(FunctionMetadataException e) { updateReport(report, method, e.getMessage());
public void alterBaseColumn(String objectName, Database.ResourceType type, String childName, ParsedDataType datatype, boolean autoIncrement, boolean notNull) { MetadataFactory factory = DatabaseStore.createMF(this); BaseColumn column = null; if (type == Database.ResourceType.TABLE){ Table table = (Table)getSchemaRecord(objectName, type); assertGrant(Grant.Permission.Privilege.ALTER, Database.ResourceType.TABLE, table); column = table.getColumnByName(childName); if (column == null){ throw new ParseException(QueryPlugin.Util.getString("SQLParser.no_table_column_found", childName, table.getName())); //$NON-NLS-1$ } } else { Procedure proc = (Procedure)getSchemaRecord(objectName, type); assertGrant(Grant.Permission.Privilege.ALTER, Database.ResourceType.PROCEDURE, proc); column = proc.getParameterByName(childName); if (column == null){ throw new ParseException(QueryPlugin.Util.getString("SQLParser.no_proc_column_found", childName, proc.getName())); //$NON-NLS-1$ } } MetadataFactory.setDataType(datatype.getType(), column, factory.getDataTypes(), notNull); SQLParserUtil.setTypeInfo(datatype, column); if (notNull) { column.setNullType(Column.NullType.No_Nulls); } if (type == Database.ResourceType.TABLE){ //must be called after setDataType as that will pull the defaults ((Column)column).setAutoIncremented(autoIncrement); } }
public void alterBaseColumn(String objectName, Database.ResourceType type, String childName, ParsedDataType datatype, boolean autoIncrement, boolean notNull) { MetadataFactory factory = DatabaseStore.createMF(this); BaseColumn column = null; if (type == Database.ResourceType.TABLE){ Table table = (Table)getSchemaRecord(objectName, type); assertGrant(Grant.Permission.Privilege.ALTER, Database.ResourceType.TABLE, table); column = table.getColumnByName(childName); if (column == null){ throw new ParseException(QueryPlugin.Util.getString("SQLParser.no_table_column_found", childName, table.getName())); //$NON-NLS-1$ } } else { Procedure proc = (Procedure)getSchemaRecord(objectName, type); assertGrant(Grant.Permission.Privilege.ALTER, Database.ResourceType.PROCEDURE, proc); column = proc.getParameterByName(childName); if (column == null){ throw new ParseException(QueryPlugin.Util.getString("SQLParser.no_proc_column_found", childName, proc.getName())); //$NON-NLS-1$ } } MetadataFactory.setDataType(datatype.getType(), column, factory.getDataTypes(), notNull); SQLParserUtil.setTypeInfo(datatype, column); if (notNull) { column.setNullType(Column.NullType.No_Nulls); } if (type == Database.ResourceType.TABLE){ //must be called after setDataType as that will pull the defaults ((Column)column).setAutoIncremented(autoIncrement); } }
if (Boolean.valueOf(c.getProperty(UNTYPED, false)) && symbols.size() > i) { Expression projected = symbols.get(i); MetadataFactory.setDataType(DataTypeManager.getDataTypeName(projected.getType()), c, mf.getDataTypes(), false); copyExpressionMetadata(projected, metadata, c);
if (Boolean.valueOf(c.getProperty(UNTYPED, false)) && symbols.size() > i) { Expression projected = symbols.get(i); MetadataFactory.setDataType(DataTypeManager.getDataTypeName(projected.getType()), c, mf.getDataTypes(), false); copyExpressionMetadata(projected, metadata, c);
factory.setDataType(datatype.type, column, factory.getDataTypes(), notNull); setTypeInfo(datatype, column); if (notNull) {