Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/MariaDB/mysql-test/main/   (MariaDB Server Version 8.1-8.4©)  Datei vom 1.9.2026 mit Größe 2 kB image not shown  

Quelle  ps_in_func-sink.result   Sprache: Lisp

 

#
# MDEV-39518 Allow prepared statements in stored functions in assignment right hand
#
#
# MDEV-40315 Executing dynamic SQL (via PS) bypasses ERROR ER_SP_NO_RETSET
#
#
# EXECUTE IMMEDIATE 'SELECT..' is not OK
#
CREATE TABLE t1(a INT);
INSERT INTO t1 VALUES (1),(2),(3);
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;
$$
CALL p();
ERROR 0A000: Not allowed to return a result set from a function
DROP PROCEDURE p;
DROP FUNCTION f_sel;
DROP TABLE t1;
#
# PREPARE 'SELECT..' + EXECUTE is not OK
#
CREATE TABLE t1(a INT);
INSERT INTO t1 VALUES (1),(2),(3);
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;
$$
CALL p();
ERROR 0A000: Not allowed to return a result set from a function
DROP PROCEDURE p;
DROP FUNCTION f_sel;
DROP TABLE t1;
#
# SELECT .. UNION is not OK
#
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;
$$
CALL p();
ERROR 0A000: Not allowed to return a result set from a function
DROP PROCEDURE p;
DROP FUNCTION f_sel;
#
# DELETE RETURNING is not OK
#
CREATE TABLE t1(a INT);
INSERT INTO t1 VALUES (1),(2),(3);
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;
$$
CALL p();
ERROR 0A000: Not allowed to return a result set from a function
DROP PROCEDURE p;
DROP FUNCTION f_sel;
DROP TABLE t1;
#
# UPDATE RETURNING is not OK
#
CREATE TABLE t1(a INT);
INSERT INTO t1 VALUES (1),(2),(3);
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;
$$
CALL p();
ERROR 0A000: Not allowed to return a result set from a function
DROP PROCEDURE p;
DROP FUNCTION f_sel;
DROP TABLE t1;
#
# SELECT INTO @var is OK
#
SET @a=NULL;
CREATE TABLE t1(a INT);
INSERT INTO t1 VALUES (1),(2),(3);
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;
$$
CALL p();
SELECT @a;
@a
3
SET @a=NULL;
DROP PROCEDURE p;
DROP FUNCTION f_sel;
DROP TABLE t1;
#
# INSERT .. SELECT is OK
#
CREATE TABLE t1(a INT);
CREATE TABLE t2 LIKE t1;
INSERT INTO t1 VALUES (1),(2),(3);
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;
$$
CALL p();
a
1
2
3
DROP PROCEDURE p;
DROP FUNCTION f_sel;
DROP TABLE t2;
DROP TABLE t1;
# End of 13.1 tests

Messung V0.5 in Prozent
C=50 H=100 G=79

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-10-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.