add "click count -incr()" for Cubrid Xml Query

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6826 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ngleader 2009-10-08 02:14:12 +00:00
parent fb9f2dd4a4
commit 314700badd
2 changed files with 52 additions and 50 deletions

View file

@ -582,21 +582,29 @@
$column_list = array();
foreach($output->columns as $key => $val) {
$name = $val['name'];
$alias = $val['alias'];
$click_count = '%s';
if($val['click_count'] && count($output->conditions)>0){
$click_count = 'incr(%s)';
}
$alias = $val['alias'] ? sprintf('"%s"',$val['alias']) : null;
if(substr($name,-1) == '*') {
$column_list[] = $name;
} elseif(strpos($name,'.')===false && strpos($name,'(')===false) {
if($alias) $column_list[] = sprintf('"%s" as "%s"', $name, $alias);
else $column_list[] = sprintf('"%s"',$name);
$name = sprintf($click_count,$name);
if($alias) $column_list[] = sprintf('%s as %s', $name, $alias);
else $column_list[] = sprintf('%s',$name);
} else {
if(strpos($name,'.')!=false) {
list($prefix, $name) = explode('.',$name);
$deli=($name == '*') ? "" : "\"";
if($alias) $column_list[] = sprintf("%s.$deli%s$deli as \"%s\"", $prefix, $name, $alias);
else $column_list[] = sprintf("%s.$deli%s$deli",$prefix,$name);
$prefix = sprintf('"%s"',$prefix);
$name = ($name == '*') ? $name : sprintf('"%s"',$name);
$column_list[] = sprintf($click_count,sprintf('%s.%s', $prefix, $name)) . ($alias ? sprintf(' as %s',$alias) : '');
} else {
if($alias) $column_list[] = sprintf('%s as "%s"', $name, $alias);
else $column_list[] = sprintf('%s',$name);
$column_list[] = sprintf($click_count,$name) . ($alias ? sprintf(' as %s',$alias) : '');
}
}
}