Bug 37292: Add an index on oauth_access_tokens.expires

This patch adds a needed index to the column.

To test:
1. On a fresh KTD, run:
   $ ktd --shell
  k$ koha-mysql kohadev
   > SHOW CREATE TABLE oauth_access_tokens;
=> FAIL: There's no 'KEY' entry for the `expires` column
2. Apply this patch
3. Run:
  k$ updatedatabase
=> SUCCESS: A message tells the index was added
4. Repeat 1
=> SUCCESS: The index was actually added to the DB
5. Run:
  k$ reset_all
6. Repeat 1
=> SUCCESS: The index is created at install time too!
7. Run:
  k$ updatedatabase
=> SUCCESS: Nothing explodes, no message about index being created
8. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 2e63ece6ae)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: wainuiwitikapark <wainuiwitikapark@catalyst.net.nz>
This commit is contained in:
Tomas Cohen Arazi 2024-11-29 12:08:18 -03:00 committed by wainuiwitikapark
parent ce8bb9def8
commit 066b0a3355
2 changed files with 22 additions and 1 deletions

View File

@ -0,0 +1,20 @@
use Modern::Perl;
use Koha::Installer::Output qw(say_warning say_success say_info);
return {
bug_number => "37292",
description => "'oauth_access_tokens.expires' needs an index",
up => sub {
my ($args) = @_;
my ( $dbh, $out ) = @$args{qw(dbh out)};
if ( !index_exists( 'oauth_access_tokens', 'expires' ) ) {
$dbh->do(
q{
ALTER TABLE `oauth_access_tokens` ADD INDEX `expires` (`expires`)
}
);
say_success( $out, "Added new index on 'oauth_access_tokens.expires'" );
}
},
};

View File

@ -4863,7 +4863,8 @@ CREATE TABLE `oauth_access_tokens` (
`access_token` varchar(191) NOT NULL COMMENT 'generarated access token',
`client_id` varchar(191) NOT NULL COMMENT 'the client id the access token belongs to',
`expires` int(11) NOT NULL COMMENT 'expiration time in seconds',
PRIMARY KEY (`access_token`)
PRIMARY KEY (`access_token`),
KEY `expires` (`expires`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;