use of io.mycat.net.mysql.FieldPacket in project Mycat-Server by MyCATApache.
the class ConfFileHandler method handle.
public static void handle(String stmt, ManagerConnection c) {
ByteBuffer buffer = c.allocate();
// write header
buffer = header.write(buffer, c, true);
// write fields
for (FieldPacket field : fields) {
buffer = field.write(buffer, c, true);
}
// write eof
buffer = eof.write(buffer, c, true);
// write rows
byte packetId = eof.packetId;
String theStmt = stmt.toUpperCase().trim();
PackageBufINf bufInf = null;
if (theStmt.equals("FILE @@LIST")) {
bufInf = listConfigFiles(c, buffer, packetId);
} else if (theStmt.startsWith("FILE @@SHOW")) {
int index = stmt.lastIndexOf(' ');
String fileName = stmt.substring(index + 1);
bufInf = showConfigFile(c, buffer, packetId, fileName);
} else if (theStmt.startsWith(UPLOAD_CMD)) {
int index = stmt.indexOf(' ', UPLOAD_CMD.length());
int index2 = stmt.indexOf(' ', index + 1);
if (index <= 0 || index2 <= 0 || index + 1 > stmt.length() || index2 + 1 > stmt.length()) {
bufInf = showInfo(c, buffer, packetId, "Invald param ,usage ");
}
String fileName = stmt.substring(index + 1, index2);
String content = stmt.substring(index2 + 1).trim();
bufInf = upLoadConfigFile(c, buffer, packetId, fileName, content);
} else {
bufInf = showInfo(c, buffer, packetId, "Invald command ");
}
packetId = bufInf.packetId;
buffer = bufInf.buffer;
// write last eof
EOFPacket lastEof = new EOFPacket();
lastEof.packetId = ++packetId;
buffer = lastEof.write(buffer, c, true);
// write buffer
c.write(buffer);
}
use of io.mycat.net.mysql.FieldPacket in project Mycat-Server by MyCATApache.
the class PackageBufINf method handle.
public static void handle(String stmt, ManagerConnection c) {
ByteBuffer buffer = c.allocate();
// write header
buffer = header.write(buffer, c, true);
// write fields
for (FieldPacket field : fields) {
buffer = field.write(buffer, c, true);
}
// write eof
buffer = eof.write(buffer, c, true);
// write rows
byte packetId = eof.packetId;
PackageBufINf bufInf = null;
// show log key=warn limit=0,30
Map<String, String> condPairMap = getCondPair(stmt);
if (condPairMap.isEmpty()) {
bufInf = showLogSum(c, buffer, packetId);
} else {
String logFile = condPairMap.get("file");
if (logFile == null) {
logFile = DEFAULT_LOGFILE;
}
String limitStr = condPairMap.get("limit");
limitStr = (limitStr != null) ? limitStr : "0," + 100000;
String[] limtArry = limitStr.split("\\s|,");
int start = Integer.parseInt(limtArry[0]);
int page = Integer.parseInt(limtArry[1]);
int end = Integer.valueOf(start + page);
String key = condPairMap.get("key");
String regex = condPairMap.get("regex");
bufInf = showLogRange(c, buffer, packetId, key, regex, start, end, logFile);
}
packetId = bufInf.packetId;
buffer = bufInf.buffer;
EOFPacket lastEof = new EOFPacket();
lastEof.packetId = ++packetId;
buffer = lastEof.write(buffer, c, true);
// write buffer
c.write(buffer);
}
use of io.mycat.net.mysql.FieldPacket in project Mycat-Server by MyCATApache.
the class ShowCollation method execute.
public static void execute(ManagerConnection c) {
ByteBuffer buffer = c.allocate();
// write header
buffer = header.write(buffer, c, true);
// write fields
for (FieldPacket field : fields) {
buffer = field.write(buffer, c, true);
}
// write eof
buffer = eof.write(buffer, c, true);
// write rows
byte packetId = eof.packetId;
RowDataPacket row = getRow(c.getCharset());
row.packetId = ++packetId;
buffer = row.write(buffer, c, true);
// write lastEof
EOFPacket lastEof = new EOFPacket();
lastEof.packetId = ++packetId;
buffer = lastEof.write(buffer, c, true);
// write buffer
c.write(buffer);
}
use of io.mycat.net.mysql.FieldPacket in project Mycat-Server by MyCATApache.
the class ShowConnectionSQL method execute.
public static void execute(ManagerConnection c) {
ByteBuffer buffer = c.allocate();
// write header
buffer = header.write(buffer, c, true);
// write fields
for (FieldPacket field : fields) {
buffer = field.write(buffer, c, true);
}
// write eof
buffer = eof.write(buffer, c, true);
// write rows
byte packetId = eof.packetId;
String charset = c.getCharset();
for (NIOProcessor p : MycatServer.getInstance().getProcessors()) {
for (FrontendConnection fc : p.getFrontends().values()) {
if (!fc.isClosed()) {
RowDataPacket row = getRow(fc, charset);
row.packetId = ++packetId;
buffer = row.write(buffer, c, true);
}
}
}
// write last eof
EOFPacket lastEof = new EOFPacket();
lastEof.packetId = ++packetId;
buffer = lastEof.write(buffer, c, true);
// write buffer
c.write(buffer);
}
use of io.mycat.net.mysql.FieldPacket in project Mycat-Server by MyCATApache.
the class ShowDataNode method execute.
public static void execute(ManagerConnection c, String name) {
ByteBuffer buffer = c.allocate();
// write header
buffer = header.write(buffer, c, true);
// write fields
for (FieldPacket field : fields) {
buffer = field.write(buffer, c, true);
}
// write eof
buffer = eof.write(buffer, c, true);
// write rows
byte packetId = eof.packetId;
MycatConfig conf = MycatServer.getInstance().getConfig();
Map<String, PhysicalDBNode> dataNodes = conf.getDataNodes();
List<String> keys = new ArrayList<String>();
if (StringUtil.isEmpty(name)) {
keys.addAll(dataNodes.keySet());
} else {
SchemaConfig sc = conf.getSchemas().get(name);
if (null != sc) {
keys.addAll(sc.getAllDataNodes());
}
}
Collections.sort(keys, new Comparators<String>());
for (String key : keys) {
RowDataPacket row = getRow(dataNodes.get(key), c.getCharset());
row.packetId = ++packetId;
buffer = row.write(buffer, c, true);
}
// write last eof
EOFPacket lastEof = new EOFPacket();
lastEof.packetId = ++packetId;
buffer = lastEof.write(buffer, c, true);
// post write
c.write(buffer);
}
Aggregations