Commit Graph

328 Commits

Author SHA1 Message Date
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
mrks ab1e6b4192
Fix printing of EXISTS (SELECT) (#114)
* Fix printing of EXISTS (SELECT)

* Update sqlhelper.cpp
2019-04-23 11:35:17 +02:00
mrks ddb6276fac
Fix print (#112) 2019-04-23 11:03:18 +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
Moritz Eyssen 9701403ff5 Fix multi-threaded parsing (#110)
This should fix multi-threaded parsing. Not a clean solution, I am guessing the following block should be a single, state-less pattern? @mrks

```
\'                          { BEGIN singlequotedstring; strbuf = std::stringstream{}; }
<singlequotedstring>\'\'    { strbuf << '\''; }
<singlequotedstring>[^']*   { strbuf << yytext; }
<singlequotedstring>\'      { BEGIN 0; yylval->sval = strdup(strbuf.str().c_str()); return SQL_STRING; }
<singlequotedstring><<EOF>> { fprintf(stderr, "[SQL-Lexer-Error] Unterminated string\n"); return 0; }
```

Anyway, the following hyrise playground does not crash anymore, so Toni should be able to work with this for the time being.

```c++
#include <iostream>
#include <thread>

#include "types.hpp"
#include "tpch/tpch_queries.hpp"
#include "SQLParser.h"

using namespace opossum;  // NOLINT

int main() {
  std::vector<std::thread> threads;

  for (size_t t = 0; t < 200; ++t) {
    threads.emplace_back([&]() {
      for (size_t p = 0; p < 10'000; ++p) {
        hsql::SQLParserResult result;
        hsql::SQLParser::parse(tpch_queries.at(19), &result);
        std::cout << "Parsing " << p << " is valid: " << result.isValid() << std::endl;
      }
    });
  }

  for (auto& thread : threads) {
    thread.join();
  }

  return 0;
}
```
2019-03-22 07:07:17 -05:00
mrks 1b86e5e624
Make parameters for execute optional (#107) 2018-11-23 11:10:31 +01:00
mrks bd56ba8f7a
Fix type inconsistency (#106) 2018-11-17 12:10:39 +01:00
mrks b35fce9977
store all float values in doubles (#105) 2018-11-17 12:02:48 +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
mrks c7980a0009
Fix include guard naming [-Wreserved-id-macro] (#99) 2018-09-29 10:38:29 +02:00
Jan Koßmann 717df4d910 Adjust license paragraph in readme (#97) 2018-05-31 17:51:27 +10: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 c7e8309363
Merge pull request #79 from f4lco/table-alias-with-columns
Extend table alias with column renames: "AS tbl(c0, c1)"
2018-02-12 11:42:02 +01: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
mrks 77185183f6
Merge pull request #87 from hyrise/mrks/fix-flex
Fix use of old flex version
2018-02-08 18:15:48 +01:00
Markus Dreseler 8bd3ad3a2c
Fix use of old flex version 2018-02-08 18:06:17 +01:00
mrks 2dea18f515
Merge pull request #83 from javrucebo/limit-offset
Allow more variations of LIMIT/OFFSET
2018-02-08 17:36:22 +01:00
Markus Dreseler 8ec540fc52
Merge branch 'master' of https://github.com/hyrise/sql-parser into limit-offset 2018-02-08 17:25:30 +01:00
mrks fbc1839786
Merge pull request #82 from hyrise/remove_unused_enum_members
Remove unused enum members
2018-02-08 17:01:33 +01:00
Moritz Eyssen c43af4b401
Update bison_parser.y 2018-02-08 16:46:30 +01:00
javrucebo e33e6f61f7 committing bison/flex output to run testsuite on travis 2018-01-27 01:00:55 +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
Moritz Eyssen 48f32a4b73 remove unused enum members 2018-01-24 15:35:45 +01:00
mrks 36628dc005
Merge pull request #80 from javrucebo/operator-equals
Allow '==' for operator equals
2018-01-24 14:53:22 +01:00
mrks 5fa5a94c9e
Merge branch 'master' into operator-equals 2018-01-24 14:20:23 +01:00
mrks ea694ad2b3
Merge pull request #81 from javrucebo/join-types
Adjust Join types
2018-01-23 13:46:17 +01:00
mrks ac9a742fce
Rearrange order of join types 2018-01-23 13:39:42 +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
javrucebo 9872603fe7
Merge pull request #1 from hyrise/master
Update from original
2018-01-22 18:19:26 +01:00
mrks edaba87af7
Merge pull request #78 from lawben/fix_ref_table_order
Fix order of table references in multi table FROM
2018-01-18 10:37:57 +01:00
mrks 314d697fa2
Merge branch 'master' into fix_ref_table_order 2018-01-18 10:13:34 +01:00
mrks fe51c9e4f7
Merge pull request #77 from lawben/master
Add stringLength information to Statement
2018-01-18 10:04:10 +01:00
Lawrence a578842117 Fix order of table_ref 2018-01-17 16:47:57 +01:00
Lawrence 2f5502cb93
Fix typo 2018-01-17 16:05:42 +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
mrks 0fc6dafc4d
Merge pull request #76 from hyrise/fix_casewhenwhen
Changing Grammar to extend CASE WHEN statement
2018-01-17 15:34:34 +01:00
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 59140d573e Merge pull request #59 from NanXiao/print-op-expr
Print exprList in printOperatorExpression
2017-10-24 15:26:00 +02:00
mrks 4d36a1d426 Merge branch 'master' into print-op-expr 2017-10-24 15:20:53 +02:00