relational/CHANGELOG

233 lines
9.7 KiB
Plaintext

3.1
- Fix version check
- Add support for localization
- Add Italian localization
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