xref: /trunk/main/connectivity/source/commontools/FDatabaseMetaDataResultSetMetaData.cxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_connectivity.hxx"
30 #include "FDatabaseMetaDataResultSetMetaData.hxx"
31 #include <com/sun/star/sdbc/DataType.hpp>
32 #include <com/sun/star/sdbc/ProcedureResult.hpp>
33 #include <com/sun/star/sdbc/ColumnValue.hpp>
34 
35 using namespace connectivity;
36 using namespace ::com::sun::star::beans;
37 using namespace ::com::sun::star::uno;
38 using namespace ::com::sun::star::sdbcx;
39 using namespace ::com::sun::star::sdbc;
40 using namespace ::com::sun::star::container;
41 using namespace ::com::sun::star::lang;
42 
43 // -------------------------------------------------------------------------
44 ODatabaseMetaDataResultSetMetaData::~ODatabaseMetaDataResultSetMetaData()
45 {
46 }
47 // -------------------------------------------------------------------------
48 sal_Int32 SAL_CALL ODatabaseMetaDataResultSetMetaData::getColumnDisplaySize( sal_Int32 column ) throw(SQLException, RuntimeException)
49 {
50     if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
51         return (*m_mColumnsIter).second.getColumnDisplaySize();
52 
53     return 0;
54 }
55 // -------------------------------------------------------------------------
56 
57 sal_Int32 SAL_CALL ODatabaseMetaDataResultSetMetaData::getColumnType( sal_Int32 column ) throw(SQLException, RuntimeException)
58 {
59     if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
60         return (*m_mColumnsIter).second.getColumnType();
61     return 1;
62 }
63 // -------------------------------------------------------------------------
64 
65 sal_Int32 SAL_CALL ODatabaseMetaDataResultSetMetaData::getColumnCount(  ) throw(SQLException, RuntimeException)
66 {
67     return m_mColumns.size();
68 }
69 // -------------------------------------------------------------------------
70 
71 sal_Bool SAL_CALL ODatabaseMetaDataResultSetMetaData::isCaseSensitive( sal_Int32 column ) throw(SQLException, RuntimeException)
72 {
73     if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
74         return (*m_mColumnsIter).second.isCaseSensitive();
75     return sal_True;
76 }
77 // -------------------------------------------------------------------------
78 
79 ::rtl::OUString SAL_CALL ODatabaseMetaDataResultSetMetaData::getSchemaName( sal_Int32 /*column*/ ) throw(SQLException, RuntimeException)
80 {
81     return ::rtl::OUString();
82 }
83 // -------------------------------------------------------------------------
84 
85 ::rtl::OUString SAL_CALL ODatabaseMetaDataResultSetMetaData::getColumnName( sal_Int32 column ) throw(SQLException, RuntimeException)
86 {
87     if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
88         return (*m_mColumnsIter).second.getColumnName();
89     return ::rtl::OUString();
90 }
91 // -------------------------------------------------------------------------
92 ::rtl::OUString SAL_CALL ODatabaseMetaDataResultSetMetaData::getTableName( sal_Int32 column ) throw(SQLException, RuntimeException)
93 {
94     if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
95         return (*m_mColumnsIter).second.getTableName();
96     return ::rtl::OUString();
97 }
98 // -------------------------------------------------------------------------
99 ::rtl::OUString SAL_CALL ODatabaseMetaDataResultSetMetaData::getCatalogName( sal_Int32 /*column*/ ) throw(SQLException, RuntimeException)
100 {
101     return ::rtl::OUString();
102 }
103 // -------------------------------------------------------------------------
104 ::rtl::OUString SAL_CALL ODatabaseMetaDataResultSetMetaData::getColumnTypeName( sal_Int32 column ) throw(SQLException, RuntimeException)
105 {
106     if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
107         return (*m_mColumnsIter).second.getColumnTypeName();
108     return ::rtl::OUString();
109 }
110 // -------------------------------------------------------------------------
111 ::rtl::OUString SAL_CALL ODatabaseMetaDataResultSetMetaData::getColumnLabel( sal_Int32 column ) throw(SQLException, RuntimeException)
112 {
113     if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
114         return (*m_mColumnsIter).second.getColumnLabel();
115     return getColumnName(column);
116 }
117 // -------------------------------------------------------------------------
118 ::rtl::OUString SAL_CALL ODatabaseMetaDataResultSetMetaData::getColumnServiceName( sal_Int32 column ) throw(SQLException, RuntimeException)
119 {
120     if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
121         return (*m_mColumnsIter).second.getColumnServiceName();
122     return ::rtl::OUString();
123 }
124 // -------------------------------------------------------------------------
125 
126 sal_Bool SAL_CALL ODatabaseMetaDataResultSetMetaData::isCurrency( sal_Int32 column ) throw(SQLException, RuntimeException)
127 {
128     if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
129         return (*m_mColumnsIter).second.isCurrency();
130     return sal_False;
131 }
132 // -------------------------------------------------------------------------
133 
134 sal_Bool SAL_CALL ODatabaseMetaDataResultSetMetaData::isAutoIncrement( sal_Int32 column ) throw(SQLException, RuntimeException)
135 {
136     if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
137         return (*m_mColumnsIter).second.isAutoIncrement();
138     return sal_False;
139 }
140 // -------------------------------------------------------------------------
141 
142 
143 sal_Bool SAL_CALL ODatabaseMetaDataResultSetMetaData::isSigned( sal_Int32 column ) throw(SQLException, RuntimeException)
144 {
145     if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
146         return (*m_mColumnsIter).second.isSigned();
147     return sal_False;
148 }
149 // -------------------------------------------------------------------------
150 sal_Int32 SAL_CALL ODatabaseMetaDataResultSetMetaData::getPrecision( sal_Int32 column ) throw(SQLException, RuntimeException)
151 {
152     if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
153         return (*m_mColumnsIter).second.getPrecision();
154     return 0;
155 }
156 // -------------------------------------------------------------------------
157 sal_Int32 SAL_CALL ODatabaseMetaDataResultSetMetaData::getScale( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
158 {
159     if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
160         return (*m_mColumnsIter).second.getScale();
161 
162     return 0;
163 }
164 // -------------------------------------------------------------------------
165 
166 sal_Int32 SAL_CALL ODatabaseMetaDataResultSetMetaData::isNullable( sal_Int32 column ) throw(SQLException, RuntimeException)
167 {
168     if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
169         return (*m_mColumnsIter).second.isNullable();
170 
171     return sal_False;
172 }
173 // -------------------------------------------------------------------------
174 
175 sal_Bool SAL_CALL ODatabaseMetaDataResultSetMetaData::isSearchable( sal_Int32 column ) throw(SQLException, RuntimeException)
176 {
177     if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
178         return (*m_mColumnsIter).second.isSearchable();
179     return sal_True;
180 }
181 // -------------------------------------------------------------------------
182 
183 sal_Bool SAL_CALL ODatabaseMetaDataResultSetMetaData::isReadOnly( sal_Int32 /*column*/ ) throw(SQLException, RuntimeException)
184 {
185 //  if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
186 //      return (*m_mColumnsIter).second.isReadOnly();
187 
188     return sal_True;
189 }
190 // -------------------------------------------------------------------------
191 
192 sal_Bool SAL_CALL ODatabaseMetaDataResultSetMetaData::isDefinitelyWritable( sal_Int32 /*column*/ ) throw(SQLException, RuntimeException)
193 {
194 //  if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
195 //      return (*m_mColumnsIter).second.isDefinitelyWritable();
196 
197     return sal_False;
198 ;
199 }
200 // -------------------------------------------------------------------------
201 sal_Bool SAL_CALL ODatabaseMetaDataResultSetMetaData::isWritable( sal_Int32 column ) throw(SQLException, RuntimeException)
202 {
203 //  if(m_mColumns.size() && (m_mColumnsIter = m_mColumns.find(column)) != m_mColumns.end())
204 //      return (*m_mColumnsIter).second.isWritable();
205     return isDefinitelyWritable(column);
206 }
207 // -------------------------------------------------------------------------
208 void ODatabaseMetaDataResultSetMetaData::setColumnPrivilegesMap()
209 {
210     setColumnMap();
211     m_mColumns[5] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("GRANTOR"),
212                 ColumnValue::NULLABLE,
213         3,3,0,
214                 DataType::VARCHAR);
215     m_mColumns[6] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("GRANTEE"),
216                 ColumnValue::NULLABLE,
217         3,3,0,
218                 DataType::VARCHAR);
219     m_mColumns[7] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("PRIVILEGE"),
220                 ColumnValue::NULLABLE,
221         3,3,0,
222                 DataType::VARCHAR);
223     m_mColumns[8] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("IS_GRANTABLE"),
224                 ColumnValue::NULLABLE,
225         3,3,0,
226                 DataType::VARCHAR);
227 }
228 // -----------------------------------------------------------------------------
229 void ODatabaseMetaDataResultSetMetaData::setTableNameMap()
230 {
231     m_mColumns[1] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("TABLE_CAT"),
232                 ColumnValue::NULLABLE,
233         3,3,0,
234                 DataType::VARCHAR);
235     m_mColumns[2] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("TABLE_SCHEM"),
236                 ColumnValue::NULLABLE,
237         3,3,0,
238                 DataType::VARCHAR);
239     m_mColumns[3] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("TABLE_NAME"),
240                 ColumnValue::NO_NULLS,
241         3,3,0,
242                 DataType::VARCHAR);
243 }
244 // -----------------------------------------------------------------------------
245 void ODatabaseMetaDataResultSetMetaData::setColumnMap()
246 {
247     setTableNameMap();
248     m_mColumns[4] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("COLUMN_NAME"),
249                 ColumnValue::NO_NULLS,
250         3,3,0,
251                 DataType::VARCHAR);
252 }
253 // -------------------------------------------------------------------------
254 void ODatabaseMetaDataResultSetMetaData::setColumnsMap()
255 {
256     setColumnMap();
257 
258     m_mColumns[5] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("DATA_TYPE"),
259                 ColumnValue::NO_NULLS,
260         0,0,0,
261                 DataType::INTEGER);
262     m_mColumns[6] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("TYPE_NAME"),
263                 ColumnValue::NO_NULLS,
264         0,0,0,
265                 DataType::VARCHAR);
266     m_mColumns[7] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("COLUMN_SIZE"),
267                 ColumnValue::NO_NULLS,
268         3,3,0,
269                 DataType::INTEGER);
270     m_mColumns[8] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("BUFFER_LENGTH"),
271                 ColumnValue::NULLABLE,
272         3,3,0,
273                 DataType::INTEGER);
274     m_mColumns[9] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("DECIMAL_DIGITS"),
275                 ColumnValue::NO_NULLS,
276         0,0,0,
277                 DataType::INTEGER);
278     m_mColumns[10] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("NUM_PREC_RADIX"),
279                 ColumnValue::NO_NULLS,
280         0,0,0,
281                 DataType::INTEGER);
282     m_mColumns[11] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("NULLABLE"),
283                 ColumnValue::NO_NULLS,
284         1,1,0,
285                 DataType::INTEGER);
286     m_mColumns[12] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("REMARKS"),
287                 ColumnValue::NULLABLE,
288         0,0,0,
289                 DataType::VARCHAR);
290     m_mColumns[13] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("COLUMN_DEF"),
291                 ColumnValue::NULLABLE,
292         0,0,0,
293                 DataType::VARCHAR);
294     m_mColumns[14] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("SQL_DATA_TYPE"),
295                 ColumnValue::NO_NULLS,
296         1,1,0,
297                 DataType::INTEGER);
298     m_mColumns[15] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("SQL_DATETIME_SUB"),
299                 ColumnValue::NO_NULLS,
300         1,1,0,
301                 DataType::INTEGER);
302     m_mColumns[16] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("CHAR_OCTET_LENGTH"),
303                 ColumnValue::NO_NULLS,
304         1,1,0,
305                 DataType::INTEGER);
306     m_mColumns[17] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("ORDINAL_POSITION"),
307                 ColumnValue::NO_NULLS,
308         1,1,0,
309                 DataType::INTEGER);
310     m_mColumns[18] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("IS_NULLABLE"),
311                 ColumnValue::NO_NULLS,
312         1,1,0,
313                 DataType::VARCHAR);
314 }
315 // -------------------------------------------------------------------------
316 void ODatabaseMetaDataResultSetMetaData::setTablesMap()
317 {
318     setTableNameMap();
319     m_mColumns[4] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("TABLE_TYPE"),
320                 ColumnValue::NO_NULLS,
321         0,0,0,
322                 DataType::VARCHAR);
323     m_mColumns[5] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("REMARKS"),
324                 ColumnValue::NULLABLE,
325         0,0,0,
326                 DataType::VARCHAR);
327 }
328 // -------------------------------------------------------------------------
329 void ODatabaseMetaDataResultSetMetaData::setProcedureNameMap()
330 {
331    m_mColumns[1] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("PROCEDURE_CAT"),
332                 ColumnValue::NULLABLE,
333         0,0,0,
334                 DataType::VARCHAR);
335     m_mColumns[2] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("PROCEDURE_SCHEM"),
336                 ColumnValue::NULLABLE,
337         0,0,0,
338                 DataType::VARCHAR);
339     m_mColumns[3] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("PROCEDURE_NAME"),
340                 ColumnValue::NO_NULLS,
341         0,0,0,
342                 DataType::VARCHAR);
343 }
344 // -------------------------------------------------------------------------
345 void ODatabaseMetaDataResultSetMetaData::setProcedureColumnsMap()
346 {
347     setProcedureNameMap();
348     m_mColumns[4] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("COLUMN_NAME"),
349                 ColumnValue::NO_NULLS,
350         0,0,0,
351                 DataType::VARCHAR);
352     m_mColumns[5] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("COLUMN_TYPE"),
353                 ColumnValue::NO_NULLS,
354         0,0,0,
355                 DataType::INTEGER);
356     m_mColumns[6] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("DATA_TYPE"),
357                 ColumnValue::NO_NULLS,
358         0,0,0,
359                 DataType::INTEGER);
360     m_mColumns[7] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("TYPE_NAME"),
361                 ColumnValue::NULLABLE,
362         0,0,0,
363                 DataType::VARCHAR);
364     m_mColumns[8] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("PRECISION"),
365                 ColumnValue::NO_NULLS,
366         0,0,0,
367                 DataType::INTEGER);
368     m_mColumns[9] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("LENGTH"),
369                 ColumnValue::NO_NULLS,
370         0,0,0,
371                 DataType::INTEGER);
372     m_mColumns[10] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("SCALE"),
373                 ColumnValue::NO_NULLS,
374         0,0,0,
375                 DataType::INTEGER);
376     m_mColumns[11] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("RADIX"),
377                 ColumnValue::NO_NULLS,
378         0,0,0,
379                 DataType::INTEGER);
380     m_mColumns[12] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("NULLABLE"),
381                 ColumnValue::NO_NULLS,
382         0,0,0,
383                 DataType::INTEGER);
384     m_mColumns[13] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("REMARKS"),
385                 ColumnValue::NULLABLE,
386         0,0,0,
387                 DataType::VARCHAR);
388 
389 }
390 // -------------------------------------------------------------------------
391 void ODatabaseMetaDataResultSetMetaData::setPrimaryKeysMap()
392 {
393     setColumnMap();
394     m_mColumns[5] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("KEY_SEQ"),
395                 ColumnValue::NO_NULLS,
396         1,1,0,
397                 DataType::INTEGER);
398     m_mColumns[6] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("PK_NAME"),
399                 ColumnValue::NULLABLE,
400         0,0,0,
401                 DataType::VARCHAR);
402 }
403 // -------------------------------------------------------------------------
404 void ODatabaseMetaDataResultSetMetaData::setIndexInfoMap()
405 {
406     setTableNameMap();
407     m_mColumns[4] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("NON_UNIQUE"),
408                 ColumnValue::NO_NULLS,
409         1,1,0,
410                 DataType::BIT);
411     m_mColumns[5] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("INDEX_QUALIFIER"),
412                 ColumnValue::NULLABLE,
413         0,0,0,
414                 DataType::VARCHAR);
415     m_mColumns[6] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("INDEX_NAME"),
416                 ColumnValue::NULLABLE,
417         0,0,0,
418                 DataType::VARCHAR);
419     m_mColumns[7] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("TYPE"),
420                 ColumnValue::NO_NULLS,
421         0,0,0,
422                 DataType::INTEGER);
423     m_mColumns[8] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("ORDINAL_POSITION"),
424                 ColumnValue::NO_NULLS,
425         0,0,0,
426                 DataType::INTEGER);
427     m_mColumns[9] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("COLUMN_NAME"),
428                 ColumnValue::NO_NULLS,
429         0,0,0,
430                 DataType::VARCHAR);
431     m_mColumns[10] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("ASC_OR_DESC"),
432                 ColumnValue::NULLABLE,
433         0,0,0,
434                 DataType::VARCHAR);
435     m_mColumns[11] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("CARDINALITY"),
436                 ColumnValue::NO_NULLS,
437         0,0,0,
438                 DataType::INTEGER);
439     m_mColumns[12] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("PAGES"),
440                 ColumnValue::NO_NULLS,
441         0,0,0,
442                 DataType::INTEGER);
443     m_mColumns[13] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("FILTER_CONDITION"),
444                 ColumnValue::NULLABLE,
445         0,0,0,
446                 DataType::VARCHAR);
447 }
448 // -------------------------------------------------------------------------
449 void ODatabaseMetaDataResultSetMetaData::setTablePrivilegesMap()
450 {
451     setTableNameMap();
452     m_mColumns[4] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("GRANTOR"),
453                 ColumnValue::NULLABLE,
454         0,0,0,
455                 DataType::VARCHAR);
456     m_mColumns[5] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("GRANTEE"),
457                 ColumnValue::NO_NULLS,
458         0,0,0,
459                 DataType::VARCHAR);
460     m_mColumns[6] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("PRIVILEGE"),
461                 ColumnValue::NULLABLE,
462         0,0,0,
463                 DataType::VARCHAR);
464     m_mColumns[7] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("IS_GRANTABLE"),
465                 ColumnValue::NULLABLE,
466         0,0,0,
467                 DataType::VARCHAR);
468 }
469 // -------------------------------------------------------------------------
470 void ODatabaseMetaDataResultSetMetaData::setCrossReferenceMap()
471 {
472     m_mColumns[1] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("PKTABLE_CAT"),
473                 ColumnValue::NULLABLE,
474         0,0,0,
475                 DataType::VARCHAR);
476     m_mColumns[2] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("PKTABLE_SCHEM"),
477                 ColumnValue::NULLABLE,
478         0,0,0,
479                 DataType::VARCHAR);
480     m_mColumns[3] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("PKTABLE_NAME"),
481                 ColumnValue::NO_NULLS,
482         0,0,0,
483                 DataType::VARCHAR);
484     m_mColumns[4] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("PKCOLUMN_NAME"),
485                 ColumnValue::NO_NULLS,
486         0,0,0,
487                 DataType::VARCHAR);
488     m_mColumns[5] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("FKTABLE_CAT"),
489                 ColumnValue::NULLABLE,
490         0,0,0,
491                 DataType::VARCHAR);
492     m_mColumns[6] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("FKTABLE_SCHEM"),
493                 ColumnValue::NULLABLE,
494         0,0,0,
495                 DataType::VARCHAR);
496     m_mColumns[7] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("FKTABLE_NAME"),
497                 ColumnValue::NO_NULLS,
498         0,0,0,
499                 DataType::VARCHAR);
500     m_mColumns[8] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("FKCOLUMN_NAME"),
501                 ColumnValue::NO_NULLS,
502         0,0,0,
503                 DataType::VARCHAR);
504 
505     m_mColumns[9] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("KEY_SEQ"),
506                 ColumnValue::NO_NULLS,
507         1,1,0,
508                 DataType::INTEGER);
509     m_mColumns[10] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("UPDATE_RULE"),
510                 ColumnValue::NO_NULLS,
511         1,1,0,
512                 DataType::INTEGER);
513     m_mColumns[11] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("DELETE_RULE"),
514                 ColumnValue::NO_NULLS,
515         1,1,0,
516                 DataType::INTEGER);
517     m_mColumns[12] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("FK_NAME"),
518                 ColumnValue::NULLABLE,
519         0,0,0,
520                 DataType::VARCHAR);
521     m_mColumns[13] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("PK_NAME"),
522                 ColumnValue::NULLABLE,
523         0,0,0,
524                 DataType::VARCHAR);
525     m_mColumns[14] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("DEFERRABILITY"),
526                 ColumnValue::NO_NULLS,
527         1,1,0,
528                 DataType::INTEGER);
529 }
530 // -------------------------------------------------------------------------
531 void ODatabaseMetaDataResultSetMetaData::setTypeInfoMap()
532 {
533     m_mColumns[1] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("TYPE_NAME"),
534                 ColumnValue::NO_NULLS,
535         0,0,0,
536                 DataType::VARCHAR);
537     m_mColumns[2] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("DATA_TYPE"),
538                 ColumnValue::NO_NULLS,
539         1,1,0,
540                 DataType::INTEGER);
541     m_mColumns[3] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("PRECISION"),
542                 ColumnValue::NO_NULLS,
543         1,1,0,
544                 DataType::INTEGER);
545     m_mColumns[4] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("LITERAL_PREFIX"),
546                 ColumnValue::NULLABLE,
547         0,0,0,
548                 DataType::VARCHAR);
549     m_mColumns[5] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("LITERAL_SUFFIX"),
550                 ColumnValue::NULLABLE,
551         0,0,0,
552                 DataType::VARCHAR);
553     m_mColumns[6] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("CREATE_PARAMS"),
554                 ColumnValue::NULLABLE,
555         0,0,0,
556                 DataType::VARCHAR);
557     m_mColumns[7] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("NULLABLE"),
558                 ColumnValue::NO_NULLS,
559         1,1,0,
560                 DataType::INTEGER);
561     m_mColumns[8] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("CASE_SENSITIVE"),
562                 ColumnValue::NO_NULLS,
563         1,1,0,
564                 DataType::BIT);
565     m_mColumns[9] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("SEARCHABLE"),
566                 ColumnValue::NO_NULLS,
567         1,1,0,
568                 DataType::INTEGER);
569     m_mColumns[10] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("UNSIGNED_ATTRIBUTE"),
570                 ColumnValue::NO_NULLS,
571         1,1,0,
572                 DataType::BIT);
573     m_mColumns[11] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("FIXED_PREC_SCALE"),
574                 ColumnValue::NO_NULLS,
575         1,1,0,
576                 DataType::BIT);
577     m_mColumns[12] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("AUTO_INCREMENT"),
578                 ColumnValue::NO_NULLS,
579         1,1,0,
580                 DataType::BIT);
581     m_mColumns[13] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("LOCAL_TYPE_NAME"),
582                 ColumnValue::NO_NULLS,
583         0,0,0,
584                 DataType::VARCHAR);
585     m_mColumns[14] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("MINIMUM_SCALE"),
586                 ColumnValue::NO_NULLS,
587         0,0,0,
588                 DataType::INTEGER);
589     m_mColumns[15] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("MAXIMUM_SCALE"),
590                 ColumnValue::NO_NULLS,
591         0,0,0,
592                 DataType::INTEGER);
593     m_mColumns[16] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("SQL_DATA_TYPE"),
594                 ColumnValue::NO_NULLS,
595         1,1,0,
596                 DataType::INTEGER);
597     m_mColumns[17] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("SQL_DATETIME_SUB"),
598                 ColumnValue::NO_NULLS,
599         1,1,0,
600                 DataType::INTEGER);
601     m_mColumns[18] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("NUM_PREC_RADIX"),
602                 ColumnValue::NO_NULLS,
603         1,1,0,
604                 DataType::INTEGER);
605 }
606 // -------------------------------------------------------------------------
607 void ODatabaseMetaDataResultSetMetaData::setProceduresMap()
608 {
609     setProcedureNameMap();
610     m_mColumns[4] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("RESERVED1"),
611                 ColumnValue::NULLABLE,
612         0,0,0,
613                 DataType::VARCHAR);
614     m_mColumns[5] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("RESERVED2"),
615                 ColumnValue::NULLABLE,
616         0,0,0,
617                 DataType::VARCHAR);
618     m_mColumns[6] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("RESERVED3"),
619                 ColumnValue::NULLABLE,
620         0,0,0,
621                 DataType::VARCHAR);
622     m_mColumns[7] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("REMARKS"),
623                 ColumnValue::NULLABLE,
624         0,0,0,
625                 DataType::VARCHAR);
626     m_mColumns[8] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("PROCEDURE_TYPE"),
627                 ColumnValue::NO_NULLS,
628         1,1,0,
629                 DataType::INTEGER);
630 }
631 // -------------------------------------------------------------------------
632 void ODatabaseMetaDataResultSetMetaData::setTableTypes()
633 {
634     m_mColumns[1] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("TABLE_TYPE"),
635                 ColumnValue::NULLABLE,
636         0,0,0,
637                 DataType::VARCHAR);
638 }
639 // -------------------------------------------------------------------------
640 void ODatabaseMetaDataResultSetMetaData::setCatalogsMap()
641 {
642     m_mColumns[1] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("TABLE_CAT"),
643                 ColumnValue::NULLABLE,
644         0,0,0,
645                 DataType::VARCHAR);
646 }
647 // -------------------------------------------------------------------------
648 void ODatabaseMetaDataResultSetMetaData::setSchemasMap()
649 {
650     m_mColumns[1] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("TABLE_SCHEM"),
651                 ColumnValue::NULLABLE,
652         0,0,0,
653                 DataType::VARCHAR);
654 }
655 // -------------------------------------------------------------------------
656 void ODatabaseMetaDataResultSetMetaData::setVersionColumnsMap()
657 {
658    m_mColumns[1] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("SCOPE"),
659                 ColumnValue::NO_NULLS,
660         0,0,0,
661                 DataType::INTEGER);
662     m_mColumns[2] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("COLUMN_NAME"),
663                 ColumnValue::NO_NULLS,
664         0,0,0,
665                 DataType::VARCHAR);
666     m_mColumns[3] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("DATA_TYPE"),
667                 ColumnValue::NO_NULLS,
668         0,0,0,
669                 DataType::INTEGER);
670     m_mColumns[4] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("TYPE_NAME"),
671                 ColumnValue::NO_NULLS,
672         0,0,0,
673                 DataType::VARCHAR);
674     m_mColumns[5] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("COLUMN_SIZE"),
675                 ColumnValue::NO_NULLS,
676         0,0,0,
677                 DataType::INTEGER);
678     m_mColumns[6] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("BUFFER_LENGTH"),
679                 ColumnValue::NO_NULLS,
680         0,0,0,
681                 DataType::INTEGER);
682     m_mColumns[7] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("DECIMAL_DIGITS"),
683                 ColumnValue::NULLABLE,
684         0,0,0,
685                 DataType::INTEGER);
686     m_mColumns[8] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("PSEUDO_COLUMN"),
687                 ColumnValue::NO_NULLS,
688         0,0,0,
689                 DataType::INTEGER);
690 }
691 
692 
693