Commit Graph

503 Commits (fc3ed21e929a4f4ee696fa22973eabfc2a5233c0)
 

Author SHA1 Message Date
Salvo 'LtWorf' Tomaselli fc3ed21e92 Improved windows distutils file
Automatically adds the platforms dll, removing a manual step.
2015-09-15 01:01:40 +07:00
Salvo 'LtWorf' Tomaselli 6fad0cdf68 Solves mysterious issue
When running relational as an .exe file generated by
py2exe, that line might give an exception. Because of
reasons.

I don't know what the hell is going on and I don't care.
2015-09-14 19:45:09 +07:00
Salvo 'LtWorf' Tomaselli 38f9ced894 Fixed tab order
After the restyle, the order was messed up.
2015-09-12 11:12:58 +07:00
Salvo 'LtWorf' Tomaselli 449b230891 Updated innosetup script
The [run] section was incorrect, and eventually I am using default
windows fonts (hopefully).
2015-09-12 11:12:58 +07:00
Salvo 'LtWorf' Tomaselli 66b5575d41 Better readme 2015-09-11 14:20:08 +07:00
Salvo 'LtWorf' Tomaselli 21cd1eec45 Delete compiled file
That file is compiled and must be cleaned.
2015-09-11 14:13:24 +07:00
Salvo 'LtWorf' Tomaselli db59cb588b Installs icon for .desktop file
Rather than hoping that the icon is already present. Install our own
copy, that can also be themed.
2015-09-11 14:05:23 +07:00
Salvo 'LtWorf' Tomaselli 7e34258f3b Remove install and uninstall from Makefile
They were completely abandoned. I install by creating debian package.
2015-09-11 14:02:55 +07:00
Salvo 'LtWorf' Tomaselli 732024de0e Use resource file
Use Qt resource files, compile it to Python to obtain a window that
has an icon!

Finally!

It is still using the Oxygen icon for Database, since I have nothing
better to use.
2015-09-11 13:57:34 +07:00
Salvo 'LtWorf' Tomaselli 0f4cc1ab94 Changelog
Move the impressive stuff up
2015-09-11 12:42:18 +07:00
Salvo 'LtWorf' Tomaselli 7a85b77f50 Save state of splitter in GUI
The splitters are not stored as part of the window's state, so
store it separately.
2015-09-11 12:41:33 +07:00
Salvo 'LtWorf' Tomaselli c3edd0190a Add make step in debian/rules
Fix the creation of the debian package to perform the
extra step.
2015-09-11 12:40:17 +07:00
Salvo 'LtWorf' Tomaselli c47823616a Do not ship compiled files
Remove the compiled files from the source.

Running from sources will require an extra make step that will generate
the necessary ui modules.
2015-09-11 12:33:58 +07:00
Salvo 'LtWorf' Tomaselli 41bb45b445 Redesigned UI
UI redesign.

Use Dock widgets for the toolbars, change various layouts to make the overall
UI smaller.
2015-09-11 12:26:37 +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 f7ac34b761 Fix exception
The reported exception will look uglier but will work for any kind of
weird tokenization that occurred.
2015-09-10 10:13:00 +07:00
Salvo 'LtWorf' Tomaselli df5ff35aa9 Changelog 2015-09-09 17:33:15 +07:00
Salvo 'LtWorf' Tomaselli 20ebf45271 Parser cleanup
The new method works fine to parse also unary operators.

This commit removes the special case.
2015-09-09 17:31:02 +07:00
Salvo 'LtWorf' Tomaselli 6c8b60cf34 Improve error handling
Provide a better error in case of operator missing
2015-09-09 17:28:12 +07:00
Salvo 'LtWorf' Tomaselli c30456c43e Fix bug in parser
The excessive stripping would cause "peo ple" to be recognized as
the relation "people" rather than an invalid thing.
2015-09-09 17:23:12 +07:00
Salvo 'LtWorf' Tomaselli 5f3564a398 Fix bug in tokenizer
It would not work with relations named like "l3"
2015-09-09 16:48:17 +07:00
Salvo 'LtWorf' Tomaselli ab46ad2a54 Typo in comments 2015-09-09 15:22:15 +07:00
Salvo 'LtWorf' Tomaselli 9330090362 Switch to compiled regular expressions
This introduces several advantages:

No longer rely on the cache to be able to contain as many as
needed. It works within relational but it is not assured to be so if it
is used within other projects.

Using compile flags allows slightly simpler expressions.
2015-09-09 15:17:17 +07:00
Salvo 'LtWorf' Tomaselli d8db1858ae Fix bug: imported removed module
import * would fail, because of a listed module that was removed.
2015-09-09 15:13:44 +07:00
Salvo 'LtWorf' Tomaselli c6d6bbfeaf Refresh relation list in any case
If a query was failing, created relations were not shown in the list
of relations.
2015-09-09 14:45:17 +07:00
Salvo 'LtWorf' Tomaselli 1b2dc96af1 Re-generated UI 2015-09-09 12:43:25 +07:00
Salvo 'LtWorf' Tomaselli 862c71fdfb Clear session button and changed layout
Added a button to clear the current session

changed the disposition of the operator buttons, to take up less
vertical space. Now it should be better to fit smaller screens.
2015-09-09 12:42:00 +07:00
Salvo 'LtWorf' Tomaselli 66855ad50c Clear session function
Added a function to clear the current session
2015-09-09 12:38:54 +07:00
Salvo 'LtWorf' Tomaselli 7742afd046 Removed redundant comments
Just pointing the documentation towards the website so that
only one copy of it must be kept up to date.
2015-08-05 20:32:57 +07:00
Salvo 'LtWorf' Tomaselli 9ea5e32563 changelog 2015-08-03 16:01:10 +07:00
Salvo 'LtWorf' Tomaselli edc5078475 Use session handling in GUI
The UI stores the session when closing and loads it at the next
use.
2015-08-03 15:58:11 +07:00
Salvo 'LtWorf' Tomaselli 0aa372792f Session management
Adds some functions to store and load an entire session as a binary
blob.

In this way the user does not need to re-load all the relations from the
previous session.
2015-08-03 15:56:37 +07:00
Salvo 'LtWorf' Tomaselli 5a9c2f23a5 Changelog 2015-07-14 15:43:41 +07:00
Salvo 'LtWorf' Tomaselli be7e6fe12d Classes have now names that begin with uppercase
This is more Pythonic and makes the code more readable.

Backwards compatibility is provided by giving an alias with the
previous name of the class.

It will not be broken until the next major release.
2015-07-14 15:39:35 +07:00
Salvo 'LtWorf' Tomaselli af02b5a59b Improved docstring 2015-07-14 15:08:39 +07:00
Salvo 'LtWorf' Tomaselli c275c1caf3 Improve performance of __eq__
If the cardinality of two relations does not match, the expensive
rearrange procedure is not performed at all.
2015-07-14 11:11:13 +07:00
Salvo 'LtWorf' Tomaselli f787630edb Use isinstance rather than comparing class attribute
This allows to create subclasses
2015-07-14 11:09:42 +07:00
Salvo 'LtWorf' Tomaselli 73dd14d9dd Style 2015-07-14 11:01:35 +07:00
Salvo 'LtWorf' Tomaselli 98ac364dc7 Removed encoding string
Not needed in Python 3
2015-07-14 10:43:13 +07:00
Salvo 'LtWorf' Tomaselli 9a570b4386 Use regexp constant
The regexp used was not even the same one…
2015-07-14 10:39:38 +07:00
Salvo 'LtWorf' Tomaselli 33d9545d66 Improved docstring 2015-07-14 10:38:14 +07:00
Salvo 'LtWorf' Tomaselli e2ab59bcc4 Added public attribute with relation name regexp
Also simplified the function to check whether a name is valid for
a relation.
2015-07-14 10:35:54 +07:00
Salvo 'LtWorf' Tomaselli a655e81b28 Remove useless comments 2015-07-14 01:18:54 +07:00
Salvo 'LtWorf' Tomaselli 9416a9fef9 Removed useless unicode marker from strings
We are using Python3 now, so that is not needed
2015-07-09 23:43:54 +07:00
Salvo 'LtWorf' Tomaselli df485e4bd4 Make use of callable string
Instead of explicitly using eval, make use of the
new callable string feature
2015-07-09 23:42:52 +07:00
Salvo 'LtWorf' Tomaselli 33651430d0 Removed curses module
unused
2015-07-09 23:37:20 +07:00
Salvo 'LtWorf' Tomaselli 4f85a545bf parse function returns a callable string
The python string returned by the parser are now directly callable.

They accept an optional parameter for the context.
2015-07-09 23:35:45 +07:00
Salvo 'LtWorf' Tomaselli f5e8e442a0 Removed unused variables 2015-07-09 23:32:46 +07:00
Salvo 'LtWorf' Tomaselli 494469e10c Changelog 2015-07-09 22:39:33 +07:00
Salvo 'LtWorf' Tomaselli f6b4c6708b _rearrange() is an identity if not needed
Operations are possible even when the order of the attributes is
not the same. Because ordering is just an implementation detail and
not an actual part of relational algebra.

A _rearrange() function exists to convert relations to have a similar
format and be able to operate on them.

The function would perform a projection in any case, which would cause
the creation of a new temporary relation, even when the relations where
already using the same order of attributes.

This commit fixes the issue by making it return an identity if the
operation is not necessary.
2015-06-25 16:46:10 +07:00