parser

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

 

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

Конструктор array::sql

Sumo 24.09 10:27

Явно просится для массива и должно несложно получиться из hash::sql
^array::sql{запрос}[
  $.limit(n)
  $.offset(o)
  $.bind[variables hash] 
  $.type[hash|string|array]
]

^array::sql{select column from table} -> [col_val_1, col_val_2, ...] — если запрос возвращает только один столбец, 
то формируем массив в котором значения становятся элементами массива. ($.type[string])

^array::sql[select col1, col2, col3 from table] -> [$.col1[...] $.col2[...] $.col3[...];...] — если несколько колонок, 
то в каждом элементе хеш от строки ($.type[hash])

^array::sql[select col1, col2, col3 from table][$.type[arrya]] -> [[col1_val;col2_val;col3_val];...] — если несколько колонок, 
то в каждом элементе хеш от строки ($.type[hash])
Есть сильные сомнения, но для полноты картины можно добавить совместимый с hash::sql вариант:
^array::sql{select type_id, name from types_table}[$.hash(true)] -> воpвращает массив с номерами элементов из первой колонки, 
а значением из второй. Если колонок больше, то, как в хеше, получаем из первой номер элемента, а из остальных хеш для value.
Но я бы такое делал просто хешем.