diff --git a/ToDo.md b/ToDo.md index 2e79edb..fa4dfa5 100644 --- a/ToDo.md +++ b/ToDo.md @@ -1,47 +1,11 @@ -# TODO -- [x] `order_by()`: добавить возможность указывать несколько полей для сортировки [0.3.4] -- [x] `group_by()`: добавить возможность указывать несколько полей [0.3.4] -- [x] `_prepare_conditions()`: если 2й параметр (вместо условия) не оператор, то оператор `=` [0.3.4] -- [x] `_prepare_conditions()`: если 2й параметр список, то оператор `IN` [0.3.4] -- [x] добавить метод `pluck(id, column)` (как в Laravel) [0.3.4] -- [x] добавить методы `is_null(field)`, `is_not_null(field)` и `not_null(field)` [0.3.5] -- [x] в методах `like()` и `not_like()` можно без `[]` [0.3.5] -- [x] св-во `_print_errors` и параметр в `__init__()` [0.3.5] -- [x] параметр `result_dict` в `QB.__init__()` [0.3.5] -- [x] в методе `get_sql()` `?` меняются на соответствующие значения [0.3.5] -- [x] рефактор методов `query()`, `pluck()` и `column()` [0.3.6] -- [X] вынести в отдельный файл классы `MetaSingleton` и `DataBase` [0.4] -- [X] добавить мат.операторы (и не только) в поля [0.4] -- [X] добавить `UNION` и `UNION ALL` [0.4] -- [X] добавить `DISTINCT` в `SELECT` [0.4] -- [X] добавить `EXCEPT` в `SELECT` [0.4] -- [X] добавить `INTERSECT` в `SELECT` [0.4] -- [X] в методе `get_sql()` параметр `with_values=True` [0.4] -- [X] добавить метод `has_error()` на замену `get_error()` в след.версии [0.4] -- [X] добавить метод `__str__()` [0.4] -- [X] добавить `list` в типы параметров `table` [0.4] -- [X] покрыть тестами SQL методы: `SELECT, INSERT, UPDATE, DELETE` (примеры из README + новые методы) [0.4] -- [X] разделить документацию на файлы [0.4] -- [X] добавить новые фун-ии в документацию [0.4] -- [X] добавить `CREATE VIEW view_name AS SQL_SELECT` [0.4] -- [X] добавить `DROP VIEW view_name` [0.4] -- [ ] в `.where()` можно передавать по 1 или 2 строки вместо списка [0.4?] -- [ ] добавить скобки `()` в выражения (subquery). сложенные выражения (select в select'e), использование в field, from, where, join [0.5?] -- [ ] добавить `WHERE EXISTS` [0.5?] -- [ ] добавить `BETWEEN` [0.5?] -- [ ] добавить `WITH` [0.5?] -- [ ] создать **класс `TableBuilder`** для манипуляций с таблицами [0.5?] -- [ ] перенести в **`TableBuilder`** методы `qb.drop()` и `qb.truncate()` [0.5?] -- [ ] перенести в **`TableBuilder`** методы `qb.create_view()` и `qb.drop_view()` [0.5?] -- [ ] добавить транзакции? [0.5?] -- [ ] **! добавить поддержку MySQL !** [0.5?] -- [ ] добавить метод для вызова процедур (SQL: CALL) `mysql` [0.5?] -- [ ] поддержка PosgreSQL [0.5?] -- [ ] **добавить исключения вместо сообщений об ошибках** [0.5?] -- [ ] добавить парсинг в объект? -- [ ] класс `Collection`, вынести туда методы `first()`, `last()`, `all()`, `one()` и т.п. -- [ ] класс `DBQuery`, вынести в него `query()` и т.п. возвращает класс `Collection`, добавить конвертацию в список (текущий формат) -- [ ] класс `DataMapper`, переводит таблицу в объект. поля таблицы = св-ва - -https://dev-gang.ru/article/cozdanie-s-nulja-prostoi-orm-na-python-5qz3j9ooul/ -https://www.sqlitetutorial.net/sqlite-subquery/ +## ToDo +I'm going to add the next features into future versions +- write more unit testes +- add subqueries for QueryBuilder +- add `BETWEEN` +- add `WHERE EXISTS` +- add TableBuilder class (for beginning `CREATE TABLE`, move `qb.drop()` and `qb.truncate()` into it) +- add MySQL support +- add PostgreSQL support +- add `WITH` +- and probably something more