From 3d578efa8a9775cd5c038e515a5614f4118555fe Mon Sep 17 00:00:00 2001 From: Tom Kay Date: Thu, 27 Nov 2014 23:24:16 +0000 Subject: [PATCH] Add ALLOW FILTERING clause for CQL --- src/Assembler/CQL/CqlAssembler.php | 7 ++++++- src/Clause/CQL/AllowFilteringClause.php | 23 ++++++++++++++++++++++ src/Statement/CQL/CqlQueryStatement.php | 14 +++++++++++++ tests/Statement/CqlQueryStatementTest.php | 24 +++++++++++++++++++++++ 4 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 src/Clause/CQL/AllowFilteringClause.php create mode 100644 src/Statement/CQL/CqlQueryStatement.php create mode 100644 tests/Statement/CqlQueryStatementTest.php diff --git a/src/Assembler/CQL/CqlAssembler.php b/src/Assembler/CQL/CqlAssembler.php index 8f76fb9..1fdd73d 100644 --- a/src/Assembler/CQL/CqlAssembler.php +++ b/src/Assembler/CQL/CqlAssembler.php @@ -2,6 +2,7 @@ namespace Packaged\QueryBuilder\Assembler\CQL; use Packaged\QueryBuilder\Assembler\MySQL\MySQLAssembler; +use Packaged\QueryBuilder\Clause\CQL\AllowFilteringClause; use Packaged\QueryBuilder\Expression\FieldExpression; use Packaged\QueryBuilder\Expression\TableExpression; use Packaged\QueryBuilder\Expression\ValueExpression; @@ -15,7 +16,11 @@ class CqlAssembler extends MySQLAssembler { public function assembleSegment($segment) { - if($segment instanceof AllSelectExpression) + if($segment instanceof AllowFilteringClause) + { + return 'ALLOW FILTERING'; + } + else if($segment instanceof AllSelectExpression) { $segment->setTable(null); } diff --git a/src/Clause/CQL/AllowFilteringClause.php b/src/Clause/CQL/AllowFilteringClause.php new file mode 100644 index 0000000..6be1522 --- /dev/null +++ b/src/Clause/CQL/AllowFilteringClause.php @@ -0,0 +1,23 @@ +addExpression(new AllSelectExpression()); + $statement->addClause($select); + $statement->addClause(new AllowFilteringClause()); + $this->assertEquals( + 'SELECT * ALLOW FILTERING', + CqlAssembler::stringify($statement) + ); + } +}