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 +02:00
2015-06-13 17:34:13 +02:00
2011-03-04 12:38:00 +00:00
2015-07-14 10:43:13 +02:00
2015-07-14 10:43:13 +02:00
2013-02-10 14:25:30 +01:00
2008-07-17 22:53:32 +00:00
2015-07-14 11:01:35 +02:00
2015-02-19 13:59:41 +01:00
2015-05-31 19:12:10 +02:00
2015-07-14 11:01:35 +02:00
2015-06-01 12:54:52 +02:00
2015-06-01 12:54:52 +02:00
2013-12-27 01:02:04 +01:00
2011-05-02 10:02:06 +00:00

Relational an educational tool to provide a workspace for experimenting with relational algebra, an offshoot of first-order logic.

It provides GUI that can be used for executing relational queries, and also provides a command line interface.

Provides a standalone Python module that can be used for executing relational queries, parsing relational expressions and optimizing them.

Official website

More documentation can be found here http://ltworf.github.io/relational/

Install

Binary download for Windows can be obtained from the website.

For Linux, check your distribution's packages, relational is available on Debian and Ubuntu.

Syntax

These are some valid queries

σage > 25 and rank == weight(A)
σ (name.upper().startswith('J') and age>21 )(people)
Q ⋈ π a,b(A) ⋈ B
ρid➡i,name➡n(A) - π a,b(π a,b(A)) ∩ σage > 25 or rank = weight(A)
π a,b(π a,b(A))
ρid➡i,name➡n(π a,b(A))
A ⋈ B

Run from sources

To launch the application, run

./relational_gui.py

If it needs some dependencies: Qt5, Python 3.4 or greater, PyQt5

It can run on osx but bugreports about that will be rejected.

Description
No description provided
Readme 9.1 MiB
Languages
Python 96.2%
Makefile 1.7%
Roff 1%
Inno Setup 1%