KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > cjdbc > driver > protocol > Commands


1 /**
2  * C-JDBC: Clustered JDBC.
3  * Copyright (C) 2002-2005 French National Institute For Research In Computer
4  * Science And Control (INRIA).
5  * Contact: c-jdbc@objectweb.org
6  *
7  * This library is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU Lesser General Public License as published by the
9  * Free Software Foundation; either version 2.1 of the License, or any later
10  * version.
11  *
12  * This library is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
15  * for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with this library; if not, write to the Free Software Foundation,
19  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
20  *
21  * Initial developer(s): Emmanuel Cecchet.
22  * Contributor(s): Nicolas Modrzyk, Marc Herbert, Jean-Bernard van Zuylen
23  */

24
25 package org.objectweb.cjdbc.driver.protocol;
26
27 /*
28  * DO NOT FORMAT THIS FILE (using eclipse for instance), not to wreck the
29  * hand-crafted formatting of the comments/documentation below. At least not
30  * until custom taglets are implemented so eclipse can do a decent job with
31  * them. And maybe never.
32  */

33
34 /*
35  * TODO: replace <br>~argument by @argument etc. and implement the
36  * corresponding taglet. A interesting alternative is to dedicate a new "RPC"
37  * class with exactly one method per command. This class would be a subset of
38  * today's Connection class. We could then use standard @param and @return tags
39  * instead of custom tags.
40  */

41
42 /**
43  * Protocol commands between C-JDBC driver (client) and controller (server). All
44  * communications follow a classic RPC scheme: the driver sends a Command code,
45  * followed by argument(s) for some of the commands, and expects some answer(s),
46  * at the very least an error code or an exception. The server is event-driven;
47  * communications are inited by the client which is the one sending Protocol
48  * commands, so the verbs <cite>send</cite> and <cite>receive</cite> must be
49  * understood as from driver point of view. Almost all these commands are put on
50  * the wire by client class {@link org.objectweb.cjdbc.driver.Connection} and
51  * read (and answered) by class {@link
52  * org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#run()}.
53  * The only exceptions are the following commands: <br>- ProtocolVersion<br>
54  * read only by {@link
55  * org.objectweb.cjdbc.controller.core.ControllerWorkerThread#run()}, which then
56  * constructs the connection and pass it to VirtualDatabaseWorkerThread for the
57  * rest of the execution of this command. <br>- Close<br>
58  * in addition to Connection, also sent by
59  * {@link org.objectweb.cjdbc.driver.ConnectionClosingThread#closeConnection(Connection)}
60  * <br>- Ping <br>
61  * sent on a dedicated connection only by {@link
62  * org.objectweb.cjdbc.driver.connectpolicy.ControllerPingThread#run()} and
63  * silently received only by (again) {@link
64  * org.objectweb.cjdbc.controller.core.ControllerWorkerThread#run()}
65  * <h2>Protocol Data Types</h2>
66  * <strong>optUTF</strong> is a custom type defined like this:
67  *
68  * <pre>
69  * (boolean false) | (boolean true; UTF somestring)
70  * </pre>
71  *
72  * <h3>Sent types</h3>
73  * <p>
74  * Several commands send a SQL query. All SQL queries sent on the wire use the
75  * same starting pattern, a <em>requestStub</em> defined below and in
76  * {@link org.objectweb.cjdbc.common.sql.AbstractRequest#AbstractRequest(CJDBCInputStream, int)}
77  * <br>
78  * <strong>requestStub</strong>
79  *
80  * <pre>
81  * UTF request : SQL query
82  * boolean EscapeProcessing
83  * UTF LINE_SEPARATOR
84  * Int timeout
85  * boolean autoCommit
86  * boolean isDriverProcessed
87  * </pre>
88  *
89  * <p>
90  * Queries that expect a result set (read commands mostly) send immediately
91  * after the requestStub a <em>subsetLengths</em> parameter, of type: <br>
92  * <strong>subsetLengths</strong>. See
93  * {@link org.objectweb.cjdbc.common.sql.AbstractRequest#receiveResultSetParams(CJDBCInputStream)}
94  *
95  * <pre>
96  * Int maxRows
97  * Int fetchSize
98  * </pre>
99  *
100  * <p>
101  * Depending on some configuration flag/state (shared by driver and controller),
102  * most query commands add an optional <em>skeleton</em> parameter of type
103  * optUTF.
104  * <h3>Received types</h3>
105  * <p>
106  * Several commands receive a ResultSet of type: <br>
107  * <strong>ResultSet</strong>
108  * {@link org.objectweb.cjdbc.driver.DriverResultSet#DriverResultSet(CJDBCInputStream)}
109  *
110  * <pre>
111  * {@link org.objectweb.cjdbc.driver.Field Field}[] fields
112  * {@link org.objectweb.cjdbc.driver.protocol.TypeTag}[] java column types
113  * ArrayList data
114  * optUTF hasMoreData: cursor name
115  * </pre> - <em>fields</em> is the description of the ResultSet columns. <br>-
116  * <em>data</em> is the actual data of the ResultSet. Each element of this
117  * list is an Object array holding one row of the ResultSet. The whole arraylist
118  * is serialized using standard Java serialization/readUnshared().
119  * <h3>Exceptions</h3>
120  * For almost every command sent, the driver checks if the reply is an exception
121  * serialized by the controller instead of the regular reply type. Most
122  * exceptions are put on the wire by
123  * {@link org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#run()}
124  * TODO: finish the classification below. <br>
125  * Exception reply recognized by the driver in: <br>
126  * FetchNextResultSetRows, closeRemoteResultSet, RestoreConnectionState,
127  * setAutoCommit, getCatalog, getCatalogs, setCatalog,
128  * getControllerVersionNumber, DatabaseMetaDataGetTables,
129  * DatabaseMetaDataGetColumns, DatabaseMetaDataGetPrimaryKeys,
130  * DatabaseMetaDataGetProcedureColumns, DatabaseMetaDataGetTableTypes,
131  * DatabaseMetaDataGetTablePrivileges, DatabaseMetaDataGetSchemas,
132  * DatabaseMetaDataGetDatabaseProductName, DatabaseStaticMetadata <br>
133  * Exception reply ignored by the driver in: Close, Reset <br>
134  * Exceptions catched by instanceof(catch-all) default clause in: <br>
135  * setAutoCommit, <br>
136  * Commands not implemented at all by the driver: <br>
137  * GetVirtualDatabaseName, <br>
138  * TODO: <br>- exceptions and the server side (VirtualDatabaseWorkerThread)
139  * <br>- double-check arguments and replies <br>- better topic ordering
140  *
141  * @author <a HREF="mailto:Emmanuel.Cecchet@inria.fr">Emmanuel Cecchet </a>
142  * @author <a HREF="mailto:Nicolas.Modrzyk@inria.fr">Nicolas Modrzyk </a>
143  * @author <a HREF="mailto:Marc.Herbert@emicnetworks.com">Marc Herbert </a>
144  * @author <a HREF="mailto:jbvanzuylen@transwide.com">Jean-Bernard van Zuylen
145  * </a>
146  * @version 1.0
147  */

148
149 public class Commands
150 {
151   /**
152    * Command used to create a new connection, while checking that driver and
153    * controller are compatible with each other. This constant is not a Command
154    * and should be moved out of this file.
155    * <p>
156    * ~commandcode {@value}
157    * <p>
158    * <br>
159    * ~argument UTF dataBaseName <br>
160    * ~argument UTF user <br>
161    * ~argument UTF password
162    * <p>
163    * <br>
164    * ~reply boolean needSkeleton: Does the controller require the SQL skeleton?
165    * This is only a boolean here, not the full optUTF skeleton often used
166    * elsewhere. <br>
167    * ~reply UTF sfilter: the kind of blob encoding the server wants the driver
168    * to use<br>
169    *
170    * @see org.objectweb.cjdbc.controller.core.ControllerWorkerThread#run()
171    * @see org.objectweb.cjdbc.driver.ConnectionClosingThread#closeConnection(Connection)
172    */

173
174   public static final int ProtocolVersion = 20;
175
176   /**
177    * Ping is used by the ControllerPingThread to check if a controller is back
178    * online after a failure. This command is quite special because it is sent on
179    * a new, dedicated socket. There is neither any argument nor any answer: the
180    * controller immediately closes the connection after receiving it. This
181    * constant is not a Command and should be moved out of this file.
182    *
183    * @see org.objectweb.cjdbc.controller.core.ControllerWorkerThread#run()
184    * @see org.objectweb.cjdbc.driver.connectpolicy.ControllerPingThread#run()
185    */

186   public static final int Ping = -1;
187
188   /*
189    * SQL requests handling
190    */

191
192   /**
193    * Performs a read request and returns the reply.
194    * <p>
195    * ~commandcode {@value}
196    * <p>
197    * <br>
198    * ~argument requestStub <br>
199    * ~argument subsetLengths <br>
200    * ~argument optUTF cursorname <br>
201    * ~argument optUTF skeleton
202    * <p>
203    * <br>
204    * ~reply ResultSet
205    *
206    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#execReadRequest()
207    */

208   public static final int ExecReadRequest = 0;
209
210   /**
211    * Performs a write request and returns the number of rows affected.
212    * <p>
213    * ~commandcode {@value}
214    * <p>
215    * <br>
216    * ~argument Int {@link org.objectweb.cjdbc.common.sql.RequestType} <br>
217    * ~argument requestStub <br>
218    * ~argument optUTF skeleton
219    * <p>
220    * <br>
221    * ~reply nbRows
222    *
223    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#execWriteRequest()
224    */

225   public static final int ExecWriteRequest = 1;
226
227   /**
228    * Performs a write request and returns the auto generated keys.
229    * <p>
230    * ~commandcode {@value}
231    * <p>
232    * <br>
233    * ~argument Int {@link org.objectweb.cjdbc.common.sql.RequestType} <br>
234    * ~argument requestStub <br>
235    * ~argument subsetLengths <br>
236    * ~argument optUTF skeleton
237    * <p>
238    * <br>
239    * ~reply ResultSet
240    *
241    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#execWriteRequestWithKeys()
242    */

243   public static final int ExecWriteRequestWithKeys = 2;
244
245   /**
246    * Calls a stored procedure and returns the reply (ResultSet).
247    * <p>
248    * ~commandcode {@value}
249    * <p>
250    * <br>
251    * ~argument requestStub <br>
252    * ~argument subsetLengths <br>
253    * ~argument optUTF skeleton
254    * <p>
255    * <br>
256    * ~reply ResultSet
257    *
258    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase#execReadStoredProcedure(org.objectweb.cjdbc.common.sql.StoredProcedure)
259    */

260   public static final int ExecReadStoredProcedure = 3;
261
262   /**
263    * Calls a stored procedure and returns the number of rows affected (write
264    * query).
265    * <p>
266    * ~commandcode {@value}
267    * <p>
268    * <br>
269    * ~argument requestStub <br>
270    * ~argument optUTF skeleton
271    * <p>
272    * <br>
273    * ~reply Int nbRows
274    *
275    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase#execReadStoredProcedure(org.objectweb.cjdbc.common.sql.StoredProcedure)
276    */

277   public static final int ExecWriteStoredProcedure = 4;
278
279   /*
280    * Transaction management
281    */

282
283   /**
284    * Begins a new transaction and returns the corresponding transaction
285    * identifier. This method is called from the driver when
286    * {@link org.objectweb.cjdbc.driver.Connection#setAutoCommit(boolean)}is
287    * called with <code>false</code> argument.
288    * <p>
289    * ~commandcode {@value}
290    * <p>
291    * <br>
292    * ~reply Long transactionId
293    *
294    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase#begin(String)
295    */

296   public static final int Begin = 20;
297
298   /**
299    * Commits the current transaction.
300    * <p>
301    * ~commandcode {@value}
302    * <p>
303    * <br>
304    * ~reply Long transactionId: id of next transaction
305    *
306    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase#commit(long,
307    * boolean)
308    */

309   public static final int Commit = 21;
310
311   /**
312    * Rollbacks the current transaction.
313    * <p>
314    * ~commandcode {@value}
315    * <p>
316    * <br>
317    * ~reply Long transactionId: id of next transaction
318    *
319    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase#rollback(long,
320    * boolean)
321    */

322   public static final int Rollback = 22;
323
324   /**
325    * Sets a named savepoint to a transaction given its id
326    *
327    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase#setSavepoint(long,
328    * String)
329    */

330   public static final int SetNamedSavepoint = 23;
331
332   /**
333    * Sets a unnamed savepoint to a transaction given its id
334    *
335    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase#setSavepoint(long)
336    */

337   public static final int SetUnnamedSavepoint = 24;
338
339   /**
340    * Releases a savepoint from a transaction given its id
341    *
342    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase#releaseSavepoint(long,
343    * String)
344    */

345   public static final int ReleaseSavepoint = 25;
346
347   /**
348    * Rollbacks the current transaction back to the given savepoint
349    *
350    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#rollbackToSavepoint()
351    */

352   public static final int RollbackToSavepoint = 26;
353
354   /*
355    * Connection management
356    */

357
358   /**
359    * Close the connection. The controller replies a CommandCompleted
360    * CJDBCException, ignored by the driver.
361    * <p>
362    * ~commandcode {@value}
363    * <p>
364    * <br>
365    * ~reply &lt;anything&gt;
366    */

367   public static final int Close = 30;
368
369   /**
370    * Reset the connection.
371    * <p>
372    * ~commandcode {@value}
373    */

374   public static final int Reset = 31;
375
376   /**
377    * Fetch next rows of data for ResultSet streaming.
378    * <p>
379    * ~commandcode {@value}
380    * <p>
381    * <br>
382    * ~argument UTF cursorName <br>
383    * ~argument Int fetchSize
384    * <p>
385    * <br>
386    * ~reply ArrayList data <br>
387    * ~reply boolean hasMoreData
388    */

389   public static final int FetchNextResultSetRows = 32;
390
391   /**
392    * Closes a remote ResultSet that was opened for streaming.
393    * <p>
394    * ~commandcode {@value}
395    * <p>
396    * <br>
397    * ~argument UTF cursorName
398    * <p>
399    * <br>
400    * ~reply CJDBCException CommandCompleted
401    */

402   public static final int CloseRemoteResultSet = 33;
403
404   /**
405    * Restore a connection state after an automatic reconnection. Tell the
406    * controller if we were in autoCommit mode (i.e.: a transaction was
407    * <em>not</em> started), and if we were not then give the current
408    * transactionId. Warning: this is not an optUTF type at all.
409    * <p>
410    * ~commandcode {@value}
411    * <p>
412    * <br>
413    * ~argument (boolean true) | (boolean false; Long transactionId)
414    */

415   public static final int RestoreConnectionState = 34;
416
417   /**
418    * Command to change the autocommit value from false to true. We want to
419    * commit the current transaction but we don't want to start a new one.
420    * <p>
421    * ~commandcode {@value}
422    * <p>
423    * <br>
424    * ~reply boolean true (meaning: not an exception)
425    */

426   public static final int SetAutoCommit = 35;
427
428   /**
429    * Retrieve the catalog (database) we are connected to.
430    * <p>
431    * ~commandcode {@value}
432    * <p>
433    * <br>
434    * ~reply String vdbName
435    *
436    * @see org.objectweb.cjdbc.driver.Connection#getCatalog()
437    */

438   public static final int ConnectionGetCatalog = 36;
439
440   /**
441    * Retrieve the list of available catalogs (databases).
442    * <p>
443    * ~commandcode {@value}
444    * <p>
445    * <br>
446    * ~reply ResultSet virtualDatabasesList
447    *
448    * @see org.objectweb.cjdbc.driver.Connection#getCatalogs()
449    */

450   public static final int ConnectionGetCatalogs = 37;
451
452   /**
453    * Connect to another catalog/database (as the same user).
454    * <p>
455    * ~commandcode {@value}
456    * <p>
457    * <br>
458    * ~argument UTF catalog
459    * <p>
460    * <br>
461    * ~reply boolean isValidCatalog
462    *
463    * @see org.objectweb.cjdbc.driver.Connection#setCatalog(String)
464    */

465   public static final int ConnectionSetCatalog = 38;
466
467   /**
468    * Set the new transaction isolation level to use for this connection.
469    * <p>
470    * ~commandcode {@value}
471    * <p>
472    * <br>
473    * ~argument int transaction isolation level
474    * <p>
475    * <br>
476    * ~reply boolean true (meaning: not an exception)
477    *
478    * @see org.objectweb.cjdbc.driver.Connection#setTransactionIsolation(int)
479    */

480   public static final int SetTransactionIsolation = 39;
481
482   /*
483    * MetaData functions
484    */

485
486   /**
487    * Gets the virtual database name to be used by the client (C-JDBC driver). It
488    * currently returns the same result as ConnectionGetCatalog(). It is
489    * currently never used by the driver.
490    * <p>
491    * ~commandcode {@value}
492    * <p>
493    * <br>
494    * ~reply String dbName
495    *
496    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase#getVirtualDatabaseName()
497    */

498   public static final int GetVirtualDatabaseName = 50;
499
500   /**
501    * Gets the controller version number.
502    * <p>
503    * ~commandcode {@value}
504    * <p>
505    * <br>
506    * ~reply String controllerVersion
507    *
508    * @see org.objectweb.cjdbc.controller.core.Controller#getVersionNumber()
509    */

510   public static final int GetControllerVersionNumber = 51;
511
512   /**
513    * Used to get the schema tables by calling DatabaseMetaData.getTables().
514    * <p>
515    * ~commandcode {@value}
516    * <p>
517    * <br>
518    * ~argument UTF catalog <br>
519    * ~argument UTF schemaPattern <br>
520    * ~argument UTF tableNamePattern <br>
521    * ~argument String[] types
522    * <p>
523    * <br>
524    * ~reply ResultSet tables
525    *
526    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetTables()
527    */

528   public static final int DatabaseMetaDataGetTables = 52;
529
530   /**
531    * Used to get the schema columns by calling DatabaseMetaData.getColumns().
532    * <p>
533    * ~commandcode {@value}
534    * <p>
535    * <br>
536    * ~argument UTF catalog <br>
537    * ~argument UTF schemaPattern <br>
538    * ~argument UTF tableNamePattern <br>
539    * ~argument UTF columnNamePattern
540    * <p>
541    * <br>
542    * ~reply ResultSet schemaColumns
543    *
544    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetColumns()
545    */

546   public static final int DatabaseMetaDataGetColumns = 53;
547
548   /**
549    * Used to get the schema primary keys by calling
550    * DatabaseMetaData.getColumns().
551    * <p>
552    * ~commandcode {@value}
553    * <p>
554    * <br>
555    * ~argument UTF catalog <br>
556    * ~argument UTF schemaPattern <br>
557    * ~argument UTF tableNamePattern
558    * <p>
559    * <br>
560    * ~reply ResultSet pKeys
561    *
562    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetPrimaryKeys()
563    */

564   public static final int DatabaseMetaDataGetPrimaryKeys = 54;
565
566   /**
567    * Used to get the schema procedures by calling
568    * DatabaseMetaData.getProcedures().
569    * <p>
570    * ~commandcode {@value}
571    * <p>
572    * <br>
573    * ~argument UTF catalog <br>
574    * ~argument UTF schemaPattern <br>
575    * ~argument UTF procedureNamePattern
576    * <p>
577    * <br>
578    * ~reply ResultSet procedures
579    *
580    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetProcedures()
581    */

582   public static final int DatabaseMetaDataGetProcedures = 55;
583
584   /**
585    * Used to get the schema procedure columns by calling
586    * DatabaseMetaData.getProcedureColumns().
587    * <p>
588    * ~commandcode {@value}
589    * <p>
590    * <br>
591    * ~argument UTF catalog <br>
592    * ~argument UTF schemaPattern <br>
593    * ~argument UTF procedureNamePattern <br>
594    * ~argument UTF columnNamePattern
595    * <p>
596    * <br>
597    * ~reply ResultSet procColumns
598    *
599    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetProcedureColumns()
600    */

601   public static final int DatabaseMetaDataGetProcedureColumns = 56;
602
603   /**
604    * Retrieve the database table types.
605    * <p>
606    * ~commandcode {@value}
607    * <p>
608    * <br>
609    * ~reply ResultSet tableTypes
610    *
611    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetTableTypes()
612    */

613   public static final int DatabaseMetaDataGetTableTypes = 58;
614
615   /**
616    * Retrieve the table privileges.
617    * <p>
618    * ~commandcode {@value}
619    * <p>
620    * <br>
621    * ~argument UTF catalog <br>
622    * ~argument UTF schemaPattern <br>
623    * ~argument UTF tableNamePattern
624    * <p>
625    * <br>
626    * ~reply ResultSet accessRights
627    *
628    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetTablePrivileges()
629    */

630   public static final int DatabaseMetaDataGetTablePrivileges = 59;
631
632   /**
633    * Retrieve the schemas.
634    * <p>
635    * ~commandcode {@value}
636    * <p>
637    * <br>
638    * ~reply ResultSet schemas
639    *
640    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetSchemas()
641    */

642   public static final int DatabaseMetaDataGetSchemas = 60;
643
644   /**
645    * Retrieve the database product name.
646    * <p>
647    * ~commandcode {@value}
648    * <p>
649    * <br>
650    * ~reply String productName
651    *
652    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetDatabaseProductName()
653    */

654   public static final int DatabaseMetaDataGetDatabaseProductName = 61;
655
656   /**
657    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetAttributes()
658    */

659   public static final int DatabaseMetaDataGetAttributes = 62;
660
661   /**
662    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetBestRowIdentifier()
663    */

664   public static final int DatabaseMetaDataGetBestRowIdentifier = 63;
665
666   /**
667    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetColumnPrivileges()
668    */

669   public static final int DatabaseMetaDataGetColumnPrivileges = 64;
670
671   /**
672    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetCrossReference()
673    */

674   public static final int DatabaseMetaDataGetCrossReference = 65;
675
676   /**
677    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetExportedKeys()
678    */

679   public static final int DatabaseMetaDataGetExportedKeys = 66;
680
681   /**
682    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetImportedKeys()
683    */

684   public static final int DatabaseMetaDataGetImportedKeys = 67;
685
686   /**
687    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetIndexInfo()
688    */

689   public static final int DatabaseMetaDataGetIndexInfo = 68;
690
691   /**
692    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetSuperTables()
693    */

694   public static final int DatabaseMetaDataGetSuperTables = 69;
695
696   /**
697    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetSuperTypes()
698    */

699   public static final int DatabaseMetaDataGetSuperTypes = 70;
700
701   /**
702    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetTypeInfo()
703    */

704   public static final int DatabaseMetaDataGetTypeInfo = 71;
705
706   /**
707    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseMetaDataGetUDTs()
708    */

709   public static final int DatabaseMetaDataGetUDTs = 72;
710
711   /**
712    * @see java.sql.DatabaseMetaData#getVersionColumns(java.lang.String,
713    * java.lang.String, java.lang.String)
714    */

715   public static final int DatabaseMetaDataGetVersionColumns = 73;
716
717   /**
718    * Retrieve one value from the virtual database metadata.
719    * <p>
720    * ~commandcode {@value}
721    * <p>
722    * <br>
723    * ~argument UTF: serialized DatabaseMetaData method call.
724    * <p>
725    * <br>
726    * ~reply Integer|Boolean|String|other ? value
727    *
728    * @see org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread#databaseStaticMetadata()
729    */

730   public static final int DatabaseStaticMetadata = 80;
731
732 }
733
Popular Tags