public ColumnDesc getColumn(String name) { for (ColumnDesc cd : columnDescs) { if (cd.getColumnName().equalsIgnoreCase(name)) return cd; } return null; }
/** * find ColumnDesc for given TableDesc and columnName. * * @param td * @param columnName * @return */ private static ColumnDesc findColumnDesc(TableDesc tableDesc, String columnName) { String scol = stripQuotes(columnName); List<ColumnDesc> cdList = tableDesc.getColumnDescs(); for (ColumnDesc cd : cdList) { log.debug("findColumnDesc: " + cd.getColumnName() + " vs " + columnName + " " + scol); if (cd.getColumnName().equalsIgnoreCase(columnName) || cd.getColumnName().equalsIgnoreCase(scol)) { return cd; } // support unquoted usage when tap_schema says it is quoted? String tsCol = stripQuotes(cd.getColumnName()); if (tsCol.equalsIgnoreCase(columnName)) { return cd; } } return null; }
private String generateInsertSQL(TableDesc td) { StringBuilder sb = new StringBuilder("insert into "); sb.append(td.getTableName()); sb.append(" ("); for (ColumnDesc cd : td.getColumnDescs()) { sb.append(cd.getColumnName()); sb.append(", "); } sb.setLength(sb.length() - 2); sb.append(") values ("); for (ColumnDesc cd : td.getColumnDescs()) { sb.append("?, "); } sb.setLength(sb.length() - 2); sb.append(")"); return sb.toString(); }
private String generateCreate(TableDesc td) { StringBuilder sb = new StringBuilder(); sb.append("CREATE TABLE "); sb.append(td.getTableName()).append( "("); for (int i = 0; i < td.getColumnDescs().size(); i++) { ColumnDesc columnDesc = td.getColumnDescs().get(i); sb.append(columnDesc.getColumnName()); sb.append(" "); sb.append(ddType.getDataType(columnDesc)); sb.append(" null "); if (i + 1 < td.getColumnDescs().size()) sb.append(", "); } sb.append(")"); return sb.toString(); }
private String generateCreateIndex(ColumnDesc cd, boolean unique) { StringBuilder sb = new StringBuilder(); sb.append("CREATE"); if (unique) { sb.append(" UNIQUE"); } sb.append(" INDEX "); String indexName = "i_" + cd.getTableName().replace(".", "_") + "_" + cd.getColumnName(); sb.append(indexName); sb.append(" ON ").append(cd.getTableName()); String using = ddType.getIndexUsingQualifier(cd, unique); if (using != null) { sb.append(" USING ").append(using); } sb.append(" ("); sb.append(cd.getColumnName()); String iop = ddType.getIndexColumnOperator(cd); if (iop != null) { sb.append(" ").append(iop); } sb.append(")"); return sb.toString(); } }
/** * Return a list of SelectItem for a Table in a TAP schema. * * @param tapSchema * @param table * @return */ public static List<SelectItem> getSelectItemList(TapSchema tapSchema, Table table) { List<SelectItem> seiList = new ArrayList<SelectItem>(); TableDesc td = findTableDesc(tapSchema, table); for (ColumnDesc cd : td.getColumnDescs()) { SelectItem sei = TapSchemaUtil.newSelectExpressionItem(table, cd.getColumnName()); seiList.add(sei); } return seiList; }
/** * A normal column with an alternate name (alias). * All metadata is copied from the specified column descriptor. * * @param name * @param column */ public TapSelectItem(String name, ColumnDesc column) { this(name, column.getDatatype()); this.columnName = column.getColumnName(); this.tableName = column.getTableName(); this.description = column.description; this.id = column.id; this.indexed = column.indexed; this.principal = column.principal; this.std = column.std; this.ucd = column.ucd; this.unit = column.unit; this.utype = column.utype; }
TapSchemaUtil.checkValidIdentifier(cd.getColumnName()); } catch (ADQLIdentifierException ex) { throw new IllegalArgumentException("invalid column name: " + cd.getColumnName(), ex); throw ex; throw new RuntimeException("failed to create index on " + cd.getTableName() + "(" + cd.getColumnName() + ")", ex); } finally { if (tm.isOpen()) {
safeSetInteger(sb, ps, col++, column.column_index); safeSetString(sb, ps, col++, column.getTableName()); safeSetString(sb, ps, col++, column.getColumnName()); log.debug("values: " + sb.toString());
log.debug("update: cur = " + cd.getColumnName()); curCols.add(cd.getColumnName()); log.debug("update: td = " + cd.getColumnName()); tdCols.add(cd.getColumnName()); ColumnDesc ncd = td.getColumn(cd.getColumnName()); if (!cd.getDatatype().equals(ncd.getDatatype())) { throw new UnsupportedOperationException("cannot change column type: " + cd.getColumnName() + " " + cd.getDatatype() + " -> " + ncd.getDatatype()); log.debug("put: " + cd.getColumnName()); pcs.setColumn(cd); jdbc.update(pcs);
if (columnDesc.getColumnName() == null || columnDesc.getColumnName().isEmpty()) continue; sb.append(columnDesc.getColumnName()); String fqn = sb.toString(); tableDesc.getTableName()); ColumnDesc newColumnDesc = new ColumnDesc(columnDesc.getTableName(), columnDesc.getColumnName(), columnDesc.getDatatype()); newTableDesc.getColumnDescs().add(newColumnDesc); if (tapSchemaParameters == null)
TapSchemaUtil.checkValidIdentifier(cd.getColumnName());
/** * Create a VOTableField from a ColumnDesc. * * @param column * @return The associated VOTableField */ public static VOTableField convert(ColumnDesc column) { VOTableField vtf = new VOTableField( column.getColumnName(), column.getDatatype().getDatatype(), column.getDatatype().arraysize); vtf.xtype = column.getDatatype().xtype; return vtf; }
addChild(eleColumn, "name", cd.getColumnName()); addChild(eleColumn, "description", cd.description); addChild(eleColumn, "unit", cd.unit);