summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamantaz Fox <coding@samantaz.fr>2022-01-26 17:30:54 +0100
committerSamantaz Fox <coding@samantaz.fr>2022-01-26 17:31:01 +0100
commit67dd2b419a28510e6d89991e86e5d0aa97cac273 (patch)
tree9d18026f2b9cf256be13d0704ba8b110b1fdfafc
parentce4a52325b6ed77a9829d46621808ec147e7e7c2 (diff)
downloadinvidious-67dd2b419a28510e6d89991e86e5d0aa97cac273.tar.gz
invidious-67dd2b419a28510e6d89991e86e5d0aa97cac273.tar.bz2
invidious-67dd2b419a28510e6d89991e86e5d0aa97cac273.zip
db: use prepared statements rather than crafted argument list
-rw-r--r--src/invidious/database/channels.cr9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/invidious/database/channels.cr b/src/invidious/database/channels.cr
index e35b981d..df44e485 100644
--- a/src/invidious/database/channels.cr
+++ b/src/invidious/database/channels.cr
@@ -77,14 +77,13 @@ module Invidious::Database::Channels
def select(ids : Array(String)) : Array(InvidiousChannel)?
return [] of InvidiousChannel if ids.empty?
- values = ids.map { |id| %(('#{id}')) }.join(",")
request = <<-SQL
SELECT * FROM channels
- WHERE id = ANY(VALUES #{values})
+ WHERE id = ANY($1)
SQL
- return PG_DB.query_all(request, as: InvidiousChannel)
+ return PG_DB.query_all(request, ids, as: InvidiousChannel)
end
end
@@ -127,11 +126,11 @@ module Invidious::Database::ChannelVideos
request = <<-SQL
SELECT * FROM channel_videos
- WHERE id IN (#{arg_array(ids)})
+ WHERE id = ANY($1)
ORDER BY published DESC
SQL
- return PG_DB.query_all(request, args: ids, as: ChannelVideo)
+ return PG_DB.query_all(request, ids, as: ChannelVideo)
end
def select_notfications(ucid : String, since : Time) : Array(ChannelVideo)