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