xref: /trunk/main/connectivity/source/drivers/file/FDatabaseMetaData.cxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_connectivity.hxx"
30 #include "file/FDatabaseMetaData.hxx"
31 #include "FDatabaseMetaDataResultSet.hxx"
32 #include <com/sun/star/sdbc/DataType.hpp>
33 #include <com/sun/star/sdbc/ResultSetType.hpp>
34 #include <com/sun/star/sdbc/ResultSetConcurrency.hpp>
35 #include <com/sun/star/ucb/SearchRecursion.hpp>
36 #include <com/sun/star/ucb/SearchCommandArgument.hpp>
37 #include <com/sun/star/ucb/XSortedDynamicResultSetFactory.hpp>
38 #include <com/sun/star/ucb/XContentProvider.hpp>
39 #include <com/sun/star/lang/XUnoTunnel.hpp>
40 #include <tools/urlobj.hxx>
41 #include "file/FDriver.hxx"
42 #include "file/FTable.hxx"
43 #include <comphelper/extract.hxx>
44 #include <ucbhelper/content.hxx>
45 #include <ucbhelper/contentbroker.hxx>
46 #include <tools/debug.hxx>
47 #include <rtl/logfile.hxx>
48 
49 
50 using namespace com::sun::star::ucb;
51 using namespace connectivity::file;
52 using namespace connectivity;
53 using namespace com::sun::star::uno;
54 using namespace com::sun::star::lang;
55 using namespace com::sun::star::beans;
56 using namespace com::sun::star::sdbc;
57 using namespace com::sun::star::sdbcx;
58 using namespace com::sun::star::lang;
59 using namespace com::sun::star::container;
60 
61 DBG_NAME( file_ODatabaseMetaData )
62 ODatabaseMetaData::ODatabaseMetaData(OConnection* _pCon) : ::connectivity::ODatabaseMetaDataBase(_pCon,_pCon->getConnectionInfo())
63                         ,m_pConnection(_pCon)
64 {
65     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::ODatabaseMetaData" );
66     DBG_CTOR( file_ODatabaseMetaData, NULL );
67 }
68 // -------------------------------------------------------------------------
69 ODatabaseMetaData::~ODatabaseMetaData()
70 {
71     DBG_DTOR( file_ODatabaseMetaData, NULL );
72 }
73 // -------------------------------------------------------------------------
74 Reference< XResultSet > ODatabaseMetaData::impl_getTypeInfo_throw(  )
75 {
76     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_getTypeInfo_throw" );
77     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTypeInfo );
78 }
79 // -------------------------------------------------------------------------
80 ::rtl::OUString ODatabaseMetaData::impl_getCatalogSeparator_throw(  )
81 {
82     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_getCatalogSeparator_throw" );
83     return ::rtl::OUString();
84 }
85 // -------------------------------------------------------------------------
86 Reference< XResultSet > SAL_CALL ODatabaseMetaData::getColumns(
87         const Any& /*catalog*/, const ::rtl::OUString& /*schemaPattern*/, const ::rtl::OUString& /*tableNamePattern*/,
88         const ::rtl::OUString& /*columnNamePattern*/ ) throw(SQLException, RuntimeException)
89 {
90     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getColumns" );
91     OSL_ENSURE(0,"Should be overloaded!");
92     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eColumns );
93 }
94 
95 // -------------------------------------------------------------------------
96 namespace
97 {
98     sal_Int16 isCaseSensitiveParentFolder( const String& _rFolderOrDoc, const String& _rDocName )
99     {
100         sal_Int16 nIsCS = 1;
101         try
102         {
103             // first get the real content for the URL
104             INetURLObject aContentURL( _rFolderOrDoc );
105             ::ucbhelper::Content aContent1;
106             {
107                 ::ucbhelper::Content aFolderOrDoc( _rFolderOrDoc, Reference< XCommandEnvironment >() );
108                 if ( aFolderOrDoc.isDocument() )
109                     aContent1 = aFolderOrDoc;
110                 else
111                 {
112                     aContentURL = INetURLObject( _rFolderOrDoc, INetURLObject::WAS_ENCODED );
113                     aContentURL.Append( _rDocName );
114                     aContent1 = ::ucbhelper::Content( aContentURL.GetMainURL( INetURLObject::NO_DECODE ), Reference< XCommandEnvironment >() );
115                 }
116             }
117 
118             // get two extensions which differ by case only
119             String sExtension1 = aContentURL.getExtension();
120             String sExtension2( sExtension1 );
121             sExtension2.ToLowerAscii();
122             if ( sExtension2 == sExtension1 )
123                 // the extension was already in lower case
124                 sExtension2.ToUpperAscii();
125 
126             // the complete URL for the second extension
127             INetURLObject aURL2( aContentURL );
128             if ( sExtension2.Len() )
129                 aURL2.SetExtension( sExtension2 );
130             if ( aURL2.GetMainURL(INetURLObject::NO_DECODE) == aContentURL.GetMainURL(INetURLObject::NO_DECODE) )
131                 return -1;
132 
133             // the second context
134             sal_Bool bCanAccess = sal_False;
135             ::ucbhelper::Content aContent2;
136             try
137             {
138                 aContent2 = ::ucbhelper::Content( aURL2.GetMainURL( INetURLObject::NO_DECODE ), Reference< XCommandEnvironment >() );
139                 bCanAccess = aContent2.isDocument();
140             }
141             catch( const Exception& )
142             {
143             }
144 
145             if ( bCanAccess )
146             {
147                 // here we have two contents whose URLs differ by case only.
148                 // Now let's check if both really refer to the same object ....
149                 Reference< XContent > xContent1 = aContent1.get();
150                 Reference< XContent > xContent2 = aContent2.get();
151                 OSL_ENSURE( xContent1.is() && xContent2.is(), "isCaseSensitiveParentFolder: invalid content interfaces!" );
152                 if ( xContent1.is() && xContent2.is() )
153                 {
154                     Reference< XContentIdentifier > xID1 = xContent1->getIdentifier();
155                     Reference< XContentIdentifier > xID2 = xContent2->getIdentifier();
156                     OSL_ENSURE( xID1.is() && xID2.is(), "isCaseSensitiveParentFolder: invalid ID interfaces!" );
157                     if ( xID1.is() && xID2.is() )
158                     {
159                         // get a generic content provider
160                         ::ucbhelper::ContentBroker* pBroker = ::ucbhelper::ContentBroker::get();
161                         Reference< XContentProvider > xProvider;
162                         if ( pBroker )
163                             xProvider = pBroker->getContentProviderInterface();
164                         OSL_ENSURE( xProvider.is(), "isCaseSensitiveParentFolder: invalid content broker!" );
165                         if ( xProvider.is() )
166                         {
167                             if ( 0 == xProvider->compareContentIds( xID1, xID2 ) )
168                                 // finally, we know that the folder is not case-sensitive ....
169                                 nIsCS = 0;
170                         }
171                     }
172                 }
173             }
174         }
175         catch( const Exception& )
176         {
177             OSL_ENSURE( sal_False, "isCaseSensitiveParentFolder: caught an unexpected exception!" );
178         }
179 
180         return nIsCS;
181     }
182 }
183 
184 // -------------------------------------------------------------------------
185 Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTables(
186         const Any& /*catalog*/, const ::rtl::OUString& /*schemaPattern*/,
187         const ::rtl::OUString& tableNamePattern, const Sequence< ::rtl::OUString >& types ) throw(SQLException, RuntimeException)
188 {
189     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getTables" );
190     ::osl::MutexGuard aGuard( m_aMutex );
191 
192 
193     ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTables );
194     Reference< XResultSet > xRef = pResult;
195 
196     // check if any type is given
197     // when no types are given then we have to return all tables e.g. TABLE
198 
199     static const ::rtl::OUString aTable(::rtl::OUString::createFromAscii("TABLE"));
200 
201     sal_Bool bTableFound = sal_True;
202     sal_Int32 nLength = types.getLength();
203     if(nLength)
204     {
205         bTableFound = sal_False;
206 
207         const ::rtl::OUString* pBegin = types.getConstArray();
208         const ::rtl::OUString* pEnd = pBegin + nLength;
209         for(;pBegin != pEnd;++pBegin)
210         {
211             if(*pBegin == aTable)
212             {
213                 bTableFound = sal_True;
214                 break;
215             }
216         }
217     }
218     if(!bTableFound)
219         return xRef;
220 
221     Reference<XDynamicResultSet> xContent = m_pConnection->getDir();
222     Reference < XSortedDynamicResultSetFactory > xSRSFac(
223                 m_pConnection->getDriver()->getFactory()->createInstance( ::rtl::OUString::createFromAscii("com.sun.star.ucb.SortedDynamicResultSetFactory") ), UNO_QUERY );
224 
225     Sequence< NumberedSortingInfo > aSortInfo( 1 );
226     NumberedSortingInfo* pInfo = aSortInfo.getArray();
227     pInfo[ 0 ].ColumnIndex = 1;
228     pInfo[ 0 ].Ascending   = sal_True;
229 
230     Reference < XAnyCompareFactory > xFactory;
231     Reference< XDynamicResultSet > xDynamicResultSet;
232     xDynamicResultSet = xSRSFac->createSortedDynamicResultSet( xContent, aSortInfo, xFactory );
233     Reference<XResultSet> xResultSet = xDynamicResultSet->getStaticResultSet();
234 
235     Reference<XRow> xRow(xResultSet,UNO_QUERY);
236 
237     String aFilenameExtension = m_pConnection->getExtension();
238     String sThisContentExtension;
239     ODatabaseMetaDataResultSet::ORows aRows;
240     // scan the directory for tables
241     ::rtl::OUString aName;
242     INetURLObject aURL;
243     xResultSet->beforeFirst();
244 
245     sal_Bool bKnowCaseSensivity = sal_False;
246     sal_Bool bCaseSensitiveDir = sal_True;
247     sal_Bool bCheckEnabled = m_pConnection->isCheckEnabled();
248 
249     while(xResultSet->next())
250     {
251         aName = xRow->getString(1);
252         aURL.SetSmartProtocol(INET_PROT_FILE);
253         String sUrl = m_pConnection->getURL() + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/")) + aName;
254         aURL.SetSmartURL( sUrl );
255         sThisContentExtension = aURL.getExtension();
256 
257         ODatabaseMetaDataResultSet::ORow aRow(3);
258         aRow.reserve(6);
259         sal_Bool bNewRow = sal_False;
260 
261         if ( !bKnowCaseSensivity )
262         {
263             bKnowCaseSensivity = sal_True;
264             sal_Int16 nCase = isCaseSensitiveParentFolder( m_pConnection->getURL(), aURL.getName() );
265             switch( nCase )
266             {
267                 case 1:
268                     bCaseSensitiveDir = sal_True;
269                     break;
270                 case -1:
271                     bKnowCaseSensivity = sal_False;
272                     /** run through */
273                 case 0:
274                     bCaseSensitiveDir = sal_False;
275             }
276             if ( bKnowCaseSensivity )
277             {
278                 m_pConnection->setCaseSensitiveExtension( bCaseSensitiveDir, OConnection::GrantAccess() );
279                 if ( !bCaseSensitiveDir )
280                     aFilenameExtension.ToLowerAscii();
281             }
282         }
283 
284         if (aFilenameExtension.Len())
285         {
286             if ( !bCaseSensitiveDir )
287                 sThisContentExtension.ToLowerAscii();
288 
289             if ( sThisContentExtension == aFilenameExtension )
290             {
291                 aName = aName.replaceAt(aName.getLength()-(aFilenameExtension.Len()+1),aFilenameExtension.Len()+1,::rtl::OUString());
292                 sal_Unicode nChar = aName.toChar();
293                 if ( match(tableNamePattern,aName.getStr(),'\0') && ( !bCheckEnabled || ( bCheckEnabled && ((nChar < '0' || nChar > '9')))) )
294                 {
295                     aRow.push_back(new ORowSetValueDecorator(aName));
296                     bNewRow = sal_True;
297                 }
298             }
299         }
300         else // no extension, filter myself
301         {
302             sal_Bool bErg = sal_False;
303             do
304             {
305                 if (!aURL.getExtension().getLength())
306                 {
307                     sal_Unicode nChar = aURL.getBase().getStr()[0];
308                     if(match(tableNamePattern,aURL.getBase().getStr(),'\0') && ( !bCheckEnabled || ( bCheckEnabled && ((nChar < '0' || nChar > '9')))) )
309                     {
310                         aRow.push_back(new ORowSetValueDecorator(::rtl::OUString(aURL.getBase())));
311                         bNewRow = sal_True;
312                     }
313                     break;
314                 }
315                 else if ( ( bErg = xResultSet->next() ) != sal_False )
316                 {
317                     aName = xRow->getString(1);
318                     aURL.SetSmartURL(aName);
319                 }
320             } while (bErg);
321         }
322         if(bNewRow)
323         {
324             aRow.push_back(new ORowSetValueDecorator(aTable));
325             aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
326 
327             aRows.push_back(aRow);
328         }
329     }
330 
331     pResult->setRows(aRows);
332 
333     return xRef;
334 }
335 // -------------------------------------------------------------------------
336 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxBinaryLiteralLength(  ) throw(SQLException, RuntimeException)
337 {
338     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxBinaryLiteralLength" );
339     return 0;
340 }
341 // -------------------------------------------------------------------------
342 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxRowSize(  ) throw(SQLException, RuntimeException)
343 {
344     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxRowSize" );
345     return 0;
346 }
347 // -------------------------------------------------------------------------
348 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxCatalogNameLength(  ) throw(SQLException, RuntimeException)
349 {
350     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxCatalogNameLength" );
351     return 0;
352 }
353 // -------------------------------------------------------------------------
354 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxCharLiteralLength(  ) throw(SQLException, RuntimeException)
355 {
356     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxCharLiteralLength" );
357     return STRING_MAXLEN;
358 }
359 // -------------------------------------------------------------------------
360 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnNameLength(  ) throw(SQLException, RuntimeException)
361 {
362     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxColumnNameLength" );
363     return 0;
364 }
365 // -------------------------------------------------------------------------
366 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInIndex(  ) throw(SQLException, RuntimeException)
367 {
368     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxColumnsInIndex" );
369     return 0;
370 }
371 // -------------------------------------------------------------------------
372 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxCursorNameLength(  ) throw(SQLException, RuntimeException)
373 {
374     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxCursorNameLength" );
375     return 0;
376 }
377 // -------------------------------------------------------------------------
378 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxConnections(  ) throw(SQLException, RuntimeException)
379 {
380     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxConnections" );
381     return 0;
382 }
383 // -------------------------------------------------------------------------
384 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInTable(  ) throw(SQLException, RuntimeException)
385 {
386     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxColumnsInTable" );
387     return 0;
388 }
389 // -------------------------------------------------------------------------
390 sal_Int32 ODatabaseMetaData::impl_getMaxStatements_throw(  )
391 {
392     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_getMaxStatements_throw" );
393     return 0;
394 }
395 // -------------------------------------------------------------------------
396 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxTableNameLength(  ) throw(SQLException, RuntimeException)
397 {
398     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxTableNameLength" );
399     return 0;
400 }
401 // -------------------------------------------------------------------------
402 sal_Int32 ODatabaseMetaData::impl_getMaxTablesInSelect_throw(  )
403 {
404     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_getMaxTablesInSelect_throw" );
405     return 1;
406 }
407 // -------------------------------------------------------------------------
408 Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTablePrivileges(
409         const Any& /*catalog*/, const ::rtl::OUString& /*schemaPattern*/, const ::rtl::OUString& tableNamePattern ) throw(SQLException, RuntimeException)
410 {
411     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getTablePrivileges" );
412     ::osl::MutexGuard aGuard( m_aMutex );
413 
414     ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTablePrivileges );
415     Reference< XResultSet > xRef = pResult;
416     ODatabaseMetaDataResultSet::ORows aRows;
417 
418 
419     Reference< XTablesSupplier > xTabSup = m_pConnection->createCatalog();
420     if( xTabSup.is())
421     {
422         Reference< XNameAccess> xNames      = xTabSup->getTables();
423         Sequence< ::rtl::OUString > aNames  = xNames->getElementNames();
424         const ::rtl::OUString* pBegin = aNames.getConstArray();
425         const ::rtl::OUString* pEnd = pBegin + aNames.getLength();
426         for(;pBegin != pEnd;++pBegin)
427         {
428             if(match(tableNamePattern,pBegin->getStr(),'\0'))
429             {
430                 static ODatabaseMetaDataResultSet::ORow aRow(8);
431 
432                 aRow[2] = new ORowSetValueDecorator(*pBegin);
433                 aRow[6] = ODatabaseMetaDataResultSet::getSelectValue();
434                 aRow[7] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("NO"));
435                 aRows.push_back(aRow);
436 
437                 Reference< XPropertySet> xTable;
438                 ::cppu::extractInterface(xTable,xNames->getByName(*pBegin));
439                 if(xTable.is())
440                 {
441                     Reference<XUnoTunnel> xTunnel(xTable,UNO_QUERY);
442                     if(xTunnel.is())
443                     {
444                         OFileTable* pTable = reinterpret_cast< OFileTable* >( xTunnel->getSomething(OFileTable::getUnoTunnelImplementationId()) );
445                         if(pTable)
446                         {
447                             if(!pTable->isReadOnly())
448                             {
449                                 aRow[6] = ODatabaseMetaDataResultSet::getInsertValue();
450                                 aRows.push_back(aRow);
451                                 if(!m_pConnection->showDeleted())
452                                 {
453                                     aRow[6] = ODatabaseMetaDataResultSet::getDeleteValue();
454                                     aRows.push_back(aRow);
455                                 }
456                                 aRow[6] = ODatabaseMetaDataResultSet::getUpdateValue();
457                                 aRows.push_back(aRow);
458                                 aRow[6] = ODatabaseMetaDataResultSet::getCreateValue();
459                                 aRows.push_back(aRow);
460                                 aRow[6] = ODatabaseMetaDataResultSet::getReadValue();
461                                 aRows.push_back(aRow);
462                                 aRow[6] = ODatabaseMetaDataResultSet::getAlterValue();
463                                 aRows.push_back(aRow);
464                                 aRow[6] = ODatabaseMetaDataResultSet::getDropValue();
465                                 aRows.push_back(aRow);
466                             }
467                         }
468                     }
469                 }
470             }
471         }
472     }
473 
474     pResult->setRows(aRows);
475     return xRef;
476 }
477 // -------------------------------------------------------------------------
478 sal_Bool SAL_CALL ODatabaseMetaData::doesMaxRowSizeIncludeBlobs(  ) throw(SQLException, RuntimeException)
479 {
480     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::doesMaxRowSizeIncludeBlobs" );
481     return sal_True;
482 }
483 // -------------------------------------------------------------------------
484 sal_Bool SAL_CALL ODatabaseMetaData::storesLowerCaseQuotedIdentifiers(  ) throw(SQLException, RuntimeException)
485 {
486     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::storesLowerCaseQuotedIdentifiers" );
487     return sal_False;
488 }
489 // -------------------------------------------------------------------------
490 sal_Bool SAL_CALL ODatabaseMetaData::storesLowerCaseIdentifiers(  ) throw(SQLException, RuntimeException)
491 {
492     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::storesLowerCaseIdentifiers" );
493     return sal_False;
494 }
495 // -------------------------------------------------------------------------
496 sal_Bool ODatabaseMetaData::impl_storesMixedCaseQuotedIdentifiers_throw(  )
497 {
498     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_storesMixedCaseQuotedIdentifiers_throw" );
499     return sal_False;
500 }
501 // -------------------------------------------------------------------------
502 sal_Bool SAL_CALL ODatabaseMetaData::storesMixedCaseIdentifiers(  ) throw(SQLException, RuntimeException)
503 {
504     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::storesMixedCaseIdentifiers" );
505     return sal_False;
506 }
507 // -------------------------------------------------------------------------
508 sal_Bool SAL_CALL ODatabaseMetaData::storesUpperCaseQuotedIdentifiers(  ) throw(SQLException, RuntimeException)
509 {
510     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::storesUpperCaseQuotedIdentifiers" );
511     return sal_False;
512 }
513 // -------------------------------------------------------------------------
514 sal_Bool SAL_CALL ODatabaseMetaData::storesUpperCaseIdentifiers(  ) throw(SQLException, RuntimeException)
515 {
516     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::storesUpperCaseIdentifiers" );
517     return sal_False;
518 }
519 // -------------------------------------------------------------------------
520 sal_Bool ODatabaseMetaData::impl_supportsAlterTableWithAddColumn_throw(  )
521 {
522     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_supportsAlterTableWithAddColumn_throw" );
523     return sal_False;
524 }
525 // -------------------------------------------------------------------------
526 sal_Bool ODatabaseMetaData::impl_supportsAlterTableWithDropColumn_throw(  )
527 {
528     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_supportsAlterTableWithDropColumn_throw" );
529     return sal_False;
530 }
531 // -------------------------------------------------------------------------
532 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxIndexLength(  ) throw(SQLException, RuntimeException)
533 {
534     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxIndexLength" );
535     return 0;
536 }
537 // -------------------------------------------------------------------------
538 sal_Bool SAL_CALL ODatabaseMetaData::supportsNonNullableColumns(  ) throw(SQLException, RuntimeException)
539 {
540     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsNonNullableColumns" );
541     return sal_False;
542 }
543 // -------------------------------------------------------------------------
544 ::rtl::OUString SAL_CALL ODatabaseMetaData::getCatalogTerm(  ) throw(SQLException, RuntimeException)
545 {
546     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getCatalogTerm" );
547     return ::rtl::OUString();
548 }
549 // -------------------------------------------------------------------------
550 ::rtl::OUString ODatabaseMetaData::impl_getIdentifierQuoteString_throw(  )
551 {
552     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_getIdentifierQuoteString_throw" );
553     static const ::rtl::OUString sQuote = ::rtl::OUString::createFromAscii("\"");
554     return sQuote;
555 }
556 // -------------------------------------------------------------------------
557 ::rtl::OUString SAL_CALL ODatabaseMetaData::getExtraNameCharacters(  ) throw(SQLException, RuntimeException)
558 {
559     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getExtraNameCharacters" );
560     return ::rtl::OUString();
561 }
562 // -------------------------------------------------------------------------
563 sal_Bool SAL_CALL ODatabaseMetaData::supportsDifferentTableCorrelationNames(  ) throw(SQLException, RuntimeException)
564 {
565     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsDifferentTableCorrelationNames" );
566     return sal_True;
567 }
568 // -------------------------------------------------------------------------
569 sal_Bool ODatabaseMetaData::impl_isCatalogAtStart_throw(  )
570 {
571     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_isCatalogAtStart_throw" );
572     return sal_True;
573 }
574 // -------------------------------------------------------------------------
575 sal_Bool SAL_CALL ODatabaseMetaData::dataDefinitionIgnoredInTransactions(  ) throw(SQLException, RuntimeException)
576 {
577     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::dataDefinitionIgnoredInTransactions" );
578     return sal_True;
579 }
580 // -------------------------------------------------------------------------
581 sal_Bool SAL_CALL ODatabaseMetaData::dataDefinitionCausesTransactionCommit(  ) throw(SQLException, RuntimeException)
582 {
583     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::dataDefinitionCausesTransactionCommit" );
584     return sal_True;
585 }
586 // -------------------------------------------------------------------------
587 sal_Bool SAL_CALL ODatabaseMetaData::supportsDataManipulationTransactionsOnly(  ) throw(SQLException, RuntimeException)
588 {
589     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsDataManipulationTransactionsOnly" );
590     return sal_False;
591 }
592 // -------------------------------------------------------------------------
593 sal_Bool SAL_CALL ODatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions(  ) throw(SQLException, RuntimeException)
594 {
595     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions" );
596     return sal_False;
597 }
598 // -------------------------------------------------------------------------
599 sal_Bool SAL_CALL ODatabaseMetaData::supportsPositionedDelete(  ) throw(SQLException, RuntimeException)
600 {
601     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsPositionedDelete" );
602     return sal_False;
603 }
604 // -------------------------------------------------------------------------
605 sal_Bool SAL_CALL ODatabaseMetaData::supportsPositionedUpdate(  ) throw(SQLException, RuntimeException)
606 {
607     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsPositionedUpdate" );
608     return sal_False;
609 }
610 // -------------------------------------------------------------------------
611 sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenStatementsAcrossRollback(  ) throw(SQLException, RuntimeException)
612 {
613     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsOpenStatementsAcrossRollback" );
614     return sal_False;
615 }
616 // -------------------------------------------------------------------------
617 sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenStatementsAcrossCommit(  ) throw(SQLException, RuntimeException)
618 {
619     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsOpenStatementsAcrossCommit" );
620     return sal_False;
621 }
622 // -------------------------------------------------------------------------
623 sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenCursorsAcrossCommit(  ) throw(SQLException, RuntimeException)
624 {
625     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsOpenCursorsAcrossCommit" );
626     return sal_False;
627 }
628 // -------------------------------------------------------------------------
629 sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenCursorsAcrossRollback(  ) throw(SQLException, RuntimeException)
630 {
631     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsOpenCursorsAcrossRollback" );
632     return sal_False;
633 }
634 // -------------------------------------------------------------------------
635 sal_Bool SAL_CALL ODatabaseMetaData::supportsTransactionIsolationLevel( sal_Int32 /*level*/ ) throw(SQLException, RuntimeException)
636 {
637     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsTransactionIsolationLevel" );
638     return sal_False;
639 }
640 // -------------------------------------------------------------------------
641 sal_Bool ODatabaseMetaData::impl_supportsSchemasInDataManipulation_throw(  )
642 {
643     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_supportsSchemasInDataManipulation_throw" );
644     return sal_False;
645 }
646 // -------------------------------------------------------------------------
647 sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92FullSQL(  ) throw(SQLException, RuntimeException)
648 {
649     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsANSI92FullSQL" );
650     return sal_False;
651 }
652 // -------------------------------------------------------------------------
653 sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92EntryLevelSQL(  ) throw(SQLException, RuntimeException)
654 {
655     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsANSI92EntryLevelSQL" );
656     return sal_False;
657 }
658 // -------------------------------------------------------------------------
659 sal_Bool SAL_CALL ODatabaseMetaData::supportsIntegrityEnhancementFacility(  ) throw(SQLException, RuntimeException)
660 {
661     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsIntegrityEnhancementFacility" );
662     return sal_False;
663 }
664 // -------------------------------------------------------------------------
665 sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInIndexDefinitions(  ) throw(SQLException, RuntimeException)
666 {
667     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsSchemasInIndexDefinitions" );
668     return sal_False;
669 }
670 // -------------------------------------------------------------------------
671 sal_Bool ODatabaseMetaData::impl_supportsSchemasInTableDefinitions_throw(  )
672 {
673     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_supportsSchemasInTableDefinitions_throw" );
674     return sal_False;
675 }
676 // -------------------------------------------------------------------------
677 sal_Bool ODatabaseMetaData::impl_supportsCatalogsInTableDefinitions_throw(  )
678 {
679     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_supportsCatalogsInTableDefinitions_throw" );
680     return sal_False;
681 }
682 // -------------------------------------------------------------------------
683 sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInIndexDefinitions(  ) throw(SQLException, RuntimeException)
684 {
685     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsCatalogsInIndexDefinitions" );
686     return sal_False;
687 }
688 // -------------------------------------------------------------------------
689 sal_Bool ODatabaseMetaData::impl_supportsCatalogsInDataManipulation_throw(  )
690 {
691     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_supportsCatalogsInDataManipulation_throw" );
692     return sal_False;
693 }
694 // -------------------------------------------------------------------------
695 sal_Bool SAL_CALL ODatabaseMetaData::supportsOuterJoins(  ) throw(SQLException, RuntimeException)
696 {
697     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsOuterJoins" );
698     return sal_False;
699 }
700 // -------------------------------------------------------------------------
701 Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTableTypes(  ) throw(SQLException, RuntimeException)
702 {
703     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getTableTypes" );
704     ::osl::MutexGuard aGuard( m_aMutex );
705 
706     ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTableTypes );
707     Reference< XResultSet > xRef = pResult;
708     static ODatabaseMetaDataResultSet::ORows aRows;
709     if(aRows.empty())
710     {
711         ODatabaseMetaDataResultSet::ORow aRow;
712         aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
713         aRow.push_back(new ORowSetValueDecorator(::rtl::OUString::createFromAscii("TABLE")));
714         aRows.push_back(aRow);
715     }
716     pResult->setRows(aRows);
717     return xRef;
718 }
719 // -------------------------------------------------------------------------
720 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxStatementLength(  ) throw(SQLException, RuntimeException)
721 {
722     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxStatementLength" );
723     return 0;
724 }
725 // -------------------------------------------------------------------------
726 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxProcedureNameLength(  ) throw(SQLException, RuntimeException)
727 {
728     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxProcedureNameLength" );
729     return 0;
730 }
731 // -------------------------------------------------------------------------
732 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxSchemaNameLength(  ) throw(SQLException, RuntimeException)
733 {
734     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxSchemaNameLength" );
735     return 0;
736 }
737 // -------------------------------------------------------------------------
738 sal_Bool SAL_CALL ODatabaseMetaData::supportsTransactions(  ) throw(SQLException, RuntimeException)
739 {
740     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsTransactions" );
741     return sal_False;
742 }
743 // -------------------------------------------------------------------------
744 sal_Bool SAL_CALL ODatabaseMetaData::allProceduresAreCallable(  ) throw(SQLException, RuntimeException)
745 {
746     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::allProceduresAreCallable" );
747     return sal_False;
748 }
749 // -------------------------------------------------------------------------
750 sal_Bool SAL_CALL ODatabaseMetaData::supportsStoredProcedures(  ) throw(SQLException, RuntimeException)
751 {
752     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsStoredProcedures" );
753     return sal_False;
754 }
755 // -------------------------------------------------------------------------
756 sal_Bool SAL_CALL ODatabaseMetaData::supportsSelectForUpdate(  ) throw(SQLException, RuntimeException)
757 {
758     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsSelectForUpdate" );
759     return sal_False;
760 }
761 // -------------------------------------------------------------------------
762 sal_Bool SAL_CALL ODatabaseMetaData::allTablesAreSelectable(  ) throw(SQLException, RuntimeException)
763 {
764     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::allTablesAreSelectable" );
765     return sal_True;
766 }
767 // -------------------------------------------------------------------------
768 sal_Bool SAL_CALL ODatabaseMetaData::isReadOnly(  ) throw(SQLException, RuntimeException)
769 {
770     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::isReadOnly" );
771     return sal_True;
772 }
773 // -------------------------------------------------------------------------
774 sal_Bool SAL_CALL ODatabaseMetaData::usesLocalFiles(  ) throw(SQLException, RuntimeException)
775 {
776     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::usesLocalFiles" );
777     return sal_True;
778 }
779 // -------------------------------------------------------------------------
780 sal_Bool SAL_CALL ODatabaseMetaData::usesLocalFilePerTable(  ) throw(SQLException, RuntimeException)
781 {
782     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::usesLocalFilePerTable" );
783     return sal_True;
784 }
785 // -------------------------------------------------------------------------
786 sal_Bool SAL_CALL ODatabaseMetaData::supportsTypeConversion(  ) throw(SQLException, RuntimeException)
787 {
788     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsTypeConversion" );
789     return sal_False;
790 }
791 // -------------------------------------------------------------------------
792 sal_Bool SAL_CALL ODatabaseMetaData::nullPlusNonNullIsNull(  ) throw(SQLException, RuntimeException)
793 {
794     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::nullPlusNonNullIsNull" );
795     return sal_True;
796 }
797 // -------------------------------------------------------------------------
798 sal_Bool SAL_CALL ODatabaseMetaData::supportsColumnAliasing(  ) throw(SQLException, RuntimeException)
799 {
800     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsColumnAliasing" );
801     return sal_True;
802 }
803 // -------------------------------------------------------------------------
804 sal_Bool SAL_CALL ODatabaseMetaData::supportsTableCorrelationNames(  ) throw(SQLException, RuntimeException)
805 {
806     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsTableCorrelationNames" );
807     return sal_True;
808 }
809 // -------------------------------------------------------------------------
810 sal_Bool SAL_CALL ODatabaseMetaData::supportsConvert( sal_Int32 /*fromType*/, sal_Int32 /*toType*/ ) throw(SQLException, RuntimeException)
811 {
812     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsConvert" );
813     return sal_False;
814 }
815 // -------------------------------------------------------------------------
816 sal_Bool SAL_CALL ODatabaseMetaData::supportsExpressionsInOrderBy(  ) throw(SQLException, RuntimeException)
817 {
818     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsExpressionsInOrderBy" );
819     return sal_False;
820 }
821 // -------------------------------------------------------------------------
822 sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupBy(  ) throw(SQLException, RuntimeException)
823 {
824     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsGroupBy" );
825     return sal_False;
826 }
827 // -------------------------------------------------------------------------
828 sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupByBeyondSelect(  ) throw(SQLException, RuntimeException)
829 {
830     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsGroupByBeyondSelect" );
831     return sal_False;
832 }
833 // -------------------------------------------------------------------------
834 sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupByUnrelated(  ) throw(SQLException, RuntimeException)
835 {
836     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsGroupByUnrelated" );
837     return sal_False;
838 }
839 // -------------------------------------------------------------------------
840 sal_Bool SAL_CALL ODatabaseMetaData::supportsMultipleTransactions(  ) throw(SQLException, RuntimeException)
841 {
842     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsMultipleTransactions" );
843     return sal_False;
844 }
845 // -------------------------------------------------------------------------
846 sal_Bool SAL_CALL ODatabaseMetaData::supportsMultipleResultSets(  ) throw(SQLException, RuntimeException)
847 {
848     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsMultipleResultSets" );
849     return sal_False;
850 }
851 // -------------------------------------------------------------------------
852 sal_Bool SAL_CALL ODatabaseMetaData::supportsLikeEscapeClause(  ) throw(SQLException, RuntimeException)
853 {
854     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsLikeEscapeClause" );
855     return sal_False;
856 }
857 // -------------------------------------------------------------------------
858 sal_Bool SAL_CALL ODatabaseMetaData::supportsOrderByUnrelated(  ) throw(SQLException, RuntimeException)
859 {
860     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsOrderByUnrelated" );
861     return sal_True;
862 }
863 // -------------------------------------------------------------------------
864 sal_Bool SAL_CALL ODatabaseMetaData::supportsUnion(  ) throw(SQLException, RuntimeException)
865 {
866     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsUnion" );
867     return sal_False;
868 }
869 // -------------------------------------------------------------------------
870 sal_Bool SAL_CALL ODatabaseMetaData::supportsUnionAll(  ) throw(SQLException, RuntimeException)
871 {
872     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsUnionAll" );
873     return sal_False;
874 }
875 // -------------------------------------------------------------------------
876 sal_Bool SAL_CALL ODatabaseMetaData::supportsMixedCaseIdentifiers(  ) throw(SQLException, RuntimeException)
877 {
878     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsMixedCaseIdentifiers" );
879     return sal_True;
880 }
881 // -------------------------------------------------------------------------
882 sal_Bool ODatabaseMetaData::impl_supportsMixedCaseQuotedIdentifiers_throw(  )
883 {
884     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_supportsMixedCaseQuotedIdentifiers_throw" );
885     return sal_False;
886 }
887 // -------------------------------------------------------------------------
888 sal_Bool SAL_CALL ODatabaseMetaData::nullsAreSortedAtEnd(  ) throw(SQLException, RuntimeException)
889 {
890     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::nullsAreSortedAtEnd" );
891     return sal_False;
892 }
893 // -------------------------------------------------------------------------
894 sal_Bool SAL_CALL ODatabaseMetaData::nullsAreSortedAtStart(  ) throw(SQLException, RuntimeException)
895 {
896     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::nullsAreSortedAtStart" );
897     return sal_True;
898 }
899 // -------------------------------------------------------------------------
900 sal_Bool SAL_CALL ODatabaseMetaData::nullsAreSortedHigh(  ) throw(SQLException, RuntimeException)
901 {
902     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::nullsAreSortedHigh" );
903     return sal_False;
904 }
905 // -------------------------------------------------------------------------
906 sal_Bool SAL_CALL ODatabaseMetaData::nullsAreSortedLow(  ) throw(SQLException, RuntimeException)
907 {
908     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::nullsAreSortedLow" );
909     return sal_True;
910 }
911 // -------------------------------------------------------------------------
912 sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInProcedureCalls(  ) throw(SQLException, RuntimeException)
913 {
914     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsSchemasInProcedureCalls" );
915     return sal_False;
916 }
917 // -------------------------------------------------------------------------
918 sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInPrivilegeDefinitions(  ) throw(SQLException, RuntimeException)
919 {
920     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsSchemasInPrivilegeDefinitions" );
921     return sal_False;
922 }
923 // -------------------------------------------------------------------------
924 sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInProcedureCalls(  ) throw(SQLException, RuntimeException)
925 {
926     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsCatalogsInProcedureCalls" );
927     return sal_False;
928 }
929 // -------------------------------------------------------------------------
930 sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInPrivilegeDefinitions(  ) throw(SQLException, RuntimeException)
931 {
932     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsCatalogsInPrivilegeDefinitions" );
933     return sal_False;
934 }
935 // -------------------------------------------------------------------------
936 sal_Bool SAL_CALL ODatabaseMetaData::supportsCorrelatedSubqueries(  ) throw(SQLException, RuntimeException)
937 {
938     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsCorrelatedSubqueries" );
939     return sal_False;
940 }
941 // -------------------------------------------------------------------------
942 sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInComparisons(  ) throw(SQLException, RuntimeException)
943 {
944     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsSubqueriesInComparisons" );
945     return sal_False;
946 }
947 // -------------------------------------------------------------------------
948 sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInExists(  ) throw(SQLException, RuntimeException)
949 {
950     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsSubqueriesInExists" );
951     return sal_False;
952 }
953 // -------------------------------------------------------------------------
954 sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInIns(  ) throw(SQLException, RuntimeException)
955 {
956     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsSubqueriesInIns" );
957     return sal_False;
958 }
959 // -------------------------------------------------------------------------
960 sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInQuantifieds(  ) throw(SQLException, RuntimeException)
961 {
962     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsSubqueriesInQuantifieds" );
963     return sal_False;
964 }
965 // -------------------------------------------------------------------------
966 sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92IntermediateSQL(  ) throw(SQLException, RuntimeException)
967 {
968     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsANSI92IntermediateSQL" );
969     return sal_False;
970 }
971 // -------------------------------------------------------------------------
972 ::rtl::OUString SAL_CALL ODatabaseMetaData::getURL(  ) throw(SQLException, RuntimeException)
973 {
974     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getURL" );
975     static const ::rtl::OUString aValue = ::rtl::OUString::createFromAscii("sdbc:file:");
976     return aValue;
977 }
978 // -------------------------------------------------------------------------
979 ::rtl::OUString SAL_CALL ODatabaseMetaData::getUserName(  ) throw(SQLException, RuntimeException)
980 {
981     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getUserName" );
982     return ::rtl::OUString();
983 }
984 // -------------------------------------------------------------------------
985 ::rtl::OUString SAL_CALL ODatabaseMetaData::getDriverName(  ) throw(SQLException, RuntimeException)
986 {
987     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getDriverName" );
988     return ::rtl::OUString();
989 }
990 // -------------------------------------------------------------------------
991 ::rtl::OUString SAL_CALL ODatabaseMetaData::getDriverVersion(  ) throw(SQLException, RuntimeException)
992 {
993     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getDriverVersion" );
994     return ::rtl::OUString::valueOf((sal_Int32)1);
995 }
996 // -------------------------------------------------------------------------
997 ::rtl::OUString SAL_CALL ODatabaseMetaData::getDatabaseProductVersion(  ) throw(SQLException, RuntimeException)
998 {
999     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getDatabaseProductVersion" );
1000     return ::rtl::OUString::valueOf((sal_Int32)0);
1001 }
1002 // -------------------------------------------------------------------------
1003 ::rtl::OUString SAL_CALL ODatabaseMetaData::getDatabaseProductName(  ) throw(SQLException, RuntimeException)
1004 {
1005     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getDatabaseProductName" );
1006     return ::rtl::OUString();
1007 }
1008 // -------------------------------------------------------------------------
1009 ::rtl::OUString SAL_CALL ODatabaseMetaData::getProcedureTerm(  ) throw(SQLException, RuntimeException)
1010 {
1011     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getProcedureTerm" );
1012     return ::rtl::OUString();
1013 }
1014 // -------------------------------------------------------------------------
1015 ::rtl::OUString SAL_CALL ODatabaseMetaData::getSchemaTerm(  ) throw(SQLException, RuntimeException)
1016 {
1017     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getSchemaTerm" );
1018     return ::rtl::OUString();
1019 }
1020 // -------------------------------------------------------------------------
1021 sal_Int32 SAL_CALL ODatabaseMetaData::getDriverMajorVersion(  ) throw(RuntimeException)
1022 {
1023     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getDriverMajorVersion" );
1024     return 0;
1025 }
1026 // -------------------------------------------------------------------------
1027 sal_Int32 SAL_CALL ODatabaseMetaData::getDefaultTransactionIsolation(  ) throw(SQLException, RuntimeException)
1028 {
1029     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getDefaultTransactionIsolation" );
1030     return 0;
1031 }
1032 // -------------------------------------------------------------------------
1033 sal_Int32 SAL_CALL ODatabaseMetaData::getDriverMinorVersion(  ) throw(RuntimeException)
1034 {
1035     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getDriverMinorVersion" );
1036     return 0;
1037 }
1038 // -------------------------------------------------------------------------
1039 ::rtl::OUString SAL_CALL ODatabaseMetaData::getSQLKeywords(  ) throw(SQLException, RuntimeException)
1040 {
1041     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getSQLKeywords" );
1042     return ::rtl::OUString();
1043 }
1044 // -------------------------------------------------------------------------
1045 ::rtl::OUString SAL_CALL ODatabaseMetaData::getSearchStringEscape(  ) throw(SQLException, RuntimeException)
1046 {
1047     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getSearchStringEscape" );
1048     return ::rtl::OUString();
1049 }
1050 // -------------------------------------------------------------------------
1051 ::rtl::OUString SAL_CALL ODatabaseMetaData::getStringFunctions(  ) throw(SQLException, RuntimeException)
1052 {
1053     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getStringFunctions" );
1054     return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("UCASE,LCASE,ASCII,LENGTH,OCTET_LENGTH,CHAR_LENGTH,CHARACTER_LENGTH,CHAR,CONCAT,LOCATE,SUBSTRING,LTRIM,RTRIM,SPACE,REPLACE,REPEAT,INSERT,LEFT,RIGHT"));
1055 }
1056 // -------------------------------------------------------------------------
1057 ::rtl::OUString SAL_CALL ODatabaseMetaData::getTimeDateFunctions(  ) throw(SQLException, RuntimeException)
1058 {
1059     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getTimeDateFunctions" );
1060     return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DAYOFWEEK,DAYOFMONTH,DAYOFYEAR,MONTH,DAYNAME,MONTHNAME,QUARTER,WEEK,YEAR,HOUR,MINUTE,SECOND,CURDATE,CURTIME,NOW"));
1061 }
1062 // -------------------------------------------------------------------------
1063 ::rtl::OUString SAL_CALL ODatabaseMetaData::getSystemFunctions(  ) throw(SQLException, RuntimeException)
1064 {
1065     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getSystemFunctions" );
1066     return ::rtl::OUString();
1067 }
1068 // -------------------------------------------------------------------------
1069 ::rtl::OUString SAL_CALL ODatabaseMetaData::getNumericFunctions(  ) throw(SQLException, RuntimeException)
1070 {
1071     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getNumericFunctions" );
1072     return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ABS,SIGN,MOD,FLOOR,CEILING,ROUND,EXP,LN,LOG,LOG10,POWER,SQRT,PI,COS,SIN,TAN,ACOS,ASIN,ATAN,ATAN2,DEGREES,RADIANS"));
1073 }
1074 // -------------------------------------------------------------------------
1075 sal_Bool SAL_CALL ODatabaseMetaData::supportsExtendedSQLGrammar(  ) throw(SQLException, RuntimeException)
1076 {
1077     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsExtendedSQLGrammar" );
1078     return sal_False;
1079 }
1080 // -------------------------------------------------------------------------
1081 sal_Bool SAL_CALL ODatabaseMetaData::supportsCoreSQLGrammar(  ) throw(SQLException, RuntimeException)
1082 {
1083     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsCoreSQLGrammar" );
1084     return sal_False;
1085 }
1086 // -------------------------------------------------------------------------
1087 sal_Bool SAL_CALL ODatabaseMetaData::supportsMinimumSQLGrammar(  ) throw(SQLException, RuntimeException)
1088 {
1089     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsMinimumSQLGrammar" );
1090     return sal_True;
1091 }
1092 // -------------------------------------------------------------------------
1093 sal_Bool SAL_CALL ODatabaseMetaData::supportsFullOuterJoins(  ) throw(SQLException, RuntimeException)
1094 {
1095     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsFullOuterJoins" );
1096     return sal_False;
1097 }
1098 // -------------------------------------------------------------------------
1099 sal_Bool SAL_CALL ODatabaseMetaData::supportsLimitedOuterJoins(  ) throw(SQLException, RuntimeException)
1100 {
1101     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsLimitedOuterJoins" );
1102     return sal_False;
1103 }
1104 // -------------------------------------------------------------------------
1105 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInGroupBy(  ) throw(SQLException, RuntimeException)
1106 {
1107     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxColumnsInGroupBy" );
1108     return 0;
1109 }
1110 // -------------------------------------------------------------------------
1111 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInOrderBy(  ) throw(SQLException, RuntimeException)
1112 {
1113     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxColumnsInOrderBy" );
1114     return 0;
1115 }
1116 // -------------------------------------------------------------------------
1117 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInSelect(  ) throw(SQLException, RuntimeException)
1118 {
1119     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxColumnsInSelect" );
1120     return 0;
1121 }
1122 // -------------------------------------------------------------------------
1123 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxUserNameLength(  ) throw(SQLException, RuntimeException)
1124 {
1125     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxUserNameLength" );
1126     return 0;
1127 }
1128 // -------------------------------------------------------------------------
1129 sal_Bool SAL_CALL ODatabaseMetaData::supportsResultSetType( sal_Int32 setType ) throw(SQLException, RuntimeException)
1130 {
1131     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsResultSetType" );
1132     switch(setType)
1133     {
1134         case ResultSetType::FORWARD_ONLY:
1135             return sal_True;
1136         case ResultSetType::SCROLL_INSENSITIVE:
1137         case ResultSetType::SCROLL_SENSITIVE:
1138             break;
1139     }
1140     return sal_False;
1141 }
1142 // -------------------------------------------------------------------------
1143 sal_Bool SAL_CALL ODatabaseMetaData::supportsResultSetConcurrency( sal_Int32 setType, sal_Int32 /*concurrency*/ ) throw(SQLException, RuntimeException)
1144 {
1145     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsResultSetConcurrency" );
1146     switch(setType)
1147     {
1148         case ResultSetType::FORWARD_ONLY:
1149             return sal_True;
1150         case ResultSetType::SCROLL_INSENSITIVE:
1151         case ResultSetType::SCROLL_SENSITIVE:
1152             break;
1153     }
1154     return sal_False;
1155 }
1156 // -------------------------------------------------------------------------
1157 sal_Bool SAL_CALL ODatabaseMetaData::ownUpdatesAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
1158 {
1159     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::ownUpdatesAreVisible" );
1160     return sal_True;
1161 }
1162 // -------------------------------------------------------------------------
1163 sal_Bool SAL_CALL ODatabaseMetaData::ownDeletesAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
1164 {
1165     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::ownDeletesAreVisible" );
1166     return sal_True;
1167 }
1168 // -------------------------------------------------------------------------
1169 sal_Bool SAL_CALL ODatabaseMetaData::ownInsertsAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
1170 {
1171     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::ownInsertsAreVisible" );
1172     return sal_True;
1173 }
1174 // -------------------------------------------------------------------------
1175 sal_Bool SAL_CALL ODatabaseMetaData::othersUpdatesAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
1176 {
1177     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::othersUpdatesAreVisible" );
1178     return sal_True;
1179 }
1180 // -------------------------------------------------------------------------
1181 sal_Bool SAL_CALL ODatabaseMetaData::othersDeletesAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
1182 {
1183     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::othersDeletesAreVisible" );
1184     return sal_True;
1185 }
1186 // -------------------------------------------------------------------------
1187 sal_Bool SAL_CALL ODatabaseMetaData::othersInsertsAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
1188 {
1189     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::othersInsertsAreVisible" );
1190     return sal_True;
1191 }
1192 // -------------------------------------------------------------------------
1193 sal_Bool SAL_CALL ODatabaseMetaData::updatesAreDetected( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
1194 {
1195     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::updatesAreDetected" );
1196     return sal_False;
1197 }
1198 // -------------------------------------------------------------------------
1199 sal_Bool SAL_CALL ODatabaseMetaData::deletesAreDetected( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
1200 {
1201     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::deletesAreDetected" );
1202     return sal_False;
1203 }
1204 // -------------------------------------------------------------------------
1205 sal_Bool SAL_CALL ODatabaseMetaData::insertsAreDetected( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
1206 {
1207     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::insertsAreDetected" );
1208     return sal_False;
1209 }
1210 // -------------------------------------------------------------------------
1211 sal_Bool SAL_CALL ODatabaseMetaData::supportsBatchUpdates(  ) throw(SQLException, RuntimeException)
1212 {
1213     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsBatchUpdates" );
1214     return sal_False;
1215 }
1216 // -------------------------------------------------------------------------
1217 Reference< XResultSet > SAL_CALL ODatabaseMetaData::getUDTs( const Any& /*catalog*/, const ::rtl::OUString& /*schemaPattern*/, const ::rtl::OUString& /*typeNamePattern*/, const Sequence< sal_Int32 >& /*types*/ ) throw(SQLException, RuntimeException)
1218 {
1219     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getUDTs" );
1220     return NULL;
1221 }
1222 
1223 
1224