private void validateGroupNodeItem(GroupObjectNode node) { Set<String> catalog = New.hashSet(); Set<String> schema = New.hashSet(); for (ObjectNode objectNode : node.getItems()) { catalog.add(objectNode.getCatalog()); schema.add(objectNode.getSchema()); } if (catalog.size() > 1) { throw new IllegalStateException("Inconsistent object node catalog " + catalog); } if (schema.size() > 1) { throw new IllegalStateException("Inconsistent object node schema " + schema); } node.setCatalog(catalog.iterator().next()); node.setSchema(schema.iterator().next()); }
private void createTableIfNotExits() { String tableName = tableNode.getQualifiedObjectName(); String catalog = tableNode.getCatalog(); String schema = tableNode.getSchema(); Connection conn = null; Statement stmt = null; ResultSet rs = null; try { conn = dataSource.getConnection(); DatabaseMetaData meta = conn.getMetaData(); rs = meta.getTables(catalog, schema, tableName, null); if (!rs.next()) { stmt = conn.createStatement(); stmt.execute(buildCreateQuery()); } } catch (SQLException e) { throw DbException.convert(e); } finally { JdbcUtils.closeSilently(rs); JdbcUtils.closeSilently(stmt); JdbcUtils.closeSilently(conn); } }
public void cloneMetadataNode(ObjectNode node) { if (StringUtils.isNullOrEmpty(node.getShardName())) { throw new IllegalArgumentException(); } this.metadataNode = new ObjectNode(node.getShardName(), node.getCatalog(), node.getSchema(), this.getName(), node.getSuffix()); }
public void cloneObjectNodes(ObjectNode... objectNode) { this.objectNodes = new ObjectNode[objectNode.length]; for (int i = 0; i < objectNode.length; i++) { ObjectNode item = objectNode[i]; if (StringUtils.isNullOrEmpty(item.getShardName())) { throw new IllegalArgumentException("The shardName attribute of ObjectNode is required."); } this.objectNodes[i] = new ObjectNode(item.getShardName(), item.getCatalog(), item.getSchema(), this.getName(), item.getSuffix()); } }
@Override protected void doPrepare() { String indexName = prepared.getIndexName(); String tableName = prepared.getTableName(); TableMate table = getTableMate(tableName); RoutingResult rr = routingHandler.doRoute(table); ObjectNode[] selectNodes = rr.getSelectNodes(); workers = New.arrayList(selectNodes.length); for (ObjectNode tableNode : selectNodes) { ObjectNode indexNode = new ObjectNode(tableNode.getShardName(), tableNode.getCatalog(), tableNode.getSchema(), indexName, tableNode.getSuffix()); UpdateWorker worker = queryHandlerFactory.createUpdateWorker(prepared, indexNode, tableNode); workers.add(worker); } }
@Override protected void doPrepare() { String tableName = prepared.getTableName(); String indexName = prepared.getIndexName(); TableMate table = getTableMate(tableName); IndexColumn.mapColumns(prepared.getIndexColumns(), table); RoutingResult rr = routingHandler.doRoute(table); ObjectNode[] selectNodes = rr.getSelectNodes(); workers = New.arrayList(selectNodes.length); for (ObjectNode tableNode : selectNodes) { ObjectNode indexNode = new ObjectNode(tableNode.getShardName(), tableNode.getCatalog(), tableNode.getSchema(), indexName, tableNode.getSuffix()); UpdateWorker worker = queryHandlerFactory.createUpdateWorker(prepared, indexNode, tableNode); workers.add(worker); } }
String shardName = matadataNode.getShardName(); String tableName = matadataNode.getQualifiedObjectName(); String catalog = matadataNode.getCatalog(); String schema = matadataNode.getSchema(); try {