diff options
author | Frank Schoenheit [fs] <frank.schoenheit@sun.com> | 2010-09-27 14:18:19 +0200 |
---|---|---|
committer | Frank Schoenheit [fs] <frank.schoenheit@sun.com> | 2010-09-27 14:18:19 +0200 |
commit | d764a2871b7042f8cd2eeb7f07b087f5c55efd5b (patch) | |
tree | 1bb477ce000cea8f1784c3af19dc1ce0277f18ce /connectivity/source/drivers/file/fanalyzer.cxx | |
parent | 12db5269581cb3728c9dd1edfe5fb58f7e696daa (diff) |
dba34a: #i105989# proper number of elements in m_aSelectionEvaluation
Diffstat (limited to 'connectivity/source/drivers/file/fanalyzer.cxx')
-rw-r--r-- | connectivity/source/drivers/file/fanalyzer.cxx | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/connectivity/source/drivers/file/fanalyzer.cxx b/connectivity/source/drivers/file/fanalyzer.cxx index d6c5def9c1f8..0885ad0eef4c 100644 --- a/connectivity/source/drivers/file/fanalyzer.cxx +++ b/connectivity/source/drivers/file/fanalyzer.cxx @@ -103,7 +103,26 @@ void OSQLAnalyzer::start(OSQLParseNode* pSQLParseNode) m_pConnection->throwGenericSQLException(STR_QUERY_COMPLEX_COUNT,NULL); } else - m_aSelectionEvaluations.push_back( TPredicates() ); + { + if ( SQL_ISPUNCTUATION( pColumnRef, "*" ) + || ( SQL_ISRULE( pColumnRef, column_ref ) + && ( pColumnRef->count() == 3 ) + && ( pColumnRef->getChild(0)->getNodeType() == SQL_NODE_NAME ) + && SQL_ISPUNCTUATION( pColumnRef->getChild(1), "." ) + && SQL_ISRULE( pColumnRef->getChild(2), column_val ) + && SQL_ISPUNCTUATION( pColumnRef->getChild(2)->getChild(0), "*" ) + ) + ) + { + // push one element for each column of our table + const Reference< XNameAccess > xColumnNames( m_aCompiler->getOrigColumns() ); + const Sequence< ::rtl::OUString > aColumnNames( xColumnNames->getElementNames() ); + for ( sal_Int32 i=0; i<aColumnNames.getLength(); ++i ) + m_aSelectionEvaluations.push_back( TPredicates() ); + } + else + m_aSelectionEvaluations.push_back( TPredicates() ); + } } } } |