1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_connectivity.hxx"
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include "MacabDatabaseMetaData.hxx"
28*b1cdbd2cSJim Jagielski #include "MacabAddressBook.hxx"
29*b1cdbd2cSJim Jagielski #include "MacabHeader.hxx"
30*b1cdbd2cSJim Jagielski #include "MacabGroup.hxx"
31*b1cdbd2cSJim Jagielski #include "macabutilities.hxx"
32*b1cdbd2cSJim Jagielski 
33*b1cdbd2cSJim Jagielski #ifndef CONNECTIVITY_MACAB_DRIVER_HXX_
34*b1cdbd2cSJim Jagielski #include "MacabDriver.hxx"
35*b1cdbd2cSJim Jagielski #endif
36*b1cdbd2cSJim Jagielski #include "FDatabaseMetaDataResultSet.hxx"
37*b1cdbd2cSJim Jagielski #include "OTypeInfo.hxx"
38*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbc/ColumnValue.hpp>
39*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbc/ResultSetType.hpp>
40*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbc/TransactionIsolation.hpp>
41*b1cdbd2cSJim Jagielski 
42*b1cdbd2cSJim Jagielski #include <vector>
43*b1cdbd2cSJim Jagielski 
44*b1cdbd2cSJim Jagielski using namespace connectivity::macab;
45*b1cdbd2cSJim Jagielski using namespace com::sun::star::uno;
46*b1cdbd2cSJim Jagielski using namespace com::sun::star::lang;
47*b1cdbd2cSJim Jagielski using namespace com::sun::star::beans;
48*b1cdbd2cSJim Jagielski using namespace com::sun::star::sdbc;
49*b1cdbd2cSJim Jagielski 
MacabDatabaseMetaData(MacabConnection * _pCon)50*b1cdbd2cSJim Jagielski MacabDatabaseMetaData::MacabDatabaseMetaData(MacabConnection* _pCon)
51*b1cdbd2cSJim Jagielski 		: m_xConnection(_pCon),
52*b1cdbd2cSJim Jagielski 		  m_bUseCatalog(sal_True)
53*b1cdbd2cSJim Jagielski {
54*b1cdbd2cSJim Jagielski 	OSL_ENSURE(_pCon,"MacabDatabaseMetaData::MacabDatabaseMetaData: No connection set!");
55*b1cdbd2cSJim Jagielski 
56*b1cdbd2cSJim Jagielski 	osl_incrementInterlockedCount( &m_refCount );
57*b1cdbd2cSJim Jagielski 	m_bUseCatalog	= !(usesLocalFiles() || usesLocalFilePerTable());
58*b1cdbd2cSJim Jagielski 	osl_decrementInterlockedCount( &m_refCount );
59*b1cdbd2cSJim Jagielski }
60*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
~MacabDatabaseMetaData()61*b1cdbd2cSJim Jagielski MacabDatabaseMetaData::~MacabDatabaseMetaData()
62*b1cdbd2cSJim Jagielski {
63*b1cdbd2cSJim Jagielski }
64*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getCatalogSeparator()65*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getCatalogSeparator(  ) throw(SQLException, RuntimeException)
66*b1cdbd2cSJim Jagielski {
67*b1cdbd2cSJim Jagielski 	::rtl::OUString aVal;
68*b1cdbd2cSJim Jagielski 	if (m_bUseCatalog)
69*b1cdbd2cSJim Jagielski 	{ // do some special here for you database
70*b1cdbd2cSJim Jagielski 	}
71*b1cdbd2cSJim Jagielski 
72*b1cdbd2cSJim Jagielski 	return aVal;
73*b1cdbd2cSJim Jagielski }
74*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxBinaryLiteralLength()75*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxBinaryLiteralLength(  ) throw(SQLException, RuntimeException)
76*b1cdbd2cSJim Jagielski {
77*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
78*b1cdbd2cSJim Jagielski 	return nValue;
79*b1cdbd2cSJim Jagielski }
80*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxRowSize()81*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxRowSize(  ) throw(SQLException, RuntimeException)
82*b1cdbd2cSJim Jagielski {
83*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
84*b1cdbd2cSJim Jagielski 	return nValue;
85*b1cdbd2cSJim Jagielski }
86*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxCatalogNameLength()87*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxCatalogNameLength(  ) throw(SQLException, RuntimeException)
88*b1cdbd2cSJim Jagielski {
89*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
90*b1cdbd2cSJim Jagielski 	return nValue;
91*b1cdbd2cSJim Jagielski }
92*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxCharLiteralLength()93*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxCharLiteralLength(  ) throw(SQLException, RuntimeException)
94*b1cdbd2cSJim Jagielski {
95*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
96*b1cdbd2cSJim Jagielski 	return nValue;
97*b1cdbd2cSJim Jagielski }
98*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnNameLength()99*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxColumnNameLength(  ) throw(SQLException, RuntimeException)
100*b1cdbd2cSJim Jagielski {
101*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
102*b1cdbd2cSJim Jagielski 	return nValue;
103*b1cdbd2cSJim Jagielski }
104*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnsInIndex()105*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxColumnsInIndex(  ) throw(SQLException, RuntimeException)
106*b1cdbd2cSJim Jagielski {
107*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
108*b1cdbd2cSJim Jagielski 	return nValue;
109*b1cdbd2cSJim Jagielski }
110*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxCursorNameLength()111*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxCursorNameLength(  ) throw(SQLException, RuntimeException)
112*b1cdbd2cSJim Jagielski {
113*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
114*b1cdbd2cSJim Jagielski 	return nValue;
115*b1cdbd2cSJim Jagielski }
116*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxConnections()117*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxConnections(  ) throw(SQLException, RuntimeException)
118*b1cdbd2cSJim Jagielski {
119*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
120*b1cdbd2cSJim Jagielski 	return nValue;
121*b1cdbd2cSJim Jagielski }
122*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnsInTable()123*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxColumnsInTable(  ) throw(SQLException, RuntimeException)
124*b1cdbd2cSJim Jagielski {
125*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
126*b1cdbd2cSJim Jagielski 	return nValue;
127*b1cdbd2cSJim Jagielski }
128*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxStatementLength()129*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxStatementLength(  ) throw(SQLException, RuntimeException)
130*b1cdbd2cSJim Jagielski {
131*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
132*b1cdbd2cSJim Jagielski 	return nValue;
133*b1cdbd2cSJim Jagielski }
134*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxTableNameLength()135*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxTableNameLength(  ) throw(SQLException, RuntimeException)
136*b1cdbd2cSJim Jagielski {
137*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
138*b1cdbd2cSJim Jagielski 	return nValue;
139*b1cdbd2cSJim Jagielski }
140*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxTablesInSelect()141*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxTablesInSelect(  ) throw(SQLException, RuntimeException)
142*b1cdbd2cSJim Jagielski {
143*b1cdbd2cSJim Jagielski 	// MaxTablesInSelect describes how many tables can participate in the FROM part of a given SELECT statement,
144*b1cdbd2cSJim Jagielski 	// currently, the resultset/statement implementations can cope with one table only
145*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 1;
146*b1cdbd2cSJim Jagielski 	return nValue;
147*b1cdbd2cSJim Jagielski }
148*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
doesMaxRowSizeIncludeBlobs()149*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::doesMaxRowSizeIncludeBlobs(  ) throw(SQLException, RuntimeException)
150*b1cdbd2cSJim Jagielski {
151*b1cdbd2cSJim Jagielski 	return sal_False;
152*b1cdbd2cSJim Jagielski }
153*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesLowerCaseQuotedIdentifiers()154*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::storesLowerCaseQuotedIdentifiers(  ) throw(SQLException, RuntimeException)
155*b1cdbd2cSJim Jagielski {
156*b1cdbd2cSJim Jagielski 	return sal_False;
157*b1cdbd2cSJim Jagielski }
158*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesLowerCaseIdentifiers()159*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::storesLowerCaseIdentifiers(  ) throw(SQLException, RuntimeException)
160*b1cdbd2cSJim Jagielski {
161*b1cdbd2cSJim Jagielski 	return sal_False;
162*b1cdbd2cSJim Jagielski }
163*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesMixedCaseQuotedIdentifiers()164*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::storesMixedCaseQuotedIdentifiers(  ) throw(SQLException, RuntimeException)
165*b1cdbd2cSJim Jagielski {
166*b1cdbd2cSJim Jagielski 	return sal_False;
167*b1cdbd2cSJim Jagielski }
168*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesMixedCaseIdentifiers()169*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::storesMixedCaseIdentifiers(  ) throw(SQLException, RuntimeException)
170*b1cdbd2cSJim Jagielski {
171*b1cdbd2cSJim Jagielski 	return sal_False;
172*b1cdbd2cSJim Jagielski }
173*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesUpperCaseQuotedIdentifiers()174*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::storesUpperCaseQuotedIdentifiers(  ) throw(SQLException, RuntimeException)
175*b1cdbd2cSJim Jagielski {
176*b1cdbd2cSJim Jagielski 	return sal_False;
177*b1cdbd2cSJim Jagielski }
178*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesUpperCaseIdentifiers()179*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::storesUpperCaseIdentifiers(  ) throw(SQLException, RuntimeException)
180*b1cdbd2cSJim Jagielski {
181*b1cdbd2cSJim Jagielski 	return sal_False;
182*b1cdbd2cSJim Jagielski }
183*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsAlterTableWithAddColumn()184*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsAlterTableWithAddColumn(  ) throw(SQLException, RuntimeException)
185*b1cdbd2cSJim Jagielski {
186*b1cdbd2cSJim Jagielski 	return sal_False;
187*b1cdbd2cSJim Jagielski }
188*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsAlterTableWithDropColumn()189*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsAlterTableWithDropColumn(  ) throw(SQLException, RuntimeException)
190*b1cdbd2cSJim Jagielski {
191*b1cdbd2cSJim Jagielski 	return sal_False;
192*b1cdbd2cSJim Jagielski }
193*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxIndexLength()194*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxIndexLength(  ) throw(SQLException, RuntimeException)
195*b1cdbd2cSJim Jagielski {
196*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
197*b1cdbd2cSJim Jagielski 	return nValue;
198*b1cdbd2cSJim Jagielski }
199*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsNonNullableColumns()200*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsNonNullableColumns(  ) throw(SQLException, RuntimeException)
201*b1cdbd2cSJim Jagielski {
202*b1cdbd2cSJim Jagielski 	return sal_False;
203*b1cdbd2cSJim Jagielski }
204*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getCatalogTerm()205*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getCatalogTerm(  ) throw(SQLException, RuntimeException)
206*b1cdbd2cSJim Jagielski {
207*b1cdbd2cSJim Jagielski 	::rtl::OUString aVal;
208*b1cdbd2cSJim Jagielski 	if (m_bUseCatalog)
209*b1cdbd2cSJim Jagielski 	{
210*b1cdbd2cSJim Jagielski 	}
211*b1cdbd2cSJim Jagielski 	return aVal;
212*b1cdbd2cSJim Jagielski }
213*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getIdentifierQuoteString()214*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getIdentifierQuoteString(  ) throw(SQLException, RuntimeException)
215*b1cdbd2cSJim Jagielski {
216*b1cdbd2cSJim Jagielski 	// normally this is "
217*b1cdbd2cSJim Jagielski 	::rtl::OUString aVal = ::rtl::OUString::createFromAscii("\"");
218*b1cdbd2cSJim Jagielski 	return aVal;
219*b1cdbd2cSJim Jagielski }
220*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getExtraNameCharacters()221*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getExtraNameCharacters(  ) throw(SQLException, RuntimeException)
222*b1cdbd2cSJim Jagielski {
223*b1cdbd2cSJim Jagielski 	::rtl::OUString aVal;
224*b1cdbd2cSJim Jagielski 	return aVal;
225*b1cdbd2cSJim Jagielski }
226*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsDifferentTableCorrelationNames()227*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsDifferentTableCorrelationNames(  ) throw(SQLException, RuntimeException)
228*b1cdbd2cSJim Jagielski {
229*b1cdbd2cSJim Jagielski 	return sal_False;
230*b1cdbd2cSJim Jagielski }
231*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
isCatalogAtStart()232*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::isCatalogAtStart(  ) throw(SQLException, RuntimeException)
233*b1cdbd2cSJim Jagielski {
234*b1cdbd2cSJim Jagielski 	sal_Bool bValue = sal_False;
235*b1cdbd2cSJim Jagielski 	if (m_bUseCatalog)
236*b1cdbd2cSJim Jagielski 	{
237*b1cdbd2cSJim Jagielski 	}
238*b1cdbd2cSJim Jagielski 	return bValue;
239*b1cdbd2cSJim Jagielski }
240*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
dataDefinitionIgnoredInTransactions()241*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::dataDefinitionIgnoredInTransactions(  ) throw(SQLException, RuntimeException)
242*b1cdbd2cSJim Jagielski {
243*b1cdbd2cSJim Jagielski 	return sal_True;
244*b1cdbd2cSJim Jagielski }
245*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
dataDefinitionCausesTransactionCommit()246*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::dataDefinitionCausesTransactionCommit(  ) throw(SQLException, RuntimeException)
247*b1cdbd2cSJim Jagielski {
248*b1cdbd2cSJim Jagielski 	return sal_True;
249*b1cdbd2cSJim Jagielski }
250*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsDataManipulationTransactionsOnly()251*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsDataManipulationTransactionsOnly(  ) throw(SQLException, RuntimeException)
252*b1cdbd2cSJim Jagielski {
253*b1cdbd2cSJim Jagielski 	return sal_True;
254*b1cdbd2cSJim Jagielski }
255*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsDataDefinitionAndDataManipulationTransactions()256*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions(  ) throw(SQLException, RuntimeException)
257*b1cdbd2cSJim Jagielski {
258*b1cdbd2cSJim Jagielski 	return sal_True;
259*b1cdbd2cSJim Jagielski }
260*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsPositionedDelete()261*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsPositionedDelete(  ) throw(SQLException, RuntimeException)
262*b1cdbd2cSJim Jagielski {
263*b1cdbd2cSJim Jagielski 	return sal_False;
264*b1cdbd2cSJim Jagielski }
265*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsPositionedUpdate()266*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsPositionedUpdate(  ) throw(SQLException, RuntimeException)
267*b1cdbd2cSJim Jagielski {
268*b1cdbd2cSJim Jagielski 	return sal_False;
269*b1cdbd2cSJim Jagielski }
270*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOpenStatementsAcrossRollback()271*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsOpenStatementsAcrossRollback(  ) throw(SQLException, RuntimeException)
272*b1cdbd2cSJim Jagielski {
273*b1cdbd2cSJim Jagielski 	return sal_False;
274*b1cdbd2cSJim Jagielski }
275*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOpenStatementsAcrossCommit()276*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsOpenStatementsAcrossCommit(  ) throw(SQLException, RuntimeException)
277*b1cdbd2cSJim Jagielski {
278*b1cdbd2cSJim Jagielski 	return sal_False;
279*b1cdbd2cSJim Jagielski }
280*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOpenCursorsAcrossCommit()281*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsOpenCursorsAcrossCommit(  ) throw(SQLException, RuntimeException)
282*b1cdbd2cSJim Jagielski {
283*b1cdbd2cSJim Jagielski 	return sal_False;
284*b1cdbd2cSJim Jagielski }
285*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOpenCursorsAcrossRollback()286*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsOpenCursorsAcrossRollback(  ) throw(SQLException, RuntimeException)
287*b1cdbd2cSJim Jagielski {
288*b1cdbd2cSJim Jagielski 	return sal_False;
289*b1cdbd2cSJim Jagielski }
290*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsTransactionIsolationLevel(sal_Int32)291*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsTransactionIsolationLevel( sal_Int32 ) throw(SQLException, RuntimeException)
292*b1cdbd2cSJim Jagielski {
293*b1cdbd2cSJim Jagielski 	return sal_False;
294*b1cdbd2cSJim Jagielski }
295*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSchemasInDataManipulation()296*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSchemasInDataManipulation(  ) throw(SQLException, RuntimeException)
297*b1cdbd2cSJim Jagielski {
298*b1cdbd2cSJim Jagielski 	return sal_False;
299*b1cdbd2cSJim Jagielski }
300*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsANSI92FullSQL()301*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsANSI92FullSQL(  ) throw(SQLException, RuntimeException)
302*b1cdbd2cSJim Jagielski {
303*b1cdbd2cSJim Jagielski 	return sal_False;
304*b1cdbd2cSJim Jagielski }
305*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsANSI92EntryLevelSQL()306*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsANSI92EntryLevelSQL(  ) throw(SQLException, RuntimeException)
307*b1cdbd2cSJim Jagielski {
308*b1cdbd2cSJim Jagielski 	return sal_True; // should be supported at least
309*b1cdbd2cSJim Jagielski }
310*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsIntegrityEnhancementFacility()311*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsIntegrityEnhancementFacility(  ) throw(SQLException, RuntimeException)
312*b1cdbd2cSJim Jagielski {
313*b1cdbd2cSJim Jagielski 	return sal_False;
314*b1cdbd2cSJim Jagielski }
315*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSchemasInIndexDefinitions()316*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSchemasInIndexDefinitions(  ) throw(SQLException, RuntimeException)
317*b1cdbd2cSJim Jagielski {
318*b1cdbd2cSJim Jagielski 	return sal_False;
319*b1cdbd2cSJim Jagielski }
320*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSchemasInTableDefinitions()321*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSchemasInTableDefinitions(  ) throw(SQLException, RuntimeException)
322*b1cdbd2cSJim Jagielski {
323*b1cdbd2cSJim Jagielski 	return sal_False;
324*b1cdbd2cSJim Jagielski }
325*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCatalogsInTableDefinitions()326*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsCatalogsInTableDefinitions(  ) throw(SQLException, RuntimeException)
327*b1cdbd2cSJim Jagielski {
328*b1cdbd2cSJim Jagielski 	return sal_False;
329*b1cdbd2cSJim Jagielski }
330*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCatalogsInIndexDefinitions()331*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsCatalogsInIndexDefinitions(  ) throw(SQLException, RuntimeException)
332*b1cdbd2cSJim Jagielski {
333*b1cdbd2cSJim Jagielski 	return sal_False;
334*b1cdbd2cSJim Jagielski }
335*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCatalogsInDataManipulation()336*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsCatalogsInDataManipulation(  ) throw(SQLException, RuntimeException)
337*b1cdbd2cSJim Jagielski {
338*b1cdbd2cSJim Jagielski 	return sal_False;
339*b1cdbd2cSJim Jagielski }
340*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOuterJoins()341*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsOuterJoins(  ) throw(SQLException, RuntimeException)
342*b1cdbd2cSJim Jagielski {
343*b1cdbd2cSJim Jagielski 	return sal_False;
344*b1cdbd2cSJim Jagielski }
345*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxStatements()346*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxStatements(  ) throw(SQLException, RuntimeException)
347*b1cdbd2cSJim Jagielski {
348*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
349*b1cdbd2cSJim Jagielski 	return nValue;
350*b1cdbd2cSJim Jagielski }
351*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxProcedureNameLength()352*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxProcedureNameLength(  ) throw(SQLException, RuntimeException)
353*b1cdbd2cSJim Jagielski {
354*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
355*b1cdbd2cSJim Jagielski 	return nValue;
356*b1cdbd2cSJim Jagielski }
357*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxSchemaNameLength()358*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxSchemaNameLength(  ) throw(SQLException, RuntimeException)
359*b1cdbd2cSJim Jagielski {
360*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
361*b1cdbd2cSJim Jagielski 	return nValue;
362*b1cdbd2cSJim Jagielski }
363*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsTransactions()364*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsTransactions(  ) throw(SQLException, RuntimeException)
365*b1cdbd2cSJim Jagielski {
366*b1cdbd2cSJim Jagielski 	return sal_False;
367*b1cdbd2cSJim Jagielski }
368*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
allProceduresAreCallable()369*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::allProceduresAreCallable(  ) throw(SQLException, RuntimeException)
370*b1cdbd2cSJim Jagielski {
371*b1cdbd2cSJim Jagielski 	return sal_False;
372*b1cdbd2cSJim Jagielski }
373*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsStoredProcedures()374*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsStoredProcedures(  ) throw(SQLException, RuntimeException)
375*b1cdbd2cSJim Jagielski {
376*b1cdbd2cSJim Jagielski 	return sal_False;
377*b1cdbd2cSJim Jagielski }
378*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSelectForUpdate()379*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSelectForUpdate(  ) throw(SQLException, RuntimeException)
380*b1cdbd2cSJim Jagielski {
381*b1cdbd2cSJim Jagielski 	return sal_False;
382*b1cdbd2cSJim Jagielski }
383*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
allTablesAreSelectable()384*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::allTablesAreSelectable(  ) throw(SQLException, RuntimeException)
385*b1cdbd2cSJim Jagielski {
386*b1cdbd2cSJim Jagielski 	return sal_False;
387*b1cdbd2cSJim Jagielski }
388*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
isReadOnly()389*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::isReadOnly(  ) throw(SQLException, RuntimeException)
390*b1cdbd2cSJim Jagielski {
391*b1cdbd2cSJim Jagielski 	// for the moment, we have read-only addresses, but this might change in the future
392*b1cdbd2cSJim Jagielski 	return sal_True;
393*b1cdbd2cSJim Jagielski }
394*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
usesLocalFiles()395*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::usesLocalFiles(  ) throw(SQLException, RuntimeException)
396*b1cdbd2cSJim Jagielski {
397*b1cdbd2cSJim Jagielski 	return sal_False;
398*b1cdbd2cSJim Jagielski }
399*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
usesLocalFilePerTable()400*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::usesLocalFilePerTable(  ) throw(SQLException, RuntimeException)
401*b1cdbd2cSJim Jagielski {
402*b1cdbd2cSJim Jagielski 	return sal_False;
403*b1cdbd2cSJim Jagielski }
404*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsTypeConversion()405*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsTypeConversion(  ) throw(SQLException, RuntimeException)
406*b1cdbd2cSJim Jagielski {
407*b1cdbd2cSJim Jagielski 	return sal_False;
408*b1cdbd2cSJim Jagielski }
409*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
nullPlusNonNullIsNull()410*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::nullPlusNonNullIsNull(  ) throw(SQLException, RuntimeException)
411*b1cdbd2cSJim Jagielski {
412*b1cdbd2cSJim Jagielski 	return sal_False;
413*b1cdbd2cSJim Jagielski }
414*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsColumnAliasing()415*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsColumnAliasing(  ) throw(SQLException, RuntimeException)
416*b1cdbd2cSJim Jagielski {
417*b1cdbd2cSJim Jagielski 	return sal_False;
418*b1cdbd2cSJim Jagielski }
419*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsTableCorrelationNames()420*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsTableCorrelationNames(  ) throw(SQLException, RuntimeException)
421*b1cdbd2cSJim Jagielski {
422*b1cdbd2cSJim Jagielski 	return sal_False;
423*b1cdbd2cSJim Jagielski }
424*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsConvert(sal_Int32,sal_Int32)425*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsConvert( sal_Int32, sal_Int32 ) throw(SQLException, RuntimeException)
426*b1cdbd2cSJim Jagielski {
427*b1cdbd2cSJim Jagielski 	return sal_False;
428*b1cdbd2cSJim Jagielski }
429*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsExpressionsInOrderBy()430*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsExpressionsInOrderBy(  ) throw(SQLException, RuntimeException)
431*b1cdbd2cSJim Jagielski {
432*b1cdbd2cSJim Jagielski 	return sal_False;
433*b1cdbd2cSJim Jagielski }
434*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsGroupBy()435*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsGroupBy(  ) throw(SQLException, RuntimeException)
436*b1cdbd2cSJim Jagielski {
437*b1cdbd2cSJim Jagielski 	return sal_False;
438*b1cdbd2cSJim Jagielski }
439*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsGroupByBeyondSelect()440*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsGroupByBeyondSelect(  ) throw(SQLException, RuntimeException)
441*b1cdbd2cSJim Jagielski {
442*b1cdbd2cSJim Jagielski 	return sal_False;
443*b1cdbd2cSJim Jagielski }
444*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsGroupByUnrelated()445*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsGroupByUnrelated(  ) throw(SQLException, RuntimeException)
446*b1cdbd2cSJim Jagielski {
447*b1cdbd2cSJim Jagielski 	return sal_False;
448*b1cdbd2cSJim Jagielski }
449*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsMultipleTransactions()450*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsMultipleTransactions(  ) throw(SQLException, RuntimeException)
451*b1cdbd2cSJim Jagielski {
452*b1cdbd2cSJim Jagielski 	return sal_False;
453*b1cdbd2cSJim Jagielski }
454*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsMultipleResultSets()455*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsMultipleResultSets(  ) throw(SQLException, RuntimeException)
456*b1cdbd2cSJim Jagielski {
457*b1cdbd2cSJim Jagielski 	return sal_False;
458*b1cdbd2cSJim Jagielski }
459*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsLikeEscapeClause()460*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsLikeEscapeClause(  ) throw(SQLException, RuntimeException)
461*b1cdbd2cSJim Jagielski {
462*b1cdbd2cSJim Jagielski 	return sal_False;
463*b1cdbd2cSJim Jagielski }
464*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOrderByUnrelated()465*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsOrderByUnrelated(  ) throw(SQLException, RuntimeException)
466*b1cdbd2cSJim Jagielski {
467*b1cdbd2cSJim Jagielski 	return sal_False;
468*b1cdbd2cSJim Jagielski }
469*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsUnion()470*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsUnion(  ) throw(SQLException, RuntimeException)
471*b1cdbd2cSJim Jagielski {
472*b1cdbd2cSJim Jagielski 	return sal_False;
473*b1cdbd2cSJim Jagielski }
474*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsUnionAll()475*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsUnionAll(  ) throw(SQLException, RuntimeException)
476*b1cdbd2cSJim Jagielski {
477*b1cdbd2cSJim Jagielski 	return sal_False;
478*b1cdbd2cSJim Jagielski }
479*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsMixedCaseIdentifiers()480*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsMixedCaseIdentifiers(  ) throw(SQLException, RuntimeException)
481*b1cdbd2cSJim Jagielski {
482*b1cdbd2cSJim Jagielski 	return sal_False;
483*b1cdbd2cSJim Jagielski }
484*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsMixedCaseQuotedIdentifiers()485*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsMixedCaseQuotedIdentifiers(  ) throw(SQLException, RuntimeException)
486*b1cdbd2cSJim Jagielski {
487*b1cdbd2cSJim Jagielski 	return sal_False;
488*b1cdbd2cSJim Jagielski }
489*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
nullsAreSortedAtEnd()490*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::nullsAreSortedAtEnd(  ) throw(SQLException, RuntimeException)
491*b1cdbd2cSJim Jagielski {
492*b1cdbd2cSJim Jagielski 	return sal_False;
493*b1cdbd2cSJim Jagielski }
494*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
nullsAreSortedAtStart()495*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::nullsAreSortedAtStart(  ) throw(SQLException, RuntimeException)
496*b1cdbd2cSJim Jagielski {
497*b1cdbd2cSJim Jagielski 	return sal_False;
498*b1cdbd2cSJim Jagielski }
499*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
nullsAreSortedHigh()500*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::nullsAreSortedHigh(  ) throw(SQLException, RuntimeException)
501*b1cdbd2cSJim Jagielski {
502*b1cdbd2cSJim Jagielski 	return sal_False;
503*b1cdbd2cSJim Jagielski }
504*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
nullsAreSortedLow()505*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::nullsAreSortedLow(  ) throw(SQLException, RuntimeException)
506*b1cdbd2cSJim Jagielski {
507*b1cdbd2cSJim Jagielski 	return sal_False;
508*b1cdbd2cSJim Jagielski }
509*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSchemasInProcedureCalls()510*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSchemasInProcedureCalls(  ) throw(SQLException, RuntimeException)
511*b1cdbd2cSJim Jagielski {
512*b1cdbd2cSJim Jagielski 	return sal_False;
513*b1cdbd2cSJim Jagielski }
514*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSchemasInPrivilegeDefinitions()515*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSchemasInPrivilegeDefinitions(  ) throw(SQLException, RuntimeException)
516*b1cdbd2cSJim Jagielski {
517*b1cdbd2cSJim Jagielski 	return sal_False;
518*b1cdbd2cSJim Jagielski }
519*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCatalogsInProcedureCalls()520*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsCatalogsInProcedureCalls(  ) throw(SQLException, RuntimeException)
521*b1cdbd2cSJim Jagielski {
522*b1cdbd2cSJim Jagielski 	return sal_False;
523*b1cdbd2cSJim Jagielski }
524*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCatalogsInPrivilegeDefinitions()525*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsCatalogsInPrivilegeDefinitions(  ) throw(SQLException, RuntimeException)
526*b1cdbd2cSJim Jagielski {
527*b1cdbd2cSJim Jagielski 	return sal_False;
528*b1cdbd2cSJim Jagielski }
529*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCorrelatedSubqueries()530*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsCorrelatedSubqueries(  ) throw(SQLException, RuntimeException)
531*b1cdbd2cSJim Jagielski {
532*b1cdbd2cSJim Jagielski 	return sal_False;
533*b1cdbd2cSJim Jagielski }
534*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSubqueriesInComparisons()535*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSubqueriesInComparisons(  ) throw(SQLException, RuntimeException)
536*b1cdbd2cSJim Jagielski {
537*b1cdbd2cSJim Jagielski 	return sal_False;
538*b1cdbd2cSJim Jagielski }
539*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSubqueriesInExists()540*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSubqueriesInExists(  ) throw(SQLException, RuntimeException)
541*b1cdbd2cSJim Jagielski {
542*b1cdbd2cSJim Jagielski 	return sal_False;
543*b1cdbd2cSJim Jagielski }
544*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSubqueriesInIns()545*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSubqueriesInIns(  ) throw(SQLException, RuntimeException)
546*b1cdbd2cSJim Jagielski {
547*b1cdbd2cSJim Jagielski 	return sal_False;
548*b1cdbd2cSJim Jagielski }
549*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSubqueriesInQuantifieds()550*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSubqueriesInQuantifieds(  ) throw(SQLException, RuntimeException)
551*b1cdbd2cSJim Jagielski {
552*b1cdbd2cSJim Jagielski 	return sal_False;
553*b1cdbd2cSJim Jagielski }
554*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsANSI92IntermediateSQL()555*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsANSI92IntermediateSQL(  ) throw(SQLException, RuntimeException)
556*b1cdbd2cSJim Jagielski {
557*b1cdbd2cSJim Jagielski 	return sal_False;
558*b1cdbd2cSJim Jagielski }
559*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getURL()560*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getURL(  ) throw(SQLException, RuntimeException)
561*b1cdbd2cSJim Jagielski {
562*b1cdbd2cSJim Jagielski 	// if someday we support more than the default address book,
563*b1cdbd2cSJim Jagielski 	// this method should return the URL which was used to create it
564*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue = ::rtl::OUString::createFromAscii("sdbc:address:macab:");
565*b1cdbd2cSJim Jagielski 	return aValue;
566*b1cdbd2cSJim Jagielski }
567*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getUserName()568*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getUserName(  ) throw(SQLException, RuntimeException)
569*b1cdbd2cSJim Jagielski {
570*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue;
571*b1cdbd2cSJim Jagielski 	return aValue;
572*b1cdbd2cSJim Jagielski }
573*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDriverName()574*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getDriverName(  ) throw(SQLException, RuntimeException)
575*b1cdbd2cSJim Jagielski {
576*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue = ::rtl::OUString::createFromAscii("macab");
577*b1cdbd2cSJim Jagielski 	return aValue;
578*b1cdbd2cSJim Jagielski }
579*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDriverVersion()580*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getDriverVersion() throw(SQLException, RuntimeException)
581*b1cdbd2cSJim Jagielski {
582*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue = ::rtl::OUString::createFromAscii(MACAB_DRIVER_VERSION);
583*b1cdbd2cSJim Jagielski 	return aValue;
584*b1cdbd2cSJim Jagielski }
585*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDatabaseProductVersion()586*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getDatabaseProductVersion(  ) throw(SQLException, RuntimeException)
587*b1cdbd2cSJim Jagielski {
588*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue;
589*b1cdbd2cSJim Jagielski 	return aValue;
590*b1cdbd2cSJim Jagielski }
591*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDatabaseProductName()592*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getDatabaseProductName(  ) throw(SQLException, RuntimeException)
593*b1cdbd2cSJim Jagielski {
594*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue;
595*b1cdbd2cSJim Jagielski 	return aValue;
596*b1cdbd2cSJim Jagielski }
597*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getProcedureTerm()598*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getProcedureTerm(  ) throw(SQLException, RuntimeException)
599*b1cdbd2cSJim Jagielski {
600*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue;
601*b1cdbd2cSJim Jagielski 	return aValue;
602*b1cdbd2cSJim Jagielski }
603*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getSchemaTerm()604*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getSchemaTerm(  ) throw(SQLException, RuntimeException)
605*b1cdbd2cSJim Jagielski {
606*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue;
607*b1cdbd2cSJim Jagielski 	return aValue;
608*b1cdbd2cSJim Jagielski }
609*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDriverMajorVersion()610*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getDriverMajorVersion(  ) throw(RuntimeException)
611*b1cdbd2cSJim Jagielski {
612*b1cdbd2cSJim Jagielski 	return MACAB_DRIVER_VERSION_MAJOR;
613*b1cdbd2cSJim Jagielski }
614*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDefaultTransactionIsolation()615*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getDefaultTransactionIsolation(  ) throw(SQLException, RuntimeException)
616*b1cdbd2cSJim Jagielski {
617*b1cdbd2cSJim Jagielski 	return TransactionIsolation::NONE;
618*b1cdbd2cSJim Jagielski }
619*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDriverMinorVersion()620*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getDriverMinorVersion(  ) throw(RuntimeException)
621*b1cdbd2cSJim Jagielski {
622*b1cdbd2cSJim Jagielski 	return MACAB_DRIVER_VERSION_MINOR;
623*b1cdbd2cSJim Jagielski }
624*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getSQLKeywords()625*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getSQLKeywords(  ) throw(SQLException, RuntimeException)
626*b1cdbd2cSJim Jagielski {
627*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue;
628*b1cdbd2cSJim Jagielski 	return aValue;
629*b1cdbd2cSJim Jagielski }
630*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getSearchStringEscape()631*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getSearchStringEscape(  ) throw(SQLException, RuntimeException)
632*b1cdbd2cSJim Jagielski {
633*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue;
634*b1cdbd2cSJim Jagielski 	return aValue;
635*b1cdbd2cSJim Jagielski }
636*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getStringFunctions()637*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getStringFunctions(  ) throw(SQLException, RuntimeException)
638*b1cdbd2cSJim Jagielski {
639*b1cdbd2cSJim Jagielski 	return ::rtl::OUString();
640*b1cdbd2cSJim Jagielski }
641*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getTimeDateFunctions()642*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getTimeDateFunctions(  ) throw(SQLException, RuntimeException)
643*b1cdbd2cSJim Jagielski {
644*b1cdbd2cSJim Jagielski 	return ::rtl::OUString();
645*b1cdbd2cSJim Jagielski }
646*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getSystemFunctions()647*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getSystemFunctions(  ) throw(SQLException, RuntimeException)
648*b1cdbd2cSJim Jagielski {
649*b1cdbd2cSJim Jagielski 	return ::rtl::OUString();
650*b1cdbd2cSJim Jagielski }
651*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getNumericFunctions()652*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL MacabDatabaseMetaData::getNumericFunctions(  ) throw(SQLException, RuntimeException)
653*b1cdbd2cSJim Jagielski {
654*b1cdbd2cSJim Jagielski 	return ::rtl::OUString();
655*b1cdbd2cSJim Jagielski }
656*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsExtendedSQLGrammar()657*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsExtendedSQLGrammar(  ) throw(SQLException, RuntimeException)
658*b1cdbd2cSJim Jagielski {
659*b1cdbd2cSJim Jagielski 	return sal_False;
660*b1cdbd2cSJim Jagielski }
661*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCoreSQLGrammar()662*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsCoreSQLGrammar(  ) throw(SQLException, RuntimeException)
663*b1cdbd2cSJim Jagielski {
664*b1cdbd2cSJim Jagielski 	return sal_False;
665*b1cdbd2cSJim Jagielski }
666*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsMinimumSQLGrammar()667*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsMinimumSQLGrammar(  ) throw(SQLException, RuntimeException)
668*b1cdbd2cSJim Jagielski {
669*b1cdbd2cSJim Jagielski 	return sal_True;
670*b1cdbd2cSJim Jagielski }
671*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsFullOuterJoins()672*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsFullOuterJoins(  ) throw(SQLException, RuntimeException)
673*b1cdbd2cSJim Jagielski {
674*b1cdbd2cSJim Jagielski 	return sal_False;
675*b1cdbd2cSJim Jagielski }
676*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsLimitedOuterJoins()677*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsLimitedOuterJoins(  ) throw(SQLException, RuntimeException)
678*b1cdbd2cSJim Jagielski {
679*b1cdbd2cSJim Jagielski 	return sal_False;
680*b1cdbd2cSJim Jagielski }
681*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnsInGroupBy()682*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxColumnsInGroupBy(  ) throw(SQLException, RuntimeException)
683*b1cdbd2cSJim Jagielski {
684*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
685*b1cdbd2cSJim Jagielski 	return nValue;
686*b1cdbd2cSJim Jagielski }
687*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnsInOrderBy()688*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxColumnsInOrderBy(  ) throw(SQLException, RuntimeException)
689*b1cdbd2cSJim Jagielski {
690*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
691*b1cdbd2cSJim Jagielski 	return nValue;
692*b1cdbd2cSJim Jagielski }
693*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnsInSelect()694*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxColumnsInSelect(  ) throw(SQLException, RuntimeException)
695*b1cdbd2cSJim Jagielski {
696*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
697*b1cdbd2cSJim Jagielski 	return nValue;
698*b1cdbd2cSJim Jagielski }
699*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxUserNameLength()700*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxUserNameLength(  ) throw(SQLException, RuntimeException)
701*b1cdbd2cSJim Jagielski {
702*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
703*b1cdbd2cSJim Jagielski 	return nValue;
704*b1cdbd2cSJim Jagielski }
705*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsResultSetType(sal_Int32 setType)706*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsResultSetType( sal_Int32 setType ) throw(SQLException, RuntimeException)
707*b1cdbd2cSJim Jagielski {
708*b1cdbd2cSJim Jagielski 	switch (setType)
709*b1cdbd2cSJim Jagielski 	{
710*b1cdbd2cSJim Jagielski 		case ResultSetType::FORWARD_ONLY:
711*b1cdbd2cSJim Jagielski 		case ResultSetType::SCROLL_INSENSITIVE:
712*b1cdbd2cSJim Jagielski 			return sal_True;
713*b1cdbd2cSJim Jagielski 	}
714*b1cdbd2cSJim Jagielski 	return sal_False;
715*b1cdbd2cSJim Jagielski }
716*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsResultSetConcurrency(sal_Int32 setType,sal_Int32)717*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsResultSetConcurrency( sal_Int32 setType, sal_Int32 ) throw(SQLException, RuntimeException)
718*b1cdbd2cSJim Jagielski {
719*b1cdbd2cSJim Jagielski 	switch (setType)
720*b1cdbd2cSJim Jagielski 	{
721*b1cdbd2cSJim Jagielski 		case ResultSetType::FORWARD_ONLY:
722*b1cdbd2cSJim Jagielski 		case ResultSetType::SCROLL_INSENSITIVE:
723*b1cdbd2cSJim Jagielski 			return sal_True;
724*b1cdbd2cSJim Jagielski 	}
725*b1cdbd2cSJim Jagielski 	return sal_False;
726*b1cdbd2cSJim Jagielski }
727*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
ownUpdatesAreVisible(sal_Int32)728*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::ownUpdatesAreVisible( sal_Int32 ) throw(SQLException, RuntimeException)
729*b1cdbd2cSJim Jagielski {
730*b1cdbd2cSJim Jagielski 	return sal_False;
731*b1cdbd2cSJim Jagielski }
732*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
ownDeletesAreVisible(sal_Int32)733*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::ownDeletesAreVisible( sal_Int32 ) throw(SQLException, RuntimeException)
734*b1cdbd2cSJim Jagielski {
735*b1cdbd2cSJim Jagielski 	return sal_False;
736*b1cdbd2cSJim Jagielski }
737*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
ownInsertsAreVisible(sal_Int32)738*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::ownInsertsAreVisible( sal_Int32 ) throw(SQLException, RuntimeException)
739*b1cdbd2cSJim Jagielski {
740*b1cdbd2cSJim Jagielski 	return sal_False;
741*b1cdbd2cSJim Jagielski }
742*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
othersUpdatesAreVisible(sal_Int32)743*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::othersUpdatesAreVisible( sal_Int32 ) throw(SQLException, RuntimeException)
744*b1cdbd2cSJim Jagielski {
745*b1cdbd2cSJim Jagielski 	return sal_False;
746*b1cdbd2cSJim Jagielski }
747*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
othersDeletesAreVisible(sal_Int32)748*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::othersDeletesAreVisible( sal_Int32 ) throw(SQLException, RuntimeException)
749*b1cdbd2cSJim Jagielski {
750*b1cdbd2cSJim Jagielski 	return sal_False;
751*b1cdbd2cSJim Jagielski }
752*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
othersInsertsAreVisible(sal_Int32)753*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::othersInsertsAreVisible( sal_Int32 ) throw(SQLException, RuntimeException)
754*b1cdbd2cSJim Jagielski {
755*b1cdbd2cSJim Jagielski 	return sal_False;
756*b1cdbd2cSJim Jagielski }
757*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
updatesAreDetected(sal_Int32)758*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::updatesAreDetected( sal_Int32 ) throw(SQLException, RuntimeException)
759*b1cdbd2cSJim Jagielski {
760*b1cdbd2cSJim Jagielski 	return sal_False;
761*b1cdbd2cSJim Jagielski }
762*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
deletesAreDetected(sal_Int32)763*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::deletesAreDetected( sal_Int32 ) throw(SQLException, RuntimeException)
764*b1cdbd2cSJim Jagielski {
765*b1cdbd2cSJim Jagielski 	return sal_False;
766*b1cdbd2cSJim Jagielski }
767*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
insertsAreDetected(sal_Int32)768*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::insertsAreDetected( sal_Int32 ) throw(SQLException, RuntimeException)
769*b1cdbd2cSJim Jagielski {
770*b1cdbd2cSJim Jagielski 	return sal_False;
771*b1cdbd2cSJim Jagielski }
772*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsBatchUpdates()773*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL MacabDatabaseMetaData::supportsBatchUpdates(  ) throw(SQLException, RuntimeException)
774*b1cdbd2cSJim Jagielski {
775*b1cdbd2cSJim Jagielski 	return sal_False;
776*b1cdbd2cSJim Jagielski }
777*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getConnection()778*b1cdbd2cSJim Jagielski Reference< XConnection > SAL_CALL MacabDatabaseMetaData::getConnection(  ) throw(SQLException, RuntimeException)
779*b1cdbd2cSJim Jagielski {
780*b1cdbd2cSJim Jagielski 	return (Reference< XConnection >) m_xConnection.get();
781*b1cdbd2cSJim Jagielski }
782*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getTableTypes()783*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getTableTypes(  ) throw(SQLException, RuntimeException)
784*b1cdbd2cSJim Jagielski {
785*b1cdbd2cSJim Jagielski 	::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eTableTypes);
786*b1cdbd2cSJim Jagielski 	Reference< XResultSet > xRef = pResult;
787*b1cdbd2cSJim Jagielski 
788*b1cdbd2cSJim Jagielski 	static ODatabaseMetaDataResultSet::ORows aRows;
789*b1cdbd2cSJim Jagielski 	static const ::rtl::OUString aTable(::rtl::OUString::createFromAscii("TABLE"));
790*b1cdbd2cSJim Jagielski 
791*b1cdbd2cSJim Jagielski 	if (aRows.empty())
792*b1cdbd2cSJim Jagielski 	{
793*b1cdbd2cSJim Jagielski 		ODatabaseMetaDataResultSet::ORow aRow(2);
794*b1cdbd2cSJim Jagielski 		aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue();
795*b1cdbd2cSJim Jagielski 		aRow[1] = new ORowSetValueDecorator(aTable);
796*b1cdbd2cSJim Jagielski 		aRows.push_back(aRow);
797*b1cdbd2cSJim Jagielski 	}
798*b1cdbd2cSJim Jagielski 	pResult->setRows(aRows);
799*b1cdbd2cSJim Jagielski 	return xRef;
800*b1cdbd2cSJim Jagielski }
801*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getTypeInfo()802*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getTypeInfo(  ) throw(SQLException, RuntimeException)
803*b1cdbd2cSJim Jagielski {
804*b1cdbd2cSJim Jagielski 	ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eTypeInfo);
805*b1cdbd2cSJim Jagielski 	Reference< XResultSet > xRef = pResult;
806*b1cdbd2cSJim Jagielski 
807*b1cdbd2cSJim Jagielski 	static ODatabaseMetaDataResultSet::ORows aRows;
808*b1cdbd2cSJim Jagielski 	if (aRows.empty())
809*b1cdbd2cSJim Jagielski 	{
810*b1cdbd2cSJim Jagielski 		ODatabaseMetaDataResultSet::ORow aRow(19);
811*b1cdbd2cSJim Jagielski 
812*b1cdbd2cSJim Jagielski 		// We support four types: char, timestamp, integer, float
813*b1cdbd2cSJim Jagielski 		aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue();
814*b1cdbd2cSJim Jagielski 		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("CHAR"));
815*b1cdbd2cSJim Jagielski 		aRow[2] = new ORowSetValueDecorator(DataType::CHAR);
816*b1cdbd2cSJim Jagielski 		aRow[3] = new ORowSetValueDecorator((sal_Int32) 254);
817*b1cdbd2cSJim Jagielski 		aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue();
818*b1cdbd2cSJim Jagielski 		aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue();
819*b1cdbd2cSJim Jagielski 		aRow[6] = ODatabaseMetaDataResultSet::getEmptyValue();
820*b1cdbd2cSJim Jagielski 		aRow[7] = new ORowSetValueDecorator((sal_Int32) ColumnValue::NULLABLE);
821*b1cdbd2cSJim Jagielski 		aRow[8] = ODatabaseMetaDataResultSet::get1Value();
822*b1cdbd2cSJim Jagielski 		aRow[9] = new ORowSetValueDecorator((sal_Int32) ColumnSearch::CHAR);
823*b1cdbd2cSJim Jagielski 		aRow[10] = ODatabaseMetaDataResultSet::get1Value();
824*b1cdbd2cSJim Jagielski 		aRow[11] = ODatabaseMetaDataResultSet::get0Value();
825*b1cdbd2cSJim Jagielski 		aRow[12] = ODatabaseMetaDataResultSet::get0Value();
826*b1cdbd2cSJim Jagielski 		aRow[13] = ODatabaseMetaDataResultSet::getEmptyValue();
827*b1cdbd2cSJim Jagielski 		aRow[14] = ODatabaseMetaDataResultSet::get0Value();
828*b1cdbd2cSJim Jagielski 		aRow[15] = ODatabaseMetaDataResultSet::get0Value();
829*b1cdbd2cSJim Jagielski 		aRow[16] = ODatabaseMetaDataResultSet::getEmptyValue();
830*b1cdbd2cSJim Jagielski 		aRow[17] = ODatabaseMetaDataResultSet::getEmptyValue();
831*b1cdbd2cSJim Jagielski 		aRow[18] = new ORowSetValueDecorator((sal_Int32) 10);
832*b1cdbd2cSJim Jagielski 
833*b1cdbd2cSJim Jagielski 		aRows.push_back(aRow);
834*b1cdbd2cSJim Jagielski 
835*b1cdbd2cSJim Jagielski 		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("TIMESTAMP"));
836*b1cdbd2cSJim Jagielski 		aRow[2] = new ORowSetValueDecorator(DataType::TIMESTAMP);
837*b1cdbd2cSJim Jagielski 		aRow[3] = new ORowSetValueDecorator((sal_Int32)19);
838*b1cdbd2cSJim Jagielski 		aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue();
839*b1cdbd2cSJim Jagielski 		aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue();
840*b1cdbd2cSJim Jagielski 		aRows.push_back(aRow);
841*b1cdbd2cSJim Jagielski 
842*b1cdbd2cSJim Jagielski 		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("INTEGER"));
843*b1cdbd2cSJim Jagielski 		aRow[2] = new ORowSetValueDecorator(DataType::INTEGER);
844*b1cdbd2cSJim Jagielski 		aRow[3] = new ORowSetValueDecorator((sal_Int32)20);
845*b1cdbd2cSJim Jagielski 		aRow[15] = new ORowSetValueDecorator((sal_Int32)20);
846*b1cdbd2cSJim Jagielski 		aRows.push_back(aRow);
847*b1cdbd2cSJim Jagielski 
848*b1cdbd2cSJim Jagielski 		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("FLOAT"));
849*b1cdbd2cSJim Jagielski 		aRow[2] = new ORowSetValueDecorator(DataType::FLOAT);
850*b1cdbd2cSJim Jagielski 		aRow[3] = new ORowSetValueDecorator((sal_Int32)20);
851*b1cdbd2cSJim Jagielski 		aRow[15] = new ORowSetValueDecorator((sal_Int32)15);
852*b1cdbd2cSJim Jagielski 		aRows.push_back(aRow);
853*b1cdbd2cSJim Jagielski 	}
854*b1cdbd2cSJim Jagielski 	pResult->setRows(aRows);
855*b1cdbd2cSJim Jagielski 	return xRef;
856*b1cdbd2cSJim Jagielski }
857*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getCatalogs()858*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getCatalogs(  ) throw(SQLException, RuntimeException)
859*b1cdbd2cSJim Jagielski {
860*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eCatalogs );
861*b1cdbd2cSJim Jagielski }
862*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
getSchemas()863*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getSchemas(  ) throw(SQLException, RuntimeException)
864*b1cdbd2cSJim Jagielski {
865*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eSchemas );
866*b1cdbd2cSJim Jagielski }
867*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getColumnPrivileges(const Any &,const::rtl::OUString &,const::rtl::OUString &,const::rtl::OUString &)868*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getColumnPrivileges(
869*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&, const ::rtl::OUString&,
870*b1cdbd2cSJim Jagielski 	const ::rtl::OUString& ) throw(SQLException, RuntimeException)
871*b1cdbd2cSJim Jagielski {
872*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eColumnPrivileges );
873*b1cdbd2cSJim Jagielski }
874*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getColumns(const Any &,const::rtl::OUString &,const::rtl::OUString & tableNamePattern,const::rtl::OUString & columnNamePattern)875*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getColumns(
876*b1cdbd2cSJim Jagielski 	const Any&,
877*b1cdbd2cSJim Jagielski 	const ::rtl::OUString&,
878*b1cdbd2cSJim Jagielski 	const ::rtl::OUString& tableNamePattern,
879*b1cdbd2cSJim Jagielski 	const ::rtl::OUString& columnNamePattern) throw(SQLException, RuntimeException)
880*b1cdbd2cSJim Jagielski {
881*b1cdbd2cSJim Jagielski 	::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eColumns);
882*b1cdbd2cSJim Jagielski 	Reference< XResultSet > xRef = pResult;
883*b1cdbd2cSJim Jagielski 	MacabRecords *aRecords;
884*b1cdbd2cSJim Jagielski 	::rtl::OUString sTableName;
885*b1cdbd2cSJim Jagielski 
886*b1cdbd2cSJim Jagielski 	aRecords = m_xConnection->getAddressBook()->getMacabRecordsMatch(tableNamePattern);
887*b1cdbd2cSJim Jagielski 
888*b1cdbd2cSJim Jagielski 	ODatabaseMetaDataResultSet::ORows aRows;
889*b1cdbd2cSJim Jagielski 	if(aRecords != NULL)
890*b1cdbd2cSJim Jagielski 	{
891*b1cdbd2cSJim Jagielski 		MacabHeader *aHeader = aRecords->getHeader();
892*b1cdbd2cSJim Jagielski 		sTableName = aRecords->getName();
893*b1cdbd2cSJim Jagielski 
894*b1cdbd2cSJim Jagielski 		ODatabaseMetaDataResultSet::ORow aRow(19);
895*b1cdbd2cSJim Jagielski 
896*b1cdbd2cSJim Jagielski 		aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue();
897*b1cdbd2cSJim Jagielski 		aRow[1] = ODatabaseMetaDataResultSet::getEmptyValue();
898*b1cdbd2cSJim Jagielski 		aRow[2] = ODatabaseMetaDataResultSet::getEmptyValue();
899*b1cdbd2cSJim Jagielski 		aRow[3] = new ORowSetValueDecorator(sTableName);
900*b1cdbd2cSJim Jagielski 		aRow[8] = ODatabaseMetaDataResultSet::getEmptyValue();
901*b1cdbd2cSJim Jagielski 		aRow[9] = ODatabaseMetaDataResultSet::get0Value();
902*b1cdbd2cSJim Jagielski 		aRow[10] = new ORowSetValueDecorator((sal_Int32) 10);
903*b1cdbd2cSJim Jagielski 		aRow[11] = ODatabaseMetaDataResultSet::get1Value();
904*b1cdbd2cSJim Jagielski 		aRow[12] = ODatabaseMetaDataResultSet::getEmptyValue();
905*b1cdbd2cSJim Jagielski 		aRow[13] = ODatabaseMetaDataResultSet::getEmptyValue();
906*b1cdbd2cSJim Jagielski 		aRow[14] = ODatabaseMetaDataResultSet::getEmptyValue();
907*b1cdbd2cSJim Jagielski 		aRow[15] = ODatabaseMetaDataResultSet::getEmptyValue();
908*b1cdbd2cSJim Jagielski 		aRow[16] = new ORowSetValueDecorator((sal_Int32) 254);
909*b1cdbd2cSJim Jagielski 		aRow[18] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("YES"));
910*b1cdbd2cSJim Jagielski 
911*b1cdbd2cSJim Jagielski 		sal_Int32 nPosition = 1;
912*b1cdbd2cSJim Jagielski 		::rtl::OUString sName;
913*b1cdbd2cSJim Jagielski 
914*b1cdbd2cSJim Jagielski 		MacabHeader::iterator aField;
915*b1cdbd2cSJim Jagielski 
916*b1cdbd2cSJim Jagielski 		for (	aField = aHeader->begin();
917*b1cdbd2cSJim Jagielski 				aField != aHeader->end();
918*b1cdbd2cSJim Jagielski 				++aField, ++nPosition)
919*b1cdbd2cSJim Jagielski 		{
920*b1cdbd2cSJim Jagielski 
921*b1cdbd2cSJim Jagielski 			sName = CFStringToOUString((CFStringRef) (*aField)->value);
922*b1cdbd2cSJim Jagielski 			if (match(columnNamePattern, sName, '\0'))
923*b1cdbd2cSJim Jagielski 			{
924*b1cdbd2cSJim Jagielski 				aRow[4] = new ORowSetValueDecorator(sName);
925*b1cdbd2cSJim Jagielski 				aRow[17] = new ORowSetValueDecorator(nPosition);
926*b1cdbd2cSJim Jagielski 				switch((*aField)->type)
927*b1cdbd2cSJim Jagielski 				{
928*b1cdbd2cSJim Jagielski 					case kABStringProperty:
929*b1cdbd2cSJim Jagielski 						aRow[5] = new ORowSetValueDecorator(DataType::CHAR);
930*b1cdbd2cSJim Jagielski 						aRow[6] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("CHAR"));
931*b1cdbd2cSJim Jagielski 						aRow[7] = new ORowSetValueDecorator((sal_Int32) 256);
932*b1cdbd2cSJim Jagielski 						aRows.push_back(aRow);
933*b1cdbd2cSJim Jagielski 						break;
934*b1cdbd2cSJim Jagielski 					case kABDateProperty:
935*b1cdbd2cSJim Jagielski 						aRow[5] = new ORowSetValueDecorator(DataType::TIMESTAMP);
936*b1cdbd2cSJim Jagielski 						aRow[6] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("TIMESTAMP"));
937*b1cdbd2cSJim Jagielski 						aRows.push_back(aRow);
938*b1cdbd2cSJim Jagielski 						break;
939*b1cdbd2cSJim Jagielski 					case kABIntegerProperty:
940*b1cdbd2cSJim Jagielski 						aRow[5] = new ORowSetValueDecorator(DataType::INTEGER);
941*b1cdbd2cSJim Jagielski 						aRow[6] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("INTEGER"));
942*b1cdbd2cSJim Jagielski 						aRow[7] = new ORowSetValueDecorator((sal_Int32) 20);
943*b1cdbd2cSJim Jagielski 						aRows.push_back(aRow);
944*b1cdbd2cSJim Jagielski 						break;
945*b1cdbd2cSJim Jagielski 					case kABRealProperty:
946*b1cdbd2cSJim Jagielski 						aRow[5] = new ORowSetValueDecorator(DataType::FLOAT);
947*b1cdbd2cSJim Jagielski 						aRow[6] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("FLOAT"));
948*b1cdbd2cSJim Jagielski 						aRow[7] = new ORowSetValueDecorator((sal_Int32) 15);
949*b1cdbd2cSJim Jagielski 						aRows.push_back(aRow);
950*b1cdbd2cSJim Jagielski 						break;
951*b1cdbd2cSJim Jagielski 					default:
952*b1cdbd2cSJim Jagielski 						;
953*b1cdbd2cSJim Jagielski 						// shouldn't happen -- throw an error...?
954*b1cdbd2cSJim Jagielski 				}
955*b1cdbd2cSJim Jagielski 			}
956*b1cdbd2cSJim Jagielski 		}
957*b1cdbd2cSJim Jagielski 	}
958*b1cdbd2cSJim Jagielski 	pResult->setRows(aRows);
959*b1cdbd2cSJim Jagielski 	return xRef;
960*b1cdbd2cSJim Jagielski }
961*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getTables(const Any &,const::rtl::OUString &,const::rtl::OUString &,const Sequence<::rtl::OUString> & types)962*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getTables(
963*b1cdbd2cSJim Jagielski 	const Any&,
964*b1cdbd2cSJim Jagielski 	const ::rtl::OUString&,
965*b1cdbd2cSJim Jagielski 	const ::rtl::OUString&,
966*b1cdbd2cSJim Jagielski 	const Sequence< ::rtl::OUString >& types) throw(SQLException, RuntimeException)
967*b1cdbd2cSJim Jagielski {
968*b1cdbd2cSJim Jagielski 	ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTables);
969*b1cdbd2cSJim Jagielski 	Reference< XResultSet > xRef = pResult;
970*b1cdbd2cSJim Jagielski 
971*b1cdbd2cSJim Jagielski 	// check whether we have tables in the requested types
972*b1cdbd2cSJim Jagielski 	// for the moment, we answer only the "TABLE" table type
973*b1cdbd2cSJim Jagielski 	// when no types are given at all, we return all the tables
974*b1cdbd2cSJim Jagielski 	static const ::rtl::OUString aTable(::rtl::OUString::createFromAscii("TABLE"));
975*b1cdbd2cSJim Jagielski 	sal_Bool bTableFound = sal_False;
976*b1cdbd2cSJim Jagielski 	const ::rtl::OUString* p = types.getConstArray(),
977*b1cdbd2cSJim Jagielski 	                     * pEnd = p + types.getLength();
978*b1cdbd2cSJim Jagielski 
979*b1cdbd2cSJim Jagielski 	if (p == pEnd)
980*b1cdbd2cSJim Jagielski 	{
981*b1cdbd2cSJim Jagielski 		bTableFound = sal_True;
982*b1cdbd2cSJim Jagielski 	}
983*b1cdbd2cSJim Jagielski 	else while (p < pEnd)
984*b1cdbd2cSJim Jagielski 	{
985*b1cdbd2cSJim Jagielski 		if (match(*p, aTable, '\0'))
986*b1cdbd2cSJim Jagielski 		{
987*b1cdbd2cSJim Jagielski 			bTableFound = sal_True;
988*b1cdbd2cSJim Jagielski 			break;
989*b1cdbd2cSJim Jagielski 		}
990*b1cdbd2cSJim Jagielski 		p++;
991*b1cdbd2cSJim Jagielski 	}
992*b1cdbd2cSJim Jagielski 	if (!bTableFound)
993*b1cdbd2cSJim Jagielski 		return xRef;
994*b1cdbd2cSJim Jagielski 
995*b1cdbd2cSJim Jagielski 	static ODatabaseMetaDataResultSet::ORows aRows;
996*b1cdbd2cSJim Jagielski 
997*b1cdbd2cSJim Jagielski 	if (aRows.empty())
998*b1cdbd2cSJim Jagielski 	{
999*b1cdbd2cSJim Jagielski 		ODatabaseMetaDataResultSet::ORow aRow(6);
1000*b1cdbd2cSJim Jagielski 
1001*b1cdbd2cSJim Jagielski 		MacabRecords *xRecords = m_xConnection->getAddressBook()->getMacabRecords();
1002*b1cdbd2cSJim Jagielski 		::std::vector<MacabGroup *> xGroups = m_xConnection->getAddressBook()->getMacabGroups();
1003*b1cdbd2cSJim Jagielski 		sal_Int32 i, nGroups;
1004*b1cdbd2cSJim Jagielski 		nGroups = xGroups.size();
1005*b1cdbd2cSJim Jagielski 
1006*b1cdbd2cSJim Jagielski 		aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue();
1007*b1cdbd2cSJim Jagielski 		aRow[1] = ODatabaseMetaDataResultSet::getEmptyValue();
1008*b1cdbd2cSJim Jagielski 		aRow[2] = ODatabaseMetaDataResultSet::getEmptyValue();
1009*b1cdbd2cSJim Jagielski 		aRow[3] = new ORowSetValueDecorator(xRecords->getName());
1010*b1cdbd2cSJim Jagielski 		aRow[4] = new ORowSetValueDecorator(aTable);
1011*b1cdbd2cSJim Jagielski 		aRow[5] = ODatabaseMetaDataResultSet::getEmptyValue();
1012*b1cdbd2cSJim Jagielski 		aRows.push_back(aRow);
1013*b1cdbd2cSJim Jagielski 
1014*b1cdbd2cSJim Jagielski 		for(i = 0; i < nGroups; i++)
1015*b1cdbd2cSJim Jagielski 		{
1016*b1cdbd2cSJim Jagielski 			aRow[3] = new ORowSetValueDecorator(xGroups[i]->getName());
1017*b1cdbd2cSJim Jagielski 			aRows.push_back(aRow);
1018*b1cdbd2cSJim Jagielski 		}
1019*b1cdbd2cSJim Jagielski 	}
1020*b1cdbd2cSJim Jagielski 	pResult->setRows(aRows);
1021*b1cdbd2cSJim Jagielski 	return xRef;
1022*b1cdbd2cSJim Jagielski }
1023*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getProcedureColumns(const Any &,const::rtl::OUString &,const::rtl::OUString &,const::rtl::OUString &)1024*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getProcedureColumns(
1025*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&,
1026*b1cdbd2cSJim Jagielski 	const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException)
1027*b1cdbd2cSJim Jagielski {
1028*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eProcedureColumns );
1029*b1cdbd2cSJim Jagielski }
1030*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getProcedures(const Any &,const::rtl::OUString &,const::rtl::OUString &)1031*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getProcedures(
1032*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&,
1033*b1cdbd2cSJim Jagielski 	const ::rtl::OUString& ) throw(SQLException, RuntimeException)
1034*b1cdbd2cSJim Jagielski {
1035*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eProcedures );
1036*b1cdbd2cSJim Jagielski }
1037*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getVersionColumns(const Any &,const::rtl::OUString &,const::rtl::OUString & table)1038*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getVersionColumns(
1039*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&, const ::rtl::OUString& table ) throw(SQLException, RuntimeException)
1040*b1cdbd2cSJim Jagielski {
1041*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eVersionColumns );
1042*b1cdbd2cSJim Jagielski 
1043*b1cdbd2cSJim Jagielski 	::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eVersionColumns);
1044*b1cdbd2cSJim Jagielski 	Reference< XResultSet > xRef = pResult;
1045*b1cdbd2cSJim Jagielski 
1046*b1cdbd2cSJim Jagielski 	ODatabaseMetaDataResultSet::ORows aRows;
1047*b1cdbd2cSJim Jagielski 
1048*b1cdbd2cSJim Jagielski 	if (m_xConnection->getAddressBook()->getMacabRecords(table) != NULL)
1049*b1cdbd2cSJim Jagielski 	{
1050*b1cdbd2cSJim Jagielski 		ODatabaseMetaDataResultSet::ORow aRow( 9 );
1051*b1cdbd2cSJim Jagielski 
1052*b1cdbd2cSJim Jagielski 		::rtl::OUString sName = CFStringToOUString(kABModificationDateProperty);
1053*b1cdbd2cSJim Jagielski 
1054*b1cdbd2cSJim Jagielski 		aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue();
1055*b1cdbd2cSJim Jagielski 		aRow[1] = ODatabaseMetaDataResultSet::getEmptyValue();
1056*b1cdbd2cSJim Jagielski 		aRow[2] = new ORowSetValueDecorator(sName);
1057*b1cdbd2cSJim Jagielski 		aRow[3] = new ORowSetValueDecorator(DataType::TIMESTAMP);
1058*b1cdbd2cSJim Jagielski 		aRow[4] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("TIMESTAMP"));
1059*b1cdbd2cSJim Jagielski 
1060*b1cdbd2cSJim Jagielski 		aRow[5] = ODatabaseMetaDataResultSet::getEmptyValue();
1061*b1cdbd2cSJim Jagielski 		aRow[6] = ODatabaseMetaDataResultSet::getEmptyValue();
1062*b1cdbd2cSJim Jagielski 		aRow[7] = ODatabaseMetaDataResultSet::getEmptyValue();
1063*b1cdbd2cSJim Jagielski 		aRow[8] = ODatabaseMetaDataResultSet::getEmptyValue();
1064*b1cdbd2cSJim Jagielski 
1065*b1cdbd2cSJim Jagielski 		aRows.push_back(aRow);
1066*b1cdbd2cSJim Jagielski 	}
1067*b1cdbd2cSJim Jagielski 	pResult->setRows(aRows);
1068*b1cdbd2cSJim Jagielski 	return xRef;
1069*b1cdbd2cSJim Jagielski }
1070*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getExportedKeys(const Any &,const::rtl::OUString &,const::rtl::OUString &)1071*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getExportedKeys(
1072*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException)
1073*b1cdbd2cSJim Jagielski {
1074*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eExportedKeys );
1075*b1cdbd2cSJim Jagielski }
1076*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getImportedKeys(const Any &,const::rtl::OUString &,const::rtl::OUString &)1077*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getImportedKeys(
1078*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException)
1079*b1cdbd2cSJim Jagielski {
1080*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eImportedKeys );
1081*b1cdbd2cSJim Jagielski }
1082*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getPrimaryKeys(const Any &,const::rtl::OUString &,const::rtl::OUString &)1083*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getPrimaryKeys(
1084*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException)
1085*b1cdbd2cSJim Jagielski {
1086*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::ePrimaryKeys );
1087*b1cdbd2cSJim Jagielski }
1088*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getIndexInfo(const Any &,const::rtl::OUString &,const::rtl::OUString &,sal_Bool,sal_Bool)1089*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getIndexInfo(
1090*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&, const ::rtl::OUString&,
1091*b1cdbd2cSJim Jagielski 	sal_Bool, sal_Bool ) throw(SQLException, RuntimeException)
1092*b1cdbd2cSJim Jagielski {
1093*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eIndexInfo );
1094*b1cdbd2cSJim Jagielski }
1095*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getBestRowIdentifier(const Any &,const::rtl::OUString &,const::rtl::OUString &,sal_Int32,sal_Bool)1096*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getBestRowIdentifier(
1097*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&, const ::rtl::OUString&, sal_Int32,
1098*b1cdbd2cSJim Jagielski 	sal_Bool ) throw(SQLException, RuntimeException)
1099*b1cdbd2cSJim Jagielski {
1100*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eBestRowIdentifier );
1101*b1cdbd2cSJim Jagielski }
1102*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getTablePrivileges(const Any &,const::rtl::OUString &,const::rtl::OUString &)1103*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getTablePrivileges(
1104*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException)
1105*b1cdbd2cSJim Jagielski {
1106*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTablePrivileges );
1107*b1cdbd2cSJim Jagielski }
1108*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getCrossReference(const Any &,const::rtl::OUString &,const::rtl::OUString &,const Any &,const::rtl::OUString &,const::rtl::OUString &)1109*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getCrossReference(
1110*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&,
1111*b1cdbd2cSJim Jagielski 	const ::rtl::OUString&, const Any&,
1112*b1cdbd2cSJim Jagielski 	const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException)
1113*b1cdbd2cSJim Jagielski {
1114*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eCrossReference );
1115*b1cdbd2cSJim Jagielski }
1116*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getUDTs(const Any &,const::rtl::OUString &,const::rtl::OUString &,const Sequence<sal_Int32> &)1117*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getUDTs( const Any&, const ::rtl::OUString&, const ::rtl::OUString&, const Sequence< sal_Int32 >& ) throw(SQLException, RuntimeException)
1118*b1cdbd2cSJim Jagielski {
1119*b1cdbd2cSJim Jagielski 	OSL_ENSURE(0,"Not implemented yet!");
1120*b1cdbd2cSJim Jagielski 	throw SQLException();
1121*b1cdbd2cSJim Jagielski }
1122*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
1123