Actions
Bug #11325
closedSQL: CALL()
Start date:
16.10.2020
Due date:
% Done:
100%
Estimated time:
Discuss:
Prio Planung:
No
Vote:
Description
Aktuell funktioniert nicht:
10.sql = CALL funktionsname
Unter https://mariadb.com/kb/en/call/ wird in den Kommentaren diskutiert was passiert wenn eine Funktion weitere Funktionen aufruft.
Es ist nicht klar wie wir die Ausgabe in QFQ implmentieren, resp. was mysqli() zurueck liefert.
Related issues
Updated by Christoph Fuchs over 3 years ago
Wir nutzen Remote Procedure Calls intensiv in Magnolia: die Tabelle der Fakultätsangehörigen wird direkt via die
RPC: "call userGroupFunctions('StatFM', 'en','inst,func');" generiert. Der Vorteil liegt in der dynamischen Generierung der Select und Where Bedingungen.
Je nach Parameter werden unterschiedliche Tabellen eingebunden.
Updated by Carsten Rose over 3 years ago
- Tracker changed from Support to Feature
Updated by Carsten Rose over 3 years ago
- Status changed from New to Closed
- % Done changed from 0 to 100
Applied in changeset typo3-qfq|8cd45997314e1612db1e9e6a35378d9bc9fd7ac3.
Updated by Carsten Rose over 3 years ago
- Target version changed from next5 to 20.11.0
Updated by Carsten Rose over 3 years ago
- Related to Bug #11630: Bitte check ob CALL() in 20.11.0 noch so funktioniert wie in 20.4.1 added
Updated by Carsten Rose over 3 years ago
- Status changed from Closed to In Progress
- Target version changed from 20.11.0 to next5
- Es ist nachwievor nicht klar was sich veraendert hat. QFQ oder MariaDB oder MySQLi.
- Unter https://www.php.net/manual/en/mysqli.quickstart.stored-procedures.php am Ende von Example 3 steht: "Please note, that not every MYSQL server version may support preparing the CALL SQL statement."
- Folgender Code produziert den Fehler
# Stored Procedure DELIMITER $$ CREATE DEFINER=`admino`@`localhost` PROCEDURE `fake`(IN `myVal` INT) NO SQL insert into test (`d`) values (@myVal)$$ DELIMITER ; # QFQ Code 10.sql = CALL fake(@myVal := 2) # Fehler der ausgeloest wird ok: $this->mysqli->prepare($sql) ok: $this->mysqli_stmt->execute() fail: $this->mysqli_stmt->get_result()
Updated by Carsten Rose over 3 years ago
- Warum liefert $this->mysqli_stmt->errno keinen Fehlercode?
- Vermutlich sollten die Rows eines CALL via STORE_RECORD verfuegbar gemacht werden.
- Darum wurde in 8cd45997314e1612db1e9e6a35378d9bc9fd7ac3 das Resultset abgefragt.
- Genau das abholen des Resultsets macht Probleme.
- Aktuell scheint es aber so, das der Fehler immer ausgeloest wird - dann haette das Problem schon vorher auffallen muessen.
- Die SP `fake()` liefert kein Resultset, das ist ein Insert. Eine SP mit `select()` funktioniert!.
Updated by Carsten Rose over 3 years ago
- Subject changed from QFQ: CALL() to SQL: CALL()
Updated by Carsten Rose about 2 years ago
- Assignee changed from Carsten Rose to Enis Nuredini
- Target version changed from next5 to 355
Updated by Enis Nuredini about 2 years ago
- Status changed from In Progress to Feedback
- Assignee changed from Enis Nuredini to Carsten Rose
Mergen und beim Tool überprüfen. Eigene Tests waren erfolgreich.
Updated by Carsten Rose almost 2 years ago
- Target version changed from 355 to 22.5.0
Updated by Carsten Rose almost 2 years ago
- Status changed from Feedback to Closed
Updated by Carsten Rose over 1 year ago
- Target version changed from 22.5.0 to 22.11.0
- Prio Planung set to No
Actions