From 5807c58180ceb4e01bf304bb477af0c356f05573 Mon Sep 17 00:00:00 2001 From: Ujjwal Ojha Date: Thu, 20 Feb 2014 20:25:56 -0800 Subject: [PATCH 1/9] Now, identifier can also be array --- library/Zend/Db/Sql/Predicate/In.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/library/Zend/Db/Sql/Predicate/In.php b/library/Zend/Db/Sql/Predicate/In.php index 569d8dac0e5..6e8e122a8af 100644 --- a/library/Zend/Db/Sql/Predicate/In.php +++ b/library/Zend/Db/Sql/Predicate/In.php @@ -89,7 +89,21 @@ public function getValueSet() public function getExpressionData() { $values = $this->getValueSet(); + $identifier = $this->getIdentifier(); if ($values instanceof Select) { + if (is_array($identifier)) { + $identifiers = $identifier; + $specification = ' ( ' . implode(', ', array_fill(0, count($identifiers), '%s')) . ' ) '; + $specification .= ' IN %s'; + $values = array_merge($identifiers, array($values)); + $types = array_fill(0, count($identifiers), self::TYPE_IDENTIFIER); + $types[] = self::TYPE_VALUE; + return array(array( + $specification, + $values, + $types, + )); + } $specification = $this->selectSpecification; $types = array(self::TYPE_VALUE); $values = array($values); @@ -98,7 +112,6 @@ public function getExpressionData() $types = array_fill(0, count($values), self::TYPE_VALUE); } - $identifier = $this->getIdentifier(); array_unshift($values, $identifier); array_unshift($types, self::TYPE_IDENTIFIER); From 5cfad459a2965a147b657debf78088452dc3293c Mon Sep 17 00:00:00 2001 From: Ujjwal Ojha Date: Thu, 20 Feb 2014 21:27:49 -0800 Subject: [PATCH 2/9] Updated Tests of identifier array --- tests/ZendTest/Db/Sql/Predicate/InTest.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/ZendTest/Db/Sql/Predicate/InTest.php b/tests/ZendTest/Db/Sql/Predicate/InTest.php index f132b4b416e..977ba14cd03 100644 --- a/tests/ZendTest/Db/Sql/Predicate/InTest.php +++ b/tests/ZendTest/Db/Sql/Predicate/InTest.php @@ -68,4 +68,15 @@ public function testGetExpressionDataWithSubselect() )); $this->assertEquals($expected, $in->getExpressionData()); } + + public function testGetExpressionDataWithSubselectAndArrayIdentifier() + { + $in = new In(array('foo', 'bar'), $select = new Select); + $expected = array(array( + ' ( %s, %s ) IN %s', + array('foo', 'bar', $select), + array($in::TYPE_IDENTIFIER, $in::TYPE_IDENTIFIER, $in::TYPE_VALUE) + )); + $this->assertEquals($expected, $in->getExpressionData()); + } } From 3dfaa5bf3b878a279ebb2c3003221ddddcde02eb Mon Sep 17 00:00:00 2001 From: Ujjwal Ojha Date: Thu, 20 Feb 2014 23:25:56 -0800 Subject: [PATCH 3/9] Removed trailing spaces --- library/Zend/Db/Sql/Predicate/In.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/Zend/Db/Sql/Predicate/In.php b/library/Zend/Db/Sql/Predicate/In.php index 6e8e122a8af..09966e42f34 100644 --- a/library/Zend/Db/Sql/Predicate/In.php +++ b/library/Zend/Db/Sql/Predicate/In.php @@ -95,7 +95,7 @@ public function getExpressionData() $identifiers = $identifier; $specification = ' ( ' . implode(', ', array_fill(0, count($identifiers), '%s')) . ' ) '; $specification .= ' IN %s'; - $values = array_merge($identifiers, array($values)); + $values = array_merge($identifiers, array($values)); $types = array_fill(0, count($identifiers), self::TYPE_IDENTIFIER); $types[] = self::TYPE_VALUE; return array(array( From f76f2ba949b2f0cd4ceaeba9f5c56d57c84ed47c Mon Sep 17 00:00:00 2001 From: Ujjwal Ojha Date: Fri, 21 Feb 2014 00:00:39 -0800 Subject: [PATCH 4/9] Fixed alignment --- library/Zend/Db/Sql/Predicate/In.php | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/library/Zend/Db/Sql/Predicate/In.php b/library/Zend/Db/Sql/Predicate/In.php index 09966e42f34..9bd72a01942 100644 --- a/library/Zend/Db/Sql/Predicate/In.php +++ b/library/Zend/Db/Sql/Predicate/In.php @@ -92,17 +92,17 @@ public function getExpressionData() $identifier = $this->getIdentifier(); if ($values instanceof Select) { if (is_array($identifier)) { - $identifiers = $identifier; - $specification = ' ( ' . implode(', ', array_fill(0, count($identifiers), '%s')) . ' ) '; - $specification .= ' IN %s'; - $values = array_merge($identifiers, array($values)); - $types = array_fill(0, count($identifiers), self::TYPE_IDENTIFIER); - $types[] = self::TYPE_VALUE; - return array(array( - $specification, - $values, - $types, - )); + $identifiers = $identifier; + $specification = ' ( ' . implode(', ', array_fill(0, count($identifiers), '%s')) . ' ) '; + $specification .= ' IN %s'; + $values = array_merge($identifiers, array($values)); + $types = array_fill(0, count($identifiers), self::TYPE_IDENTIFIER); + $types[] = self::TYPE_VALUE; + return array(array( + $specification, + $values, + $types, + )); } $specification = $this->selectSpecification; $types = array(self::TYPE_VALUE); From c31f642378d6a15e886af7a337ac017bca14cbdc Mon Sep 17 00:00:00 2001 From: Ujjwal Ojha Date: Fri, 21 Feb 2014 00:03:23 -0800 Subject: [PATCH 5/9] Update In.php --- library/Zend/Db/Sql/Predicate/In.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/library/Zend/Db/Sql/Predicate/In.php b/library/Zend/Db/Sql/Predicate/In.php index 9bd72a01942..fd43d91c2cd 100644 --- a/library/Zend/Db/Sql/Predicate/In.php +++ b/library/Zend/Db/Sql/Predicate/In.php @@ -95,12 +95,11 @@ public function getExpressionData() $identifiers = $identifier; $specification = ' ( ' . implode(', ', array_fill(0, count($identifiers), '%s')) . ' ) '; $specification .= ' IN %s'; - $values = array_merge($identifiers, array($values)); $types = array_fill(0, count($identifiers), self::TYPE_IDENTIFIER); $types[] = self::TYPE_VALUE; return array(array( $specification, - $values, + array_merge($identifiers, array($values)), $types, )); } From e7e64ed27455d08f1c502d057fb560fada000b62 Mon Sep 17 00:00:00 2001 From: Ujjwal Ojha Date: Fri, 21 Feb 2014 02:04:59 -0800 Subject: [PATCH 6/9] CS fixes --- library/Zend/Db/Sql/Predicate/In.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/library/Zend/Db/Sql/Predicate/In.php b/library/Zend/Db/Sql/Predicate/In.php index fd43d91c2cd..353ee7b49cd 100644 --- a/library/Zend/Db/Sql/Predicate/In.php +++ b/library/Zend/Db/Sql/Predicate/In.php @@ -23,8 +23,8 @@ class In implements PredicateInterface /** * Constructor * - * @param null|string $identifier - * @param array $valueSet + * @param null|string $identifier + * @param array $valueSet */ public function __construct($identifier = null, $valueSet = null) { @@ -45,6 +45,7 @@ public function __construct($identifier = null, $valueSet = null) public function setIdentifier($identifier) { $this->identifier = $identifier; + return $this; } @@ -61,7 +62,7 @@ public function getIdentifier() /** * Set set of values for IN comparison * - * @param array $valueSet + * @param array $valueSet * @throws Exception\InvalidArgumentException * @return In */ @@ -73,6 +74,7 @@ public function setValueSet($valueSet) ); } $this->valueSet = $valueSet; + return $this; } @@ -97,6 +99,7 @@ public function getExpressionData() $specification .= ' IN %s'; $types = array_fill(0, count($identifiers), self::TYPE_IDENTIFIER); $types[] = self::TYPE_VALUE; + return array(array( $specification, array_merge($identifiers, array($values)), From 4d502f2ff86da3b81a25b4a1de9986d31703da28 Mon Sep 17 00:00:00 2001 From: Ujjwal Ojha Date: Thu, 27 Feb 2014 19:56:23 -0800 Subject: [PATCH 7/9] Update In.php --- library/Zend/Db/Sql/Predicate/In.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/library/Zend/Db/Sql/Predicate/In.php b/library/Zend/Db/Sql/Predicate/In.php index 353ee7b49cd..bc89a660dbb 100644 --- a/library/Zend/Db/Sql/Predicate/In.php +++ b/library/Zend/Db/Sql/Predicate/In.php @@ -23,8 +23,8 @@ class In implements PredicateInterface /** * Constructor * - * @param null|string $identifier - * @param array $valueSet + * @param null|string|array $identifier + * @param null|array|Select $valueSet */ public function __construct($identifier = null, $valueSet = null) { @@ -39,7 +39,7 @@ public function __construct($identifier = null, $valueSet = null) /** * Set identifier for comparison * - * @param string $identifier + * @param string|array $identifier * @return In */ public function setIdentifier($identifier) @@ -52,7 +52,7 @@ public function setIdentifier($identifier) /** * Get identifier of comparison * - * @return null|string + * @return null|string|array */ public function getIdentifier() { @@ -62,7 +62,7 @@ public function getIdentifier() /** * Set set of values for IN comparison * - * @param array $valueSet + * @param array|Select $valueSet * @throws Exception\InvalidArgumentException * @return In */ @@ -78,6 +78,11 @@ public function setValueSet($valueSet) return $this; } + /** + * Gets set of values in IN comparision + * + * @return array|Select + */ public function getValueSet() { return $this->valueSet; From 82b2de3b55d14c2bcce0f22116859700f95c547f Mon Sep 17 00:00:00 2001 From: Ujjwal Ojha Date: Thu, 27 Feb 2014 20:01:44 -0800 Subject: [PATCH 8/9] Removed trailing spaces --- tests/ZendTest/Db/Sql/Predicate/InTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ZendTest/Db/Sql/Predicate/InTest.php b/tests/ZendTest/Db/Sql/Predicate/InTest.php index 977ba14cd03..9ed99d4b40a 100644 --- a/tests/ZendTest/Db/Sql/Predicate/InTest.php +++ b/tests/ZendTest/Db/Sql/Predicate/InTest.php @@ -78,5 +78,5 @@ public function testGetExpressionDataWithSubselectAndArrayIdentifier() array($in::TYPE_IDENTIFIER, $in::TYPE_IDENTIFIER, $in::TYPE_VALUE) )); $this->assertEquals($expected, $in->getExpressionData()); - } + } } From 979420bd6d1674253104c2a4d70349a002a37b0f Mon Sep 17 00:00:00 2001 From: Ujjwal Ojha Date: Thu, 27 Feb 2014 20:06:08 -0800 Subject: [PATCH 9/9] CS fixes --- tests/ZendTest/Db/Sql/Predicate/InTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ZendTest/Db/Sql/Predicate/InTest.php b/tests/ZendTest/Db/Sql/Predicate/InTest.php index 9ed99d4b40a..1f5be218427 100644 --- a/tests/ZendTest/Db/Sql/Predicate/InTest.php +++ b/tests/ZendTest/Db/Sql/Predicate/InTest.php @@ -68,7 +68,7 @@ public function testGetExpressionDataWithSubselect() )); $this->assertEquals($expected, $in->getExpressionData()); } - + public function testGetExpressionDataWithSubselectAndArrayIdentifier() { $in = new In(array('foo', 'bar'), $select = new Select);