mirror of
https://gitee.com/dromara/mayfly-go
synced 2025-11-09 02:40:26 +08:00
feat: sql解析器替换、工单统一由‘我的流程’发起、流程定义支持自定义条件触发审批、资源隐藏编号、model支持物理删除等
This commit is contained in:
122
server/internal/db/dbm/sqlparser/mysql/mysql_test.go
Normal file
122
server/internal/db/dbm/sqlparser/mysql/mysql_test.go
Normal file
@@ -0,0 +1,122 @@
|
||||
package mysql
|
||||
|
||||
import (
|
||||
"mayfly-go/internal/db/dbm/sqlparser/sqlstmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestParserSimpleSelect(t *testing.T) {
|
||||
parser := new(MysqlParser)
|
||||
|
||||
// sql := "select sum(t.age), t.`id` tid, t1.id2, t1.* from T_DB t left join t_db_ins as t1 on t.id = t1.id2 where t.id = 1 AND t1.status=0 and t.id2='9' and t.name in ('name2', 'name3') order by t.id desc limit 0, 100"
|
||||
sql := "SELECT t.* FROM `t_sys_resource` t WHERE t.`id` > 0"
|
||||
stmts, err := parser.Parse(sql)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log(stmts)
|
||||
}
|
||||
|
||||
func TestParserUnionSelect(t *testing.T) {
|
||||
parser := new(MysqlParser)
|
||||
|
||||
sql := "(select sum(t.age), t.id tid, t1.id2, t1.* from T_DB t join t_db_ins as t1 on t.id = t1.id2 where t.id = 1 AND t1.status=0 and t.id2='9' and t.name in ('name2', 'name3') order by t.id desc limit 0, 100) union all (select * from t_db2) limit 10"
|
||||
stmts, err := parser.Parse(sql)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log(stmts)
|
||||
}
|
||||
|
||||
func TestParserSingleUpdate(t *testing.T) {
|
||||
parser := new(MysqlParser)
|
||||
|
||||
sql := `UPDATE t_sys_msg t
|
||||
SET
|
||||
t.recipient_id = 13,
|
||||
t.creator = 'admin4'
|
||||
WHERE
|
||||
t.id = 1;`
|
||||
stmts, err := parser.Parse(sql)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log(stmts)
|
||||
}
|
||||
|
||||
func TestParserInsert(t *testing.T) {
|
||||
parser := new(MysqlParser)
|
||||
|
||||
sql := `INSERT INTO
|
||||
mayfly_go.t_sys_msg (
|
||||
type,
|
||||
msg,
|
||||
recipient_id,
|
||||
creator_id,
|
||||
create_time,
|
||||
is_deleted
|
||||
)
|
||||
VALUES
|
||||
(1, 'hahaha', 2, 1, '2024-08-26 15:36:27', 0);`
|
||||
stmts, err := parser.Parse(sql)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log(stmts)
|
||||
}
|
||||
|
||||
func TestParserSql(t *testing.T) {
|
||||
parser := new(MysqlParser)
|
||||
|
||||
// sql := `INSERT INTO
|
||||
// mayfly_go.t_sys_msg (
|
||||
// type,
|
||||
// msg,
|
||||
// recipient_id,
|
||||
// creator_id,
|
||||
// create_time,
|
||||
// is_deleted
|
||||
// )
|
||||
// VALUES
|
||||
// (1, 'hahaha', 2, 1, '2024-08-26 15:36:27', 0);`
|
||||
|
||||
sql := `UPDATE t_sys_msg
|
||||
SET
|
||||
recipient_id = 13,
|
||||
creator = 'admin4'
|
||||
WHERE
|
||||
id = 1;`
|
||||
|
||||
stmts, err := parser.Parse(sql)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
switch stmt := stmts[0].(type) {
|
||||
case *sqlstmt.InsertStmt:
|
||||
t.Log("insert")
|
||||
t.Log(stmt.TableName.Identifier.Value)
|
||||
case *sqlstmt.UpdateStmt:
|
||||
t.Log("update")
|
||||
case *sqlstmt.DeleteStmt:
|
||||
t.Log("delete")
|
||||
case *sqlstmt.SelectStmt:
|
||||
t.Log("select")
|
||||
default:
|
||||
t.Log("other")
|
||||
}
|
||||
t.Log(stmts)
|
||||
}
|
||||
|
||||
func TestParserDelete(t *testing.T) {
|
||||
parser := new(MysqlParser)
|
||||
|
||||
sql := `DELETE FROM t_sys_log
|
||||
WHERE
|
||||
id IN (59);`
|
||||
stmts, err := parser.Parse(sql)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log(stmts)
|
||||
}
|
||||
Reference in New Issue
Block a user