Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  create_trigger2.test  Sprache: unbekannt

 
Spracherkennung für: .test vermutete Sprache: SQL {SQL[99] VDM[88] Lisp[80]} [Methode: maximale Elemente, drei Dimensionen]

--source include/have_debug.inc

#
# Testing of atomic CREATE TRIGGER when write fails in create_definition_file
#

let $MYSQLD_DATADIR= `SELECT @@datadir`;

let $engine_count=1;
let $engines='aria';
let $old_debug=`select @@debug_dbug`;

let $e=0;
--disable_query_log

create table t1 (a int not null, b int not null);
insert into t1 values(1,1);
flush tables;

# sql_create_definition_file is called twice per CREATE TRIGGER and 1 more
# in case we drop an existing trigger, so we need to test 3*2 +1 failures
# and also when there is no failures (= 8)
let $try_count=8;

let $r=0;
while ($r < $try_count)
{
  inc $r;

  echo "position: $r";
  --eval set @@debug_dbug="+d,definition_file_simulate_write_error",@debug_error_counter=$r;
  let $errno=0;
  delimiter |;
  --error 0,3
  create trigger t1_trg before insert on t1 for each row
  begin
    if isnull(new.a) then
      set new.a:= 1000;
    end if;
  end|
  delimiter ;|
  let $error=$errno;
  if ($error == 0)
  {
    delimiter |;
    --error 0,3
    create or replace trigger t2_trg before insert on t1 for each row
    begin
      if isnull(new.b) then
        set new.b:= 2000;
      end if;
    end|
    delimiter ;|
    let $error=$errno;
  }
  if ($error == 0)
  {
    delimiter |;
    --error 0,3
    create or replace trigger t2_trg before insert on t1 for each row
    begin
      if isnull(new.b) then
        set new.b:= 3000;
      end if;
    end|
    delimiter ;|
    let $error=$errno;
  }
  --eval set @@debug_dbug="$old_debug"

  # Check which tables still exists
  --list_files $MYSQLD_DATADIR/test *TR*
  --list_files $MYSQLD_DATADIR/test *sql*

  --replace_column 7 #
  --error 0,ER_TRG_DOES_NOT_EXIST
  SHOW CREATE TRIGGER t1_trg;
  --replace_column 7 #
  --error 0,ER_TRG_DOES_NOT_EXIST
  SHOW CREATE TRIGGER t2_trg;
  --disable_warnings
  drop trigger if exists t1_trg;
  drop trigger if exists t2_trg;
  --enable_warnings
}

drop table t1;

--enable_query_log

[Dauer der Verarbeitung: 0.28 Sekunden, vorverarbeitet 2026-10-08]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1126438
#Domains=1897691