This repository has been archived by the owner on May 9, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 18
/
CHANGELOG
235 lines (213 loc) · 9.8 KB
/
CHANGELOG
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
3.1
- Fix version check
- Add support for localization
- Add Italian localization
- Use setuptools because python dropped distutil -_-'
- Fix survey
- Drop windows
3.0
- UI shows different colours for different types
- Better documentation on the website
- By default relations are saved as json. This allows to keep the type
- Dates can no longer be added or subtracted
- Types are now inferred by column, no longer by cell
- Relations now use frozenset internally and are immutable
- Refactored parser to use better typing
- Refactored and fixed some optimizations
- Added more test cases
- Improved survey sending
- Prevent relation/field names from being reserved keywords
- Fixed issue in cli where loading an invalid file would lead to a crash
- Added typing hints throughout the code
- New major release, API changed
- Windows: installer installs python and uses pip to get dependencies
2.5
- Add new class of tests for queries that are supposed to fail
- Changes to make failures in commutative operators commutative too
- Added new optimization to remove useless joins
- Correct optimization over selection and product
- Fix Python code generator to correctly escape strings
- Improved multi-line text editor
- Multi-line mode has support for optimizations
- Workaround a QSettings bug so that sessions work again
- "Save" button works on the relation selected in the list, instead of the
one shown in the central table
2.4
- Improve error reporting
- Release is now signed with PGP
- Doesn't crash on network errors
- Fixed optimization introduced in 2.2 that did not hold in all cases
- Better handling of parenthesis inside string literals
- Emit less parenthesis in optimized queries
2.3
- Very small release. The windows setup now installs the C++ library
automatically.
- The setup was re-made on windows 10, so now it works properly on windows 10
and all the symbols are shown.
- If you don't use windows, this release is identical to the previous.
2.2
- Added again make install target
- Ctrl+C in the terminal will terminate the GUI
- UI indicates ongoing processing with a label
- Added new optimizations
- Added shortcuts within the UI
- History can be navigated with up/down arrows
- Single line edit mode allows for the resulting relation to be written
within the query textbox itself.
2.1
- Introduced sessions; GUI loads the same relations of the previous time
- redesigned GUI, to fit in smaller screens
- Fix bug in tokenizer
- Fixed bug where select on relations with '---' values would always fail
- Improve error reporting
- Fix bug in code to check for new version
- Performance improvements
- More Pythonic name for classes (API is compatible with version 2.0)
2.0
- Fix bug in relational-cli that made it crash when an exception was raised
- Point to new website
- Switch to Python3 and drop support for Python2
- Switch to Qt5
- Radical change of language. The UNICODE symbols used previously were meant for a
Canadian Aborigenal script. Now switched them to use UNICODE math symbols.
- Since the language is changing, take the chance to use better symbols for JOIN
- GUI has a new mode to insert multiple queries at once, assigning them to variables
- Automatic casting is now faster
- GUI can load multiple relations at once
- GUI will only assign default names to loaded relations, without prompting the user
1.2
- Better tokenizer, gives more indicative errors
- Parser gives more indicative errors
- Improved select_union_intersect_subtract optimization to avoid parenthesis whenever possible
- Moved feedback service, and added the code for it
- Different way of checking the latest version
- Removed support for pyside
1.1
- Incorrect relational operations now raise an exception instead of returning None
- Forces relations to have correct names for attributes
- Colored output in readline mode
- Can send email in survey
- Can check for new version online
- Can use both PySide and PyQt
- Removed buttons for adding and deleting tuples
- Can edit relations within the GUI
- API migrated to unicode (instead of utf-8 encoded strings)
1.0
- Adds history in the GUI
- Adds menus to the GUI
- Checks if given name to relations are valid
- Discards the old and not so functional tlb format
- Float type recognition is more robust, now handled using a regexp
- Date type recognition is more robust, now using a combination of regexp plus date object
- Integer type recognition now allows negative numbers in relations
- Rename operations are now much faster, content won't be copied unless subsequent updates, insert, updates or deletes will occur
- Added testsuite
- Module parallel does something, can execute queries in parallel
- Implemented select_union_intersect_subtract general optimization
- Removed encoding from .desktop file (was deprecated)
- Added manpage for relational-cli
- Internally uses set instead of lists to describe relation's content
- Tuples are internally mapped on tuples and no longer on lists
- Set hash method for the classes
- Parsing of strings representing dates is now cached, eliminating the need for double parse
- Fixed python expression tokenization, now uses native tokenizer
- Fixed optimization involving selection and parenthesis in the expression (Rev 260)
- Fixed futile_union_intersection_subtraction optimization that didn't work when selection operator was in the left subtree (Rev 261)
- Restyle of the GUI, splitters added
0.11
- Font is set only on windows (Rev 206)
- Improved futile_union_intersection_subtraction in case of A-A, when A is a sub-query (Rev 208)
- Improved futile_union_intersection_subtraction, handles when a branch of subtracion has a selection (Rev 209)
- Can load relations specified in command line (Rev 210)
- Using fakeroot instead of su in make debian (Rev 214)
- Fixed problem with float numbers with selection of certain relations (Rev 215)
- Added .desktop file on svn (Rev 216)
- Automatically fills some fields in the survey (Rev 217)
- When a query fails, shows the message of the exception (Rev220)
- Improved tokenizer for select in optimizations, now can accept operators in identifiers (Rev 220)
- Uses getopt to handle the command line in a more standard way
- Organized code so the ui can be either qt or command line
- Does not depend on QT anymore
- Added readline user interface
- Added division operator
0.10
- In optimizer, added a function that tokenizes an expression
- Document about complexity of operations
- Bug: error in update operation, it changed the original tuple, so also other relations using the same tuple would change. Now it copies it.
- Added make install and uninstall
- Optimizer generate a tree from the expression
- Uses python-psyco when it is available
- Ability to perform optimizations from GUI
- Able to (temporarily) store queries with a name
- Mechanism to add new kind of optimizations, without having to edit all the code
- Implemented duplicated_select general optimization
- Implemented down_to_unions_subtractions_intersections general optimization
- Implemented duplicated_projection general optimization
- Implemented selection_inside_projection general optimization
- Implemented subsequent_renames general optimization
- Implemented swap_rename_select general optimization
- Implemented selection_and_product specific optimization
- Added stub for converting SQL to relational algebra
- Implemented futile_union_intersection_subtraction general optimization
- Implemented swap_rename_projection general optimization
- Replaced old relational algebra to python compiler with new one based on the new tokenizer/parser (Rev 188)
- Code refactory to move the new parser into parser.py out of optimizer.py, that will still be compatible (Rev 190)
- Selection can now accept expressions with parenthesis
0.9
- Splitted into independent packages (gui and library)
- Simplified makefile, bringing outside files for debian package
- Default source package now doesn't contain informations to generate debian/mac packages
- "make source_all" generates the old style tarball containing all the files
- Bug: relational script installed with debian package now passes arguments to the python executable
- Insert and delete from GUI are now done on the displayed relation, not on the selected one
0.8
- Added __eq__ to relation object, will compare ignoring order.
- New default relation's format is csv, as defined in RFC4180
- Converted sample's relations to csv
- Deb postinstall generates optimized files, this will increase loading speed
- Relation module has SQL-like delete
- Relation module has SQL-like update
- Relation module has SQL-like insert
- GUI can be used to insert and delete tuples
- Showing fields of selected relation will work with themes different than oxygen
0.7
- Added README
- Expressions between quotes aren't parsed anymore
- When adding a relation, the file must be chosen 1st, and then the default relation's name is the same as the filename
- Changed internal rename method. Now uses a dictionary
- Optimized saving of relations
- Can save relations from gui
- Outer join methods simplified
- Form to send a survey
- Makefile to create .deb package
0.6
- Fixes to run on Mac OsX
- Added Makefile
- Able to create .app MacOsX files using "make app"
- Able to create tar.gz file containing Mac OsX application and samples using "make mac"
0.5
- Added support for float numbers
- Added support for dates
0.4
- Created GUI
0.3
- Added support for parenthesis in relational queries
0.2
- Created parser module
- Created function to parse expression with operators without parameters
- Created recoursive function to parse expressions
0.1
- Created header class to handle attributes
- Created relation class
- Added union
- Added intersection
- Added difference
- Added product
- Added projection
- Added rename
- Projection can use a list or several parameters
- Added selection
- Added left join
- Added right join
- Added capability of operation even if attributes aren't in the same order
- Added full outer join