@Override public String toString() { return "ObjectNode [shardName=" + shardName + ", objectName=" + getCompositeObjectName() + "]"; }
protected String buildSelectQuery() { StringBuilder sql = new StringBuilder(); sql.append("SELECT ").append(valueColumnName).append(" FROM ").append(tableNode.getCompositeObjectName()) .append(" WHERE ").append(nameColumnName).append(" = ?"); return sql.toString(); }
protected String buildUpdateQuery() { StringBuilder sql = new StringBuilder(); sql.append("UPDATE ").append(tableNode.getCompositeObjectName()).append(" SET ").append(valueColumnName) .append(" = ?").append(" WHERE ").append(valueColumnName).append(" = ? and ").append(nameColumnName) .append(" = ?"); return sql.toString(); }
protected String buildInsertQuery() { StringBuilder sql = new StringBuilder(); sql.append("INSERT INTO ").append(tableNode.getCompositeObjectName()).append(" (").append(nameColumnName) .append(", ").append(valueColumnName).append(") ").append("VALUES (?, ?)"); return sql.toString(); }
protected String buildCreateQuery() { StringBuilder sql = new StringBuilder(); sql.append("CREATE TABLE ").append(tableNode.getCompositeObjectName()).append(" ( ").append(nameColumnName) .append(" ").append(DataType.getDataType(Value.STRING).name).append('(').append(nameColumnLength) .append(") NOT NULL, ").append(valueColumnName).append(" ") .append(DataType.getDataType(Value.LONG).name).append(", PRIMARY KEY ( ").append(nameColumnName) .append(" ))"); return sql.toString(); }
@Override public SQLTranslated translate(TruncateTable truncateTable, ObjectNode node) { String forTable = node.getCompositeObjectName(); StringBuilder sql = new StringBuilder(); sql.append("TRUNCATE TABLE "); sql.append(identifier(forTable)); return SQLTranslated.build().sql(sql.toString()); }
/** * @see http://dev.mysql.com/doc/refman/5.7/en/drop-table.html */ @Override public SQLTranslated translate(DropTable prepared, ObjectNode node) { String forTable = node.getCompositeObjectName(); StringBuilder sql = new StringBuilder(); sql.append("DROP TABLE"); if (prepared.isIfExists()) { sql.append(" IF EXISTS"); } sql.append(" ").append(identifier(forTable)); if (prepared.getDropAction() == AlterTableAddConstraint.CASCADE) { sql.append(" CASCADE"); } return SQLTranslated.build().sql(sql.toString()); }
/** * @see http://dev.mysql.com/doc/refman/5.7/en/drop-index.html */ @Override public SQLTranslated translate(DropIndex prepared, ObjectNode indexNode, ObjectNode tableNode) { String forIndex = indexNode.getCompositeObjectName(); String forTable = tableNode.getCompositeObjectName(); StatementBuilder sql = new StatementBuilder(); sql.append("DROP INDEX "); sql.append(identifier(forIndex)); sql.append(" ON ").append(identifier(forTable)); return SQLTranslated.build().sql(sql.toString()); } /**
buff.append(identifier(tableNode.getCompositeObjectName())); if (filter.getTableAlias() != null) { buff.append(' ').append(Parser.quoteIdentifier(filter.getTableAlias()));
String forTable = node.getCompositeObjectName(); int type = prepared.getType(); switch (type) {
public void loadMataData(Session session) { ObjectNode node = tableRule.getMetadataNode(); String tableName = node.getCompositeObjectName(); String shardName = node.getShardName(); try { trace.debug("Try to load {0} metadata from table {1}.{2}", getName(), shardName, tableName); readMataData(session, node); trace.debug("Load the {0} metadata success.", getName()); initException = null; } catch (DbException e) { if(e.getErrorCode() == ErrorCode.COLUMN_NOT_FOUND_1) { throw e; } trace.debug("Fail to load {0} metadata from table {1}.{2}. error: {3}", getName(), shardName, tableName, e.getCause().getMessage()); initException = e; Column[] cols = {}; setColumns(cols); } if (isInited()) { setRuleColumns(); } }
ArrayList<Value> params = New.arrayList(); StatementBuilder sql = new StatementBuilder(256); String forTable = node.getCompositeObjectName(); Column[] columns = insert.getColumns(); sql.append("INSERT INTO ");
String forTable = node.getCompositeObjectName(); switch (prepared.getType()) { case CommandInterface.ALTER_TABLE_ADD_CONSTRAINT_PRIMARY_KEY: { String forRefTable = refNode.getCompositeObjectName(); StatementBuilder buff = new StatementBuilder("ALTER TABLE "); buff.append(identifier(forTable)).append(" ADD CONSTRAINT ");
/** * @see http://dev.mysql.com/doc/refman/5.7/en/replace.html */ @Override public SQLTranslated translate(Replace replace, ObjectNode node, Row ... rows) { ArrayList<Value> params = New.arrayList(); String forTable = node.getCompositeObjectName(); Column[] columns = replace.getColumns(); StatementBuilder sql = new StatementBuilder("REPLACE INTO "); sql.append(identifier(forTable)).append('('); for (Column c : columns) { sql.appendExceptFirst(", "); sql.append(c.getSQL()); } sql.append(')'); sql.append(") VALUES "); appendValues(params, sql, columns, rows); return SQLTranslated.build().sql(sql.toString()).sqlParams(params); }
@Override public SQLTranslated translate(Update prepared, ObjectNode node, Row row) { ArrayList<Value> params = New.arrayList(); String forTable = node.getCompositeObjectName(); List<Column> columns = prepared.getColumns(); Expression condition = prepared.getCondition();
String forIndex = indexNode.getCompositeObjectName(); String forTable = tableNode.getCompositeObjectName(); StatementBuilder sql = new StatementBuilder(); sql.append("CREATE ");
private StatementBuilder uniqueConstraint(AlterTableAddConstraint prepared, ObjectNode node, String keyType) { StatementBuilder buff = new StatementBuilder("ALTER TABLE "); buff.append(identifier(node.getCompositeObjectName())).append(" ADD CONSTRAINT "); String constraintName = prepared.getConstraintName(); // MySQL constraintName is optional if (!StringUtils.isNullOrEmpty(constraintName)) { buff.append(constraintName); } buff.append(' ').append(keyType); if (prepared.isPrimaryKeyHash()) { buff.append(" USING ").append("HASH"); } buff.append('('); for (IndexColumn c : prepared.getIndexColumns()) { buff.appendExceptFirst(", "); buff.append(identifier(c.column.getName())); } buff.append(')'); return buff; }
/** * @see http://dev.mysql.com/doc/refman/5.7/en/delete.html */ @Override public SQLTranslated translate(Delete prepared, ObjectNode node) { ArrayList<Value> params = New.arrayList(); String forTable = node.getCompositeObjectName(); Expression condition = prepared.getCondition(); Expression limitExpr = prepared.getLimitExpr(); StatementBuilder sql = new StatementBuilder(); sql.append("DELETE FROM "); sql.append(identifier(forTable)); if (condition != null) { condition.getPreparedSQL(prepared.getSession(), params); sql.append(" WHERE ").append(StringUtils.unEnclose(condition.getSQL())); } if (limitExpr != null) { limitExpr.getPreparedSQL(prepared.getSession(), params); sql.append(" LIMIT ").append(StringUtils.unEnclose(limitExpr.getSQL())); } return SQLTranslated.build().sql(sql.toString()).sqlParams(params); }
@Override public SQLTranslated translate(Column[] searchColumns, TableFilter filter, ObjectNode node) { // can not use the field sqlStatement because the parameter // indexes may be incorrect: ? may be in fact ?2 for a subquery // but indexes may be set manually as well if (node instanceof GroupObjectNode) { return translate(searchColumns, filter, (GroupObjectNode) node); } List<Value> params = New.arrayList(10); StatementBuilder buff = new StatementBuilder("SELECT"); int visibleColumnCount = searchColumns.length; for (int i = 0; i < visibleColumnCount; i++) { buff.appendExceptFirst(","); buff.append(' '); buff.append(identifier(searchColumns[i].getName())); } buff.append(" FROM "); buff.append(identifier(node.getCompositeObjectName())); buff.append(" AS "); buff.append(filter.getTableAlias()); Expression condition = filter.getFilterCondition(); if (condition != null) { buff.append(" WHERE ").append(StringUtils.unEnclose(condition.getPreparedSQL(filter.getSession(), params))); } return SQLTranslated.build().sql(buff.toString()).sqlParams(params); }
buff.append("IF NOT EXISTS "); buff.append(identifier(node.getCompositeObjectName())); if (prepared.getComment() != null) { String refTableName = refNode.getCompositeObjectName(); IndexColumn[] cols = stmt.getIndexColumns(); IndexColumn[] refCols = stmt.getRefIndexColumns();