Commit Graph

93 Commits

Author SHA1 Message Date
Mike Siomkin 7b22ee8ecb Add support of CAST(expression AS datatype(length))
CAST(expression AS datatype(length)) construction is a part of
ANSI SQL-92 standard. So we have to support it.
2020-06-16 22:39:00 +03:00
Mateo Gonzales Navarrete 4ca664cdd3 Assert nullable on columns->at(4). Assertion was being made twice at(3). 2020-05-25 15:04:39 -05:00
Tobias Nack e8ce1c4caf
Add support to identify different set operators & allow chain of multiple set operators (#138) 2020-02-18 14:26:10 +01:00
Till Later 4b617bca96 Adds simple transaction commands (#137) 2020-01-14 13:21:19 +01:00
Daniel Lindner e3cfc80975 Add COPY for import and export (#139) 2020-01-08 16:21:02 +01:00
mrks a4703fec5b
Add DESCRIBE (#131) 2019-09-16 11:58:05 +02:00
d-justen de4f81bb18 Support Create Table As Syntax (#127)
* support create table as select statement

* Generate bison code

* add test
2019-06-07 11:42:49 +02:00
Julian Menzler 6003ab58d1 Support WITH (#125)
* Add struct WithDescription in SelectStatement.h

* Add test for With statements

* Implement With draft

* tm

* Fix Grammar

* Fix commented code

* naming improvements

* naming improvements

* introduce memory leak1

* removed memory leak

* Create two WITH-tests

* Add bad queries reg. WITH
2019-05-24 16:42:28 +02:00
Leander Neiss e0e58d0876 Allow Expressions in LIMIT and OFFSET. (#111)
* Allow Expressions in LIMIT and OFFSET.

* Make NULL distinguishable from nullptr (not present) for LIMIT and OFFSET.
2019-04-04 12:25:15 +02:00
mrks 1b86e5e624
Make parameters for execute optional (#107) 2018-11-23 11:10:31 +01:00
mrks 62d162579a
Support escaped strings (e.g., 'Max O''Mustermann') (#104)
* Support escaped strings (e.g., 'Max O''Mustermann')

* review
2018-11-12 15:35:31 +01:00
alkim0 a59deb43c3 Added boolean literal support (#103)
* Added boolean support

* Made bool literals int vals

With a flag indicating if they came from boolean literals.

* Add makeLiteral(bool val);
2018-11-02 11:42:23 +01:00
mrks a122effd46
Fix Tokens (#102)
* Fix Tokens

* fix

* ci
2018-10-22 22:05:29 +02:00
mrks f7bd4ee592
Support more of the CREATE TABLE command (#101)
* Support more of the CREATE TABLE command

* bison version

* build on nemea

* bla

* Check for flex version
2018-10-19 14:18:03 +02:00
mrks 79bdad949f
Remove PART keyword (#100)
* Remove PART keyword

* Change it in some tests
2018-10-10 16:33:53 +02:00
Tim Zimmermann 1f564e16b8 Add tests for SUBSTR support (#96)
* Add test for SUBSTR support

* Trigger CI

* Trigger

* Trigger

* Trigger

* Remove CMake file
2018-05-30 17:52:56 +10:00
Moritz Eyssen 73ed061d7d Support EXTRACT (#95)
* EXTRACT support

* formatting

* formatting

* formatting
2018-05-23 03:02:14 +02:00
Moritz Eyssen 82e73f66d2 No FROM required (#94) 2018-05-22 15:35:39 +02:00
mrks 7837a2a6f5
Dummy-Commit to retrigger CI 2018-02-12 11:36:47 +01:00
Falco Duersch 2ff32fbee3 Extend table alias with column renames: "AS tbl(c0, c1)" 2018-02-12 11:28:36 +01:00
javrucebo cdd271490b Allow more variations of LIMIT/OFFSET
In addtion to already supported LIMIT/OFFSET variants allow more to be parsed

Legacy:
  - LIMIT int
  - LIMIT int OFFSET int

Enhancement:
  - OFFSET int             (no limit)
  - LIMIT ALL              (no limit)
  - LIMIT NULL             (no limit)
  - LIMIT ALL OFFSET int   (no limit, but offset)
  - LIMIT NULL OFFSET int  (no limit, but offset)

Also ensures negative limits / offsets are set to kNoLimit/kNoOffset
2018-01-27 00:33:23 +01:00
mrks 5fa5a94c9e
Merge branch 'master' into operator-equals 2018-01-24 14:20:23 +01:00
javrucebo 66688f7199 Adjust Table Join Types
Consolidate LeftOuter/Left and RightOuter/Right as they are
by definition the same.
Similar consolidate FullOuter/Outer/Full ... with Outer (as in the
parser) not part of standard, but "full" missing. Allowing all three.

This commit potentially breaks other programs as kJoinLeftOuter and kJoinRightOuter
are eliminated
2018-01-22 20:44:33 +01:00
javrucebo 66804a6281 Allow '==' to be parsed as equal operator in expressions.
SQLite allows for this and it is in the same spirit as allowing both != and <>
for non equality.
(see https://sqlite.org/lang_expr.html#collateop)
2018-01-22 18:54:52 +01:00
Lawrence a578842117 Fix order of table_ref 2018-01-17 16:47:57 +01:00
Lawrence 1425deb75d Merge master 2018-01-17 15:53:23 +01:00
Lawrence 77e396703f Add stringLength information to hsql::Statement 2018-01-17 15:43:38 +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
Moritz Eyssen aa4dc099a0 Add DropTableIfExistsStatementTest 2017-10-12 20:19:59 +02:00
Moritz Eyssen 09f821e383 Add test for schema ref in FROM 2017-10-12 20:07:30 +02:00
Moritz Eyssen 0d0ba53546 Formatting and more tests 2017-10-12 19:18:38 +02:00
root d220ff47ab add drop test case in test/queries/queries-good.sql 2017-09-29 17:15:18 +08: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
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
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
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 d318ef0de4 update tpch tests to use new interface 2017-04-07 16:28:33 +02:00
Pedro Flemming 6b22e22162 update tests to use the new Parser interface 2017-04-07 16:26:00 +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 9e558c7d22 Merge remote-tracking branch 'upstream/master' into misc 2017-04-07 15:48:51 +02:00
Pedro Flemming e6cd70f029 move sqlhelper into util/. Add convenience methods 2017-04-07 15:47:51 +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 589a251ed7 add copy header files to install rule 2017-04-04 02:58:16 +02:00