1*d1766043SAndrew Rist/**************************************************************
2cdf0e10cSrcweir *
3*d1766043SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*d1766043SAndrew Rist * or more contributor license agreements.  See the NOTICE file
5*d1766043SAndrew Rist * distributed with this work for additional information
6*d1766043SAndrew Rist * regarding copyright ownership.  The ASF licenses this file
7*d1766043SAndrew Rist * to you under the Apache License, Version 2.0 (the
8*d1766043SAndrew Rist * "License"); you may not use this file except in compliance
9*d1766043SAndrew Rist * with the License.  You may obtain a copy of the License at
10*d1766043SAndrew Rist *
11*d1766043SAndrew Rist *   http://www.apache.org/licenses/LICENSE-2.0
12*d1766043SAndrew Rist *
13*d1766043SAndrew Rist * Unless required by applicable law or agreed to in writing,
14*d1766043SAndrew Rist * software distributed under the License is distributed on an
15*d1766043SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*d1766043SAndrew Rist * KIND, either express or implied.  See the License for the
17*d1766043SAndrew Rist * specific language governing permissions and limitations
18*d1766043SAndrew Rist * under the License.
19*d1766043SAndrew Rist *
20*d1766043SAndrew Rist *************************************************************/
21*d1766043SAndrew Rist
22*d1766043SAndrew Rist
23cdf0e10cSrcweir#ifndef __com_sun_star_sdbc_XDatabaseMetaData_idl__
24cdf0e10cSrcweir#define __com_sun_star_sdbc_XDatabaseMetaData_idl__
25cdf0e10cSrcweir
26cdf0e10cSrcweir#ifndef __com_sun_star_uno_XInterface_idl__
27cdf0e10cSrcweir#include <com/sun/star/uno/XInterface.idl>
28cdf0e10cSrcweir#endif
29cdf0e10cSrcweir
30cdf0e10cSrcweir#ifndef __com_sun_star_sdbc_SQLException_idl__
31cdf0e10cSrcweir#include <com/sun/star/sdbc/SQLException.idl>
32cdf0e10cSrcweir#endif
33cdf0e10cSrcweir
34cdf0e10cSrcweir
35cdf0e10cSrcweir module com {  module sun {  module star {  module sdbc {
36cdf0e10cSrcweir
37cdf0e10cSrcweir published interface XResultSet;
38cdf0e10cSrcweir published interface XConnection;
39cdf0e10cSrcweir
40cdf0e10cSrcweir/** provides comprehensive information about the database as a whole.
41cdf0e10cSrcweir
42cdf0e10cSrcweir
43cdf0e10cSrcweir	<p>Many of the methods here return lists of information in
44cdf0e10cSrcweir	the form of
45cdf0e10cSrcweir	<type scope="com::sun::star::sdbc">XResultSet</type>
46cdf0e10cSrcweir	objects.
47cdf0e10cSrcweir	You can use the normal <type scope="com::sun::star::sdbc">XResultSet</type>
48cdf0e10cSrcweir	methods such as
49cdf0e10cSrcweir	<member scope="com::sun::star::sdbc">XResultSet::getString()</member>
50cdf0e10cSrcweir	and
51cdf0e10cSrcweir	<member scope="com::sun::star::sdbc">XResultSet::getInt()</member>
52cdf0e10cSrcweir	to retrieve the data from these XResultSets. If a given form of
53cdf0e10cSrcweir	metadata is not available, these methods should throw a
54cdf0e10cSrcweir	<type scope="com::sun::star::sdbc">SQLException</type>
55cdf0e10cSrcweir	.
56cdf0e10cSrcweir    That a value of <type scope="com::sun::star::sdbc">XResultSet</type> is <NULL/>
57cdf0e10cSrcweir    can be chaked with the method <member scope="com::sun::star::sdbc">XResultSet::wasNull()</member>.
58cdf0e10cSrcweir    In the text only "(may be <NULL/>)" is mentioned for this case.
59cdf0e10cSrcweir	</p>
60cdf0e10cSrcweir	<p>Some of these methods take arguments that are String patterns. These
61cdf0e10cSrcweir	arguments all have names such as fooPattern. Within a pattern String, "%"
62cdf0e10cSrcweir	means match any substring of 0 or more characters, and "_" means match
63cdf0e10cSrcweir	any one character. Only metadata entries matching the search pattern
64cdf0e10cSrcweir	are returned. If a search pattern argument is set to <VOID/>,
65cdf0e10cSrcweir	that argument's criteria will be dropped from the search.
66cdf0e10cSrcweir	</p>
67cdf0e10cSrcweir	<p>
68cdf0e10cSrcweir	A
69cdf0e10cSrcweir	<type scope="com::sun::star::sdbc">SQLException</type>
70cdf0e10cSrcweir	will be thrown if a driver does not support
71cdf0e10cSrcweir	a meta data method. In the case of methods that return an XResultSet,
72cdf0e10cSrcweir	either an XResultSet (which may be empty) is returned or a
73cdf0e10cSrcweir	SQLException is thrown.</p>
74cdf0e10cSrcweir */
75cdf0e10cSrcweirpublished interface XDatabaseMetaData: com::sun::star::uno::XInterface
76cdf0e10cSrcweir{
77cdf0e10cSrcweir
78cdf0e10cSrcweir	/** Can all the procedures returned by getProcedures be called by the
79cdf0e10cSrcweir		current user?
80cdf0e10cSrcweir
81cdf0e10cSrcweir		@return
82cdf0e10cSrcweir		<TRUE/>
83cdf0e10cSrcweir		if the user is allowed to call all procedures returned by getProcedures
84cdf0e10cSrcweir		otherwise
85cdf0e10cSrcweir		<FALSE/>
86cdf0e10cSrcweir		.
87cdf0e10cSrcweir		@throws SQLException
88cdf0e10cSrcweir			if a database access error occurs.
89cdf0e10cSrcweir	 */
90cdf0e10cSrcweir	boolean allProceduresAreCallable() raises (SQLException);
91cdf0e10cSrcweir	//-------------------------------------------------------------------------
92cdf0e10cSrcweir
93cdf0e10cSrcweir	/** Can all the tables returned by getTable be SELECTed by the
94cdf0e10cSrcweir		current user?
95cdf0e10cSrcweir		@returns
96cdf0e10cSrcweir			<TRUE/> if so
97cdf0e10cSrcweir		@throws SQLException
98cdf0e10cSrcweir			if a database access error occurs.
99cdf0e10cSrcweir	 */
100cdf0e10cSrcweir	boolean allTablesAreSelectable() raises (SQLException);
101cdf0e10cSrcweir	//-------------------------------------------------------------------------
102cdf0e10cSrcweir
103cdf0e10cSrcweir	/** returns the URL for the database connection
104cdf0e10cSrcweir	 */
105cdf0e10cSrcweir	string getURL() raises (SQLException);
106cdf0e10cSrcweir	//-------------------------------------------------------------------------
107cdf0e10cSrcweir
108cdf0e10cSrcweir	/** returns the user name from this database connection.
109cdf0e10cSrcweir	 */
110cdf0e10cSrcweir	string getUserName() raises (SQLException);
111cdf0e10cSrcweir	//-------------------------------------------------------------------------
112cdf0e10cSrcweir
113cdf0e10cSrcweir	/** checks if the database in read-only mode.
114cdf0e10cSrcweir		@returns
115cdf0e10cSrcweir			<TRUE/> if so
116cdf0e10cSrcweir		@throws SQLException
117cdf0e10cSrcweir			if a database access error occurs.
118cdf0e10cSrcweir	 */
119cdf0e10cSrcweir	boolean isReadOnly() raises (SQLException);
120cdf0e10cSrcweir	//-------------------------------------------------------------------------
121cdf0e10cSrcweir
122cdf0e10cSrcweir	/** Are NULL values sorted high?
123cdf0e10cSrcweir		@returns
124cdf0e10cSrcweir			<TRUE/> if so
125cdf0e10cSrcweir		@throws SQLException
126cdf0e10cSrcweir			if a database access error occurs.
127cdf0e10cSrcweir	*/
128cdf0e10cSrcweir	boolean nullsAreSortedHigh() raises (SQLException);
129cdf0e10cSrcweir	//-------------------------------------------------------------------------
130cdf0e10cSrcweir
131cdf0e10cSrcweir	/** Are NULL values sorted low?
132cdf0e10cSrcweir		@returns
133cdf0e10cSrcweir			<TRUE/> if so
134cdf0e10cSrcweir		@throws SQLException
135cdf0e10cSrcweir			if a database access error occurs.
136cdf0e10cSrcweir	*/
137cdf0e10cSrcweir	boolean nullsAreSortedLow() raises (SQLException);
138cdf0e10cSrcweir	//-------------------------------------------------------------------------
139cdf0e10cSrcweir
140cdf0e10cSrcweir	/** Are NULL values sorted at the start regardless of sort order?
141cdf0e10cSrcweir		@returns
142cdf0e10cSrcweir			<TRUE/> if so
143cdf0e10cSrcweir		@throws SQLException
144cdf0e10cSrcweir			if a database access error occurs.
145cdf0e10cSrcweir	 */
146cdf0e10cSrcweir	boolean nullsAreSortedAtStart() raises (SQLException);
147cdf0e10cSrcweir	//-------------------------------------------------------------------------
148cdf0e10cSrcweir
149cdf0e10cSrcweir	/**	 Are NULL values sorted at the end, regardless of sort order?
150cdf0e10cSrcweir		@returns
151cdf0e10cSrcweir			<TRUE/> if so
152cdf0e10cSrcweir		@throws SQLException
153cdf0e10cSrcweir			if a database access error occurs.
154cdf0e10cSrcweir	 */
155cdf0e10cSrcweir	boolean nullsAreSortedAtEnd() raises (SQLException);
156cdf0e10cSrcweir	//-------------------------------------------------------------------------
157cdf0e10cSrcweir
158cdf0e10cSrcweir	/** returns the name of the database product.
159cdf0e10cSrcweir	 */
160cdf0e10cSrcweir	string getDatabaseProductName() raises (SQLException);
161cdf0e10cSrcweir	//-------------------------------------------------------------------------
162cdf0e10cSrcweir
163cdf0e10cSrcweir	/** returns the version of the database product.
164cdf0e10cSrcweir	 */
165cdf0e10cSrcweir	string getDatabaseProductVersion() raises (SQLException);
166cdf0e10cSrcweir	//-------------------------------------------------------------------------
167cdf0e10cSrcweir
168cdf0e10cSrcweir	/** returns the name of the SDBC driver.
169cdf0e10cSrcweir	 */
170cdf0e10cSrcweir	string getDriverName() raises (SQLException);
171cdf0e10cSrcweir	//-------------------------------------------------------------------------
172cdf0e10cSrcweir
173cdf0e10cSrcweir	/** returns the version number of the SDBC driver.
174cdf0e10cSrcweir	 */
175cdf0e10cSrcweir	string getDriverVersion() raises (SQLException);
176cdf0e10cSrcweir	//-------------------------------------------------------------------------
177cdf0e10cSrcweir
178cdf0e10cSrcweir	/** returns the SDBC driver major version number.
179cdf0e10cSrcweir	 */
180cdf0e10cSrcweir	long getDriverMajorVersion();
181cdf0e10cSrcweir    //-------------------------------------------------------------------------
182cdf0e10cSrcweir
183cdf0e10cSrcweir	/** returns the SDBC driver minor version number.
184cdf0e10cSrcweir	 */
185cdf0e10cSrcweir	long getDriverMinorVersion();
186cdf0e10cSrcweir	//-------------------------------------------------------------------------
187cdf0e10cSrcweir
188cdf0e10cSrcweir	/** use the database local files to save the tables.
189cdf0e10cSrcweir		@returns
190cdf0e10cSrcweir			<TRUE/> if so
191cdf0e10cSrcweir		@throws SQLException
192cdf0e10cSrcweir			if a database access error occurs.
193cdf0e10cSrcweir	 */
194cdf0e10cSrcweir	boolean usesLocalFiles() raises (SQLException);
195cdf0e10cSrcweir    //-------------------------------------------------------------------------
196cdf0e10cSrcweir
197cdf0e10cSrcweir	/** use the database one local file to save for each table.
198cdf0e10cSrcweir		@returns
199cdf0e10cSrcweir			<TRUE/> if so
200cdf0e10cSrcweir		@throws SQLException
201cdf0e10cSrcweir			if a database access error occurs.
202cdf0e10cSrcweir	 */
203cdf0e10cSrcweir	boolean usesLocalFilePerTable() raises (SQLException);
204cdf0e10cSrcweir	//-------------------------------------------------------------------------
205cdf0e10cSrcweir
206cdf0e10cSrcweir	/** use the database 'mixed case unquoted SQL identifiers' case sensitive.
207cdf0e10cSrcweir		@returns
208cdf0e10cSrcweir			<TRUE/> if so
209cdf0e10cSrcweir		@throws SQLException
210cdf0e10cSrcweir			if a database access error occurs.
211cdf0e10cSrcweir	 */
212cdf0e10cSrcweir	boolean supportsMixedCaseIdentifiers() raises (SQLException);
213cdf0e10cSrcweir	//-------------------------------------------------------------------------
214cdf0e10cSrcweir
215cdf0e10cSrcweir	/** Does the database treat mixed case unquoted SQL identifiers as
216cdf0e10cSrcweir		case insensitive and store them in upper case?
217cdf0e10cSrcweir			@returns
218cdf0e10cSrcweir			<TRUE/> if so
219cdf0e10cSrcweir		@throws SQLException
220cdf0e10cSrcweir			if a database access error occurs.
221cdf0e10cSrcweir	 */
222cdf0e10cSrcweir	boolean storesUpperCaseIdentifiers() raises (SQLException);
223cdf0e10cSrcweir	//-------------------------------------------------------------------------
224cdf0e10cSrcweir
225cdf0e10cSrcweir	/** Does the database treat mixed case unquoted SQL identifiers as
226cdf0e10cSrcweir		case insensitive and store them in lower case?
227cdf0e10cSrcweir		@returns
228cdf0e10cSrcweir			<TRUE/> if so
229cdf0e10cSrcweir		@throws SQLException
230cdf0e10cSrcweir			if a database access error occurs.
231cdf0e10cSrcweir	 */
232cdf0e10cSrcweir	boolean storesLowerCaseIdentifiers() raises (SQLException);
233cdf0e10cSrcweir	//-------------------------------------------------------------------------
234cdf0e10cSrcweir
235cdf0e10cSrcweir	/** Does the database treat mixed case unquoted SQL identifiers as
236cdf0e10cSrcweir		case insensitive and store them in mixed case?
237cdf0e10cSrcweir		@returns
238cdf0e10cSrcweir			<TRUE/> if so
239cdf0e10cSrcweir		@throws SQLException
240cdf0e10cSrcweir			if a database access error occurs.
241cdf0e10cSrcweir	 */
242cdf0e10cSrcweir	boolean storesMixedCaseIdentifiers() raises (SQLException);
243cdf0e10cSrcweir	//-------------------------------------------------------------------------
244cdf0e10cSrcweir
245cdf0e10cSrcweir	/** Does the database treat mixed case quoted SQL identifiers as
246cdf0e10cSrcweir		case sensitive and as a result store them in mixed case?
247cdf0e10cSrcweir		@returns
248cdf0e10cSrcweir			<TRUE/> if so
249cdf0e10cSrcweir		@throws SQLException
250cdf0e10cSrcweir			if a database access error occurs.
251cdf0e10cSrcweir	 */
252cdf0e10cSrcweir	boolean supportsMixedCaseQuotedIdentifiers() raises (SQLException);
253cdf0e10cSrcweir	//-------------------------------------------------------------------------
254cdf0e10cSrcweir
255cdf0e10cSrcweir	/** Does the database treat mixed case quoted SQL identifiers as
256cdf0e10cSrcweir		case insensitive and store them in upper case?
257cdf0e10cSrcweir		@returns
258cdf0e10cSrcweir			<TRUE/> if so
259cdf0e10cSrcweir		@throws SQLException
260cdf0e10cSrcweir			if a database access error occurs.
261cdf0e10cSrcweir	 */
262cdf0e10cSrcweir	boolean storesUpperCaseQuotedIdentifiers() raises (SQLException);
263cdf0e10cSrcweir	//-------------------------------------------------------------------------
264cdf0e10cSrcweir
265cdf0e10cSrcweir	/** Does the database treat mixed case quoted SQL identifiers as
266cdf0e10cSrcweir		case insensitive and store them in lower case?
267cdf0e10cSrcweir		@returns
268cdf0e10cSrcweir			<TRUE/> if so
269cdf0e10cSrcweir		@throws SQLException
270cdf0e10cSrcweir			if a database access error occurs.
271cdf0e10cSrcweir	 */
272cdf0e10cSrcweir	boolean storesLowerCaseQuotedIdentifiers() raises (SQLException);
273cdf0e10cSrcweir	//-------------------------------------------------------------------------
274cdf0e10cSrcweir
275cdf0e10cSrcweir	/** Does the database treat mixed case quoted SQL identifiers as
276cdf0e10cSrcweir		case insensitive and store them in mixed case?
277cdf0e10cSrcweir		@returns
278cdf0e10cSrcweir			<TRUE/> if so
279cdf0e10cSrcweir		@throws SQLException
280cdf0e10cSrcweir			if a database access error occurs.
281cdf0e10cSrcweir	 */
282cdf0e10cSrcweir	boolean storesMixedCaseQuotedIdentifiers() raises (SQLException);
283cdf0e10cSrcweir	//-------------------------------------------------------------------------
284cdf0e10cSrcweir
285cdf0e10cSrcweir	/** What's the string used to quote SQL identifiers?
286cdf0e10cSrcweir		This returns a space " " if identifier quoting is not supported.
287cdf0e10cSrcweir		@returns
288cdf0e10cSrcweir			<TRUE/> if so
289cdf0e10cSrcweir		@throws SQLException
290cdf0e10cSrcweir			if a database access error occurs.
291cdf0e10cSrcweir	 */
292cdf0e10cSrcweir	string getIdentifierQuoteString() raises (SQLException);
293cdf0e10cSrcweir	//-------------------------------------------------------------------------
294cdf0e10cSrcweir
295cdf0e10cSrcweir	/** gets a comma-separated list of all a database's SQL keywords
296cdf0e10cSrcweir		that are NOT also SQL92 keywords.
297cdf0e10cSrcweir		@returns
298cdf0e10cSrcweir			<TRUE/> if so
299cdf0e10cSrcweir		@throws SQLException
300cdf0e10cSrcweir			if a database access error occurs.
301cdf0e10cSrcweir	 */
302cdf0e10cSrcweir	string getSQLKeywords() raises (SQLException);
303cdf0e10cSrcweir	//-------------------------------------------------------------------------
304cdf0e10cSrcweir
305cdf0e10cSrcweir	/** gets a comma-separated list of math functions. These are the
306cdf0e10cSrcweir		X/Open CLI math function names used in the SDBC function escape
307cdf0e10cSrcweir		clause.
308cdf0e10cSrcweir		@returns
309cdf0e10cSrcweir			<TRUE/> if so
310cdf0e10cSrcweir		@throws SQLException
311cdf0e10cSrcweir			if a database access error occurs.
312cdf0e10cSrcweir	 */
313cdf0e10cSrcweir	string getNumericFunctions() raises (SQLException);
314cdf0e10cSrcweir	//-------------------------------------------------------------------------
315cdf0e10cSrcweir
316cdf0e10cSrcweir	/** gets a comma-separated list of string functions. These are the
317cdf0e10cSrcweir		X/Open CLI string function names used in the SDBC function escape
318cdf0e10cSrcweir		clause.
319cdf0e10cSrcweir		@returns
320cdf0e10cSrcweir			<TRUE/> if so
321cdf0e10cSrcweir		@throws SQLException
322cdf0e10cSrcweir			if a database access error occurs.
323cdf0e10cSrcweir	 */
324cdf0e10cSrcweir	string getStringFunctions() raises (SQLException);
325cdf0e10cSrcweir	//-------------------------------------------------------------------------
326cdf0e10cSrcweir
327cdf0e10cSrcweir	/** gets a comma-separated list of system functions. These are the
328cdf0e10cSrcweir		X/Open CLI system function names used in the SDBC function escape
329cdf0e10cSrcweir		clause.
330cdf0e10cSrcweir		@returns
331cdf0e10cSrcweir			<TRUE/> if so
332cdf0e10cSrcweir		@throws SQLException
333cdf0e10cSrcweir			if a database access error occurs.
334cdf0e10cSrcweir	 */
335cdf0e10cSrcweir	string getSystemFunctions() raises (SQLException);
336cdf0e10cSrcweir	//-------------------------------------------------------------------------
337cdf0e10cSrcweir
338cdf0e10cSrcweir	/** gets a comma-separated list of time and date functions.
339cdf0e10cSrcweir		@returns
340cdf0e10cSrcweir			<TRUE/> if so
341cdf0e10cSrcweir		@throws SQLException
342cdf0e10cSrcweir			if a database access error occurs.
343cdf0e10cSrcweir	 */
344cdf0e10cSrcweir	string getTimeDateFunctions() raises (SQLException);
345cdf0e10cSrcweir	//-------------------------------------------------------------------------
346cdf0e10cSrcweir
347cdf0e10cSrcweir	/** gets the string that can be used to escape wildcard characters.
348cdf0e10cSrcweir		This is the string that can be used to escape '_' or '%' in
349cdf0e10cSrcweir		the string pattern style catalog search parameters.
350cdf0e10cSrcweir
351cdf0e10cSrcweir
352cdf0e10cSrcweir		<p>
353cdf0e10cSrcweir		The '_' character represents any single character.
354cdf0e10cSrcweir		</p>
355cdf0e10cSrcweir		<p>
356cdf0e10cSrcweir		The '%' character represents any sequence of zero or
357cdf0e10cSrcweir		more characters.
358cdf0e10cSrcweir		</p>
359cdf0e10cSrcweir		@returns
360cdf0e10cSrcweir			<TRUE/> if so
361cdf0e10cSrcweir		@throws SQLException
362cdf0e10cSrcweir			if a database access error occurs.
363cdf0e10cSrcweir	 */
364cdf0e10cSrcweir	string getSearchStringEscape() raises (SQLException);
365cdf0e10cSrcweir	//-------------------------------------------------------------------------
366cdf0e10cSrcweir
367cdf0e10cSrcweir	/** gets all the "extra" characters that can be used in unquoted
368cdf0e10cSrcweir		identifier names (those beyond a-z, A-Z, 0-9 and _).
369cdf0e10cSrcweir		@returns
370cdf0e10cSrcweir			<TRUE/> if so
371cdf0e10cSrcweir		@throws SQLException
372cdf0e10cSrcweir			if a database access error occurs.
373cdf0e10cSrcweir	 */
374cdf0e10cSrcweir	string getExtraNameCharacters() raises (SQLException);
375cdf0e10cSrcweir    //-------------------------------------------------------------------------
376cdf0e10cSrcweir
377cdf0e10cSrcweir	/** support the Database "ALTER TABLE" with add column?
378cdf0e10cSrcweir		@returns
379cdf0e10cSrcweir			<TRUE/> if so
380cdf0e10cSrcweir		@throws SQLException
381cdf0e10cSrcweir			if a database access error occurs.
382cdf0e10cSrcweir	 */
383cdf0e10cSrcweir	boolean supportsAlterTableWithAddColumn() raises (SQLException);
384cdf0e10cSrcweir    //-------------------------------------------------------------------------
385cdf0e10cSrcweir
386cdf0e10cSrcweir	/** support the Database  "ALTER TABLE" with drop column?
387cdf0e10cSrcweir		@returns
388cdf0e10cSrcweir			<TRUE/> if so
389cdf0e10cSrcweir		@throws SQLException
390cdf0e10cSrcweir			if a database access error occurs.
391cdf0e10cSrcweir	 */
392cdf0e10cSrcweir	boolean supportsAlterTableWithDropColumn() raises (SQLException);
393cdf0e10cSrcweir	//-------------------------------------------------------------------------
394cdf0e10cSrcweir
395cdf0e10cSrcweir	/** support the Database column aliasing?
396cdf0e10cSrcweir
397cdf0e10cSrcweir
398cdf0e10cSrcweir		<p>
399cdf0e10cSrcweir		The SQL AS clause can be used to provide names for
400cdf0e10cSrcweir		computed columns or to provide alias names for columns as required.
401cdf0e10cSrcweir		</p>
402cdf0e10cSrcweir		@returns
403cdf0e10cSrcweir			<TRUE/> if so
404cdf0e10cSrcweir		@throws SQLException
405cdf0e10cSrcweir			if a database access error occurs.
406cdf0e10cSrcweir	 */
407cdf0e10cSrcweir	boolean supportsColumnAliasing() raises (SQLException);
408cdf0e10cSrcweir    //-------------------------------------------------------------------------
409cdf0e10cSrcweir
410cdf0e10cSrcweir	/** are concatenations between NULL and non-NULL values NULL?
411cdf0e10cSrcweir		@returns
412cdf0e10cSrcweir			<TRUE/> if so
413cdf0e10cSrcweir		@throws SQLException
414cdf0e10cSrcweir			if a database access error occurs.
415cdf0e10cSrcweir	 */
416cdf0e10cSrcweir	boolean nullPlusNonNullIsNull() raises (SQLException);
417cdf0e10cSrcweir	//-------------------------------------------------------------------------
418cdf0e10cSrcweir
419cdf0e10cSrcweir	/** <TRUE/>
420cdf0e10cSrcweir			, if the Database supports the CONVERT function between SQL types,
421cdf0e10cSrcweir			otherwise
422cdf0e10cSrcweir			<FALSE/>
423cdf0e10cSrcweir			.
424cdf0e10cSrcweir		@returns
425cdf0e10cSrcweir			<TRUE/> if so
426cdf0e10cSrcweir		@throws SQLException
427cdf0e10cSrcweir			if a database access error occurs.
428cdf0e10cSrcweir	 */
429cdf0e10cSrcweir	boolean supportsTypeConversion() raises (SQLException);
430cdf0e10cSrcweir	//-------------------------------------------------------------------------
431cdf0e10cSrcweir
432cdf0e10cSrcweir	/** 	<TRUE/>
433cdf0e10cSrcweir			, if the Database supports the CONVERT between the given SQL types
434cdf0e10cSrcweir			otherwise
435cdf0e10cSrcweir			<FALSE/>
436cdf0e10cSrcweir			.
437cdf0e10cSrcweir		@returns
438cdf0e10cSrcweir			<TRUE/> if so
439cdf0e10cSrcweir		@throws SQLException
440cdf0e10cSrcweir			if a database access error occurs.
441cdf0e10cSrcweir	 */
442cdf0e10cSrcweir	boolean supportsConvert([in]long fromType, [in]long toType)
443cdf0e10cSrcweir		raises (SQLException);
444cdf0e10cSrcweir	//-------------------------------------------------------------------------
445cdf0e10cSrcweir
446cdf0e10cSrcweir	/** Are table correlation names supported?
447cdf0e10cSrcweir		@returns
448cdf0e10cSrcweir			<TRUE/> if so
449cdf0e10cSrcweir		@throws SQLException
450cdf0e10cSrcweir			if a database access error occurs.
451cdf0e10cSrcweir	 */
452cdf0e10cSrcweir	boolean supportsTableCorrelationNames() raises (SQLException);
453cdf0e10cSrcweir	//-------------------------------------------------------------------------
454cdf0e10cSrcweir
455cdf0e10cSrcweir	/** If table correlation names are supported, are they restricted
456cdf0e10cSrcweir		to be different from the names of the tables?
457cdf0e10cSrcweir		@returns
458cdf0e10cSrcweir			<TRUE/> if so
459cdf0e10cSrcweir		@throws SQLException
460cdf0e10cSrcweir			if a database access error occurs.
461cdf0e10cSrcweir	 */
462cdf0e10cSrcweir	boolean supportsDifferentTableCorrelationNames()
463cdf0e10cSrcweir		raises (SQLException);
464cdf0e10cSrcweir	//-------------------------------------------------------------------------
465cdf0e10cSrcweir
466cdf0e10cSrcweir	/** Are expressions in "ORDER BY" lists supported?
467cdf0e10cSrcweir		@returns
468cdf0e10cSrcweir			<TRUE/> if so
469cdf0e10cSrcweir		@throws SQLException
470cdf0e10cSrcweir			if a database access error occurs.
471cdf0e10cSrcweir	 */
472cdf0e10cSrcweir	boolean supportsExpressionsInOrderBy() raises (SQLException);
473cdf0e10cSrcweir	//-------------------------------------------------------------------------
474cdf0e10cSrcweir
475cdf0e10cSrcweir	/** Can an "ORDER BY" clause use columns not in the SELECT statement?
476cdf0e10cSrcweir		@returns
477cdf0e10cSrcweir			<TRUE/> if so
478cdf0e10cSrcweir		@throws SQLException
479cdf0e10cSrcweir			if a database access error occurs.
480cdf0e10cSrcweir	 */
481cdf0e10cSrcweir	boolean supportsOrderByUnrelated() raises (SQLException);
482cdf0e10cSrcweir	//-------------------------------------------------------------------------
483cdf0e10cSrcweir
484cdf0e10cSrcweir	/** Is some form of "GROUP BY" clause supported?
485cdf0e10cSrcweir		@returns
486cdf0e10cSrcweir			<TRUE/> if so
487cdf0e10cSrcweir		@throws SQLException
488cdf0e10cSrcweir			if a database access error occurs.
489cdf0e10cSrcweir	 */
490cdf0e10cSrcweir	boolean supportsGroupBy() raises (SQLException);
491cdf0e10cSrcweir	//-------------------------------------------------------------------------
492cdf0e10cSrcweir
493cdf0e10cSrcweir	/** Can a "GROUP BY" clause use columns not in the SELECT?
494cdf0e10cSrcweir		@returns
495cdf0e10cSrcweir			<TRUE/> if so
496cdf0e10cSrcweir		@throws SQLException
497cdf0e10cSrcweir			if a database access error occurs.
498cdf0e10cSrcweir	 */
499cdf0e10cSrcweir	boolean supportsGroupByUnrelated() raises (SQLException);
500cdf0e10cSrcweir	//-------------------------------------------------------------------------
501cdf0e10cSrcweir
502cdf0e10cSrcweir	/** Can a "GROUP BY" clause add columns not in the SELECT
503cdf0e10cSrcweir		provided it specifies all the columns in the SELECT?
504cdf0e10cSrcweir		@returns
505cdf0e10cSrcweir			<TRUE/> if so
506cdf0e10cSrcweir		@throws SQLException
507cdf0e10cSrcweir			if a database access error occurs.
508cdf0e10cSrcweir	 */
509cdf0e10cSrcweir	boolean supportsGroupByBeyondSelect() raises (SQLException);
510cdf0e10cSrcweir	//-------------------------------------------------------------------------
511cdf0e10cSrcweir
512cdf0e10cSrcweir	/** Is the escape character in "LIKE" clauses supported?
513cdf0e10cSrcweir		@returns
514cdf0e10cSrcweir			<TRUE/> if so
515cdf0e10cSrcweir		@throws SQLException
516cdf0e10cSrcweir			if a database access error occurs.
517cdf0e10cSrcweir	 */
518cdf0e10cSrcweir	boolean supportsLikeEscapeClause() raises (SQLException);
519cdf0e10cSrcweir	//-------------------------------------------------------------------------
520cdf0e10cSrcweir
521cdf0e10cSrcweir	/** Are multiple XResultSets from a single execute supported?
522cdf0e10cSrcweir		@returns
523cdf0e10cSrcweir			<TRUE/> if so
524cdf0e10cSrcweir		@throws SQLException
525cdf0e10cSrcweir			if a database access error occurs.
526cdf0e10cSrcweir	 */
527cdf0e10cSrcweir	boolean supportsMultipleResultSets() raises (SQLException);
528cdf0e10cSrcweir	//-------------------------------------------------------------------------
529cdf0e10cSrcweir
530cdf0e10cSrcweir	/** Can we have multiple transactions open at once (on different
531cdf0e10cSrcweir		connections)?
532cdf0e10cSrcweir		@returns
533cdf0e10cSrcweir			<TRUE/> if so
534cdf0e10cSrcweir		@throws SQLException
535cdf0e10cSrcweir			if a database access error occurs.
536cdf0e10cSrcweir	 */
537cdf0e10cSrcweir	boolean supportsMultipleTransactions() raises (SQLException);
538cdf0e10cSrcweir	//-------------------------------------------------------------------------
539cdf0e10cSrcweir
540cdf0e10cSrcweir	/** Can columns be defined as non-nullable?
541cdf0e10cSrcweir		@returns
542cdf0e10cSrcweir			<TRUE/> if so
543cdf0e10cSrcweir		@throws SQLException
544cdf0e10cSrcweir			if a database access error occurs.
545cdf0e10cSrcweir	 */
546cdf0e10cSrcweir	boolean supportsNonNullableColumns() raises (SQLException);
547cdf0e10cSrcweir	//-------------------------------------------------------------------------
548cdf0e10cSrcweir
549cdf0e10cSrcweir	/** 	<TRUE/>, if the database supports ODBC Minimum SQL grammar,
550cdf0e10cSrcweir			otherwise <FALSE/>.
551cdf0e10cSrcweir		@returns
552cdf0e10cSrcweir			<TRUE/> if so
553cdf0e10cSrcweir		@throws SQLException
554cdf0e10cSrcweir			if a database access error occurs.
555cdf0e10cSrcweir	 */
556cdf0e10cSrcweir	boolean supportsMinimumSQLGrammar() raises (SQLException);
557cdf0e10cSrcweir	//-------------------------------------------------------------------------
558cdf0e10cSrcweir
559cdf0e10cSrcweir	/** <TRUE/>, if the database supports ODBC Core SQL grammar,
560cdf0e10cSrcweir			otherwise <FALSE/>.
561cdf0e10cSrcweir			@returns
562cdf0e10cSrcweir			<TRUE/> if so
563cdf0e10cSrcweir		@throws SQLException
564cdf0e10cSrcweir			if a database access error occurs.
565cdf0e10cSrcweir	 */
566cdf0e10cSrcweir	boolean supportsCoreSQLGrammar() raises (SQLException);
567cdf0e10cSrcweir	//-------------------------------------------------------------------------
568cdf0e10cSrcweir
569cdf0e10cSrcweir	/**
570cdf0e10cSrcweir			<TRUE/>, if the database supports ODBC Extended SQL grammar,
571cdf0e10cSrcweir			otherwise <FALSE/>.
572cdf0e10cSrcweir			@returns
573cdf0e10cSrcweir			<TRUE/> if so
574cdf0e10cSrcweir		@throws SQLException
575cdf0e10cSrcweir			if a database access error occurs.
576cdf0e10cSrcweir	 */
577cdf0e10cSrcweir	boolean supportsExtendedSQLGrammar() raises (SQLException);
578cdf0e10cSrcweir	//-------------------------------------------------------------------------
579cdf0e10cSrcweir
580cdf0e10cSrcweir	/** @returns
581cdf0e10cSrcweir			<TRUE/>, if the database supports ANSI92 entry level SQL grammar,
582cdf0e10cSrcweir			otherwise <FALSE/>.
583cdf0e10cSrcweir			@throws SQLException
584cdf0e10cSrcweir			if a database access error occurs.
585cdf0e10cSrcweir	 */
586cdf0e10cSrcweir	boolean supportsANSI92EntryLevelSQL() raises (SQLException);
587cdf0e10cSrcweir	//-------------------------------------------------------------------------
588cdf0e10cSrcweir
589cdf0e10cSrcweir	/** @returns
590cdf0e10cSrcweir			<TRUE/>, if the database supports ANSI92 intermediate SQL grammar,
591cdf0e10cSrcweir			otherwise <FALSE/>.
592cdf0e10cSrcweir			@throws SQLException
593cdf0e10cSrcweir			if a database access error occurs.
594cdf0e10cSrcweir	 */
595cdf0e10cSrcweir	boolean supportsANSI92IntermediateSQL() raises (SQLException);
596cdf0e10cSrcweir	//-------------------------------------------------------------------------
597cdf0e10cSrcweir
598cdf0e10cSrcweir	/** @returns
599cdf0e10cSrcweir			<TRUE/>, if the database supports ANSI92 full SQL grammar,
600cdf0e10cSrcweir			otherwise <FALSE/>.
601cdf0e10cSrcweir			@throws SQLException
602cdf0e10cSrcweir			if a database access error occurs.
603cdf0e10cSrcweir	 */
604cdf0e10cSrcweir	boolean supportsANSI92FullSQL() raises (SQLException);
605cdf0e10cSrcweir	//-------------------------------------------------------------------------
606cdf0e10cSrcweir
607cdf0e10cSrcweir	/** returns
608cdf0e10cSrcweir			<TRUE/>, if the Database supports SQL Integrity Enhancement Facility,
609cdf0e10cSrcweir			otherwise <FALSE/>.
610cdf0e10cSrcweir			@throws SQLException
611cdf0e10cSrcweir			if a database access error occurs.
612cdf0e10cSrcweir	 */
613cdf0e10cSrcweir	boolean supportsIntegrityEnhancementFacility() raises (SQLException);
614cdf0e10cSrcweir	//-------------------------------------------------------------------------
615cdf0e10cSrcweir
616cdf0e10cSrcweir	/** @returns
617cdf0e10cSrcweir			<TRUE/>, if some form of outer join is supported,
618cdf0e10cSrcweir			otherwise <FALSE/>.
619cdf0e10cSrcweir			@throws SQLException
620cdf0e10cSrcweir			if a database access error occurs.
621cdf0e10cSrcweir	 */
622cdf0e10cSrcweir	boolean supportsOuterJoins() raises (SQLException);
623cdf0e10cSrcweir	//-------------------------------------------------------------------------
624cdf0e10cSrcweir
625cdf0e10cSrcweir	/** @returns
626cdf0e10cSrcweir			<TRUE/>, if full nested outer joins are supported,
627cdf0e10cSrcweir			otherwise <FALSE/>.
628cdf0e10cSrcweir			@throws SQLException
629cdf0e10cSrcweir			if a database access error occurs.
630cdf0e10cSrcweir	 */
631cdf0e10cSrcweir	boolean supportsFullOuterJoins() raises (SQLException);
632cdf0e10cSrcweir	//-------------------------------------------------------------------------
633cdf0e10cSrcweir
634cdf0e10cSrcweir	/** @returns
635cdf0e10cSrcweir			<TRUE/>, if there is limited support for outer joins.
636cdf0e10cSrcweir			(This will be <TRUE/> if supportFullOuterJoins is <TRUE/>.)
637cdf0e10cSrcweir			<FALSE/> is returned otherwise.
638cdf0e10cSrcweir			@throws SQLException
639cdf0e10cSrcweir			if a database access error occurs.
640cdf0e10cSrcweir	 */
641cdf0e10cSrcweir	boolean supportsLimitedOuterJoins() raises (SQLException);
642cdf0e10cSrcweir	//-------------------------------------------------------------------------
643cdf0e10cSrcweir
644cdf0e10cSrcweir	/** return the database vendor's preferred term for "schema"
645cdf0e10cSrcweir		@returns
646cdf0e10cSrcweir			<TRUE/> if so
647cdf0e10cSrcweir		@throws SQLException
648cdf0e10cSrcweir			if a database access error occurs.
649cdf0e10cSrcweir	 */
650cdf0e10cSrcweir	string getSchemaTerm() raises (SQLException);
651cdf0e10cSrcweir	//-------------------------------------------------------------------------
652cdf0e10cSrcweir
653cdf0e10cSrcweir	/** return the database vendor's preferred term for "procedure"
654cdf0e10cSrcweir		@returns
655cdf0e10cSrcweir			<TRUE/> if so
656cdf0e10cSrcweir		@throws SQLException
657cdf0e10cSrcweir			if a database access error occurs.
658cdf0e10cSrcweir	 */
659cdf0e10cSrcweir	string getProcedureTerm() raises (SQLException);
660cdf0e10cSrcweir	//-------------------------------------------------------------------------
661cdf0e10cSrcweir
662cdf0e10cSrcweir	/** return the database vendor's preferred term for "catalog"
663cdf0e10cSrcweir		@returns
664cdf0e10cSrcweir			<TRUE/> if so
665cdf0e10cSrcweir		@throws SQLException
666cdf0e10cSrcweir			if a database access error occurs.
667cdf0e10cSrcweir	 */
668cdf0e10cSrcweir	string getCatalogTerm() raises (SQLException);
669cdf0e10cSrcweir	//-------------------------------------------------------------------------
670cdf0e10cSrcweir
671cdf0e10cSrcweir	/** Does a catalog appear at the start of a qualified table name?
672cdf0e10cSrcweir		(Otherwise it appears at the end)
673cdf0e10cSrcweir		@returns
674cdf0e10cSrcweir			<TRUE/> if so
675cdf0e10cSrcweir		@throws SQLException
676cdf0e10cSrcweir			if a database access error occurs.
677cdf0e10cSrcweir	 */
678cdf0e10cSrcweir	boolean isCatalogAtStart() raises (SQLException);
679cdf0e10cSrcweir	//-------------------------------------------------------------------------
680cdf0e10cSrcweir
681cdf0e10cSrcweir	/** return the separator between catalog and table name
682cdf0e10cSrcweir		@returns
683cdf0e10cSrcweir			<TRUE/> if so
684cdf0e10cSrcweir		@throws SQLException
685cdf0e10cSrcweir			if a database access error occurs.
686cdf0e10cSrcweir	 */
687cdf0e10cSrcweir	string getCatalogSeparator() raises (SQLException);
688cdf0e10cSrcweir	//-------------------------------------------------------------------------
689cdf0e10cSrcweir
690cdf0e10cSrcweir	/** Can a schema name be used in a data manipulation statement?
691cdf0e10cSrcweir		@returns
692cdf0e10cSrcweir			<TRUE/> if so
693cdf0e10cSrcweir		@throws SQLException
694cdf0e10cSrcweir			if a database access error occurs.
695cdf0e10cSrcweir	 */
696cdf0e10cSrcweir	boolean supportsSchemasInDataManipulation() raises (SQLException);
697cdf0e10cSrcweir	//-------------------------------------------------------------------------
698cdf0e10cSrcweir
699cdf0e10cSrcweir	/** Can a schema name be used in a procedure call statement?
700cdf0e10cSrcweir		@returns
701cdf0e10cSrcweir			<TRUE/> if so
702cdf0e10cSrcweir		@throws SQLException
703cdf0e10cSrcweir			if a database access error occurs.
704cdf0e10cSrcweir	 */
705cdf0e10cSrcweir	boolean supportsSchemasInProcedureCalls() raises (SQLException);
706cdf0e10cSrcweir	//-------------------------------------------------------------------------
707cdf0e10cSrcweir
708cdf0e10cSrcweir	/** Can a schema name be used in a table definition statement?
709cdf0e10cSrcweir		@returns
710cdf0e10cSrcweir			<TRUE/> if so
711cdf0e10cSrcweir		@throws SQLException
712cdf0e10cSrcweir			if a database access error occurs.
713cdf0e10cSrcweir	 */
714cdf0e10cSrcweir	boolean supportsSchemasInTableDefinitions() raises (SQLException);
715cdf0e10cSrcweir	//-------------------------------------------------------------------------
716cdf0e10cSrcweir
717cdf0e10cSrcweir	/** Can a schema name be used in an index definition statement?
718cdf0e10cSrcweir		@returns
719cdf0e10cSrcweir			<TRUE/> if so
720cdf0e10cSrcweir		@throws SQLException
721cdf0e10cSrcweir			if a database access error occurs.
722cdf0e10cSrcweir	 */
723cdf0e10cSrcweir	boolean supportsSchemasInIndexDefinitions() raises (SQLException);
724cdf0e10cSrcweir	//-------------------------------------------------------------------------
725cdf0e10cSrcweir
726cdf0e10cSrcweir	/** Can a schema name be used in a privilege definition statement?
727cdf0e10cSrcweir		@returns
728cdf0e10cSrcweir			<TRUE/> if so
729cdf0e10cSrcweir		@throws SQLException
730cdf0e10cSrcweir			if a database access error occurs.
731cdf0e10cSrcweir	 */
732cdf0e10cSrcweir	boolean supportsSchemasInPrivilegeDefinitions()
733cdf0e10cSrcweir		raises (SQLException);
734cdf0e10cSrcweir	//-------------------------------------------------------------------------
735cdf0e10cSrcweir
736cdf0e10cSrcweir	/** Can a catalog name be used in a data manipulation statement?
737cdf0e10cSrcweir		@returns
738cdf0e10cSrcweir			<TRUE/> if so
739cdf0e10cSrcweir		@throws SQLException
740cdf0e10cSrcweir			if a database access error occurs.
741cdf0e10cSrcweir	 */
742cdf0e10cSrcweir	boolean supportsCatalogsInDataManipulation() raises (SQLException);
743cdf0e10cSrcweir	//-------------------------------------------------------------------------
744cdf0e10cSrcweir
745cdf0e10cSrcweir	/** Can a catalog name be used in a procedure call statement?
746cdf0e10cSrcweir		@returns
747cdf0e10cSrcweir			<TRUE/> if so
748cdf0e10cSrcweir		@throws SQLException
749cdf0e10cSrcweir			if a database access error occurs.
750cdf0e10cSrcweir	 */
751cdf0e10cSrcweir	boolean supportsCatalogsInProcedureCalls() raises (SQLException);
752cdf0e10cSrcweir	//-------------------------------------------------------------------------
753cdf0e10cSrcweir
754cdf0e10cSrcweir	/** Can a catalog name be used in a table definition statement?
755cdf0e10cSrcweir		@returns
756cdf0e10cSrcweir			<TRUE/> if so
757cdf0e10cSrcweir		@throws SQLException
758cdf0e10cSrcweir			if a database access error occurs.
759cdf0e10cSrcweir	 */
760cdf0e10cSrcweir	boolean supportsCatalogsInTableDefinitions() raises (SQLException);
761cdf0e10cSrcweir	//-------------------------------------------------------------------------
762cdf0e10cSrcweir
763cdf0e10cSrcweir	/** Can a catalog name be used in an index definition statement?
764cdf0e10cSrcweir		@returns
765cdf0e10cSrcweir			<TRUE/> if so
766cdf0e10cSrcweir		@throws SQLException
767cdf0e10cSrcweir			if a database access error occurs.
768cdf0e10cSrcweir	 */
769cdf0e10cSrcweir	boolean supportsCatalogsInIndexDefinitions() raises (SQLException);
770cdf0e10cSrcweir	//-------------------------------------------------------------------------
771cdf0e10cSrcweir
772cdf0e10cSrcweir	/** Can a catalog name be used in a privilege definition statement?
773cdf0e10cSrcweir		@returns
774cdf0e10cSrcweir			<TRUE/> if so
775cdf0e10cSrcweir		@throws SQLException
776cdf0e10cSrcweir			if a database access error occurs.
777cdf0e10cSrcweir	 */
778cdf0e10cSrcweir	boolean supportsCatalogsInPrivilegeDefinitions()
779cdf0e10cSrcweir		raises (SQLException);
780cdf0e10cSrcweir	//-------------------------------------------------------------------------
781cdf0e10cSrcweir
782cdf0e10cSrcweir	/** Is positioned DELETE supported?
783cdf0e10cSrcweir		@returns
784cdf0e10cSrcweir			<TRUE/> if so
785cdf0e10cSrcweir		@throws SQLException
786cdf0e10cSrcweir			if a database access error occurs.
787cdf0e10cSrcweir	 */
788cdf0e10cSrcweir	boolean supportsPositionedDelete() raises (SQLException);
789cdf0e10cSrcweir	//-------------------------------------------------------------------------
790cdf0e10cSrcweir
791cdf0e10cSrcweir	/** Is positioned UPDATE supported?
792cdf0e10cSrcweir		@returns
793cdf0e10cSrcweir			<TRUE/> if so
794cdf0e10cSrcweir		@throws SQLException
795cdf0e10cSrcweir			if a database access error occurs.
796cdf0e10cSrcweir	 */
797cdf0e10cSrcweir	boolean supportsPositionedUpdate() raises (SQLException);
798cdf0e10cSrcweir	//-------------------------------------------------------------------------
799cdf0e10cSrcweir
800cdf0e10cSrcweir	/** Is SELECT for UPDATE supported?
801cdf0e10cSrcweir		@returns
802cdf0e10cSrcweir			<TRUE/> if so
803cdf0e10cSrcweir		@throws SQLException
804cdf0e10cSrcweir			if a database access error occurs.
805cdf0e10cSrcweir	 */
806cdf0e10cSrcweir	boolean supportsSelectForUpdate() raises (SQLException);
807cdf0e10cSrcweir	//-------------------------------------------------------------------------
808cdf0e10cSrcweir
809cdf0e10cSrcweir	/** Are stored procedure calls using the stored procedure escape
810cdf0e10cSrcweir		syntax supported?
811cdf0e10cSrcweir			@returns
812cdf0e10cSrcweir			<TRUE/> if so
813cdf0e10cSrcweir		@throws SQLException
814cdf0e10cSrcweir			if a database access error occurs.
815cdf0e10cSrcweir	 */
816cdf0e10cSrcweir	boolean supportsStoredProcedures() raises (SQLException);
817cdf0e10cSrcweir	//-------------------------------------------------------------------------
818cdf0e10cSrcweir
819cdf0e10cSrcweir	/** Are subqueries in comparison expressions supported?
820cdf0e10cSrcweir		@returns
821cdf0e10cSrcweir			<TRUE/> if so
822cdf0e10cSrcweir		@throws SQLException
823cdf0e10cSrcweir			if a database access error occurs.
824cdf0e10cSrcweir	 */
825cdf0e10cSrcweir	boolean supportsSubqueriesInComparisons() raises (SQLException);
826cdf0e10cSrcweir	//-------------------------------------------------------------------------
827cdf0e10cSrcweir
828cdf0e10cSrcweir	/** Are subqueries in 'exists' expressions supported?
829cdf0e10cSrcweir		@returns
830cdf0e10cSrcweir			<TRUE/> if so
831cdf0e10cSrcweir		@throws SQLException
832cdf0e10cSrcweir			if a database access error occurs.
833cdf0e10cSrcweir	 */
834cdf0e10cSrcweir	boolean supportsSubqueriesInExists() raises (SQLException);
835cdf0e10cSrcweir	//-------------------------------------------------------------------------
836cdf0e10cSrcweir
837cdf0e10cSrcweir	/** Are subqueries in 'in' statements supported?
838cdf0e10cSrcweir		@returns
839cdf0e10cSrcweir			<TRUE/> if so
840cdf0e10cSrcweir		@throws SQLException
841cdf0e10cSrcweir			if a database access error occurs.
842cdf0e10cSrcweir	 */
843cdf0e10cSrcweir	boolean supportsSubqueriesInIns() raises (SQLException);
844cdf0e10cSrcweir	//-------------------------------------------------------------------------
845cdf0e10cSrcweir
846cdf0e10cSrcweir	/** Are subqueries in quantified expressions supported?
847cdf0e10cSrcweir		@returns
848cdf0e10cSrcweir			<TRUE/> if so
849cdf0e10cSrcweir		@throws SQLException
850cdf0e10cSrcweir			if a database access error occurs.
851cdf0e10cSrcweir	 */
852cdf0e10cSrcweir	boolean supportsSubqueriesInQuantifieds() raises (SQLException);
853cdf0e10cSrcweir	//-------------------------------------------------------------------------
854cdf0e10cSrcweir
855cdf0e10cSrcweir	/** Are correlated subqueries supported?
856cdf0e10cSrcweir		@returns
857cdf0e10cSrcweir			<TRUE/> if so
858cdf0e10cSrcweir		@throws SQLException
859cdf0e10cSrcweir			if a database access error occurs.
860cdf0e10cSrcweir	 */
861cdf0e10cSrcweir	boolean supportsCorrelatedSubqueries() raises (SQLException);
862cdf0e10cSrcweir	//-------------------------------------------------------------------------
863cdf0e10cSrcweir
864cdf0e10cSrcweir	/** Is SQL UNION supported?
865cdf0e10cSrcweir		@returns
866cdf0e10cSrcweir			<TRUE/> if so
867cdf0e10cSrcweir		@throws SQLException
868cdf0e10cSrcweir			if a database access error occurs.
869cdf0e10cSrcweir	 */
870cdf0e10cSrcweir	boolean supportsUnion() raises (SQLException);
871cdf0e10cSrcweir	//-------------------------------------------------------------------------
872cdf0e10cSrcweir
873cdf0e10cSrcweir	/** Is SQL UNION ALL supported?
874cdf0e10cSrcweir		@returns
875cdf0e10cSrcweir			<TRUE/> if so
876cdf0e10cSrcweir		@throws SQLException
877cdf0e10cSrcweir			if a database access error occurs.
878cdf0e10cSrcweir	 */
879cdf0e10cSrcweir	boolean supportsUnionAll() raises (SQLException);
880cdf0e10cSrcweir	//-------------------------------------------------------------------------
881cdf0e10cSrcweir
882cdf0e10cSrcweir	/** Can cursors remain open across commits?
883cdf0e10cSrcweir		@returns
884cdf0e10cSrcweir			<TRUE/> if so
885cdf0e10cSrcweir		@throws SQLException
886cdf0e10cSrcweir			if a database access error occurs.
887cdf0e10cSrcweir	 */
888cdf0e10cSrcweir	boolean supportsOpenCursorsAcrossCommit() raises (SQLException);
889cdf0e10cSrcweir	//-------------------------------------------------------------------------
890cdf0e10cSrcweir
891cdf0e10cSrcweir	/** Can cursors remain open across rollbacks?
892cdf0e10cSrcweir		@returns
893cdf0e10cSrcweir			<TRUE/> if so
894cdf0e10cSrcweir		@throws SQLException
895cdf0e10cSrcweir			if a database access error occurs.
896cdf0e10cSrcweir	 */
897cdf0e10cSrcweir	boolean supportsOpenCursorsAcrossRollback() raises (SQLException);
898cdf0e10cSrcweir	//-------------------------------------------------------------------------
899cdf0e10cSrcweir
900cdf0e10cSrcweir	/** Can statements remain open across commits?
901cdf0e10cSrcweir		@returns
902cdf0e10cSrcweir			<TRUE/> if so
903cdf0e10cSrcweir		@throws SQLException
904cdf0e10cSrcweir			if a database access error occurs.
905cdf0e10cSrcweir	 */
906cdf0e10cSrcweir	boolean supportsOpenStatementsAcrossCommit() raises (SQLException);
907cdf0e10cSrcweir	//-------------------------------------------------------------------------
908cdf0e10cSrcweir
909cdf0e10cSrcweir	/** Can statements remain open across rollbacks?
910cdf0e10cSrcweir		@returns
911cdf0e10cSrcweir			<TRUE/> if so
912cdf0e10cSrcweir		@throws SQLException
913cdf0e10cSrcweir			if a database access error occurs.
914cdf0e10cSrcweir	 */
915cdf0e10cSrcweir	boolean supportsOpenStatementsAcrossRollback()
916cdf0e10cSrcweir		raises (SQLException);
917cdf0e10cSrcweir    //-------------------------------------------------------------------------
918cdf0e10cSrcweir
919cdf0e10cSrcweir	/** return the maximal number of hex characters in an inline binary literal
920cdf0e10cSrcweir		@returns
921cdf0e10cSrcweir			<TRUE/> if so
922cdf0e10cSrcweir		@throws SQLException
923cdf0e10cSrcweir			if a database access error occurs.
924cdf0e10cSrcweir	 */
925cdf0e10cSrcweir	long getMaxBinaryLiteralLength() raises (SQLException);
926cdf0e10cSrcweir	//-------------------------------------------------------------------------
927cdf0e10cSrcweir
928cdf0e10cSrcweir	/** return the max length for a character literal
929cdf0e10cSrcweir		@returns
930cdf0e10cSrcweir			<TRUE/> if so
931cdf0e10cSrcweir		@throws SQLException
932cdf0e10cSrcweir			if a database access error occurs.
933cdf0e10cSrcweir	 */
934cdf0e10cSrcweir	long getMaxCharLiteralLength() raises (SQLException);
935cdf0e10cSrcweir	//-------------------------------------------------------------------------
936cdf0e10cSrcweir
937cdf0e10cSrcweir	/** return the limit on column name length
938cdf0e10cSrcweir		@returns
939cdf0e10cSrcweir			<TRUE/> if so
940cdf0e10cSrcweir		@throws SQLException
941cdf0e10cSrcweir			if a database access error occurs.
942cdf0e10cSrcweir	 */
943cdf0e10cSrcweir	long getMaxColumnNameLength() raises (SQLException);
944cdf0e10cSrcweir	//-------------------------------------------------------------------------
945cdf0e10cSrcweir
946cdf0e10cSrcweir	/** return the maximum number of columns in a "GROUP BY" clause
947cdf0e10cSrcweir		@returns
948cdf0e10cSrcweir			<TRUE/> if so
949cdf0e10cSrcweir		@throws SQLException
950cdf0e10cSrcweir			if a database access error occurs.
951cdf0e10cSrcweir	 */
952cdf0e10cSrcweir	long getMaxColumnsInGroupBy() raises (SQLException);
953cdf0e10cSrcweir	//-------------------------------------------------------------------------
954cdf0e10cSrcweir
955cdf0e10cSrcweir	/** return the maximum number of columns allowed in an index
956cdf0e10cSrcweir		@returns
957cdf0e10cSrcweir			<TRUE/> if so
958cdf0e10cSrcweir		@throws SQLException
959cdf0e10cSrcweir			if a database access error occurs.
960cdf0e10cSrcweir	 */
961cdf0e10cSrcweir	long getMaxColumnsInIndex() raises (SQLException);
962cdf0e10cSrcweir	//-------------------------------------------------------------------------
963cdf0e10cSrcweir
964cdf0e10cSrcweir	/** return the maximum number of columns in an "ORDER BY" clause
965cdf0e10cSrcweir		@returns
966cdf0e10cSrcweir			<TRUE/> if so
967cdf0e10cSrcweir		@throws SQLException
968cdf0e10cSrcweir			if a database access error occurs.
969cdf0e10cSrcweir	 */
970cdf0e10cSrcweir	long getMaxColumnsInOrderBy() raises (SQLException);
971cdf0e10cSrcweir    //-------------------------------------------------------------------------
972cdf0e10cSrcweir
973cdf0e10cSrcweir	/** return the maximum number of columns in a "SELECT" list
974cdf0e10cSrcweir		@returns
975cdf0e10cSrcweir			<TRUE/> if so
976cdf0e10cSrcweir		@throws SQLException
977cdf0e10cSrcweir			if a database access error occurs.
978cdf0e10cSrcweir	 */
979cdf0e10cSrcweir	long getMaxColumnsInSelect() raises (SQLException);
980cdf0e10cSrcweir	//-------------------------------------------------------------------------
981cdf0e10cSrcweir
982cdf0e10cSrcweir	/** return the maximum number of columns in a table
983cdf0e10cSrcweir		@returns
984cdf0e10cSrcweir			<TRUE/> if so
985cdf0e10cSrcweir		@throws SQLException
986cdf0e10cSrcweir			if a database access error occurs.
987cdf0e10cSrcweir	 */
988cdf0e10cSrcweir	long getMaxColumnsInTable() raises (SQLException);
989cdf0e10cSrcweir	//-------------------------------------------------------------------------
990cdf0e10cSrcweir
991cdf0e10cSrcweir	/** return the number of active connections at a time to this database.
992cdf0e10cSrcweir		@returns
993cdf0e10cSrcweir			<TRUE/> if so
994cdf0e10cSrcweir		@throws SQLException
995cdf0e10cSrcweir			if a database access error occurs.
996cdf0e10cSrcweir	 */
997cdf0e10cSrcweir	long getMaxConnections() raises (SQLException);
998cdf0e10cSrcweir    //-------------------------------------------------------------------------
999cdf0e10cSrcweir
1000cdf0e10cSrcweir	/** return the maximum cursor name length
1001cdf0e10cSrcweir	@returns
1002cdf0e10cSrcweir			<TRUE/> if so
1003cdf0e10cSrcweir		@throws SQLException
1004cdf0e10cSrcweir			if a database access error occurs.
1005cdf0e10cSrcweir	 */
1006cdf0e10cSrcweir	long getMaxCursorNameLength() raises (SQLException);
1007cdf0e10cSrcweir	//-------------------------------------------------------------------------
1008cdf0e10cSrcweir
1009cdf0e10cSrcweir	/** return the maximum length of an index (in bytes)
1010cdf0e10cSrcweir		@returns
1011cdf0e10cSrcweir			<TRUE/> if so
1012cdf0e10cSrcweir		@throws SQLException
1013cdf0e10cSrcweir			if a database access error occurs.
1014cdf0e10cSrcweir	 */
1015cdf0e10cSrcweir	long getMaxIndexLength() raises (SQLException);
1016cdf0e10cSrcweir    //-------------------------------------------------------------------------
1017cdf0e10cSrcweir
1018cdf0e10cSrcweir	/** return the maximum length allowed for a schema name
1019cdf0e10cSrcweir		@returns
1020cdf0e10cSrcweir			<TRUE/> if so
1021cdf0e10cSrcweir		@throws SQLException
1022cdf0e10cSrcweir			if a database access error occurs.
1023cdf0e10cSrcweir	 */
1024cdf0e10cSrcweir	long getMaxSchemaNameLength() raises (SQLException);
1025cdf0e10cSrcweir	//-------------------------------------------------------------------------
1026cdf0e10cSrcweir
1027cdf0e10cSrcweir	/** return the maximum length of a procedure name
1028cdf0e10cSrcweir		@returns
1029cdf0e10cSrcweir			<TRUE/> if so
1030cdf0e10cSrcweir		@throws SQLException
1031cdf0e10cSrcweir			if a database access error occurs.
1032cdf0e10cSrcweir	 */
1033cdf0e10cSrcweir	long getMaxProcedureNameLength() raises (SQLException);
1034cdf0e10cSrcweir	//-------------------------------------------------------------------------
1035cdf0e10cSrcweir
1036cdf0e10cSrcweir	/** return the maximum length of a catalog name
1037cdf0e10cSrcweir		@returns
1038cdf0e10cSrcweir			<TRUE/> if so
1039cdf0e10cSrcweir		@throws SQLException
1040cdf0e10cSrcweir			if a database access error occurs.
1041cdf0e10cSrcweir	 */
1042cdf0e10cSrcweir	long getMaxCatalogNameLength() raises (SQLException);
1043cdf0e10cSrcweir	//-------------------------------------------------------------------------
1044cdf0e10cSrcweir
1045cdf0e10cSrcweir	/** return the maximum length of a single row.
1046cdf0e10cSrcweir	@returns
1047cdf0e10cSrcweir			<TRUE/> if so
1048cdf0e10cSrcweir		@throws SQLException
1049cdf0e10cSrcweir			if a database access error occurs.
1050cdf0e10cSrcweir	 */
1051cdf0e10cSrcweir	long getMaxRowSize() raises (SQLException);
1052cdf0e10cSrcweir	//-------------------------------------------------------------------------
1053cdf0e10cSrcweir
1054cdf0e10cSrcweir	/** Did getMaxRowSize() include LONGVARCHAR and LONGVARBINARY
1055cdf0e10cSrcweir		blobs?
1056cdf0e10cSrcweir		@returns
1057cdf0e10cSrcweir			<TRUE/> if so
1058cdf0e10cSrcweir		@throws SQLException
1059cdf0e10cSrcweir			if a database access error occurs.
1060cdf0e10cSrcweir	 */
1061cdf0e10cSrcweir	boolean doesMaxRowSizeIncludeBlobs() raises (SQLException);
1062cdf0e10cSrcweir	//-------------------------------------------------------------------------
1063cdf0e10cSrcweir
1064cdf0e10cSrcweir	/** return the maximum length of a SQL statement
1065cdf0e10cSrcweir		@returns
1066cdf0e10cSrcweir			<TRUE/> if so
1067cdf0e10cSrcweir		@throws SQLException
1068cdf0e10cSrcweir			if a database access error occurs.
1069cdf0e10cSrcweir	 */
1070cdf0e10cSrcweir	long getMaxStatementLength() raises (SQLException);
1071cdf0e10cSrcweir	//-------------------------------------------------------------------------
1072cdf0e10cSrcweir
1073cdf0e10cSrcweir	/** return the maximal number of open active statements at one time to this database
1074cdf0e10cSrcweir		@returns
1075cdf0e10cSrcweir			<TRUE/> if so
1076cdf0e10cSrcweir		@throws SQLException
1077cdf0e10cSrcweir			if a database access error occurs.
1078cdf0e10cSrcweir	 */
1079cdf0e10cSrcweir	long getMaxStatements() raises (SQLException);
1080cdf0e10cSrcweir	//-------------------------------------------------------------------------
1081cdf0e10cSrcweir
1082cdf0e10cSrcweir	/** return the maximum length of a table name
1083cdf0e10cSrcweir		@returns
1084cdf0e10cSrcweir			<TRUE/> if so
1085cdf0e10cSrcweir		@throws SQLException
1086cdf0e10cSrcweir			if a database access error occurs.
1087cdf0e10cSrcweir	 */
1088cdf0e10cSrcweir	long getMaxTableNameLength() raises (SQLException);
1089cdf0e10cSrcweir	//-------------------------------------------------------------------------
1090cdf0e10cSrcweir
1091cdf0e10cSrcweir	/** return the maximum number of tables in a SELECT statement
1092cdf0e10cSrcweir		@returns
1093cdf0e10cSrcweir			<TRUE/> if so
1094cdf0e10cSrcweir		@throws SQLException
1095cdf0e10cSrcweir			if a database access error occurs.
1096cdf0e10cSrcweir	 */
1097cdf0e10cSrcweir	long getMaxTablesInSelect() raises (SQLException);
1098cdf0e10cSrcweir	//-------------------------------------------------------------------------
1099cdf0e10cSrcweir
1100cdf0e10cSrcweir	/** return the maximum length of a user name
1101cdf0e10cSrcweir		@returns
1102cdf0e10cSrcweir			<TRUE/> if so
1103cdf0e10cSrcweir		@throws SQLException
1104cdf0e10cSrcweir			if a database access error occurs.
1105cdf0e10cSrcweir	 */
1106cdf0e10cSrcweir	long getMaxUserNameLength() raises (SQLException);
1107cdf0e10cSrcweir	//-------------------------------------------------------------------------
1108cdf0e10cSrcweir
1109cdf0e10cSrcweir	/** return the database default transaction isolation level.
1110cdf0e10cSrcweir		The values are defined in
1111cdf0e10cSrcweir		<type scope="com::sun::star::sdbc">TransactionIsolation</type>.
1112cdf0e10cSrcweir		@returns
1113cdf0e10cSrcweir			<TRUE/> if so
1114cdf0e10cSrcweir		@throws SQLException
1115cdf0e10cSrcweir			if a database access error occurs.
1116cdf0e10cSrcweir		@see com::sun::star::sdbc::XConnection
1117cdf0e10cSrcweir	 */
1118cdf0e10cSrcweir	long getDefaultTransactionIsolation() raises (SQLException);
1119cdf0e10cSrcweir    //-------------------------------------------------------------------------
1120cdf0e10cSrcweir
1121cdf0e10cSrcweir	/** support the Database transactions?
1122cdf0e10cSrcweir		If not, invoking the method
1123cdf0e10cSrcweir		<member scope="com::sun::star::sdbc">XConnection::commit()</member>
1124cdf0e10cSrcweir		is a noop and the
1125cdf0e10cSrcweir		isolation level is TransactionIsolation_NONE.
1126cdf0e10cSrcweir		@returns
1127cdf0e10cSrcweir			<TRUE/> if so
1128cdf0e10cSrcweir		@throws SQLException
1129cdf0e10cSrcweir			if a database access error occurs.
1130cdf0e10cSrcweir	 */
1131cdf0e10cSrcweir	boolean supportsTransactions() raises (SQLException);
1132cdf0e10cSrcweir	//-------------------------------------------------------------------------
1133cdf0e10cSrcweir
1134cdf0e10cSrcweir	/** Does this database support the given transaction isolation level?
1135cdf0e10cSrcweir		@returns
1136cdf0e10cSrcweir			<TRUE/> if so
1137cdf0e10cSrcweir		@throws SQLException
1138cdf0e10cSrcweir			if a database access error occurs.
1139cdf0e10cSrcweir @see com::sun::star::sdbc::Connection
1140cdf0e10cSrcweir	 */
1141cdf0e10cSrcweir	boolean supportsTransactionIsolationLevel([in]long level)
1142cdf0e10cSrcweir							raises (SQLException);
1143cdf0e10cSrcweir	//-------------------------------------------------------------------------
1144cdf0e10cSrcweir
1145cdf0e10cSrcweir	/** support the Database both data definition and data manipulation statements
1146cdf0e10cSrcweir		within a transaction?
1147cdf0e10cSrcweir		@returns
1148cdf0e10cSrcweir			<TRUE/> if so
1149cdf0e10cSrcweir		@throws SQLException
1150cdf0e10cSrcweir			if a database access error occurs.
1151cdf0e10cSrcweir<!-- JRH: Unclear on the intent of these many support questions.
1152cdf0e10cSrcweir		If asking, it should state, "Does the Database support both ....?
1153cdf0e10cSrcweir		If declaring, it should state something like the following:
1154cdf0e10cSrcweir
1155cdf0e10cSrcweir		metadata: 	supportsDataDefinitionAndDataManipulationTransactions
1156cdf0e10cSrcweir
1157cdf0e10cSrcweir	"provides support for both data definition and data manipulation statements within a transaction."
1158cdf0e10cSrcweir -->	 */
1159cdf0e10cSrcweir	boolean supportsDataDefinitionAndDataManipulationTransactions()
1160cdf0e10cSrcweir							 raises (SQLException);
1161cdf0e10cSrcweir    //-------------------------------------------------------------------------
1162cdf0e10cSrcweir
1163cdf0e10cSrcweir	/** are only data manipulation statements within a transaction
1164cdf0e10cSrcweir		supported?
1165cdf0e10cSrcweir		@returns
1166cdf0e10cSrcweir			<TRUE/> if so
1167cdf0e10cSrcweir		@throws SQLException
1168cdf0e10cSrcweir			if a database access error occurs.
1169cdf0e10cSrcweir	 */
1170cdf0e10cSrcweir	boolean supportsDataManipulationTransactionsOnly()
1171cdf0e10cSrcweir							raises (SQLException);
1172cdf0e10cSrcweir    //-------------------------------------------------------------------------
1173cdf0e10cSrcweir
1174cdf0e10cSrcweir	/** does a data definition statement within a transaction force the
1175cdf0e10cSrcweir		transaction to commit?
1176cdf0e10cSrcweir		@returns
1177cdf0e10cSrcweir			<TRUE/> if so
1178cdf0e10cSrcweir		@throws SQLException
1179cdf0e10cSrcweir			if a database access error occurs.
1180cdf0e10cSrcweir	 */
1181cdf0e10cSrcweir	boolean dataDefinitionCausesTransactionCommit()
1182cdf0e10cSrcweir							raises (SQLException);
1183cdf0e10cSrcweir    //-------------------------------------------------------------------------
1184cdf0e10cSrcweir
1185cdf0e10cSrcweir	/** is a data definition statement within a transaction ignored?
1186cdf0e10cSrcweir		@returns
1187cdf0e10cSrcweir			<TRUE/> if so
1188cdf0e10cSrcweir		@throws SQLException
1189cdf0e10cSrcweir			if a database access error occurs.
1190cdf0e10cSrcweir	 */
1191cdf0e10cSrcweir	boolean dataDefinitionIgnoredInTransactions()
1192cdf0e10cSrcweir							raises (SQLException);
1193cdf0e10cSrcweir    //-------------------------------------------------------------------------
1194cdf0e10cSrcweir
1195cdf0e10cSrcweir	/** Gets a description of the stored procedures available in a
1196cdf0e10cSrcweir		catalog.
1197cdf0e10cSrcweir
1198cdf0e10cSrcweir
1199cdf0e10cSrcweir		<p>
1200cdf0e10cSrcweir		Only procedure descriptions matching the schema and
1201cdf0e10cSrcweir		procedure name criteria are returned. They are ordered by
1202cdf0e10cSrcweir		PROCEDURE_SCHEM, and PROCEDURE_NAME.
1203cdf0e10cSrcweir		</p>
1204cdf0e10cSrcweir		<p>
1205cdf0e10cSrcweir		Each procedure description has the following columns:
1206cdf0e10cSrcweir		</p>
1207cdf0e10cSrcweir		<ol>
1208cdf0e10cSrcweir		<li>
1209cdf0e10cSrcweir		<b>PROCEDURE_CAT</b> string => procedure catalog (may be <NULL/>)
1210cdf0e10cSrcweir		</li>
1211cdf0e10cSrcweir		<li>
1212cdf0e10cSrcweir		<b>PROCEDURE_SCHEM</b> string => procedure schema (may be <NULL/>)
1213cdf0e10cSrcweir		</li>
1214cdf0e10cSrcweir		<li>
1215cdf0e10cSrcweir		<b>PROCEDURE_NAME</b> string => procedure name
1216cdf0e10cSrcweir		</li>
1217cdf0e10cSrcweir		<li> reserved for future use
1218cdf0e10cSrcweir		</li>
1219cdf0e10cSrcweir		<li> reserved for future use
1220cdf0e10cSrcweir		</li>
1221cdf0e10cSrcweir		<li> reserved for future use
1222cdf0e10cSrcweir		</li>
1223cdf0e10cSrcweir		<li>
1224cdf0e10cSrcweir		<b>REMARKS</b> string => explanatory comment on the procedure
1225cdf0e10cSrcweir		</li>
1226cdf0e10cSrcweir		<li>
1227cdf0e10cSrcweir		<b>PROCEDURE_TYPE</b> short => kind of procedure:
1228cdf0e10cSrcweir		<ul>
1229cdf0e10cSrcweir		<li> UNKNOWN - May return a result
1230cdf0e10cSrcweir		</li>
1231cdf0e10cSrcweir		<li> NO - Does not return a result
1232cdf0e10cSrcweir		</li>
1233cdf0e10cSrcweir		<li> RETURN - Returns a result
1234cdf0e10cSrcweir		</li>
1235cdf0e10cSrcweir		</ul>
1236cdf0e10cSrcweir		</li>
1237cdf0e10cSrcweir		</ol>
1238cdf0e10cSrcweir		@param catalog
1239cdf0e10cSrcweir			a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1240cdf0e10cSrcweir		@param schemaPattern
1241cdf0e10cSrcweir			a schema name pattern; "" retrieves those without a schema
1242cdf0e10cSrcweir		@param procedureNamePattern
1243cdf0e10cSrcweir			a procedure name pattern
1244cdf0e10cSrcweir		@returns
1245cdf0e10cSrcweir			each row is a procedure description
1246cdf0e10cSrcweir		@throws SQLException
1247cdf0e10cSrcweir			if a database access error occurs.
1248cdf0e10cSrcweir	 */
1249cdf0e10cSrcweir	XResultSet getProcedures([in]any catalog, [in]string schemaPattern,
1250cdf0e10cSrcweir					[in]string procedureNamePattern) raises (SQLException);
1251cdf0e10cSrcweir	//-------------------------------------------------------------------------
1252cdf0e10cSrcweir
1253cdf0e10cSrcweir	/** gets a description of a catalog's stored procedure parameters
1254cdf0e10cSrcweir		and result columns.
1255cdf0e10cSrcweir
1256cdf0e10cSrcweir
1257cdf0e10cSrcweir		<p>
1258cdf0e10cSrcweir		Only descriptions matching the schema, procedure and
1259cdf0e10cSrcweir		parameter name criteria are returned. They are ordered by
1260cdf0e10cSrcweir		PROCEDURE_SCHEM and PROCEDURE_NAME. Within this, the return value,
1261cdf0e10cSrcweir		if any, is first. Next are the parameter descriptions in call
1262cdf0e10cSrcweir		order. The column descriptions follow in column number order.
1263cdf0e10cSrcweir		</p>
1264cdf0e10cSrcweir		<p>Each row in the XResultSet is a parameter description or
1265cdf0e10cSrcweir		column description with the following fields:
1266cdf0e10cSrcweir		</p>
1267cdf0e10cSrcweir		<ol>
1268cdf0e10cSrcweir		<li>
1269cdf0e10cSrcweir		<b>PROCEDURE_CAT</b> string => procedure catalog (may be <NULL/>)
1270cdf0e10cSrcweir		</li>
1271cdf0e10cSrcweir		<li>
1272cdf0e10cSrcweir		<b>PROCEDURE_SCHEM</b> string => procedure schema (may be <NULL/>)
1273cdf0e10cSrcweir		</li>
1274cdf0e10cSrcweir		<li>
1275cdf0e10cSrcweir		<b>PROCEDURE_NAME</b> string => procedure name
1276cdf0e10cSrcweir		</li>
1277cdf0e10cSrcweir		<li>
1278cdf0e10cSrcweir		<b>COLUMN_NAME</b> string => column/parameter name
1279cdf0e10cSrcweir		</li>
1280cdf0e10cSrcweir		<li>
1281cdf0e10cSrcweir		<b>COLUMN_TYPE</b> Short => kind of column/parameter:
1282cdf0e10cSrcweir		<ul>
1283cdf0e10cSrcweir		<li> UNKNOWN - nobody knows
1284cdf0e10cSrcweir		</li>
1285cdf0e10cSrcweir		<li> IN - IN parameter
1286cdf0e10cSrcweir		</li>
1287cdf0e10cSrcweir		<li> INOUT - INOUT parameter
1288cdf0e10cSrcweir		</li>
1289cdf0e10cSrcweir		<li> OUT - OUT parameter
1290cdf0e10cSrcweir		</li>
1291cdf0e10cSrcweir		<li> RETURN - procedure return value
1292cdf0e10cSrcweir		</li>
1293cdf0e10cSrcweir		<li> RESULT - result column in XResultSet
1294cdf0e10cSrcweir		</li>
1295cdf0e10cSrcweir		</ul>
1296cdf0e10cSrcweir		</li>
1297cdf0e10cSrcweir		<li>
1298cdf0e10cSrcweir		<b>DATA_TYPE</b> short => SQL type from java.sql.Types
1299cdf0e10cSrcweir		</li>
1300cdf0e10cSrcweir		<li>
1301cdf0e10cSrcweir		<b>TYPE_NAME</b> string => SQL type name, for a UDT type the
1302cdf0e10cSrcweir		type name is fully qualified
1303cdf0e10cSrcweir		</li>
1304cdf0e10cSrcweir		<li>
1305cdf0e10cSrcweir		<b>PRECISION</b> long => precision
1306cdf0e10cSrcweir		</li>
1307cdf0e10cSrcweir		<li>
1308cdf0e10cSrcweir		<b>LENGTH</b> long => length in bytes of data
1309cdf0e10cSrcweir		</li>
1310cdf0e10cSrcweir		<li>
1311cdf0e10cSrcweir		<b>SCALE</b> short => scale
1312cdf0e10cSrcweir		</li>
1313cdf0e10cSrcweir		<li>
1314cdf0e10cSrcweir		<b>RADIX</b> short => radix
1315cdf0e10cSrcweir		</li>
1316cdf0e10cSrcweir		<li>
1317cdf0e10cSrcweir		<b>NULLABLE</b> short => can it contain NULL?
1318cdf0e10cSrcweir		<ul>
1319cdf0e10cSrcweir		<li> NO_NULLS - does not allow NULL values
1320cdf0e10cSrcweir		</li>
1321cdf0e10cSrcweir		<li> NULLABLE - allows NULL values
1322cdf0e10cSrcweir		</li>
1323cdf0e10cSrcweir		<li> NULLABLE_UNKNOWN - nullability unknown
1324cdf0e10cSrcweir		</li>
1325cdf0e10cSrcweir		</ul>
1326cdf0e10cSrcweir		</li>
1327cdf0e10cSrcweir		<li>
1328cdf0e10cSrcweir		<b>REMARKS</b> string => comment describing parameter/column
1329cdf0e10cSrcweir		</li>
1330cdf0e10cSrcweir		</ol>
1331cdf0e10cSrcweir		<p>
1332cdf0e10cSrcweir		<b>Note:</b> Some databases may not return the column
1333cdf0e10cSrcweir		descriptions for a procedure. Additional columns beyond
1334cdf0e10cSrcweir		REMARKS can be defined by the database.
1335cdf0e10cSrcweir		</p>
1336cdf0e10cSrcweir		@param catalog
1337cdf0e10cSrcweir			a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1338cdf0e10cSrcweir		@param schemaPattern
1339cdf0e10cSrcweir			a schema name pattern; "" retrieves those without a schema
1340cdf0e10cSrcweir		@param procedureNamePattern
1341cdf0e10cSrcweir			a procedure name pattern
1342cdf0e10cSrcweir		@param columnNamePattern
1343cdf0e10cSrcweir			a column name pattern
1344cdf0e10cSrcweir		@returns
1345cdf0e10cSrcweir			each row describes a stored procedure parameter or column
1346cdf0e10cSrcweir		@throws SQLException
1347cdf0e10cSrcweir			if a database access error occurs.
1348cdf0e10cSrcweir	 */
1349cdf0e10cSrcweir	XResultSet getProcedureColumns([in]any catalog, [in]string schemaPattern,
1350cdf0e10cSrcweir								   [in]string procedureNamePattern,
1351cdf0e10cSrcweir								   [in]string columnNamePattern)
1352cdf0e10cSrcweir						raises (SQLException);
1353cdf0e10cSrcweir    //-------------------------------------------------------------------------
1354cdf0e10cSrcweir
1355cdf0e10cSrcweir	/** gets a description of tables available in a catalog.
1356cdf0e10cSrcweir
1357cdf0e10cSrcweir
1358cdf0e10cSrcweir		<p>Only table descriptions matching the catalog, schema, table
1359cdf0e10cSrcweir		name, and type criteria are returned. They are ordered by
1360cdf0e10cSrcweir		TABLE_TYPE, TABLE_SCHEM, and TABLE_NAME.
1361cdf0e10cSrcweir		</p>
1362cdf0e10cSrcweir		<p>Each table description has the following columns:
1363cdf0e10cSrcweir		</p>
1364cdf0e10cSrcweir		<ol>
1365cdf0e10cSrcweir		<li>
1366cdf0e10cSrcweir		<b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1367cdf0e10cSrcweir		</li>
1368cdf0e10cSrcweir		<li>
1369cdf0e10cSrcweir		<b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1370cdf0e10cSrcweir		</li>
1371cdf0e10cSrcweir		<li>
1372cdf0e10cSrcweir		<b>TABLE_NAME</b> string => table name
1373cdf0e10cSrcweir		</li>
1374cdf0e10cSrcweir		<li>
1375cdf0e10cSrcweir		<b>TABLE_TYPE</b> string => table type. Typical types are "TABLE",
1376cdf0e10cSrcweir		"VIEW",	"SYSTEM TABLE", "GLOBAL TEMPORARY",
1377cdf0e10cSrcweir		"LOCAL TEMPORARY", "ALIAS", "SYNONYM".
1378cdf0e10cSrcweir		</li>
1379cdf0e10cSrcweir		<li>
1380cdf0e10cSrcweir		<b>REMARKS</b> string => explanatory comment on the table
1381cdf0e10cSrcweir		</li>
1382cdf0e10cSrcweir		</ol>
1383cdf0e10cSrcweir		<p>
1384cdf0e10cSrcweir		<b>Note:</b> Some databases may not return information for
1385cdf0e10cSrcweir		all tables.
1386cdf0e10cSrcweir		</p>
1387cdf0e10cSrcweir		@param catalog
1388cdf0e10cSrcweir			a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1389cdf0e10cSrcweir		@param schemaPattern
1390cdf0e10cSrcweir			a schema name pattern; "" retrieves those without a schema
1391cdf0e10cSrcweir		@param tableNamePattern
1392cdf0e10cSrcweir			a table name pattern
1393cdf0e10cSrcweir		@param types
1394cdf0e10cSrcweir			a list of table types to include
1395cdf0e10cSrcweir		@returns
1396cdf0e10cSrcweir			each row is a table description
1397cdf0e10cSrcweir		@throws SQLException
1398cdf0e10cSrcweir			if a database access error occurs.
1399cdf0e10cSrcweir	 */
1400cdf0e10cSrcweir	XResultSet getTables([in]any catalog, [in]string schemaPattern,
1401cdf0e10cSrcweir		[in]string tableNamePattern, [in]sequence<string> types)
1402cdf0e10cSrcweir		raises (SQLException);
1403cdf0e10cSrcweir	//-------------------------------------------------------------------------
1404cdf0e10cSrcweir
1405cdf0e10cSrcweir	/** Gets the schema names available in this database. The results
1406cdf0e10cSrcweir		are ordered by schema name.
1407cdf0e10cSrcweir
1408cdf0e10cSrcweir
1409cdf0e10cSrcweir		<p>The schema column is:
1410cdf0e10cSrcweir		</p>
1411cdf0e10cSrcweir		<ol>
1412cdf0e10cSrcweir		<li>
1413cdf0e10cSrcweir		<b>TABLE_SCHEM</b> string => schema name
1414cdf0e10cSrcweir		</li>
1415cdf0e10cSrcweir		</ol>
1416cdf0e10cSrcweir		@returns
1417cdf0e10cSrcweir			each row has a single String column that is a schema name
1418cdf0e10cSrcweir		@throws SQLException
1419cdf0e10cSrcweir			if a database access error occurs.
1420cdf0e10cSrcweir	 */
1421cdf0e10cSrcweir	XResultSet getSchemas() raises (SQLException);
1422cdf0e10cSrcweir	//-------------------------------------------------------------------------
1423cdf0e10cSrcweir
1424cdf0e10cSrcweir	/** gets the catalog names available in this database. The results
1425cdf0e10cSrcweir		are ordered by catalog name.
1426cdf0e10cSrcweir
1427cdf0e10cSrcweir
1428cdf0e10cSrcweir		<p>The catalog column is:
1429cdf0e10cSrcweir		</p>
1430cdf0e10cSrcweir		<ol>
1431cdf0e10cSrcweir		<li>
1432cdf0e10cSrcweir		<b>TABLE_CAT</b> string => catalog name
1433cdf0e10cSrcweir		</li>
1434cdf0e10cSrcweir		</ol>
1435cdf0e10cSrcweir		@returns
1436cdf0e10cSrcweir			each row has a single String column that is a catalog name
1437cdf0e10cSrcweir		@throws SQLException
1438cdf0e10cSrcweir			if a database access error occurs.
1439cdf0e10cSrcweir	 */
1440cdf0e10cSrcweir	XResultSet getCatalogs() raises (SQLException);
1441cdf0e10cSrcweir	//-------------------------------------------------------------------------
1442cdf0e10cSrcweir
1443cdf0e10cSrcweir	/** gets the table types available in this database. The results
1444cdf0e10cSrcweir		are ordered by table type.
1445cdf0e10cSrcweir
1446cdf0e10cSrcweir
1447cdf0e10cSrcweir		<p>The table type is:
1448cdf0e10cSrcweir		</p>
1449cdf0e10cSrcweir		<ol>
1450cdf0e10cSrcweir		<li>
1451cdf0e10cSrcweir		<b>TABLE_TYPE</b> string => table type. Typical types are "TABLE",
1452cdf0e10cSrcweir		"VIEW",	"SYSTEM TABLE", "GLOBAL TEMPORARY",
1453cdf0e10cSrcweir		"LOCAL TEMPORARY", "ALIAS", "SYNONYM".
1454cdf0e10cSrcweir		</li>
1455cdf0e10cSrcweir		</ol>
1456cdf0e10cSrcweir		@returns
1457cdf0e10cSrcweir			each row has a single String column that is a table type
1458cdf0e10cSrcweir		@throws SQLException
1459cdf0e10cSrcweir			if a database access error occurs.
1460cdf0e10cSrcweir	 */
1461cdf0e10cSrcweir	XResultSet getTableTypes() raises (SQLException);
1462cdf0e10cSrcweir	//-------------------------------------------------------------------------
1463cdf0e10cSrcweir
1464cdf0e10cSrcweir	/** gets a description of table columns available in
1465cdf0e10cSrcweir		the specified catalog.
1466cdf0e10cSrcweir
1467cdf0e10cSrcweir
1468cdf0e10cSrcweir		<p>Only column descriptions matching the catalog, schema, table
1469cdf0e10cSrcweir		and column name criteria are returned. They are ordered by
1470cdf0e10cSrcweir		TABLE_SCHEM, TABLE_NAME, and ORDINAL_POSITION.
1471cdf0e10cSrcweir		</p>
1472cdf0e10cSrcweir		<p>Each column description has the following columns:
1473cdf0e10cSrcweir		</p>
1474cdf0e10cSrcweir		<ol>
1475cdf0e10cSrcweir		<li>
1476cdf0e10cSrcweir		<b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1477cdf0e10cSrcweir		</li>
1478cdf0e10cSrcweir		<li>
1479cdf0e10cSrcweir		<b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1480cdf0e10cSrcweir		</li>
1481cdf0e10cSrcweir		<li>
1482cdf0e10cSrcweir		<b>TABLE_NAME</b> string => table name
1483cdf0e10cSrcweir		</li>
1484cdf0e10cSrcweir		<li>
1485cdf0e10cSrcweir		<b>COLUMN_NAME</b> string => column name
1486cdf0e10cSrcweir		</li>
1487cdf0e10cSrcweir		<li>
1488cdf0e10cSrcweir		<b>DATA_TYPE</b> short => SQL type from java.sql.Types
1489cdf0e10cSrcweir		</li>
1490cdf0e10cSrcweir		<li>
1491cdf0e10cSrcweir		<b>TYPE_NAME</b> string => Data source dependent type name,
1492cdf0e10cSrcweir		for a UDT the type name is fully qualified
1493cdf0e10cSrcweir		</li>
1494cdf0e10cSrcweir		<li>
1495cdf0e10cSrcweir		<b>COLUMN_SIZE</b> long => column size. For char or date
1496cdf0e10cSrcweir		types this is the maximum number of characters, for numeric or
1497cdf0e10cSrcweir		decimal types this is precision.
1498cdf0e10cSrcweir		</li>
1499cdf0e10cSrcweir		<li>
1500cdf0e10cSrcweir		<b>BUFFER_LENGTH</b> is not used.
1501cdf0e10cSrcweir		</li>
1502cdf0e10cSrcweir		<li>
1503cdf0e10cSrcweir		<b>DECIMAL_DIGITS</b> long => the number of fractional digits
1504cdf0e10cSrcweir		</li>
1505cdf0e10cSrcweir		<li>
1506cdf0e10cSrcweir		<b>NUM_PREC_RADIX</b> long => Radix (typically either 10 or 2)
1507cdf0e10cSrcweir		</li>
1508cdf0e10cSrcweir		<li>
1509cdf0e10cSrcweir		<b>NULLABLE</b> long => is NULL allowed?
1510cdf0e10cSrcweir		<ul>
1511cdf0e10cSrcweir		<li> NO_NULLS - might not allow NULL values
1512cdf0e10cSrcweir		</li>
1513cdf0e10cSrcweir		<li> NULABLE - definitely allows NULL values
1514cdf0e10cSrcweir		</li>
1515cdf0e10cSrcweir		<li> NULLABLE_UNKNOWN - nullability unknown
1516cdf0e10cSrcweir		</li>
1517cdf0e10cSrcweir		</ul>
1518cdf0e10cSrcweir		</li>
1519cdf0e10cSrcweir		<li>
1520cdf0e10cSrcweir		<b>REMARKS</b> string => comment describing column (may be <NULL/>)
1521cdf0e10cSrcweir		</li>
1522cdf0e10cSrcweir		<li>
1523cdf0e10cSrcweir		<b>COLUMN_DEF</b> string => default value (may be <NULL/>)
1524cdf0e10cSrcweir		</li>
1525cdf0e10cSrcweir		<li>
1526cdf0e10cSrcweir		<b>SQL_DATA_TYPE</b> long => unused
1527cdf0e10cSrcweir		</li>
1528cdf0e10cSrcweir		<li>
1529cdf0e10cSrcweir		<b>SQL_DATETIME_SUB</b> long => unused
1530cdf0e10cSrcweir		</li>
1531cdf0e10cSrcweir		<li>
1532cdf0e10cSrcweir		<b>CHAR_OCTET_LENGTH</b> long => for char types the
1533cdf0e10cSrcweir		maximum number of bytes in the column
1534cdf0e10cSrcweir		</li>
1535cdf0e10cSrcweir		<li>
1536cdf0e10cSrcweir		<b>ORDINAL_POSITION</b> int	=> index of column in table
1537cdf0e10cSrcweir		(starting at 1)
1538cdf0e10cSrcweir		</li>
1539cdf0e10cSrcweir		<li>
1540cdf0e10cSrcweir		<b>IS_NULLABLE</b> string => "NO" means column definitely
1541cdf0e10cSrcweir		does not allow NULL values; "YES" means the column might
1542cdf0e10cSrcweir		allow NULL values. An empty string means nobody knows.
1543cdf0e10cSrcweir		</li>
1544cdf0e10cSrcweir		</ol>
1545cdf0e10cSrcweir		@param catalog
1546cdf0e10cSrcweir			a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1547cdf0e10cSrcweir		@param schemaPattern
1548cdf0e10cSrcweir			a schema name pattern; "" retrieves those without a schema
1549cdf0e10cSrcweir		@param tableNamePattern
1550cdf0e10cSrcweir			a table name pattern
1551cdf0e10cSrcweir		@param columnNamePattern
1552cdf0e10cSrcweir			a column name pattern
1553cdf0e10cSrcweir		@returns
1554cdf0e10cSrcweir			each row is a column description
1555cdf0e10cSrcweir		@throws SQLException
1556cdf0e10cSrcweir			if a database access error occurs.
1557cdf0e10cSrcweir	 */
1558cdf0e10cSrcweir	XResultSet getColumns([in]any catalog, [in]string schemaPattern,
1559cdf0e10cSrcweir		[in]string tableNamePattern, [in]string columnNamePattern)
1560cdf0e10cSrcweir					raises (SQLException);
1561cdf0e10cSrcweir	//-------------------------------------------------------------------------
1562cdf0e10cSrcweir
1563cdf0e10cSrcweir	/** gets a description of the access rights for a table's columns.
1564cdf0e10cSrcweir
1565cdf0e10cSrcweir
1566cdf0e10cSrcweir		<p>
1567cdf0e10cSrcweir		Only privileges matching the column name criteria are
1568cdf0e10cSrcweir		returned. They are ordered by COLUMN_NAME and PRIVILEGE.
1569cdf0e10cSrcweir		</p>
1570cdf0e10cSrcweir		<p>Each privilige description has the following columns:
1571cdf0e10cSrcweir		</p>
1572cdf0e10cSrcweir		<ol>
1573cdf0e10cSrcweir		<li>
1574cdf0e10cSrcweir		<b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1575cdf0e10cSrcweir		</li>
1576cdf0e10cSrcweir		<li>
1577cdf0e10cSrcweir		<b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1578cdf0e10cSrcweir		</li>
1579cdf0e10cSrcweir		<li>
1580cdf0e10cSrcweir		<b>TABLE_NAME</b> string => table name
1581cdf0e10cSrcweir		</li>
1582cdf0e10cSrcweir		<li>
1583cdf0e10cSrcweir		<b>COLUMN_NAME</b> string => column name
1584cdf0e10cSrcweir		</li>
1585cdf0e10cSrcweir		<li>
1586cdf0e10cSrcweir		<b>GRANTOR</b> => grantor of access (may be <NULL/>)
1587cdf0e10cSrcweir		</li>
1588cdf0e10cSrcweir		<li>
1589cdf0e10cSrcweir		<b>GRANTEE</b> string => grantee of access
1590cdf0e10cSrcweir		</li>
1591cdf0e10cSrcweir		<li>
1592cdf0e10cSrcweir		<b>PRIVILEGE</b> string => name of access (SELECT,
1593cdf0e10cSrcweir		INSERT, UPDATE, REFERENCES, ...)
1594cdf0e10cSrcweir		</li>
1595cdf0e10cSrcweir		<li>
1596cdf0e10cSrcweir		<b>IS_GRANTABLE</b> string => "YES" if grantee is permitted
1597cdf0e10cSrcweir		to grant to others; "NO" if not; <NULL/> if unknown
1598cdf0e10cSrcweir		</li>
1599cdf0e10cSrcweir		</ol>
1600cdf0e10cSrcweir		@param catalog
1601cdf0e10cSrcweir			a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1602cdf0e10cSrcweir		@param schema
1603cdf0e10cSrcweir			a schema name ; "" retrieves those without a schema
1604cdf0e10cSrcweir		@param table
1605cdf0e10cSrcweir			a table name
1606cdf0e10cSrcweir		@param columnNamePattern
1607cdf0e10cSrcweir			a column name pattern
1608cdf0e10cSrcweir		@returns
1609cdf0e10cSrcweir			each row is a column privilege description
1610cdf0e10cSrcweir		@throws SQLException
1611cdf0e10cSrcweir			if a database access error occurs.
1612cdf0e10cSrcweir	 */
1613cdf0e10cSrcweir	XResultSet getColumnPrivileges([in]any catalog, [in]string schema,
1614cdf0e10cSrcweir		[in]string table, [in]string columnNamePattern) raises (SQLException);
1615cdf0e10cSrcweir    //-------------------------------------------------------------------------
1616cdf0e10cSrcweir
1617cdf0e10cSrcweir	/** gets a description of the access rights for each table available
1618cdf0e10cSrcweir		in a catalog. Note that a table privilege applies to one or
1619cdf0e10cSrcweir		more columns in the table. It would be wrong to assume that
1620cdf0e10cSrcweir		this priviledge applies to all columns (this may be <TRUE/> for
1621cdf0e10cSrcweir		some systems but is not <TRUE/> for all.)
1622cdf0e10cSrcweir
1623cdf0e10cSrcweir
1624cdf0e10cSrcweir		<p>Only privileges matching the schema and table name
1625cdf0e10cSrcweir		criteria are returned. They are ordered by TABLE_SCHEM,
1626cdf0e10cSrcweir		TABLE_NAME, and PRIVILEGE.
1627cdf0e10cSrcweir		</p>
1628cdf0e10cSrcweir		<p>Each privilige description has the following columns:
1629cdf0e10cSrcweir		</p>
1630cdf0e10cSrcweir		<ol>
1631cdf0e10cSrcweir		<li>
1632cdf0e10cSrcweir		<b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1633cdf0e10cSrcweir		</li>
1634cdf0e10cSrcweir		<li>
1635cdf0e10cSrcweir		<b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1636cdf0e10cSrcweir		</li>
1637cdf0e10cSrcweir		<li>
1638cdf0e10cSrcweir		<b>TABLE_NAME</b> string => table name
1639cdf0e10cSrcweir		</li>
1640cdf0e10cSrcweir		<li>
1641cdf0e10cSrcweir		<b>GRANTOR</b> => grantor of access (may be <NULL/>)
1642cdf0e10cSrcweir		</li>
1643cdf0e10cSrcweir		<li>
1644cdf0e10cSrcweir		<b>GRANTEE</b> string => grantee of access
1645cdf0e10cSrcweir		</li>
1646cdf0e10cSrcweir		<li>
1647cdf0e10cSrcweir		<b>PRIVILEGE</b> string => name of access (SELECT,
1648cdf0e10cSrcweir		INSERT, UPDATE, REFERENCES, ...)
1649cdf0e10cSrcweir		</li>
1650cdf0e10cSrcweir		<li>
1651cdf0e10cSrcweir		<b>IS_GRANTABLE</b> string => "YES" if grantee is permitted
1652cdf0e10cSrcweir		to grant to others; "NO" if not; <NULL/> if unknown
1653cdf0e10cSrcweir		</li>
1654cdf0e10cSrcweir		</ol>
1655cdf0e10cSrcweir		@param catalog
1656cdf0e10cSrcweir			a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1657cdf0e10cSrcweir		@param schemaPattern
1658cdf0e10cSrcweir			a schema name pattern; "" retrieves those without a schema
1659cdf0e10cSrcweir		@param tableNamePattern
1660cdf0e10cSrcweir			a table name pattern
1661cdf0e10cSrcweir		@returns
1662cdf0e10cSrcweir			each row is a table privilege description
1663cdf0e10cSrcweir		@throws SQLException
1664cdf0e10cSrcweir			if a database access error occurs.
1665cdf0e10cSrcweir	 */
1666cdf0e10cSrcweir	XResultSet getTablePrivileges([in]any catalog, [in]string schemaPattern,
1667cdf0e10cSrcweir				[in]string tableNamePattern) raises (SQLException);
1668cdf0e10cSrcweir	//-------------------------------------------------------------------------
1669cdf0e10cSrcweir
1670cdf0e10cSrcweir	/** gets a description of a table's optimal set of columns that
1671cdf0e10cSrcweir		uniquely identifies a row. They are ordered by SCOPE.
1672cdf0e10cSrcweir
1673cdf0e10cSrcweir
1674cdf0e10cSrcweir		<p>Each column description has the following columns:
1675cdf0e10cSrcweir		</p>
1676cdf0e10cSrcweir		<ol>
1677cdf0e10cSrcweir		<li>
1678cdf0e10cSrcweir		<b>SCOPE</b> short => actual scope of result
1679cdf0e10cSrcweir		<ul>
1680cdf0e10cSrcweir		<li> TEMPORARY - very temporary, while using row
1681cdf0e10cSrcweir		</li>
1682cdf0e10cSrcweir		<li> TRANSACTION - valid for remainder of current transaction
1683cdf0e10cSrcweir		</li>
1684cdf0e10cSrcweir		<li> SESSION - valid for remainder of current session
1685cdf0e10cSrcweir		</li>
1686cdf0e10cSrcweir		</ul>
1687cdf0e10cSrcweir		</li>
1688cdf0e10cSrcweir		<li>
1689cdf0e10cSrcweir		<b>COLUMN_NAME</b> string => column name
1690cdf0e10cSrcweir		</li>
1691cdf0e10cSrcweir		<li>
1692cdf0e10cSrcweir		<b>DATA_TYPE</b> short => SQL data type from java.sql.Types
1693cdf0e10cSrcweir		</li>
1694cdf0e10cSrcweir		<li>
1695cdf0e10cSrcweir		<b>TYPE_NAME</b> string => Data source dependent type name,
1696cdf0e10cSrcweir		for a UDT the type name is fully qualified
1697cdf0e10cSrcweir		</li>
1698cdf0e10cSrcweir		<li>
1699cdf0e10cSrcweir		<b>COLUMN_SIZE</b> long => precision
1700cdf0e10cSrcweir		</li>
1701cdf0e10cSrcweir		<li>
1702cdf0e10cSrcweir		<b>BUFFER_LENGTH</b> long => not used
1703cdf0e10cSrcweir		</li>
1704cdf0e10cSrcweir		<li>
1705cdf0e10cSrcweir		<b>DECIMAL_DIGITS</b> short	 => scale
1706cdf0e10cSrcweir		</li>
1707cdf0e10cSrcweir		<li>
1708cdf0e10cSrcweir		<b>PSEUDO_COLUMN</b> short => is this a pseudo column
1709cdf0e10cSrcweir		like an Oracle ROWID
1710cdf0e10cSrcweir		<ul>
1711cdf0e10cSrcweir		<li> UNKNOWN - may or may not be pseudo column
1712cdf0e10cSrcweir		</li>
1713cdf0e10cSrcweir		<li> NOT_PSEUDO - is NOT a pseudo column
1714cdf0e10cSrcweir		</li>
1715cdf0e10cSrcweir		<li> PSEUDO - is a pseudo column
1716cdf0e10cSrcweir		</li>
1717cdf0e10cSrcweir		</ul>
1718cdf0e10cSrcweir		</li>
1719cdf0e10cSrcweir		</ol>
1720cdf0e10cSrcweir		@param catalog
1721cdf0e10cSrcweir			a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1722cdf0e10cSrcweir		@param schema
1723cdf0e10cSrcweir			a schema name; "" retrieves those without a schema
1724cdf0e10cSrcweir		@param table
1725cdf0e10cSrcweir			a table name
1726cdf0e10cSrcweir		@param scope
1727cdf0e10cSrcweir			the scope of interest; use same values as SCOPE
1728cdf0e10cSrcweir		@param nullable
1729cdf0e10cSrcweir			include columns that are nullable?
1730cdf0e10cSrcweir		@returns
1731cdf0e10cSrcweir			each row is a column description
1732cdf0e10cSrcweir		@throws SQLException
1733cdf0e10cSrcweir			if a database access error occurs.
1734cdf0e10cSrcweir	 */
1735cdf0e10cSrcweir	XResultSet getBestRowIdentifier([in]any catalog, [in]string schema,
1736cdf0e10cSrcweir		[in]string table, [in]long scope, [in] boolean nullable)
1737cdf0e10cSrcweir		raises (SQLException);
1738cdf0e10cSrcweir	//-------------------------------------------------------------------------
1739cdf0e10cSrcweir
1740cdf0e10cSrcweir	/** gets a description of a table's columns that are automatically
1741cdf0e10cSrcweir		updated when any value in a row is updated. They are
1742cdf0e10cSrcweir		unordered.
1743cdf0e10cSrcweir
1744cdf0e10cSrcweir
1745cdf0e10cSrcweir		<p>Each column description has the following columns:
1746cdf0e10cSrcweir		</p>
1747cdf0e10cSrcweir		<ol>
1748cdf0e10cSrcweir		<li>
1749cdf0e10cSrcweir		<b>SCOPE</b> short => is not used
1750cdf0e10cSrcweir		</li>
1751cdf0e10cSrcweir		<li>
1752cdf0e10cSrcweir		<b>COLUMN_NAME</b> string => column name
1753cdf0e10cSrcweir		</li>
1754cdf0e10cSrcweir		<li>
1755cdf0e10cSrcweir		<b>DATA_TYPE</b> short => SQL data type from java.sql.Types
1756cdf0e10cSrcweir		</li>
1757cdf0e10cSrcweir		<li>
1758cdf0e10cSrcweir		<b>TYPE_NAME</b> string => Data source dependent type name
1759cdf0e10cSrcweir		</li>
1760cdf0e10cSrcweir		<li>
1761cdf0e10cSrcweir		<b>COLUMN_SIZE</b> long => precision
1762cdf0e10cSrcweir		</li>
1763cdf0e10cSrcweir		<li>
1764cdf0e10cSrcweir		<b>BUFFER_LENGTH</b> long => length of column value in bytes
1765cdf0e10cSrcweir		</li>
1766cdf0e10cSrcweir		<li>
1767cdf0e10cSrcweir		<b>DECIMAL_DIGITS</b> short	 => scale
1768cdf0e10cSrcweir		</li>
1769cdf0e10cSrcweir		<li>
1770cdf0e10cSrcweir		<b>PSEUDO_COLUMN</b> short => is this a pseudo column
1771cdf0e10cSrcweir		like an Oracle ROWID
1772cdf0e10cSrcweir		<ul>
1773cdf0e10cSrcweir		<li> UNKNOWN - may or may not be pseudo column
1774cdf0e10cSrcweir		</li>
1775cdf0e10cSrcweir		<li> NOT_PSEUDO - is NOT a pseudo column
1776cdf0e10cSrcweir		</li>
1777cdf0e10cSrcweir		<li> PSEUDO - is a pseudo column
1778cdf0e10cSrcweir		</li>
1779cdf0e10cSrcweir		</ul>
1780cdf0e10cSrcweir		</li>
1781cdf0e10cSrcweir		</ol>
1782cdf0e10cSrcweir		@param catalog
1783cdf0e10cSrcweir			a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1784cdf0e10cSrcweir		@param schema
1785cdf0e10cSrcweir			a schema name; "" retrieves those without a schema
1786cdf0e10cSrcweir		@param table
1787cdf0e10cSrcweir			a table name
1788cdf0e10cSrcweir		@returns
1789cdf0e10cSrcweir			each row is a column description
1790cdf0e10cSrcweir		@throws SQLException
1791cdf0e10cSrcweir			if a database access error occurs.
1792cdf0e10cSrcweir	 */
1793cdf0e10cSrcweir	XResultSet getVersionColumns([in]any catalog, [in]string schema,
1794cdf0e10cSrcweir				[in]string table) raises (SQLException);
1795cdf0e10cSrcweir	//-------------------------------------------------------------------------
1796cdf0e10cSrcweir
1797cdf0e10cSrcweir	/** gets a description of a table's primary key columns. They
1798cdf0e10cSrcweir		are ordered by COLUMN_NAME.
1799cdf0e10cSrcweir
1800cdf0e10cSrcweir
1801cdf0e10cSrcweir		<p>Each primary key column description has the following columns:
1802cdf0e10cSrcweir		</p>
1803cdf0e10cSrcweir		<ol>
1804cdf0e10cSrcweir		<li>
1805cdf0e10cSrcweir		<b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1806cdf0e10cSrcweir		</li>
1807cdf0e10cSrcweir		<li>
1808cdf0e10cSrcweir		<b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1809cdf0e10cSrcweir		</li>
1810cdf0e10cSrcweir		<li>
1811cdf0e10cSrcweir		<b>TABLE_NAME</b> string => table name
1812cdf0e10cSrcweir		</li>
1813cdf0e10cSrcweir		<li>
1814cdf0e10cSrcweir		<b>COLUMN_NAME</b> string => column name
1815cdf0e10cSrcweir		</li>
1816cdf0e10cSrcweir		<li>
1817cdf0e10cSrcweir		<b>KEY_SEQ</b> short => sequence number within primary key
1818cdf0e10cSrcweir		</li>
1819cdf0e10cSrcweir		<li>
1820cdf0e10cSrcweir		<b>PK_NAME</b> string => primary key name (may be <NULL/>)
1821cdf0e10cSrcweir		</li>
1822cdf0e10cSrcweir		</ol>
1823cdf0e10cSrcweir		@param catalog
1824cdf0e10cSrcweir			a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1825cdf0e10cSrcweir		@param schema
1826cdf0e10cSrcweir			a schema name; "" retrieves those without a schema
1827cdf0e10cSrcweir		@param table
1828cdf0e10cSrcweir			a table name
1829cdf0e10cSrcweir		@returns
1830cdf0e10cSrcweir			each row is a primary key column description
1831cdf0e10cSrcweir		@throws SQLException
1832cdf0e10cSrcweir			if a database access error occurs.
1833cdf0e10cSrcweir	 */
1834cdf0e10cSrcweir	XResultSet getPrimaryKeys([in]any catalog, [in]string schema,
1835cdf0e10cSrcweir				[in]string table) raises (SQLException);
1836cdf0e10cSrcweir	//-------------------------------------------------------------------------
1837cdf0e10cSrcweir
1838cdf0e10cSrcweir	/** gets a description of the primary key columns that are
1839cdf0e10cSrcweir		referenced by a table's foreign key columns (the primary keys
1840cdf0e10cSrcweir		imported by a table). They are ordered by PKTABLE_CAT,
1841cdf0e10cSrcweir		PKTABLE_SCHEM, PKTABLE_NAME, and KEY_SEQ.
1842cdf0e10cSrcweir
1843cdf0e10cSrcweir
1844cdf0e10cSrcweir		<p>Each primary key column description has the following columns:
1845cdf0e10cSrcweir		</p>
1846cdf0e10cSrcweir		<ol>
1847cdf0e10cSrcweir		<li>
1848cdf0e10cSrcweir		<b>PKTABLE_CAT</b> string => primary key table catalog
1849cdf0e10cSrcweir		being imported (may be <NULL/>)
1850cdf0e10cSrcweir		</li>
1851cdf0e10cSrcweir		<li>
1852cdf0e10cSrcweir		<b>PKTABLE_SCHEM</b> string => primary key table schema
1853cdf0e10cSrcweir		being imported (may be <NULL/>)
1854cdf0e10cSrcweir		</li>
1855cdf0e10cSrcweir		<li>
1856cdf0e10cSrcweir		<b>PKTABLE_NAME</b> string => primary key table name
1857cdf0e10cSrcweir		being imported
1858cdf0e10cSrcweir		</li>
1859cdf0e10cSrcweir		<li>
1860cdf0e10cSrcweir		<b>PKCOLUMN_NAME</b> string => primary key column name
1861cdf0e10cSrcweir		being imported
1862cdf0e10cSrcweir		</li>
1863cdf0e10cSrcweir		<li>
1864cdf0e10cSrcweir		<b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
1865cdf0e10cSrcweir		</li>
1866cdf0e10cSrcweir		<li>
1867cdf0e10cSrcweir		<b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
1868cdf0e10cSrcweir		</li>
1869cdf0e10cSrcweir		<li>
1870cdf0e10cSrcweir		<b>FKTABLE_NAME</b> string => foreign key table name
1871cdf0e10cSrcweir		</li>
1872cdf0e10cSrcweir		<li>
1873cdf0e10cSrcweir		<b>FKCOLUMN_NAME</b> string => foreign key column name
1874cdf0e10cSrcweir		</li>
1875cdf0e10cSrcweir		<li>
1876cdf0e10cSrcweir		<b>KEY_SEQ</b> short => sequence number within foreign key
1877cdf0e10cSrcweir		</li>
1878cdf0e10cSrcweir		<li>
1879cdf0e10cSrcweir		<b>UPDATE_RULE</b> short => What happens to
1880cdf0e10cSrcweir		foreign key when primary is updated:
1881cdf0e10cSrcweir		<ul>
1882cdf0e10cSrcweir		<li> importedNoAction - do not allow update of primary
1883cdf0e10cSrcweir		key if it has been imported
1884cdf0e10cSrcweir		</li>
1885cdf0e10cSrcweir		<li> importedKeyCascade - change imported key to agree
1886cdf0e10cSrcweir		with primary key update
1887cdf0e10cSrcweir		</li>
1888cdf0e10cSrcweir		<li> importedKeySetNull - change imported key to NULL if
1889cdf0e10cSrcweir		its primary key has been updated
1890cdf0e10cSrcweir		</li>
1891cdf0e10cSrcweir		<li> importedKeySetDefault - change imported key to default values
1892cdf0e10cSrcweir		if its primary key has been updated
1893cdf0e10cSrcweir		</li>
1894cdf0e10cSrcweir		<li> importedKeyRestrict - same as importedKeyNoAction
1895cdf0e10cSrcweir		(for ODBC 2.x compatibility)
1896cdf0e10cSrcweir		</li>
1897cdf0e10cSrcweir		</ul>
1898cdf0e10cSrcweir		</li>
1899cdf0e10cSrcweir		<li>
1900cdf0e10cSrcweir		<b>DELETE_RULE</b> short => What happens to
1901cdf0e10cSrcweir		the foreign key when primary is deleted.
1902cdf0e10cSrcweir		<ul>
1903cdf0e10cSrcweir		<li> importedKeyNoAction - do not allow delete of primary
1904cdf0e10cSrcweir		key if it has been imported
1905cdf0e10cSrcweir		</li>
1906cdf0e10cSrcweir		<li> importedKeyCascade - delete rows that import a deleted key
1907cdf0e10cSrcweir		</li>
1908cdf0e10cSrcweir		<li> importedKeySetNull - change imported key to NULL if
1909cdf0e10cSrcweir		its primary key has been deleted
1910cdf0e10cSrcweir		</li>
1911cdf0e10cSrcweir		<li> importedKeyRestrict - same as importedKeyNoAction
1912cdf0e10cSrcweir		(for ODBC 2.x compatibility)
1913cdf0e10cSrcweir		</li>
1914cdf0e10cSrcweir		<li> importedKeySetDefault - change imported key to default if
1915cdf0e10cSrcweir		its primary key has been deleted
1916cdf0e10cSrcweir		</li>
1917cdf0e10cSrcweir		</ul>
1918cdf0e10cSrcweir		</li>
1919cdf0e10cSrcweir		<li>
1920cdf0e10cSrcweir		<b>FK_NAME</b> string => foreign key name (may be <NULL/>)
1921cdf0e10cSrcweir		</li>
1922cdf0e10cSrcweir		<li>
1923cdf0e10cSrcweir		<b>PK_NAME</b> string => primary key name (may be <NULL/>)
1924cdf0e10cSrcweir		</li>
1925cdf0e10cSrcweir		<li>
1926cdf0e10cSrcweir		<b>DEFERRABILITY</b> short => can the evaluation of foreign key
1927cdf0e10cSrcweir		constraints be deferred until commit
1928cdf0e10cSrcweir		<ul>
1929cdf0e10cSrcweir		<li> importedKeyInitiallyDeferred - see SQL92 for definition
1930cdf0e10cSrcweir		</li>
1931cdf0e10cSrcweir		<li> importedKeyInitiallyImmediate - see SQL92 for definition
1932cdf0e10cSrcweir		</li>
1933cdf0e10cSrcweir		<li> importedKeyNotDeferrable - see SQL92 for definition
1934cdf0e10cSrcweir		</li>
1935cdf0e10cSrcweir		</ul>
1936cdf0e10cSrcweir		</li>
1937cdf0e10cSrcweir		</ol>
1938cdf0e10cSrcweir		@param catalog
1939cdf0e10cSrcweir			a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1940cdf0e10cSrcweir		@param schema
1941cdf0e10cSrcweir			a schema name; "" retrieves those without a schema
1942cdf0e10cSrcweir		@param table
1943cdf0e10cSrcweir			a table name
1944cdf0e10cSrcweir		@returns
1945cdf0e10cSrcweir			each row is a primary key column description
1946cdf0e10cSrcweir		@throws SQLException
1947cdf0e10cSrcweir			if a database access error occurs.
1948cdf0e10cSrcweir	 */
1949cdf0e10cSrcweir	XResultSet getImportedKeys([in]any catalog, [in]string schema,
1950cdf0e10cSrcweir				[in]string table) raises (SQLException);
1951cdf0e10cSrcweir	//-------------------------------------------------------------------------
1952cdf0e10cSrcweir
1953cdf0e10cSrcweir	/** gets a description of the foreign key columns that reference a
1954cdf0e10cSrcweir		table's primary key columns (the foreign keys exported by a
1955cdf0e10cSrcweir		table). They are ordered by FKTABLE_CAT, FKTABLE_SCHEM,
1956cdf0e10cSrcweir		FKTABLE_NAME, and KEY_SEQ.
1957cdf0e10cSrcweir
1958cdf0e10cSrcweir
1959cdf0e10cSrcweir		<p>Each foreign key column description has the following columns:
1960cdf0e10cSrcweir		</p>
1961cdf0e10cSrcweir		<ol>
1962cdf0e10cSrcweir		<li>
1963cdf0e10cSrcweir		<b>PKTABLE_CAT</b> string => primary key table catalog (may be <NULL/>)
1964cdf0e10cSrcweir		</li>
1965cdf0e10cSrcweir		<li>
1966cdf0e10cSrcweir		<b>PKTABLE_SCHEM</b> string => primary key table schema (may be <NULL/>)
1967cdf0e10cSrcweir		</li>
1968cdf0e10cSrcweir		<li>
1969cdf0e10cSrcweir		<b>PKTABLE_NAME</b> string => primary key table name
1970cdf0e10cSrcweir		</li>
1971cdf0e10cSrcweir		<li>
1972cdf0e10cSrcweir		<b>PKCOLUMN_NAME</b> string => primary key column name
1973cdf0e10cSrcweir		</li>
1974cdf0e10cSrcweir		<li>
1975cdf0e10cSrcweir		<b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
1976cdf0e10cSrcweir		being exported (may be <NULL/>)
1977cdf0e10cSrcweir		</li>
1978cdf0e10cSrcweir		<li>
1979cdf0e10cSrcweir		<b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
1980cdf0e10cSrcweir		being exported (may be <NULL/>)
1981cdf0e10cSrcweir		</li>
1982cdf0e10cSrcweir		<li>
1983cdf0e10cSrcweir		<b>FKTABLE_NAME</b> string => foreign key table name
1984cdf0e10cSrcweir		being exported
1985cdf0e10cSrcweir		</li>
1986cdf0e10cSrcweir		<li>
1987cdf0e10cSrcweir		<b>FKCOLUMN_NAME</b> string => foreign key column name
1988cdf0e10cSrcweir		being exported
1989cdf0e10cSrcweir		</li>
1990cdf0e10cSrcweir		<li>
1991cdf0e10cSrcweir		<b>KEY_SEQ</b> short => sequence number within foreign key
1992cdf0e10cSrcweir		</li>
1993cdf0e10cSrcweir		<li>
1994cdf0e10cSrcweir		<b>UPDATE_RULE</b> short => What happens to
1995cdf0e10cSrcweir		foreign key when primary is updated:
1996cdf0e10cSrcweir		<ul>
1997cdf0e10cSrcweir		<li> NO_ACTION - do not allow update of primary
1998cdf0e10cSrcweir		key if it has been imported
1999cdf0e10cSrcweir		</li>
2000cdf0e10cSrcweir		<li> CASCADE - change imported key to agree
2001cdf0e10cSrcweir		with primary key update
2002cdf0e10cSrcweir		</li>
2003cdf0e10cSrcweir		<li> SET_NULL - change imported key to NULL if
2004cdf0e10cSrcweir		its primary key has been updated
2005cdf0e10cSrcweir		</li>
2006cdf0e10cSrcweir		<li> SET_DEFAULT - change imported key to default values
2007cdf0e10cSrcweir		if its primary key has been updated
2008cdf0e10cSrcweir		</li>
2009cdf0e10cSrcweir		<li> RESTRICT - same as importedKeyNoAction
2010cdf0e10cSrcweir		(for ODBC 2.x compatibility)
2011cdf0e10cSrcweir		</li>
2012cdf0e10cSrcweir		</ul>
2013cdf0e10cSrcweir		</li>
2014cdf0e10cSrcweir		<li>
2015cdf0e10cSrcweir		<b>DELETE_RULE</b> short => What happens to
2016cdf0e10cSrcweir		the foreign key when primary is deleted.
2017cdf0e10cSrcweir		<ul>
2018cdf0e10cSrcweir		<li> NO_ACTION - do not allow delete of primary
2019cdf0e10cSrcweir		key if it has been imported
2020cdf0e10cSrcweir		</li>
2021cdf0e10cSrcweir		<li> CASCADE - delete rows that import a deleted key
2022cdf0e10cSrcweir		</li>
2023cdf0e10cSrcweir		<li> SET_NULL - change imported key to NULL if
2024cdf0e10cSrcweir		its primary key has been deleted
2025cdf0e10cSrcweir		</li>
2026cdf0e10cSrcweir		<li> RESTRICT - same as importedKeyNoAction
2027cdf0e10cSrcweir		(for ODBC 2.x compatibility)
2028cdf0e10cSrcweir		</li>
2029cdf0e10cSrcweir		<li> SET_DEFAULT - change imported key to default if
2030cdf0e10cSrcweir		its primary key has been deleted
2031cdf0e10cSrcweir		</li>
2032cdf0e10cSrcweir		</ul>
2033cdf0e10cSrcweir		</li>
2034cdf0e10cSrcweir		<li>
2035cdf0e10cSrcweir		<b>FK_NAME</b> string => foreign key name (may be <NULL/>)
2036cdf0e10cSrcweir		</li>
2037cdf0e10cSrcweir		<li>
2038cdf0e10cSrcweir		<b>PK_NAME</b> string => primary key name (may be <NULL/>)
2039cdf0e10cSrcweir		</li>
2040cdf0e10cSrcweir		<li>
2041cdf0e10cSrcweir		<b>DEFERRABILITY</b> short => can the evaluation of foreign key
2042cdf0e10cSrcweir		constraints be deferred until commit
2043cdf0e10cSrcweir		<ul>
2044cdf0e10cSrcweir		<li> INITIALLY_DEFERRED - see SQL92 for definition
2045cdf0e10cSrcweir		</li>
2046cdf0e10cSrcweir		<li> INITIALLY_IMMEDIATE - see SQL92 for definition
2047cdf0e10cSrcweir		</li>
2048cdf0e10cSrcweir		<li> NONE - see SQL92 for definition
2049cdf0e10cSrcweir		</li>
2050cdf0e10cSrcweir		</ul>
2051cdf0e10cSrcweir		</li>
2052cdf0e10cSrcweir		</ol>
2053cdf0e10cSrcweir		@param catalog
2054cdf0e10cSrcweir			a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2055cdf0e10cSrcweir		@param schema
2056cdf0e10cSrcweir			a schema name; "" retrieves those without a schema
2057cdf0e10cSrcweir		@param table
2058cdf0e10cSrcweir			a table name
2059cdf0e10cSrcweir		@returns
2060cdf0e10cSrcweir			each row is a foreign key column description
2061cdf0e10cSrcweir		@throws SQLException
2062cdf0e10cSrcweir			if a database access error occurs.
2063cdf0e10cSrcweir	 */
2064cdf0e10cSrcweir	XResultSet getExportedKeys([in]any catalog, [in]string schema,
2065cdf0e10cSrcweir				[in]string table) raises (SQLException);
2066cdf0e10cSrcweir	//-------------------------------------------------------------------------
2067cdf0e10cSrcweir
2068cdf0e10cSrcweir	/** gets a description of the foreign key columns in the foreign key
2069cdf0e10cSrcweir		table that reference the primary key columns of the primary key
2070cdf0e10cSrcweir		table (describe how one table imports another's key.) This
2071cdf0e10cSrcweir		should normally return a single foreign key/primary key pair
2072cdf0e10cSrcweir		(most tables only import a foreign key from a table once.). They
2073cdf0e10cSrcweir		are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and
2074cdf0e10cSrcweir		KEY_SEQ.
2075cdf0e10cSrcweir
2076cdf0e10cSrcweir
2077cdf0e10cSrcweir		<p>Each foreign key column description has the following columns:
2078cdf0e10cSrcweir		</p>
2079cdf0e10cSrcweir		<ol>
2080cdf0e10cSrcweir		<li>
2081cdf0e10cSrcweir		<b>PKTABLE_CAT</b> string => primary key table catalog (may be <NULL/>)
2082cdf0e10cSrcweir		</li>
2083cdf0e10cSrcweir		<li>
2084cdf0e10cSrcweir		<b>PKTABLE_SCHEM</b> string => primary key table schema (may be <NULL/>)
2085cdf0e10cSrcweir		</li>
2086cdf0e10cSrcweir		<li>
2087cdf0e10cSrcweir		<b>PKTABLE_NAME</b> string => primary key table name
2088cdf0e10cSrcweir		</li>
2089cdf0e10cSrcweir		<li>
2090cdf0e10cSrcweir		<b>PKCOLUMN_NAME</b> string => primary key column name
2091cdf0e10cSrcweir		</li>
2092cdf0e10cSrcweir		<li>
2093cdf0e10cSrcweir		<b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
2094cdf0e10cSrcweir		being exported (may be <NULL/>)
2095cdf0e10cSrcweir		</li>
2096cdf0e10cSrcweir		<li>
2097cdf0e10cSrcweir		<b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
2098cdf0e10cSrcweir		being exported (may be <NULL/>)
2099cdf0e10cSrcweir		</li>
2100cdf0e10cSrcweir		<li>
2101cdf0e10cSrcweir		<b>FKTABLE_NAME</b> string => foreign key table name
2102cdf0e10cSrcweir		being exported
2103cdf0e10cSrcweir		</li>
2104cdf0e10cSrcweir		<li>
2105cdf0e10cSrcweir		<b>FKCOLUMN_NAME</b> string => foreign key column name
2106cdf0e10cSrcweir		being exported
2107cdf0e10cSrcweir		</li>
2108cdf0e10cSrcweir		<li>
2109cdf0e10cSrcweir		<b>KEY_SEQ</b> short => sequence number within foreign key
2110cdf0e10cSrcweir		</li>
2111cdf0e10cSrcweir		<li>
2112cdf0e10cSrcweir		<b>UPDATE_RULE</b> short => What happens to
2113cdf0e10cSrcweir		foreign key when primary is updated:
2114cdf0e10cSrcweir		<ul>
2115cdf0e10cSrcweir		<li> NO_ACTION - do not allow update of primary
2116cdf0e10cSrcweir		key if it has been imported
2117cdf0e10cSrcweir		</li>
2118cdf0e10cSrcweir		<li> CASCADE - change imported key to agree
2119cdf0e10cSrcweir		with primary key update
2120cdf0e10cSrcweir		</li>
2121cdf0e10cSrcweir		<li> SET_NULL - change imported key to NULL if
2122cdf0e10cSrcweir		its primary key has been updated
2123cdf0e10cSrcweir		</li>
2124cdf0e10cSrcweir		<li> SET_DEFAULT - change imported key to default values
2125cdf0e10cSrcweir		if its primary key has been updated
2126cdf0e10cSrcweir		</li>
2127cdf0e10cSrcweir		<li> RESTRICT - same as importedKeyNoAction
2128cdf0e10cSrcweir		(for ODBC 2.x compatibility)
2129cdf0e10cSrcweir		</li>
2130cdf0e10cSrcweir		</ul>
2131cdf0e10cSrcweir		</li>
2132cdf0e10cSrcweir		<li>
2133cdf0e10cSrcweir		<b>DELETE_RULE</b> short => What happens to
2134cdf0e10cSrcweir		the foreign key when primary is deleted.
2135cdf0e10cSrcweir		<ul>
2136cdf0e10cSrcweir		<li> NO_ACTION - do not allow delete of primary
2137cdf0e10cSrcweir		key if it has been imported
2138cdf0e10cSrcweir		</li>
2139cdf0e10cSrcweir		<li> CASCADE - delete rows that import a deleted key
2140cdf0e10cSrcweir		</li>
2141cdf0e10cSrcweir		<li> SET_NULL - change imported key to NULL if
2142cdf0e10cSrcweir		its primary key has been deleted
2143cdf0e10cSrcweir		</li>
2144cdf0e10cSrcweir		<li> RESTRICT - same as importedKeyNoAction
2145cdf0e10cSrcweir		(for ODBC 2.x compatibility)
2146cdf0e10cSrcweir		</li>
2147cdf0e10cSrcweir		<li> SET_DEFAULT - change imported key to default if
2148cdf0e10cSrcweir		its primary key has been deleted
2149cdf0e10cSrcweir		</li>
2150cdf0e10cSrcweir		</ul>
2151cdf0e10cSrcweir		</li>
2152cdf0e10cSrcweir		<li>
2153cdf0e10cSrcweir		<b>FK_NAME</b> string => foreign key name (may be <NULL/>)
2154cdf0e10cSrcweir		</li>
2155cdf0e10cSrcweir		<li>
2156cdf0e10cSrcweir		<b>PK_NAME</b> string => primary key name (may be <NULL/>)
2157cdf0e10cSrcweir		</li>
2158cdf0e10cSrcweir		<li>
2159cdf0e10cSrcweir		<b>DEFERRABILITY</b> short => can the evaluation of foreign key
2160cdf0e10cSrcweir		constraints be deferred until commit
2161cdf0e10cSrcweir		<ul>
2162cdf0e10cSrcweir		<li> INITIALLY_DEFERRED - see SQL92 for definition
2163cdf0e10cSrcweir		</li>
2164cdf0e10cSrcweir		<li> INITIALLY_IMMEDIATE - see SQL92 for definition
2165cdf0e10cSrcweir		</li>
2166cdf0e10cSrcweir		<li> NONE - see SQL92 for definition
2167cdf0e10cSrcweir		</li>
2168cdf0e10cSrcweir		</ul>
2169cdf0e10cSrcweir		</li>
2170cdf0e10cSrcweir		</ol>
2171cdf0e10cSrcweir		@param primaryCatalog
2172cdf0e10cSrcweir			a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2173cdf0e10cSrcweir		@param primarySchema
2174cdf0e10cSrcweir			a schema name; "" retrieves those without a schema
2175cdf0e10cSrcweir		@param primaryTable
2176cdf0e10cSrcweir			the table name that exports the key
2177cdf0e10cSrcweir		@param foreignCatalog
2178cdf0e10cSrcweir			a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2179cdf0e10cSrcweir		@param foreignSchema
2180cdf0e10cSrcweir			a schema name; "" retrieves those without a schema
2181cdf0e10cSrcweir		@param foreignTable
2182cdf0e10cSrcweir			the table name that imports the key
2183cdf0e10cSrcweir		@returns
2184cdf0e10cSrcweir			each row is a foreign key column description
2185cdf0e10cSrcweir		@throws SQLException
2186cdf0e10cSrcweir			if a database access error occurs.
2187cdf0e10cSrcweir	 */
2188cdf0e10cSrcweir	XResultSet getCrossReference(
2189cdf0e10cSrcweir		[in]any primaryCatalog, [in]string primarySchema,
2190cdf0e10cSrcweir		[in]string primaryTable,
2191cdf0e10cSrcweir		[in]any foreignCatalog, [in]string foreignSchema,
2192cdf0e10cSrcweir		[in]string foreignTable) raises (SQLException);
2193cdf0e10cSrcweir    //-------------------------------------------------------------------------
2194cdf0e10cSrcweir
2195cdf0e10cSrcweir	/** gets a description of all the standard SQL types supported by
2196cdf0e10cSrcweir		this database. They are ordered by DATA_TYPE and then by how
2197cdf0e10cSrcweir		closely the data type maps to the corresponding SDBC SQL type.
2198cdf0e10cSrcweir
2199cdf0e10cSrcweir
2200cdf0e10cSrcweir
2201cdf0e10cSrcweir		<p>Each type description has the following columns:
2202cdf0e10cSrcweir		</p>
2203cdf0e10cSrcweir		<ol>
2204cdf0e10cSrcweir		<li>
2205cdf0e10cSrcweir		<b>TYPE_NAME</b> string => Type name
2206cdf0e10cSrcweir		</li>
2207cdf0e10cSrcweir		<li>
2208cdf0e10cSrcweir		<b>DATA_TYPE</b> short => SQL data type from java.sql.Types
2209cdf0e10cSrcweir		</li>
2210cdf0e10cSrcweir		<li>
2211cdf0e10cSrcweir		<b>PRECISION</b> long => maximum precision
2212cdf0e10cSrcweir		</li>
2213cdf0e10cSrcweir		<li>
2214cdf0e10cSrcweir		<b>LITERAL_PREFIX</b> string => prefix used to quote a literal
2215cdf0e10cSrcweir		(may be <NULL/>)
2216cdf0e10cSrcweir		</li>
2217cdf0e10cSrcweir		<li>
2218cdf0e10cSrcweir		<b>LITERAL_SUFFIX</b> string => suffix used to quote a literal
2219cdf0e10cSrcweir		(may be <NULL/>)
2220cdf0e10cSrcweir		</li>
2221cdf0e10cSrcweir		<li>
2222cdf0e10cSrcweir		<b>CREATE_PARAMS</b> string => parameters used in creating
2223cdf0e10cSrcweir		the type (may be <NULL/>)
2224cdf0e10cSrcweir		</li>
2225cdf0e10cSrcweir		<li>
2226cdf0e10cSrcweir		<b>NULLABLE</b> short => can you use NULL for this type?
2227cdf0e10cSrcweir		<ul>
2228cdf0e10cSrcweir		<li> NO_NULLS - does not allow NULL values
2229cdf0e10cSrcweir		</li>
2230cdf0e10cSrcweir		<li> NULLABLE - allows NULL values
2231cdf0e10cSrcweir		</li>
2232cdf0e10cSrcweir		<li> NULLABLE_UNKNOWN - nullability unknown
2233cdf0e10cSrcweir		</li>
2234cdf0e10cSrcweir		</ul>
2235cdf0e10cSrcweir		</li>
2236cdf0e10cSrcweir		<li>
2237cdf0e10cSrcweir		<b>CASE_SENSITIVE</b> boolean=> is it case sensitive?
2238cdf0e10cSrcweir		</li>
2239cdf0e10cSrcweir		<li>
2240cdf0e10cSrcweir		<b>SEARCHABLE</b> short => can you use "WHERE" based on this type:
2241cdf0e10cSrcweir		<ul>
2242cdf0e10cSrcweir		<li> NONE - No support
2243cdf0e10cSrcweir		</li>
2244cdf0e10cSrcweir		<li> CHAR - Only supported with WHERE .. LIKE
2245cdf0e10cSrcweir		</li>
2246cdf0e10cSrcweir		<li> BASIC - Supported except for WHERE .. LIKE
2247cdf0e10cSrcweir		</li>
2248cdf0e10cSrcweir		<li> FULL - Supported for all WHERE ..
2249cdf0e10cSrcweir		</li>
2250cdf0e10cSrcweir		</ul>
2251cdf0e10cSrcweir		</li>
2252cdf0e10cSrcweir		<li>
2253cdf0e10cSrcweir		<b>UNSIGNED_ATTRIBUTE</b> boolean => is it unsigned?
2254cdf0e10cSrcweir		</li>
2255cdf0e10cSrcweir		<li>
2256cdf0e10cSrcweir		<b>FIXED_PREC_SCALE</b> boolean => can it be a money value?
2257cdf0e10cSrcweir		</li>
2258cdf0e10cSrcweir		<li>
2259cdf0e10cSrcweir		<b>AUTO_INCREMENT</b> boolean => can it be used for an
2260cdf0e10cSrcweir		auto-increment value?
2261cdf0e10cSrcweir		</li>
2262cdf0e10cSrcweir		<li>
2263cdf0e10cSrcweir		<b>LOCAL_TYPE_NAME</b> string => localized version of type name
2264cdf0e10cSrcweir		(may be <NULL/>)
2265cdf0e10cSrcweir		</li>
2266cdf0e10cSrcweir		<li>
2267cdf0e10cSrcweir		<b>MINIMUM_SCALE</b> short => minimum scale supported
2268cdf0e10cSrcweir		</li>
2269cdf0e10cSrcweir		<li>
2270cdf0e10cSrcweir		<b>MAXIMUM_SCALE</b> short => maximum scale supported
2271cdf0e10cSrcweir		</li>
2272cdf0e10cSrcweir		<li>
2273cdf0e10cSrcweir		<b>SQL_DATA_TYPE</b> long => unused
2274cdf0e10cSrcweir		</li>
2275cdf0e10cSrcweir		<li>
2276cdf0e10cSrcweir		<b>SQL_DATETIME_SUB</b> long => unused
2277cdf0e10cSrcweir		</li>
2278cdf0e10cSrcweir		<li>
2279cdf0e10cSrcweir		<b>NUM_PREC_RADIX</b> long => usually 2 or 10
2280cdf0e10cSrcweir		</li>
2281cdf0e10cSrcweir		</ol>
2282cdf0e10cSrcweir		@returns
2283cdf0e10cSrcweir			each row is a SQL type description
2284cdf0e10cSrcweir		@throws SQLException
2285cdf0e10cSrcweir			if a database access error occurs.
2286cdf0e10cSrcweir	 */
2287cdf0e10cSrcweir	XResultSet getTypeInfo() raises (SQLException);
2288cdf0e10cSrcweir	//-------------------------------------------------------------------------
2289cdf0e10cSrcweir
2290cdf0e10cSrcweir	/** gets a description of a table's indices and statistics. They are
2291cdf0e10cSrcweir		ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION.
2292cdf0e10cSrcweir
2293cdf0e10cSrcweir
2294cdf0e10cSrcweir		<p>Each index column description has the following columns:
2295cdf0e10cSrcweir		</p>
2296cdf0e10cSrcweir		<ol>
2297cdf0e10cSrcweir		<li>
2298cdf0e10cSrcweir		<b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
2299cdf0e10cSrcweir		</li>
2300cdf0e10cSrcweir		<li>
2301cdf0e10cSrcweir		<b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
2302cdf0e10cSrcweir		</li>
2303cdf0e10cSrcweir		<li>
2304cdf0e10cSrcweir		<b>TABLE_NAME</b> string => table name
2305cdf0e10cSrcweir		</li>
2306cdf0e10cSrcweir		<li>
2307cdf0e10cSrcweir		<b>NON_UNIQUE</b> boolean => Can index values be non-unique?
2308cdf0e10cSrcweir		<FALSE/> when TYPE is tableIndexStatistic
2309cdf0e10cSrcweir		</li>
2310cdf0e10cSrcweir		<li>
2311cdf0e10cSrcweir		<b>INDEX_QUALIFIER</b> string => index catalog (may be <NULL/>);
2312cdf0e10cSrcweir		<NULL/> when TYPE is tableIndexStatistic
2313cdf0e10cSrcweir		</li>
2314cdf0e10cSrcweir		<li>
2315cdf0e10cSrcweir		<b>INDEX_NAME</b> string => index name; <NULL/> when TYPE is
2316cdf0e10cSrcweir		tableIndexStatistic
2317cdf0e10cSrcweir		</li>
2318cdf0e10cSrcweir		<li>
2319cdf0e10cSrcweir		<b>TYPE</b> short => index type:
2320cdf0e10cSrcweir		<ul>
2321cdf0e10cSrcweir		<li> 0 - this identifies table statistics that are
2322cdf0e10cSrcweir		returned in conjuction with a table's index descriptions
2323cdf0e10cSrcweir		</li>
2324cdf0e10cSrcweir		<li> CLUSTERED - this is a clustered index
2325cdf0e10cSrcweir		</li>
2326cdf0e10cSrcweir		<li> HASHED - this is a hashed index
2327cdf0e10cSrcweir		</li>
2328cdf0e10cSrcweir		<li> OTHER - this is some other style of index
2329cdf0e10cSrcweir		</li>
2330cdf0e10cSrcweir		</ul>
2331cdf0e10cSrcweir		</li>
2332cdf0e10cSrcweir		<li>
2333cdf0e10cSrcweir		<b>ORDINAL_POSITION</b> short => column sequence number
2334cdf0e10cSrcweir		within index; zero when TYPE is tableIndexStatistic
2335cdf0e10cSrcweir		</li>
2336cdf0e10cSrcweir		<li>
2337cdf0e10cSrcweir		<b>COLUMN_NAME</b> string => column name; <NULL/> when TYPE is
2338cdf0e10cSrcweir		tableIndexStatistic
2339cdf0e10cSrcweir		</li>
2340cdf0e10cSrcweir		<li>
2341cdf0e10cSrcweir		<b>ASC_OR_DESC</b> string => column sort sequence, "A" => ascending,
2342cdf0e10cSrcweir		"D" => descending, may be <NULL/> if sort sequence is not supported;
2343cdf0e10cSrcweir		<NULL/> when TYPE is tableIndexStatistic
2344cdf0e10cSrcweir		</li>
2345cdf0e10cSrcweir		<li>
2346cdf0e10cSrcweir		<b>CARDINALITY</b> long => When TYPE is tableIndexStatistic, then
2347cdf0e10cSrcweir		this is the number of rows in the table; otherwise, it is the
2348cdf0e10cSrcweir		number of unique values in the index.
2349cdf0e10cSrcweir		</li>
2350cdf0e10cSrcweir		<li>
2351cdf0e10cSrcweir		<b>PAGES</b> long => When TYPE is  tableIndexStatisic then
2352cdf0e10cSrcweir		this is the number of pages used for the table, otherwise it
2353cdf0e10cSrcweir		is the number of pages used for the current index.
2354cdf0e10cSrcweir		</li>
2355cdf0e10cSrcweir		<li>
2356cdf0e10cSrcweir		<b>FILTER_CONDITION</b> string => Filter condition, if any.
2357cdf0e10cSrcweir		(may be <NULL/>)
2358cdf0e10cSrcweir		</li>
2359cdf0e10cSrcweir		</ol>
2360cdf0e10cSrcweir		@param catalog
2361cdf0e10cSrcweir			a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2362cdf0e10cSrcweir		@param schema
2363cdf0e10cSrcweir			a schema name; "" retrieves those without a schema
2364cdf0e10cSrcweir		@param table
2365cdf0e10cSrcweir			the table name that exports the key
2366cdf0e10cSrcweir		@param unique
2367cdf0e10cSrcweir			when <TRUE/>, return only indices for unique values; when <FALSE/>, return indices regardless of whether unique or not
2368cdf0e10cSrcweir		@param approximate
2369cdf0e10cSrcweir			when <TRUE/>, result is allowed to reflect approximate or out of data values; when <FALSE/>, results are requested to be accurate
2370cdf0e10cSrcweir		@returns
2371cdf0e10cSrcweir			each row is an index column description
2372cdf0e10cSrcweir		@throws SQLException
2373cdf0e10cSrcweir			if a database access error occurs.
2374cdf0e10cSrcweir	 */
2375cdf0e10cSrcweir	XResultSet getIndexInfo([in]any catalog, [in]string schema, [in]string table,
2376cdf0e10cSrcweir			[in]boolean unique, [in]boolean approximate)
2377cdf0e10cSrcweir					raises (SQLException);
2378cdf0e10cSrcweir    //-------------------------------------------------------------------------
2379cdf0e10cSrcweir
2380cdf0e10cSrcweir	/** Does the database support the given result set type?
2381cdf0e10cSrcweir		@param setType
2382cdf0e10cSrcweir			defined in
2383cdf0e10cSrcweir			<type scop="com::sun::star::sdbc">ResultSetType</type>
2384cdf0e10cSrcweir		@returns
2385cdf0e10cSrcweir			<TRUE/> if so
2386cdf0e10cSrcweir		@throws SQLException
2387cdf0e10cSrcweir			if a database access error occurs.
2388cdf0e10cSrcweir	 */
2389cdf0e10cSrcweir	boolean supportsResultSetType([in]long setType) raises (SQLException);
2390cdf0e10cSrcweir	//-------------------------------------------------------------------------
2391cdf0e10cSrcweir
2392cdf0e10cSrcweir	/** Does the database support the concurrency type in combination
2393cdf0e10cSrcweir		with the given result set type?
2394cdf0e10cSrcweir		@param setType
2395cdf0e10cSrcweir			defined in
2396cdf0e10cSrcweir			<type scop="com::sun::star::sdbc">ResultSetType</type>
2397cdf0e10cSrcweir		@param concurrency
2398cdf0e10cSrcweir			defined in
2399cdf0e10cSrcweir			<type scop="com::sun::star::sdbc">ResultSetConcurrency</type>
2400cdf0e10cSrcweir		@returns
2401cdf0e10cSrcweir			<TRUE/> if so
2402cdf0e10cSrcweir		@throws SQLException
2403cdf0e10cSrcweir			if a database access error occurs.
2404cdf0e10cSrcweir	 */
2405cdf0e10cSrcweir	boolean supportsResultSetConcurrency([in]long setType,
2406cdf0e10cSrcweir												  [in]long concurrency)
2407cdf0e10cSrcweir      raises (SQLException);
2408cdf0e10cSrcweir	//-------------------------------------------------------------------------
2409cdf0e10cSrcweir
2410cdf0e10cSrcweir	/** indicates whether a result set's own updates are visible.
2411cdf0e10cSrcweir		@param setType
2412cdf0e10cSrcweir			defined in
2413cdf0e10cSrcweir			<type scop="com::sun::star::sdbc">ResultSetType</type>
2414cdf0e10cSrcweir		@returns
2415cdf0e10cSrcweir			<TRUE/> if so
2416cdf0e10cSrcweir		@throws SQLException
2417cdf0e10cSrcweir			if a database access error occurs.
2418cdf0e10cSrcweir	 */
2419cdf0e10cSrcweir	boolean ownUpdatesAreVisible([in]long setType) raises (SQLException);
2420cdf0e10cSrcweir	//-------------------------------------------------------------------------
2421cdf0e10cSrcweir
2422cdf0e10cSrcweir	/** indicates whether a result set's own deletes are visible.
2423cdf0e10cSrcweir		@param setType
2424cdf0e10cSrcweir			defined in
2425cdf0e10cSrcweir			<type scop="com::sun::star::sdbc">ResultSetType</type>
2426cdf0e10cSrcweir		@returns
2427cdf0e10cSrcweir			<TRUE/> if so
2428cdf0e10cSrcweir		@throws SQLException
2429cdf0e10cSrcweir			if a database access error occurs.
2430cdf0e10cSrcweir	 */
2431cdf0e10cSrcweir	boolean ownDeletesAreVisible([in]long setType) raises (SQLException);
2432cdf0e10cSrcweir    //-------------------------------------------------------------------------
2433cdf0e10cSrcweir
2434cdf0e10cSrcweir	/** indicates whether a result set's own inserts are visible.
2435cdf0e10cSrcweir		@param setType
2436cdf0e10cSrcweir			defined in
2437cdf0e10cSrcweir			<type scop="com::sun::star::sdbc">ResultSetType</type>
2438cdf0e10cSrcweir		@returns
2439cdf0e10cSrcweir			<TRUE/> if so
2440cdf0e10cSrcweir		@throws SQLException
2441cdf0e10cSrcweir			if a database access error occurs.
2442cdf0e10cSrcweir	 */
2443cdf0e10cSrcweir	boolean ownInsertsAreVisible([in]long setType) raises (SQLException);
2444cdf0e10cSrcweir	//-------------------------------------------------------------------------
2445cdf0e10cSrcweir
2446cdf0e10cSrcweir	/** indicates whether updates made by others are visible.
2447cdf0e10cSrcweir		@param setType
2448cdf0e10cSrcweir			defined in
2449cdf0e10cSrcweir			<type scop="com::sun::star::sdbc">ResultSetType</type>
2450cdf0e10cSrcweir		@returns
2451cdf0e10cSrcweir			<TRUE/> if so
2452cdf0e10cSrcweir		@throws SQLException
2453cdf0e10cSrcweir			if a database access error occurs.
2454cdf0e10cSrcweir	 */
2455cdf0e10cSrcweir	boolean othersUpdatesAreVisible([in]long setType) raises (SQLException);
2456cdf0e10cSrcweir	//-------------------------------------------------------------------------
2457cdf0e10cSrcweir
2458cdf0e10cSrcweir	/** indicates whether deletes made by others are visible.
2459cdf0e10cSrcweir		@param setType
2460cdf0e10cSrcweir			defined in
2461cdf0e10cSrcweir			<type scop="com::sun::star::sdbc">ResultSetType</type>
2462cdf0e10cSrcweir		@returns
2463cdf0e10cSrcweir			<TRUE/> if so
2464cdf0e10cSrcweir		@throws SQLException
2465cdf0e10cSrcweir			if a database access error occurs.
2466cdf0e10cSrcweir	 */
2467cdf0e10cSrcweir	boolean othersDeletesAreVisible([in]long setType) raises (SQLException);
2468cdf0e10cSrcweir    //-------------------------------------------------------------------------
2469cdf0e10cSrcweir
2470cdf0e10cSrcweir	/** indicates whether inserts made by others are visible.
2471cdf0e10cSrcweir		@param setType
2472cdf0e10cSrcweir			defined in
2473cdf0e10cSrcweir			<type scop="com::sun::star::sdbc">ResultSetType</type>
2474cdf0e10cSrcweir		@returns
2475cdf0e10cSrcweir			<TRUE/> if so
2476cdf0e10cSrcweir		@throws SQLException
2477cdf0e10cSrcweir			if a database access error occurs.
2478cdf0e10cSrcweir	 */
2479cdf0e10cSrcweir	boolean othersInsertsAreVisible([in]long setType) raises (SQLException);
2480cdf0e10cSrcweir	//-------------------------------------------------------------------------
2481cdf0e10cSrcweir
2482cdf0e10cSrcweir	/** indicates whether or not a visible row update can be detected by
2483cdf0e10cSrcweir		calling the method
2484cdf0e10cSrcweir		<code>XResultSet.rowUpdated</code>.
2485cdf0e10cSrcweir		@param setType
2486cdf0e10cSrcweir			defined in
2487cdf0e10cSrcweir			<type scop="com::sun::star::sdbc">ResultSetType</type>
2488cdf0e10cSrcweir		@returns
2489cdf0e10cSrcweir			<TRUE/> if so
2490cdf0e10cSrcweir		@throws SQLException
2491cdf0e10cSrcweir			if a database access error occurs.
2492cdf0e10cSrcweir	 */
2493cdf0e10cSrcweir	boolean updatesAreDetected([in]long setType) raises (SQLException);
2494cdf0e10cSrcweir	//-------------------------------------------------------------------------
2495cdf0e10cSrcweir
2496cdf0e10cSrcweir	/** indicates whether or not a visible row delete can be detected by
2497cdf0e10cSrcweir		calling
2498cdf0e10cSrcweir		<member scope="com::sun::star::sdbc">XResultSet::rowDeleted()</member>
2499cdf0e10cSrcweir		. If deletesAreDetected()
2500cdf0e10cSrcweir		returns <FALSE/>, then deleted rows are removed from the result set.
2501cdf0e10cSrcweir		@param setType
2502cdf0e10cSrcweir			defined in
2503cdf0e10cSrcweir			<type scop="com::sun::star::sdbc">ResultSetType</type>
2504cdf0e10cSrcweir		@returns
2505cdf0e10cSrcweir			<TRUE/> if so
2506cdf0e10cSrcweir		@throws SQLException
2507cdf0e10cSrcweir			if a database access error occurs.
2508cdf0e10cSrcweir	 */
2509cdf0e10cSrcweir	boolean deletesAreDetected([in]long setType) raises (SQLException);
2510cdf0e10cSrcweir	//-------------------------------------------------------------------------
2511cdf0e10cSrcweir
2512cdf0e10cSrcweir	/** indicates whether or not a visible row insert can be detected
2513cdf0e10cSrcweir		by calling
2514cdf0e10cSrcweir		<member scope="com::sun::star::sdbc">XResultSet::rowInserted().</member>
2515cdf0e10cSrcweir		@param setType
2516cdf0e10cSrcweir			defined in
2517cdf0e10cSrcweir			<type scop="com::sun::star::sdbc">ResultSetType</type>
2518cdf0e10cSrcweir		@returns
2519cdf0e10cSrcweir			<TRUE/> if so
2520cdf0e10cSrcweir		@throws SQLException
2521cdf0e10cSrcweir			if a database access error occurs.
2522cdf0e10cSrcweir	 */
2523cdf0e10cSrcweir	boolean insertsAreDetected([in]long setType) raises (SQLException);
2524cdf0e10cSrcweir	//-------------------------------------------------------------------------
2525cdf0e10cSrcweir
2526cdf0e10cSrcweir	/** indicates whether the driver supports batch updates.
2527cdf0e10cSrcweir		@returns
2528cdf0e10cSrcweir			<TRUE/> if so
2529cdf0e10cSrcweir		@throws SQLException
2530cdf0e10cSrcweir			if a database access error occurs.
2531cdf0e10cSrcweir	 */
2532cdf0e10cSrcweir	boolean supportsBatchUpdates() raises (SQLException);
2533cdf0e10cSrcweir	//-------------------------------------------------------------------------
2534cdf0e10cSrcweir
2535cdf0e10cSrcweir	/** Gets a description of the user-defined types defined in a particular
2536cdf0e10cSrcweir		schema. Schema-specific UDTs may have type OBJECT, STRUCT,
2537cdf0e10cSrcweir		or DISTINCT.
2538cdf0e10cSrcweir
2539cdf0e10cSrcweir
2540cdf0e10cSrcweir		<p>Only types matching the catalog, schema, type name, and type
2541cdf0e10cSrcweir		criteria are returned. They are ordered by DATA_TYPE, TYPE_SCHEM,
2542cdf0e10cSrcweir		and TYPE_NAME. The type name parameter may be a fully-qualified
2543cdf0e10cSrcweir		name. In this case, the catalog and schemaPattern parameters are
2544cdf0e10cSrcweir		ignored.
2545cdf0e10cSrcweir		</p>
2546cdf0e10cSrcweir		<p>Each type description has the following columns:
2547cdf0e10cSrcweir		</p>
2548cdf0e10cSrcweir		<ol>
2549cdf0e10cSrcweir		<li>
2550cdf0e10cSrcweir		<b>TYPE_CAT</b> string => the type's catalog (may be <NULL/>)
2551cdf0e10cSrcweir		</li>
2552cdf0e10cSrcweir		<li>
2553cdf0e10cSrcweir		<b>TYPE_SCHEM</b> string => type's schema (may be <NULL/>)
2554cdf0e10cSrcweir		</li>
2555cdf0e10cSrcweir		<li>
2556cdf0e10cSrcweir		<b>TYPE_NAME</b> string => type name
2557cdf0e10cSrcweir		</li>
2558cdf0e10cSrcweir		<li>
2559cdf0e10cSrcweir		<b>CLASS_NAME</b> string => Java class name or service name
2560cdf0e10cSrcweir		</li>
2561cdf0e10cSrcweir		<li>
2562cdf0e10cSrcweir		<b>DATA_TYPE</b> string => type value.
2563cdf0e10cSrcweir		One of OBJECT, STRUCT, or DISTINCT
2564cdf0e10cSrcweir		</li>
2565cdf0e10cSrcweir		<li>
2566cdf0e10cSrcweir		<b>REMARKS</b> string => explanatory comment on the type
2567cdf0e10cSrcweir		</li>
2568cdf0e10cSrcweir		</ol>
2569cdf0e10cSrcweir		<p>
2570cdf0e10cSrcweir		<b>Note:</b> If the driver does not support UDTs, an empty
2571cdf0e10cSrcweir		result set is returned.
2572cdf0e10cSrcweir		</p>
2573cdf0e10cSrcweir		@param catalog
2574cdf0e10cSrcweir			a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2575cdf0e10cSrcweir		@param schemaPattern
2576cdf0e10cSrcweir			a schema name pattern; "" retrieves those without a schema
2577cdf0e10cSrcweir		@param typeNamePattern
2578cdf0e10cSrcweir			a type name pattern; may be a fully-qualified name
2579cdf0e10cSrcweir		@param types
2580cdf0e10cSrcweir			a list of user-named types to include (OBJECT, STRUCT, or DISTINCT)
2581cdf0e10cSrcweir		@returns
2582cdf0e10cSrcweir			each row is a type description
2583cdf0e10cSrcweir		@throws SQLException
2584cdf0e10cSrcweir			if a database access error occurs.
2585cdf0e10cSrcweir	 */
2586cdf0e10cSrcweir	XResultSet getUDTs([in]any catalog, [in]string schemaPattern,
2587cdf0e10cSrcweir		      [in]string typeNamePattern, [in]sequence<long> types)
2588cdf0e10cSrcweir      raises (SQLException);
2589cdf0e10cSrcweir	//-------------------------------------------------------------------------
2590cdf0e10cSrcweir
2591cdf0e10cSrcweir	/** retrieves the connection that produced this metadata object.
2592cdf0e10cSrcweir		@returns
2593cdf0e10cSrcweir			the Connection object
2594cdf0e10cSrcweir		@throws SQLException
2595cdf0e10cSrcweir			if a database access error occurs.
2596cdf0e10cSrcweir	 */
2597cdf0e10cSrcweir	XConnection getConnection() raises (SQLException);
2598cdf0e10cSrcweir};
2599cdf0e10cSrcweir
2600cdf0e10cSrcweir//=============================================================================
2601cdf0e10cSrcweir
2602cdf0e10cSrcweir}; }; }; };
2603cdf0e10cSrcweir
2604cdf0e10cSrcweir/*===========================================================================
2605cdf0e10cSrcweir===========================================================================*/
2606cdf0e10cSrcweir#endif
2607