Moritz Eyssen
074bce4d90
dix and adapt casecasewhen
2018-01-17 13:11:39 +01:00
javrucebo
daf8fe7a45
Changing Grammar to extend CASE WHEN statement:
...
- allow multiple WHEN statements
- allow for syntax like `CASE x WHEN 1 THEN 2 WHEN 3 THEN 4 ELSE 5 END`
NOTE: This changes also the way the CASE operator is stored:
- CASE [expr] exprList [ELSE expr2] END
- exprList holds each of the WHEN statements with:
expr := WHEN, expr2 := THEN
Added also tests in test/select_tests.cpp
and adapted the existing one to reflect the new storage
2018-01-16 00:45:55 +01:00
mrks
4d36a1d426
Merge branch 'master' into print-op-expr
2017-10-24 15:20:53 +02:00
mrks
6a192cdf17
Merge branch 'master' into feature/schema_and_if_exists_for_drop
2017-10-20 14:12:58 +02:00
Moritz Eyssen
fe157ec830
Merge with master
2017-10-13 11:27:44 +02:00
Moritz Eyssen
0d0ba53546
Formatting and more tests
2017-10-12 19:18:38 +02:00
root
cf28f8fdaf
space format
2017-09-29 17:19:39 +08:00
root
d220ff47ab
add drop test case in test/queries/queries-good.sql
2017-09-29 17:15:18 +08:00
root
bdc9a4b939
fix clang++ errror report
2017-09-13 22:21:09 +08:00
root
7da22a8bb1
fix %destructor of table_n
2017-09-13 21:59:15 +08:00
root
4e3be32ba0
cancel empty from clause support
2017-09-13 18:24:41 +08:00
root
45cae0bb0b
cancel empty from clause support
2017-09-13 18:12:29 +08:00
root
1922210f70
1. add scheme name support for tables names
...
2. add IF EXIST support for DROP TABLE/VIEW
3. fix memory free bug: delete -> free
4. add features in sqlhelper.cpp
2017-09-13 17:37:31 +08:00
Markus Dreseler
68e4d1b207
Make UPDATE use expression, not literal
...
This allows for things like UPDATE x SET a = a + 1
2017-09-12 19:50:34 +02:00
Tim Zimmermann
2316e07d52
Do not allow deprecated features for flex
2017-09-05 10:25:39 +00:00
Tim Zimmermann
0233f77cef
Add support for SHOW TABLES statement
2017-08-23 23:56:16 +02:00
Pedro Flemming
f815247510
Add documentation about missing features ( #56 )
2017-08-14 15:13:56 +02:00
Nan Xiao
165583a60b
Print exprList in printOperatorExpression
2017-08-03 14:55:44 +08:00
Nan Xiao
e7c2833e43
Initialize all fields in Expr struct
2017-08-01 13:58:22 +08:00
alkim0
88ffe4822b
Many updates to grammar including support for arrays, ilike, natural joins with no predicates... ( #49 )
...
* Got ISNULL working
* Allow function calls with no arguments
* Added no-else cases and arrays
* Added more operations including ilike, concat
* Added optional all to set operations and fixed natural join
* Ran astyle
* Used the appropriate star expression
Instead of using a ColumnRef with star literal.
* NULL expressions now returns true isLiteral
* Fixed structure for no-else case clauses
* Fixed up grammar conflicts
2017-07-26 19:09:02 +02:00
Pedro Flemming
69d96061b2
Add tokenize method to SQLParser to output the list of tokens ( #54 )
...
Added tokenize benchmark. Restructured Makefile
2017-07-21 02:47:45 +02:00
Nan Xiao
12e35dcd63
Fix bug in print kExprFunctionRef expression. ( #53 )
...
* Fix bug in print kExprFunctionRef expression.
* Support print "groupBy" member in printSelectStatementInfo function.
2017-07-19 22:20:05 +02:00
Tim Zimmermann
6a05b8e94b
Add enum types for formerly 'simple' operands ( #48 )
...
* Add enum types for formerly 'simple' operands
* Use non-semantic names
* Formatting
* Add generated files
2017-06-29 13:40:24 +02:00
Tim Zimmermann
8913f9213d
Fix: use correct format specifiers for int64 ( #45 )
...
* Fix: use correct format specifiers for int64
* Use iostream instead of stdio
2017-06-14 22:46:43 +02:00
Pedro Flemming
09a96a9c88
Update bison source code
2017-06-06 22:15:19 +02:00
Pedro Flemming
1483a4a95a
Add Hints per statement to SQL syntax.
2017-06-06 22:15:19 +02:00
Pedro Flemming
f85a5e7b52
Prepared Statements ( #43 )
...
Changed PREPARE syntax to be closer to the standard.
2017-05-29 16:22:13 +02:00
Pedro Flemming
128cd74670
fix token generator for negative numbers ( #41 )
2017-04-25 17:25:00 +02:00
Pedro Flemming
793258f872
Add capability for multi join table references ( #40 )
2017-04-21 22:03:12 +02:00
Pedro Flemming
0909c6a89a
Documentation & Result Move Constructor ( #39 )
...
Updates documentation, adds a move constructor to SQLParserResult, fixes compile-time warnings
2017-04-21 16:15:07 +02:00
Pedro Flemming
927c8ec40a
add tests and benchmarks for prepare and execute
2017-04-09 13:34:51 +02:00
Pedro Flemming
e94e80e674
add various utility methods to SQLParserResult like releaseStatements
2017-04-08 03:18:58 +02:00
Pedro Flemming
cfe69a44de
update parser sources
2017-04-07 16:26:20 +02:00
Pedro Flemming
e16925e7a5
add parseSQLString method with output parameter instead of return value
2017-04-07 16:16:25 +02:00
Pedro Flemming
074c564cc4
move initialization of SQLParserResult to SQLParser from bison_parser
2017-04-07 16:07:14 +02:00
Pedro Flemming
e6cd70f029
move sqlhelper into util/. Add convenience methods
2017-04-07 15:47:51 +02:00
Pedro Flemming
1a97db687b
update parser and lexer
2017-04-06 18:28:22 +02:00
Pedro Flemming
de48a0bafd
adjust define guard namings
2017-04-06 18:27:47 +02:00
Pedro Flemming
7bce903eb8
fix various const constraints and comments
2017-04-06 17:42:46 +02:00
Pedro Flemming
eddd799c26
rename operators to match constant naming style. Move the enum out of Expr
2017-04-06 17:25:47 +02:00
Pedro
137f273410
update parser build
2017-03-08 20:36:06 +01:00
Pedro
3e52bf1a66
Add test for grammar conflicts. Print summary at the end of tests
2017-03-08 19:28:25 +01:00
Pedro
39d0dbd9af
Implement CREATE VIEW and DROP VIEW
2017-03-08 17:42:33 +01:00
Pedro
9a5a352a0b
add explicit test to TPC-H query properties
2017-03-08 16:55:29 +01:00
Pedro
a0e55035fd
Implement NOT EXISTS
2017-03-07 15:53:22 +01:00
Pedro
177901816f
add more join types
2017-03-07 15:49:49 +01:00
Pedro
b4adfa5b74
implement IN operator
2017-03-07 15:44:44 +01:00
Pedro
bf255c65ac
fix memory leaks
2017-03-07 15:09:39 +01:00
Pedro
b7828e698e
implement CASE WHEN expressions
2017-03-07 14:55:51 +01:00
Pedro
5605dbab7e
implement EXISTS conditional
2017-03-07 14:37:19 +01:00
Pedro
cf1c84d46d
Add select statement as possible operand in expressions
2017-03-07 14:22:52 +01:00
Pedro
35b8b569eb
Implement BETWEEN operator
2017-03-07 13:49:56 +01:00
Pedro
9ecfa8e8f6
Allow function expressions to have variable length of parameters
2017-03-07 02:51:04 +01:00
Pedro
f82504b319
Allow order by to define a list of expressions to order by
2017-03-07 02:30:44 +01:00
Pedro
36adab70c5
add 10 tpch style queries and test for them
2017-03-07 02:01:00 +01:00
Pedro Flemming
42049b4d56
Benchmarking ( #27 )
...
Adds benchmarking capabilities and small grammar fix.
2017-03-06 18:30:35 +01:00
Pedro
de56d9a7ea
fix error in parser destructor
2017-02-10 21:42:02 +01:00
Pedro Flemming
2890cd368e
fix example for recent API changes
2017-02-08 13:51:50 +01:00
Pedro Flemming
d576350e1e
add auto memory leak check with valgrind to test script
2017-02-08 11:59:24 +01:00
Pedro
1f183147ec
fix memory leaks when parsing fails
2017-02-08 04:56:07 +01:00
Pedro
5041dccf70
fix all leaks triggered by sql_grammar_test.cpp
2017-02-08 04:27:04 +01:00
Pedro
69e9673763
fixed leaks triggered by sql_tests.cpp
2017-02-08 04:10:26 +01:00
Pedro
a362e86da1
resolved memory leaks triggered in select tests
2017-02-08 03:54:38 +01:00
Pedro
4aca7d035f
fixed inconsistend member naming. fixed building of error result in parser
2017-02-08 03:07:51 +01:00
Pedro
ec46b28f32
improved interface of SQLParserResult
2017-02-08 02:59:07 +01:00
Pedro
5cf62f6b1d
add documentation to parser and parsing result
2017-02-08 02:33:42 +01:00
Pedro
28214e8043
change indent to spaces=2 and indent access modifiers. minor style changes
2017-02-08 02:16:52 +01:00
Pedro
8582c7f901
remove typedef enums and inline methods.
2017-02-08 02:02:30 +01:00
Pedro
02b7b880ed
remove inline functions from Expr
2017-02-08 01:55:59 +01:00
Pedro Flemming
0946624d54
moved implementations from header files to statements.cpp
2017-02-03 16:50:18 +01:00
Pedro Flemming
61be0684cf
update build after merging #17
2016-05-24 15:09:11 +02:00
Adnan Hasnain Alam
bcb5fe5e82
Enable compilation on clang++ also
...
‘uint’ is only available on Linux. Other than this, there seems to be
no other dependency on the compiler.
2016-04-30 10:26:18 +05:30
Pedro
4632abf92d
change var names to camelCase
2016-02-27 15:22:22 +01:00
Pedro
7d1c56d0aa
add astyle formatting
2016-02-27 15:01:06 +01:00
Pedro
57b8cdd31b
adjust names of members
2016-02-27 14:45:59 +01:00
Pedro
3df367e668
renamed SQLStatementList to SQLParserResult and moved into separate file
2016-02-27 14:24:23 +01:00
Pedro Flemming
f98843a316
extended example code
2016-01-16 12:36:58 +01:00
Pedro
8b59940fa3
include bison and flex generated code in release
2015-12-23 17:02:45 +01:00
Pedro
5046c6477f
restructured source code and build dynamic library
2015-12-23 16:01:08 +01:00
Santa Zhang
61a1e65319
fix memory leak in SQLStatementList
2015-10-30 22:25:26 -04:00
Santa Zhang
c8b768e549
fix build on mac
...
* typedef unsigned int uint
uint isn't a standard type - unsigned int is.
* add missing #include <string>
clang on mac complains about this
2015-05-23 12:39:19 -04:00
Pedro
c0c39b8bec
removed obsolete analysis code
2015-02-04 19:07:08 +01:00
Pedro
2f110b8168
implemented DEALLOCATE PREPARE
2015-01-07 13:42:11 +01:00
Pedro
ab9a85704f
modification to prepare syntax
2015-01-07 13:24:39 +01:00
Pedro
c3ded749e6
execute fix
2015-01-06 20:26:55 +01:00
Pedro
d9e6712b64
destructor fix
2015-01-06 20:07:08 +01:00
Pedro
0c309ad658
minor doc changes
2015-01-06 20:01:10 +01:00
Pedro
71f9252019
removed List class wrapper and use simply std::vector throughout
2015-01-06 19:47:59 +01:00
Pedro
b5aba646d8
support for execute without parameter list added
2015-01-06 19:20:52 +01:00
Pedro
fed174a892
improved prepared statements
2015-01-06 15:29:18 +01:00
Pedro
8abfd6094e
minor changes
2015-01-05 16:22:57 +01:00
Pedro
57b062f2b0
added distinct
2014-12-18 12:28:24 +01:00
Pedro
3c98fe1bae
added having
2014-12-18 12:11:26 +01:00
Pedro
85b9ed2cf2
added doxygen documentation
2014-12-15 18:32:46 +01:00
Pedro
21503300ca
added parsing of prepare and execute statement
2014-12-15 16:43:32 +01:00
Pedro
6f1a2821b2
added grammar rules for prepare and execute
2014-12-15 15:01:01 +01:00
Pedro
98c84abcba
added location tracking to parser
2014-12-15 14:43:42 +01:00
Pedro
7d2cc528b3
updated sample queries
2014-12-05 09:37:59 +01:00
Pedro
adcdc490dd
restructured and refactored statements
2014-12-03 17:43:02 +01:00
Pedro
4e9eebb2af
implemented drop statements
2014-12-03 16:53:49 +01:00