mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-14 00:39:57 +09:00
Update to array condition arguments.
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0-DB@8602 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
9606e263e8
commit
bf1d72e478
3 changed files with 24 additions and 25 deletions
|
|
@ -22,34 +22,20 @@
|
|||
$value = $this->value;
|
||||
|
||||
switch($operation) {
|
||||
case 'like_prefix' :
|
||||
$this->value = $value.'%';
|
||||
break;
|
||||
case 'like_tail' :
|
||||
$this->value = '%'.$value;
|
||||
break;
|
||||
case 'like' :
|
||||
$this->value = '%'.$value.'%';
|
||||
break;
|
||||
case 'in' :
|
||||
if(is_array($value))
|
||||
{
|
||||
//$value = $this->addQuotesArray($value);
|
||||
if($this->getType() == 'number')
|
||||
$this->value = "(" . join(',',$value) . ")";
|
||||
else
|
||||
$this->value = "('". join("','",$value)."')";
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->value = $value;
|
||||
}
|
||||
break;
|
||||
case 'like_prefix' :
|
||||
$this->value = $value.'%';
|
||||
break;
|
||||
case 'like_tail' :
|
||||
$this->value = '%'.$value;
|
||||
break;
|
||||
case 'like' :
|
||||
$this->value = '%'.$value.'%';
|
||||
break;
|
||||
}
|
||||
/*
|
||||
//if(!in_array($operation,array('in','notin','between')) && is_array($value)){
|
||||
// $value = join(',', $value);
|
||||
//}
|
||||
//}
|
||||
// Daca operatia nu este in, notin, between si coloana e de tip numeric
|
||||
// daca valoarea e array -> concatenare
|
||||
// daca valoarea nu e array si nici nu contine paranteze (nu e functie) -> return (int)
|
||||
|
|
|
|||
|
|
@ -38,6 +38,19 @@ class ConditionTest extends CubridTest {
|
|||
|
||||
$this->assertEquals('', $tag->toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks "in" operation
|
||||
*/
|
||||
public function testConditionString_In_VarcharArray() {
|
||||
$member_srl_argument = new ConditionArgument('"member_srl"', array('a', 'b', 'c'), 'in');
|
||||
$member_srl_argument->createConditionValue();
|
||||
$member_srl_argument->setColumnType('varchar');
|
||||
|
||||
$tag = new Condition('"member_srl"', $member_srl_argument, 'in');
|
||||
|
||||
$this->assertEquals(' "member_srl" in (\'a\',\'b\',\'c\')', $tag->toString());
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@
|
|||
function test_syndication_getGrantedModules(){
|
||||
$xml_file = _XE_PATH_ . "modules/syndication/queries/getGrantedModules.xml";
|
||||
$argsString = '$args->module_srl = 12;
|
||||
$args->name = array(\'access\',\'view\',\'list\');';
|
||||
$args->name = array(\'access\',\'view\',\'list\');';
|
||||
$expected = 'select "module_srl"
|
||||
from "xe_module_grants" as "module_grants"
|
||||
where "name" in (\'access\',\'view\',\'list\')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue