renders without crashing
|
App |
CurrentRelExpr
|
- |
changes the expression when clicked not relation
|
CurrentRelExpr |
DataContainer
|
- |
displays a table with the current data
|
DataContainer |
can change tables browser
|
- |
can change tables mobile
|
- |
RelExpr
|
- |
correctly renders a complex expression
|
RelExpr |
produces an error for an invalid expression
|
RelExpr |
doesnt change the expression when clicked and relation
|
RelExpr |
changes the expression when clicked not relation
|
RelExpr |
should add (and remove) a class on hover
|
RelExpr |
correctly renders a complex expression
|
RelExprTree |
produces an error for an invalid expression
|
RelExprTree |
doesnt change the expression when clicked and relation
|
RelExprTree |
changes the expression when clicked not relation
|
RelExprTree |
renders a projection
|
Projection |
renders a Rename
|
Rename |
renders a Rename with multiple fields
|
Rename |
renders a Selection with single predicate
|
Selection |
renders a Selection with multiple predicates
|
Selection |
renders a Except
|
Except |
renders a Intersect
|
Intersect |
renders a Product
|
Product |
renders an inner Join
|
Join |
renders a left outer Join
|
Join |
renders a right outer Join
|
Join |
renders a Union
|
Union |
renders GROUP BY with aggregate only (no grouping columns)
|
GroupBy |
renders GROUP BY with grouping columns and aggregate
|
GroupBy |
renders GROUP BY with selected columns and aggregates
|
GroupBy |
renders GROUP BY with multiple grouping columns
|
GroupBy |
renders GROUP BY with multiple aggregates
|
GroupBy |
renders GROUP BY with mixed select columns and aggregates
|
GroupBy |
handles qualified column names
|
GroupBy |
renders correctly without selectColumns prop
|
GroupBy |
renders a simple label
|
Relation |
SqlAutocomplete
|
- |
parseForAutocomplete
|
- |
detects table context after FROM
|
- |
detects table context after JOIN
|
- |
detects column context after SELECT
|
- |
detects column context after WHERE
|
- |
detects qualified column context
|
- |
returns null context for non-relevant positions
|
- |
generateSuggestions
|
- |
suggests table names
|
- |
suggests column names
|
- |
suggests qualified column names for specific table
|
- |
limits suggestions to 10 items
|
- |
returns empty array for no matches
|
- |
can parse the initial query
|
- |
can parse modified query and fire an event
|
- |
can render a table
|
Table |
can disable sorting
|
Table |
correctly renders tutorial given no cookie
|
Tutorial |
cookie exists, no tutorial
|
Tutorial |
constructRelationalGraph
|
- |
should return the correct graph for a simple expression
|
constructRelationalGraph |
should return the correct global selections for simple expression
|
constructRelationalGraph |
should correctly parse multiple selections with and operator
|
constructRelationalGraph |
should correctly parse multiple selections with and operator and global selections
|
- |
should handle invalid selection operator types like "or"
|
- |
should handle simple join expressions with selection clauses
|
- |
should handle complex join expressions with selection clauses
|
- |
should handle cyclic join expressions with selection clauses
|
- |
should not optimize for edge case join conditions
|
- |
should not optimize for multi-table join query
|
- |
can evaluate a simple relation
|
data |
can evaluate a projection
|
data |
can evaluate a projection with dots
|
data |
can evaluate a rename
|
data |
can evaluate a difference
|
data |
can evaluate an intersection
|
data |
can evaluate a distinct union
|
data |
can evaluate a union
|
data |
can evaluate a default (ascending) sorting
|
data |
can evaluate a descending sorting
|
data |
converts a sorting on multiple column conditions
|
data |
can evaluate an inner join
|
data |
can project after multiple joins
|
data |
can evaluate an left join
|
- |
can evaluate an right join
|
- |
can evaluate a cross-product
|
data |
can evaluate GROUP BY with aggregate only
|
data |
can evaluate GROUP BY with mixed columns and aggregates
|
data |
can evaluate GROUP BY with multiple aggregates
|
data |
can evaluate aggregate without GROUP BY (implicit grouping)
|
data |
can evaluate GROUP BY with qualified column names
|
data |
handles all aggregate functions correctly
|
data |
maintains correct group separation
|
data |
can evaluate HAVING clause with COUNT aggregate
|
data |
can evaluate HAVING clause with AVG aggregate
|
data |
can evaluate HAVING clause with complex condition using AND
|
data |
can evaluate HAVING with extra aggregates not in SELECT
|
data |
join order optimization
|
- |
should return the correct join order for simple join queries
|
- |
should return the correct join order for complex join queries
|
- |
should return the correct join order for cyclic join queries
|
- |
should handle disconnected graph gracefully
|
- |
should handle empty graph gracefully
|
- |
converts a simple SELECT *
|
relexp |
converts a simple projection
|
relexp |
converts a rename
|
relexp |
converts a difference
|
relexp |
converts an intersection
|
relexp |
converts a distinct union
|
relexp |
converts a union
|
relexp |
converts a union on two tables with the same column
|
relexp |
converts a simple cross join
|
relexp |
converts a join with a condition
|
relexp |
converts a left outer join with a condition
|
relexp |
converts a right outer join with a condition
|
relexp |
converts a pre-optimized select-join statement with a condition
|
relexp |
converts a post-optimized select-join statement with a condition
|
relexp |
checks if a select-join statement with a condition converts back correctly after optimization
|
relexp |
converts a pre-optimized select-join statement with multiple conditions
|
relexp |
converts a post-optimized select-join statement with multiple conditions
|
relexp |
checks if a select-join statement with mutiple condition converts back correctly after optimization
|
relexp |
converts a default (ascending) sorting
|
relexp |
converts a descending sorting
|
relexp |
converts a sorting on multiple column conditions
|
relexp |
converts a selection
|
relexp |
converts a selection with a literal on the left
|
relexp |
converts a selection with BETWEEN
|
relexp |
converts a basic selection with multiple 'AND's
|
relexp |
converts a basic selection with both 'AND's in 'OR'
|
relexp |
converts a basic selection with both 'OR's in 'AND'
|
relexp |
converts a basic selection with both 'OR's in 'AND'
|
relexp |
converts a selection with more than two 'AND' clauses
|
relexp |
converts a selection with NOT
|
relexp |
throws an error if a column is referenced in a table not joined
|
relexp |
throws an error if no FROM clause is given
|
relexp |
should remove quotes from string literals
|
relexp |
should convert conditions with IN
|
relexp |
should convert conditions with IN
|
relexp |
converts a GROUP BY with aggregate only
|
relexp |
converts a GROUP BY with mixed columns and aggregates
|
relexp |
converts a GROUP BY with multiple aggregates
|
relexp |
converts aggregate without GROUP BY (implicit grouping)
|
relexp |
converts GROUP BY with qualified column names
|
relexp |
supports all aggregate functions
|
relexp |
throws error when non-aggregate column not in GROUP BY
|
relexp |
throws error when ORDER BY column not in GROUP BY
|
relexp |
allows ORDER BY with GROUP BY column
|
relexp |
handles qualified vs unqualified column name matching
|
relexp |
converts a GROUP BY with COUNT aggregate
|
relexp |
converts a GROUP BY with STDEV aggregate
|
relexp |
converts STDEV aggregate without GROUP BY (implicit grouping)
|
relexp |
converts a GROUP BY with HAVING clause using aggregate function
|
relexp |
converts a GROUP BY with HAVING clause using multiple aggregate functions
|
relexp |
converts a GROUP BY with HAVING clause using GROUP BY column
|
relexp |
throws error when HAVING clause references column not in GROUP BY
|
relexp |
throws error when HAVING clause uses non-aggregate function
|
relexp |
converts HAVING with BETWEEN predicate using aggregate
|
relexp |
converts HAVING with OR condition using aggregates
|
relexp |
adds projection when HAVING uses aggregates not in SELECT
|
relexp |
converts a GROUP BY with HAVING clause using STDEV aggregate
|
relexp |
has a valid initial state
|
- |
renders an and
|
and |
renders an or
|
or |
renders a not
|
or |