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