diff --git a/docs/en_US/extension_dialog.rst b/docs/en_US/extension_dialog.rst index 4f6f3a80b..34ad4f377 100644 --- a/docs/en_US/extension_dialog.rst +++ b/docs/en_US/extension_dialog.rst @@ -23,6 +23,9 @@ Use the fields in the *General* tab to identify an extension: * Use the drop-down listbox in the *Name* field to select the extension. Each extension must have a unique name. +* Move the switch next to *Cascade?* towards right position to automatically + install any extensions that this extension depends on that are not already + installed. * Store notes about the extension in the *Comment* field. Click the *Definition* tab to continue. @@ -55,7 +58,7 @@ the *Extension* dialog: :align: center The command creates the *adminpack* extension in the *public* schema. It is -version *1.0* of *adminpack*. +version *2.0* of *adminpack*. * Click the *Info* button (i) to access online help. * Click the *Save* button to save work. diff --git a/docs/en_US/images/extension_definition.png b/docs/en_US/images/extension_definition.png index 4ef2797a9..ceb760e57 100644 Binary files a/docs/en_US/images/extension_definition.png and b/docs/en_US/images/extension_definition.png differ diff --git a/docs/en_US/images/extension_general.png b/docs/en_US/images/extension_general.png index 44a28fcdb..f169e0ce4 100644 Binary files a/docs/en_US/images/extension_general.png and b/docs/en_US/images/extension_general.png differ diff --git a/docs/en_US/images/extension_sql.png b/docs/en_US/images/extension_sql.png index 8ca613a01..c1b722497 100644 Binary files a/docs/en_US/images/extension_sql.png and b/docs/en_US/images/extension_sql.png differ diff --git a/docs/en_US/release_notes_7_6.rst b/docs/en_US/release_notes_7_6.rst index ccae2d88c..f54254abe 100644 --- a/docs/en_US/release_notes_7_6.rst +++ b/docs/en_US/release_notes_7_6.rst @@ -21,6 +21,7 @@ New features ************ | `Issue #2595 `_ - Added Expression to CREATE INDEX. + | `Issue #3942 `_ - Added cascade option while creating an extension. | `Issue #6375 `_ - Added support for ALTER INDEX column statistics. | `Issue #6376 `_ - Added unlogged option while creating a sequence. | `Issue #6381 `_ - Added support for SYSTEM, CONCURRENTLY and TABLESPACE options in REINDEX. @@ -32,8 +33,8 @@ New features Housekeeping ************ - | `Issue #6588 `_ - Added support for PostgreSQL and EPAS 16 to ensure it works without any errors. | `Issue #3702 `_ - Generate software bill of materials as part of the package builds. + | `Issue #6588 `_ - Added support for PostgreSQL and EPAS 16 to ensure it works without any errors. Bug fixes ********* diff --git a/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.ui.js b/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.ui.js index b58c513c3..8f534d7eb 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.ui.js +++ b/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.ui.js @@ -20,6 +20,7 @@ export default class ExtensionsSchema extends BaseUISchema { schema: '', relocatable: false, is_sys_obj: false, + cascade: false, comment: null, }); fieldOptions = { @@ -87,6 +88,10 @@ export default class ExtensionsSchema extends BaseUISchema { } } }, + { + id: 'cascade', label: gettext('Cascade?'), + type: 'switch', mode: ['create'], + }, { id: 'oid', label: gettext('OID'), type: 'text', mode: ['properties'], diff --git a/web/pgadmin/browser/server_groups/servers/databases/extensions/templates/extensions/sql/create.sql b/web/pgadmin/browser/server_groups/servers/databases/extensions/templates/extensions/sql/create.sql index e53df271e..66977e61d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/extensions/templates/extensions/sql/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/extensions/templates/extensions/sql/create.sql @@ -7,13 +7,17 @@ {% endif %} {% if data.name %} -CREATE EXTENSION{% if add_not_exists_clause %} IF NOT EXISTS{% endif %} {{ conn|qtIdent(data.name) }}{% if data.schema == '' and data.version == '' %};{% endif %} +CREATE EXTENSION{% if add_not_exists_clause %} IF NOT EXISTS{% endif %} {{ conn|qtIdent(data.name) }}{% if data.schema == '' and data.version == '' and not data.cascade %};{% endif %} {% if data.schema %} - SCHEMA {{ conn|qtIdent(data.schema) }}{% if data.version == '' %};{% endif %} + SCHEMA {{ conn|qtIdent(data.schema) }}{% if data.version == '' and not data.cascade %};{% endif %} {% endif %} {% if data.version %} - VERSION {{ conn|qtIdent(data.version) }}; + VERSION {{ conn|qtIdent(data.version) }}{% if not data.cascade %};{% endif %} +{% endif %} +{% if data.cascade %} + + CASCADE; {% endif %} {% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/extensions/tests/default/msql_create_extension_with_all_options.sql b/web/pgadmin/browser/server_groups/servers/databases/extensions/tests/default/msql_create_extension_with_all_options.sql index 68217d76f..044cea18b 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/extensions/tests/default/msql_create_extension_with_all_options.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/extensions/tests/default/msql_create_extension_with_all_options.sql @@ -1,3 +1,4 @@ CREATE EXTENSION sslinfo SCHEMA test_extension_schema - VERSION "1.2"; + VERSION "1.2" + CASCADE; diff --git a/web/pgadmin/browser/server_groups/servers/databases/extensions/tests/default/tests.json b/web/pgadmin/browser/server_groups/servers/databases/extensions/tests/default/tests.json index 9a13fb97e..0d6606651 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/extensions/tests/default/tests.json +++ b/web/pgadmin/browser/server_groups/servers/databases/extensions/tests/default/tests.json @@ -9,7 +9,8 @@ "data": { "name": "sslinfo", "schema": "test_extension_schema", - "version": "1.2" + "version": "1.2", + "cascade": true }, "expected_sql_file": "create_extension_with_all_options.sql", "expected_msql_file": "msql_create_extension_with_all_options.sql", diff --git a/web/pgadmin/browser/server_groups/servers/databases/extensions/tests/utils.py b/web/pgadmin/browser/server_groups/servers/databases/extensions/tests/utils.py index 240e4091a..cf4764ec7 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/extensions/tests/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/extensions/tests/utils.py @@ -19,7 +19,8 @@ def get_extension_data(schema_name): data = { "name": "cube", "relocatable": "true", - "schema": schema_name + "schema": schema_name, + "cascade": "true" } return data