Query the DB for the hash before inserting in to email_hash (#15457)
Some postgres users have logging which logs even failed transactions. So just query the db before trying to insert. Fix #15451 Signed-off-by: Andrew Thornton art27@cantab.net Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		
							parent
							
								
									f7830041f4
								
							
						
					
					
						commit
						217b5c150f
					
				
					 1 changed files with 5 additions and 0 deletions
				
			
		|  | @ -96,6 +96,11 @@ func HashedAvatarLink(email string) string { | ||||||
| 			// we don't care about any DB problem just return the lowerEmail
 | 			// we don't care about any DB problem just return the lowerEmail
 | ||||||
| 			return lowerEmail, nil | 			return lowerEmail, nil | ||||||
| 		} | 		} | ||||||
|  | 		has, err := sess.Where("email = ? AND hash = ?", emailHash.Email, emailHash.Hash).Get(new(EmailHash)) | ||||||
|  | 		if has || err != nil { | ||||||
|  | 			// Seriously we don't care about any DB problems just return the lowerEmail - we expect the transaction to fail most of the time
 | ||||||
|  | 			return lowerEmail, nil | ||||||
|  | 		} | ||||||
| 		_, _ = sess.Insert(emailHash) | 		_, _ = sess.Insert(emailHash) | ||||||
| 		if err := sess.Commit(); err != nil { | 		if err := sess.Commit(); err != nil { | ||||||
| 			// Seriously we don't care about any DB problems just return the lowerEmail - we expect the transaction to fail most of the time
 | 			// Seriously we don't care about any DB problems just return the lowerEmail - we expect the transaction to fail most of the time
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue