722b164d56
A string that contained escape symbols was not correctly escaped when generating the Python code for the selection. This could cause selection operations to fail to compile.
206 lines
8.7 KiB
Plaintext
206 lines
8.7 KiB
Plaintext
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
|
|
|
|
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
|
|
|