Make sure mysql select json object keys are escaped.
This commit is contained in:
parent
1c2a595750
commit
a1d7684fc1
4 changed files with 96 additions and 1 deletions
|
|
@ -112,7 +112,8 @@ func (s *SQLBuilder) WriteString(str string) {
|
|||
|
||||
// WriteJsonObjKey serializes json object key
|
||||
func (s *SQLBuilder) WriteJsonObjKey(key string) {
|
||||
s.WriteString(fmt.Sprintf(`'%s', `, key))
|
||||
s.WriteString(stringQuote(key))
|
||||
s.WriteString(", ")
|
||||
}
|
||||
|
||||
// WriteIdentifier adds identifier to output SQL
|
||||
|
|
|
|||
|
|
@ -45,6 +45,14 @@ func TestArgToString(t *testing.T) {
|
|||
}()
|
||||
}
|
||||
|
||||
func TestWriteJsonObjKeyEscapesStringLiteral(t *testing.T) {
|
||||
s := &SQLBuilder{Dialect: defaultDialect}
|
||||
|
||||
s.WriteJsonObjKey("author's name")
|
||||
|
||||
require.Equal(t, "'author''s name', ", s.Buff.String())
|
||||
}
|
||||
|
||||
func TestFallTrough(t *testing.T) {
|
||||
require.Equal(t, FallTrough([]SerializeOption{ShortName}), []SerializeOption{ShortName})
|
||||
require.Equal(t, FallTrough([]SerializeOption{SkipNewLine}), []SerializeOption(nil))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue