summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancis Dupont <fdupont@isc.org>2023-12-13 18:02:24 +0100
committerFrancis Dupont <fdupont@isc.org>2024-01-17 09:48:36 +0100
commit02a49c0e7deffb3208a5f93ed4c6a5ad1f0fd45f (patch)
tree1fe1cb80c44efa889dd1fa2a26f5b45cca327e6a
parent[#3074] addressed review comments (diff)
downloadkea-02a49c0e7deffb3208a5f93ed4c6a5ad1f0fd45f.tar.xz
kea-02a49c0e7deffb3208a5f93ed4c6a5ad1f0fd45f.zip
[#3149] Added a new index
-rw-r--r--configure.ac4
-rw-r--r--src/lib/mysql/mysql_constants.h2
-rw-r--r--src/lib/pgsql/pgsql_connection.h2
-rw-r--r--src/share/database/scripts/mysql/.gitignore1
-rw-r--r--src/share/database/scripts/mysql/Makefile.am1
-rw-r--r--src/share/database/scripts/mysql/dhcpdb_create.mysql11
-rw-r--r--src/share/database/scripts/mysql/upgrade_020_to_021.sh.in66
-rw-r--r--src/share/database/scripts/pgsql/.gitignore1
-rw-r--r--src/share/database/scripts/pgsql/Makefile.am1
-rw-r--r--src/share/database/scripts/pgsql/dhcpdb_create.pgsql11
-rw-r--r--src/share/database/scripts/pgsql/upgrade_019_to_020.sh.in53
11 files changed, 151 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index 8597379bfa..6fb740f4c1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1746,6 +1746,8 @@ AC_CONFIG_FILES([src/share/database/scripts/mysql/upgrade_018_to_019.sh],
[chmod +x src/share/database/scripts/mysql/upgrade_018_to_019.sh])
AC_CONFIG_FILES([src/share/database/scripts/mysql/upgrade_019_to_020.sh],
[chmod +x src/share/database/scripts/mysql/upgrade_019_to_020.sh])
+AC_CONFIG_FILES([src/share/database/scripts/mysql/upgrade_020_to_021.sh],
+ [chmod +x src/share/database/scripts/mysql/upgrade_020_to_021.sh])
AC_CONFIG_FILES([src/share/database/scripts/mysql/wipe_data.sh],
[chmod +x src/share/database/scripts/mysql/wipe_data.sh])
AC_CONFIG_FILES([src/share/database/scripts/pgsql/Makefile])
@@ -1797,6 +1799,8 @@ AC_CONFIG_FILES([src/share/database/scripts/pgsql/upgrade_017_to_018.sh],
[chmod +x src/share/database/scripts/pgsql/upgrade_017_to_018.sh])
AC_CONFIG_FILES([src/share/database/scripts/pgsql/upgrade_018_to_019.sh],
[chmod +x src/share/database/scripts/pgsql/upgrade_018_to_019.sh])
+AC_CONFIG_FILES([src/share/database/scripts/pgsql/upgrade_019_to_020.sh],
+ [chmod +x src/share/database/scripts/pgsql/upgrade_019_to_020.sh])
AC_CONFIG_FILES([src/share/database/scripts/pgsql/wipe_data.sh],
[chmod +x src/share/database/scripts/pgsql/wipe_data.sh])
AC_CONFIG_FILES([src/share/yang/Makefile])
diff --git a/src/lib/mysql/mysql_constants.h b/src/lib/mysql/mysql_constants.h
index 4ea90a74db..d3f283cc62 100644
--- a/src/lib/mysql/mysql_constants.h
+++ b/src/lib/mysql/mysql_constants.h
@@ -52,7 +52,7 @@ const int MLM_MYSQL_FETCH_FAILURE = 0;
/// @name Current database schema version values.
//@{
-const uint32_t MYSQL_SCHEMA_VERSION_MAJOR = 20;
+const uint32_t MYSQL_SCHEMA_VERSION_MAJOR = 21;
const uint32_t MYSQL_SCHEMA_VERSION_MINOR = 0;
//@}
diff --git a/src/lib/pgsql/pgsql_connection.h b/src/lib/pgsql/pgsql_connection.h
index 8210e6c8e0..514cce4308 100644
--- a/src/lib/pgsql/pgsql_connection.h
+++ b/src/lib/pgsql/pgsql_connection.h
@@ -18,7 +18,7 @@ namespace isc {
namespace db {
/// @brief Define the PostgreSQL backend version.
-const uint32_t PGSQL_SCHEMA_VERSION_MAJOR = 19;
+const uint32_t PGSQL_SCHEMA_VERSION_MAJOR = 20;
const uint32_t PGSQL_SCHEMA_VERSION_MINOR = 0;
// Maximum number of parameters that can be used a statement
diff --git a/src/share/database/scripts/mysql/.gitignore b/src/share/database/scripts/mysql/.gitignore
index 7f4b2dbf04..53d22bedcb 100644
--- a/src/share/database/scripts/mysql/.gitignore
+++ b/src/share/database/scripts/mysql/.gitignore
@@ -28,4 +28,5 @@
/upgrade_017_to_018.sh
/upgrade_018_to_019.sh
/upgrade_019_to_020.sh
+/upgrade_020_to_021.sh
/wipe_data.sh
diff --git a/src/share/database/scripts/mysql/Makefile.am b/src/share/database/scripts/mysql/Makefile.am
index ee95d34b37..cb5adcacad 100644
--- a/src/share/database/scripts/mysql/Makefile.am
+++ b/src/share/database/scripts/mysql/Makefile.am
@@ -39,6 +39,7 @@ mysql_SCRIPTS += upgrade_016_to_017.sh
mysql_SCRIPTS += upgrade_017_to_018.sh
mysql_SCRIPTS += upgrade_018_to_019.sh
mysql_SCRIPTS += upgrade_019_to_020.sh
+mysql_SCRIPTS += upgrade_020_to_021.sh
mysql_SCRIPTS += wipe_data.sh
DISTCLEANFILES = ${mysql_SCRIPTS}
diff --git a/src/share/database/scripts/mysql/dhcpdb_create.mysql b/src/share/database/scripts/mysql/dhcpdb_create.mysql
index 62a1b07a53..e948a7933e 100644
--- a/src/share/database/scripts/mysql/dhcpdb_create.mysql
+++ b/src/share/database/scripts/mysql/dhcpdb_create.mysql
@@ -5850,6 +5850,17 @@ UPDATE schema_version
-- This line concludes the schema upgrade to version 20.0.
+-- This line starts the schema upgrade to version 21.0.
+
+-- Add subnet id and address index for lease6.
+CREATE INDEX lease6_by_subnet_id_address ON lease6 (subnet_id, address ASC);
+
+-- Update the schema version number.
+UPDATE schema_version
+ SET version = '21', minor = '0';
+
+-- This line concludes the schema upgrade to version 21.0.
+
# Notes:
#
# Indexes
diff --git a/src/share/database/scripts/mysql/upgrade_020_to_021.sh.in b/src/share/database/scripts/mysql/upgrade_020_to_021.sh.in
new file mode 100644
index 0000000000..2b95ec85b2
--- /dev/null
+++ b/src/share/database/scripts/mysql/upgrade_020_to_021.sh.in
@@ -0,0 +1,66 @@
+#!/bin/sh
+
+# Copyright (C) 2023 Internet Systems Consortium, Inc. ("ISC")
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# shellcheck disable=SC1091
+# SC1091: Not following: ... was not specified as input (see shellcheck -x).
+
+# Exit with error if commands exit with non-zero and if undefined variables are
+# used.
+set -eu
+
+# shellcheck disable=SC2034
+# SC2034: ... appears unused. Verify use (or export if used externally).
+prefix="@prefix@"
+
+# Include utilities. Use installed version if available and
+# use build version if it isn't.
+if test -f "@datarootdir@/@PACKAGE_NAME@/scripts/admin-utils.sh"; then
+ . "@datarootdir@/@PACKAGE_NAME@/scripts/admin-utils.sh"
+else
+ . "@abs_top_builddir@/src/bin/admin/admin-utils.sh"
+fi
+
+# Check version.
+version=$(mysql_version "${@}")
+if test "${version}" != "20.0"; then
+ printf 'This script upgrades 20.0 to 21.0. '
+ printf 'Reported version is %s. Skipping upgrade.\n' "${version}"
+ exit 0
+fi
+
+# Get the schema name from database argument. We need this to
+# query information_schema for the right database.
+for arg in "${@}"
+do
+ if ! printf '%s' "${arg}" | grep -Eq -- '^--'
+ then
+ schema="$arg"
+ break
+ fi
+done
+
+# Make sure we have the schema.
+if [ -z "$schema" ]
+then
+ printf "Could not find database schema name in cmd line args: %s\n" "${*}"
+ exit 255
+fi
+
+mysql "$@" <<EOF
+
+-- This line starts the schema upgrade to version 21.0.
+
+-- Add subnet id and address index for lease6.
+CREATE INDEX lease6_by_subnet_id_address ON lease6 (subnet_id, address ASC);
+
+-- Update the schema version number.
+UPDATE schema_version
+ SET version = '21', minor = '0';
+
+-- This line concludes the schema upgrade to version 21.0.
+EOF
diff --git a/src/share/database/scripts/pgsql/.gitignore b/src/share/database/scripts/pgsql/.gitignore
index 75260ab3ee..b4156d8989 100644
--- a/src/share/database/scripts/pgsql/.gitignore
+++ b/src/share/database/scripts/pgsql/.gitignore
@@ -22,4 +22,5 @@
/upgrade_016_to_017.sh
/upgrade_017_to_018.sh
/upgrade_018_to_019.sh
+/upgrade_019_to_020.sh
/wipe_data.sh
diff --git a/src/share/database/scripts/pgsql/Makefile.am b/src/share/database/scripts/pgsql/Makefile.am
index 7c21c667f6..32685c44e5 100644
--- a/src/share/database/scripts/pgsql/Makefile.am
+++ b/src/share/database/scripts/pgsql/Makefile.am
@@ -33,6 +33,7 @@ pgsql_SCRIPTS += upgrade_015_to_016.sh
pgsql_SCRIPTS += upgrade_016_to_017.sh
pgsql_SCRIPTS += upgrade_017_to_018.sh
pgsql_SCRIPTS += upgrade_018_to_019.sh
+pgsql_SCRIPTS += upgrade_019_to_020.sh
pgsql_SCRIPTS += wipe_data.sh
DISTCLEANFILES = ${pgsql_SCRIPTS}
diff --git a/src/share/database/scripts/pgsql/dhcpdb_create.pgsql b/src/share/database/scripts/pgsql/dhcpdb_create.pgsql
index 928730e1d9..3cad82a39d 100644
--- a/src/share/database/scripts/pgsql/dhcpdb_create.pgsql
+++ b/src/share/database/scripts/pgsql/dhcpdb_create.pgsql
@@ -6314,6 +6314,17 @@ UPDATE schema_version
-- This line concludes the schema upgrade to version 19.0.
+-- This line starts the schema upgrade to version 20.0.
+
+-- Add subnet id and address index for lease6.
+CREATE INDEX lease6_by_subnet_id_address ON lease6 (subnet_id, address ASC);
+
+-- Update the schema version number.
+UPDATE schema_version
+ SET version = '20', minor = '0';
+
+-- This line concludes the schema upgrade to version 20.0.
+
-- Commit the script transaction.
COMMIT;
diff --git a/src/share/database/scripts/pgsql/upgrade_019_to_020.sh.in b/src/share/database/scripts/pgsql/upgrade_019_to_020.sh.in
new file mode 100644
index 0000000000..b4df75dde1
--- /dev/null
+++ b/src/share/database/scripts/pgsql/upgrade_019_to_020.sh.in
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+# Copyright (C) 2023 Internet Systems Consortium, Inc. ("ISC")
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# shellcheck disable=SC1091
+# SC1091: Not following: ... was not specified as input (see shellcheck -x).
+
+# Exit with error if commands exit with non-zero and if undefined variables are
+# used.
+set -eu
+
+# shellcheck disable=SC2034
+# SC2034: ... appears unused. Verify use (or export if used externally).
+prefix="@prefix@"
+
+# Include utilities. Use installed version if available and
+# use build version if it isn't.
+if test -f "@datarootdir@/@PACKAGE_NAME@/scripts/admin-utils.sh"; then
+ . "@datarootdir@/@PACKAGE_NAME@/scripts/admin-utils.sh"
+else
+ . "@abs_top_builddir@/src/bin/admin/admin-utils.sh"
+fi
+
+VERSION=$(pgsql_version "$@")
+
+if [ "$VERSION" != "19.0" ]; then
+ printf 'This script upgrades 19.0 to 20.0. '
+ printf 'Reported version is %s. Skipping upgrade.\n' "${VERSION}"
+ exit 0
+fi
+
+psql "$@" >/dev/null <<EOF
+START TRANSACTION;
+
+-- This line starts the schema upgrade to version 20.0.
+
+-- Add subnet id and address index for lease6.
+CREATE INDEX lease6_by_subnet_id_address ON lease6 (subnet_id, address ASC);
+
+-- Update the schema version number.
+UPDATE schema_version
+ SET version = '20', minor = '0';
+
+-- This line concludes the schema upgrade to version 20.0.
+
+-- Commit the script transaction.
+COMMIT;
+
+EOF