Eine aufbereitete Darstellung der Quelle

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

Benutzer

Quellcode-Bibliothek ps_in_func-sink.test  Sprache: unbekannt

 
Spracherkennung für: .test vermutete Sprache: SQL {SQL[92] Shell[60] ADA[46]} [Methode: maximale Elemente, drei Dimensionen]

--echo #
--echo # MDEV-39518 Allow prepared statements in stored functions in assignment right hand
--echo #

--echo #
--echo # MDEV-40315 Executing dynamic SQL (via PS) bypasses ERROR ER_SP_NO_RETSET
--echo #


--echo #
--echo # EXECUTE IMMEDIATE 'SELECT..' is not OK
--echo #

CREATE TABLE t1(a INT);
INSERT INTO t1 VALUES (1),(2),(3);
DELIMITER $$;
CREATE FUNCTION f_sel() RETURNS INT
BEGIN
  EXECUTE IMMEDIATE 'SELECT a FROM t1';
  RETURN 0;
END;
$$
CREATE PROCEDURE p()
BEGIN
  DECLARE v INT DEFAULT f_sel();
END;
$$
DELIMITER ;$$
--error ER_SP_NO_RETSET
CALL p();
DROP PROCEDURE p;
DROP FUNCTION f_sel;
DROP TABLE t1;


--echo #
--echo # PREPARE 'SELECT..' + EXECUTE is not OK
--echo #

CREATE TABLE t1(a INT);
INSERT INTO t1 VALUES (1),(2),(3);
DELIMITER $$;
CREATE FUNCTION f_sel() RETURNS INT
BEGIN
  PREPARE stmt FROM 'SELECT a FROM t1';
  EXECUTE stmt;
  DEALLOCATE PREPARE stmt;
  RETURN 0;
END;
$$
CREATE PROCEDURE p()
BEGIN
  DECLARE v INT DEFAULT f_sel();
END;
$$
DELIMITER ;$$
--error ER_SP_NO_RETSET
CALL p();
DROP PROCEDURE p;
DROP FUNCTION f_sel;
DROP TABLE t1;


--echo #
--echo # SELECT .. UNION is not OK
--echo #

DELIMITER $$;
CREATE FUNCTION f_sel() RETURNS INT
BEGIN
  EXECUTE IMMEDIATE 'SELECT 1 AS c1 UNION SELECT 2';
  RETURN 0;
END;
$$
CREATE PROCEDURE p()
BEGIN
  DECLARE v INT DEFAULT f_sel();
END;
$$
DELIMITER ;$$
--error ER_SP_NO_RETSET
CALL p();
DROP PROCEDURE p;
DROP FUNCTION f_sel;


--echo #
--echo # DELETE RETURNING is not OK
--echo #

CREATE TABLE t1(a INT);
INSERT INTO t1 VALUES (1),(2),(3);
DELIMITER $$;
CREATE FUNCTION f_sel() RETURNS INT
BEGIN
  EXECUTE IMMEDIATE 'DELETE FROM t1 WHERE a>=2 RETURNING a';
  RETURN 0;
END;
$$
CREATE PROCEDURE p()
BEGIN
  DECLARE v INT DEFAULT f_sel();
END;
$$
DELIMITER ;$$
--error ER_SP_NO_RETSET
CALL p();
DROP PROCEDURE p;
DROP FUNCTION f_sel;
DROP TABLE t1;


--echo #
--echo # UPDATE RETURNING is not OK
--echo #

CREATE TABLE t1(a INT);
INSERT INTO t1 VALUES (1),(2),(3);
DELIMITER $$;
CREATE FUNCTION f_sel() RETURNS INT
BEGIN
  EXECUTE IMMEDIATE 'UPDATE t1 SET a=a+10 RETURNING a';
  RETURN 0;
END;
$$
CREATE PROCEDURE p()
BEGIN
  DECLARE v INT DEFAULT f_sel();
END;
$$
DELIMITER ;$$
--error ER_SP_NO_RETSET
CALL p();
DROP PROCEDURE p;
DROP FUNCTION f_sel;
DROP TABLE t1;


--echo #
--echo # SELECT INTO @var is OK
--echo #

SET @a=NULL;
CREATE TABLE t1(a INT);
INSERT INTO t1 VALUES (1),(2),(3);
DELIMITER $$;
CREATE FUNCTION f_sel() RETURNS INT
BEGIN
  EXECUTE IMMEDIATE 'SELECT MAX(a) INTO @a FROM t1';
  RETURN 0;
END;
$$
CREATE PROCEDURE p()
BEGIN
  DECLARE v INT DEFAULT f_sel();
END;
$$
DELIMITER ;$$
CALL p();
SELECT @a;
SET @a=NULL;
DROP PROCEDURE p;
DROP FUNCTION f_sel;
DROP TABLE t1;


--echo #
--echo # INSERT .. SELECT is OK
--echo #

CREATE TABLE t1(a INT);
CREATE TABLE t2 LIKE t1;
INSERT INTO t1 VALUES (1),(2),(3);
DELIMITER $$;
CREATE FUNCTION f_sel() RETURNS INT
BEGIN
  EXECUTE IMMEDIATE 'INSERT INTO t2 SELECT * FROM t1';
  RETURN 0;
END;
$$
CREATE PROCEDURE p()
BEGIN
  DECLARE v INT DEFAULT f_sel();
  SELECT * FROM t2;
END;
$$
DELIMITER ;$$
CALL p();
DROP PROCEDURE p;
DROP FUNCTION f_sel;
DROP TABLE t2;
DROP TABLE t1;

--echo # End of 13.1 tests

[0.12QuellennavigatorsProjekt 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