Commit Graph

608 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 6fe70e12fe Some failures were crashing the test driver
Some tests are meant to fail, however some failures were actually
crashing the test driver.

This fixes the issue.
2016-04-18 16:28:56 +07:00
Salvo 'LtWorf' Tomaselli eb6a033298 CHANGELOG 2016-04-15 15:00:31 +07:00
Salvo 'LtWorf' Tomaselli d751de8a75 Test new optimization 2016-04-15 14:56:54 +07:00
Salvo 'LtWorf' Tomaselli 3779a1de81 Remove useless joins in optimization
Along with removing intersections and unions, this
removes useless joins in the same function.
2016-04-15 14:56:09 +07:00
Salvo 'LtWorf' Tomaselli a5aef4a0fe CHANGELOG 2016-04-15 14:45:33 +07:00
Salvo 'LtWorf' Tomaselli 7e61120beb Make failure in unions commutative
Right now, because of how _rearrange was implemented, a union with a subset
of attributes of another union could be united with it, but not viceversa.

This change makes both operations fail, hence making the union commutative
again.

Correct unions were always commutative.
2016-04-15 14:43:18 +07:00
Salvo 'LtWorf' Tomaselli 696361af4b Test that failure in union is commutative 2016-04-15 14:42:51 +07:00
Salvo 'LtWorf' Tomaselli 2f12a0e89d Add possibility to test queries that are supposed to fail
This is supposed to be used for all malformed queries and all the ones
that are invalid for incompatibility reason, and make sure that they
actually fail.
2016-04-15 14:36:51 +07:00
Salvo 'LtWorf' Tomaselli cc6dfca64c Prepare for new version 2016-04-10 08:52:22 +07:00
Salvo 'LtWorf' Tomaselli 7f1004712a Bump Standards-Version 2016-04-09 17:43:55 +07:00
Salvo 'LtWorf' Tomaselli 4e780373d8 d/changelog 2016-04-09 15:59:10 +07:00
Salvo 'LtWorf' Tomaselli 8845f858d5 New watchfile
Copied from weborf
2016-04-09 15:59:00 +07:00
Salvo 'LtWorf' Tomaselli 457899bc1b CHANGELOG 2016-04-09 11:40:02 +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 6bc219c635 Avoid proliferation of parenthesis
The str() function of the parse tree now emits expressions
with much less parenthesis.

This should allow optimized queries to be more readable.
2016-04-09 11:11:25 +07:00
Salvo 'LtWorf' Tomaselli e4e3eae8ce CHANGELOG 2016-04-09 10:09:08 +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 002aca3f68 Only holds for union
Does not hold for other operations.
2016-04-09 10:07:44 +07:00
Salvo 'LtWorf' Tomaselli 3139031611 CHANGELOG 2016-03-31 21:46:00 +07:00
Salvo 'LtWorf' Tomaselli 1c9c9a7195 Remove osx mention from README
No apple user is ever going to make a contribution and tell me how to run
this thing on osx. Let's forget about it.
2016-03-31 21:45:59 +07:00
Salvo 'LtWorf' Tomaselli 85f2b3c3ee Error message when compilation fails
Within selection, the compilation of the string into python bytecode
can fail.

This shows an appropriate message.
2016-03-31 21:45:59 +07:00
Salvo 'LtWorf' Tomaselli 7661d21da2 Better message for missing fields
Happens in projections, when trying to use a field that does not exist.
2016-03-31 21:45:59 +07:00
Salvo 'LtWorf' Tomaselli 72318bb0e8 Updated copyright notices
With the last year of modification of the file in question.
2016-03-31 21:45:59 +07:00
Salvo 'LtWorf' Tomaselli 6b4cfaa01d Added my public key in the debian/ directory
Further releases will be signed and the debian watch will check
the signature. So it is necessary to add the public key.
2016-03-31 20:28:53 +07:00
Salvo 'LtWorf' Tomaselli f0b043f85b Added release target
The release target is the same as make dist, but it signs the resulting
archive with the default PGP key.
2016-03-31 20:27:43 +07:00
Salvo 'LtWorf' Tomaselli 13b57a77c3 Bumped Standards-Version to 3.9.7 2016-03-31 20:19:44 +07:00
Salvo 'LtWorf' Tomaselli d923311524 Prepare debian changelog 2016-03-31 20:17:42 +07:00
Salvo 'LtWorf' Tomaselli ef209ea93f Do not crash on network error while sending survey 2016-03-21 14:50:50 +07:00
Salvo 'LtWorf' Tomaselli f12e35fef9 Do not crash in case of connection failure
Return None to indicate a network failure.
2016-03-21 14:40:23 +07:00
Salvo 'LtWorf' Tomaselli cf2115b383 Do not crash if the returned remote version is None
That happens in case of errors.

Now it correctly shows an error.
2016-03-21 14:39:35 +07:00
Salvo 'LtWorf' Tomaselli 64496c4ea1 Desktop file accepts parameters 2016-03-15 16:56:30 +07:00
Salvo 'LtWorf' Tomaselli f19d6c9e5f Prepare for next version 2016-03-02 00:31:31 +07:00
Salvo 'LtWorf' Tomaselli 6f61d51b3a changelog 2016-03-02 00:13:04 +07:00
Salvo 'LtWorf' Tomaselli af7901423c C++ redistributable installed automatically.
Rather than forcing the user to click next, and showing them the
scary fail message if the library is already up to date, the
command line parameters make the redistributable require no
interaction.
2016-03-02 00:11:39 +07:00
Salvo 'LtWorf' Tomaselli 262d92290f Prepare for next version
Change the version string everywhere, for the next release
2016-01-06 00:30:10 +07:00
Salvo 'LtWorf' Tomaselli e7a8235d10 Updated copyright date range in d/ 2016-01-04 19:21:57 +07:00
Salvo 'LtWorf' Tomaselli 509fb0a8e7 New debian changelog 2016-01-04 17:10:00 +07:00
Salvo 'LtWorf' Tomaselli ce783a4453 Vertical policy adjusted
Adjusted what happens when the history is hidden.
2016-01-04 12:07:22 +07:00
Salvo 'LtWorf' Tomaselli ba8453c923 Print optimization steps
Prints the various steps on stdout, quite nice to
be able to understand what is happening internally.
2016-01-03 19:47:53 +07:00
Salvo 'LtWorf' Tomaselli ce348149f1 Better code style 2016-01-03 19:43:38 +07:00
Salvo 'LtWorf' Tomaselli 5563e1cafd Do not add query to history if it was the last
Maybe people just press enter twice.

This is the behaviour of bash.
2016-01-03 17:32:34 +07:00
Salvo 'LtWorf' Tomaselli 1dd1298ee0 New optimization: useless projection
If a projection is done on every attribute it is useless and
can be removed.

The new optimization does this.
2016-01-03 17:15:04 +07:00
Salvo 'LtWorf' Tomaselli 17410a0b19 Styled code 2016-01-03 16:55:10 +07:00
Salvo 'LtWorf' Tomaselli d384a902cf Removed redundant check
Assuming that the query is correct, the removed condition must
always be true.
2016-01-03 12:39:48 +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 eadcca6da7 Print traceback in case of exception
The text of the exception is pretty much useless alone,
this makes it print the entire traceback.
2016-01-03 10:03:07 +07:00
Salvo 'LtWorf' Tomaselli 0dd2ef2f1d Style 2016-01-03 09:28:45 +07:00
Salvo 'LtWorf' Tomaselli 474bea6ff5 Re-unite query execution functions
For multi-line and single-line. After the change with the assignment
they are basically the same and there was no longer need
to have them separate in two functions.
2016-01-03 09:18:31 +07:00
Salvo 'LtWorf' Tomaselli 03ae3e0bab s/outher join/outer join/ 2016-01-03 09:05:15 +07:00