提交 cfc2be21 编写于 作者: Y Yiming Liu

bug fixed

上级 cf3afe45
......@@ -40,4 +40,65 @@ public class TypeUtils {
return Fields.FIELD_TYPE_STRING;
}
}
public static String convertFieldTypeToString(int field) {
switch (field) {
case Fields.FIELD_TYPE_STRING:
return "CHAR";
case Fields.FIELD_TYPE_INT24:
return "INTEGER";
case Fields.FIELD_TYPE_DECIMAL:
return "DECIMAL";
case Fields.FIELD_TYPE_TINY:
return "TINYINT";
case Fields.FIELD_TYPE_SHORT:
return "SMALLINT";
case Fields.FIELD_TYPE_LONG:
return "BIGINT";
case Fields.FIELD_TYPE_FLOAT:
return "FLOAT";
case Fields.FIELD_TYPE_DOUBLE:
return "DOUBLE";
case Fields.FIELD_TYPE_NULL:
return "NULL";
case Fields.FIELD_TYPE_TIMESTAMP:
return "TIMESTAMP";
case Fields.FIELD_TYPE_LONGLONG:
return "BIGINT";
case Fields.FIELD_TYPE_DATE:
return "DATE";
case Fields.FIELD_TYPE_TIME:
return "TIME";
case Fields.FIELD_TYPE_DATETIME:
return "DATETIME";
case Fields.FIELD_TYPE_YEAR:
return "YEAR";
case Fields.FIELD_TYPE_NEWDATE:
return "NEWDATE";
case Fields.FIELD_TYPE_VARCHAR:
return "VARCHAR";
case Fields.FIELD_TYPE_BIT:
return "BIT";
case Fields.FIELD_TYPE_NEW_DECIMAL:
return "NEWDECIMAL";
case Fields.FIELD_TYPE_ENUM:
return "ENUM";
case Fields.FIELD_TYPE_SET:
return "SET";
case Fields.FIELD_TYPE_TINY_BLOB:
return "TINYBLOB";
case Fields.FIELD_TYPE_MEDIUM_BLOB:
return "MEDIUMBLOB";
case Fields.FIELD_TYPE_LONG_BLOB:
return "LONGBLOB";
case Fields.FIELD_TYPE_BLOB:
return "BLOBL";
case Fields.FIELD_TYPE_VAR_STRING:
return "VARCHAR";
case Fields.FIELD_TYPE_GEOMETRY:
return "GEOMETRY";
default:
return "UNKNOWN";
}
}
}
......@@ -30,6 +30,7 @@ import com.alibaba.cobar.util.StringUtil;
import com.dianping.bee.engine.spi.TableProvider;
import com.dianping.bee.engine.spi.TableProviderManager;
import com.dianping.bee.engine.spi.meta.ColumnMeta;
import com.dianping.bee.engine.spi.meta.internal.TypeUtils;
import com.site.lookup.annotation.Inject;
/**
......@@ -46,7 +47,13 @@ public class SimpleDescHandler {
*/
public void handle(String stmt, ServerConnection c, int offset) {
String tableName = stmt.substring(offset).trim();
int length = tableName.length();
if (length > 0) {
if (tableName.charAt(0) == '`' && tableName.charAt(length - 1) == '`') {
tableName = tableName.substring(1, length - 1);
}
}
// 检查当前使用的DB
String db = c.getSchema();
if (db == null) {
......@@ -109,7 +116,9 @@ public class SimpleDescHandler {
for (ColumnMeta column : columns) {
RowDataPacket row = new RowDataPacket(FIELD_COUNT);
row.add(StringUtil.encode(column.getName(), c.getCharset()));
row.add(StringUtil.encode(column.getType().getSimpleName(), c.getCharset()));
row.add(StringUtil.encode(
TypeUtils.convertFieldTypeToString(TypeUtils.convertJavaTypeToFieldType(column.getType())),
c.getCharset()));
row.add(null);
row.add(null);
row.add(null);
......@@ -137,5 +146,4 @@ public class SimpleDescHandler {
// post write
c.write(buffer);
}
}
......@@ -78,6 +78,12 @@ public class SimpleShowHandler {
*/
private void showTableStatus(ServerConnection c, String stmt) {
String dbName = stmt.substring("show table status from ".length()).trim();
int length = dbName.length();
if (length > 0) {
if (dbName.charAt(0) == '`' && dbName.charAt(length - 1) == '`') {
dbName = dbName.substring(1, length - 1);
}
}
DatabaseProvider provider = null;
try {
......
......@@ -17,12 +17,10 @@ package com.dianping.bee.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import com.dianping.bee.server.SimpleServer;
import com.site.lookup.ComponentTestCase;
/**
......@@ -31,14 +29,6 @@ import com.site.lookup.ComponentTestCase;
@RunWith(JUnit4.class)
public class JDBCTest extends ComponentTestCase {
private SimpleServer server;
@Before
public void runServer() throws Exception {
server = lookup(SimpleServer.class);
server.startup();
}
@Test
public void testConnection() {
Connection conn = null;
......@@ -49,6 +39,8 @@ public class JDBCTest extends ComponentTestCase {
String password = "test";
try {
Class.forName(driver).newInstance();
System.out.println("Driver loaded");
DriverManager.setLoginTimeout(600);
conn = DriverManager.getConnection(url + dbName, userName, password);
System.out.println("Connected to the database");
conn.close();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册