Project

General

Profile

Actions

Bug #11325

closed

SQL: CALL()

Added by Carsten Rose over 3 years ago. Updated over 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
Carsten Rose
Target version:
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

Related to QFQ - Bug #11630: Bitte check ob CALL() in 20.11.0 noch so funktioniert wie in 20.4.1ClosedCarsten Rose25.11.202001.06.2022

Actions
Actions #1

Updated by Carsten Rose over 3 years ago

  • Description updated (diff)
Actions #2

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.

Actions #3

Updated by Carsten Rose over 3 years ago

  • Tracker changed from Support to Feature
Actions #4

Updated by Carsten Rose over 3 years ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100
Actions #5

Updated by Carsten Rose over 3 years ago

  • Target version changed from next5 to 20.11.0
Actions #6

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
Actions #7

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()
    
    
Actions #8

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.
Erklaerung:
  • Die SP `fake()` liefert kein Resultset, das ist ein Insert. Eine SP mit `select()` funktioniert!.
Actions #9

Updated by Carsten Rose over 3 years ago

  • Tracker changed from Feature to Bug
Actions #10

Updated by Carsten Rose over 3 years ago

  • Subject changed from QFQ: CALL() to SQL: CALL()
Actions #11

Updated by Carsten Rose about 2 years ago

  • Assignee changed from Carsten Rose to Enis Nuredini
  • Target version changed from next5 to 355
Actions #12

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.

Actions #13

Updated by Carsten Rose almost 2 years ago

  • Target version changed from 355 to 22.5.0
Actions #14

Updated by Carsten Rose almost 2 years ago

  • Status changed from Feedback to Closed
Actions #15

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

Also available in: Atom PDF