Dibi\Drivers\FirebirdDriver::getColumns PHP Метод

getColumns() публичный Метод

Returns metadata for all columns in a table.
public getColumns ( $table ) : array
Результат array
    public function getColumns($table)
    {
        $table = strtoupper($table);
        $res = $this->query("\n\t\t\tSELECT TRIM(r.RDB\$FIELD_NAME) AS FIELD_NAME,\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\tr.RDB\$DEFAULT_VALUE AS DEFAULT_VALUE,\n\t\t\t\tCASE r.RDB\$NULL_FLAG\n\t\t\t\t\tWHEN 1 THEN 'FALSE' ELSE 'TRUE'\n\t\t\t\tEND AS NULLABLE\n\t\t\tFROM RDB\$RELATION_FIELDS r\n\t\t\t\tLEFT JOIN RDB\$FIELDS f ON r.RDB\$FIELD_SOURCE = f.RDB\$FIELD_NAME\n\t\t\tWHERE r.RDB\$RELATION_NAME = '{$table}'\n\t\t\tORDER BY r.RDB\$FIELD_POSITION;");
        $columns = [];
        while ($row = $res->fetch(TRUE)) {
            $key = $row['FIELD_NAME'];
            $columns[$key] = ['name' => $key, 'table' => $table, 'nativetype' => trim($row['FIELD_TYPE']), 'size' => $row['FIELD_LENGTH'], 'nullable' => $row['NULLABLE'] === 'TRUE', 'default' => $row['DEFAULT_VALUE'], 'autoincrement' => FALSE];
        }
        return $columns;
    }