Dibi\Drivers\FirebirdDriver::getProceduresMeta PHP Method

getProceduresMeta() public method

Returns metadata from stored procedures and their input and output parameters.
public getProceduresMeta ( ) : array
return array
    public function getProceduresMeta()
    {
        $res = $this->query("\n\t\t\tSELECT\n\t\t\t\tTRIM(p.RDB\$PARAMETER_NAME) AS PARAMETER_NAME,\n\t\t\t\tTRIM(p.RDB\$PROCEDURE_NAME) AS PROCEDURE_NAME,\n\t\t\t\tCASE p.RDB\$PARAMETER_TYPE\n\t\t\t\t\tWHEN 0 THEN 'INPUT'\n\t\t\t\t\tWHEN 1 THEN 'OUTPUT'\n\t\t\t\t\tELSE 'UNKNOWN'\n\t\t\t\tEND AS PARAMETER_TYPE,\n\t\t\t\tCASE f.RDB\$FIELD_TYPE\n\t\t\t\t\tWHEN 261 THEN 'BLOB'\n\t\t\t\t\tWHEN 14 THEN 'CHAR'\n\t\t\t\t\tWHEN 40 THEN 'CSTRING'\n\t\t\t\t\tWHEN 11 THEN 'D_FLOAT'\n\t\t\t\t\tWHEN 27 THEN 'DOUBLE'\n\t\t\t\t\tWHEN 10 THEN 'FLOAT'\n\t\t\t\t\tWHEN 16 THEN 'INT64'\n\t\t\t\t\tWHEN 8 THEN 'INTEGER'\n\t\t\t\t\tWHEN 9 THEN 'QUAD'\n\t\t\t\t\tWHEN 7 THEN 'SMALLINT'\n\t\t\t\t\tWHEN 12 THEN 'DATE'\n\t\t\t\t\tWHEN 13 THEN 'TIME'\n\t\t\t\t\tWHEN 35 THEN 'TIMESTAMP'\n\t\t\t\t\tWHEN 37 THEN 'VARCHAR'\n\t\t\t\t\tELSE 'UNKNOWN'\n\t\t\t\tEND AS FIELD_TYPE,\n\t\t\t\tf.RDB\$FIELD_LENGTH AS FIELD_LENGTH,\n\t\t\t\tp.RDB\$PARAMETER_NUMBER AS PARAMETER_NUMBER\n\t\t\tFROM RDB\$PROCEDURE_PARAMETERS p\n\t\t\t\tLEFT JOIN RDB\$FIELDS f ON f.RDB\$FIELD_NAME = p.RDB\$FIELD_SOURCE\n\t\t\tORDER BY p.RDB\$PARAMETER_TYPE, p.RDB\$PARAMETER_NUMBER;");
        $procedures = [];
        while ($row = $res->fetch(TRUE)) {
            $key = $row['PROCEDURE_NAME'];
            $io = trim($row['PARAMETER_TYPE']);
            $num = $row['PARAMETER_NUMBER'];
            $procedures[$key]['name'] = $row['PROCEDURE_NAME'];
            $procedures[$key]['params'][$io][$num]['name'] = $row['PARAMETER_NAME'];
            $procedures[$key]['params'][$io][$num]['type'] = trim($row['FIELD_TYPE']);
            $procedures[$key]['params'][$io][$num]['size'] = $row['FIELD_LENGTH'];
        }
        return $procedures;
    }