diff --git a/vql.go b/vql.go index 357093b..90a238f 100644 --- a/vql.go +++ b/vql.go @@ -19,9 +19,9 @@ func NoParameConvertFunc(vTable string, convertSql string) *VirtualTable { } type VirtualTable struct { - MappingTableName string //example: user(db:db1,id:1) - //限定条件 - SqlConvert VirtualQlConvert + MappingTableName string //example: user(db:db1,id:1) + ArgNames []string //example: [db,id] + SqlConvert VirtualQlConvert } func parseTableName(tableNameExpression string) (tableName string, args map[string]string, err error) { @@ -120,8 +120,10 @@ func (vql *VirtualQL) convert(query *Query, val map[string]interface{}) error { val = make(map[string]interface{}) } - for k, v := range args { - val[k] = v + for k := range vtable.ArgNames { + if args[vtable.ArgNames[k]] != "" { + val[vtable.ArgNames[k]] = args[vtable.ArgNames[k]] + } } convertSql, err := vtable.SqlConvert(val)