Merge pull request #1256 from fobispo-link/master
Issue #1249 fix - replacing $ placeholders in order when logging
This commit is contained in:
		
						commit
						2c025b25fe
					
				
							
								
								
									
										25
									
								
								logger.go
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								logger.go
									
									
									
									
									
								
							@ -12,8 +12,9 @@ import (
 | 
				
			|||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var (
 | 
					var (
 | 
				
			||||||
	defaultLogger = Logger{log.New(os.Stdout, "\r\n", 0)}
 | 
						defaultLogger            = Logger{log.New(os.Stdout, "\r\n", 0)}
 | 
				
			||||||
	sqlRegexp     = regexp.MustCompile(`(\$\d+)|\?`)
 | 
						sqlRegexp                = regexp.MustCompile(`\?`)
 | 
				
			||||||
 | 
						numericPlaceHolderRegexp = regexp.MustCompile(`\$\d+`)
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type logger interface {
 | 
					type logger interface {
 | 
				
			||||||
@ -71,11 +72,21 @@ func (logger Logger) Print(values ...interface{}) {
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			var formattedValuesLength = len(formattedValues)
 | 
								// differentiate between $n placeholders or else treat like ?
 | 
				
			||||||
			for index, value := range sqlRegexp.Split(values[3].(string), -1) {
 | 
								if numericPlaceHolderRegexp.MatchString(values[3].(string)) {
 | 
				
			||||||
				sql += value
 | 
									sql = values[3].(string)
 | 
				
			||||||
				if index < formattedValuesLength {
 | 
									for index, value := range formattedValues {
 | 
				
			||||||
					sql += formattedValues[index]
 | 
										placeholder := fmt.Sprintf(`\$%d`, index+1)
 | 
				
			||||||
 | 
										subre := regexp.MustCompile(placeholder)
 | 
				
			||||||
 | 
										sql = subre.ReplaceAllString(sql, value)
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								} else {
 | 
				
			||||||
 | 
									var formattedValuesLength = len(formattedValues)
 | 
				
			||||||
 | 
									for index, value := range sqlRegexp.Split(values[3].(string), -1) {
 | 
				
			||||||
 | 
										sql += value
 | 
				
			||||||
 | 
										if index < formattedValuesLength {
 | 
				
			||||||
 | 
											sql += formattedValues[index]
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user