fix: fix '||' in Where condition but not wrap with brackets (#7002)
This commit is contained in:
		
							parent
							
								
									9d370bcb3e
								
							
						
					
					
						commit
						16ddae8dfa
					
				| @ -5,8 +5,10 @@ import ( | ||||
| ) | ||||
| 
 | ||||
| const ( | ||||
| 	AndWithSpace = " AND " | ||||
| 	OrWithSpace  = " OR " | ||||
| 	AndWithSpace       = " AND " | ||||
| 	OrWithSpace        = " OR " | ||||
| 	AndSymbolWithSpace = " && " | ||||
| 	OrSymbolWithSpace  = " || " | ||||
| ) | ||||
| 
 | ||||
| // Where where clause
 | ||||
| @ -58,22 +60,26 @@ func buildExprs(exprs []Expression, builder Builder, joinCond string) { | ||||
| 				if len(v.Exprs) == 1 { | ||||
| 					if e, ok := v.Exprs[0].(Expr); ok { | ||||
| 						sql := strings.ToUpper(e.SQL) | ||||
| 						wrapInParentheses = strings.Contains(sql, AndWithSpace) || strings.Contains(sql, OrWithSpace) | ||||
| 						wrapInParentheses = strings.Contains(sql, AndWithSpace) || strings.Contains(sql, OrWithSpace) || | ||||
| 							strings.Contains(sql, AndSymbolWithSpace) || strings.Contains(sql, OrSymbolWithSpace) | ||||
| 					} | ||||
| 				} | ||||
| 			case AndConditions: | ||||
| 				if len(v.Exprs) == 1 { | ||||
| 					if e, ok := v.Exprs[0].(Expr); ok { | ||||
| 						sql := strings.ToUpper(e.SQL) | ||||
| 						wrapInParentheses = strings.Contains(sql, AndWithSpace) || strings.Contains(sql, OrWithSpace) | ||||
| 						wrapInParentheses = strings.Contains(sql, AndWithSpace) || strings.Contains(sql, OrWithSpace) || | ||||
| 							strings.Contains(sql, AndSymbolWithSpace) || strings.Contains(sql, OrSymbolWithSpace) | ||||
| 					} | ||||
| 				} | ||||
| 			case Expr: | ||||
| 				sql := strings.ToUpper(v.SQL) | ||||
| 				wrapInParentheses = strings.Contains(sql, AndWithSpace) || strings.Contains(sql, OrWithSpace) | ||||
| 				wrapInParentheses = strings.Contains(sql, AndWithSpace) || strings.Contains(sql, OrWithSpace) || | ||||
| 					strings.Contains(sql, AndSymbolWithSpace) || strings.Contains(sql, OrSymbolWithSpace) | ||||
| 			case NamedExpr: | ||||
| 				sql := strings.ToUpper(v.SQL) | ||||
| 				wrapInParentheses = strings.Contains(sql, AndWithSpace) || strings.Contains(sql, OrWithSpace) | ||||
| 				wrapInParentheses = strings.Contains(sql, AndWithSpace) || strings.Contains(sql, OrWithSpace) || | ||||
| 					strings.Contains(sql, AndSymbolWithSpace) || strings.Contains(sql, OrSymbolWithSpace) | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 XuShuo
						XuShuo