From b8493f6d67c3669c417f54ee937ee55519b1f2dc Mon Sep 17 00:00:00 2001 From: "Ocke Janssen [oj]" Date: Thu, 9 Dec 2010 12:54:13 +0100 Subject: dba33m: #i115436# do not insert a space infront of ( and after ) --- connectivity/source/parse/sqlnode.cxx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/connectivity/source/parse/sqlnode.cxx b/connectivity/source/parse/sqlnode.cxx index 9b9f9fb66f..6e01f62c4a 100644 --- a/connectivity/source/parse/sqlnode.cxx +++ b/connectivity/source/parse/sqlnode.cxx @@ -2511,6 +2511,7 @@ void OSQLParseNode::parseLeaf(::rtl::OUStringBuffer& rString, const SQLParseNode rString.append(m_aNodeValue); rString.appendAscii("#"); break; + case SQL_NODE_INTNUM: case SQL_NODE_APPROXNUM: { @@ -2524,6 +2525,13 @@ void OSQLParseNode::parseLeaf(::rtl::OUStringBuffer& rString, const SQLParseNode } break; // fall through + case SQL_NODE_PUNCTUATION: + if ( m_aNodeValue.toChar() == '(' || m_aNodeValue.toChar() == ')') // no spaces in front of '(' or after ')' + { + rString.append(m_aNodeValue); + break; + } + // fall through default: if (rString.getLength() && m_aNodeValue.toChar() != '.' && m_aNodeValue.toChar() != ':' ) { -- cgit v1.2.3 From b962a1629955cf00b1cc959f86731e724d6c8e60 Mon Sep 17 00:00:00 2001 From: "Ocke Janssen [oj]" Date: Fri, 10 Dec 2010 12:42:03 +0100 Subject: dba33m: #i115436# only cast handled --- connectivity/inc/connectivity/sqlnode.hxx | 1 + connectivity/source/parse/sqlnode.cxx | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/connectivity/inc/connectivity/sqlnode.hxx b/connectivity/inc/connectivity/sqlnode.hxx index 53145b018e..4cdaba48e1 100644 --- a/connectivity/inc/connectivity/sqlnode.hxx +++ b/connectivity/inc/connectivity/sqlnode.hxx @@ -231,6 +231,7 @@ namespace connectivity character_string_type, other_like_predicate_part_2, between_predicate_part_2, + cast_spec, rule_count, // letzter_wert UNKNOWN_RULE // ID indicating that a node is no rule with a matching Rule-enum value (see getKnownRuleID) }; diff --git a/connectivity/source/parse/sqlnode.cxx b/connectivity/source/parse/sqlnode.cxx index 6e01f62c4a..1b71a66a10 100644 --- a/connectivity/source/parse/sqlnode.cxx +++ b/connectivity/source/parse/sqlnode.cxx @@ -1425,7 +1425,8 @@ OSQLParser::OSQLParser(const ::com::sun::star::uno::Reference< ::com::sun::star: { OSQLParseNode::parenthesized_boolean_value_expression, "parenthesized_boolean_value_expression" }, { OSQLParseNode::character_string_type, "character_string_type" }, { OSQLParseNode::other_like_predicate_part_2, "other_like_predicate_part_2" }, - { OSQLParseNode::between_predicate_part_2, "between_predicate_part_2" } + { OSQLParseNode::between_predicate_part_2, "between_predicate_part_2" }, + { OSQLParseNode::cast_spec, "cast_spec" } }; size_t nRuleMapCount = sizeof( aRuleDescriptions ) / sizeof( aRuleDescriptions[0] ); OSL_ENSURE( nRuleMapCount == size_t( OSQLParseNode::rule_count ), "OSQLParser::OSQLParser: added a new rule? Adjust this map!" ); @@ -2524,9 +2525,8 @@ void OSQLParseNode::parseLeaf(::rtl::OUStringBuffer& rString, const SQLParseNode rString.append(aTmp); } break; - // fall through case SQL_NODE_PUNCTUATION: - if ( m_aNodeValue.toChar() == '(' || m_aNodeValue.toChar() == ')') // no spaces in front of '(' or after ')' + if ( getParent() && SQL_ISRULE(getParent(),cast_spec) && m_aNodeValue.toChar() == '(' ) // no spaces in front of '(' { rString.append(m_aNodeValue); break; -- cgit v1.2.3