Changed validator tool to fill in query variables values from the list of query arguments. Added command line option to use the schmea language when root XML element is <query>

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@10557 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
adrian.vasile.constantin 2012-04-11 18:13:02 +00:00
parent 78ec133603
commit 2ed7375c8f

View file

@ -1,7 +1,7 @@
#!/bin/env php #!/bin/env php
<?php <?php
/** /**
vi:set ts=4 vi:set ts=4:
@file @file
Script to validate a query or a SQL statement written in the Script to validate a query or a SQL statement written in the
@ -1225,6 +1225,7 @@ try
$retcode = new ReturnCode(ReturnCode::RETCODE_SUCCESS); $retcode = new ReturnCode(ReturnCode::RETCODE_SUCCESS);
$auto_schema = NULL;
$schema_language = NULL; $schema_language = NULL;
$skip_query_id = NULL; $skip_query_id = NULL;
$xe_path = NULL; $xe_path = NULL;
@ -1257,6 +1258,8 @@ try
$schema_language = TRUE; $schema_language = TRUE;
break; break;
case '--auto-schema':
$auto_schema = TRUE;
case '--skip-query-id': case '--skip-query-id':
$skip_query_id = TRUE; $skip_query_id = TRUE;
@ -1862,6 +1865,7 @@ try
{ {
$document_schema = $schema_file; $document_schema = $schema_file;
$success = FALSE; $success = FALSE;
$use_schema_language = $schema_language;
$retcode->push(ReturnCode::RETCODE_GENERIC_XML_SYNTAX); $retcode->push(ReturnCode::RETCODE_GENERIC_XML_SYNTAX);
if($domDocument->load($argv[$i])) if($domDocument->load($argv[$i]))
@ -1870,7 +1874,15 @@ try
$queryElement = $domDocument->documentElement; $queryElement = $domDocument->documentElement;
if(!$schema_file && !$schema_language if (!$schema_language && $auto_schema)
{
if ($queryElement->tagName == 'table')
{
$use_schema_language = TRUE;
}
}
if(!$schema_file && !$use_schema_language
&& &&
( (
$queryElement->tagName != 'query' $queryElement->tagName != 'query'
@ -1890,7 +1902,7 @@ try
); );
} }
if(!$schema_file && !$schema_language && !$skip_query_id if(!$schema_file && !$use_schema_language && !$skip_query_id
&& &&
!validate_query_id($argv[$i], $queryElement->getAttribute('id'))) !validate_query_id($argv[$i], $queryElement->getAttribute('id')))
{ {
@ -1903,7 +1915,7 @@ try
); );
} }
if($schema_language) if($use_schema_language)
{ {
$document_schema = $table_schema; $document_schema = $table_schema;
} }
@ -1920,7 +1932,7 @@ try
{ {
$retcode->pop(); $retcode->pop();
if($schema_language) if($use_schema_language)
{ {
validate_schema_doc($argv[$i], $domDocument->documentElement); validate_schema_doc($argv[$i], $domDocument->documentElement);
} }
@ -1978,7 +1990,7 @@ try
{ {
Context::$set_info_method(); // calls setMysqlDBInfo()/setCubridDBInfo()/... Context::$set_info_method(); // calls setMysqlDBInfo()/setCubridDBInfo()/...
if($schema_language) if($use_schema_language)
{ {
$GLOBALS['__DB__'][$db_type]->queries = ''; $GLOBALS['__DB__'][$db_type]->queries = '';
$GLOBALS['__DB__'][$db_type]->createTableByXmlFile($argv[$i]); $GLOBALS['__DB__'][$db_type]->createTableByXmlFile($argv[$i]);
@ -1996,13 +2008,14 @@ try
// copied from classes/db/DB.class.php // copied from classes/db/DB.class.php
$oParser = new XmlQueryParser(); $oParser = new XmlQueryParser();
$args_array = array(); $args_array =
$oParser->parse $oParser->parse_xml_query
( (
pathinfo($argv[$i], PATHINFO_FILENAME), // query id pathinfo($argv[$i], PATHINFO_FILENAME), // query id
$argv[$i], // xml file $argv[$i], // xml file
$unlink_tmpfile->file_name // cache file $unlink_tmpfile->file_name // cache file
); );
$args_array = $args_array->queryTag->getArguments();
$GLOBALS['__DB__'][$db_type]->queries = ''; $GLOBALS['__DB__'][$db_type]->queries = '';
$k = 1; $k = 1;