1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 06:58:11 +00:00
serenity/Userland/Libraries/LibSQL
Jan de Visser 3425730294 LibSQL: Implement table joins
This patch introduces table joins. It uses a pretty dumb algorithm-
starting with a singleton '__unity__' row consisting of a single boolean
value, a cartesian product of all tables in the 'FROM' clause is built.
This cartesian product is then filtered through the 'WHERE' clause,
again without any smarts just using brute force.

This patch required a bunch of busy work to allow for example the
ColumnNameExpression having to deal with multiple tables potentially
having columns with the same name.
2021-11-10 14:47:49 +01:00
..
AST LibSQL: Implement table joins 2021-11-10 14:47:49 +01:00
BTree.cpp LibSQL: Introduce Serializer as a mediator between Heap and client code 2021-08-21 22:03:30 +02:00
BTree.h LibSQL: Introduce Serializer as a mediator between Heap and client code 2021-08-21 22:03:30 +02:00
BTreeIterator.cpp LibSQL: Introduce Serializer as a mediator between Heap and client code 2021-08-21 22:03:30 +02:00
CMakeLists.txt LibSQL: Add current statement to the ExecutionContext 2021-11-10 14:47:49 +01:00
Database.cpp Libraries: Fix -Wunreachable-code warnings from clang 2021-10-08 23:33:46 +02:00
Database.h Libraries: Fix visibility of Object-derivative constructors 2021-11-02 22:56:53 +01:00
Forward.h LibSQL: Introduce Serializer as a mediator between Heap and client code 2021-08-21 22:03:30 +02:00
HashIndex.cpp LibSQL: Introduce Serializer as a mediator between Heap and client code 2021-08-21 22:03:30 +02:00
HashIndex.h LibSQL: Introduce Serializer as a mediator between Heap and client code 2021-08-21 22:03:30 +02:00
Heap.cpp LibSQL: Replace Result<T, E> use with ErrorOr<T> 2021-11-08 00:35:27 +01:00
Heap.h LibSQL: Replace Result<T, E> use with ErrorOr<T> 2021-11-08 00:35:27 +01:00
Index.cpp LibSQL: Introduce Serializer as a mediator between Heap and client code 2021-08-21 22:03:30 +02:00
Index.h LibSQL: Introduce Serializer as a mediator between Heap and client code 2021-08-21 22:03:30 +02:00
Key.cpp LibSQL: Introduce Serializer as a mediator between Heap and client code 2021-08-21 22:03:30 +02:00
Key.h LibSQL: Resolve cyclic dependency 2021-10-06 23:52:40 +01:00
Meta.cpp LibSQL: Add 'schema' and 'table' to TupleElementDescriptor 2021-11-10 14:47:49 +01:00
Meta.h Libraries: Fix visibility of Object-derivative constructors 2021-11-02 22:56:53 +01:00
Row.cpp LibSQL: Introduce Serializer as a mediator between Heap and client code 2021-08-21 22:03:30 +02:00
Row.h LibSQL: Resolve cyclic dependency 2021-10-06 23:52:40 +01:00
Serializer.cpp LibSQL: Introduce Serializer as a mediator between Heap and client code 2021-08-21 22:03:30 +02:00
Serializer.h LibSQL: Introduce Serializer as a mediator between Heap and client code 2021-08-21 22:03:30 +02:00
SQLClient.cpp SQLServer+SQL+LibSQL: Allow sql client to specify the database name 2021-10-05 02:22:19 +02:00
SQLClient.h SQLServer+SQL+LibSQL: Allow sql client to specify the database name 2021-10-05 02:22:19 +02:00
SQLResult.h LibSQL: Implement table joins 2021-11-10 14:47:49 +01:00
TreeNode.cpp LibSQL: Introduce Serializer as a mediator between Heap and client code 2021-08-21 22:03:30 +02:00
Tuple.cpp LibSQL: Add the 'extend' operation to the Tuple class 2021-11-10 14:47:49 +01:00
Tuple.h LibSQL: Add the 'extend' operation to the Tuple class 2021-11-10 14:47:49 +01:00
TupleDescriptor.h LibSQL: Add 'schema' and 'table' to TupleElementDescriptor 2021-11-10 14:47:49 +01:00
Type.h LibSQL: Allow expressions and column names in SELECT ... FROM 2021-10-05 02:22:19 +02:00
Value.cpp LibSQL: Relax assignment rules for Null Values 2021-11-10 14:47:49 +01:00
Value.h LibSQL: Add 'schema' and 'table' to TupleElementDescriptor 2021-11-10 14:47:49 +01:00
ValueImpl.h LibSQL: Introduce Serializer as a mediator between Heap and client code 2021-08-21 22:03:30 +02:00