2016-08-12 04:35:24 +02:00
|
|
|
####################################################################################################################################
|
|
|
|
# DB VERSION MODULE
|
|
|
|
####################################################################################################################################
|
|
|
|
package pgBackRest::DbVersion;
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings FATAL => qw(all);
|
|
|
|
use Carp qw(confess);
|
|
|
|
|
|
|
|
use Exporter qw(import);
|
|
|
|
our @EXPORT = qw();
|
|
|
|
|
|
|
|
use pgBackRest::Common::Log;
|
|
|
|
|
2016-12-13 01:54:07 +02:00
|
|
|
####################################################################################################################################
|
|
|
|
# Supported page size
|
|
|
|
####################################################################################################################################
|
|
|
|
use constant PG_PAGE_SIZE => 8192;
|
|
|
|
push @EXPORT, qw(PG_PAGE_SIZE);
|
|
|
|
|
2016-08-12 04:35:24 +02:00
|
|
|
####################################################################################################################################
|
|
|
|
# PostgreSQL version numbers
|
|
|
|
####################################################################################################################################
|
2017-06-27 21:58:02 +02:00
|
|
|
use constant PG_VERSION_83 => '8.3';
|
|
|
|
push @EXPORT, qw(PG_VERSION_83);
|
2016-08-12 04:35:24 +02:00
|
|
|
use constant PG_VERSION_84 => '8.4';
|
|
|
|
push @EXPORT, qw(PG_VERSION_84);
|
|
|
|
use constant PG_VERSION_90 => '9.0';
|
|
|
|
push @EXPORT, qw(PG_VERSION_90);
|
|
|
|
use constant PG_VERSION_91 => '9.1';
|
|
|
|
push @EXPORT, qw(PG_VERSION_91);
|
|
|
|
use constant PG_VERSION_92 => '9.2';
|
|
|
|
push @EXPORT, qw(PG_VERSION_92);
|
|
|
|
use constant PG_VERSION_93 => '9.3';
|
|
|
|
push @EXPORT, qw(PG_VERSION_93);
|
|
|
|
use constant PG_VERSION_94 => '9.4';
|
|
|
|
push @EXPORT, qw(PG_VERSION_94);
|
|
|
|
use constant PG_VERSION_95 => '9.5';
|
|
|
|
push @EXPORT, qw(PG_VERSION_95);
|
|
|
|
use constant PG_VERSION_96 => '9.6';
|
|
|
|
push @EXPORT, qw(PG_VERSION_96);
|
2017-09-01 18:29:34 +02:00
|
|
|
use constant PG_VERSION_10 => '10';
|
|
|
|
push @EXPORT, qw(PG_VERSION_10);
|
2018-06-05 14:59:17 +02:00
|
|
|
use constant PG_VERSION_11 => '11';
|
|
|
|
push @EXPORT, qw(PG_VERSION_11);
|
2016-08-12 04:35:24 +02:00
|
|
|
|
2016-10-06 03:15:10 +02:00
|
|
|
use constant PG_VERSION_APPLICATION_NAME => PG_VERSION_90;
|
|
|
|
push @EXPORT, qw(PG_VERSION_APPLICATION_NAME);
|
2016-08-24 18:39:27 +02:00
|
|
|
use constant PG_VERSION_HOT_STANDBY => PG_VERSION_91;
|
|
|
|
push @EXPORT, qw(PG_VERSION_HOT_STANDBY);
|
|
|
|
use constant PG_VERSION_BACKUP_STANDBY => PG_VERSION_92;
|
|
|
|
push @EXPORT, qw(PG_VERSION_BACKUP_STANDBY);
|
|
|
|
|
2016-08-12 04:35:24 +02:00
|
|
|
####################################################################################################################################
|
|
|
|
# versionSupport
|
|
|
|
#
|
|
|
|
# Returns an array of the supported Postgres versions.
|
|
|
|
####################################################################################################################################
|
|
|
|
sub versionSupport
|
|
|
|
{
|
|
|
|
# Assign function parameters, defaults, and log debug info
|
|
|
|
my ($strOperation) = logDebugParam(__PACKAGE__ . '->versionSupport');
|
|
|
|
|
2017-06-27 21:58:02 +02:00
|
|
|
my @strySupportVersion = (PG_VERSION_83, PG_VERSION_84, PG_VERSION_90, PG_VERSION_91, PG_VERSION_92, PG_VERSION_93,
|
2018-06-05 14:59:17 +02:00
|
|
|
PG_VERSION_94, PG_VERSION_95, PG_VERSION_96, PG_VERSION_10, PG_VERSION_11);
|
2016-08-12 04:35:24 +02:00
|
|
|
|
|
|
|
# Return from function and log return values if any
|
|
|
|
return logDebugReturn
|
|
|
|
(
|
|
|
|
$strOperation,
|
|
|
|
{name => 'strySupportVersion', value => \@strySupportVersion}
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
push @EXPORT, qw(versionSupport);
|
|
|
|
|
|
|
|
1;
|