/** * Deep copy. * * @param tableDesc * @return deep copy of the columns of a table */ public static List<ColumnDesc> getParamDescList(TableDesc tableDesc) { List<ColumnDesc> list = new ArrayList<>(); list.addAll(tableDesc.getColumnDescs()); return list; }
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(); }
/** * Creates Lists of Columns with a common Table name, then adds the Lists to the Tables. * * @param tableDescs List of Tables. * @param columnDescs List of Columns. */ private void addColumnsToTables(List<TableDesc> tableDescs, List<ColumnDesc> columnDescs) { for (ColumnDesc col : columnDescs) { for (TableDesc tableDesc : tableDescs) { if (col.getTableName().equals(tableDesc.getTableName())) { tableDesc.getColumnDescs().add(col); break; } } } }
private TableDesc createTableDesc(TableDesc orig) { if (columnNames.size() == 0) { throw new IllegalArgumentException("No data columns."); } TableDesc tableDesc = new TableDesc(orig.getSchemaName(), orig.getTableName()); ColumnDesc colDesc = null; for (String col : columnNames) { colDesc = orig.getColumn(col); if (colDesc == null) { throw new IllegalArgumentException("Unrecognized column name: " + col); } tableDesc.getColumnDescs().add(colDesc); } return tableDesc; }
/** * Remove redundant metadata like TAP-1.0 xtypes for primitive columns. * * @param td */ protected void sanitizeTable(TableDesc td) { for (ColumnDesc cd : td.getColumnDescs()) { String xtype = cd.getDatatype().xtype; if (TapConstants.TAP10_TIMESTAMP.equals(xtype)) cd.getDatatype().xtype = "timestamp"; // DALI-1.1 if (oldXtypes.contains(xtype)) cd.getDatatype().xtype = null; } } // TAP-1.0 xtypes that can just be dropped from ColumnDesc
/** * 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; }
private TableDesc getInputTable(String schemaName, String tableName) { TableDesc input = (TableDesc) syncInput.getContent(INPUT_TAG); if (input == null) { throw new IllegalArgumentException("no input: expected a document describing the table to create"); } input.setSchemaName(schemaName); input.setTableName(tableName); int c = 0; for (ColumnDesc cd : input.getColumnDescs()) { cd.setTableName(tableName); cd.column_index = c++; } return input; } }
/** * 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; }
ColumnDesc columnDesc = TapSchemaUtil.convert(tableName, f); log.debug("column: " + f + " -> " + columnDesc); ret.getColumnDescs().add(columnDesc); } catch (ADQLIdentifierException ex) { throw new IllegalArgumentException("invalid ADQL identifier (column name): " + f.getName(), ex);
if (tableDesc.getColumnDescs() == null || tableDesc.getColumnDescs().isEmpty()) continue; for (ColumnDesc columnDesc : tableDesc.getColumnDescs()) ColumnDesc newColumnDesc = new ColumnDesc(columnDesc.getTableName(), columnDesc.getColumnName(), columnDesc.getDatatype()); newTableDesc.getColumnDescs().add(newColumnDesc); if (tapSchemaParameters == null) tapSchemaParameters = new HashMap<TableDesc, String[]>();
for (ColumnDesc cd : table.getColumnDescs()) { TapSchemaUtil.checkValidIdentifier(cd.getColumnName());
for (ColumnDesc cd : cur.getColumnDescs()) { log.debug("update: cur = " + cd.getColumnName()); curCols.add(cd.getColumnName()); for (ColumnDesc cd : td.getColumnDescs()) { log.debug("update: td = " + cd.getColumnName()); tdCols.add(cd.getColumnName()); for (ColumnDesc cd : cur.getColumnDescs()) { ColumnDesc ncd = td.getColumn(cd.getColumnName()); if (!cd.getDatatype().equals(ncd.getDatatype())) { for (ColumnDesc cd : td.getColumnDescs()) { log.debug("put: " + cd.getColumnName()); pcs.setColumn(cd);
ret.getColumnDescs().addAll(columnDescs);
/** * @param td * @return */ private Element toXmlElement(TableDesc td, Namespace ns) { Element eleTable = new Element("table", ns); eleTable.setAttribute("type", "output"); Element ele; addChild(eleTable, "name", td.getTableName()); addChild(eleTable, "description", td.description); if (td.getColumnDescs() != null) for (ColumnDesc cd : td.getColumnDescs()) { Element e = toXmlElement(cd); if (e != null) eleTable.addContent(e); } if (td.getKeyDescs() != null) for (KeyDesc kd : td.getKeyDescs()) { Element e = toXmlElement(kd); if (e != null) eleTable.addContent(e); } return eleTable; }
ColumnDesc cd = new ColumnDesc(tn, cn, tt); cd.description = ce.getChildTextTrim("description"); td.getColumnDescs().add(cd);