reverse merge from 1.6.0 (r10156, r10469, r10370, r10369, r10365, r10111, r10110, r10108, r10064, r10063, r10060, r10054, r10052, r10051, r10050, r10049, r10044, r10042, r10041, r10030, r10029, r10024, r10014, r10013)

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@10715 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ovclas 2012-05-17 05:52:06 +00:00
parent 3afad81016
commit 57a0cc59b1
24 changed files with 258 additions and 77 deletions

View file

@ -0,0 +1,21 @@
<query id="getMemberInfo" action="select">
<tables>
<table name="member" alias="member" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<query operation="equal" column="regdate" notnull="notnull" alias="documentMaxRegdate">
<tables>
<table name="documents" alias="documents" />
</tables>
<columns>
<column name="max(regdate)" alias="maxregdate" />
</columns>
<conditions>
<condition operation="equal" column="documents.user_id" var="member.user_id" notnull="notnull" />
</conditions>
</query>
</conditions>
</query>

View file

@ -21,7 +21,7 @@ class MysqlInsertTest extends MysqlTest
{
$this->_testQuery($xml_file, $argsString, $expected, 'getInsertSql', $columnList);
}
function testInsertIntoNumericColumnConvertsValue()
{
$xml_file = _TEST_PATH_ . "db/xml_query/mysql/data/member_insert_injection.xml";
@ -35,5 +35,41 @@ class MysqlInsertTest extends MysqlTest
}
/* End of file MysqlInsertTest.php */
/* Location: ./tests/classes/db/db/xml_query/mysql/MysqlInsertTest.php */
/**
* @brief testInsertSelectStatement - checks that when query action is 'insert-selct' an 'INSERT INTO .. SELECT ...' statement is properly generated
* @developer Corina Udrescu (xe_dev@arnia.ro)
* @access public
* @return void
*/
function testInsertSelectStatement()
{
$xml_file = _TEST_PATH_ . "db/xml_query/mysql/data/insert_select.xml";
$argsString = '$args->condition_value = 7;';
$expected = 'insert into `xe_table1` (`column1`, `column2`, `column3`)
select `column4`, `column5`, `column6`
from `xe_table2` as `table2`
where `column4` >= 7';
$this->_test($xml_file, $argsString, $expected);
}
function testInsertSelectStatement2()
{
$xml_file = _XE_PATH_ . "modules/wiki/queries/insertLinkedDocuments.xml";
$argsString = '$args->document_srl = 7;
$args->module_srl = 10;
$args->alias_list = array("unu", "doi");
';
$expected = 'insert into `xe_wiki_links`
(`cur_doc_srl`, `link_doc_srl`)
select 7, `document_srl`
from `xe_document_aliases` as `document_aliases`
where `module_srl` = 10
and `alias_title` in (\'unu\',\'doi\')';
$this->_test($xml_file, $argsString, $expected);
}
}
/* End of file MysqlInsertTest.php */
/* Location: ./tests/classes/db/db/xml_query/mysql/MysqlInsertTest.php */

View file

@ -0,0 +1,23 @@
<query id="QUERY_ID" action="insert-select">
<tables>
<table name="table1" />
</tables>
<columns>
<column name="column1" />
<column name="column2" />
<column name="column3" />
</columns>
<query>
<tables>
<table name="table2" />
</tables>
<columns>
<column name="column4" />
<column name="column5" />
<column name="column6" />
</columns>
<conditions>
<condition operation="more" column="column4" default="100" var="condition_value" />
</conditions>
</query>
</query>