From 10f2048d957ce41caee444859e45bb71d5f84148 Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Wed, 28 Mar 2018 23:05:20 -0500 Subject: [PATCH] Add conflict resolution for channel updates --- src/helpers.cr | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/helpers.cr b/src/helpers.cr index 08473de9e..a26bb3109 100644 --- a/src/helpers.cr +++ b/src/helpers.cr @@ -502,10 +502,11 @@ def get_channel(id, client, db) if Time.now - channel.updated > 1.minutes channel = fetch_channel(id, client, db) - channel_array = channel.to_a[1..-1] + channel_array = channel.to_a args = arg_array(channel_array) - db.exec("UPDATE channels SET (author,updated) = (#{args}) WHERE id = '#{channel.id}'", channel_array) + db.exec("INSERT INTO channels VALUES (#{args}) \ + ON CONFLICT (id) DO UPDATE SET author = $2, updated = $3", channel_array) end else channel = fetch_channel(id, client, db)