Issue 363: Query error related default value

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@9496 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ucorina 2011-10-05 09:02:36 +00:00
parent 5afc0b7587
commit cd7a8f2048
2 changed files with 52 additions and 3 deletions

View file

@ -38,14 +38,17 @@
} }
else { else {
$default_value = $condition->attrs->default; $default_value = $condition->attrs->default;
if($default_value){ if(isset($default_value)){
if($isColumnName){ if($isColumnName){
$default_value = "'" . $default_value . "'"; $default_value = "'" . $default_value . "'";
} }
else if(in_array($this->operation, array('in', 'between', 'not in'))) else if(in_array($this->operation, array('in', 'between', 'not in')))
$default_value = "\"" . $default_value . "\""; $default_value = "\"" . $default_value . "\"";
else if(!$isColumnName && !is_numeric($default_value) && !is_array($default_value)){ else if(!$isColumnName && !is_numeric($default_value) && !is_array($default_value)){
$default_value = "\"" . $default_value . "\""; if(strpos($default_value, "'"))
$default_value = "\"\'" . $default_value . "\"\'";
else
$default_value = "\"'" . $default_value . "'\"";
} }
$this->default_column = $default_value; $this->default_column = $default_value;
} }
@ -76,7 +79,7 @@
, $this->pipe ? ", '" . $this->pipe . "'" : '' , $this->pipe ? ", '" . $this->pipe . "'" : ''
); );
} }
else if($this->default_column){ else if(isset($this->default_column)){
return sprintf("new ConditionWithoutArgument('%s',%s,%s%s)" return sprintf("new ConditionWithoutArgument('%s',%s,%s%s)"
, $this->column_name , $this->column_name
, $this->default_column , $this->default_column

View file

@ -87,4 +87,50 @@
$expected = 'select * from `xe_member` as `member` where substr(`extra_vars_t1`.`value`,5,4) >= 1102'; $expected = 'select * from `xe_member` as `member` where substr(`extra_vars_t1`.`value`,5,4) >= 1102';
$this->_test($xml_file, $argsString, $expected); $this->_test($xml_file, $argsString, $expected);
} }
function testResource_getLatestItemList(){
$xml_file = _XE_PATH_ . "modules/resource/queries/getLatestItemList.xml";
$argsString = '';
$expected = 'select `package`.`module_srl` as `module_srl`
, `package`.`status` as `status`
, `package`.`category_srl` as `category_srl`
, `package`.`member_srl` as `member_srl`
, `package`.`package_srl` as `package_srl`
, `package`.`path` as `path`
, `package`.`license` as `license`
, `package`.`title` as `title`
, `package`.`homepage` as `homepage`
, `package`.`description` as `package_description`
, `package`.`voter` as `package_voter`
, `package`.`voted` as `package_voted`
, `package`.`downloaded` as `package_downloaded`
, `package`.`regdate` as `package_regdate`
, `package`.`last_update` as `package_last_update`
, `member`.`nick_name` as `nick_name`
, `member`.`user_id` as `user_id`
, `item`.`item_srl` as `item_srl`
, `item`.`document_srl` as `item_document_srl`
, `item`.`file_srl` as `item_file_srl`
, `item`.`screenshot_url` as `item_screenshot_url`
, `item`.`version` as `item_version`
, `item`.`voter` as `item_voter`
, `item`.`voted` as `item_voted`
, `item`.`downloaded` as `item_downloaded`
, `item`.`regdate` as `item_regdate`
, `files`.`source_filename` as `source_filename`
, `files`.`sid` as `sid`
from `xe_resource_packages` as `package`
, `xe_member` as `member`
, `xe_resource_items` as `item`
, `xe_files` as `files`
where (`package`.`status` = \'accepted\'
and `package`.`member_srl` = `member`.`member_srl`
and `item`.`item_srl` = `package`.`latest_item_srl`
and `package`.`update_order` <= 0
and `files`.`file_srl` = `item`.`file_srl`)
and `package`.`update_order` <= 2100000000
order by `package`.`update_order` asc
limit 0, 20';
$this->_test($xml_file, $argsString, $expected);
}
} }