Update for IN query - fix for when argument is column name.

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8809 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ucorina 2011-08-18 19:10:26 +00:00
parent bb95345fb2
commit 99b5d718e6
6 changed files with 57 additions and 26 deletions

View file

@ -17,9 +17,13 @@
$this->_value = $argument->getValue();
else if(is_a($this->argument, 'Subquery'))
$this->_value = $argument->toString();
else {
if(in_array($operation, array('in', 'not in')))
$this->_value = '('. $argument .')';
else
$this->_value = $argument;
}
}
function hasArgument(){
return is_a($this->argument, 'Argument');

View file

@ -16,14 +16,20 @@
protected function setUp() {
$oContext = &Context::getInstance();
$db_info->db_type = 'cubrid';
$db_info->db_port = '33000';
$db_info->db_hostname = '10.0.0.206';
$db_info->db_userid = 'dba';
$db_info->db_password = 'arniarules';
$db_info->db_database = 'xe15QA';
$db_info->db_table_prefix = 'xe';
$db_info->master_db = array('db_type' => 'cubrid'
,'db_port' => '33000'
,'db_hostname' => '10.0.0.206'
,'db_userid' => 'dba'
,'db_password' => 'arniarules'
,'db_database' => 'xe15QA'
,'db_table_prefix' => 'xe_');
$db_info->slave_db = array(array('db_type' => 'cubrid'
,'db_port' => '33000'
,'db_hostname' => '10.0.0.206'
,'db_userid' => 'dba'
,'db_password' => 'arniarules'
,'db_database' => 'xe15QA'
,'db_table_prefix' => 'xe_'));
$oContext->setDbInfo($db_info);
// remove cache dir

View file

@ -12,8 +12,8 @@
protected function setUp() {
$oContext = &Context::getInstance();
$db_info->db_type = 'cubrid';
$db_info->db_table_prefix = 'xe';
$db_info->master_db = array('db_type' => 'cubrid','db_table_prefix' => 'xe_');
$db_info->slave_db = array(array('db_type' => 'cubrid','db_table_prefix' => 'xe_'));
$oContext->setDbInfo($db_info);
}

View file

@ -11,19 +11,25 @@
protected $preserveGlobalState = FALSE;
/**
* Prepare runtime context - tell DB class that current DB is CUBRID
* Prepare runtime context - tell DB class that current DB is MSSQL
*/
protected function setUp() {
$oContext = &Context::getInstance();
$db_info->db_type = 'mssql';
$db_info->db_port = '3306';
$db_info->db_hostname = 'PHENOMII\SQL2008EXPRESS';
$db_info->db_userid = 'dba';
$db_info->db_password = 'arniarules';
$db_info->db_database = 'xe-15-db';
$db_info->db_table_prefix = 'xe';
$db_info->master_db = array('db_type' => 'mssql'
,'db_port' => '3306'
,'db_hostname' => 'PHENOMII\SQL2008EXPRESS'
,'db_userid' => 'dba'
,'db_password' => 'arniarules'
,'db_database' => 'xe-15-db'
,'db_table_prefix' => 'xe_');
$db_info->slave_db = array(array('db_type' => 'mssql'
,'db_port' => '3306'
,'db_hostname' => 'PHENOMII\SQL2008EXPRESS'
,'db_userid' => 'dba'
,'db_password' => 'arniarules'
,'db_database' => 'xe-15-db'
,'db_table_prefix' => 'xe_'));
$oContext->setDbInfo($db_info);
// remove cache dir

View file

@ -10,8 +10,8 @@
protected function setUp() {
$oContext = &Context::getInstance();
$db_info->db_type = 'mssql';
$db_info->db_table_prefix = 'xe';
$db_info->master_db = array('db_type' => 'mssql','db_table_prefix' => 'xe_');
$db_info->slave_db = array(array('db_type' => 'mssql','db_table_prefix' => 'xe_'));
$oContext->setDbInfo($db_info);
}

View file

@ -342,4 +342,19 @@
$this->_test($xml_file, $argsString, $expected);
}
function test_document_getDeclaredList_In_Query(){
$xml_file = _XE_PATH_ . "modules/document/queries/getDeclaredList.xml";
$argsString = "\$args->list_count = 30;
\$args->page_count = 10;
\$args->sort_index = 'document_declared.declared_count';
\$args->order_type = 'desc';";
$expected = 'select * from "xe_documents" as "documents"
, "xe_document_declared" as "document_declared"
where "documents"."document_srl"
in ("document_declared"."document_srl")
order by "document_declared"."declared_count" desc
limit 0, 30';
$this->_test($xml_file, $argsString, $expected);
}
}