10-06-16
- added limit for recursive steps (100) and a message if limit is reached
07-06-16
- calculations now also work with decimal number without using calc()-function
24-05-16
- added navigation bar with feedback and help
- help page still needs content
- updated step-by-step-solution
- amount of rows are now displayed for every table (and increases for step-by-step solution)
- current state of recursion now displayed below buttons
- slight changes to the buttons, eg 'initialization'-button at the beginning
21-05-16
- updated 'show full tables': smaller button, max. 10 rows per table, amounts of rows displayed
- example-buttons are now displayed for each dataset separately
- updated gist-parser to also include example-queries
- gist-parser: group, description (optional), example (optional), tables
- same scheme as multi-line description with double-brackets to open and close
- multiple examples are separated by a semicolon
- example of examples:
example[[select * from flight; select * from flight where id > 2]]
- step-by-step solution no longer disappears when changing query (before clicking submit)
19-05-16
- multiple joins should now work as intended
- joins are executed from left to right - keep this in mind when making queries, could lead to wrong results
- translated example datasets and example queries from german to english
- queries with limit >= 10 now work correctly
- multi-line description for gistfiles finally working (also with markdown-syntax)
16-05-16
slightly changed (multi-)join functionality
joins with 'on' are converted automatically into implicit joins for sqlike
joins with 'using' can only be used between two but not more tables - due to sqlike
28-04-16
- tables don't have to be specified in queries anymore - (hopefully) for real this time
- tool now looks at corresponding 'from'-part of query and tries to add missing tables, if possible
- works for any query-size -> single-select, union (2 selects), recursion (3 selects), etc...
22-04-16
- tables don't have to be specified in queries anymore, if the column is unique
- added error messages for non-existing columns in selected tables, and for non-unique columns in selected tables
20-04-16
- alerts for valid non-recursive input are now yellow to better distinguish between recursive/non-recursive input
15-04-16
- added another step before it shows the final result
- step-by-step solution now keeps linebreaks of query
13-04-16
- like and limit now work correctly again
- fixed error which made certain where conditions not work
- added success/error alerts when importing gist-files
- updated gist parser to parse every datatype (if unknown, its treated as string)
- added warning when importing dataset with unknown type (example: 2923a30a474fdcb46bee)
12-04-16
- updated gist parser to use description with markdown (multi-line description currently not working)
- updated db-description below editor to correctly work again
07-04-16
- extended step-by-step solution by highlighting corresponding part of the code
when only selecting from a single table (ie not using any join operation), specifying table is not necessary anymore
important: do not mix between specification -> either specify the table everywhere or nowhere (it will return a wrong result otherwise)
example - use either one, but not a mix: "SELECT abflug FROM flug WHERE id < 2" or "SELECT flug.abflug FROM flug WHERE flug.id < 2
this should work everywhere: where-condition, order by, group by, having, concat(), calc(), ...
- calculations in select not limited in order anymore, ie 1+id and id+1 should work the same
06-04-16
- aggregate functions are no longer case-sensitive
- step-by-step solution now ends correctly
- added sql-part to the result
05-04-16
- selecting number now works correctly with 'as'
- added possibility to select signed numbers (+/-)
- sql comments can now be used in the editor
- single-line: -- my comment
- note: the editor only highlights single-line comments if there is a space after --, but it also works without
- /* my comment */ for multiline
- angular problems solved: queries only get executed once, no console errors anymore
04-04-16
- added datatype (if available) to columns
- minor fixes in sql and gist parser
29-03-16
- multiple where-conditions now work again as intended
28-03-16
- loading gists (same/similar pattern as gists for relax-tool) now possible
- gists also stored temporarily once loaded
- tested with gist id 7d1871f79a8bcb4788de
- parser for gists still needs improvement
- displays db-information (if available) below editor
23-03-16
- changing datasets should no longer cause problems with results
22-03-16
- added parser for gist/local datasets
- possible to choose from different datasets
when changing datasets, there can still be errors in queries/results (esp. step-by-step solution)
21-03-16
- improved semantic-check of query (covers alias and with-clauses correctly now)
- added info why step-by-step solution is not available
20-03-16
- implemented more complex step-by-step functionality
- formatting and layout just basic
18-03-16
- possible to make calculations with +-*/% in select
- calculate by using numbers or columns
- start calculation with a number or use calc() (calc() should always work)
- example: calc(1+flug.id) or calc(flug.id+2*flug.id)
- error messages now with error position
multiple where-conditions currently broken (error in parser)...produce error message or wrong result
- buttons for simple step-by-step solution (only for recursion)
17-03-16
- added concat() function for select, combination of string (double quotes) and table.column as possible parameters
- added another example to show how concat() works
16-03-16
- parser update:
- valid query no longer requires semicolon at the end
- selecting a string-literal is now valid...double quotes necessary
- selecting a numeric-literal is now valid -> decimal numbers combined with +,-,*,/
work in progress - current features (as of 16-03-16)
- one static and arbitrary flights-db for testing purposes
- syntax- and semantic-check for sql-query entered in editor
- sql parsing
- local execution of correct query
result currently only in js-console available
- possible queries (specify table wherever possible):
- select(distinct)-from-where
- AND & OR
- order by
- like + wildcards
- between
- aliases
- join using/on
- left/right/full/cross/natural join
- union/except/intersect (all)
- avg(),min(),max(),sum(),count()
- group by, having (only works when directly after group by)
- limit
- CTE and recursive CTE
- not yet (correctly) implemented in parser and/or sql-execution
- multiple joins
- nested selects
- 'in' not working correctly
comments
- dates
- (probably several undiscovered surprises)
10-03-16
- recursive queries should now work
- results for each step currently displayed all at once
09-03-16
- fixed error where join-operators were still case-sensitive
- query result now gets display directly on the page
- recursive query works for example provided by the button below the editor (generic implementation will follow soon)
- so far only final result of recursion gets displayed
08-03-16
- fixed error that caused 'as' not to properly work when used in 'from'
- non-recursive with-clauses should now work
- parser now distinguishes between recursive and non-recursive queries
- recursive: rather strict pattern, needs to satisfy following points (maybe more to be added)
- needs to be a with-clause
- query definition (inner part) must have compound-operator 'union all'
- the 2nd part of union all has a recursive reference to the with-clause
- outer query selects the with-clause
- non-recursive: everything else, that does not satisfy the above
22-02-16
- extended syntax- and semantic-checks to also include specific cases for with-clauses
20-02-16
- added basic with-syntax to parser
18-02-16
- parser: aggregate-functions also for groupby/having
- fixed error in SQLike that caused group by not to work on table.column
- groupby/having now usable in queries (having only works if followed directly after group by)
16-02-16
- parser fixes for groupby/having
- added aggregate-functions (avg,sum,count,min,max) to parser
- aggregate function now usable in select
04-02-16
- parser fixes for like/between
- '(not) between/like' can now be used in queries
External resources