mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-17 02:10:02 +09:00
Added subquery argument support to more types of queries.
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0-DB@8565 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
4b85afd9b3
commit
d248d70773
11 changed files with 232 additions and 32 deletions
|
|
@ -19,7 +19,7 @@
|
|||
function testSelectUncorrelated1(){
|
||||
$xml_file = $this->xmlPath . "select_uncorrelated1.xml";
|
||||
$argsString = '$args->user_id = 4;
|
||||
';
|
||||
';
|
||||
$expected = 'select "column_a" as "value_a"
|
||||
, (select max("column_b") as "count"
|
||||
from "xe_table_b" as "table_b"
|
||||
|
|
@ -45,7 +45,7 @@
|
|||
$this->_test($xml_file, $argsString, $expected);
|
||||
}
|
||||
|
||||
function testFromUncorrelated(){
|
||||
function testFromUncorrelated1(){
|
||||
$xml_file = $this->xmlPath . "from_uncorrelated1.xml";
|
||||
$argsString = '$args->user_id = 4;
|
||||
$args->user_name = 7;
|
||||
|
|
@ -58,17 +58,40 @@
|
|||
group by "member_srl"
|
||||
) as "documentcountbymember"';
|
||||
$this->_test($xml_file, $argsString, $expected);
|
||||
}
|
||||
}
|
||||
|
||||
function testWhereUncorrelated(){
|
||||
$xml_file = $this->xmlPath . "where_uncorrelated1.xml";
|
||||
$argsString = '';
|
||||
$expected = 'select * from
|
||||
"xe_member" as "member"
|
||||
where "regdate" = (select max("regdate") as "maxregdate"
|
||||
from "xe_documents" as "documents")';
|
||||
// function testFromUncorrelated2(){
|
||||
// $xml_file = $this->xmlPath . "from_uncorrelated1.xml";
|
||||
// $argsString = '$args->user_id = 4;
|
||||
// $args->user_name = 7;
|
||||
// ';
|
||||
// $expected = 'select max("documentcountbymember"."count") as "maxcount"
|
||||
// from (
|
||||
// select "member_srl" as "member_srl"
|
||||
// , count(*) as "count"
|
||||
// from "xe_documents" as "documents"
|
||||
// group by "member_srl"
|
||||
// ) as "documentcountbymember"';
|
||||
// $this->_test($xml_file, $argsString, $expected);
|
||||
// }
|
||||
|
||||
function testFromUncorrelated2(){
|
||||
$xml_file = $this->xmlPath . "from_uncorrelated2.xml";
|
||||
$argsString = '$args->member_srl = 4;
|
||||
$args->module_srl = 7;
|
||||
';
|
||||
$expected = 'select max("documentcountbymember"."count") as "maxcount"
|
||||
from (
|
||||
select "member_srl" as "member_srl"
|
||||
, count(*) as "count"
|
||||
from "xe_documents" as "documents"
|
||||
where "module_srl" = 7
|
||||
group by "member_srl"
|
||||
) as "documentcountbymember"
|
||||
where "member_srl" = 4
|
||||
';
|
||||
$this->_test($xml_file, $argsString, $expected);
|
||||
}
|
||||
}
|
||||
|
||||
function testSelectCorrelated1(){
|
||||
$xml_file = $this->xmlPath . "select_correlated1.xml";
|
||||
|
|
@ -83,6 +106,22 @@
|
|||
$this->_test($xml_file, $argsString, $expected);
|
||||
}
|
||||
|
||||
function testSelectCorrelated2(){
|
||||
$xml_file = $this->xmlPath . "select_correlated2.xml";
|
||||
$argsString = '$args->user_id = 7;
|
||||
$args->module_srl = 17;
|
||||
';
|
||||
$expected = 'select *,
|
||||
(select count(*) as "count"
|
||||
from "xe_documents" as "documents"
|
||||
where "documents"."user_id" = "member"."user_id"
|
||||
and "module_srl" = 17
|
||||
) as "totaldocumentcount"
|
||||
from "xe_member" as "member"
|
||||
where "user_id" = \'7\'';
|
||||
$this->_test($xml_file, $argsString, $expected);
|
||||
}
|
||||
|
||||
function testWhereCorrelated1(){
|
||||
$xml_file = $this->xmlPath . "where_correlated1.xml";
|
||||
$argsString = '';
|
||||
|
|
@ -96,6 +135,22 @@
|
|||
$this->_test($xml_file, $argsString, $expected);
|
||||
}
|
||||
|
||||
function testWhereCorrelated2(){
|
||||
$xml_file = $this->xmlPath . "where_correlated2.xml";
|
||||
$argsString = '$args->module_srl = 12; $args->member_srl = 19;';
|
||||
$expected = 'select *
|
||||
from "xe_member" as "member"
|
||||
where "member_srl" = 19
|
||||
and "regdate" = (
|
||||
select max("regdate") as "maxregdate"
|
||||
from "xe_documents" as "documents"
|
||||
where "documents"."user_id" = "member"."user_id"
|
||||
and "module_srl" = 12
|
||||
)
|
||||
';
|
||||
$this->_test($xml_file, $argsString, $expected);
|
||||
}
|
||||
|
||||
function testFromCorrelated1(){
|
||||
$xml_file = $this->xmlPath . "from_correlated1.xml";
|
||||
$argsString = '';
|
||||
|
|
@ -111,6 +166,26 @@
|
|||
) as "a"
|
||||
left join "xe_member" as "m" on "m"."member" = "a"."member_srl"';
|
||||
$this->_test($xml_file, $argsString, $expected);
|
||||
}
|
||||
}
|
||||
|
||||
function testFromCorrelated2(){
|
||||
$xml_file = $this->xmlPath . "from_correlated2.xml";
|
||||
$argsString = '$args->module_srl = 12; $args->count = 20;';
|
||||
$expected = 'select "m"."member_srl"
|
||||
, "m"."nickname"
|
||||
, "m"."regdate"
|
||||
, "a"."count"
|
||||
from (
|
||||
select "member_srl" as "member_srl"
|
||||
, count(*) as "count"
|
||||
from "xe_documents" as "documents"
|
||||
where "module_srl" = 12
|
||||
group by "member_srl"
|
||||
) as "a"
|
||||
left join "xe_member" as "m" on "m"."member" = "a"."member_srl"
|
||||
where "a"."count" >= 20
|
||||
';
|
||||
$this->_test($xml_file, $argsString, $expected);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue