From 00b5817456eefd5e5ab84af4f24ed529ec71b057 Mon Sep 17 00:00:00 2001 From: kmdewaal Date: Sat, 7 Dec 2024 16:33:41 +0100 Subject: [PATCH] Add index on chanid in iptv_channel and channelgroup (#991) The tables iptv_channel and channelgroup are accessed via the chanid but there was no index on chanid in both tables. Having these indices greatly speeds up the start of playback, both for recordings and for live TV, when there is a large number of channels available in various video sources. This is influenced by the automatic creation of channelgroups per video source when there is more than one video source present in the system. --- mythtv/bindings/perl/MythTV.pm | 2 +- mythtv/bindings/python/MythTV/_versions.py.in | 2 +- mythtv/libs/libmythbase/mythversion.h.in | 2 +- mythtv/libs/libmythtv/dbcheck.cpp | 11 +++++++++++ 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/mythtv/bindings/perl/MythTV.pm b/mythtv/bindings/perl/MythTV.pm index 9dd2ec5af2a..07dbaa15351 100644 --- a/mythtv/bindings/perl/MythTV.pm +++ b/mythtv/bindings/perl/MythTV.pm @@ -116,7 +116,7 @@ package MythTV; # schema version supported in the main code. We need to check that the schema # version in the database is as expected by the bindings, which are expected # to be kept in sync with the main code. - our $SCHEMA_VERSION = "1381"; + our $SCHEMA_VERSION = "1382"; # NUMPROGRAMLINES is defined in mythtv/libs/libmythtv/programinfo.h and is # the number of items in a ProgramInfo QStringList group used by diff --git a/mythtv/bindings/python/MythTV/_versions.py.in b/mythtv/bindings/python/MythTV/_versions.py.in index 80702a42206..38f8df389bc 100644 --- a/mythtv/bindings/python/MythTV/_versions.py.in +++ b/mythtv/bindings/python/MythTV/_versions.py.in @@ -7,7 +7,7 @@ The file MythTV/_versions.py is usually generated by ./configure. """ OWN_VERSION = @MYTHTV_PYTHON_OWN_VERSION@ -SCHEMA_VERSION = 1381 +SCHEMA_VERSION = 1382 NVSCHEMA_VERSION = 1007 MUSICSCHEMA_VERSION = 1025 PROTO_VERSION = '91' diff --git a/mythtv/libs/libmythbase/mythversion.h.in b/mythtv/libs/libmythbase/mythversion.h.in index a74e0cad389..3cab2a4d02e 100644 --- a/mythtv/libs/libmythbase/mythversion.h.in +++ b/mythtv/libs/libmythbase/mythversion.h.in @@ -76,7 +76,7 @@ static constexpr const char* MYTH_PROTO_TOKEN { "BuzzOff" }; * mythtv/bindings/php/MythBackend.php */ -static constexpr const char* MYTH_DATABASE_VERSION { "1381" }; +static constexpr const char* MYTH_DATABASE_VERSION { "1382" }; MBASE_PUBLIC const char *GetMythSourceVersion(); MBASE_PUBLIC const char *GetMythSourcePath(); diff --git a/mythtv/libs/libmythtv/dbcheck.cpp b/mythtv/libs/libmythtv/dbcheck.cpp index a5adeccf643..f3352646b77 100644 --- a/mythtv/libs/libmythtv/dbcheck.cpp +++ b/mythtv/libs/libmythtv/dbcheck.cpp @@ -4074,6 +4074,17 @@ static bool doUpgradeTVDatabaseSchema(void) return false; } + if (dbver == "1381") + { + DBUpdates updates { + "ALTER TABLE iptv_channel ADD INDEX (chanid);" + "ALTER TABLE channelgroup ADD INDEX (chanid);" + } ; + if (!performActualUpdate("MythTV", "DBSchemaVer", + updates, "1382", dbver)) + return false; + } + return true; }