Commit Graph

222 Commits

Author SHA1 Message Date
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
Pedro 48b473e7c5 refactored test framework 2014-12-03 16:32:56 +01:00
Pedro 03fe3a69e2 added update statement support 2014-12-02 01:27:02 +01:00
Pedro 2f76183586 implemented create with column def 2014-11-26 18:20:10 +01:00
Pedro 382522db76 improved testing 2014-11-26 17:45:59 +01:00
Pedro 49d3b8c14f added test-framework 2014-11-26 16:20:55 +01:00
Pedro 5997d9b4a1 extended create and added delete/truncate statement 2014-11-26 14:43:22 +01:00
Pedro 789a4a5b9b added class and keywords for updates 2014-11-26 12:19:33 +01:00
Pedro b86bf6e7f9 implemented insert statement 2014-11-26 00:26:20 +01:00
Pedro 7ab73f7b2b removed join algo 2014-11-18 16:38:31 +01:00
Pedro 070ea2de28 added join types and algorithms 2014-11-17 22:13:11 +01:00