Как вычислить тип и размерность полей MySQL исходя из исходников на c++

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Demis
прапорщик
Сообщения: 496
Зарегистрирован: 2015-05-25 14:36:32

Как вычислить тип и размерность полей MySQL исходя из исходников на c++

Непрочитанное сообщение Demis » 2023-07-03 14:40:41

Всем, Доброго!

Народ, подскажите, есть код на с++.
Он должен работать с MySQL, но с исходниками нет никаких данных о таблицах и их полях.

Название таблиц из исходника - вычисляемо.
Используются-ли хранимые процеруры - пока не понятно.

Вопрос: Как реконструировать тип, размерность полей?

Часть переменных достаточно легко вычисляется, например,
переменная в исходнике uint64_t start, значение которой потом пишется в таблицу БД, это будет поле с типом BIGINT.

Но есть и другие переменные:
unsigned short - какой близкий тип поля в мускуле?
и short - какой близкий тип поля в мускуле?

Или вот такое поле:

Код: Выделить всё

tuple.ofs = vector<unsigned short>( tuple2.ofs.begin()+left+1, tuple2.ofs.end() );
ofs это поле БД на MySQL, соответственно какой тип должен быть для сохранения вектора в таблице?

объявлено как параметр метода функции: const vector<TOutputTuple>& tuples
При этом:

Код: Выделить всё

struct TOutputTuple {
	uint64_t start;
	short k;
	vector<unsigned short> ofs;
};
Полные исходники открыто лежат на гите, если нужно дам ссылку.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Neus
майор
Сообщения: 2012
Зарегистрирован: 2008-09-08 21:59:56

Как вычислить тип и размерность полей MySQL исходя из исходников на c++

Непрочитанное сообщение Neus » 2023-07-03 21:46:55

Может там какой-нибудь ОРМ используется, раз нет скрипта для создания БД.
Physics is mathematics with the constraint of reality.
Engineering is physics with the constraint of money.


Аватара пользователя
Neus
майор
Сообщения: 2012
Зарегистрирован: 2008-09-08 21:59:56

Как вычислить тип и размерность полей MySQL исходя из исходников на c++

Непрочитанное сообщение Neus » 2023-07-04 15:47:47

Опечатка, я имел ввиду ORM.
Physics is mathematics with the constraint of reality.
Engineering is physics with the constraint of money.

Demis
прапорщик
Сообщения: 496
Зарегистрирован: 2015-05-25 14:36:32

Как вычислить тип и размерность полей MySQL исходя из исходников на c++

Непрочитанное сообщение Demis » 2023-07-04 18:43:28

А-а-а...
Тогда ну не совсем orm , я-бы сказал, что что-то посередине.
Т.е. объекты конечно собраны в библиотеку и потом используются методы.

Вплоть до того, что можно чистый sql гнать в некоторые методы.
Но добавленные программистом таблицы в общей библиотеке отсутствуют.

И, соответственно, почти чистый sql гонится.

Имена таблиц вычислил, хотя чего там, они открытым текстом в запросе видны.
А вот с типами есть "задвиги"...