Support use clause.Expression as argument
This commit is contained in:
		
							parent
							
								
									e5894ca449
								
							
						
					
					
						commit
						cec0d32aec
					
				| @ -43,6 +43,23 @@ func TestSelect(t *testing.T) { | ||||
| 			}, clause.From{}}, | ||||
| 			"SELECT `id`, `name`, LENGTH(`mobile`) FROM `users`", nil, | ||||
| 		}, | ||||
| 		{ | ||||
| 			[]clause.Interface{clause.Select{ | ||||
| 				Expression: clause.CommaExpression{ | ||||
| 					Exprs: []clause.Expression{ | ||||
| 						clause.Expr{ | ||||
| 							SQL: "? as name", | ||||
| 							Vars: []interface{}{clause.Eq{ | ||||
| 								Column: clause.Column{Name: "age"}, | ||||
| 								Value:  18, | ||||
| 							}, | ||||
| 							}, | ||||
| 						}, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, clause.From{}}, | ||||
| 			"SELECT `age` = ? as name FROM `users`", []interface{}{18}, | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	for idx, result := range results { | ||||
|  | ||||
| @ -183,6 +183,8 @@ func (stmt *Statement) AddVar(writer clause.Writer, vars ...interface{}) { | ||||
| 			v.Build(stmt) | ||||
| 		case *clause.Expr: | ||||
| 			v.Build(stmt) | ||||
| 		case clause.Expression: | ||||
| 			v.Build(stmt) | ||||
| 		case driver.Valuer: | ||||
| 			stmt.Vars = append(stmt.Vars, v) | ||||
| 			stmt.DB.Dialector.BindVarTo(writer, stmt, v) | ||||
|  | ||||
| @ -3,11 +3,13 @@ module gorm.io/gorm/tests | ||||
| go 1.14 | ||||
| 
 | ||||
| require ( | ||||
| 	github.com/denisenkom/go-mssqldb v0.12.0 // indirect | ||||
| 	github.com/google/uuid v1.3.0 | ||||
| 	github.com/jackc/pgx/v4 v4.14.1 // indirect | ||||
| 	github.com/jinzhu/now v1.1.4 | ||||
| 	github.com/lib/pq v1.10.4 | ||||
| 	golang.org/x/crypto v0.0.0-20211209193657-4570a0811e8b // indirect | ||||
| 	github.com/mattn/go-sqlite3 v1.14.10 // indirect | ||||
| 	golang.org/x/crypto v0.0.0-20220126234351-aa10faf2a1f8 // indirect | ||||
| 	gorm.io/driver/mysql v1.2.3 | ||||
| 	gorm.io/driver/postgres v1.2.3 | ||||
| 	gorm.io/driver/sqlite v1.2.6 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jinzhu
						Jinzhu