parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Misha v.3 16.06.2016 14:45

я бы ещё подумал об усовершенствовании hash::sql (опции?), чтобы можно было использовать вместо table (хотя он будет жрать больше памяти).

основная идея в том, чтобы мог возвращать "array" (хэш с числовыми ключами?). опционально -- чтобы можно было указать опции, согласно которым он сделал бы преобразование данных (по аналогии с json:parse), чтобы можно было получить как бы таблицу, гда значения не строки, а уже объекты (числа, даты, bool).

типа:
@get[]
$result[^hash::sql{
    SELECT
        id,
        thread_id,
        is_published,
        dt,
        name,
        options
    FROM
        forum_messages
    WHERE
        ...
}[
    $.array(true)
    $.transform[
        $.id[int]
        $.thread_id[int]
        $.dt[date]
        $.is_published[$method]
        $.options[$method]
    ]
]]


@method[key;value]
^switch[$key]{
    ^case[options]{
        $result[^json:parse[^taint[as-is][$value]]]
    }
    ^case[is_published]{
        $result(^value.bool(false))
    }
    ^case[DEFAULT]{
        $result[$value]
    }
}