| 1074 | } |
| 1075 | |
| 1076 | func (s *AdapterTests) TestEscapeQuestionMark() { |
| 1077 | sess := s.Session() |
| 1078 | |
| 1079 | var val bool |
| 1080 | |
| 1081 | { |
| 1082 | res, err := sess.SQL().QueryRow(`SELECT '{"mykey":["val1", "val2"]}'::jsonb->'mykey' ?? ?`, "val2") |
| 1083 | s.NoError(err) |
| 1084 | |
| 1085 | err = res.Scan(&val) |
| 1086 | s.NoError(err) |
| 1087 | s.Equal(true, val) |
| 1088 | } |
| 1089 | |
| 1090 | { |
| 1091 | res, err := sess.SQL().QueryRow(`SELECT ?::jsonb->'mykey' ?? ?`, `{"mykey":["val1", "val2"]}`, `val2`) |
| 1092 | s.NoError(err) |
| 1093 | |
| 1094 | err = res.Scan(&val) |
| 1095 | s.NoError(err) |
| 1096 | s.Equal(true, val) |
| 1097 | } |
| 1098 | |
| 1099 | { |
| 1100 | res, err := sess.SQL().QueryRow(`SELECT ?::jsonb->? ?? ?`, `{"mykey":["val1", "val2"]}`, `mykey`, `val2`) |
| 1101 | s.NoError(err) |
| 1102 | |
| 1103 | err = res.Scan(&val) |
| 1104 | s.NoError(err) |
| 1105 | s.Equal(true, val) |
| 1106 | } |
| 1107 | } |
| 1108 | |
| 1109 | func (s *AdapterTests) Test_Issue391_TextMode() { |
| 1110 | testPostgreSQLTypes(s.T(), s.Session()) |