From 1317e5a921fb4fcc887f8362634b0a1db5c41792 Mon Sep 17 00:00:00 2001 From: Akshay Joshi Date: Tue, 28 Jan 2025 17:52:21 +0530 Subject: [PATCH] Change the logic of setval function, so that the next nextval of sequence will return exactly the specified value. #3273 --- docs/en_US/release_notes_9_0.rst | 3 +++ docs/en_US/sequence_dialog.rst | 3 +++ .../databases/schemas/sequences/static/js/sequence.ui.js | 1 + .../sequences/templates/sequences/sql/15_plus/update.sql | 2 +- .../sequences/templates/sequences/sql/default/update.sql | 2 +- .../sequences/tests/pg/default/alter_seq_props_msql.sql | 2 +- .../sequences/tests/ppas/default/alter_seq_props_msql.sql | 2 +- 7 files changed, 11 insertions(+), 4 deletions(-) diff --git a/docs/en_US/release_notes_9_0.rst b/docs/en_US/release_notes_9_0.rst index 08b507f7f..98b772197 100644 --- a/docs/en_US/release_notes_9_0.rst +++ b/docs/en_US/release_notes_9_0.rst @@ -20,9 +20,11 @@ Bundled PostgreSQL Utilities New features ************ + | `Issue #6513 `_ - Change button labels and color in delete confirmation dialog for all objects to improve UX. | `Issue #7708 `_ - Enhanced pgAdmin 4 with support for Workspace layouts. | `Issue #8332 `_ - Added the MAINTAIN privilege for PostgreSQL version 17 and above. + | `Issue #8391 `_ - Add support for OAuth2 profile array response, which also takes care of the GitHub Private Email ID issue. Housekeeping ************ @@ -32,6 +34,7 @@ Housekeeping Bug fixes ********* + | `Issue #3273 `_ - Change the logic of setval function, so that the next nextval of sequence will return exactly the specified value. | `Issue #5204 `_ - Fixed an issue where pgadmin cannot install into path with non ASCII characters. | `Issue #6044 `_ - Fixed an issue where filter dialog save fails when the PostgreSQL server/database connection is lost. | `Issue #6968 `_ - Fixed an issue where option key was not registering in PSQL tool. diff --git a/docs/en_US/sequence_dialog.rst b/docs/en_US/sequence_dialog.rst index 5d987e6b3..edc889f95 100644 --- a/docs/en_US/sequence_dialog.rst +++ b/docs/en_US/sequence_dialog.rst @@ -35,6 +35,9 @@ Click the *Definition* tab to continue. Use the fields in the *Definition* tab to define the sequence: +* Use the *Current Value* field to specify the sequence object\'s current value. + The next nextval will return exactly the specified value, and sequence advancement + commences with the following nextval. *This field is only available in the edit mode*. * Use the *Increment* field to specify which value is added to the current sequence value to create a new value. * Provide a value in the *Start* field to specify the beginning value of the diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/static/js/sequence.ui.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/static/js/sequence.ui.js index 9e018f5f9..28c75920a 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/static/js/sequence.ui.js +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/static/js/sequence.ui.js @@ -136,6 +136,7 @@ export default class SequenceSchema extends BaseUISchema { }, { id: 'current_value', label: gettext('Current value'), type: 'int', mode: ['properties', 'edit'], group: gettext('Definition'), + helpMessage: gettext('Sets the sequence object\'s current value. The next nextval will return exactly the specified value, and sequence advancement commences with the following nextval.') }, { id: 'increment', label: gettext('Increment'), type: 'int', mode: ['properties', 'create', 'edit'], group: gettext('Definition'), diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequences/sql/15_plus/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequences/sql/15_plus/update.sql index 891645fc6..74ac6ea6c 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequences/sql/15_plus/update.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequences/sql/15_plus/update.sql @@ -20,7 +20,7 @@ ALTER SEQUENCE IF EXISTS {{ conn|qtIdent(o_data.schema, data.name) }} {% endif %} {% if data.current_value is defined %} {% set seqname = conn|qtIdent(o_data.schema, data.name) %} -SELECT setval({{ seqname|qtLiteral(conn) }}, {{ data.current_value }}, true); +SELECT setval({{ seqname|qtLiteral(conn) }}, {{ data.current_value }}, false); {% endif %} {% if data.relpersistence in [True, False] and data.relpersistence != o_data.relpersistence %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequences/sql/default/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequences/sql/default/update.sql index 4dee0445b..04c7eb001 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequences/sql/default/update.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequences/sql/default/update.sql @@ -20,7 +20,7 @@ ALTER SEQUENCE IF EXISTS {{ conn|qtIdent(o_data.schema, data.name) }} {% endif %} {% if data.current_value is defined %} {% set seqname = conn|qtIdent(o_data.schema, data.name) %} -SELECT setval({{ seqname|qtLiteral(conn) }}, {{ data.current_value }}, true); +SELECT setval({{ seqname|qtLiteral(conn) }}, {{ data.current_value }}, false); {% endif %} {% set defquery = '' %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_props_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_props_msql.sql index a94db5b3a..f70556615 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_props_msql.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/pg/default/alter_seq_props_msql.sql @@ -1,4 +1,4 @@ -SELECT setval(E'public."Seq1_$%{}[]()&*^!@""''`\\/#"', 7, true); +SELECT setval(E'public."Seq1_$%{}[]()&*^!@""''`\\/#"', 7, false); ALTER SEQUENCE IF EXISTS public."Seq1_$%{}[]()&*^!@""'`\/#" INCREMENT 12 diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_props_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_props_msql.sql index a94db5b3a..f70556615 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_props_msql.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/tests/ppas/default/alter_seq_props_msql.sql @@ -1,4 +1,4 @@ -SELECT setval(E'public."Seq1_$%{}[]()&*^!@""''`\\/#"', 7, true); +SELECT setval(E'public."Seq1_$%{}[]()&*^!@""''`\\/#"', 7, false); ALTER SEQUENCE IF EXISTS public."Seq1_$%{}[]()&*^!@""'`\/#" INCREMENT 12