]> SAFE projects GIT repository - jmp/mailleur/commitdiff
Working with chatgpt about les trigger de database
authorJean-Marc Pigeon <jmp@safe.c>
Fri, 14 Nov 2025 15:26:53 +0000 (10:26 -0500)
committerJean-Marc Pigeon <jmp@safe.c>
Fri, 14 Nov 2025 15:26:53 +0000 (10:26 -0500)
sql/mailleur.sql
sql/preset.sql

index 8d3426d5dfc8becc4a16bdd7043e4a6878a926d6..76f2963b88c6a7b1c677871095db37e79c47e4f0 100644 (file)
@@ -175,10 +175,11 @@ CREATE TABLE admins       (
 #ifdef POSTGRESQL
 CREATE FUNCTION updpass()
   RETURNS trigger AS $$
-  DECLARE skip INT :=  0;
+  DECLARE skip BOOLEAN :=  FALSE;
   BEGIN
-    skip := current_setting('skip_password_trigger', true)::int;
-    IF skip = 0 THEN
+    SELECT COALESCE(MAX(skip_password_trigger),FALSE) INTO skip
+       FROM temp_skip_flag;
+    IF skip = FALSE THEN
       NEW.hash = md5(HASHING);
       NEW.password = crypt (NEW.password,gen_salt('md5'));
     ELSE
@@ -200,9 +201,10 @@ DELIMITER $$
 CREATE TRIGGER sethash 
   BEFORE UPDATE ON emails FOR EACH ROW
   BEGIN 
-    DECLARE skip INT DEFAULT 0;
-    SET skip = skip_password_trigger;
-    IF skip = 0 THEN
+    DECLARE skip BOOLEAN DEFAULT FALSE;
+    SELECT IFNULL(MAX(skip_password_trigger),FALSE) INTO skip
+       FROM temp_skip_flag;
+    IF skip = FALSE THEN
       set NEW.hash=MD5(HASHING);
       set NEW.password=encrypt(NEW.password,concat('$1$',md5(rand())));
     ELSE
@@ -214,9 +216,10 @@ CREATE TRIGGER sethash
 CREATE TRIGGER updhash
   BEFORE INSERT ON emails FOR EACH ROW
   BEGIN
-    DECLARE skip INT DEFAULT 0;
-    SET skip = skip_password_trigger;
-    IF skip = 0 THEN
+    DECLARE skip BOLLEAN DEFAULT FALSE;
+    SELECT IFNULL(MAX(skip_password_trigger),FALSE) INTO skip
+       FROM temp_skip_flag;
+    IF skip = FALSE THEN
       set NEW.hash=MD5(HASHING);
       set NEW.password=encrypt(NEW.password,concat('$1$',md5(rand())));
     ELSE
index 049e92108b6af6b1e24fa60971393e5c610ed5b5..42b2a78152d4f085c60057ba537c8db20e8baf88 100644 (file)
@@ -6,8 +6,11 @@
 /*                                                     */
 /********************************************************/
 
-//to update password the literal way
-SET skip_password_trigger = '1';
+CREATE TEMPORARY TABLE temp_skip_flag (
+       skip_password_trigger BOOLEAN
+       );
+
+INSERT INTO temp_skip_flag VALUES (TRUE);
 /********************************************************/
 /*                                                     */
 /*     Creating the bare minimun user configuration    */
@@ -26,4 +29,5 @@ INSERT INTO emails (email,password)
 /*     Preset value completed                          */
 /*                                                     */
 /********************************************************/
-RESET skip_password_trigger;
+DELETE FROM temp_skip_flag;
+