/** * Get the schema/table override * * @param key * @return */ @Nullable public SchemaAndTable getOverride(SchemaAndTable key) { if (!schemaTables.isEmpty() && key.getSchema() != null) { if (schemaTables.containsKey(key)) { return schemaTables.get(key); } } String schema = key.getSchema(), table = key.getTable(); boolean changed = false; if (schemas.containsKey(key.getSchema())) { schema = schemas.get(key.getSchema()); changed = true; } if (tables.containsKey(key.getTable())) { table = tables.get(key.getTable()); changed = true; } return changed ? new SchemaAndTable(schema, table) : key; }
/** * Use getOverride instead * * @param schema * @param table * @return */ @Deprecated public String getTable(String schema, String table) { return getOverride(new SchemaAndTable(schema, table)).getTable(); }
public RelationalPathBase(Class<? extends T> type, PathMetadata<?> metadata, String schema, String table) { super(type, metadata); this.schema = schema; this.table = table; this.schemaAndTable = new SchemaAndTable(schema, table); }
boolean precededByDot; if (dmlWithSchema && templates.isPrintSchema()) { appendSchemaName(schemaAndTable.getSchema()); append("."); precededByDot = true; precededByDot = false; appendTableName(schemaAndTable.getTable(), precededByDot); return null; } else if (entity.equals(path.getMetadata().getParent()) && skipParent) {
/** * Register a schema specific table override * * @param schema * @param oldTable * @param newTable * @return */ public String registerTableOverride(String schema, String oldTable, String newTable) { SchemaAndTable st = registerTableOverride(schema, oldTable, schema, newTable); return st != null ? st.getTable() : null; }
/** * Register a schema specific table override * * @param schema * @param oldTable * @param newSchema * @param newTable * @return */ public SchemaAndTable registerTableOverride(String schema, String oldTable, String newSchema, String newTable) { return registerTableOverride(new SchemaAndTable(schema, oldTable), new SchemaAndTable(newSchema, newTable)); }
protected void handleJoinTarget(JoinExpression je) { // type specifier if (je.getTarget() instanceof RelationalPath && templates.isSupportsAlias()) { final RelationalPath<?> pe = (RelationalPath<?>) je.getTarget(); if (pe.getMetadata().getParent() == null) { SchemaAndTable schemaAndTable = getSchemaAndTable(pe); boolean precededByDot; if (templates.isPrintSchema()) { appendSchemaName(schemaAndTable.getSchema()); append("."); precededByDot = true; } else { precededByDot = false; } appendTableName(schemaAndTable.getTable(), precededByDot); append(templates.getTableAlias()); } } inJoin = true; handle(je.getTarget()); inJoin = false; }
/** * Get the column override * * @param key * @param column * @return */ public String getColumnOverride(SchemaAndTable key, String column) { Map<String, String> columnOverrides; String newColumn = null; columnOverrides = schemaTableColumns.get(key); if (columnOverrides != null && (newColumn = columnOverrides.get(column)) != null) { return newColumn; } columnOverrides = tableColumns.get(key.getTable()); if (columnOverrides != null && (newColumn = columnOverrides.get(column)) != null) { return newColumn; } return column; }
/** * Register a column override * * @param schema * @param table * @param oldColumn * @param newColumn * @return */ public String registerColumnOverride(String schema, String table, String oldColumn, String newColumn) { SchemaAndTable key = new SchemaAndTable(schema, table); Map<String, String> columnOverrides = schemaTableColumns.get(key); if (columnOverrides == null) { columnOverrides = new HashMap<String, String>(); schemaTableColumns.put(key, columnOverrides); } return columnOverrides.put(oldColumn, newColumn); }
@Override public SchemaAndTable getSchemaAndTable() { return new SchemaAndTable(getSchemaName(), tableName); }
public TeradataSpatialTemplates(char escape, boolean quote) { super(escape, quote); addCustomType(GeometryWktClobType.DEFAULT); addCustomType(StringAsObjectType.DEFAULT); addTableOverride(new SchemaAndTable("public", "geometry_columns"), new SchemaAndTable("sysspatial", "geometry_columns")); addTableOverride(new SchemaAndTable("public", "spatial_ref_sys"), new SchemaAndTable("sysspatial", "spatial_ref_sys")); add(SpatialTemplatesSupport.getSpatialOps(false)); add(SpatialOps.DISTANCE_SPHERE, "{0}.ST_SPHERICALDISTANCE({1})"); add(SpatialOps.DISTANCE_SPHEROID, "{0}.ST_SPHEROIDALDISTANCE({1})"); }