diff options
author | Tom Lane | 2011-02-16 17:39:45 +0000 |
---|---|---|
committer | Tom Lane | 2011-02-16 17:40:31 +0000 |
commit | 65076269ea54a8cd6e39f066a208c7d13aceac0a (patch) | |
tree | 00bb7af1d1fde14ae0e3e80e719abf9031bcd91b /src/backend/commands/extension.c | |
parent | b4a7e5980b2919d4d2a849d046a8e3a77e06fdb7 (diff) |
Make a no-op ALTER EXTENSION UPDATE give just a NOTICE, not ERROR.
This seems a bit more user-friendly.
Diffstat (limited to 'src/backend/commands/extension.c')
-rw-r--r-- | src/backend/commands/extension.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c index 7bfb17e417d..4bb79d49215 100644 --- a/src/backend/commands/extension.c +++ b/src/backend/commands/extension.c @@ -1035,11 +1035,6 @@ identify_update_path(ExtensionControlFile *control, ExtensionVersionInfo *evi_start; ExtensionVersionInfo *evi_target; - if (strcmp(oldVersion, newVersion) == 0) - ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("version to install or update to must be different from old version"))); - /* Extract the version update graph from the script directory */ evi_list = get_ext_ver_list(control); @@ -1262,6 +1257,12 @@ CreateExtension(CreateExtensionStmt *stmt) oldVersionName = strVal(d_old_version->arg); check_valid_version_name(oldVersionName); + if (strcmp(oldVersionName, versionName) == 0) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("FROM version must be different from installation target version \"%s\"", + versionName))); + updateVersions = identify_update_path(pcontrol, oldVersionName, versionName); @@ -2465,6 +2466,17 @@ ExecAlterExtensionStmt(AlterExtensionStmt *stmt) check_valid_version_name(versionName); /* + * If we're already at that version, just say so + */ + if (strcmp(oldVersionName, versionName) == 0) + { + ereport(NOTICE, + (errmsg("version \"%s\" of extension \"%s\" is already installed", + versionName, stmt->extname))); + return; + } + + /* * Identify the series of update script files we need to execute */ updateVersions = identify_update_path(control, |