215 похожих чатов

> Мб просто возвращать луа таблички? а что это значит. вот

есть s:select{} который возвращает

- - [1, 'A']
- [1, 'B']
- [1, 'C']
- [2, 'D']нужно чтобы возвращалось

- - [{id=1, key= 'A']}
...

8 ответов

9 просмотров

Если речь о коннекторе, то только прикапывать схему, если речь о box API

Eugene-Leonovich Автор вопроса

о коннекторе. не, меня не реализация интересует, а высокоуровневое апи, которое будет юзер дергать. например, на клиенте он может сделать select() и получить числовые ключи, если формат не задан, либо строковые, если задан. Возвращать разный формат данных в зависимости от какого-то внешнего скрытого состояния не есть хорошо с точки зрения эргономики, поэтому нужно либо вводить какой-то явный флажок "верни мне результат со строковыми ключами или ошибку, если формат не задан", либо отдельные методы под каждый вариант. я вот больше про это, думал может кто уже таким озадачился в своем коннекторе

Если делается execute, то все равно вызывается луа. Можно из нее вернуть луа таблицы, которые сделают :tomap() на таплы, как выше

Eugene-Leonovich Автор вопроса

а как это будет по скорости, если сравнивать с голым селектом + :format() перед этим

Я за явный выбор. Хочешь по именам обращаться к полю, дёргай функцию которая возвращает тебе тупл с именами

Ну и явно проверяешь сразу, схема существует или нет. В дальнейшем конечно надо дать возможность передавать свою схему.

Eugene-Leonovich Автор вопроса

как то сомнительно давать возможность передавать свою схему. можно получить проблему рассинхронизации переданной и актуальной схем

Ничего плохого не произойдёт, имхо. Юзер увидит ошибку при обращении к несуществующему полю или при ошибке конверсии формата, а если он не обращается к неправильным полям своей схемы, то ничего не увидит. Но это просто мысли, дизайна такого пока нет.

Похожие вопросы

Обсуждают сегодня

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
А дальше что?.. Записать в файл, потом в Код?.. И потом разбирать как-то?..
Хаскель Моисеевич Гопник
14
доброго времени. db, dw и прочие исполняются при трансляции или при выполнении программы?
lutayyy
10
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
например asm AT&T ... label: .string "hi" ... # not error lea label(%rip), %rax # error ( not compile ) mov %rip, %rax # not error mov (%rip), %rax из форумов прочитал чт...
Simple Sorcerer
6
Почему никто не подсказал, что можно объявить свои типы данных, в которых меньше полей, чем в отданном джейсоне, и добавлять их по необходимости?
Strange Rabbit
10
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Есть предложения, как подобное можно упростить?
Hemul GM
12
Карта сайта