summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/TODO.txt
blob: 5c0f35c56fc4b5982f3e68872397a17d1fedf690 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Thread 5 Crashed:: Thread (pooled)
0   libcoreSQLiteStudio.1.0.0.dylib	0x0000000101f24ba7 QHash<QString, QVariant>::value(QString const&) const + 23
1   libcoreSQLiteStudio.1.0.0.dylib	0x0000000101f24ad4 QHash<QString, QVariant>::operator[](QString const&) const + 36
2   libcoreSQLiteStudio.1.0.0.dylib	0x0000000101f24936 SqlResultsRow::value(QString const&) const + 54
3   libcoreSQLiteStudio.1.0.0.dylib	0x0000000101f06c1a SchemaResolver::getAllObjects(QString const&) + 1178
4   libcoreSQLiteStudio.1.0.0.dylib	0x0000000101f06746 SchemaResolver::getAllObjects() + 70
5   libguiSQLiteStudio.1.0.0.dylib	0x000000010252f428 SqlEditor::refreshValidObjects()::$_0::operator()() const + 456 (sqleditor.cpp:529)
6   libguiSQLiteStudio.1.0.0.dylib	0x000000010252f1ec QtConcurrent::StoredFunctorCall0<void, SqlEditor::refreshValidObjects()::$_0>::runFunctor() + 28 (qtconcurrentstoredfunctioncall.h:72)
7   libguiSQLiteStudio.1.0.0.dylib	0x0000000102534ca1 QtConcurrent::RunFunctionTask<void>::run() + 81 (qtconcurrentrunbase.h:132)
8   libguiSQLiteStudio.1.0.0.dylib	0x0000000102534dbc non-virtual thunk to QtConcurrent::RunFunctionTask<void>::run() + 28 (qtconcurrentrśunbase.h:141)


* Outstanding features for 3.1:
- migrate updates engine to Qt Install Framework
- loadable extensions full support
- BLOB preview engine based on plugins
- ERD plugin
- DB compare plugin
- Foreign Key value suggestions in GridView
- Foreign Key previews in subframes
- executing query with bind params
- comments support in formatter

* Next versions:
- object names (columns, tables, etc) in dialogs should be validated against suffix/prefix whitespaces and if they appear, user should be asked for confirmation
- small useful features: generating template queries from context menu for table/view, from data view.
- code templates
- commiting DataView should be async
- syntax checkers as services - per language
- code assistants as services - per language
- specialized validation of expressions for DEFAULT constraint.
- "recovery" after failed startup - detecting if previous start crashed and if yes, propose cleaning of configuration.
- tcl highlighter
- highlighting occurrences of the same object in the query when cursor is on it
- plugin to do performance testing
- plugins to generate artifacts
- qtscript syntax checker
- tcl syntax checker
- dbf import
- dbf export
- code assistant as a service with plugins, so it can be extended with other langs and injected in custom functions window, collations window, etc
- in configuration dialog option to disable each individual native SQL function
- move "integrity check" into dedicated window, add "PRAGMA foreign_key_check" as a second stage of checking and present all in one window
- tips&tricks dialog
- crash management
- SqlEditor::refreshValidObjects() doesn't add valid object names from other databases (not yet attached). It might be tricky to implement.
- need an idea for some smart "revert" or "backup", so users are protected from accidentaly deleting table, or data in table.
- expose query executor steps chain to plugins
- complete plugin for "Search in database(s)"
- complete plugin for compare tables/databases
- executing queries with bind parameters
- completer: when suggesting table in FROM clause, look at columns after SELECT to give related tables first.
- constraints tab in table window should have toolbar for adding/editing/deleting constraints

CLI:
- plugin management commands
- export commands
- import commands
- populate commands
- formatting command

UNIT TESTS:
- Parser::parse: more complex examples, errors detecting
- Lexer::detokenize
- utils_sql (for splitQueries() check the CREATE TRIGGER)
- utils
- SelectResolver
- SchemaResolver

* Advanced syntax error checks:
- many idxColumns are not allowed for column FK
- autoincrement not allowed for not integer type