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:
ucorina 2011-07-18 12:25:27 +00:00
parent 9606e263e8
commit bf1d72e478
3 changed files with 24 additions and 25 deletions

View file

@ -22,29 +22,15 @@
$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)){

View file

@ -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());
}
}
?>

View file

@ -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\')