Commit Graph

29 Commits (fb643bd26d005a0a15e90a32166ae97ab5eb31b3)

Author SHA1 Message Date
Salvo 'LtWorf' Tomaselli fb643bd26d Added a bunch of .fail tests
Tests that are supposed to fail. They are a bit random, but at least
helped me fixing the test driver.
2016-04-18 16:29:54 +07:00
Salvo 'LtWorf' Tomaselli d751de8a75 Test new optimization 2016-04-15 14:56:54 +07:00
Salvo 'LtWorf' Tomaselli 696361af4b Test that failure in union is commutative 2016-04-15 14:42:51 +07:00
Salvo 'LtWorf' Tomaselli 1b049e13f0 Better handling of parenthesis inside string literals
When scanning for the matching parenthesis, string literals
were not taken into account, which would inevitably lead to
errors if one wanted to do a selection on a string containing
a parenthesis.

Now it uses a state-machine to skip the ones that are located
inside literals.
2016-04-09 11:37:28 +07:00
Salvo 'LtWorf' Tomaselli dc193fee39 Test cases for optimization fix
Add test cases that would fail in previous versions
because of the just fixed optimization.
2016-04-09 10:09:01 +07:00
Salvo 'LtWorf' Tomaselli 3b3888e9be New optimization
Turns
        π a,b,c(A) ∪ π a,b,c(B)

    into
        π a,b,c(A ∪ B)

    if A and B are union compatible

Works with union, intersection and difference.
2016-01-03 10:07:23 +07:00
Salvo 'LtWorf' Tomaselli 950a2273c3 New query optimization
A * B ∪ A * C = A * (B ∪ C)
2015-12-31 14:26:28 +07:00
Salvo 'LtWorf' Tomaselli a8c1b2a463 Revert copy on write optimization
In case of multiple renames, all of the resulting relations will point
to the same data, so writing on one and marking its only known copy
as writable would be incorrect.

For this to work, all the references should be kown to all the other
instances.

It is probably not worth to implement it.

Implemented test for the update
2015-11-18 12:15:03 +07:00
Salvo 'LtWorf' Tomaselli 5073567757 Change how python tests are executed
Require them to have assert rather than testing the
result variables set.

This makes for way simpler code.

Now also prints stacktrace to know where the problem occurred.
2015-11-18 12:05:56 +07:00
Salvo 'LtWorf' Tomaselli d597076038 Subtle bug that occurred selecting after a join
Outer joins add the placeholder '---' that is used as some sort of NULL
value.

However select operations on such relations would always fail, because
relations are supposed to only contain values of class rstring, and
the placeholder was added as a regular string.

As a consequence, automatic casting would always fail, and the select
would always raise an exception.

Added a new test case with this specific case in mind.
2015-09-10 12:19:51 +07:00
Salvo 'LtWorf' Tomaselli a059afa9ce Added new tests on joins 2015-06-06 14:06:02 +07:00
Salvo 'LtWorf' Tomaselli 8cb08ad030 Change relational language to use math symbols
The symbols previously used were a Canadian script, and were looking
good enough, but they might not be installed in every machine.

Besides, all this is to workaround a Qt5 bug that prevents from
rendering those symbols at times.
2015-05-31 19:01:03 +07:00
Salvo 'LtWorf' Tomaselli a355762fc4 Switch core module to Python3
The core module (the relational algebra, not the interface) is now
using Python3

Tests are passing, so it should be ok.
2015-02-19 12:42:41 +07:00
Salvo 'LtWorf' Tomaselli 2e0cbf94a7 - Can convert the expressions into python code objects as well
- Can test that the code objects work as expected too.
2013-02-10 14:11:26 +07:00
LtWorf 3978259f4a - improved an optimization, to produce a simpler select condition under certain circumstances
git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@343 014f5005-505e-4b48-8d0a-63407b615a7c
2011-11-07 19:01:33 +07:00
LtWorf 36d52b144a - Using more the colored class
- Todo



git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@298 014f5005-505e-4b48-8d0a-63407b615a7c
2011-05-02 10:02:06 +07:00
LtWorf 4a296c52cf - termcolor modified to use bold by default
- uses colors in readline



git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@297 014f5005-505e-4b48-8d0a-63407b615a7c
2011-04-01 10:28:47 +07:00
LtWorf f8b0ab746b - Added test
- Re-sorted CHANGELOG



git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@286 014f5005-505e-4b48-8d0a-63407b615a7c
2011-03-22 13:28:41 +07:00
LtWorf 3e04c24056 - Added new test
- More details in test driver
- Re-building GUI, idioticly eliminated long ago



git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@277 014f5005-505e-4b48-8d0a-63407b615a7c
2011-03-20 17:16:34 +07:00
LtWorf 1e51f9784f - test driver script is now executable
- adds more generic procedure to perform implicit casting, thus eliminating duplicate code



git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@271 014f5005-505e-4b48-8d0a-63407b615a7c
2011-03-03 09:27:53 +07:00
LtWorf ba564b55d3 - Added two more tests
- Simplified code of optimizations module
- Improved doc of optimization module
- Added option to get all the intermediate passages of optimization
 


git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@269 014f5005-505e-4b48-8d0a-63407b615a7c
2011-02-24 13:27:33 +07:00
LtWorf 71697bb2e8 - Implemented select_union_intersect_subtract general optimization
- Added tests for the new optimization



git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@268 014f5005-505e-4b48-8d0a-63407b615a7c
2011-02-18 18:11:39 +07:00
LtWorf 3e2d33f1d5 - Added tests
- Driver can test on pure python code



git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@266 014f5005-505e-4b48-8d0a-63407b615a7c
2010-12-23 10:11:14 +07:00
LtWorf 6e16a0d841 - Added new test
- Changed some comments


git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@263 014f5005-505e-4b48-8d0a-63407b615a7c
2010-10-26 13:54:34 +07:00
LtWorf 3d6e0590c0 - Added other tests to expose potential optimization problems
git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@261 014f5005-505e-4b48-8d0a-63407b615a7c
2010-10-11 10:51:37 +07:00
LtWorf 3d21363e46 - Added tests
git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@258 014f5005-505e-4b48-8d0a-63407b615a7c
2010-10-06 21:44:13 +07:00
LtWorf 8224033881 - Fixed tokenize_select that was not providing level prop for the tokens anymore
git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@257 014f5005-505e-4b48-8d0a-63407b615a7c
2010-10-06 12:31:48 +07:00
LtWorf 54d1301a96 - Added other tests
- Driver can handle exceptions



git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@255 014f5005-505e-4b48-8d0a-63407b615a7c
2010-10-04 12:46:18 +07:00
LtWorf 48e6ecb7ba - Added test driver
- Added some basic tests, mostly to test the driver itself


git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@254 014f5005-505e-4b48-8d0a-63407b615a7c
2010-10-04 10:06:17 +07:00