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