···282282 assert account.id == account1.id
283283 end
284284285285+ test "can handle fragment identifier" do
286286+ account1 = TestRepo.insert!(%Account{name: "Main"})
287287+288288+ name = "name"
289289+ query = from(a in Account, where: fragment("? = ?", identifier(^name), "Main"))
290290+291291+ assert [account] = TestRepo.all(query)
292292+ assert account.id == account1.id
293293+ end
294294+285295 test "can handle selected_as" do
286296 TestRepo.insert!(%Account{name: "Main"})
287297 TestRepo.insert!(%Account{name: "Main"})
+1-1
lib/ecto/adapters/sqlite3/connection.ex
···13721372 raise ArgumentError, "SQLite3 adapter does not support values lists"
13731373 end
1374137413751375- defp expr({:literal, _, [literal]}, _sources, _query) do
13751375+ defp expr({:identifier, _, [literal]}, _sources, _query) do
13761376 quote_name(literal)
13771377 end
13781378
···166166 assert ~s{SELECT s0."x" COLLATE "es_ES" FROM "schema" AS s0} == all(query)
167167 end
168168169169+ test "collating with identifier" do
170170+ query =
171171+ Schema
172172+ |> select([r], fragment("? COLLATE ?", r.x, identifier(^"es_ES")))
173173+ |> plan()
174174+175175+ assert ~s{SELECT s0."x" COLLATE "es_ES" FROM "schema" AS s0} == all(query)
176176+ end
177177+169178 test "fragment with a column and value specified" do
170179 value = 13
171180