From 2885decb56232455226267891a254eae6ba6fcf1 Mon Sep 17 00:00:00 2001 From: hrj Date: Mon, 19 Apr 2021 01:02:10 +0530 Subject: [PATCH] ensure fresh captchas are served by sorting on attempted Signed-off-by: hrj --- src/main/scala/lc/database/statements.scala | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/scala/lc/database/statements.scala b/src/main/scala/lc/database/statements.scala index bffa420..fdbd637 100644 --- a/src/main/scala/lc/database/statements.scala +++ b/src/main/scala/lc/database/statements.scala @@ -19,7 +19,10 @@ class Statements(dbConn: DBConn, maxAttempts: Int) { "contentInput varchar, " + "image blob, " + "attempted int default 0, " + - "PRIMARY KEY(token))" + "PRIMARY KEY(token));" + + """ + CREATE INDEX IF NOT EXISTS attempted ON challenge(attempted); + """ ) stmt.execute( "CREATE TABLE IF NOT EXISTS mapId" + @@ -69,13 +72,13 @@ class Statements(dbConn: DBConn, maxAttempts: Int) { val tokenPstmt: PreparedStatement = dbConn.con.prepareStatement( s""" - SELECT token + SELECT token, attempted FROM challenge WHERE attempted < $maxAttempts AND contentLevel = ? AND contentType = ? AND contentInput = ? - ORDER BY RAND() LIMIT 1""" + ORDER BY attempted ASC LIMIT 1""" ) val deleteAnswerPstmt: PreparedStatement = dbConn.con.prepareStatement(