Issue 491: 1.5.0.5 설치우 버그?

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@9643 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ucorina 2011-10-13 14:53:30 +00:00
parent bddb968dbf
commit e8741e7cb6
4 changed files with 29 additions and 5 deletions

View file

@ -7,7 +7,9 @@
var $column_name; var $column_name;
var $operation; var $operation;
function QueryArgument($tag){ var $ignore_value;
function QueryArgument($tag, $ignore_value = false){
static $number_of_arguments = 0; static $number_of_arguments = 0;
$this->argument_name = $tag->attrs->var; $this->argument_name = $tag->attrs->var;
@ -30,7 +32,7 @@
if($tag->attrs->operation) $this->operation = $tag->attrs->operation; if($tag->attrs->operation) $this->operation = $tag->attrs->operation;
$this->argument_validator = new QueryArgumentValidator($tag, $this); $this->argument_validator = new QueryArgumentValidator($tag, $this);
$this->ignore_value = $ignore_value;
} }
function getArgumentName(){ function getArgumentName(){
@ -77,7 +79,7 @@
$arg = sprintf("\n$%s_argument = new Argument('%s', %s);\n" $arg = sprintf("\n$%s_argument = new Argument('%s', %s);\n"
, $this->argument_name , $this->argument_name
, $this->variable_name , $this->variable_name
, '$args->'.$this->variable_name); , $this->ignore_value ? 'null' : '$args->'.$this->variable_name);
$arg .= $this->argument_validator->toString(); $arg .= $this->argument_validator->toString();

View file

@ -22,7 +22,7 @@
else { else {
$default_value = new DefaultValue($this->name, $column->attrs->default); $default_value = new DefaultValue($this->name, $column->attrs->default);
if($default_value->isOperation()) if($default_value->isOperation())
$this->argument = new QueryArgument($column); $this->argument = new QueryArgument($column, true);
else $this->default_value = $dbParser->parseColumnName($column->attrs->default); else $this->default_value = $dbParser->parseColumnName($column->attrs->default);
} }
} }

View file

@ -42,5 +42,14 @@
$this->_test($xml_file, $argsString, $expected); $this->_test($xml_file, $argsString, $expected);
} }
function test_menu_updateMenuItemListorder(){
$xml_file = _TEST_PATH_ . "db/xml_query/mysql/data/menu.updateMenuItemListorder.xml";
$argsString = '$args->menu_srl = 10; $args->parent_srl = 11; $args->listorder = 12;';
$expected = 'update `xe_menu_item` as `menu_item`
set `listorder` = `listorder` - 1
where `menu_srl` = 10
and `parent_srl` = 11
and `listorder` <= 12';
$this->_test($xml_file, $argsString, $expected);
}
} }

View file

@ -0,0 +1,13 @@
<query id="updateMenuItemListorder" action="update">
<tables>
<table name="menu_item" />
</tables>
<columns>
<column name="listorder" default="minus(1)" />
</columns>
<conditions>
<condition operation="equal" column="menu_srl" var="menu_srl" filter="number" notnull="notnull" />
<condition operation="equal" column="parent_srl" var="parent_srl" filter="number" notnull="notnull" pipe="and" />
<condition operation="less" column="listorder" var="listorder" filter="number" notnull="notnull" pipe="and" />
</conditions>
</query>