есть s:select{} который возвращает
- - [1, 'A']
- [1, 'B']
- [1, 'C']
- [2, 'D']нужно чтобы возвращалось
- - [{id=1, key= 'A']}
...
Если речь о коннекторе, то только прикапывать схему, если речь о box API
о коннекторе. не, меня не реализация интересует, а высокоуровневое апи, которое будет юзер дергать. например, на клиенте он может сделать select() и получить числовые ключи, если формат не задан, либо строковые, если задан. Возвращать разный формат данных в зависимости от какого-то внешнего скрытого состояния не есть хорошо с точки зрения эргономики, поэтому нужно либо вводить какой-то явный флажок "верни мне результат со строковыми ключами или ошибку, если формат не задан", либо отдельные методы под каждый вариант. я вот больше про это, думал может кто уже таким озадачился в своем коннекторе
Если делается execute, то все равно вызывается луа. Можно из нее вернуть луа таблицы, которые сделают :tomap() на таплы, как выше
а как это будет по скорости, если сравнивать с голым селектом + :format() перед этим
Я за явный выбор. Хочешь по именам обращаться к полю, дёргай функцию которая возвращает тебе тупл с именами
Ну и явно проверяешь сразу, схема существует или нет. В дальнейшем конечно надо дать возможность передавать свою схему.
как то сомнительно давать возможность передавать свою схему. можно получить проблему рассинхронизации переданной и актуальной схем
Ничего плохого не произойдёт, имхо. Юзер увидит ошибку при обращении к несуществующему полю или при ошибке конверсии формата, а если он не обращается к неправильным полям своей схемы, то ничего не увидит. Но это просто мысли, дизайна такого пока нет.
Обсуждают сегодня