提交 069934b5 编写于 作者: T tuohai666

#1845, rename other MySQL packets

上级 68ffbc70
......@@ -46,9 +46,9 @@ import org.apache.shardingsphere.shardingproxy.runtime.schema.MasterSlaveSchema;
import org.apache.shardingsphere.shardingproxy.runtime.schema.ShardingSchema;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.DatabasePacket;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.query.ComQueryPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.ErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.OKPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.query.MySQLComPacketQuery;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLOKPacket;
import java.sql.SQLException;
import java.util.ArrayList;
......@@ -129,7 +129,7 @@ public final class NettyDatabaseCommunicationEngine implements DatabaseCommunica
logicSchema.getMetaData(), databaseType, GLOBAL_REGISTRY.getShardingProperties().<Boolean>getValue(ShardingPropertiesConstant.SQL_SHOW));
SQLRouteResult routeResult = routingEngine.route(sql);
if (routeResult.getRouteUnits().isEmpty()) {
return new CommandResponsePackets(new OKPacket(1));
return new CommandResponsePackets(new MySQLOKPacket(1));
}
synchronizedFuture = new SynchronizedFuture(routeResult.getRouteUnits().size());
FutureRegistry.getInstance().put(connectionId, synchronizedFuture);
......@@ -164,7 +164,7 @@ public final class NettyDatabaseCommunicationEngine implements DatabaseCommunica
Channel channel = pool.acquire().get(GLOBAL_REGISTRY.getShardingProperties().<Long>getValue(ShardingPropertiesConstant.PROXY_BACKEND_CONNECTION_TIMEOUT_SECONDS), TimeUnit.SECONDS);
channelMap.get(dataSourceName).add(channel);
ChannelRegistry.getInstance().putConnectionId(channel.id().asShortText(), connectionId);
channel.writeAndFlush(new ComQueryPacket(sequenceId, sql));
channel.writeAndFlush(new MySQLComPacketQuery(sequenceId, sql));
}
private CommandResponsePackets merge(final SQLStatement sqlStatement, final List<CommandResponsePackets> packets, final List<QueryResult> queryResults) {
......@@ -173,7 +173,7 @@ public final class NettyDatabaseCommunicationEngine implements DatabaseCommunica
headPackets.getPackets().add(each.getHeadPacket());
}
for (DatabasePacket each : headPackets.getPackets()) {
if (each instanceof ErrPacket) {
if (each instanceof MySQLErrPacket) {
return new CommandResponsePackets(each);
}
}
......@@ -193,13 +193,13 @@ public final class NettyDatabaseCommunicationEngine implements DatabaseCommunica
int affectedRows = 0;
long lastInsertId = 0;
for (DatabasePacket each : firstPackets.getPackets()) {
if (each instanceof OKPacket) {
OKPacket okPacket = (OKPacket) each;
affectedRows += okPacket.getAffectedRows();
lastInsertId = okPacket.getLastInsertId();
if (each instanceof MySQLOKPacket) {
MySQLOKPacket mySQLOKPacket = (MySQLOKPacket) each;
affectedRows += mySQLOKPacket.getAffectedRows();
lastInsertId = mySQLOKPacket.getLastInsertId();
}
}
return new CommandResponsePackets(new OKPacket(1, affectedRows, lastInsertId));
return new CommandResponsePackets(new MySQLOKPacket(1, affectedRows, lastInsertId));
}
private CommandResponsePackets mergeDQLorDAL(final SQLStatement sqlStatement, final List<CommandResponsePackets> packets, final List<QueryResult> queryResults) {
......@@ -207,7 +207,7 @@ public final class NettyDatabaseCommunicationEngine implements DatabaseCommunica
mergedResult = MergeEngineFactory.newInstance(
GlobalRegistry.getInstance().getDatabaseType(), ((ShardingSchema) logicSchema).getShardingRule(), sqlStatement, logicSchema.getMetaData().getTable(), queryResults).merge();
} catch (final SQLException ex) {
return new CommandResponsePackets(new ErrPacket(1, ex.getErrorCode(), ex.getSQLState(), ex.getMessage()));
return new CommandResponsePackets(new MySQLErrPacket(1, ex.getErrorCode(), ex.getSQLState(), ex.getMessage()));
}
return packets.get(0);
}
......
......@@ -24,10 +24,10 @@ import org.apache.shardingsphere.core.merger.QueryResult;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.ColumnDefinition41Packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.FieldCountPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.TextResultSetRowPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.EofPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.MySQLColumnDefinition41Packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.MySQLFieldCountPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.MySQLTextResultSetRowPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLEofPacket;
import java.io.InputStream;
import java.util.Calendar;
......@@ -55,14 +55,14 @@ public final class MySQLQueryResult implements QueryResult {
private final Map<String, Integer> columnLabelAndIndexMap;
private final List<ColumnDefinition41Packet> columnDefinitions;
private final List<MySQLColumnDefinition41Packet> columnDefinitions;
private final BlockingQueue<MySQLPacket> resultSet;
@Getter
private int currentSequenceId;
private TextResultSetRowPacket currentRow;
private MySQLTextResultSetRowPacket currentRow;
@Getter
private boolean columnFinished;
......@@ -77,13 +77,13 @@ public final class MySQLQueryResult implements QueryResult {
}
public MySQLQueryResult(final MySQLPacketPayload payload) {
FieldCountPacket fieldCountPacket = new FieldCountPacket(payload);
commandResponsePackets = new CommandResponsePackets(fieldCountPacket);
columnCount = fieldCountPacket.getColumnCount();
columnIndexAndLabelMap = new HashMap<>(fieldCountPacket.getColumnCount(), 1);
columnLabelAndIndexMap = new HashMap<>(fieldCountPacket.getColumnCount(), 1);
columnDefinitions = Lists.newArrayListWithCapacity(fieldCountPacket.getColumnCount());
currentSequenceId = fieldCountPacket.getSequenceId();
MySQLFieldCountPacket mySQLFieldCountPacket = new MySQLFieldCountPacket(payload);
commandResponsePackets = new CommandResponsePackets(mySQLFieldCountPacket);
columnCount = mySQLFieldCountPacket.getColumnCount();
columnIndexAndLabelMap = new HashMap<>(mySQLFieldCountPacket.getColumnCount(), 1);
columnLabelAndIndexMap = new HashMap<>(mySQLFieldCountPacket.getColumnCount(), 1);
columnDefinitions = Lists.newArrayListWithCapacity(mySQLFieldCountPacket.getColumnCount());
currentSequenceId = mySQLFieldCountPacket.getSequenceId();
resultSet = new LinkedBlockingQueue<>();
}
......@@ -110,7 +110,7 @@ public final class MySQLQueryResult implements QueryResult {
*
* @param columnDefinition column definition
*/
public void addColumnDefinition(final ColumnDefinition41Packet columnDefinition) {
public void addColumnDefinition(final MySQLColumnDefinition41Packet columnDefinition) {
commandResponsePackets.getPackets().add(columnDefinition);
columnDefinitions.add(columnDefinition);
columnIndexAndLabelMap.put(columnDefinitions.indexOf(columnDefinition) + 1, columnDefinition.getName());
......@@ -123,26 +123,26 @@ public final class MySQLQueryResult implements QueryResult {
*
* @param textResultSetRow text result set row
*/
public void addTextResultSetRow(final TextResultSetRowPacket textResultSetRow) {
public void addTextResultSetRow(final MySQLTextResultSetRowPacket textResultSetRow) {
put(textResultSetRow);
}
/**
* Set column finished.
* @param eofPacket eof packet
* @param mySQLEofPacket eof packet
*/
public void setColumnFinished(final EofPacket eofPacket) {
commandResponsePackets.getPackets().add(eofPacket);
public void setColumnFinished(final MySQLEofPacket mySQLEofPacket) {
commandResponsePackets.getPackets().add(mySQLEofPacket);
currentSequenceId++;
columnFinished = true;
}
/**
* Set row finished.
* @param eofPacket eof packet
* @param mySQLEofPacket eof packet
*/
public void setRowFinished(final EofPacket eofPacket) {
put(eofPacket);
public void setRowFinished(final MySQLEofPacket mySQLEofPacket) {
put(mySQLEofPacket);
}
private void put(final MySQLPacket mysqlPacket) {
......@@ -157,7 +157,7 @@ public final class MySQLQueryResult implements QueryResult {
public boolean next() {
try {
MySQLPacket mysqlPacket = resultSet.take();
currentRow = (mysqlPacket instanceof TextResultSetRowPacket) ? (TextResultSetRowPacket) mysqlPacket : null;
currentRow = (mysqlPacket instanceof MySQLTextResultSetRowPacket) ? (MySQLTextResultSetRowPacket) mysqlPacket : null;
return null != currentRow;
} catch (final InterruptedException ex) {
log.error(ex.getMessage(), ex);
......
......@@ -31,13 +31,13 @@ import org.apache.shardingsphere.shardingproxy.runtime.GlobalRegistry;
import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLCapabilityFlag;
import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLServerInfo;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.ColumnDefinition41Packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.TextResultSetRowPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.EofPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.ErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.OKPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.HandshakePacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.HandshakeResponse41Packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.MySQLColumnDefinition41Packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.MySQLTextResultSetRowPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLEofPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLOKPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.MySQLHandshakePacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.MySQLHandshakeResponse41Packet;
import java.security.MessageDigest;
import java.util.HashMap;
......@@ -80,14 +80,14 @@ public final class MySQLResponseHandler extends ResponseHandler {
@Override
protected void auth(final ChannelHandlerContext context, final ByteBuf byteBuf) {
try (MySQLPacketPayload payload = new MySQLPacketPayload(byteBuf)) {
HandshakePacket handshakePacket = new HandshakePacket(payload);
MySQLHandshakePacket mySQLHandshakePacket = new MySQLHandshakePacket(payload);
byte[] authResponse = securePasswordAuthentication(
(null == dataSourceParameter.getPassword() ? "" : dataSourceParameter.getPassword()).getBytes(), handshakePacket.getAuthPluginData().getAuthPluginData());
HandshakeResponse41Packet handshakeResponse41Packet = new HandshakeResponse41Packet(
handshakePacket.getSequenceId() + 1, MySQLCapabilityFlag.calculateHandshakeCapabilityFlagsLower(), 16777215, MySQLServerInfo.CHARSET,
(null == dataSourceParameter.getPassword() ? "" : dataSourceParameter.getPassword()).getBytes(), mySQLHandshakePacket.getMySQLAuthPluginData().getAuthPluginData());
MySQLHandshakeResponse41Packet mySQLHandshakeResponse41Packet = new MySQLHandshakeResponse41Packet(
mySQLHandshakePacket.getSequenceId() + 1, MySQLCapabilityFlag.calculateHandshakeCapabilityFlagsLower(), 16777215, MySQLServerInfo.CHARSET,
dataSourceParameter.getUsername(), authResponse, dataSourceMetaData.getSchemaName());
ChannelRegistry.getInstance().putConnectionId(context.channel().id().asShortText(), handshakePacket.getConnectionId());
context.writeAndFlush(handshakeResponse41Packet);
ChannelRegistry.getInstance().putConnectionId(context.channel().id().asShortText(), mySQLHandshakePacket.getConnectionId());
context.writeAndFlush(mySQLHandshakeResponse41Packet);
}
}
......@@ -109,13 +109,13 @@ public final class MySQLResponseHandler extends ResponseHandler {
@Override
protected void executeCommand(final ChannelHandlerContext context, final ByteBuf byteBuf, final int header) {
switch (header) {
case EofPacket.HEADER:
case MySQLEofPacket.HEADER:
eofPacket(context, byteBuf);
break;
case OKPacket.HEADER:
case MySQLOKPacket.HEADER:
okPacket(context, byteBuf);
break;
case ErrPacket.HEADER:
case MySQLErrPacket.HEADER:
errPacket(context, byteBuf);
break;
default:
......@@ -128,7 +128,7 @@ public final class MySQLResponseHandler extends ResponseHandler {
try (MySQLPacketPayload payload = new MySQLPacketPayload(byteBuf)) {
MySQLQueryResult mysqlQueryResult = new MySQLQueryResult();
// TODO remove netty backend
// mysqlQueryResult.setGenericResponse(new OKPacket(payload));
// mysqlQueryResult.setGenericResponse(new MySQLOKPacket(payload));
resultMap.put(connectionId, mysqlQueryResult);
setResponse(context);
} finally {
......@@ -141,7 +141,7 @@ public final class MySQLResponseHandler extends ResponseHandler {
try (MySQLPacketPayload payload = new MySQLPacketPayload(byteBuf)) {
MySQLQueryResult mysqlQueryResult = new MySQLQueryResult();
// TODO remove netty backend
// mysqlQueryResult.setGenericResponse(new ErrPacket(payload));
// mysqlQueryResult.setGenericResponse(new MySQLErrPacket(payload));
resultMap.put(connectionId, mysqlQueryResult);
setResponse(context);
} finally {
......@@ -155,12 +155,12 @@ public final class MySQLResponseHandler extends ResponseHandler {
MySQLPacketPayload payload = new MySQLPacketPayload(byteBuf);
if (mysqlQueryResult.isColumnFinished()) {
// TODO remove netty backend
// mysqlQueryResult.setRowFinished(new EofPacket(payload));
// mysqlQueryResult.setRowFinished(new MySQLEofPacket(payload));
resultMap.remove(connectionId);
payload.close();
} else {
// TODO remove netty backend
// mysqlQueryResult.setColumnFinished(new EofPacket(payload));
// mysqlQueryResult.setColumnFinished(new MySQLEofPacket(payload));
setResponse(context);
}
}
......@@ -180,9 +180,9 @@ public final class MySQLResponseHandler extends ResponseHandler {
mysqlQueryResult = new MySQLQueryResult(payload);
resultMap.put(connectionId, mysqlQueryResult);
} else if (mysqlQueryResult.needColumnDefinition()) {
mysqlQueryResult.addColumnDefinition(new ColumnDefinition41Packet(payload));
mysqlQueryResult.addColumnDefinition(new MySQLColumnDefinition41Packet(payload));
} else {
mysqlQueryResult.addTextResultSetRow(new TextResultSetRowPacket(payload, mysqlQueryResult.getColumnCount()));
mysqlQueryResult.addTextResultSetRow(new MySQLTextResultSetRowPacket(payload, mysqlQueryResult.getColumnCount()));
}
}
}
......@@ -31,16 +31,16 @@ import org.apache.shardingsphere.shardingproxy.transport.common.packet.generic.D
import org.apache.shardingsphere.shardingproxy.transport.common.packet.generic.DatabaseSuccessPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLServerErrorCode;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacketFactory;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacketFactory;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.ColumnDefinition41Packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.FieldCountPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.QueryCommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.MySQLColumnDefinition41Packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.MySQLFieldCountPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.MySQLQueryCommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.query.QueryResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.EofPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.ErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.OKPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLEofPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLOKPacket;
import org.apache.shardingsphere.spi.root.RootInvokeHook;
import org.apache.shardingsphere.spi.root.SPIRootInvokeHook;
......@@ -72,58 +72,58 @@ public final class MySQLCommandExecutor implements Runnable {
try (MySQLPacketPayload payload = new MySQLPacketPayload(message);
BackendConnection backendConnection = frontendHandler.getBackendConnection()) {
backendConnection.getStateHandler().waitUntilConnectionReleasedIfNecessary();
CommandPacket commandPacket = getCommandPacket(payload, backendConnection, frontendHandler);
Optional<CommandResponsePackets> responsePackets = commandPacket.execute();
MySQLCommandPacket mySQLCommandPacket = getCommandPacket(payload, backendConnection, frontendHandler);
Optional<CommandResponsePackets> responsePackets = mySQLCommandPacket.execute();
if (!responsePackets.isPresent()) {
return;
}
if (responsePackets.get() instanceof QueryResponsePackets) {
context.write(new FieldCountPacket(1, ((QueryResponsePackets) responsePackets.get()).getFieldCount()));
context.write(new MySQLFieldCountPacket(1, ((QueryResponsePackets) responsePackets.get()).getFieldCount()));
}
for (DatabasePacket each : responsePackets.get().getPackets()) {
if (each instanceof DatabaseSuccessPacket) {
context.write(new OKPacket((DatabaseSuccessPacket) each));
context.write(new MySQLOKPacket((DatabaseSuccessPacket) each));
} else if (each instanceof DatabaseFailurePacket) {
context.write(new ErrPacket((DatabaseFailurePacket) each));
context.write(new MySQLErrPacket((DatabaseFailurePacket) each));
} else if (each instanceof DataHeaderPacket) {
context.write(new ColumnDefinition41Packet((DataHeaderPacket) each));
context.write(new MySQLColumnDefinition41Packet((DataHeaderPacket) each));
} else {
context.write(each);
}
}
if (responsePackets.get() instanceof QueryResponsePackets) {
context.write(new EofPacket(((QueryResponsePackets) responsePackets.get()).getSequenceId()));
context.write(new MySQLEofPacket(((QueryResponsePackets) responsePackets.get()).getSequenceId()));
}
if (commandPacket instanceof QueryCommandPacket && !(responsePackets.get().getHeadPacket() instanceof DatabaseSuccessPacket)
if (mySQLCommandPacket instanceof MySQLQueryCommandPacket && !(responsePackets.get().getHeadPacket() instanceof DatabaseSuccessPacket)
&& !(responsePackets.get().getHeadPacket() instanceof DatabaseFailurePacket)) {
writeMoreResults((QueryCommandPacket) commandPacket, ((QueryResponsePackets) responsePackets.get()).getSequenceId());
writeMoreResults((MySQLQueryCommandPacket) mySQLCommandPacket, ((QueryResponsePackets) responsePackets.get()).getSequenceId());
}
connectionSize = backendConnection.getConnectionSize();
} catch (final SQLException ex) {
context.write(new ErrPacket(++currentSequenceId, ex));
context.write(new MySQLErrPacket(++currentSequenceId, ex));
// CHECKSTYLE:OFF
} catch (final Exception ex) {
// CHECKSTYLE:ON
context.write(new ErrPacket(1, MySQLServerErrorCode.ER_STD_UNKNOWN_EXCEPTION, ex.getMessage()));
context.write(new MySQLErrPacket(1, MySQLServerErrorCode.ER_STD_UNKNOWN_EXCEPTION, ex.getMessage()));
} finally {
context.flush();
rootInvokeHook.finish(connectionSize);
}
}
private CommandPacket getCommandPacket(final MySQLPacketPayload payload, final BackendConnection backendConnection, final FrontendHandler frontendHandler) throws SQLException {
private MySQLCommandPacket getCommandPacket(final MySQLPacketPayload payload, final BackendConnection backendConnection, final FrontendHandler frontendHandler) throws SQLException {
int sequenceId = payload.readInt1();
return CommandPacketFactory.newInstance(sequenceId, payload, backendConnection);
return MySQLCommandPacketFactory.newInstance(sequenceId, payload, backendConnection);
}
private void writeMoreResults(final QueryCommandPacket queryCommandPacket, final int headPacketsCount) throws SQLException {
private void writeMoreResults(final MySQLQueryCommandPacket mySQLQueryCommandPacket, final int headPacketsCount) throws SQLException {
if (!context.channel().isActive()) {
return;
}
currentSequenceId = headPacketsCount;
int count = 0;
int proxyFrontendFlushThreshold = GlobalRegistry.getInstance().getShardingProperties().<Integer>getValue(ShardingPropertiesConstant.PROXY_FRONTEND_FLUSH_THRESHOLD);
while (queryCommandPacket.next()) {
while (mySQLQueryCommandPacket.next()) {
count++;
while (!context.channel().isWritable() && context.channel().isActive()) {
context.flush();
......@@ -134,7 +134,7 @@ public final class MySQLCommandExecutor implements Runnable {
}
}
}
DatabasePacket resultValue = queryCommandPacket.getResultValue();
DatabasePacket resultValue = mySQLQueryCommandPacket.getResultValue();
currentSequenceId = resultValue.getSequenceId();
context.write(resultValue);
if (proxyFrontendFlushThreshold == count) {
......@@ -142,6 +142,6 @@ public final class MySQLCommandExecutor implements Runnable {
count = 0;
}
}
context.write(new EofPacket(++currentSequenceId));
context.write(new MySQLEofPacket(++currentSequenceId));
}
}
......@@ -27,12 +27,12 @@ import org.apache.shardingsphere.shardingproxy.runtime.ChannelRegistry;
import org.apache.shardingsphere.shardingproxy.runtime.GlobalRegistry;
import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLServerErrorCode;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.ErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.OKPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.AuthenticationHandler;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.ConnectionIdGenerator;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.HandshakePacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.HandshakeResponse41Packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLOKPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.MySQLAuthenticationHandler;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.MySQLConnectionIdGenerator;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.MySQLHandshakePacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.MySQLHandshakeResponse41Packet;
/**
* MySQL frontend handler.
......@@ -45,30 +45,30 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.
@RequiredArgsConstructor
public final class MySQLFrontendHandler extends FrontendHandler {
private final AuthenticationHandler authenticationHandler = new AuthenticationHandler();
private final MySQLAuthenticationHandler mySQLAuthenticationHandler = new MySQLAuthenticationHandler();
@Override
protected void handshake(final ChannelHandlerContext context) {
int connectionId = ConnectionIdGenerator.getInstance().nextId();
int connectionId = MySQLConnectionIdGenerator.getInstance().nextId();
ChannelRegistry.getInstance().putConnectionId(context.channel().id().asShortText(), connectionId);
getBackendConnection().setConnectionId(connectionId);
context.writeAndFlush(new HandshakePacket(connectionId, authenticationHandler.getAuthPluginData()));
context.writeAndFlush(new MySQLHandshakePacket(connectionId, mySQLAuthenticationHandler.getMySQLAuthPluginData()));
}
@Override
protected void auth(final ChannelHandlerContext context, final ByteBuf message) {
try (MySQLPacketPayload payload = new MySQLPacketPayload(message)) {
HandshakeResponse41Packet response41 = new HandshakeResponse41Packet(payload);
if (authenticationHandler.login(response41.getUsername(), response41.getAuthResponse())) {
MySQLHandshakeResponse41Packet response41 = new MySQLHandshakeResponse41Packet(payload);
if (mySQLAuthenticationHandler.login(response41.getUsername(), response41.getAuthResponse())) {
if (!Strings.isNullOrEmpty(response41.getDatabase()) && !GlobalRegistry.getInstance().schemaExists(response41.getDatabase())) {
context.writeAndFlush(new ErrPacket(response41.getSequenceId() + 1, MySQLServerErrorCode.ER_BAD_DB_ERROR, response41.getDatabase()));
context.writeAndFlush(new MySQLErrPacket(response41.getSequenceId() + 1, MySQLServerErrorCode.ER_BAD_DB_ERROR, response41.getDatabase()));
return;
}
getBackendConnection().setCurrentSchema(response41.getDatabase());
context.writeAndFlush(new OKPacket(response41.getSequenceId() + 1));
context.writeAndFlush(new MySQLOKPacket(response41.getSequenceId() + 1));
} else {
// TODO localhost should replace to real ip address
context.writeAndFlush(new ErrPacket(response41.getSequenceId() + 1,
context.writeAndFlush(new MySQLErrPacket(response41.getSequenceId() + 1,
MySQLServerErrorCode.ER_ACCESS_DENIED_ERROR, response41.getUsername(), "localhost", 0 == response41.getAuthResponse().length ? "NO" : "YES"));
}
}
......
......@@ -29,7 +29,7 @@ import java.sql.SQLException;
* @author zhangliang
* @author wangkai
*/
public interface CommandPacket extends MySQLPacket {
public interface MySQLCommandPacket extends MySQLPacket {
/**
* Execute command.
......
......@@ -21,15 +21,15 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connection.BackendConnection;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.admin.UnsupportedCommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.admin.initdb.ComInitDbPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.admin.ping.ComPingPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.admin.quit.ComQuitPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.close.ComStmtClosePacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.execute.ComStmtExecutePacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.prepare.ComStmtPreparePacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.fieldlist.ComFieldListPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.query.ComQueryPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.admin.MySQLUnsupportedCommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.admin.initdb.MySQLComInitDbPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.admin.ping.MySQLComPingPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.admin.quit.MySQLComQuitPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.close.MySQLComStmtClosePacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.execute.MySQLQueryComStmtExecutePacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.prepare.MySQLComStmtPreparePacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.fieldlist.MySQLComFieldListPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.query.MySQLComPacketQuery;
import java.sql.SQLException;
......@@ -41,7 +41,7 @@ import java.sql.SQLException;
* @author zhaojun
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class CommandPacketFactory {
public final class MySQLCommandPacketFactory {
/**
* Create new instance of command packet.
......@@ -52,28 +52,28 @@ public final class CommandPacketFactory {
* @return command packet
* @throws SQLException SQL exception
*/
public static CommandPacket newInstance(final int sequenceId, final MySQLPacketPayload payload, final BackendConnection backendConnection) throws SQLException {
public static MySQLCommandPacket newInstance(final int sequenceId, final MySQLPacketPayload payload, final BackendConnection backendConnection) throws SQLException {
int commandPacketTypeValue = payload.readInt1();
CommandPacketType type = CommandPacketType.valueOf(commandPacketTypeValue);
MySQLCommandPacketType type = MySQLCommandPacketType.valueOf(commandPacketTypeValue);
switch (type) {
case COM_QUIT:
return new ComQuitPacket(sequenceId);
return new MySQLComQuitPacket(sequenceId);
case COM_INIT_DB:
return new ComInitDbPacket(sequenceId, payload, backendConnection);
return new MySQLComInitDbPacket(sequenceId, payload, backendConnection);
case COM_FIELD_LIST:
return new ComFieldListPacket(sequenceId, payload, backendConnection);
return new MySQLComFieldListPacket(sequenceId, payload, backendConnection);
case COM_QUERY:
return new ComQueryPacket(sequenceId, payload, backendConnection);
return new MySQLComPacketQuery(sequenceId, payload, backendConnection);
case COM_STMT_PREPARE:
return new ComStmtPreparePacket(sequenceId, backendConnection, payload);
return new MySQLComStmtPreparePacket(sequenceId, backendConnection, payload);
case COM_STMT_EXECUTE:
return new ComStmtExecutePacket(sequenceId, payload, backendConnection);
return new MySQLQueryComStmtExecutePacket(sequenceId, payload, backendConnection);
case COM_STMT_CLOSE:
return new ComStmtClosePacket(sequenceId, payload);
return new MySQLComStmtClosePacket(sequenceId, payload);
case COM_PING:
return new ComPingPacket(sequenceId);
return new MySQLComPingPacket(sequenceId);
default:
return new UnsupportedCommandPacket(sequenceId, type);
return new MySQLUnsupportedCommandPacket(sequenceId, type);
}
}
}
......@@ -27,7 +27,7 @@ import lombok.RequiredArgsConstructor;
*/
@RequiredArgsConstructor
@Getter
public enum CommandPacketType {
public enum MySQLCommandPacketType {
/**
* COM_SLEEP.
......@@ -261,8 +261,8 @@ public enum CommandPacketType {
* @param value integer value
* @return command packet type enum
*/
public static CommandPacketType valueOf(final int value) {
for (CommandPacketType each : CommandPacketType.values()) {
public static MySQLCommandPacketType valueOf(final int value) {
for (MySQLCommandPacketType each : MySQLCommandPacketType.values()) {
if (value == each.value) {
return each;
}
......
......@@ -22,10 +22,10 @@ import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLServerErrorCode;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.ErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLErrPacket;
/**
* Unsupported command packet.
......@@ -33,16 +33,16 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.Er
* @author zhangliang
*/
@RequiredArgsConstructor
public final class UnsupportedCommandPacket implements CommandPacket {
public final class MySQLUnsupportedCommandPacket implements MySQLCommandPacket {
@Getter
private final int sequenceId;
private final CommandPacketType type;
private final MySQLCommandPacketType type;
@Override
public Optional<CommandResponsePackets> execute() {
return Optional.of(new CommandResponsePackets(new ErrPacket(getSequenceId() + 1, MySQLServerErrorCode.ER_UNSUPPORTED_COMMAND, type)));
return Optional.of(new CommandResponsePackets(new MySQLErrPacket(getSequenceId() + 1, MySQLServerErrorCode.ER_UNSUPPORTED_COMMAND, type)));
}
@Override
......
......@@ -24,11 +24,11 @@ import org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connec
import org.apache.shardingsphere.shardingproxy.runtime.GlobalRegistry;
import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLServerErrorCode;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.ErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.OKPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLOKPacket;
/**
* COM_INIT_DB command packet.
......@@ -37,7 +37,7 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.OK
* @see <a href="https://dev.mysql.com/doc/internals/en/com-init-db.html#packet-COM_INIT_DB">COM_INIT_DB</a>
*/
@Slf4j
public final class ComInitDbPacket implements CommandPacket {
public final class MySQLComInitDbPacket implements MySQLCommandPacket {
@Getter
private final int sequenceId;
......@@ -46,7 +46,7 @@ public final class ComInitDbPacket implements CommandPacket {
private final BackendConnection backendConnection;
public ComInitDbPacket(final int sequenceId, final MySQLPacketPayload payload, final BackendConnection backendConnection) {
public MySQLComInitDbPacket(final int sequenceId, final MySQLPacketPayload payload, final BackendConnection backendConnection) {
this.sequenceId = sequenceId;
schema = payload.readStringEOF();
this.backendConnection = backendConnection;
......@@ -54,7 +54,7 @@ public final class ComInitDbPacket implements CommandPacket {
@Override
public void write(final MySQLPacketPayload payload) {
payload.writeInt1(CommandPacketType.COM_INIT_DB.getValue());
payload.writeInt1(MySQLCommandPacketType.COM_INIT_DB.getValue());
payload.writeStringEOF(schema);
}
......@@ -63,8 +63,8 @@ public final class ComInitDbPacket implements CommandPacket {
log.debug("Schema name received for Sharding-Proxy: {}", schema);
if (GlobalRegistry.getInstance().schemaExists(schema)) {
backendConnection.setCurrentSchema(schema);
return Optional.of(new CommandResponsePackets(new OKPacket(getSequenceId() + 1)));
return Optional.of(new CommandResponsePackets(new MySQLOKPacket(getSequenceId() + 1)));
}
return Optional.of(new CommandResponsePackets(new ErrPacket(getSequenceId() + 1, MySQLServerErrorCode.ER_BAD_DB_ERROR, schema)));
return Optional.of(new CommandResponsePackets(new MySQLErrPacket(getSequenceId() + 1, MySQLServerErrorCode.ER_BAD_DB_ERROR, schema)));
}
}
......@@ -21,10 +21,10 @@ import com.google.common.base.Optional;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.OKPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLOKPacket;
/**
* COM_PING command packet.
......@@ -35,17 +35,17 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.OK
*/
@RequiredArgsConstructor
@Getter
public final class ComPingPacket implements CommandPacket {
public final class MySQLComPingPacket implements MySQLCommandPacket {
private final int sequenceId;
@Override
public Optional<CommandResponsePackets> execute() {
return Optional.of(new CommandResponsePackets(new OKPacket(getSequenceId() + 1)));
return Optional.of(new CommandResponsePackets(new MySQLOKPacket(getSequenceId() + 1)));
}
@Override
public void write(final MySQLPacketPayload payload) {
payload.writeInt1(CommandPacketType.COM_PING.getValue());
payload.writeInt1(MySQLCommandPacketType.COM_PING.getValue());
}
}
......@@ -21,10 +21,10 @@ import com.google.common.base.Optional;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.OKPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLOKPacket;
/**
* COM_QUIT command packet.
......@@ -35,17 +35,17 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.OK
*/
@RequiredArgsConstructor
@Getter
public final class ComQuitPacket implements CommandPacket {
public final class MySQLComQuitPacket implements MySQLCommandPacket {
private final int sequenceId;
@Override
public Optional<CommandResponsePackets> execute() {
return Optional.of(new CommandResponsePackets(new OKPacket(getSequenceId() + 1)));
return Optional.of(new CommandResponsePackets(new MySQLOKPacket(getSequenceId() + 1)));
}
@Override
public void write(final MySQLPacketPayload payload) {
payload.writeInt1(CommandPacketType.COM_QUIT.getValue());
payload.writeInt1(MySQLCommandPacketType.COM_QUIT.getValue());
}
}
......@@ -37,7 +37,7 @@ import java.sql.SQLException;
* @author zhangliang
* @author zhangyonglun
*/
public final class ColumnDefinition41Packet implements MySQLPacket {
public final class MySQLColumnDefinition41Packet implements MySQLPacket {
private static final String CATALOG = "def";
......@@ -69,14 +69,14 @@ public final class ColumnDefinition41Packet implements MySQLPacket {
private final int decimals;
public ColumnDefinition41Packet(final int sequenceId, final ResultSetMetaData resultSetMetaData, final int columnIndex) throws SQLException {
public MySQLColumnDefinition41Packet(final int sequenceId, final ResultSetMetaData resultSetMetaData, final int columnIndex) throws SQLException {
this(sequenceId, resultSetMetaData.getSchemaName(columnIndex), resultSetMetaData.getTableName(columnIndex), resultSetMetaData.getTableName(columnIndex),
resultSetMetaData.getColumnLabel(columnIndex), resultSetMetaData.getColumnName(columnIndex), resultSetMetaData.getColumnDisplaySize(columnIndex),
MySQLColumnType.valueOfJDBCType(resultSetMetaData.getColumnType(columnIndex)), resultSetMetaData.getScale(columnIndex));
}
public ColumnDefinition41Packet(final int sequenceId, final String schema, final String table, final String orgTable,
final String name, final String orgName, final int columnLength, final MySQLColumnType mySQLColumnType, final int decimals) {
public MySQLColumnDefinition41Packet(final int sequenceId, final String schema, final String table, final String orgTable,
final String name, final String orgName, final int columnLength, final MySQLColumnType mySQLColumnType, final int decimals) {
this.sequenceId = sequenceId;
this.characterSet = MySQLServerInfo.CHARSET;
this.flags = 0;
......@@ -90,7 +90,7 @@ public final class ColumnDefinition41Packet implements MySQLPacket {
this.decimals = decimals;
}
public ColumnDefinition41Packet(final DataHeaderPacket dataHeaderPacket) {
public MySQLColumnDefinition41Packet(final DataHeaderPacket dataHeaderPacket) {
this.sequenceId = dataHeaderPacket.getSequenceId();
this.characterSet = MySQLServerInfo.CHARSET;
this.flags = 0;
......@@ -104,7 +104,7 @@ public final class ColumnDefinition41Packet implements MySQLPacket {
this.decimals = dataHeaderPacket.getDecimals();
}
public ColumnDefinition41Packet(final MySQLPacketPayload payload) {
public MySQLColumnDefinition41Packet(final MySQLPacketPayload payload) {
sequenceId = payload.readInt1();
Preconditions.checkArgument(CATALOG.equals(payload.readStringLenenc()));
schema = payload.readStringLenenc();
......
......@@ -31,13 +31,13 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacke
*/
@RequiredArgsConstructor
@Getter
public final class FieldCountPacket implements MySQLPacket {
public final class MySQLFieldCountPacket implements MySQLPacket {
private final int sequenceId;
private final int columnCount;
public FieldCountPacket(final MySQLPacketPayload payload) {
public MySQLFieldCountPacket(final MySQLPacketPayload payload) {
this(payload.readInt1(), payload.readInt1());
}
......
......@@ -18,7 +18,7 @@
package org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.DatabasePacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacket;
import java.sql.SQLException;
......@@ -28,7 +28,7 @@ import java.sql.SQLException;
* @author zhangliang
* @author wangkai
*/
public interface QueryCommandPacket extends CommandPacket {
public interface MySQLQueryCommandPacket extends MySQLCommandPacket {
/**
* Goto next result value.
......
......@@ -31,11 +31,11 @@ import java.util.List;
@RequiredArgsConstructor
@Getter
@Setter
public final class BinaryStatement {
public final class MySQLBinaryStatement {
private final String sql;
private final int parametersCount;
private List<BinaryStatementParameterType> parameterTypes;
private List<MySQLBinaryStatementParameterType> parameterTypes;
}
......@@ -28,7 +28,7 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLCol
*/
@RequiredArgsConstructor
@Getter
public final class BinaryStatementParameterType {
public final class MySQLBinaryStatementParameterType {
private final MySQLColumnType mySQLColumnType;
......
......@@ -31,13 +31,13 @@ import java.util.concurrent.atomic.AtomicInteger;
* @author zhangyonglun
*/
@NoArgsConstructor(access = AccessLevel.NONE)
public final class BinaryStatementRegistry {
public final class MySQLBinaryStatementRegistry {
private static final BinaryStatementRegistry INSTANCE = new BinaryStatementRegistry();
private static final MySQLBinaryStatementRegistry INSTANCE = new MySQLBinaryStatementRegistry();
private final ConcurrentMap<String, Integer> statementIdAssigner = new ConcurrentHashMap<>(65535, 1);
private final ConcurrentMap<Integer, BinaryStatement> binaryStatements = new ConcurrentHashMap<>(65535, 1);
private final ConcurrentMap<Integer, MySQLBinaryStatement> binaryStatements = new ConcurrentHashMap<>(65535, 1);
private final AtomicInteger sequence = new AtomicInteger();
......@@ -46,7 +46,7 @@ public final class BinaryStatementRegistry {
*
* @return prepared statement registry instance
*/
public static BinaryStatementRegistry getInstance() {
public static MySQLBinaryStatementRegistry getInstance() {
return INSTANCE;
}
......@@ -64,7 +64,7 @@ public final class BinaryStatementRegistry {
}
result = sequence.incrementAndGet();
statementIdAssigner.putIfAbsent(sql, result);
binaryStatements.putIfAbsent(result, new BinaryStatement(sql, parametersCount));
binaryStatements.putIfAbsent(result, new MySQLBinaryStatement(sql, parametersCount));
return result;
}
......@@ -74,7 +74,7 @@ public final class BinaryStatementRegistry {
* @param statementId statement ID
* @return binary prepared statement
*/
public BinaryStatement getBinaryStatement(final int statementId) {
public MySQLBinaryStatement getBinaryStatement(final int statementId) {
return binaryStatements.get(statementId);
}
}
......@@ -21,7 +21,7 @@ import com.google.common.base.Optional;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
/**
......@@ -32,14 +32,14 @@ import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.C
* @author zhangyonglun
*/
@Slf4j
public final class ComStmtClosePacket implements CommandPacket {
public final class MySQLComStmtClosePacket implements MySQLCommandPacket {
@Getter
private final int sequenceId;
private final int statementId;
public ComStmtClosePacket(final int sequenceId, final MySQLPacketPayload payload) {
public MySQLComStmtClosePacket(final int sequenceId, final MySQLPacketPayload payload) {
this.sequenceId = sequenceId;
statementId = payload.readInt4();
}
......
......@@ -22,7 +22,7 @@ import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLColumnType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.execute.protocol.BinaryProtocolValueFactory;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.execute.protocol.MySQLBinaryProtocolValueFactory;
import java.util.List;
......@@ -34,7 +34,7 @@ import java.util.List;
* @author zhangyonglun
*/
@RequiredArgsConstructor
public final class BinaryResultSetRowPacket implements MySQLPacket {
public final class MySQLBinaryResultSetRowPacket implements MySQLPacket {
private static final int PACKET_HEADER = 0x00;
......@@ -63,8 +63,8 @@ public final class BinaryResultSetRowPacket implements MySQLPacket {
}
}
private NullBitmap getNullBitmap() {
NullBitmap result = new NullBitmap(columnsCount, NULL_BITMAP_OFFSET);
private MySQLNullBitmap getNullBitmap() {
MySQLNullBitmap result = new MySQLNullBitmap(columnsCount, NULL_BITMAP_OFFSET);
for (int columnIndex = 0; columnIndex < columnsCount; columnIndex++) {
if (null == data.get(columnIndex)) {
result.setNullBit(columnIndex);
......@@ -77,7 +77,7 @@ public final class BinaryResultSetRowPacket implements MySQLPacket {
for (int i = 0; i < columnsCount; i++) {
Object value = data.get(i);
if (null != value) {
BinaryProtocolValueFactory.getBinaryProtocolValue(mySQLColumnTypes.get(i)).write(payload, value);
MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(mySQLColumnTypes.get(i)).write(payload, value);
}
}
}
......
......@@ -26,14 +26,14 @@ import lombok.Getter;
*
* @author zhangyonglun
*/
public final class NullBitmap {
public final class MySQLNullBitmap {
private final int offset;
@Getter
private final int[] nullBitmap;
public NullBitmap(final int columnsNumbers, final int offset) {
public MySQLNullBitmap(final int columnsNumbers, final int offset) {
this.offset = offset;
nullBitmap = new int[calculateLength(columnsNumbers, offset)];
}
......
......@@ -32,13 +32,14 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLNew
import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLServerErrorCode;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.QueryCommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.BinaryStatement;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.BinaryStatementParameterType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.BinaryStatementRegistry;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.execute.protocol.BinaryProtocolValue;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.execute.protocol.BinaryProtocolValueFactory;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.ErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.MySQLQueryCommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.MySQLBinaryStatement;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.MySQLBinaryStatementParameterType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.MySQLBinaryStatementRegistry;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.execute.protocol.MySQLBinaryProtocolValue;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.execute.protocol.MySQLBinaryProtocolValueFactory;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLErrPacket;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
......@@ -51,7 +52,7 @@ import java.util.List;
* @author zhangyonglun
*/
@Slf4j
public final class ComStmtExecutePacket implements QueryCommandPacket {
public final class MySQLQueryComStmtExecutePacket implements MySQLQueryCommandPacket {
private static final int ITERATION_COUNT = 1;
......@@ -62,11 +63,11 @@ public final class ComStmtExecutePacket implements QueryCommandPacket {
private final int statementId;
private final BinaryStatement binaryStatement;
private final MySQLBinaryStatement mySQLBinaryStatement;
private final int flags;
private final NullBitmap nullBitmap;
private final MySQLNullBitmap mySQLNullBitmap;
private final MySQLNewParametersBoundFlag mySQLNewParametersBoundFlag;
......@@ -74,32 +75,32 @@ public final class ComStmtExecutePacket implements QueryCommandPacket {
private final DatabaseCommunicationEngine databaseCommunicationEngine;
public ComStmtExecutePacket(final int sequenceId, final MySQLPacketPayload payload, final BackendConnection backendConnection) throws SQLException {
public MySQLQueryComStmtExecutePacket(final int sequenceId, final MySQLPacketPayload payload, final BackendConnection backendConnection) throws SQLException {
this.sequenceId = sequenceId;
statementId = payload.readInt4();
binaryStatement = BinaryStatementRegistry.getInstance().getBinaryStatement(statementId);
mySQLBinaryStatement = MySQLBinaryStatementRegistry.getInstance().getBinaryStatement(statementId);
flags = payload.readInt1();
Preconditions.checkArgument(ITERATION_COUNT == payload.readInt4());
int parametersCount = binaryStatement.getParametersCount();
nullBitmap = new NullBitmap(parametersCount, NULL_BITMAP_OFFSET);
for (int i = 0; i < nullBitmap.getNullBitmap().length; i++) {
nullBitmap.getNullBitmap()[i] = payload.readInt1();
int parametersCount = mySQLBinaryStatement.getParametersCount();
mySQLNullBitmap = new MySQLNullBitmap(parametersCount, NULL_BITMAP_OFFSET);
for (int i = 0; i < mySQLNullBitmap.getNullBitmap().length; i++) {
mySQLNullBitmap.getNullBitmap()[i] = payload.readInt1();
}
mySQLNewParametersBoundFlag = MySQLNewParametersBoundFlag.valueOf(payload.readInt1());
if (MySQLNewParametersBoundFlag.PARAMETER_TYPE_EXIST == mySQLNewParametersBoundFlag) {
binaryStatement.setParameterTypes(getParameterTypes(payload, parametersCount));
mySQLBinaryStatement.setParameterTypes(getParameterTypes(payload, parametersCount));
}
parameters = getParameters(payload, parametersCount);
databaseCommunicationEngine = DatabaseCommunicationEngineFactory.getInstance().newBinaryProtocolInstance(
backendConnection.getLogicSchema(), sequenceId, binaryStatement.getSql(), parameters, backendConnection, GlobalRegistry.getInstance().getDatabaseType());
backendConnection.getLogicSchema(), sequenceId, mySQLBinaryStatement.getSql(), parameters, backendConnection, GlobalRegistry.getInstance().getDatabaseType());
}
private List<BinaryStatementParameterType> getParameterTypes(final MySQLPacketPayload payload, final int parametersCount) {
List<BinaryStatementParameterType> result = new ArrayList<>(parametersCount);
private List<MySQLBinaryStatementParameterType> getParameterTypes(final MySQLPacketPayload payload, final int parametersCount) {
List<MySQLBinaryStatementParameterType> result = new ArrayList<>(parametersCount);
for (int parameterIndex = 0; parameterIndex < parametersCount; parameterIndex++) {
MySQLColumnType mySQLColumnType = MySQLColumnType.valueOf(payload.readInt1());
int unsignedFlag = payload.readInt1();
result.add(new BinaryStatementParameterType(mySQLColumnType, unsignedFlag));
result.add(new MySQLBinaryStatementParameterType(mySQLColumnType, unsignedFlag));
}
return result;
}
......@@ -107,8 +108,8 @@ public final class ComStmtExecutePacket implements QueryCommandPacket {
private List<Object> getParameters(final MySQLPacketPayload payload, final int parametersCount) throws SQLException {
List<Object> result = new ArrayList<>(parametersCount);
for (int parameterIndex = 0; parameterIndex < parametersCount; parameterIndex++) {
BinaryProtocolValue binaryProtocolValue = BinaryProtocolValueFactory.getBinaryProtocolValue(binaryStatement.getParameterTypes().get(parameterIndex).getMySQLColumnType());
result.add(nullBitmap.isNullParameter(parameterIndex) ? null : binaryProtocolValue.read(payload));
MySQLBinaryProtocolValue mySQLBinaryProtocolValue = MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(mySQLBinaryStatement.getParameterTypes().get(parameterIndex).getMySQLColumnType());
result.add(mySQLNullBitmap.isNullParameter(parameterIndex) ? null : mySQLBinaryProtocolValue.read(payload));
}
return result;
}
......@@ -118,13 +119,13 @@ public final class ComStmtExecutePacket implements QueryCommandPacket {
payload.writeInt4(statementId);
payload.writeInt1(flags);
payload.writeInt4(ITERATION_COUNT);
for (int each : nullBitmap.getNullBitmap()) {
for (int each : mySQLNullBitmap.getNullBitmap()) {
payload.writeInt1(each);
}
payload.writeInt1(mySQLNewParametersBoundFlag.getValue());
int count = 0;
for (Object each : parameters) {
BinaryStatementParameterType parameterType = binaryStatement.getParameterTypes().get(count);
MySQLBinaryStatementParameterType parameterType = mySQLBinaryStatement.getParameterTypes().get(count);
payload.writeInt1(parameterType.getMySQLColumnType().getValue());
payload.writeInt1(parameterType.getUnsignedFlag());
payload.writeStringLenenc(null == each ? "" : each.toString());
......@@ -136,7 +137,7 @@ public final class ComStmtExecutePacket implements QueryCommandPacket {
public Optional<CommandResponsePackets> execute() {
log.debug("COM_STMT_EXECUTE received for Sharding-Proxy: {}", statementId);
if (GlobalRegistry.getInstance().isCircuitBreak()) {
return Optional.of(new CommandResponsePackets(new ErrPacket(1, MySQLServerErrorCode.ER_CIRCUIT_BREAK_MODE)));
return Optional.of(new CommandResponsePackets(new MySQLErrPacket(1, MySQLServerErrorCode.ER_CIRCUIT_BREAK_MODE)));
}
return Optional.of(databaseCommunicationEngine.execute());
}
......@@ -155,6 +156,6 @@ public final class ComStmtExecutePacket implements QueryCommandPacket {
for (int i = 0; i < columnCount; i++) {
mySQLColumnTypes.add(MySQLColumnType.valueOfJDBCType(jdbcColumnTypes.get(i)));
}
return new BinaryResultSetRowPacket(resultPacket.getSequenceId(), columnCount, resultPacket.getData(), mySQLColumnTypes);
return new MySQLBinaryResultSetRowPacket(resultPacket.getSequenceId(), columnCount, resultPacket.getData(), mySQLColumnTypes);
}
}
......@@ -31,9 +31,9 @@ import java.util.Map;
* @author zhangliang
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class BinaryProtocolValueFactory {
public final class MySQLBinaryProtocolValueFactory {
private static final Map<MySQLColumnType, BinaryProtocolValue> BINARY_PROTOCOL_VALUES = new HashMap<>();
private static final Map<MySQLColumnType, MySQLBinaryProtocolValue> BINARY_PROTOCOL_VALUES = new HashMap<>();
static {
setStringLenencBinaryProtocolValue();
......@@ -48,7 +48,7 @@ public final class BinaryProtocolValueFactory {
}
private static void setStringLenencBinaryProtocolValue() {
StringLenencBinaryProtocolValue binaryProtocolValue = new StringLenencBinaryProtocolValue();
MySQLStringLenencBinaryProtocolValue binaryProtocolValue = new MySQLStringLenencBinaryProtocolValue();
BINARY_PROTOCOL_VALUES.put(MySQLColumnType.MYSQL_TYPE_STRING, binaryProtocolValue);
BINARY_PROTOCOL_VALUES.put(MySQLColumnType.MYSQL_TYPE_VARCHAR, binaryProtocolValue);
BINARY_PROTOCOL_VALUES.put(MySQLColumnType.MYSQL_TYPE_VAR_STRING, binaryProtocolValue);
......@@ -65,46 +65,46 @@ public final class BinaryProtocolValueFactory {
}
private static void setInt8BinaryProtocolValue() {
Int8BinaryProtocolValue binaryProtocolValue = new Int8BinaryProtocolValue();
MySQLInt8BinaryProtocolValue binaryProtocolValue = new MySQLInt8BinaryProtocolValue();
BINARY_PROTOCOL_VALUES.put(MySQLColumnType.MYSQL_TYPE_LONGLONG, binaryProtocolValue);
}
private static void setInt4BinaryProtocolValue() {
Int4BinaryProtocolValue binaryProtocolValue = new Int4BinaryProtocolValue();
MySQLInt4BinaryProtocolValue binaryProtocolValue = new MySQLInt4BinaryProtocolValue();
BINARY_PROTOCOL_VALUES.put(MySQLColumnType.MYSQL_TYPE_LONG, binaryProtocolValue);
BINARY_PROTOCOL_VALUES.put(MySQLColumnType.MYSQL_TYPE_INT24, binaryProtocolValue);
}
private static void setInt2BinaryProtocolValue() {
Int2BinaryProtocolValue binaryProtocolValue = new Int2BinaryProtocolValue();
MySQLInt2BinaryProtocolValue binaryProtocolValue = new MySQLInt2BinaryProtocolValue();
BINARY_PROTOCOL_VALUES.put(MySQLColumnType.MYSQL_TYPE_SHORT, binaryProtocolValue);
BINARY_PROTOCOL_VALUES.put(MySQLColumnType.MYSQL_TYPE_YEAR, binaryProtocolValue);
}
private static void setInt1BinaryProtocolValue() {
Int1BinaryProtocolValue binaryProtocolValue = new Int1BinaryProtocolValue();
MySQLInt1BinaryProtocolValue binaryProtocolValue = new MySQLInt1BinaryProtocolValue();
BINARY_PROTOCOL_VALUES.put(MySQLColumnType.MYSQL_TYPE_TINY, binaryProtocolValue);
}
private static void setDoubleBinaryProtocolValue() {
DoubleBinaryProtocolValue binaryProtocolValue = new DoubleBinaryProtocolValue();
MySQLDoubleBinaryProtocolValue binaryProtocolValue = new MySQLDoubleBinaryProtocolValue();
BINARY_PROTOCOL_VALUES.put(MySQLColumnType.MYSQL_TYPE_DOUBLE, binaryProtocolValue);
}
private static void setFloatBinaryProtocolValue() {
FloatBinaryProtocolValue binaryProtocolValue = new FloatBinaryProtocolValue();
MySQLFloatBinaryProtocolValue binaryProtocolValue = new MySQLFloatBinaryProtocolValue();
BINARY_PROTOCOL_VALUES.put(MySQLColumnType.MYSQL_TYPE_FLOAT, binaryProtocolValue);
}
private static void setDateBinaryProtocolValue() {
DateBinaryProtocolValue binaryProtocolValue = new DateBinaryProtocolValue();
MySQLDateBinaryProtocolValue binaryProtocolValue = new MySQLDateBinaryProtocolValue();
BINARY_PROTOCOL_VALUES.put(MySQLColumnType.MYSQL_TYPE_DATE, binaryProtocolValue);
BINARY_PROTOCOL_VALUES.put(MySQLColumnType.MYSQL_TYPE_DATETIME, binaryProtocolValue);
BINARY_PROTOCOL_VALUES.put(MySQLColumnType.MYSQL_TYPE_TIMESTAMP, binaryProtocolValue);
}
private static void setTimeBinaryProtocolValue() {
TimeBinaryProtocolValue binaryProtocolValue = new TimeBinaryProtocolValue();
MySQLTimeBinaryProtocolValue binaryProtocolValue = new MySQLTimeBinaryProtocolValue();
BINARY_PROTOCOL_VALUES.put(MySQLColumnType.MYSQL_TYPE_TIME, binaryProtocolValue);
}
......@@ -114,7 +114,7 @@ public final class BinaryProtocolValueFactory {
* @param mySQLColumnType column type
* @return binary protocol value
*/
public static BinaryProtocolValue getBinaryProtocolValue(final MySQLColumnType mySQLColumnType) {
public static MySQLBinaryProtocolValue getBinaryProtocolValue(final MySQLColumnType mySQLColumnType) {
Preconditions.checkArgument(BINARY_PROTOCOL_VALUES.containsKey(mySQLColumnType), "Cannot find MySQL type '%s' in column type when process binary protocol value", mySQLColumnType);
return BINARY_PROTOCOL_VALUES.get(mySQLColumnType);
}
......
......@@ -30,7 +30,7 @@ import java.util.Calendar;
* @author zhangyonglun
* @author zhangliang
*/
public final class DateBinaryProtocolValue implements BinaryProtocolValue {
public final class MySQLDateBinaryProtocolValue implements MySQLBinaryProtocolValue {
@Override
public Object read(final MySQLPacketPayload payload) throws SQLException {
......
......@@ -25,7 +25,7 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacke
* @author zhangyonglun
* @author zhangliang
*/
public final class DoubleBinaryProtocolValue implements BinaryProtocolValue {
public final class MySQLDoubleBinaryProtocolValue implements MySQLBinaryProtocolValue {
@Override
public Object read(final MySQLPacketPayload payload) {
......
......@@ -25,7 +25,7 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacke
* @author zhangyonglun
* @author zhangliang
*/
public final class FloatBinaryProtocolValue implements BinaryProtocolValue {
public final class MySQLFloatBinaryProtocolValue implements MySQLBinaryProtocolValue {
@Override
public Object read(final MySQLPacketPayload payload) {
......
......@@ -25,7 +25,7 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacke
* @author zhangyonglun
* @author zhangliang
*/
public final class Int1BinaryProtocolValue implements BinaryProtocolValue {
public final class MySQLInt1BinaryProtocolValue implements MySQLBinaryProtocolValue {
@Override
public Object read(final MySQLPacketPayload payload) {
......
......@@ -25,7 +25,7 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacke
* @author zhangyonglun
* @author zhangliang
*/
public final class Int2BinaryProtocolValue implements BinaryProtocolValue {
public final class MySQLInt2BinaryProtocolValue implements MySQLBinaryProtocolValue {
@Override
public Object read(final MySQLPacketPayload payload) {
......
......@@ -25,7 +25,7 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacke
* @author zhangyonglun
* @author zhangliang
*/
public final class Int4BinaryProtocolValue implements BinaryProtocolValue {
public final class MySQLInt4BinaryProtocolValue implements MySQLBinaryProtocolValue {
@Override
public Object read(final MySQLPacketPayload payload) {
......
......@@ -27,7 +27,7 @@ import java.math.BigDecimal;
* @author zhangyonglun
* @author zhangliang
*/
public final class Int8BinaryProtocolValue implements BinaryProtocolValue {
public final class MySQLInt8BinaryProtocolValue implements MySQLBinaryProtocolValue {
@Override
public Object read(final MySQLPacketPayload payload) {
......
......@@ -25,7 +25,7 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacke
* @author zhangyonglun
* @author zhangliang
*/
public final class StringLenencBinaryProtocolValue implements BinaryProtocolValue {
public final class MySQLStringLenencBinaryProtocolValue implements MySQLBinaryProtocolValue {
@Override
public Object read(final MySQLPacketPayload payload) {
......
......@@ -29,7 +29,7 @@ import java.util.Calendar;
* @author zhangyonglun
* @author zhangliang
*/
public final class TimeBinaryProtocolValue implements BinaryProtocolValue {
public final class MySQLTimeBinaryProtocolValue implements MySQLBinaryProtocolValue {
@Override
public Object read(final MySQLPacketPayload payload) {
......
......@@ -30,7 +30,7 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacke
* @author zhangliang
*/
@RequiredArgsConstructor
public final class ComStmtPrepareOKPacket implements MySQLPacket {
public final class MySQLComStmtPrepareOKPacket implements MySQLPacket {
private static final int STATUS = 0x00;
......
......@@ -32,11 +32,11 @@ import org.apache.shardingsphere.shardingproxy.runtime.schema.LogicSchema;
import org.apache.shardingsphere.shardingproxy.runtime.schema.ShardingSchema;
import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLColumnType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.ColumnDefinition41Packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.BinaryStatementRegistry;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.EofPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.MySQLColumnDefinition41Packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.MySQLBinaryStatementRegistry;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLEofPacket;
/**
* COM_STMT_PREPARE command packet.
......@@ -46,9 +46,9 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.Eo
* @author zhangliang
*/
@Slf4j
public final class ComStmtPreparePacket implements CommandPacket {
public final class MySQLComStmtPreparePacket implements MySQLCommandPacket {
private static final BinaryStatementRegistry PREPARED_STATEMENT_REGISTRY = BinaryStatementRegistry.getInstance();
private static final MySQLBinaryStatementRegistry PREPARED_STATEMENT_REGISTRY = MySQLBinaryStatementRegistry.getInstance();
@Getter
private final int sequenceId;
......@@ -59,7 +59,7 @@ public final class ComStmtPreparePacket implements CommandPacket {
private final SQLParsingEngine sqlParsingEngine;
public ComStmtPreparePacket(final int sequenceId, final BackendConnection backendConnection, final MySQLPacketPayload payload) {
public MySQLComStmtPreparePacket(final int sequenceId, final BackendConnection backendConnection, final MySQLPacketPayload payload) {
this.sequenceId = sequenceId;
sql = payload.readStringEOF();
schemaName = backendConnection.getSchemaName();
......@@ -83,14 +83,14 @@ public final class ComStmtPreparePacket implements CommandPacket {
SQLStatement sqlStatement = sqlParsingEngine.parse(true);
int parametersIndex = sqlStatement.getParametersIndex();
CommandResponsePackets result = new CommandResponsePackets(
new ComStmtPrepareOKPacket(++currentSequenceId, PREPARED_STATEMENT_REGISTRY.register(sql, parametersIndex), getNumColumns(sqlStatement), parametersIndex, 0));
new MySQLComStmtPrepareOKPacket(++currentSequenceId, PREPARED_STATEMENT_REGISTRY.register(sql, parametersIndex), getNumColumns(sqlStatement), parametersIndex, 0));
for (int i = 0; i < parametersIndex; i++) {
// TODO add column name
result.getPackets().add(new ColumnDefinition41Packet(++currentSequenceId, schemaName,
result.getPackets().add(new MySQLColumnDefinition41Packet(++currentSequenceId, schemaName,
sqlStatement.getTables().isSingleTable() ? sqlStatement.getTables().getSingleTableName() : "", "", "", "", 100, MySQLColumnType.MYSQL_TYPE_VARCHAR, 0));
}
if (parametersIndex > 0) {
result.getPackets().add(new EofPacket(++currentSequenceId));
result.getPackets().add(new MySQLEofPacket(++currentSequenceId));
}
// TODO add If numColumns > 0
return Optional.of(result);
......
......@@ -34,7 +34,7 @@ import java.util.List;
*/
@RequiredArgsConstructor
@Getter
public final class TextResultSetRowPacket implements MySQLPacket {
public final class MySQLTextResultSetRowPacket implements MySQLPacket {
private static final int NULL = 0xfb;
......@@ -42,7 +42,7 @@ public final class TextResultSetRowPacket implements MySQLPacket {
private final List<Object> data;
public TextResultSetRowPacket(final MySQLPacketPayload payload, final int columnCount) {
public MySQLTextResultSetRowPacket(final MySQLPacketPayload payload, final int columnCount) {
sequenceId = payload.readInt1();
data = new ArrayList<>(columnCount);
for (int i = 0; i < columnCount; i++) {
......
......@@ -26,12 +26,12 @@ import org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connec
import org.apache.shardingsphere.shardingproxy.runtime.GlobalRegistry;
import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLColumnType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.ColumnDefinition41Packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.EofPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.ErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.MySQLColumnDefinition41Packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLEofPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLErrPacket;
import java.sql.SQLException;
/**
......@@ -42,7 +42,7 @@ import java.sql.SQLException;
* @see <a href="https://dev.mysql.com/doc/internals/en/com-field-list.html">COM_FIELD_LIST</a>
*/
@Slf4j
public final class ComFieldListPacket implements CommandPacket {
public final class MySQLComFieldListPacket implements MySQLCommandPacket {
private static final String SQL = "SHOW COLUMNS FROM %s FROM %s";
......@@ -57,7 +57,7 @@ public final class ComFieldListPacket implements CommandPacket {
private final DatabaseCommunicationEngine databaseCommunicationEngine;
public ComFieldListPacket(final int sequenceId, final MySQLPacketPayload payload, final BackendConnection backendConnection) {
public MySQLComFieldListPacket(final int sequenceId, final MySQLPacketPayload payload, final BackendConnection backendConnection) {
this.sequenceId = sequenceId;
this.schemaName = backendConnection.getSchemaName();
table = payload.readStringNul();
......@@ -68,7 +68,7 @@ public final class ComFieldListPacket implements CommandPacket {
@Override
public void write(final MySQLPacketPayload payload) {
payload.writeInt1(CommandPacketType.COM_FIELD_LIST.getValue());
payload.writeInt1(MySQLCommandPacketType.COM_FIELD_LIST.getValue());
payload.writeStringNul(table);
payload.writeStringEOF(fieldWildcard);
}
......@@ -78,7 +78,7 @@ public final class ComFieldListPacket implements CommandPacket {
log.debug("Table name received for Sharding-Proxy: {}", table);
log.debug("Field wildcard received for Sharding-Proxy: {}", fieldWildcard);
CommandResponsePackets responsePackets = databaseCommunicationEngine.execute();
return Optional.of(responsePackets.getHeadPacket() instanceof ErrPacket ? responsePackets : getColumnDefinition41Packets());
return Optional.of(responsePackets.getHeadPacket() instanceof MySQLErrPacket ? responsePackets : getColumnDefinition41Packets());
}
private CommandResponsePackets getColumnDefinition41Packets() throws SQLException {
......@@ -86,9 +86,9 @@ public final class ComFieldListPacket implements CommandPacket {
int currentSequenceId = 0;
while (databaseCommunicationEngine.next()) {
String columnName = databaseCommunicationEngine.getResultValue().getData().get(0).toString();
result.getPackets().add(new ColumnDefinition41Packet(++currentSequenceId, schemaName, table, table, columnName, columnName, 100, MySQLColumnType.MYSQL_TYPE_VARCHAR, 0));
result.getPackets().add(new MySQLColumnDefinition41Packet(++currentSequenceId, schemaName, table, table, columnName, columnName, 100, MySQLColumnType.MYSQL_TYPE_VARCHAR, 0));
}
result.getPackets().add(new EofPacket(++currentSequenceId));
result.getPackets().add(new MySQLEofPacket(++currentSequenceId));
return result;
}
}
......@@ -28,11 +28,12 @@ import org.apache.shardingsphere.shardingproxy.runtime.GlobalRegistry;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.DatabasePacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLServerErrorCode;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.QueryCommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.TextResultSetRowPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.ErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.MySQLQueryCommandPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.MySQLTextResultSetRowPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLErrPacket;
import java.sql.SQLException;
/**
......@@ -44,7 +45,7 @@ import java.sql.SQLException;
* @see <a href="https://dev.mysql.com/doc/internals/en/com-query.html">COM_QUERY</a>
*/
@Slf4j
public final class ComQueryPacket implements QueryCommandPacket {
public final class MySQLComPacketQuery implements MySQLQueryCommandPacket {
@Getter
private final int sequenceId;
......@@ -53,13 +54,13 @@ public final class ComQueryPacket implements QueryCommandPacket {
private final TextProtocolBackendHandler textProtocolBackendHandler;
public ComQueryPacket(final int sequenceId, final MySQLPacketPayload payload, final BackendConnection backendConnection) {
public MySQLComPacketQuery(final int sequenceId, final MySQLPacketPayload payload, final BackendConnection backendConnection) {
this.sequenceId = sequenceId;
sql = payload.readStringEOF();
textProtocolBackendHandler = ComQueryBackendHandlerFactory.createTextProtocolBackendHandler(sequenceId, sql, backendConnection, GlobalRegistry.getInstance().getDatabaseType());
}
public ComQueryPacket(final int sequenceId, final String sql) {
public MySQLComPacketQuery(final int sequenceId, final String sql) {
this.sequenceId = sequenceId;
this.sql = sql;
textProtocolBackendHandler = null;
......@@ -67,7 +68,7 @@ public final class ComQueryPacket implements QueryCommandPacket {
@Override
public void write(final MySQLPacketPayload payload) {
payload.writeInt1(CommandPacketType.COM_QUERY.getValue());
payload.writeInt1(MySQLCommandPacketType.COM_QUERY.getValue());
payload.writeStringEOF(sql);
}
......@@ -75,7 +76,7 @@ public final class ComQueryPacket implements QueryCommandPacket {
public Optional<CommandResponsePackets> execute() {
log.debug("COM_QUERY received for Sharding-Proxy: {}", sql);
return GlobalRegistry.getInstance().isCircuitBreak()
? Optional.of(new CommandResponsePackets(new ErrPacket(1, MySQLServerErrorCode.ER_CIRCUIT_BREAK_MODE))) : Optional.of(textProtocolBackendHandler.execute());
? Optional.of(new CommandResponsePackets(new MySQLErrPacket(1, MySQLServerErrorCode.ER_CIRCUIT_BREAK_MODE))) : Optional.of(textProtocolBackendHandler.execute());
}
@Override
......@@ -86,6 +87,6 @@ public final class ComQueryPacket implements QueryCommandPacket {
@Override
public DatabasePacket getResultValue() throws SQLException {
ResultPacket resultPacket = textProtocolBackendHandler.getResultValue();
return new TextResultSetRowPacket(resultPacket.getSequenceId(), resultPacket.getData());
return new MySQLTextResultSetRowPacket(resultPacket.getSequenceId(), resultPacket.getData());
}
}
......@@ -33,7 +33,7 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacke
*/
@RequiredArgsConstructor
@Getter
public final class EofPacket implements MySQLPacket {
public final class MySQLEofPacket implements MySQLPacket {
/**
* Header of EOF packet.
......@@ -46,7 +46,7 @@ public final class EofPacket implements MySQLPacket {
private final int statusFlags;
public EofPacket(final int sequenceId) {
public MySQLEofPacket(final int sequenceId) {
this(sequenceId, 0, MySQLStatusFlag.SERVER_STATUS_AUTOCOMMIT.getValue());
}
......
......@@ -36,7 +36,7 @@ import java.sql.SQLException;
*/
@RequiredArgsConstructor
@Getter
public final class ErrPacket implements MySQLPacket {
public final class MySQLErrPacket implements MySQLPacket {
/**
* Header of ERR packet.
......@@ -53,15 +53,15 @@ public final class ErrPacket implements MySQLPacket {
private final String errorMessage;
public ErrPacket(final int sequenceId, final MySQLServerErrorCode mySQLServerErrorCode, final Object... errorMessageArguments) {
public MySQLErrPacket(final int sequenceId, final MySQLServerErrorCode mySQLServerErrorCode, final Object... errorMessageArguments) {
this(sequenceId, mySQLServerErrorCode.getErrorCode(), mySQLServerErrorCode.getSqlState(), String.format(mySQLServerErrorCode.getErrorMessage(), errorMessageArguments));
}
public ErrPacket(final int sequenceId, final SQLException cause) {
public MySQLErrPacket(final int sequenceId, final SQLException cause) {
this(sequenceId, cause.getErrorCode(), cause.getSQLState(), cause.getMessage());
}
public ErrPacket(final DatabaseFailurePacket databaseFailurePacket) {
public MySQLErrPacket(final DatabaseFailurePacket databaseFailurePacket) {
this(databaseFailurePacket.getSequenceId(), databaseFailurePacket.getErrorCode(), databaseFailurePacket.getSqlState(), databaseFailurePacket.getErrorMessage());
}
......
......@@ -34,7 +34,7 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacke
*/
@RequiredArgsConstructor
@Getter
public final class OKPacket implements MySQLPacket {
public final class MySQLOKPacket implements MySQLPacket {
/**
* Header of OK packet.
......@@ -53,15 +53,15 @@ public final class OKPacket implements MySQLPacket {
private final String info;
public OKPacket(final int sequenceId) {
public MySQLOKPacket(final int sequenceId) {
this(sequenceId, 0L, 0L, 0, "");
}
public OKPacket(final int sequenceId, final long affectedRows, final long lastInsertId) {
public MySQLOKPacket(final int sequenceId, final long affectedRows, final long lastInsertId) {
this(sequenceId, affectedRows, lastInsertId, 0, "");
}
public OKPacket(final DatabaseSuccessPacket databaseSuccessPacket) {
public MySQLOKPacket(final DatabaseSuccessPacket databaseSuccessPacket) {
this(databaseSuccessPacket.getSequenceId(), databaseSuccessPacket.getAffectedRows(), databaseSuccessPacket.getLastInsertId(), 0, "");
}
......
......@@ -31,17 +31,17 @@ import lombok.Getter;
* @author zhangliang
*/
@Getter
public final class AuthPluginData {
public final class MySQLAuthPluginData {
private final byte[] authPluginDataPart1;
private final byte[] authPluginDataPart2;
public AuthPluginData() {
this(RandomGenerator.getInstance().generateRandomBytes(8), RandomGenerator.getInstance().generateRandomBytes(12));
public MySQLAuthPluginData() {
this(MySQLRandomGenerator.getInstance().generateRandomBytes(8), MySQLRandomGenerator.getInstance().generateRandomBytes(12));
}
public AuthPluginData(final byte[] authPluginDataPart1, final byte[] authPluginDataPart2) {
public MySQLAuthPluginData(final byte[] authPluginDataPart1, final byte[] authPluginDataPart2) {
this.authPluginDataPart1 = authPluginDataPart1;
this.authPluginDataPart2 = authPluginDataPart2;
}
......
......@@ -31,11 +31,11 @@ import java.util.Arrays;
* @author panjuan
*/
@Getter
public final class AuthenticationHandler {
public final class MySQLAuthenticationHandler {
private static final GlobalRegistry GLOBAL_REGISTRY = GlobalRegistry.getInstance();
private final AuthPluginData authPluginData = new AuthPluginData();
private final MySQLAuthPluginData mySQLAuthPluginData = new MySQLAuthPluginData();
/**
* Login.
......@@ -55,9 +55,9 @@ public final class AuthenticationHandler {
private byte[] getAuthCipherBytes(final String password) {
byte[] sha1Password = DigestUtils.sha1(password);
byte[] doubleSha1Password = DigestUtils.sha1(sha1Password);
byte[] concatBytes = new byte[authPluginData.getAuthPluginData().length + doubleSha1Password.length];
System.arraycopy(authPluginData.getAuthPluginData(), 0, concatBytes, 0, authPluginData.getAuthPluginData().length);
System.arraycopy(doubleSha1Password, 0, concatBytes, authPluginData.getAuthPluginData().length, doubleSha1Password.length);
byte[] concatBytes = new byte[mySQLAuthPluginData.getAuthPluginData().length + doubleSha1Password.length];
System.arraycopy(mySQLAuthPluginData.getAuthPluginData(), 0, concatBytes, 0, mySQLAuthPluginData.getAuthPluginData().length);
System.arraycopy(doubleSha1Password, 0, concatBytes, mySQLAuthPluginData.getAuthPluginData().length, doubleSha1Password.length);
byte[] sha1ConcatBytes = DigestUtils.sha1(concatBytes);
return xor(sha1Password, sha1ConcatBytes);
}
......
......@@ -26,9 +26,9 @@ import lombok.NoArgsConstructor;
* @author zhangliang
*/
@NoArgsConstructor(access = AccessLevel.NONE)
public final class ConnectionIdGenerator {
public final class MySQLConnectionIdGenerator {
private static final ConnectionIdGenerator INSTANCE = new ConnectionIdGenerator();
private static final MySQLConnectionIdGenerator INSTANCE = new MySQLConnectionIdGenerator();
private int currentId;
......@@ -37,7 +37,7 @@ public final class ConnectionIdGenerator {
*
* @return instance
*/
public static ConnectionIdGenerator getInstance() {
public static MySQLConnectionIdGenerator getInstance() {
return INSTANCE;
}
......
......@@ -33,7 +33,7 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacke
* @author zhangliang
* @author linjiaqi
*/
public final class HandshakePacket implements MySQLPacket {
public final class MySQLHandshakePacket implements MySQLPacket {
private final int protocolVersion = MySQLServerInfo.PROTOCOL_VERSION;
......@@ -52,15 +52,15 @@ public final class HandshakePacket implements MySQLPacket {
private final int connectionId;
@Getter
private final AuthPluginData authPluginData;
private final MySQLAuthPluginData mySQLAuthPluginData;
public HandshakePacket(final int connectionId, final AuthPluginData authPluginData) {
public MySQLHandshakePacket(final int connectionId, final MySQLAuthPluginData mySQLAuthPluginData) {
sequenceId = 0;
this.connectionId = connectionId;
this.authPluginData = authPluginData;
this.mySQLAuthPluginData = mySQLAuthPluginData;
}
public HandshakePacket(final MySQLPacketPayload payload) {
public MySQLHandshakePacket(final MySQLPacketPayload payload) {
sequenceId = payload.readInt1();
Preconditions.checkArgument(protocolVersion == payload.readInt1());
payload.readStringNul();
......@@ -73,7 +73,7 @@ public final class HandshakePacket implements MySQLPacket {
payload.readInt1();
payload.skipReserved(10);
byte[] authPluginDataPart2 = payload.readStringNulByBytes();
authPluginData = new AuthPluginData(authPluginDataPart1, authPluginDataPart2);
mySQLAuthPluginData = new MySQLAuthPluginData(authPluginDataPart1, authPluginDataPart2);
}
@Override
......@@ -81,13 +81,13 @@ public final class HandshakePacket implements MySQLPacket {
payload.writeInt1(protocolVersion);
payload.writeStringNul(serverVersion);
payload.writeInt4(connectionId);
payload.writeStringNul(new String(authPluginData.getAuthPluginDataPart1()));
payload.writeStringNul(new String(mySQLAuthPluginData.getAuthPluginDataPart1()));
payload.writeInt2(capabilityFlagsLower);
payload.writeInt1(MySQLServerInfo.CHARSET);
payload.writeInt2(mySQLStatusFlag.getValue());
payload.writeInt2(capabilityFlagsUpper);
payload.writeInt1(0);
payload.writeReserved(10);
payload.writeStringNul(new String(authPluginData.getAuthPluginDataPart2()));
payload.writeStringNul(new String(mySQLAuthPluginData.getAuthPluginDataPart2()));
}
}
......@@ -32,7 +32,7 @@ import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacke
* @author wangkai
*/
@RequiredArgsConstructor
public final class HandshakeResponse41Packet implements MySQLPacket {
public final class MySQLHandshakeResponse41Packet implements MySQLPacket {
@Getter
private final int sequenceId;
......@@ -52,7 +52,7 @@ public final class HandshakeResponse41Packet implements MySQLPacket {
@Getter
private final String database;
public HandshakeResponse41Packet(final MySQLPacketPayload payload) {
public MySQLHandshakeResponse41Packet(final MySQLPacketPayload payload) {
sequenceId = payload.readInt1();
capabilityFlags = payload.readInt4();
maxPacketSize = payload.readInt4();
......
......@@ -29,10 +29,10 @@ import java.util.Random;
* @author zhangliang
*/
@NoArgsConstructor(access = AccessLevel.NONE)
public final class RandomGenerator {
public final class MySQLRandomGenerator {
@Getter
private static RandomGenerator instance = new RandomGenerator();
private static MySQLRandomGenerator instance = new MySQLRandomGenerator();
private static final byte[] SEED = {
'a', 'b', 'e', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
......
......@@ -25,7 +25,7 @@ import org.apache.shardingsphere.shardingproxy.backend.communication.DatabaseCom
import org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connection.BackendConnection;
import org.apache.shardingsphere.shardingproxy.runtime.schema.LogicSchema;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.OKPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLOKPacket;
import org.apache.shardingsphere.transaction.core.TransactionType;
import org.junit.Before;
import org.junit.Test;
......@@ -54,7 +54,7 @@ public final class UnicastBackendHandlerTest {
@Before
public void setUp() {
MockGlobalRegistryUtil.setLogicSchemas("schema", 10);
setUnderlyingHandler(new CommandResponsePackets(new OKPacket(1)));
setUnderlyingHandler(new CommandResponsePackets(new MySQLOKPacket(1)));
}
@Test
......@@ -62,7 +62,7 @@ public final class UnicastBackendHandlerTest {
UnicastBackendHandler backendHandler = new UnicastBackendHandler(1, "show variable like %s", backendConnection, DatabaseType.MySQL);
setDatabaseCommunicationEngine(backendHandler);
CommandResponsePackets actual = backendHandler.execute();
assertThat(actual.getHeadPacket(), instanceOf(OKPacket.class));
assertThat(actual.getHeadPacket(), instanceOf(MySQLOKPacket.class));
backendHandler.execute();
}
......@@ -72,7 +72,7 @@ public final class UnicastBackendHandlerTest {
UnicastBackendHandler backendHandler = new UnicastBackendHandler(1, "show variable like %s", backendConnection, DatabaseType.MySQL);
setDatabaseCommunicationEngine(backendHandler);
CommandResponsePackets actual = backendHandler.execute();
assertThat(actual.getHeadPacket(), instanceOf(OKPacket.class));
assertThat(actual.getHeadPacket(), instanceOf(MySQLOKPacket.class));
backendHandler.execute();
}
......
......@@ -25,10 +25,10 @@ import lombok.SneakyThrows;
import org.apache.shardingsphere.core.constant.properties.ShardingProperties;
import org.apache.shardingsphere.core.rule.Authentication;
import org.apache.shardingsphere.shardingproxy.runtime.GlobalRegistry;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.ErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.OKPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.ConnectionIdGenerator;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.HandshakePacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLOKPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.MySQLConnectionIdGenerator;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.MySQLHandshakePacket;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
......@@ -54,9 +54,9 @@ public final class MySQLFrontendHandlerTest {
@Before
@SneakyThrows
public void resetConnectionIdGenerator() {
Field field = ConnectionIdGenerator.class.getDeclaredField("currentId");
Field field = MySQLConnectionIdGenerator.class.getDeclaredField("currentId");
field.setAccessible(true);
field.set(ConnectionIdGenerator.getInstance(), 0);
field.set(MySQLConnectionIdGenerator.getInstance(), 0);
mysqlFrontendHandler = new MySQLFrontendHandler();
}
......@@ -68,7 +68,7 @@ public final class MySQLFrontendHandlerTest {
when(channel.id()).thenReturn(channelId);
when(context.channel()).thenReturn(channel);
mysqlFrontendHandler.handshake(context);
verify(context).writeAndFlush(isA(HandshakePacket.class));
verify(context).writeAndFlush(isA(MySQLHandshakePacket.class));
}
@Test
......@@ -76,7 +76,7 @@ public final class MySQLFrontendHandlerTest {
Authentication authentication = new Authentication("", "");
setAuthentication(authentication);
mysqlFrontendHandler.auth(context, mock(ByteBuf.class));
verify(context).writeAndFlush(isA(OKPacket.class));
verify(context).writeAndFlush(isA(MySQLOKPacket.class));
}
@Test
......@@ -84,7 +84,7 @@ public final class MySQLFrontendHandlerTest {
Authentication authentication = new Authentication("root", "root");
setAuthentication(authentication);
mysqlFrontendHandler.auth(context, mock(ByteBuf.class));
verify(context).writeAndFlush(isA(ErrPacket.class));
verify(context).writeAndFlush(isA(MySQLErrPacket.class));
}
@Test
......
......@@ -17,7 +17,7 @@
package org.apache.shardingsphere.shardingproxy.transport.mysql.packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.AllMySQLCommandPacketTests;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.AllMySQLMySQLCommandPacketTests;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.AllMySQLGenericPacketTests;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.handshake.AllMySQLHandshakeTests;
import org.junit.runner.RunWith;
......@@ -29,7 +29,7 @@ import org.junit.runners.Suite.SuiteClasses;
MySQLPacketPayloadTest.class,
AllMySQLGenericPacketTests.class,
AllMySQLHandshakeTests.class,
AllMySQLCommandPacketTests.class
AllMySQLMySQLCommandPacketTests.class
})
public final class AllMySQLPacketTests {
}
......@@ -17,51 +17,51 @@
package org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.admin.UnsupportedCommandPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.admin.initdb.ComInitDbPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.admin.ping.ComPingPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.admin.quit.ComQuitPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.ColumnDefinition41PacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.FieldCountPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.admin.MySQLUnsupportedCommandPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.admin.initdb.MySQLComInitDbPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.admin.ping.MySQLComPingPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.admin.quit.MySQLComQuitPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.MySQLColumnDefinition41PacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.MySQLFieldCountPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.QueryResponsePacketsTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.BinaryStatementRegistryTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.close.ComStmtClosePacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.execute.BinaryResultSetRowPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.execute.ComStmtExecutePacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.execute.NullBitmapTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.MySQLMySQLBinaryStatementRegistryTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.close.MySQLComStmtClosePacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.execute.MySQLBinaryResultSetRowPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.execute.MySQLComStmtExecutePacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.execute.MySQLNullBitmapTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.execute.protocol.AllMySQLBinaryProtocolTests;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.prepare.ComStmtPrepareOKPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.prepare.ComStmtPreparePacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.TextResultSetRowPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.fieldlist.ComFieldListPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.query.ComQueryPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.prepare.MySQLComStmtPrepareMySQLOKPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.prepare.MySQLComStmtPreparePacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.MySQLTextResultSetRowPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.fieldlist.MySQLComFieldListPacketTest;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.query.MySQLComQueryPacketTest;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({
CommandPacketTypeTest.class,
CommandPacketFactoryTest.class,
MySQLMySQLCommandPacketTypeTest.class,
MySQLMySQLCommandPacketFactoryTest.class,
CommandResponsePacketsTest.class,
QueryResponsePacketsTest.class,
BinaryStatementRegistryTest.class,
NullBitmapTest.class,
MySQLMySQLBinaryStatementRegistryTest.class,
MySQLNullBitmapTest.class,
AllMySQLBinaryProtocolTests.class,
FieldCountPacketTest.class,
ColumnDefinition41PacketTest.class,
TextResultSetRowPacketTest.class,
ComFieldListPacketTest.class,
ComQueryPacketTest.class,
ComStmtPreparePacketTest.class,
ComStmtPrepareOKPacketTest.class,
BinaryResultSetRowPacketTest.class,
ComStmtExecutePacketTest.class,
ComStmtClosePacketTest.class,
ComInitDbPacketTest.class,
ComPingPacketTest.class,
ComQuitPacketTest.class,
UnsupportedCommandPacketTest.class
MySQLFieldCountPacketTest.class,
MySQLColumnDefinition41PacketTest.class,
MySQLTextResultSetRowPacketTest.class,
MySQLComFieldListPacketTest.class,
MySQLComQueryPacketTest.class,
MySQLComStmtPreparePacketTest.class,
MySQLComStmtPrepareMySQLOKPacketTest.class,
MySQLBinaryResultSetRowPacketTest.class,
MySQLComStmtExecutePacketTest.class,
MySQLComStmtClosePacketTest.class,
MySQLComInitDbPacketTest.class,
MySQLComPingPacketTest.class,
MySQLComQuitPacketTest.class,
MySQLUnsupportedCommandPacketTest.class
})
public final class AllMySQLCommandPacketTests {
public final class AllMySQLMySQLCommandPacketTests {
}
......@@ -19,7 +19,7 @@ package org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.DatabasePacket;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.OKPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLOKPacket;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
......@@ -29,8 +29,8 @@ public final class CommandResponsePacketsTest {
@Test
public void assertGetHeadPacket() {
DatabasePacket packet1 = new OKPacket(1);
DatabasePacket packet2 = new OKPacket(2);
DatabasePacket packet1 = new MySQLOKPacket(1);
DatabasePacket packet2 = new MySQLOKPacket(2);
CommandResponsePackets actual = new CommandResponsePackets(packet1);
actual.getPackets().add(packet2);
assertThat(actual.getHeadPacket(), is(packet1));
......
......@@ -22,15 +22,15 @@ import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public final class CommandPacketTypeTest {
public final class MySQLMySQLCommandPacketTypeTest {
@Test
public void assertGetValue() {
assertThat(CommandPacketType.valueOf(CommandPacketType.COM_SLEEP.getValue()), is(CommandPacketType.COM_SLEEP));
assertThat(MySQLCommandPacketType.valueOf(MySQLCommandPacketType.COM_SLEEP.getValue()), is(MySQLCommandPacketType.COM_SLEEP));
}
@Test(expected = IllegalArgumentException.class)
public void assertGetValueWithIllegalArgument() {
CommandPacketType.valueOf(-1);
MySQLCommandPacketType.valueOf(-1);
}
}
......@@ -20,9 +20,9 @@ package org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.a
import com.google.common.base.Optional;
import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLServerErrorCode;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.ErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLErrPacket;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
......@@ -33,25 +33,25 @@ import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
@RunWith(MockitoJUnitRunner.class)
public final class UnsupportedCommandPacketTest {
public final class MySQLUnsupportedCommandPacketTest {
@Mock
private MySQLPacketPayload payload;
@Test
public void assertExecute() {
Optional<CommandResponsePackets> actual = new UnsupportedCommandPacket(1, CommandPacketType.COM_SLEEP).execute();
Optional<CommandResponsePackets> actual = new MySQLUnsupportedCommandPacket(1, MySQLCommandPacketType.COM_SLEEP).execute();
assertTrue(actual.isPresent());
assertThat(actual.get().getPackets().size(), is(1));
assertThat(actual.get().getHeadPacket().getSequenceId(), is(2));
assertThat(((ErrPacket) actual.get().getHeadPacket()).getErrorCode(), is(MySQLServerErrorCode.ER_UNSUPPORTED_COMMAND.getErrorCode()));
assertThat(((ErrPacket) actual.get().getHeadPacket()).getSqlState(), is(MySQLServerErrorCode.ER_UNSUPPORTED_COMMAND.getSqlState()));
assertThat(((ErrPacket) actual.get().getHeadPacket()).getErrorMessage(), is(String.format(MySQLServerErrorCode.ER_UNSUPPORTED_COMMAND.getErrorMessage(), CommandPacketType.COM_SLEEP.name())));
assertThat(((MySQLErrPacket) actual.get().getHeadPacket()).getErrorCode(), is(MySQLServerErrorCode.ER_UNSUPPORTED_COMMAND.getErrorCode()));
assertThat(((MySQLErrPacket) actual.get().getHeadPacket()).getSqlState(), is(MySQLServerErrorCode.ER_UNSUPPORTED_COMMAND.getSqlState()));
assertThat(((MySQLErrPacket) actual.get().getHeadPacket()).getErrorMessage(), is(String.format(MySQLServerErrorCode.ER_UNSUPPORTED_COMMAND.getErrorMessage(), MySQLCommandPacketType.COM_SLEEP.name())));
}
@Test
public void assertWrite() {
UnsupportedCommandPacket actual = new UnsupportedCommandPacket(1, CommandPacketType.COM_SLEEP);
MySQLUnsupportedCommandPacket actual = new MySQLUnsupportedCommandPacket(1, MySQLCommandPacketType.COM_SLEEP);
assertThat(actual.getSequenceId(), is(1));
actual.write(payload);
}
......
......@@ -25,10 +25,10 @@ import org.apache.shardingsphere.shardingproxy.runtime.GlobalRegistry;
import org.apache.shardingsphere.shardingproxy.runtime.schema.LogicSchema;
import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLServerErrorCode;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.ErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.OKPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLOKPacket;
import org.apache.shardingsphere.transaction.core.TransactionType;
import org.junit.Before;
import org.junit.Test;
......@@ -48,7 +48,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class ComInitDbPacketTest {
public final class MySQLComInitDbPacketTest {
@Mock
private MySQLPacketPayload payload;
......@@ -67,36 +67,36 @@ public final class ComInitDbPacketTest {
@Test
public void assertExecuteWithValidSchemaName() {
when(payload.readStringEOF()).thenReturn(ShardingConstant.LOGIC_SCHEMA_NAME);
Optional<CommandResponsePackets> actual = new ComInitDbPacket(1, payload, backendConnection).execute();
Optional<CommandResponsePackets> actual = new MySQLComInitDbPacket(1, payload, backendConnection).execute();
assertTrue(actual.isPresent());
assertThat(actual.get().getPackets().size(), is(1));
assertThat(actual.get().getHeadPacket().getSequenceId(), is(2));
assertThat(((OKPacket) actual.get().getHeadPacket()).getAffectedRows(), is(0L));
assertThat(((OKPacket) actual.get().getHeadPacket()).getLastInsertId(), is(0L));
assertThat(((OKPacket) actual.get().getHeadPacket()).getWarnings(), is(0));
assertThat(((OKPacket) actual.get().getHeadPacket()).getInfo(), is(""));
assertThat(((MySQLOKPacket) actual.get().getHeadPacket()).getAffectedRows(), is(0L));
assertThat(((MySQLOKPacket) actual.get().getHeadPacket()).getLastInsertId(), is(0L));
assertThat(((MySQLOKPacket) actual.get().getHeadPacket()).getWarnings(), is(0));
assertThat(((MySQLOKPacket) actual.get().getHeadPacket()).getInfo(), is(""));
}
@Test
public void assertExecuteWithInvalidSchemaName() {
String invalidSchema = "invalid_schema";
when(payload.readStringEOF()).thenReturn(invalidSchema);
Optional<CommandResponsePackets> actual = new ComInitDbPacket(1, payload, backendConnection).execute();
Optional<CommandResponsePackets> actual = new MySQLComInitDbPacket(1, payload, backendConnection).execute();
assertTrue(actual.isPresent());
assertThat(actual.get().getPackets().size(), is(1));
assertThat(actual.get().getHeadPacket().getSequenceId(), is(2));
assertThat(((ErrPacket) actual.get().getHeadPacket()).getErrorCode(), is(MySQLServerErrorCode.ER_BAD_DB_ERROR.getErrorCode()));
assertThat(((ErrPacket) actual.get().getHeadPacket()).getSqlState(), is(MySQLServerErrorCode.ER_BAD_DB_ERROR.getSqlState()));
assertThat(((ErrPacket) actual.get().getHeadPacket()).getErrorMessage(), is(String.format(MySQLServerErrorCode.ER_BAD_DB_ERROR.getErrorMessage(), invalidSchema)));
assertThat(((MySQLErrPacket) actual.get().getHeadPacket()).getErrorCode(), is(MySQLServerErrorCode.ER_BAD_DB_ERROR.getErrorCode()));
assertThat(((MySQLErrPacket) actual.get().getHeadPacket()).getSqlState(), is(MySQLServerErrorCode.ER_BAD_DB_ERROR.getSqlState()));
assertThat(((MySQLErrPacket) actual.get().getHeadPacket()).getErrorMessage(), is(String.format(MySQLServerErrorCode.ER_BAD_DB_ERROR.getErrorMessage(), invalidSchema)));
}
@Test
public void assertWrite() {
when(payload.readStringEOF()).thenReturn(ShardingConstant.LOGIC_SCHEMA_NAME);
ComInitDbPacket actual = new ComInitDbPacket(1, payload, backendConnection);
MySQLComInitDbPacket actual = new MySQLComInitDbPacket(1, payload, backendConnection);
assertThat(actual.getSequenceId(), is(1));
actual.write(payload);
verify(payload).writeInt1(CommandPacketType.COM_INIT_DB.getValue());
verify(payload).writeInt1(MySQLCommandPacketType.COM_INIT_DB.getValue());
verify(payload).writeStringEOF(ShardingConstant.LOGIC_SCHEMA_NAME);
}
}
......@@ -19,9 +19,9 @@ package org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.a
import com.google.common.base.Optional;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.OKPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLOKPacket;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
......@@ -33,28 +33,28 @@ import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.verify;
@RunWith(MockitoJUnitRunner.class)
public final class ComPingPacketTest {
public final class MySQLComPingPacketTest {
@Mock
private MySQLPacketPayload payload;
@Test
public void assertExecute() {
Optional<CommandResponsePackets> actual = new ComPingPacket(1).execute();
Optional<CommandResponsePackets> actual = new MySQLComPingPacket(1).execute();
assertTrue(actual.isPresent());
assertThat(actual.get().getPackets().size(), is(1));
assertThat(actual.get().getHeadPacket().getSequenceId(), is(2));
assertThat(((OKPacket) actual.get().getHeadPacket()).getAffectedRows(), is(0L));
assertThat(((OKPacket) actual.get().getHeadPacket()).getLastInsertId(), is(0L));
assertThat(((OKPacket) actual.get().getHeadPacket()).getWarnings(), is(0));
assertThat(((OKPacket) actual.get().getHeadPacket()).getInfo(), is(""));
assertThat(((MySQLOKPacket) actual.get().getHeadPacket()).getAffectedRows(), is(0L));
assertThat(((MySQLOKPacket) actual.get().getHeadPacket()).getLastInsertId(), is(0L));
assertThat(((MySQLOKPacket) actual.get().getHeadPacket()).getWarnings(), is(0));
assertThat(((MySQLOKPacket) actual.get().getHeadPacket()).getInfo(), is(""));
}
@Test
public void assertWrite() {
ComPingPacket actual = new ComPingPacket(1);
MySQLComPingPacket actual = new MySQLComPingPacket(1);
assertThat(actual.getSequenceId(), is(1));
actual.write(payload);
verify(payload).writeInt1(CommandPacketType.COM_PING.getValue());
verify(payload).writeInt1(MySQLCommandPacketType.COM_PING.getValue());
}
}
......@@ -19,9 +19,9 @@ package org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.a
import com.google.common.base.Optional;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.OKPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLOKPacket;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
......@@ -33,28 +33,28 @@ import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.verify;
@RunWith(MockitoJUnitRunner.class)
public final class ComQuitPacketTest {
public final class MySQLComQuitPacketTest {
@Mock
private MySQLPacketPayload payload;
@Test
public void assertExecute() {
Optional<CommandResponsePackets> actual = new ComQuitPacket(1).execute();
Optional<CommandResponsePackets> actual = new MySQLComQuitPacket(1).execute();
assertTrue(actual.isPresent());
assertThat(actual.get().getPackets().size(), is(1));
assertThat(actual.get().getHeadPacket().getSequenceId(), is(2));
assertThat(((OKPacket) actual.get().getHeadPacket()).getAffectedRows(), is(0L));
assertThat(((OKPacket) actual.get().getHeadPacket()).getLastInsertId(), is(0L));
assertThat(((OKPacket) actual.get().getHeadPacket()).getWarnings(), is(0));
assertThat(((OKPacket) actual.get().getHeadPacket()).getInfo(), is(""));
assertThat(((MySQLOKPacket) actual.get().getHeadPacket()).getAffectedRows(), is(0L));
assertThat(((MySQLOKPacket) actual.get().getHeadPacket()).getLastInsertId(), is(0L));
assertThat(((MySQLOKPacket) actual.get().getHeadPacket()).getWarnings(), is(0));
assertThat(((MySQLOKPacket) actual.get().getHeadPacket()).getInfo(), is(""));
}
@Test
public void assertWrite() {
ComQuitPacket actual = new ComQuitPacket(1);
MySQLComQuitPacket actual = new MySQLComQuitPacket(1);
assertThat(actual.getSequenceId(), is(1));
actual.write(payload);
verify(payload).writeInt1(CommandPacketType.COM_QUIT.getValue());
verify(payload).writeInt1(MySQLCommandPacketType.COM_QUIT.getValue());
}
}
......@@ -37,7 +37,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class ColumnDefinition41PacketTest {
public final class MySQLColumnDefinition41PacketTest {
@Mock
private ResultSetMetaData resultSetMetaData;
......@@ -53,7 +53,7 @@ public final class ColumnDefinition41PacketTest {
when(resultSetMetaData.getColumnName(1)).thenReturn("id");
when(resultSetMetaData.getColumnDisplaySize(1)).thenReturn(10);
when(resultSetMetaData.getColumnType(1)).thenReturn(Types.INTEGER);
ColumnDefinition41Packet actual = new ColumnDefinition41Packet(1, resultSetMetaData, 1);
MySQLColumnDefinition41Packet actual = new MySQLColumnDefinition41Packet(1, resultSetMetaData, 1);
assertThat(actual.getSequenceId(), is(1));
actual.write(payload);
verifyWrite();
......@@ -66,7 +66,7 @@ public final class ColumnDefinition41PacketTest {
when(payload.readInt4()).thenReturn(10);
when(payload.readIntLenenc()).thenReturn((long) 0x0c);
when(payload.readStringLenenc()).thenReturn("def", ShardingConstant.LOGIC_SCHEMA_NAME, "tbl", "tbl", "id", "id");
ColumnDefinition41Packet actual = new ColumnDefinition41Packet(payload);
MySQLColumnDefinition41Packet actual = new MySQLColumnDefinition41Packet(payload);
assertThat(actual.getSequenceId(), is(1));
actual.write(payload);
verifyWrite();
......
......@@ -29,7 +29,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class FieldCountPacketTest {
public final class MySQLFieldCountPacketTest {
@Mock
private MySQLPacketPayload payload;
......@@ -37,7 +37,7 @@ public final class FieldCountPacketTest {
@Test
public void assertWrite() {
when(payload.readInt1()).thenReturn(1, 3);
FieldCountPacket actual = new FieldCountPacket(payload);
MySQLFieldCountPacket actual = new MySQLFieldCountPacket(payload);
assertThat(actual.getSequenceId(), is(1));
actual.write(payload);
verify(payload).writeIntLenenc(3);
......
......@@ -25,7 +25,7 @@ import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public final class BinaryStatementRegistryTest {
public final class MySQLMySQLBinaryStatementRegistryTest {
private final String sql = "SELECT * FROM tbl WHERE id=?";
......@@ -37,17 +37,17 @@ public final class BinaryStatementRegistryTest {
@Test
public void assertRegisterIfAbsent() {
assertThat(BinaryStatementRegistry.getInstance().register(sql, 1), is(1));
BinaryStatement actual = BinaryStatementRegistry.getInstance().getBinaryStatement(1);
assertThat(MySQLBinaryStatementRegistry.getInstance().register(sql, 1), is(1));
MySQLBinaryStatement actual = MySQLBinaryStatementRegistry.getInstance().getBinaryStatement(1);
assertThat(actual.getSql(), is(sql));
assertThat(actual.getParametersCount(), is(1));
}
@Test
public void assertRegisterIfPresent() {
assertThat(BinaryStatementRegistry.getInstance().register(sql, 1), is(1));
assertThat(BinaryStatementRegistry.getInstance().register(sql, 1), is(1));
BinaryStatement actual = BinaryStatementRegistry.getInstance().getBinaryStatement(1);
assertThat(MySQLBinaryStatementRegistry.getInstance().register(sql, 1), is(1));
assertThat(MySQLBinaryStatementRegistry.getInstance().register(sql, 1), is(1));
MySQLBinaryStatement actual = MySQLBinaryStatementRegistry.getInstance().getBinaryStatement(1);
assertThat(actual.getSql(), is(sql));
assertThat(actual.getParametersCount(), is(1));
}
......
......@@ -31,7 +31,7 @@ import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class ComStmtClosePacketTest {
public final class MySQLComStmtClosePacketTest {
@Mock
private MySQLPacketPayload payload;
......@@ -39,14 +39,14 @@ public final class ComStmtClosePacketTest {
@Test
public void assertExecute() {
when(payload.readInt4()).thenReturn(1);
Optional<CommandResponsePackets> actual = new ComStmtClosePacket(1, payload).execute();
Optional<CommandResponsePackets> actual = new MySQLComStmtClosePacket(1, payload).execute();
assertFalse(actual.isPresent());
}
@Test
public void assertWrite() {
when(payload.readInt4()).thenReturn(1);
ComStmtClosePacket actual = new ComStmtClosePacket(1, payload);
MySQLComStmtClosePacket actual = new MySQLComStmtClosePacket(1, payload);
assertThat(actual.getSequenceId(), is(1));
actual.write(payload);
}
......
......@@ -31,14 +31,14 @@ import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.verify;
@RunWith(MockitoJUnitRunner.class)
public final class BinaryResultSetRowPacketTest {
public final class MySQLBinaryResultSetRowPacketTest {
@Mock
private MySQLPacketPayload payload;
@Test
public void assertWrite() {
BinaryResultSetRowPacket actual = new BinaryResultSetRowPacket(1, 2, Arrays.<Object>asList("value", null), Arrays.asList(MySQLColumnType.MYSQL_TYPE_STRING, MySQLColumnType.MYSQL_TYPE_STRING));
MySQLBinaryResultSetRowPacket actual = new MySQLBinaryResultSetRowPacket(1, 2, Arrays.<Object>asList("value", null), Arrays.asList(MySQLColumnType.MYSQL_TYPE_STRING, MySQLColumnType.MYSQL_TYPE_STRING));
assertThat(actual.getSequenceId(), is(1));
assertThat(actual.getData(), is(Arrays.<Object>asList("value", null)));
actual.write(payload);
......
......@@ -25,7 +25,7 @@ import org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connec
import org.apache.shardingsphere.shardingproxy.transport.common.packet.DatabasePacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.BinaryStatementRegistry;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.MySQLBinaryStatementRegistry;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.fixture.BinaryStatementRegistryUtil;
import org.junit.After;
import org.junit.Before;
......@@ -49,7 +49,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class ComStmtExecutePacketTest {
public final class MySQLComStmtExecutePacketTest {
@Mock
private MySQLPacketPayload payload;
......@@ -65,10 +65,10 @@ public final class ComStmtExecutePacketTest {
@Test
public void assertWrite() throws SQLException {
BinaryStatementRegistry.getInstance().register("SELECT id FROM tbl WHERE id=?", 1);
MySQLBinaryStatementRegistry.getInstance().register("SELECT id FROM tbl WHERE id=?", 1);
when(payload.readInt4()).thenReturn(1);
when(payload.readInt1()).thenReturn(0, 1);
ComStmtExecutePacket actual = new ComStmtExecutePacket(1, payload, backendConnection);
MySQLQueryComStmtExecutePacket actual = new MySQLQueryComStmtExecutePacket(1, payload, backendConnection);
assertThat(actual.getSequenceId(), is(1));
actual.write(payload);
verify(payload, times(2)).writeInt4(1);
......@@ -79,7 +79,7 @@ public final class ComStmtExecutePacketTest {
@Test
public void assertExecute() throws SQLException {
BinaryStatementRegistry.getInstance().register("SELECT id FROM tbl WHERE id=?", 1);
MySQLBinaryStatementRegistry.getInstance().register("SELECT id FROM tbl WHERE id=?", 1);
DatabaseCommunicationEngine databaseCommunicationEngine = mock(DatabaseCommunicationEngine.class);
when(payload.readInt4()).thenReturn(1);
when(payload.readInt1()).thenReturn(0, 1);
......@@ -87,7 +87,7 @@ public final class ComStmtExecutePacketTest {
when(databaseCommunicationEngine.execute()).thenReturn(expectedCommandResponsePackets);
when(databaseCommunicationEngine.next()).thenReturn(true, false);
when(databaseCommunicationEngine.getResultValue()).thenReturn(new ResultPacket(2, Collections.<Object>singletonList(99999L), 1, Collections.singletonList(Types.BIGINT)));
ComStmtExecutePacket packet = new ComStmtExecutePacket(1, payload, backendConnection);
MySQLQueryComStmtExecutePacket packet = new MySQLQueryComStmtExecutePacket(1, payload, backendConnection);
setBackendHandler(packet, databaseCommunicationEngine);
Optional<CommandResponsePackets> actualCommandResponsePackets = packet.execute();
assertTrue(actualCommandResponsePackets.isPresent());
......@@ -95,13 +95,13 @@ public final class ComStmtExecutePacketTest {
assertTrue(packet.next());
DatabasePacket actualResultValue = packet.getResultValue();
assertThat(actualResultValue.getSequenceId(), is(2));
assertThat(((BinaryResultSetRowPacket) actualResultValue).getData(), is(Collections.<Object>singletonList(99999L)));
assertThat(((MySQLBinaryResultSetRowPacket) actualResultValue).getData(), is(Collections.<Object>singletonList(99999L)));
assertFalse(packet.next());
}
@SneakyThrows
private void setBackendHandler(final ComStmtExecutePacket packet, final DatabaseCommunicationEngine databaseCommunicationEngine) {
Field field = ComStmtExecutePacket.class.getDeclaredField("databaseCommunicationEngine");
private void setBackendHandler(final MySQLQueryComStmtExecutePacket packet, final DatabaseCommunicationEngine databaseCommunicationEngine) {
Field field = MySQLQueryComStmtExecutePacket.class.getDeclaredField("databaseCommunicationEngine");
field.setAccessible(true);
field.set(packet, databaseCommunicationEngine);
}
......
......@@ -24,25 +24,25 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
public final class NullBitmapTest {
public final class MySQLNullBitmapTest {
@Test
public void assertGetNullBitmap() {
NullBitmap actual = new NullBitmap(8, 0);
MySQLNullBitmap actual = new MySQLNullBitmap(8, 0);
assertThat(actual.getNullBitmap().length, is(1));
actual = new NullBitmap(9, 0);
actual = new MySQLNullBitmap(9, 0);
assertThat(actual.getNullBitmap().length, is(2));
}
@Test
public void assertIsNotNullParameter() {
NullBitmap actual = new NullBitmap(8, 0);
MySQLNullBitmap actual = new MySQLNullBitmap(8, 0);
assertFalse(actual.isNullParameter(0));
}
@Test
public void assertIsNullParameter() {
NullBitmap actual = new NullBitmap(8, 0);
MySQLNullBitmap actual = new MySQLNullBitmap(8, 0);
actual.setNullBit(0);
assertTrue(actual.isNullParameter(0));
}
......
......@@ -23,16 +23,16 @@ import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({
BinaryProtocolValueFactoryTest.class,
StringLenencBinaryProtocolValueTest.class,
Int8BinaryProtocolValueTest.class,
Int4BinaryProtocolValueTest.class,
Int2BinaryProtocolValueTest.class,
Int1BinaryProtocolValueTest.class,
DoubleBinaryProtocolValueTest.class,
FloatBinaryProtocolValueTest.class,
DateBinaryProtocolValueTest.class,
TimeBinaryProtocolValueTest.class
MySQLMySQLBinaryProtocolValueFactoryTest.class,
MySQLStringLenencBinaryProtocolValueTest.class,
MySQLInt8BinaryProtocolValueTest.class,
MySQLInt4BinaryProtocolValueTest.class,
MySQLInt2BinaryProtocolValueTest.class,
MySQLInt1BinaryProtocolValueTest.class,
MySQLDoubleBinaryProtocolValueTest.class,
MySQLFloatBinaryProtocolValueTest.class,
MySQLDateBinaryProtocolValueTest.class,
MySQLTimeBinaryProtocolValueTest.class
})
public final class AllMySQLBinaryProtocolTests {
}
......@@ -33,14 +33,14 @@ import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class DateBinaryProtocolValueTest {
public final class MySQLDateBinaryProtocolValueTest {
@Mock
private MySQLPacketPayload payload;
@Test(expected = SQLFeatureNotSupportedException.class)
public void assertReadWithZeroByte() throws SQLException {
new DateBinaryProtocolValue().read(payload);
new MySQLDateBinaryProtocolValue().read(payload);
}
@Test
......@@ -48,7 +48,7 @@ public final class DateBinaryProtocolValueTest {
when(payload.readInt1()).thenReturn(4, 12, 31);
when(payload.readInt2()).thenReturn(2018);
Calendar actual = Calendar.getInstance();
actual.setTimeInMillis(((Timestamp) new DateBinaryProtocolValue().read(payload)).getTime());
actual.setTimeInMillis(((Timestamp) new MySQLDateBinaryProtocolValue().read(payload)).getTime());
assertThat(actual.get(Calendar.YEAR), is(2018));
assertThat(actual.get(Calendar.MONTH), is(Calendar.DECEMBER));
assertThat(actual.get(Calendar.DAY_OF_MONTH), is(31));
......@@ -59,7 +59,7 @@ public final class DateBinaryProtocolValueTest {
when(payload.readInt1()).thenReturn(7, 12, 31, 10, 59, 0);
when(payload.readInt2()).thenReturn(2018);
Calendar actual = Calendar.getInstance();
actual.setTimeInMillis(((Timestamp) new DateBinaryProtocolValue().read(payload)).getTime());
actual.setTimeInMillis(((Timestamp) new MySQLDateBinaryProtocolValue().read(payload)).getTime());
assertThat(actual.get(Calendar.YEAR), is(2018));
assertThat(actual.get(Calendar.MONTH), is(Calendar.DECEMBER));
assertThat(actual.get(Calendar.DAY_OF_MONTH), is(31));
......@@ -74,7 +74,7 @@ public final class DateBinaryProtocolValueTest {
when(payload.readInt2()).thenReturn(2018);
when(payload.readInt4()).thenReturn(500);
Calendar actual = Calendar.getInstance();
actual.setTimeInMillis(((Timestamp) new DateBinaryProtocolValue().read(payload)).getTime());
actual.setTimeInMillis(((Timestamp) new MySQLDateBinaryProtocolValue().read(payload)).getTime());
assertThat(actual.get(Calendar.YEAR), is(2018));
assertThat(actual.get(Calendar.MONTH), is(Calendar.DECEMBER));
assertThat(actual.get(Calendar.DAY_OF_MONTH), is(31));
......@@ -86,6 +86,6 @@ public final class DateBinaryProtocolValueTest {
@Test(expected = IllegalArgumentException.class)
public void assertReadWithIllegalArgument() throws SQLException {
when(payload.readInt1()).thenReturn(100);
new DateBinaryProtocolValue().read(payload);
new MySQLDateBinaryProtocolValue().read(payload);
}
}
......@@ -30,7 +30,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class DoubleBinaryProtocolValueTest {
public final class MySQLDoubleBinaryProtocolValueTest {
@Mock
private ByteBuf byteBuf;
......@@ -38,12 +38,12 @@ public final class DoubleBinaryProtocolValueTest {
@Test
public void assertRead() {
when(byteBuf.readDoubleLE()).thenReturn(1d);
assertThat(new DoubleBinaryProtocolValue().read(new MySQLPacketPayload(byteBuf)), CoreMatchers.<Object>is(1d));
assertThat(new MySQLDoubleBinaryProtocolValue().read(new MySQLPacketPayload(byteBuf)), CoreMatchers.<Object>is(1d));
}
@Test
public void assertWrite() {
new DoubleBinaryProtocolValue().write(new MySQLPacketPayload(byteBuf), 1d);
new MySQLDoubleBinaryProtocolValue().write(new MySQLPacketPayload(byteBuf), 1d);
verify(byteBuf).writeDoubleLE(1d);
}
}
......@@ -30,7 +30,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class FloatBinaryProtocolValueTest {
public final class MySQLFloatBinaryProtocolValueTest {
@Mock
private ByteBuf byteBuf;
......@@ -38,12 +38,12 @@ public final class FloatBinaryProtocolValueTest {
@Test
public void assertRead() {
when(byteBuf.readFloatLE()).thenReturn(1f);
assertThat(new FloatBinaryProtocolValue().read(new MySQLPacketPayload(byteBuf)), CoreMatchers.<Object>is(1f));
assertThat(new MySQLFloatBinaryProtocolValue().read(new MySQLPacketPayload(byteBuf)), CoreMatchers.<Object>is(1f));
}
@Test
public void assertWrite() {
new FloatBinaryProtocolValue().write(new MySQLPacketPayload(byteBuf), 1f);
new MySQLFloatBinaryProtocolValue().write(new MySQLPacketPayload(byteBuf), 1f);
verify(byteBuf).writeFloatLE(1f);
}
}
......@@ -29,7 +29,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class Int1BinaryProtocolValueTest {
public final class MySQLInt1BinaryProtocolValueTest {
@Mock
private MySQLPacketPayload payload;
......@@ -37,12 +37,12 @@ public final class Int1BinaryProtocolValueTest {
@Test
public void assertRead() {
when(payload.readInt1()).thenReturn(1);
assertThat(new Int1BinaryProtocolValue().read(payload), CoreMatchers.<Object>is(1));
assertThat(new MySQLInt1BinaryProtocolValue().read(payload), CoreMatchers.<Object>is(1));
}
@Test
public void assertWrite() {
new Int1BinaryProtocolValue().write(payload, 1);
new MySQLInt1BinaryProtocolValue().write(payload, 1);
verify(payload).writeInt1(1);
}
}
......@@ -29,7 +29,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class Int2BinaryProtocolValueTest {
public final class MySQLInt2BinaryProtocolValueTest {
@Mock
private MySQLPacketPayload payload;
......@@ -37,12 +37,12 @@ public final class Int2BinaryProtocolValueTest {
@Test
public void assertRead() {
when(payload.readInt2()).thenReturn(1);
assertThat(new Int2BinaryProtocolValue().read(payload), CoreMatchers.<Object>is(1));
assertThat(new MySQLInt2BinaryProtocolValue().read(payload), CoreMatchers.<Object>is(1));
}
@Test
public void assertWrite() {
new Int2BinaryProtocolValue().write(payload, 1);
new MySQLInt2BinaryProtocolValue().write(payload, 1);
verify(payload).writeInt2(1);
}
}
......@@ -29,7 +29,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class Int4BinaryProtocolValueTest {
public final class MySQLInt4BinaryProtocolValueTest {
@Mock
private MySQLPacketPayload payload;
......@@ -37,12 +37,12 @@ public final class Int4BinaryProtocolValueTest {
@Test
public void assertRead() {
when(payload.readInt4()).thenReturn(1);
assertThat(new Int4BinaryProtocolValue().read(payload), CoreMatchers.<Object>is(1));
assertThat(new MySQLInt4BinaryProtocolValue().read(payload), CoreMatchers.<Object>is(1));
}
@Test
public void assertWrite() {
new Int4BinaryProtocolValue().write(payload, 1);
new MySQLInt4BinaryProtocolValue().write(payload, 1);
verify(payload).writeInt4(1);
}
}
......@@ -31,7 +31,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class Int8BinaryProtocolValueTest {
public final class MySQLInt8BinaryProtocolValueTest {
@Mock
private MySQLPacketPayload payload;
......@@ -39,18 +39,18 @@ public final class Int8BinaryProtocolValueTest {
@Test
public void assertRead() {
when(payload.readInt8()).thenReturn(1L);
assertThat(new Int8BinaryProtocolValue().read(payload), CoreMatchers.<Object>is(1L));
assertThat(new MySQLInt8BinaryProtocolValue().read(payload), CoreMatchers.<Object>is(1L));
}
@Test
public void assertWriteWithLong() {
new Int8BinaryProtocolValue().write(payload, 1L);
new MySQLInt8BinaryProtocolValue().write(payload, 1L);
verify(payload).writeInt8(1L);
}
@Test
public void assertWriteWithBigDecimal() {
new Int8BinaryProtocolValue().write(payload, new BigDecimal(1L));
new MySQLInt8BinaryProtocolValue().write(payload, new BigDecimal(1L));
verify(payload).writeInt8(1L);
}
}
......@@ -23,135 +23,135 @@ import org.junit.Test;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.junit.Assert.assertThat;
public final class BinaryProtocolValueFactoryTest {
public final class MySQLMySQLBinaryProtocolValueFactoryTest {
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeString() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_STRING), instanceOf(StringLenencBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_STRING), instanceOf(MySQLStringLenencBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeVarchar() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_VARCHAR), instanceOf(StringLenencBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_VARCHAR), instanceOf(MySQLStringLenencBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeVarString() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_VAR_STRING), instanceOf(StringLenencBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_VAR_STRING), instanceOf(MySQLStringLenencBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeEnum() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_ENUM), instanceOf(StringLenencBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_ENUM), instanceOf(MySQLStringLenencBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeSet() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_SET), instanceOf(StringLenencBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_SET), instanceOf(MySQLStringLenencBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeLongBlob() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_LONG_BLOB), instanceOf(StringLenencBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_LONG_BLOB), instanceOf(MySQLStringLenencBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeMediumBlob() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_MEDIUM_BLOB), instanceOf(StringLenencBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_MEDIUM_BLOB), instanceOf(MySQLStringLenencBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeBlob() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_BLOB), instanceOf(StringLenencBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_BLOB), instanceOf(MySQLStringLenencBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeTinyBlob() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_TINY_BLOB), instanceOf(StringLenencBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_TINY_BLOB), instanceOf(MySQLStringLenencBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeGeometry() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_GEOMETRY), instanceOf(StringLenencBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_GEOMETRY), instanceOf(MySQLStringLenencBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeBit() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_BIT), instanceOf(StringLenencBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_BIT), instanceOf(MySQLStringLenencBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeDecimal() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_DECIMAL), instanceOf(StringLenencBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_DECIMAL), instanceOf(MySQLStringLenencBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeNewDecimal() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_NEWDECIMAL), instanceOf(StringLenencBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_NEWDECIMAL), instanceOf(MySQLStringLenencBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeLongLong() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_LONGLONG), instanceOf(Int8BinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_LONGLONG), instanceOf(MySQLInt8BinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeLong() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_LONG), instanceOf(Int4BinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_LONG), instanceOf(MySQLInt4BinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeInt24() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_INT24), instanceOf(Int4BinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_INT24), instanceOf(MySQLInt4BinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeShort() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_SHORT), instanceOf(Int2BinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_SHORT), instanceOf(MySQLInt2BinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeYear() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_YEAR), instanceOf(Int2BinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_YEAR), instanceOf(MySQLInt2BinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeTiny() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_TINY), instanceOf(Int1BinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_TINY), instanceOf(MySQLInt1BinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeDouble() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_DOUBLE), instanceOf(DoubleBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_DOUBLE), instanceOf(MySQLDoubleBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeFloat() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_FLOAT), instanceOf(FloatBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_FLOAT), instanceOf(MySQLFloatBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeDate() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_DATE), instanceOf(DateBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_DATE), instanceOf(MySQLDateBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeDatetime() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_DATETIME), instanceOf(DateBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_DATETIME), instanceOf(MySQLDateBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeTimestamp() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_TIMESTAMP), instanceOf(DateBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_TIMESTAMP), instanceOf(MySQLDateBinaryProtocolValue.class));
}
@Test
public void assertGetBinaryProtocolValueWithMySQLTypeTime() {
assertThat(BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_TIME), instanceOf(TimeBinaryProtocolValue.class));
assertThat(MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_TIME), instanceOf(MySQLTimeBinaryProtocolValue.class));
}
@Test(expected = IllegalArgumentException.class)
public void assertGetBinaryProtocolValueWithUnsupportedType() {
BinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_NULL);
MySQLBinaryProtocolValueFactory.getBinaryProtocolValue(MySQLColumnType.MYSQL_TYPE_NULL);
}
}
......@@ -29,7 +29,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class StringLenencBinaryProtocolValueTest {
public final class MySQLStringLenencBinaryProtocolValueTest {
@Mock
private MySQLPacketPayload payload;
......@@ -37,12 +37,12 @@ public final class StringLenencBinaryProtocolValueTest {
@Test
public void assertReadStringLenenc() {
when(payload.readStringLenenc()).thenReturn("value");
assertThat(new StringLenencBinaryProtocolValue().read(payload), is((Object) "value"));
assertThat(new MySQLStringLenencBinaryProtocolValue().read(payload), is((Object) "value"));
}
@Test
public void assertWriteStringLenenc() {
new StringLenencBinaryProtocolValue().write(payload, "value");
new MySQLStringLenencBinaryProtocolValue().write(payload, "value");
verify(payload).writeStringLenenc("value");
}
}
......@@ -32,21 +32,21 @@ import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class TimeBinaryProtocolValueTest {
public final class MySQLTimeBinaryProtocolValueTest {
@Mock
private MySQLPacketPayload payload;
@Test
public void assertReadWithZeroByte() {
assertThat(new TimeBinaryProtocolValue().read(payload), CoreMatchers.<Object>is(new Timestamp(0)));
assertThat(new MySQLTimeBinaryProtocolValue().read(payload), CoreMatchers.<Object>is(new Timestamp(0)));
}
@Test
public void assertReadWithEightBytes() {
when(payload.readInt1()).thenReturn(8, 0, 10, 59, 0);
Calendar actual = Calendar.getInstance();
actual.setTimeInMillis(((Timestamp) new TimeBinaryProtocolValue().read(payload)).getTime());
actual.setTimeInMillis(((Timestamp) new MySQLTimeBinaryProtocolValue().read(payload)).getTime());
assertThat(actual.get(Calendar.HOUR_OF_DAY), is(10));
assertThat(actual.get(Calendar.MINUTE), is(59));
assertThat(actual.get(Calendar.SECOND), is(0));
......@@ -56,7 +56,7 @@ public final class TimeBinaryProtocolValueTest {
public void assertReadWithTwelveBytes() {
when(payload.readInt1()).thenReturn(12, 0, 10, 59, 0);
Calendar actual = Calendar.getInstance();
actual.setTimeInMillis(((Timestamp) new TimeBinaryProtocolValue().read(payload)).getTime());
actual.setTimeInMillis(((Timestamp) new MySQLTimeBinaryProtocolValue().read(payload)).getTime());
assertThat(actual.get(Calendar.HOUR_OF_DAY), is(10));
assertThat(actual.get(Calendar.MINUTE), is(59));
assertThat(actual.get(Calendar.SECOND), is(0));
......@@ -65,6 +65,6 @@ public final class TimeBinaryProtocolValueTest {
@Test(expected = IllegalArgumentException.class)
public void assertReadWithIllegalArgument() {
when(payload.readInt1()).thenReturn(100);
new TimeBinaryProtocolValue().read(payload);
new MySQLTimeBinaryProtocolValue().read(payload);
}
}
......@@ -20,7 +20,7 @@ package org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.q
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.SneakyThrows;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.BinaryStatementRegistry;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.MySQLBinaryStatementRegistry;
import java.lang.reflect.Field;
import java.util.Map;
......@@ -30,18 +30,18 @@ import java.util.concurrent.atomic.AtomicInteger;
public final class BinaryStatementRegistryUtil {
/**
* Reset {@code BinaryStatementRegistry}.
* Reset {@code MySQLBinaryStatementRegistry}.
*/
@SneakyThrows
public static void reset() {
Field statementIdAssignerField = BinaryStatementRegistry.class.getDeclaredField("statementIdAssigner");
Field statementIdAssignerField = MySQLBinaryStatementRegistry.class.getDeclaredField("statementIdAssigner");
statementIdAssignerField.setAccessible(true);
((Map) statementIdAssignerField.get(BinaryStatementRegistry.getInstance())).clear();
Field binaryStatementsField = BinaryStatementRegistry.class.getDeclaredField("binaryStatements");
((Map) statementIdAssignerField.get(MySQLBinaryStatementRegistry.getInstance())).clear();
Field binaryStatementsField = MySQLBinaryStatementRegistry.class.getDeclaredField("binaryStatements");
binaryStatementsField.setAccessible(true);
((Map) binaryStatementsField.get(BinaryStatementRegistry.getInstance())).clear();
Field sequenceField = BinaryStatementRegistry.class.getDeclaredField("sequence");
((Map) binaryStatementsField.get(MySQLBinaryStatementRegistry.getInstance())).clear();
Field sequenceField = MySQLBinaryStatementRegistry.class.getDeclaredField("sequence");
sequenceField.setAccessible(true);
((AtomicInteger) sequenceField.get(BinaryStatementRegistry.getInstance())).set(0);
((AtomicInteger) sequenceField.get(MySQLBinaryStatementRegistry.getInstance())).set(0);
}
}
......@@ -29,14 +29,14 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@RunWith(MockitoJUnitRunner.class)
public final class ComStmtPrepareOKPacketTest {
public final class MySQLComStmtPrepareMySQLOKPacketTest {
@Mock
private MySQLPacketPayload payload;
@Test
public void assertWrite() {
ComStmtPrepareOKPacket actual = new ComStmtPrepareOKPacket(1, 1, 1, 1, 0);
MySQLComStmtPrepareOKPacket actual = new MySQLComStmtPrepareOKPacket(1, 1, 1, 1, 0);
assertThat(actual.getSequenceId(), is(1));
actual.write(payload);
verify(payload).writeInt1(0x00);
......
......@@ -35,9 +35,9 @@ import org.apache.shardingsphere.shardingproxy.transport.common.packet.DatabaseP
import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLColumnType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.ColumnDefinition41Packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.MySQLColumnDefinition41Packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.binary.fixture.BinaryStatementRegistryUtil;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.EofPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLEofPacket;
import org.apache.shardingsphere.transaction.core.TransactionType;
import org.hamcrest.CoreMatchers;
import org.junit.After;
......@@ -61,7 +61,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class ComStmtPreparePacketTest {
public final class MySQLComStmtPreparePacketTest {
@Mock
private MySQLPacketPayload payload;
......@@ -96,7 +96,7 @@ public final class ComStmtPreparePacketTest {
@Test
public void assertWrite() {
when(payload.readStringEOF()).thenReturn("SELECT id FROM tbl WHERE id=?");
ComStmtPreparePacket actual = new ComStmtPreparePacket(1, backendConnection, payload);
MySQLComStmtPreparePacket actual = new MySQLComStmtPreparePacket(1, backendConnection, payload);
assertThat(actual.getSequenceId(), is(1));
actual.write(payload);
verify(payload).writeStringEOF("SELECT id FROM tbl WHERE id=?");
......@@ -112,14 +112,14 @@ public final class ComStmtPreparePacketTest {
assertTrue(actual.isPresent());
assertThat(actual.get().getPackets().size(), is(3));
Iterator<DatabasePacket> packets = actual.get().getPackets().iterator();
ComStmtPrepareOKPacket comStmtPrepareOKPacket = (ComStmtPrepareOKPacket) packets.next();
assertThat(comStmtPrepareOKPacket.getSequenceId(), is(1));
ColumnDefinition41Packet columnDefinition41Packet = (ColumnDefinition41Packet) packets.next();
assertThat(columnDefinition41Packet.getSequenceId(), is(2));
assertThat(columnDefinition41Packet.getName(), is(""));
assertThat(columnDefinition41Packet.getMySQLColumnType(), is(MySQLColumnType.MYSQL_TYPE_VARCHAR));
EofPacket eofPacket = (EofPacket) packets.next();
assertThat(eofPacket.getSequenceId(), is(3));
MySQLComStmtPrepareOKPacket mySQLComStmtPrepareOKPacket = (MySQLComStmtPrepareOKPacket) packets.next();
assertThat(mySQLComStmtPrepareOKPacket.getSequenceId(), is(1));
MySQLColumnDefinition41Packet mySQLColumnDefinition41Packet = (MySQLColumnDefinition41Packet) packets.next();
assertThat(mySQLColumnDefinition41Packet.getSequenceId(), is(2));
assertThat(mySQLColumnDefinition41Packet.getName(), is(""));
assertThat(mySQLColumnDefinition41Packet.getMySQLColumnType(), is(MySQLColumnType.MYSQL_TYPE_VARCHAR));
MySQLEofPacket mySQLEofPacket = (MySQLEofPacket) packets.next();
assertThat(mySQLEofPacket.getSequenceId(), is(3));
}
@Test
......@@ -130,7 +130,7 @@ public final class ComStmtPreparePacketTest {
Optional<CommandResponsePackets> actual = getComStmtPreparePacketWithMockedSQLParsingEngine("SELECT 1", selectStatement).execute();
assertTrue(actual.isPresent());
assertThat(actual.get().getPackets().size(), is(1));
assertThat(actual.get().getHeadPacket(), CoreMatchers.<DatabasePacket>instanceOf(ComStmtPrepareOKPacket.class));
assertThat(actual.get().getHeadPacket(), CoreMatchers.<DatabasePacket>instanceOf(MySQLComStmtPrepareOKPacket.class));
assertThat(actual.get().getHeadPacket().getSequenceId(), is(1));
}
......@@ -141,7 +141,7 @@ public final class ComStmtPreparePacketTest {
Optional<CommandResponsePackets> actual = getComStmtPreparePacketWithMockedSQLParsingEngine("INSERT INTO tbl VALUES(1)", insertStatement).execute();
assertTrue(actual.isPresent());
assertThat(actual.get().getPackets().size(), is(1));
assertThat(actual.get().getHeadPacket(), CoreMatchers.<DatabasePacket>instanceOf(ComStmtPrepareOKPacket.class));
assertThat(actual.get().getHeadPacket(), CoreMatchers.<DatabasePacket>instanceOf(MySQLComStmtPrepareOKPacket.class));
assertThat(actual.get().getHeadPacket().getSequenceId(), is(1));
}
......@@ -151,17 +151,17 @@ public final class ComStmtPreparePacketTest {
Optional<CommandResponsePackets> actual = getComStmtPreparePacketWithMockedSQLParsingEngine("SHOW TABLES", showTablesStatement).execute();
assertTrue(actual.isPresent());
assertThat(actual.get().getPackets().size(), is(1));
assertThat(actual.get().getHeadPacket(), CoreMatchers.<DatabasePacket>instanceOf(ComStmtPrepareOKPacket.class));
assertThat(actual.get().getHeadPacket(), CoreMatchers.<DatabasePacket>instanceOf(MySQLComStmtPrepareOKPacket.class));
assertThat(actual.get().getHeadPacket().getSequenceId(), is(1));
}
@SneakyThrows
private ComStmtPreparePacket getComStmtPreparePacketWithMockedSQLParsingEngine(final String sql, final SQLStatement sqlStatement) {
private MySQLComStmtPreparePacket getComStmtPreparePacketWithMockedSQLParsingEngine(final String sql, final SQLStatement sqlStatement) {
when(payload.readStringEOF()).thenReturn(sql);
ComStmtPreparePacket result = new ComStmtPreparePacket(1, backendConnection, payload);
MySQLComStmtPreparePacket result = new MySQLComStmtPreparePacket(1, backendConnection, payload);
SQLParsingEngine sqlParsingEngine = mock(SQLParsingEngine.class);
when(sqlParsingEngine.parse(true)).thenReturn(sqlStatement);
Field field = ComStmtPreparePacket.class.getDeclaredField("sqlParsingEngine");
Field field = MySQLComStmtPreparePacket.class.getDeclaredField("sqlParsingEngine");
field.setAccessible(true);
field.set(result, sqlParsingEngine);
return result;
......
......@@ -29,7 +29,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class TextResultSetRowPacketTest {
public final class MySQLTextResultSetRowPacketTest {
@Mock
private MySQLPacketPayload payload;
......@@ -38,7 +38,7 @@ public final class TextResultSetRowPacketTest {
public void assertWrite() {
when(payload.readInt1()).thenReturn(1);
when(payload.readStringLenenc()).thenReturn("value_a", null, "value_c");
TextResultSetRowPacket actual = new TextResultSetRowPacket(payload, 3);
MySQLTextResultSetRowPacket actual = new MySQLTextResultSetRowPacket(payload, 3);
assertThat(actual.getSequenceId(), is(1));
actual.write(payload);
verify(payload).writeStringLenenc("value_a");
......
......@@ -29,12 +29,12 @@ import org.apache.shardingsphere.shardingproxy.transport.common.packet.DatabaseP
import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLColumnType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.constant.MySQLServerErrorCode;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.ColumnDefinition41Packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.FieldCountPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.EofPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.ErrPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.MySQLColumnDefinition41Packet;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.MySQLFieldCountPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLEofPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.generic.MySQLErrPacket;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
......@@ -55,7 +55,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class ComFieldListPacketTest {
public final class MySQLComFieldListPacketTest {
@Mock
private MySQLPacketPayload payload;
......@@ -83,10 +83,10 @@ public final class ComFieldListPacketTest {
public void assertWrite() {
when(payload.readStringNul()).thenReturn("tbl");
when(payload.readStringEOF()).thenReturn("-");
ComFieldListPacket actual = new ComFieldListPacket(1, payload, backendConnection);
MySQLComFieldListPacket actual = new MySQLComFieldListPacket(1, payload, backendConnection);
assertThat(actual.getSequenceId(), is(1));
actual.write(payload);
verify(payload).writeInt1(CommandPacketType.COM_FIELD_LIST.getValue());
verify(payload).writeInt1(MySQLCommandPacketType.COM_FIELD_LIST.getValue());
verify(payload).writeStringNul("tbl");
verify(payload).writeStringEOF("-");
}
......@@ -97,24 +97,24 @@ public final class ComFieldListPacketTest {
when(payload.readStringEOF()).thenReturn("-");
when(databaseCommunicationEngine.next()).thenReturn(true, false);
when(databaseCommunicationEngine.getResultValue()).thenReturn(new ResultPacket(1, Collections.<Object>singletonList("id"), 1, Collections.singletonList(Types.VARCHAR)));
when(databaseCommunicationEngine.execute()).thenReturn(new CommandResponsePackets(new FieldCountPacket(1, 1)));
ComFieldListPacket packet = new ComFieldListPacket(1, payload, backendConnection);
when(databaseCommunicationEngine.execute()).thenReturn(new CommandResponsePackets(new MySQLFieldCountPacket(1, 1)));
MySQLComFieldListPacket packet = new MySQLComFieldListPacket(1, payload, backendConnection);
setBackendHandler(packet);
Optional<CommandResponsePackets> actual = packet.execute();
assertTrue(actual.isPresent());
assertThat(actual.get().getPackets().size(), is(2));
Iterator<DatabasePacket> databasePackets = actual.get().getPackets().iterator();
assertColumnDefinition41Packet((ColumnDefinition41Packet) databasePackets.next());
assertEofPacket((EofPacket) databasePackets.next());
assertColumnDefinition41Packet((MySQLColumnDefinition41Packet) databasePackets.next());
assertEofPacket((MySQLEofPacket) databasePackets.next());
}
private void assertColumnDefinition41Packet(final ColumnDefinition41Packet actual) {
private void assertColumnDefinition41Packet(final MySQLColumnDefinition41Packet actual) {
assertThat(actual.getSequenceId(), is(1));
assertThat(actual.getName(), is("id"));
assertThat(actual.getMySQLColumnType(), is(MySQLColumnType.MYSQL_TYPE_VARCHAR));
}
private void assertEofPacket(final EofPacket actual) {
private void assertEofPacket(final MySQLEofPacket actual) {
assertThat(actual.getSequenceId(), is(2));
}
......@@ -122,9 +122,9 @@ public final class ComFieldListPacketTest {
public void assertExecuteWhenFailure() throws SQLException {
when(payload.readStringNul()).thenReturn("tbl");
when(payload.readStringEOF()).thenReturn("-");
CommandResponsePackets expected = new CommandResponsePackets(new ErrPacket(1, MySQLServerErrorCode.ER_STD_UNKNOWN_EXCEPTION, "unknown"));
CommandResponsePackets expected = new CommandResponsePackets(new MySQLErrPacket(1, MySQLServerErrorCode.ER_STD_UNKNOWN_EXCEPTION, "unknown"));
when(databaseCommunicationEngine.execute()).thenReturn(expected);
ComFieldListPacket packet = new ComFieldListPacket(1, payload, backendConnection);
MySQLComFieldListPacket packet = new MySQLComFieldListPacket(1, payload, backendConnection);
setBackendHandler(packet);
Optional<CommandResponsePackets> actual = packet.execute();
assertTrue(actual.isPresent());
......@@ -132,8 +132,8 @@ public final class ComFieldListPacketTest {
}
@SneakyThrows
private void setBackendHandler(final ComFieldListPacket packet) {
Field field = ComFieldListPacket.class.getDeclaredField("databaseCommunicationEngine");
private void setBackendHandler(final MySQLComFieldListPacket packet) {
Field field = MySQLComFieldListPacket.class.getDeclaredField("databaseCommunicationEngine");
field.setAccessible(true);
field.set(packet, databaseCommunicationEngine);
}
......
......@@ -30,9 +30,9 @@ import org.apache.shardingsphere.shardingproxy.transport.common.packet.DatabaseP
import org.apache.shardingsphere.shardingproxy.transport.common.packet.command.CommandResponsePackets;
import org.apache.shardingsphere.shardingproxy.transport.common.packet.generic.DatabaseSuccessPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.MySQLPacketPayload;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.FieldCountPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.TextResultSetRowPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.MySQLCommandPacketType;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.MySQLFieldCountPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.MySQLTextResultSetRowPacket;
import org.apache.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.query.fixture.ShardingTransactionManagerFixture;
import org.apache.shardingsphere.transaction.core.TransactionOperationType;
import org.apache.shardingsphere.transaction.core.TransactionType;
......@@ -60,7 +60,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class ComQueryPacketTest {
public final class MySQLComQueryPacketTest {
@Mock
private MySQLPacketPayload payload;
......@@ -90,38 +90,38 @@ public final class ComQueryPacketTest {
@Test
public void assertWrite() {
ComQueryPacket actual = new ComQueryPacket(1, "SELECT id FROM tbl");
MySQLComPacketQuery actual = new MySQLComPacketQuery(1, "SELECT id FROM tbl");
assertThat(actual.getSequenceId(), is(1));
actual.write(payload);
verify(payload).writeInt1(CommandPacketType.COM_QUERY.getValue());
verify(payload).writeInt1(MySQLCommandPacketType.COM_QUERY.getValue());
verify(payload).writeStringEOF("SELECT id FROM tbl");
}
@Test
public void assertExecuteWithoutTransaction() throws SQLException {
when(payload.readStringEOF()).thenReturn("SELECT id FROM tbl");
ComQueryPacket packet = new ComQueryPacket(1, payload, backendConnection);
FieldCountPacket expectedFieldCountPacket = new FieldCountPacket(1, 1);
setBackendHandler(packet, expectedFieldCountPacket);
MySQLComPacketQuery packet = new MySQLComPacketQuery(1, payload, backendConnection);
MySQLFieldCountPacket expectedMySQLFieldCountPacket = new MySQLFieldCountPacket(1, 1);
setBackendHandler(packet, expectedMySQLFieldCountPacket);
Optional<CommandResponsePackets> actual = packet.execute();
assertTrue(actual.isPresent());
assertThat(actual.get().getPackets().size(), is(1));
assertThat(actual.get().getPackets().iterator().next(), is((DatabasePacket) expectedFieldCountPacket));
assertThat(actual.get().getPackets().iterator().next(), is((DatabasePacket) expectedMySQLFieldCountPacket));
assertTrue(packet.next());
assertThat(packet.getResultValue().getSequenceId(), is(2));
assertThat(((TextResultSetRowPacket) packet.getResultValue()).getData(), is(Collections.<Object>singletonList(99999L)));
assertThat(((MySQLTextResultSetRowPacket) packet.getResultValue()).getData(), is(Collections.<Object>singletonList(99999L)));
assertFalse(packet.next());
}
@SneakyThrows
private void setBackendHandler(final ComQueryPacket packet, final FieldCountPacket expectedFieldCountPacket) {
private void setBackendHandler(final MySQLComPacketQuery packet, final MySQLFieldCountPacket expectedMySQLFieldCountPacket) {
TextProtocolBackendHandler textProtocolBackendHandler = mock(TextProtocolBackendHandler.class);
when(textProtocolBackendHandler.next()).thenReturn(true, false);
when(textProtocolBackendHandler.getResultValue()).thenReturn(new ResultPacket(1, Collections.<Object>singletonList("id"), 1, Collections.singletonList(Types.VARCHAR)));
when(textProtocolBackendHandler.execute()).thenReturn(new CommandResponsePackets(expectedFieldCountPacket));
when(textProtocolBackendHandler.execute()).thenReturn(new CommandResponsePackets(expectedMySQLFieldCountPacket));
when(textProtocolBackendHandler.next()).thenReturn(true, false);
when(textProtocolBackendHandler.getResultValue()).thenReturn(new ResultPacket(2, Collections.<Object>singletonList(99999L), 1, Collections.singletonList(Types.BIGINT)));
Field field = ComQueryPacket.class.getDeclaredField("textProtocolBackendHandler");
Field field = MySQLComPacketQuery.class.getDeclaredField("textProtocolBackendHandler");
field.setAccessible(true);
field.set(packet, textProtocolBackendHandler);
}
......@@ -129,7 +129,7 @@ public final class ComQueryPacketTest {
@Test
public void assertExecuteTCLWithLocalTransaction() {
when(payload.readStringEOF()).thenReturn("COMMIT");
ComQueryPacket packet = new ComQueryPacket(1, payload, backendConnection);
MySQLComPacketQuery packet = new MySQLComPacketQuery(1, payload, backendConnection);
backendConnection.getStateHandler().getAndSetStatus(ConnectionStatus.TRANSACTION);
Optional<CommandResponsePackets> actual = packet.execute();
assertTrue(actual.isPresent());
......@@ -140,7 +140,7 @@ public final class ComQueryPacketTest {
public void assertExecuteTCLWithXATransaction() {
backendConnection.setTransactionType(TransactionType.XA);
when(payload.readStringEOF()).thenReturn("ROLLBACK");
ComQueryPacket packet = new ComQueryPacket(1, payload, backendConnection);
MySQLComPacketQuery packet = new MySQLComPacketQuery(1, payload, backendConnection);
backendConnection.getStateHandler().getAndSetStatus(ConnectionStatus.TRANSACTION);
Optional<CommandResponsePackets> actual = packet.execute();
assertTrue(actual.isPresent());
......@@ -152,7 +152,7 @@ public final class ComQueryPacketTest {
public void assertExecuteRollbackWithXATransaction() {
backendConnection.setTransactionType(TransactionType.XA);
when(payload.readStringEOF()).thenReturn("COMMIT");
ComQueryPacket packet = new ComQueryPacket(1, payload, backendConnection);
MySQLComPacketQuery packet = new MySQLComPacketQuery(1, payload, backendConnection);
backendConnection.getStateHandler().getAndSetStatus(ConnectionStatus.TRANSACTION);
Optional<CommandResponsePackets> actual = packet.execute();
assertTrue(actual.isPresent());
......
......@@ -23,9 +23,9 @@ import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({
OKPacketTest.class,
EofPacketTest.class,
ErrPacketTest.class
MySQLOKPacketTest.class,
MySQLEofPacketTest.class,
MySQLErrPacketTest.class
})
public final class AllMySQLGenericPacketTests {
}
......@@ -29,14 +29,14 @@ import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.verify;
@RunWith(MockitoJUnitRunner.class)
public final class EofPacketTest {
public final class MySQLEofPacketTest {
@Mock
private MySQLPacketPayload payload;
@Test
public void assertNewEofPacketWithSequenceId() {
EofPacket actual = new EofPacket(1);
MySQLEofPacket actual = new MySQLEofPacket(1);
assertThat(actual.getSequenceId(), is(1));
assertThat(actual.getWarnings(), is(0));
assertThat(actual.getStatusFlags(), is(MySQLStatusFlag.SERVER_STATUS_AUTOCOMMIT.getValue()));
......@@ -44,8 +44,8 @@ public final class EofPacketTest {
@Test
public void assertWrite() {
new EofPacket(1).write(payload);
verify(payload).writeInt1(EofPacket.HEADER);
new MySQLEofPacket(1).write(payload);
verify(payload).writeInt1(MySQLEofPacket.HEADER);
verify(payload).writeInt2(0);
verify(payload).writeInt2(MySQLStatusFlag.SERVER_STATUS_AUTOCOMMIT.getValue());
}
......
......@@ -31,14 +31,14 @@ import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.verify;
@RunWith(MockitoJUnitRunner.class)
public final class ErrPacketTest {
public final class MySQLErrPacketTest {
@Mock
private MySQLPacketPayload payload;
@Test
public void assertNewErrPacketWithServerErrorCode() {
ErrPacket actual = new ErrPacket(1, MySQLServerErrorCode.ER_ACCESS_DENIED_ERROR, "root", "localhost", "root");
MySQLErrPacket actual = new MySQLErrPacket(1, MySQLServerErrorCode.ER_ACCESS_DENIED_ERROR, "root", "localhost", "root");
assertThat(actual.getSequenceId(), is(1));
assertThat(actual.getErrorCode(), is(MySQLServerErrorCode.ER_ACCESS_DENIED_ERROR.getErrorCode()));
assertThat(actual.getSqlState(), is(MySQLServerErrorCode.ER_ACCESS_DENIED_ERROR.getSqlState()));
......@@ -47,7 +47,7 @@ public final class ErrPacketTest {
@Test
public void assertNewErrPacketWithException() {
ErrPacket actual = new ErrPacket(1, new SQLException("no reason", "X999", -1));
MySQLErrPacket actual = new MySQLErrPacket(1, new SQLException("no reason", "X999", -1));
assertThat(actual.getSequenceId(), is(1));
assertThat(actual.getErrorCode(), is(-1));
assertThat(actual.getSqlState(), is("X999"));
......@@ -56,8 +56,8 @@ public final class ErrPacketTest {
@Test
public void assertWrite() {
new ErrPacket(1, new SQLException("no reason", "X999", -1)).write(payload);
verify(payload).writeInt1(ErrPacket.HEADER);
new MySQLErrPacket(1, new SQLException("no reason", "X999", -1)).write(payload);
verify(payload).writeInt1(MySQLErrPacket.HEADER);
verify(payload).writeInt2(-1);
verify(payload).writeStringFix("#");
verify(payload).writeStringFix("X999");
......
......@@ -29,14 +29,14 @@ import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.verify;
@RunWith(MockitoJUnitRunner.class)
public final class OKPacketTest {
public final class MySQLOKPacketTest {
@Mock
private MySQLPacketPayload packetPayload;
@Test
public void assertNewOKPacketWithSequenceId() {
OKPacket actual = new OKPacket(1);
MySQLOKPacket actual = new MySQLOKPacket(1);
assertThat(actual.getSequenceId(), is(1));
assertThat(actual.getAffectedRows(), is(0L));
assertThat(actual.getLastInsertId(), is(0L));
......@@ -46,7 +46,7 @@ public final class OKPacketTest {
@Test
public void assertNewOKPacketWithAffectedRowsAndLastInsertId() {
OKPacket actual = new OKPacket(1, 100L, 9999L);
MySQLOKPacket actual = new MySQLOKPacket(1, 100L, 9999L);
assertThat(actual.getSequenceId(), is(1));
assertThat(actual.getAffectedRows(), is(100L));
assertThat(actual.getLastInsertId(), is(9999L));
......@@ -56,8 +56,8 @@ public final class OKPacketTest {
@Test
public void assertWrite() {
new OKPacket(1, 100L, 9999L).write(packetPayload);
verify(packetPayload).writeInt1(OKPacket.HEADER);
new MySQLOKPacket(1, 100L, 9999L).write(packetPayload);
verify(packetPayload).writeInt1(MySQLOKPacket.HEADER);
verify(packetPayload).writeIntLenenc(100L);
verify(packetPayload).writeIntLenenc(9999L);
verify(packetPayload).writeInt2(MySQLStatusFlag.SERVER_STATUS_AUTOCOMMIT.getValue());
......
......@@ -23,12 +23,12 @@ import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({
RandomGeneratorTest.class,
AuthenticationHandlerTest.class,
AuthPluginDataTest.class,
ConnectionIdGeneratorTest.class,
HandshakePacketTest.class,
HandshakeResponse41PacketTest.class
MySQLRandomGeneratorTest.class,
MySQLAuthenticationHandlerTest.class,
MySQLAuthPluginDataTest.class,
MySQLConnectionIdGeneratorTest.class,
MySQLHandshakePacketTest.class,
MySQLHandshakeResponse41PacketTest.class
})
public final class AllMySQLHandshakeTests {
}
......@@ -23,13 +23,13 @@ import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public final class AuthPluginDataTest {
public final class MySQLAuthPluginDataTest {
@Test
public void assertGetAuthPluginData() {
byte[] actualPart1 = {106, 105, 55, 122, 117, 98, 115, 109};
byte[] actualPart2 = {68, 102, 53, 122, 65, 49, 84, 79, 85, 115, 116, 113};
AuthPluginData actual = new AuthPluginData(actualPart1, actualPart2);
MySQLAuthPluginData actual = new MySQLAuthPluginData(actualPart1, actualPart2);
assertThat(actual.getAuthPluginDataPart1(), is(actualPart1));
assertThat(actual.getAuthPluginDataPart2(), is(actualPart2));
assertThat(actual.getAuthPluginData(), is(Bytes.concat(actualPart1, actualPart2)));
......@@ -37,7 +37,7 @@ public final class AuthPluginDataTest {
@Test
public void assertGetAuthPluginDataWithoutArguments() {
AuthPluginData actual = new AuthPluginData();
MySQLAuthPluginData actual = new MySQLAuthPluginData();
assertThat(actual.getAuthPluginDataPart1().length, is(8));
assertThat(actual.getAuthPluginDataPart2().length, is(12));
assertThat(actual.getAuthPluginData().length, is(20));
......
......@@ -30,9 +30,9 @@ import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
public final class AuthenticationHandlerTest {
public final class MySQLAuthenticationHandlerTest {
private final AuthenticationHandler authenticationHandler = new AuthenticationHandler();
private final MySQLAuthenticationHandler mySQLAuthenticationHandler = new MySQLAuthenticationHandler();
private final byte[] part1 = {84, 85, 115, 77, 68, 116, 85, 78};
......@@ -45,24 +45,24 @@ public final class AuthenticationHandlerTest {
@SneakyThrows
private void initAuthPluginDataForAuthenticationHandler() {
AuthPluginData authPluginData = new AuthPluginData(part1, part2);
Field field = AuthenticationHandler.class.getDeclaredField("authPluginData");
MySQLAuthPluginData mySQLAuthPluginData = new MySQLAuthPluginData(part1, part2);
Field field = MySQLAuthenticationHandler.class.getDeclaredField("authPluginData");
field.setAccessible(true);
field.set(authenticationHandler, authPluginData);
field.set(mySQLAuthenticationHandler, mySQLAuthPluginData);
}
@Test
public void assertLoginWithPassword() {
setAuthentication(new Authentication("root", "root"));
byte[] authResponse = {-27, 89, -20, -27, 65, -120, -64, -101, 86, -100, -108, -100, 6, -125, -37, 117, 14, -43, 95, -113};
assertTrue(authenticationHandler.login("root", authResponse));
assertTrue(mySQLAuthenticationHandler.login("root", authResponse));
}
@Test
public void assertLoginWithoutPassword() {
setAuthentication(new Authentication("root", null));
byte[] authResponse = {-27, 89, -20, -27, 65, -120, -64, -101, 86, -100, -108, -100, 6, -125, -37, 117, 14, -43, 95, -113};
assertTrue(authenticationHandler.login("root", authResponse));
assertTrue(mySQLAuthenticationHandler.login("root", authResponse));
}
@SneakyThrows
......@@ -74,6 +74,6 @@ public final class AuthenticationHandlerTest {
@Test
public void assertGetAuthPluginData() {
assertThat(authenticationHandler.getAuthPluginData().getAuthPluginData(), is(Bytes.concat(part1, part2)));
assertThat(mySQLAuthenticationHandler.getMySQLAuthPluginData().getAuthPluginData(), is(Bytes.concat(part1, part2)));
}
}
......@@ -28,7 +28,7 @@ import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
public final class ConnectionIdGeneratorTest {
public final class MySQLConnectionIdGeneratorTest {
@Before
@After
......@@ -38,19 +38,19 @@ public final class ConnectionIdGeneratorTest {
@Test
public void assertNextId() {
assertEquals(ConnectionIdGenerator.getInstance().nextId(), 1);
assertEquals(MySQLConnectionIdGenerator.getInstance().nextId(), 1);
}
@Test
public void assertMaxNextId() {
setCurrentConnectionId(Integer.MAX_VALUE);
assertThat(ConnectionIdGenerator.getInstance().nextId(), is(1));
assertThat(MySQLConnectionIdGenerator.getInstance().nextId(), is(1));
}
@SneakyThrows
private void setCurrentConnectionId(final int connectionId) {
Field field = ConnectionIdGenerator.class.getDeclaredField("currentId");
Field field = MySQLConnectionIdGenerator.class.getDeclaredField("currentId");
field.setAccessible(true);
field.set(ConnectionIdGenerator.getInstance(), connectionId);
field.set(MySQLConnectionIdGenerator.getInstance(), connectionId);
}
}
......@@ -32,7 +32,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class HandshakePacketTest {
public final class MySQLHandshakePacketTest {
@Mock
private MySQLPacketPayload payload;
......@@ -49,28 +49,28 @@ public final class HandshakePacketTest {
when(payload.readInt4()).thenReturn(1000);
when(payload.readInt2()).thenReturn(
MySQLCapabilityFlag.calculateHandshakeCapabilityFlagsLower(), MySQLStatusFlag.SERVER_STATUS_AUTOCOMMIT.getValue(), MySQLCapabilityFlag.calculateHandshakeCapabilityFlagsUpper());
HandshakePacket actual = new HandshakePacket(payload);
MySQLHandshakePacket actual = new MySQLHandshakePacket(payload);
assertThat(actual.getSequenceId(), is(1));
assertThat(actual.getConnectionId(), is(1000));
assertThat(actual.getAuthPluginData().getAuthPluginDataPart1(), is(part1));
assertThat(actual.getAuthPluginData().getAuthPluginDataPart2(), is(part2));
assertThat(actual.getMySQLAuthPluginData().getAuthPluginDataPart1(), is(part1));
assertThat(actual.getMySQLAuthPluginData().getAuthPluginDataPart2(), is(part2));
verify(payload).skipReserved(10);
}
@Test
public void assertWrite() {
AuthPluginData authPluginData = new AuthPluginData(part1, part2);
new HandshakePacket(1000, authPluginData).write(payload);
MySQLAuthPluginData mySQLAuthPluginData = new MySQLAuthPluginData(part1, part2);
new MySQLHandshakePacket(1000, mySQLAuthPluginData).write(payload);
verify(payload).writeInt1(MySQLServerInfo.PROTOCOL_VERSION);
verify(payload).writeStringNul(MySQLServerInfo.SERVER_VERSION);
verify(payload).writeInt4(1000);
verify(payload).writeStringNul(new String(authPluginData.getAuthPluginDataPart1()));
verify(payload).writeStringNul(new String(mySQLAuthPluginData.getAuthPluginDataPart1()));
verify(payload).writeInt2(MySQLCapabilityFlag.calculateHandshakeCapabilityFlagsLower());
verify(payload).writeInt1(MySQLServerInfo.CHARSET);
verify(payload).writeInt2(MySQLStatusFlag.SERVER_STATUS_AUTOCOMMIT.getValue());
verify(payload).writeInt2(MySQLCapabilityFlag.calculateHandshakeCapabilityFlagsUpper());
verify(payload).writeInt1(0);
verify(payload).writeReserved(10);
verify(payload).writeStringNul(new String(authPluginData.getAuthPluginDataPart2()));
verify(payload).writeStringNul(new String(mySQLAuthPluginData.getAuthPluginDataPart2()));
}
}
......@@ -31,7 +31,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class HandshakeResponse41PacketTest {
public final class MySQLHandshakeResponse41PacketTest {
@Mock
private MySQLPacketPayload payload;
......@@ -42,7 +42,7 @@ public final class HandshakeResponse41PacketTest {
when(payload.readInt4()).thenReturn(MySQLCapabilityFlag.CLIENT_CONNECT_WITH_DB.getValue(), 1000);
when(payload.readStringNul()).thenReturn("root", "sharding_db");
when(payload.readStringNulByBytes()).thenReturn(new byte[] {1});
HandshakeResponse41Packet actual = new HandshakeResponse41Packet(payload);
MySQLHandshakeResponse41Packet actual = new MySQLHandshakeResponse41Packet(payload);
assertThat(actual.getSequenceId(), is(1));
assertThat(actual.getUsername(), is("root"));
assertThat(actual.getAuthResponse(), is(new byte[] {1}));
......@@ -55,7 +55,7 @@ public final class HandshakeResponse41PacketTest {
when(payload.readInt4()).thenReturn(MySQLCapabilityFlag.CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA.getValue(), 1000);
when(payload.readStringNul()).thenReturn("root");
when(payload.readStringLenencByBytes()).thenReturn(new byte[] {1});
HandshakeResponse41Packet actual = new HandshakeResponse41Packet(payload);
MySQLHandshakeResponse41Packet actual = new MySQLHandshakeResponse41Packet(payload);
assertThat(actual.getSequenceId(), is(1));
assertThat(actual.getUsername(), is("root"));
assertThat(actual.getAuthResponse(), is(new byte[] {1}));
......@@ -68,7 +68,7 @@ public final class HandshakeResponse41PacketTest {
when(payload.readInt4()).thenReturn(MySQLCapabilityFlag.CLIENT_SECURE_CONNECTION.getValue(), 1000);
when(payload.readStringNul()).thenReturn("root");
when(payload.readStringFixByBytes(1)).thenReturn(new byte[] {1});
HandshakeResponse41Packet actual = new HandshakeResponse41Packet(payload);
MySQLHandshakeResponse41Packet actual = new MySQLHandshakeResponse41Packet(payload);
assertThat(actual.getSequenceId(), is(1));
assertThat(actual.getUsername(), is("root"));
assertThat(actual.getAuthResponse(), is(new byte[] {1}));
......@@ -77,7 +77,7 @@ public final class HandshakeResponse41PacketTest {
@Test
public void assertWriteWithDatabase() {
new HandshakeResponse41Packet(1, MySQLCapabilityFlag.CLIENT_CONNECT_WITH_DB.getValue(), 100, MySQLServerInfo.CHARSET, "root", new byte[] {1}, "sharding_db").write(payload);
new MySQLHandshakeResponse41Packet(1, MySQLCapabilityFlag.CLIENT_CONNECT_WITH_DB.getValue(), 100, MySQLServerInfo.CHARSET, "root", new byte[] {1}, "sharding_db").write(payload);
verify(payload).writeInt4(MySQLCapabilityFlag.CLIENT_CONNECT_WITH_DB.getValue());
verify(payload).writeInt4(100);
verify(payload).writeInt1(MySQLServerInfo.CHARSET);
......@@ -89,7 +89,7 @@ public final class HandshakeResponse41PacketTest {
@Test
public void assertWriteWithClientPluginAuthLenencClientData() {
new HandshakeResponse41Packet(1, MySQLCapabilityFlag.CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA.getValue(), 100, MySQLServerInfo.CHARSET, "root", new byte[] {1}, null).write(payload);
new MySQLHandshakeResponse41Packet(1, MySQLCapabilityFlag.CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA.getValue(), 100, MySQLServerInfo.CHARSET, "root", new byte[] {1}, null).write(payload);
verify(payload).writeInt4(MySQLCapabilityFlag.CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA.getValue());
verify(payload).writeInt4(100);
verify(payload).writeInt1(MySQLServerInfo.CHARSET);
......@@ -100,7 +100,7 @@ public final class HandshakeResponse41PacketTest {
@Test
public void assertWriteWithClientSecureConnection() {
new HandshakeResponse41Packet(1, MySQLCapabilityFlag.CLIENT_SECURE_CONNECTION.getValue(), 100, MySQLServerInfo.CHARSET, "root", new byte[] {1}, null).write(payload);
new MySQLHandshakeResponse41Packet(1, MySQLCapabilityFlag.CLIENT_SECURE_CONNECTION.getValue(), 100, MySQLServerInfo.CHARSET, "root", new byte[] {1}, null).write(payload);
verify(payload).writeInt4(MySQLCapabilityFlag.CLIENT_SECURE_CONNECTION.getValue());
verify(payload).writeInt4(100);
verify(payload).writeInt1(MySQLServerInfo.CHARSET);
......
......@@ -22,11 +22,11 @@ import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public final class RandomGeneratorTest {
public final class MySQLRandomGeneratorTest {
@Test
public void assertGenerateRandomBytes() {
assertThat(RandomGenerator.getInstance().generateRandomBytes(8).length, is(8));
assertThat(RandomGenerator.getInstance().generateRandomBytes(12).length, is(12));
assertThat(MySQLRandomGenerator.getInstance().generateRandomBytes(8).length, is(8));
assertThat(MySQLRandomGenerator.getInstance().generateRandomBytes(12).length, is(12));
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册