diff options
author | Francis Dupont <fdupont@isc.org> | 2023-12-13 18:02:24 +0100 |
---|---|---|
committer | Francis Dupont <fdupont@isc.org> | 2024-01-17 09:48:36 +0100 |
commit | 02a49c0e7deffb3208a5f93ed4c6a5ad1f0fd45f (patch) | |
tree | 1fe1cb80c44efa889dd1fa2a26f5b45cca327e6a | |
parent | [#3074] addressed review comments (diff) | |
download | kea-02a49c0e7deffb3208a5f93ed4c6a5ad1f0fd45f.tar.xz kea-02a49c0e7deffb3208a5f93ed4c6a5ad1f0fd45f.zip |
[#3149] Added a new index
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | src/lib/mysql/mysql_constants.h | 2 | ||||
-rw-r--r-- | src/lib/pgsql/pgsql_connection.h | 2 | ||||
-rw-r--r-- | src/share/database/scripts/mysql/.gitignore | 1 | ||||
-rw-r--r-- | src/share/database/scripts/mysql/Makefile.am | 1 | ||||
-rw-r--r-- | src/share/database/scripts/mysql/dhcpdb_create.mysql | 11 | ||||
-rw-r--r-- | src/share/database/scripts/mysql/upgrade_020_to_021.sh.in | 66 | ||||
-rw-r--r-- | src/share/database/scripts/pgsql/.gitignore | 1 | ||||
-rw-r--r-- | src/share/database/scripts/pgsql/Makefile.am | 1 | ||||
-rw-r--r-- | src/share/database/scripts/pgsql/dhcpdb_create.pgsql | 11 | ||||
-rw-r--r-- | src/share/database/scripts/pgsql/upgrade_019_to_020.sh.in | 53 |
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 |