mirror of
https://github.com/postgres/postgres.git
synced 2025-04-27 22:56:53 +03:00
Indent jdbc case labels using pgjindent.
This commit is contained in:
parent
6c8120d68c
commit
09634eafe1
@ -291,7 +291,6 @@ public class ImageViewer implements ItemListener
|
||||
|
||||
public void run()
|
||||
{
|
||||
|
||||
// Now the real import stuff
|
||||
if (name != null && dir != null)
|
||||
{
|
||||
|
@ -6,7 +6,7 @@ import java.text.*;
|
||||
|
||||
/*
|
||||
*
|
||||
* $Id: basic.java,v 1.9 2001/11/19 22:43:13 momjian Exp $
|
||||
* $Id: basic.java,v 1.10 2001/11/19 23:16:44 momjian Exp $
|
||||
*
|
||||
* This example tests the basic components of the JDBC driver, and shows
|
||||
* how even the simplest of queries can be implemented.
|
||||
@ -137,6 +137,7 @@ public class basic
|
||||
// Now run the query again, showing a more efficient way of getting the
|
||||
// result if you don't know what column number a value is in
|
||||
|
||||
|
||||
System.out.println("performing another query");
|
||||
rs = st.executeQuery("select * from basic where b>1");
|
||||
if (rs != null)
|
||||
@ -163,6 +164,7 @@ public class basic
|
||||
|
||||
// Now test maxrows by setting it to 3 rows
|
||||
|
||||
|
||||
st.setMaxRows(3);
|
||||
System.out.println("performing a query limited to " + st.getMaxRows());
|
||||
rs = st.executeQuery("select a, b from basic");
|
||||
|
@ -61,7 +61,6 @@ public class blobtest
|
||||
System.out.println("Now closing the connection");
|
||||
s.close();
|
||||
db.close();
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
@ -171,7 +170,6 @@ public class blobtest
|
||||
lobj.unlink(oid);
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
// This tests the Blob interface of the JDBC 2.0 specification
|
||||
public void jdbc2api(int oid) throws SQLException, IOException
|
||||
{
|
||||
@ -218,8 +216,6 @@ public class blobtest
|
||||
db.setAutoCommit(false);
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
|
||||
public static void instructions()
|
||||
{
|
||||
System.err.println("java example.blobtest jdbc-url user password [debug]");
|
||||
|
@ -9,7 +9,7 @@ import org.omg.CosNaming.*;
|
||||
*
|
||||
* It has no GUI, just a text frontend to keep it simple.
|
||||
*
|
||||
* $Id: StockClient.java,v 1.3 2001/11/19 22:43:13 momjian Exp $
|
||||
* $Id: StockClient.java,v 1.4 2001/11/19 23:16:45 momjian Exp $
|
||||
*/
|
||||
public class StockClient
|
||||
{
|
||||
|
@ -9,7 +9,6 @@ import java.text.*;
|
||||
*
|
||||
* To use this example, you need a database to be in existence. This example
|
||||
* will create a table called datestyle.
|
||||
*
|
||||
*/
|
||||
|
||||
public class datestyle
|
||||
@ -105,7 +104,6 @@ public class datestyle
|
||||
ps.setDate(1, standard);
|
||||
ps.executeUpdate();
|
||||
ps.close();
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -218,7 +218,6 @@ public class metadata
|
||||
{
|
||||
if (line.startsWith("\\d"))
|
||||
{
|
||||
|
||||
if (line.startsWith("\\d "))
|
||||
{
|
||||
// Display details about a table
|
||||
|
@ -50,7 +50,7 @@ public class psql
|
||||
// Now the main loop.
|
||||
int tt = 0, lineno = 1;
|
||||
while (tt != StreamTokenizer.TT_EOF && ! done)
|
||||
{ // done added by CWJ to permit \q command
|
||||
{
|
||||
System.out.print("[" + lineno + "] ");
|
||||
System.out.flush();
|
||||
|
||||
@ -72,7 +72,6 @@ public class psql
|
||||
System.out.println("Now closing the connection");
|
||||
st.close();
|
||||
db.close();
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -53,7 +53,6 @@ public class threadsafe
|
||||
System.out.println("Now closing the connection");
|
||||
st.close();
|
||||
db.close();
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
@ -108,7 +107,6 @@ public class threadsafe
|
||||
System.out.println("Waiting for threads to run");
|
||||
while (thread1.isAlive() || thread2.isAlive() || thread3.isAlive())
|
||||
thread0.yield();
|
||||
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
@ -11,7 +11,7 @@ import org.postgresql.util.*;
|
||||
import org.postgresql.core.*;
|
||||
|
||||
/*
|
||||
* $Id: Connection.java,v 1.36 2001/11/19 22:33:37 momjian Exp $
|
||||
* $Id: Connection.java,v 1.37 2001/11/19 23:16:45 momjian Exp $
|
||||
*
|
||||
* This abstract class is used by org.postgresql.Driver to open either the JDBC1 or
|
||||
* JDBC2 versions of the Connection class.
|
||||
@ -115,7 +115,7 @@ public abstract class Connection
|
||||
this_url = url;
|
||||
PG_DATABASE = database;
|
||||
PG_USER = info.getProperty("user");
|
||||
PG_PASSWORD = info.getProperty("password","");
|
||||
PG_PASSWORD = info.getProperty("password", "");
|
||||
PG_PORT = port;
|
||||
PG_HOST = host;
|
||||
PG_STATUS = CONNECTION_BAD;
|
||||
@ -1166,6 +1166,5 @@ public abstract class Connection
|
||||
}
|
||||
return pgType;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,7 @@ import org.postgresql.core.*;
|
||||
import org.postgresql.util.*;
|
||||
|
||||
/*
|
||||
* $Id: PG_Stream.java,v 1.15 2001/11/19 22:33:37 momjian Exp $
|
||||
* $Id: PG_Stream.java,v 1.16 2001/11/19 23:16:45 momjian Exp $
|
||||
*
|
||||
* This class is used by Connection & PGlobj for communicating with the
|
||||
* backend.
|
||||
@ -371,5 +371,4 @@ public class PG_Stream
|
||||
pg_input.close();
|
||||
connection.close();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -40,7 +40,7 @@
|
||||
*
|
||||
* Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved.
|
||||
*
|
||||
* $Id: PostgresqlDataSource.java,v 1.4 2001/11/19 22:33:37 momjian Exp $
|
||||
* $Id: PostgresqlDataSource.java,v 1.5 2001/11/19 23:16:45 momjian Exp $
|
||||
*/
|
||||
|
||||
|
||||
@ -133,38 +133,32 @@ public class PostgresqlDataSource
|
||||
*/
|
||||
private int _loginTimeout;
|
||||
|
||||
|
||||
/*
|
||||
* Holds the user's account name.
|
||||
*/
|
||||
private String _user;
|
||||
|
||||
|
||||
/*
|
||||
* Holds the database password.
|
||||
*/
|
||||
private String _password;
|
||||
|
||||
|
||||
/*
|
||||
* Holds the name of the particular database on the server.
|
||||
*/
|
||||
private String _databaseName;
|
||||
|
||||
|
||||
/*
|
||||
* Description of this datasource.
|
||||
*/
|
||||
private String _description = "PostgreSQL DataSource";
|
||||
|
||||
|
||||
/*
|
||||
* Holds the database server name. If null, this is
|
||||
* assumed to be the localhost.
|
||||
*/
|
||||
private String _serverName;
|
||||
|
||||
|
||||
/*
|
||||
* Holds the port number where a server is listening.
|
||||
* The default value will open a connection with an
|
||||
@ -172,7 +166,6 @@ public class PostgresqlDataSource
|
||||
*/
|
||||
private int _portNumber = DEFAULT_PORT;
|
||||
|
||||
|
||||
/*
|
||||
* The default port number. Since we open the connection
|
||||
* without specifying the port if it's the default one,
|
||||
@ -180,7 +173,6 @@ public class PostgresqlDataSource
|
||||
*/
|
||||
private static final int DEFAULT_PORT = 0;
|
||||
|
||||
|
||||
/*
|
||||
* Holds the log writer to which all messages should be
|
||||
* printed. The default writer is obtained from the driver
|
||||
@ -189,7 +181,6 @@ public class PostgresqlDataSource
|
||||
*/
|
||||
private transient PrintWriter _logWriter;
|
||||
|
||||
|
||||
/*
|
||||
* Each datasource maintains it's own driver, in case of
|
||||
* driver-specific setup (e.g. pools, log writer).
|
||||
@ -197,9 +188,6 @@ public class PostgresqlDataSource
|
||||
// FIXME
|
||||
// private transient postgresql.Driver _driver;
|
||||
private transient org.postgresql.Driver _driver;
|
||||
//---------
|
||||
|
||||
|
||||
|
||||
public PostgresqlDataSource()
|
||||
{
|
||||
@ -233,12 +221,10 @@ public class PostgresqlDataSource
|
||||
// FIXME
|
||||
// _driver = new postgresql.Driver();
|
||||
_driver = new org.postgresql.Driver();
|
||||
//-----------
|
||||
|
||||
//FIXME
|
||||
// _driver.setLogWriter( _logWriter );
|
||||
// Method seems to be unavailable. Just commented it out.
|
||||
//----------
|
||||
}
|
||||
catch ( SQLException except )
|
||||
{
|
||||
@ -282,7 +268,6 @@ public class PostgresqlDataSource
|
||||
// if ( ! ( conn instanceof postgresql.jdbc2.Connection ) ) {
|
||||
if ( ! ( conn instanceof org.postgresql.jdbc2.Connection ) )
|
||||
{
|
||||
//--------
|
||||
if ( _logWriter != null )
|
||||
_logWriter.println( "DataSource: JDBC 1 connections not supported" );
|
||||
throw new PSQLException( "postgresql.ds.onlyjdbc2" );
|
||||
@ -317,7 +302,6 @@ public class PostgresqlDataSource
|
||||
// FIXME
|
||||
// _driver.setLogWriter( writer );
|
||||
// Method seems to be unavailable. Commented it out.
|
||||
//----------
|
||||
_logWriter = writer;
|
||||
}
|
||||
}
|
||||
@ -617,7 +601,5 @@ public class PostgresqlDataSource
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,6 @@ package org.postgresql.core;
|
||||
*/
|
||||
public class BytePoolDim1
|
||||
{
|
||||
|
||||
/*
|
||||
* The maximum size of the array we manage.
|
||||
*/
|
||||
|
@ -13,7 +13,7 @@ import org.postgresql.util.PSQLException;
|
||||
* <p>The lifetime of a QueryExecutor object is from sending the query
|
||||
* until the response has been received from the backend.
|
||||
*
|
||||
* $Id: QueryExecutor.java,v 1.4 2001/11/19 22:33:37 momjian Exp $
|
||||
* $Id: QueryExecutor.java,v 1.5 2001/11/19 23:16:45 momjian Exp $
|
||||
*/
|
||||
|
||||
public class QueryExecutor
|
||||
@ -162,7 +162,6 @@ public class QueryExecutor
|
||||
*/
|
||||
private void receiveCommandStatus() throws SQLException
|
||||
{
|
||||
|
||||
status = pg_stream.ReceiveString(connection.getEncoding());
|
||||
|
||||
try
|
||||
|
@ -61,7 +61,6 @@ public class Fastpath
|
||||
// added Oct 7 1998 to give us thread safety
|
||||
synchronized (stream)
|
||||
{
|
||||
|
||||
// send the function call
|
||||
try
|
||||
{
|
||||
|
@ -148,5 +148,4 @@ public class PGpath extends PGobject implements Serializable, Cloneable
|
||||
{
|
||||
open = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ import org.postgresql.util.PSQLException;
|
||||
/*
|
||||
* This class provides information about the database as a whole.
|
||||
*
|
||||
* $Id: DatabaseMetaData.java,v 1.39 2001/11/19 22:33:38 momjian Exp $
|
||||
* $Id: DatabaseMetaData.java,v 1.40 2001/11/19 23:16:45 momjian Exp $
|
||||
*
|
||||
* <p>Many of the methods here return lists of information in ResultSets. You
|
||||
* can use the normal ResultSet methods such as getString and getInt to
|
||||
@ -2274,22 +2274,22 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
|
||||
|
||||
private java.sql.ResultSet getImportedExportedKeys(String catalog, String schema, String primaryTable, String foreignTable) throws SQLException
|
||||
{
|
||||
Field f[]=new Field[14];
|
||||
Field f[] = new Field[14];
|
||||
|
||||
f[0]=new Field(connection, "PKTABLE_CAT", iVarcharOid, 32);
|
||||
f[1]=new Field(connection, "PKTABLE_SCHEM", iVarcharOid, 32);
|
||||
f[2]=new Field(connection, "PKTABLE_NAME", iVarcharOid, 32);
|
||||
f[3]=new Field(connection, "PKCOLUMN_NAME", iVarcharOid, 32);
|
||||
f[4]=new Field(connection, "FKTABLE_CAT", iVarcharOid, 32);
|
||||
f[5]=new Field(connection, "FKTABLE_SCHEM", iVarcharOid, 32);
|
||||
f[6]=new Field(connection, "FKTABLE_NAME", iVarcharOid, 32);
|
||||
f[7]=new Field(connection, "FKCOLUMN_NAME", iVarcharOid, 32);
|
||||
f[8]=new Field(connection, "KEY_SEQ", iInt2Oid, 2);
|
||||
f[9]=new Field(connection, "UPDATE_RULE", iInt2Oid, 2);
|
||||
f[10]=new Field(connection, "DELETE_RULE", iInt2Oid, 2);
|
||||
f[11]=new Field(connection, "FK_NAME", iVarcharOid, 32);
|
||||
f[12]=new Field(connection, "PK_NAME", iVarcharOid, 32);
|
||||
f[13]=new Field(connection, "DEFERRABILITY", iInt2Oid, 2);
|
||||
f[0] = new Field(connection, "PKTABLE_CAT", iVarcharOid, 32);
|
||||
f[1] = new Field(connection, "PKTABLE_SCHEM", iVarcharOid, 32);
|
||||
f[2] = new Field(connection, "PKTABLE_NAME", iVarcharOid, 32);
|
||||
f[3] = new Field(connection, "PKCOLUMN_NAME", iVarcharOid, 32);
|
||||
f[4] = new Field(connection, "FKTABLE_CAT", iVarcharOid, 32);
|
||||
f[5] = new Field(connection, "FKTABLE_SCHEM", iVarcharOid, 32);
|
||||
f[6] = new Field(connection, "FKTABLE_NAME", iVarcharOid, 32);
|
||||
f[7] = new Field(connection, "FKCOLUMN_NAME", iVarcharOid, 32);
|
||||
f[8] = new Field(connection, "KEY_SEQ", iInt2Oid, 2);
|
||||
f[9] = new Field(connection, "UPDATE_RULE", iInt2Oid, 2);
|
||||
f[10] = new Field(connection, "DELETE_RULE", iInt2Oid, 2);
|
||||
f[11] = new Field(connection, "FK_NAME", iVarcharOid, 32);
|
||||
f[12] = new Field(connection, "PK_NAME", iVarcharOid, 32);
|
||||
f[13] = new Field(connection, "DEFERRABILITY", iInt2Oid, 2);
|
||||
|
||||
java.sql.ResultSet rs = connection.ExecSQL("SELECT c.relname,c2.relname,"
|
||||
+ "t.tgconstrname,ic.relname,"
|
||||
@ -2299,87 +2299,107 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
|
||||
+ "pg_class ic,pg_proc p, pg_index i "
|
||||
+ "WHERE t.tgrelid=c.oid AND t.tgconstrrelid=c2.oid "
|
||||
+ "AND t.tgfoid=p.oid AND tgisconstraint "
|
||||
+ ((primaryTable!=null) ? "AND c2.relname='"+primaryTable+"' " : "")
|
||||
+ ((foreignTable!=null) ? "AND c.relname='"+foreignTable+"' " : "")
|
||||
+ ((primaryTable != null) ? "AND c2.relname='" + primaryTable + "' " : "")
|
||||
+ ((foreignTable != null) ? "AND c.relname='" + foreignTable + "' " : "")
|
||||
+ "AND i.indrelid=c.oid "
|
||||
+ "AND i.indexrelid=ic.oid AND i.indisprimary "
|
||||
+ "ORDER BY c.relname,c2.relname"
|
||||
);
|
||||
Vector tuples = new Vector();
|
||||
short seq=0;
|
||||
if (rs.next()) {
|
||||
short seq = 0;
|
||||
if (rs.next())
|
||||
{
|
||||
boolean hasMore;
|
||||
do {
|
||||
byte tuple[][]=new byte[14][0];
|
||||
do
|
||||
{
|
||||
byte tuple[][] = new byte[14][0];
|
||||
for (int k = 0;k < 14;k++)
|
||||
tuple[k] = null;
|
||||
|
||||
String fKeyName=rs.getString(3);
|
||||
boolean foundRule=false;
|
||||
do {
|
||||
String proname=rs.getString(9);
|
||||
if (proname!=null && proname.startsWith("RI_FKey_")) {
|
||||
int col=-1;
|
||||
if (proname.endsWith("_upd")) col=9; // UPDATE_RULE
|
||||
else if (proname.endsWith("_del")) col=10; // DELETE_RULE
|
||||
if (col>-1) {
|
||||
String rule=proname.substring(8, proname.length()-4);
|
||||
int action=importedKeyNoAction;
|
||||
if ("cascade".equals(rule)) action=importedKeyCascade;
|
||||
else if ("setnull".equals(rule)) action=importedKeySetNull;
|
||||
else if ("setdefault".equals(rule)) action=importedKeySetDefault;
|
||||
tuple[col]=Integer.toString(action).getBytes();
|
||||
foundRule=true;
|
||||
String fKeyName = rs.getString(3);
|
||||
boolean foundRule = false;
|
||||
do
|
||||
{
|
||||
String proname = rs.getString(9);
|
||||
if (proname != null && proname.startsWith("RI_FKey_"))
|
||||
{
|
||||
int col = -1;
|
||||
if (proname.endsWith("_upd"))
|
||||
col = 9; // UPDATE_RULE
|
||||
else if (proname.endsWith("_del"))
|
||||
col = 10; // DELETE_RULE
|
||||
if (col > -1)
|
||||
{
|
||||
String rule = proname.substring(8, proname.length() - 4);
|
||||
int action = importedKeyNoAction;
|
||||
if ("cascade".equals(rule))
|
||||
action = importedKeyCascade;
|
||||
else if ("setnull".equals(rule))
|
||||
action = importedKeySetNull;
|
||||
else if ("setdefault".equals(rule))
|
||||
action = importedKeySetDefault;
|
||||
tuple[col] = Integer.toString(action).getBytes();
|
||||
foundRule = true;
|
||||
}
|
||||
}
|
||||
} while ((hasMore=rs.next()) && fKeyName.equals(rs.getString(3)));
|
||||
}
|
||||
while ((hasMore = rs.next()) && fKeyName.equals(rs.getString(3)));
|
||||
|
||||
if (foundRule) {
|
||||
tuple[2]=rs.getBytes(2); //PKTABLE_NAME
|
||||
tuple[6]=rs.getBytes(1); //FKTABLE_NAME
|
||||
if (foundRule)
|
||||
{
|
||||
tuple[2] = rs.getBytes(2); //PKTABLE_NAME
|
||||
tuple[6] = rs.getBytes(1); //FKTABLE_NAME
|
||||
|
||||
// Parse the tgargs data
|
||||
StringBuffer fkeyColumns=new StringBuffer();
|
||||
StringBuffer pkeyColumns=new StringBuffer();
|
||||
int numColumns=(rs.getInt(7) >> 1) - 2;
|
||||
String s=rs.getString(8);
|
||||
int pos=s.lastIndexOf("\\000");
|
||||
for(int c=0;c<numColumns;c++) {
|
||||
if (pos>-1) {
|
||||
int pos2=s.lastIndexOf("\\000", pos-1);
|
||||
if (pos2>-1) {
|
||||
if (fkeyColumns.length()>0) fkeyColumns.insert(0, ',');
|
||||
fkeyColumns.insert(0, s.substring(pos2+4, pos)); //FKCOLUMN_NAME
|
||||
pos=s.lastIndexOf("\\000", pos2-1);
|
||||
if (pos>-1) {
|
||||
if (pkeyColumns.length()>0) pkeyColumns.insert(0, ',');
|
||||
pkeyColumns.insert(0, s.substring(pos+4, pos2)); //PKCOLUMN_NAME
|
||||
StringBuffer fkeyColumns = new StringBuffer();
|
||||
StringBuffer pkeyColumns = new StringBuffer();
|
||||
int numColumns = (rs.getInt(7) >> 1) - 2;
|
||||
String s = rs.getString(8);
|
||||
int pos = s.lastIndexOf("\\000");
|
||||
for (int c = 0;c < numColumns;c++)
|
||||
{
|
||||
if (pos > -1)
|
||||
{
|
||||
int pos2 = s.lastIndexOf("\\000", pos - 1);
|
||||
if (pos2 > -1)
|
||||
{
|
||||
if (fkeyColumns.length() > 0)
|
||||
fkeyColumns.insert(0, ',');
|
||||
fkeyColumns.insert(0, s.substring(pos2 + 4, pos)); //FKCOLUMN_NAME
|
||||
pos = s.lastIndexOf("\\000", pos2 - 1);
|
||||
if (pos > -1)
|
||||
{
|
||||
if (pkeyColumns.length() > 0)
|
||||
pkeyColumns.insert(0, ',');
|
||||
pkeyColumns.insert(0, s.substring(pos + 4, pos2)); //PKCOLUMN_NAME
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
tuple[7]=fkeyColumns.toString().getBytes(); //FKCOLUMN_NAME
|
||||
tuple[3]=pkeyColumns.toString().getBytes(); //PKCOLUMN_NAME
|
||||
tuple[7] = fkeyColumns.toString().getBytes(); //FKCOLUMN_NAME
|
||||
tuple[3] = pkeyColumns.toString().getBytes(); //PKCOLUMN_NAME
|
||||
|
||||
tuple[8]=Integer.toString(seq++).getBytes(); //KEY_SEQ
|
||||
tuple[11]=fKeyName.getBytes(); //FK_NAME
|
||||
tuple[12]=rs.getBytes(4); //PK_NAME
|
||||
tuple[8] = Integer.toString(seq++).getBytes(); //KEY_SEQ
|
||||
tuple[11] = fKeyName.getBytes(); //FK_NAME
|
||||
tuple[12] = rs.getBytes(4); //PK_NAME
|
||||
|
||||
// DEFERRABILITY
|
||||
int deferrability=importedKeyNotDeferrable;
|
||||
boolean deferrable=rs.getBoolean(5);
|
||||
boolean initiallyDeferred=rs.getBoolean(6);
|
||||
if (deferrable) {
|
||||
int deferrability = importedKeyNotDeferrable;
|
||||
boolean deferrable = rs.getBoolean(5);
|
||||
boolean initiallyDeferred = rs.getBoolean(6);
|
||||
if (deferrable)
|
||||
{
|
||||
if (initiallyDeferred)
|
||||
deferrability=importedKeyInitiallyDeferred;
|
||||
deferrability = importedKeyInitiallyDeferred;
|
||||
else
|
||||
deferrability=importedKeyInitiallyImmediate;
|
||||
deferrability = importedKeyInitiallyImmediate;
|
||||
}
|
||||
tuple[13]=Integer.toString(deferrability).getBytes();
|
||||
tuple[13] = Integer.toString(deferrability).getBytes();
|
||||
|
||||
tuples.addElement(tuple);
|
||||
}
|
||||
} while (hasMore);
|
||||
}
|
||||
while (hasMore);
|
||||
}
|
||||
|
||||
return new ResultSet(connection, f, tuples, "OK", 1);
|
||||
|
@ -447,9 +447,12 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
|
||||
return null;
|
||||
// length == 10: SQL Date
|
||||
// length > 10: SQL Timestamp, assumes PGDATESTYLE=ISO
|
||||
try {
|
||||
return java.sql.Date.valueOf((s.length() == 10) ? s : s.substring(0,10));
|
||||
} catch (NumberFormatException e) {
|
||||
try
|
||||
{
|
||||
return java.sql.Date.valueOf((s.length() == 10) ? s : s.substring(0, 10));
|
||||
}
|
||||
catch (NumberFormatException e)
|
||||
{
|
||||
throw new PSQLException("postgresql.res.baddate", s);
|
||||
}
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ import org.postgresql.util.PSQLException;
|
||||
/*
|
||||
* This class provides information about the database as a whole.
|
||||
*
|
||||
* $Id: DatabaseMetaData.java,v 1.46 2001/11/19 22:33:39 momjian Exp $
|
||||
* $Id: DatabaseMetaData.java,v 1.47 2001/11/19 23:16:46 momjian Exp $
|
||||
*
|
||||
* <p>Many of the methods here return lists of information in ResultSets. You
|
||||
* can use the normal ResultSet methods such as getString and getInt to
|
||||
@ -88,7 +88,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
|
||||
public String getURL() throws SQLException
|
||||
{
|
||||
String url = connection.getURL();
|
||||
Driver.debug("getURL "+url);
|
||||
Driver.debug("getURL " + url);
|
||||
return url;
|
||||
}
|
||||
|
||||
@ -101,7 +101,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
|
||||
public String getUserName() throws SQLException
|
||||
{
|
||||
String userName = connection.getUserName();
|
||||
Driver.debug("getUserName "+ userName);
|
||||
Driver.debug("getUserName " + userName);
|
||||
return userName;
|
||||
}
|
||||
|
||||
@ -114,7 +114,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
|
||||
public boolean isReadOnly() throws SQLException
|
||||
{
|
||||
boolean isReadOnly = connection.isReadOnly();
|
||||
Driver.debug("isReadOnly " +isReadOnly);
|
||||
Driver.debug("isReadOnly " + isReadOnly);
|
||||
return isReadOnly;
|
||||
}
|
||||
|
||||
@ -164,7 +164,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
|
||||
public boolean nullsAreSortedAtEnd() throws SQLException
|
||||
{
|
||||
boolean nullsAreSortedAtEnd = ! connection.haveMinimumServerVersion("7.2");
|
||||
Driver.debug("nullsAreSortedAtEnd "+nullsAreSortedAtEnd);
|
||||
Driver.debug("nullsAreSortedAtEnd " + nullsAreSortedAtEnd);
|
||||
return nullsAreSortedAtEnd;
|
||||
}
|
||||
|
||||
@ -218,7 +218,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
|
||||
public String getDriverVersion() throws SQLException
|
||||
{
|
||||
String driverVersion = connection.this_driver.getVersion();
|
||||
Driver.debug("getDriverVersion "+driverVersion);
|
||||
Driver.debug("getDriverVersion " + driverVersion);
|
||||
return driverVersion;
|
||||
}
|
||||
|
||||
@ -230,7 +230,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
|
||||
public int getDriverMajorVersion()
|
||||
{
|
||||
int majorVersion = connection.this_driver.getMajorVersion();
|
||||
Driver.debug("getMajorVersion " +majorVersion);
|
||||
Driver.debug("getMajorVersion " + majorVersion);
|
||||
return majorVersion;
|
||||
}
|
||||
|
||||
@ -242,7 +242,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
|
||||
public int getDriverMinorVersion()
|
||||
{
|
||||
int minorVersion = connection.this_driver.getMinorVersion();
|
||||
Driver.debug("getMinorVersion " +minorVersion);
|
||||
Driver.debug("getMinorVersion " + minorVersion);
|
||||
return minorVersion;
|
||||
}
|
||||
|
||||
@ -298,7 +298,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
|
||||
*/
|
||||
public boolean storesUpperCaseIdentifiers() throws SQLException
|
||||
{
|
||||
Driver.debug("storesUpperCaseIdentifiers "+false);
|
||||
Driver.debug("storesUpperCaseIdentifiers " + false);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -622,7 +622,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
|
||||
public boolean supportsGroupByUnrelated() throws SQLException
|
||||
{
|
||||
boolean supportsGroupByUnrelated = connection.haveMinimumServerVersion("6.4");
|
||||
Driver.debug("supportsGroupByUnrelated "+ supportsGroupByUnrelated);
|
||||
Driver.debug("supportsGroupByUnrelated " + supportsGroupByUnrelated);
|
||||
return supportsGroupByUnrelated;
|
||||
}
|
||||
|
||||
@ -2245,27 +2245,28 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
|
||||
if (tableNamePattern == null)
|
||||
tableNamePattern = "%";
|
||||
|
||||
f[0] = new Field(connection,"TABLE_CAT",iVarcharOid,32);
|
||||
f[1] = new Field(connection,"TABLE_SCHEM",iVarcharOid,32);
|
||||
f[2] = new Field(connection,"TABLE_NAME",iVarcharOid,32);
|
||||
f[3] = new Field(connection,"COLUMN_NAME",iVarcharOid,32);
|
||||
f[4] = new Field(connection,"GRANTOR",iVarcharOid,32);
|
||||
f[5] = new Field(connection,"GRANTEE",iVarcharOid,32);
|
||||
f[6] = new Field(connection,"PRIVILEGE",iVarcharOid,32);
|
||||
f[7] = new Field(connection,"IS_GRANTABLE",iVarcharOid,32);
|
||||
f[0] = new Field(connection, "TABLE_CAT", iVarcharOid, 32);
|
||||
f[1] = new Field(connection, "TABLE_SCHEM", iVarcharOid, 32);
|
||||
f[2] = new Field(connection, "TABLE_NAME", iVarcharOid, 32);
|
||||
f[3] = new Field(connection, "COLUMN_NAME", iVarcharOid, 32);
|
||||
f[4] = new Field(connection, "GRANTOR", iVarcharOid, 32);
|
||||
f[5] = new Field(connection, "GRANTEE", iVarcharOid, 32);
|
||||
f[6] = new Field(connection, "PRIVILEGE", iVarcharOid, 32);
|
||||
f[7] = new Field(connection, "IS_GRANTABLE", iVarcharOid, 32);
|
||||
|
||||
// This is taken direct from the psql source
|
||||
java.sql.ResultSet r = connection.ExecSQL("SELECT relname, relacl FROM pg_class, pg_user WHERE ( relkind = 'r' OR relkind = 'i') and relname !~ '^pg_' and relname !~ '^xin[vx][0-9]+' and usesysid = relowner and relname like '"+tableNamePattern.toLowerCase()+"' ORDER BY relname");
|
||||
while (r.next()) {
|
||||
java.sql.ResultSet r = connection.ExecSQL("SELECT relname, relacl FROM pg_class, pg_user WHERE ( relkind = 'r' OR relkind = 'i') and relname !~ '^pg_' and relname !~ '^xin[vx][0-9]+' and usesysid = relowner and relname like '" + tableNamePattern.toLowerCase() + "' ORDER BY relname");
|
||||
while (r.next())
|
||||
{
|
||||
byte[][] tuple = new byte[8][0];
|
||||
tuple[0] = tuple[1]= "".getBytes();
|
||||
DriverManager.println("relname=\""+r.getString(1)+"\" relacl=\""+r.getString(2)+"\"");
|
||||
tuple[0] = tuple[1] = "".getBytes();
|
||||
DriverManager.println("relname=\"" + r.getString(1) + "\" relacl=\"" + r.getString(2) + "\"");
|
||||
|
||||
// For now, don't add to the result as relacl needs to be processed.
|
||||
//v.addElement(tuple);
|
||||
}
|
||||
|
||||
return new ResultSet(connection,f,v,"OK",1);
|
||||
return new ResultSet(connection, f, v, "OK", 1);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -2401,22 +2402,22 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
|
||||
|
||||
private java.sql.ResultSet getImportedExportedKeys(String catalog, String schema, String primaryTable, String foreignTable) throws SQLException
|
||||
{
|
||||
Field f[]=new Field[14];
|
||||
Field f[] = new Field[14];
|
||||
|
||||
f[0]=new Field(connection, "PKTABLE_CAT", iVarcharOid, 32);
|
||||
f[1]=new Field(connection, "PKTABLE_SCHEM", iVarcharOid, 32);
|
||||
f[2]=new Field(connection, "PKTABLE_NAME", iVarcharOid, 32);
|
||||
f[3]=new Field(connection, "PKCOLUMN_NAME", iVarcharOid, 32);
|
||||
f[4]=new Field(connection, "FKTABLE_CAT", iVarcharOid, 32);
|
||||
f[5]=new Field(connection, "FKTABLE_SCHEM", iVarcharOid, 32);
|
||||
f[6]=new Field(connection, "FKTABLE_NAME", iVarcharOid, 32);
|
||||
f[7]=new Field(connection, "FKCOLUMN_NAME", iVarcharOid, 32);
|
||||
f[8]=new Field(connection, "KEY_SEQ", iInt2Oid, 2);
|
||||
f[9]=new Field(connection, "UPDATE_RULE", iInt2Oid, 2);
|
||||
f[10]=new Field(connection, "DELETE_RULE", iInt2Oid, 2);
|
||||
f[11]=new Field(connection, "FK_NAME", iVarcharOid, 32);
|
||||
f[12]=new Field(connection, "PK_NAME", iVarcharOid, 32);
|
||||
f[13]=new Field(connection, "DEFERRABILITY", iInt2Oid, 2);
|
||||
f[0] = new Field(connection, "PKTABLE_CAT", iVarcharOid, 32);
|
||||
f[1] = new Field(connection, "PKTABLE_SCHEM", iVarcharOid, 32);
|
||||
f[2] = new Field(connection, "PKTABLE_NAME", iVarcharOid, 32);
|
||||
f[3] = new Field(connection, "PKCOLUMN_NAME", iVarcharOid, 32);
|
||||
f[4] = new Field(connection, "FKTABLE_CAT", iVarcharOid, 32);
|
||||
f[5] = new Field(connection, "FKTABLE_SCHEM", iVarcharOid, 32);
|
||||
f[6] = new Field(connection, "FKTABLE_NAME", iVarcharOid, 32);
|
||||
f[7] = new Field(connection, "FKCOLUMN_NAME", iVarcharOid, 32);
|
||||
f[8] = new Field(connection, "KEY_SEQ", iInt2Oid, 2);
|
||||
f[9] = new Field(connection, "UPDATE_RULE", iInt2Oid, 2);
|
||||
f[10] = new Field(connection, "DELETE_RULE", iInt2Oid, 2);
|
||||
f[11] = new Field(connection, "FK_NAME", iVarcharOid, 32);
|
||||
f[12] = new Field(connection, "PK_NAME", iVarcharOid, 32);
|
||||
f[13] = new Field(connection, "DEFERRABILITY", iInt2Oid, 2);
|
||||
|
||||
java.sql.ResultSet rs = connection.ExecSQL("SELECT c.relname,c2.relname,"
|
||||
+ "t.tgconstrname,ic.relname,"
|
||||
@ -2426,87 +2427,107 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
|
||||
+ "pg_class ic,pg_proc p, pg_index i "
|
||||
+ "WHERE t.tgrelid=c.oid AND t.tgconstrrelid=c2.oid "
|
||||
+ "AND t.tgfoid=p.oid AND tgisconstraint "
|
||||
+ ((primaryTable!=null) ? "AND c2.relname='"+primaryTable+"' " : "")
|
||||
+ ((foreignTable!=null) ? "AND c.relname='"+foreignTable+"' " : "")
|
||||
+ ((primaryTable != null) ? "AND c2.relname='" + primaryTable + "' " : "")
|
||||
+ ((foreignTable != null) ? "AND c.relname='" + foreignTable + "' " : "")
|
||||
+ "AND i.indrelid=c.oid "
|
||||
+ "AND i.indexrelid=ic.oid AND i.indisprimary "
|
||||
+ "ORDER BY c.relname,c2.relname"
|
||||
);
|
||||
Vector tuples = new Vector();
|
||||
short seq=0;
|
||||
if (rs.next()) {
|
||||
short seq = 0;
|
||||
if (rs.next())
|
||||
{
|
||||
boolean hasMore;
|
||||
do {
|
||||
byte tuple[][]=new byte[14][0];
|
||||
do
|
||||
{
|
||||
byte tuple[][] = new byte[14][0];
|
||||
for (int k = 0;k < 14;k++)
|
||||
tuple[k] = null;
|
||||
|
||||
String fKeyName=rs.getString(3);
|
||||
boolean foundRule=false;
|
||||
do {
|
||||
String proname=rs.getString(9);
|
||||
if (proname!=null && proname.startsWith("RI_FKey_")) {
|
||||
int col=-1;
|
||||
if (proname.endsWith("_upd")) col=9; // UPDATE_RULE
|
||||
else if (proname.endsWith("_del")) col=10; // DELETE_RULE
|
||||
if (col>-1) {
|
||||
String rule=proname.substring(8, proname.length()-4);
|
||||
int action=importedKeyNoAction;
|
||||
if ("cascade".equals(rule)) action=importedKeyCascade;
|
||||
else if ("setnull".equals(rule)) action=importedKeySetNull;
|
||||
else if ("setdefault".equals(rule)) action=importedKeySetDefault;
|
||||
tuple[col]=Integer.toString(action).getBytes();
|
||||
foundRule=true;
|
||||
String fKeyName = rs.getString(3);
|
||||
boolean foundRule = false;
|
||||
do
|
||||
{
|
||||
String proname = rs.getString(9);
|
||||
if (proname != null && proname.startsWith("RI_FKey_"))
|
||||
{
|
||||
int col = -1;
|
||||
if (proname.endsWith("_upd"))
|
||||
col = 9; // UPDATE_RULE
|
||||
else if (proname.endsWith("_del"))
|
||||
col = 10; // DELETE_RULE
|
||||
if (col > -1)
|
||||
{
|
||||
String rule = proname.substring(8, proname.length() - 4);
|
||||
int action = importedKeyNoAction;
|
||||
if ("cascade".equals(rule))
|
||||
action = importedKeyCascade;
|
||||
else if ("setnull".equals(rule))
|
||||
action = importedKeySetNull;
|
||||
else if ("setdefault".equals(rule))
|
||||
action = importedKeySetDefault;
|
||||
tuple[col] = Integer.toString(action).getBytes();
|
||||
foundRule = true;
|
||||
}
|
||||
}
|
||||
} while ((hasMore=rs.next()) && fKeyName.equals(rs.getString(3)));
|
||||
}
|
||||
while ((hasMore = rs.next()) && fKeyName.equals(rs.getString(3)));
|
||||
|
||||
if (foundRule) {
|
||||
tuple[2]=rs.getBytes(2); //PKTABLE_NAME
|
||||
tuple[6]=rs.getBytes(1); //FKTABLE_NAME
|
||||
if (foundRule)
|
||||
{
|
||||
tuple[2] = rs.getBytes(2); //PKTABLE_NAME
|
||||
tuple[6] = rs.getBytes(1); //FKTABLE_NAME
|
||||
|
||||
// Parse the tgargs data
|
||||
StringBuffer fkeyColumns=new StringBuffer();
|
||||
StringBuffer pkeyColumns=new StringBuffer();
|
||||
int numColumns=(rs.getInt(7) >> 1) - 2;
|
||||
String s=rs.getString(8);
|
||||
int pos=s.lastIndexOf("\\000");
|
||||
for(int c=0;c<numColumns;c++) {
|
||||
if (pos>-1) {
|
||||
int pos2=s.lastIndexOf("\\000", pos-1);
|
||||
if (pos2>-1) {
|
||||
if (fkeyColumns.length()>0) fkeyColumns.insert(0, ',');
|
||||
fkeyColumns.insert(0, s.substring(pos2+4, pos)); //FKCOLUMN_NAME
|
||||
pos=s.lastIndexOf("\\000", pos2-1);
|
||||
if (pos>-1) {
|
||||
if (pkeyColumns.length()>0) pkeyColumns.insert(0, ',');
|
||||
pkeyColumns.insert(0, s.substring(pos+4, pos2)); //PKCOLUMN_NAME
|
||||
StringBuffer fkeyColumns = new StringBuffer();
|
||||
StringBuffer pkeyColumns = new StringBuffer();
|
||||
int numColumns = (rs.getInt(7) >> 1) - 2;
|
||||
String s = rs.getString(8);
|
||||
int pos = s.lastIndexOf("\\000");
|
||||
for (int c = 0;c < numColumns;c++)
|
||||
{
|
||||
if (pos > -1)
|
||||
{
|
||||
int pos2 = s.lastIndexOf("\\000", pos - 1);
|
||||
if (pos2 > -1)
|
||||
{
|
||||
if (fkeyColumns.length() > 0)
|
||||
fkeyColumns.insert(0, ',');
|
||||
fkeyColumns.insert(0, s.substring(pos2 + 4, pos)); //FKCOLUMN_NAME
|
||||
pos = s.lastIndexOf("\\000", pos2 - 1);
|
||||
if (pos > -1)
|
||||
{
|
||||
if (pkeyColumns.length() > 0)
|
||||
pkeyColumns.insert(0, ',');
|
||||
pkeyColumns.insert(0, s.substring(pos + 4, pos2)); //PKCOLUMN_NAME
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
tuple[7]=fkeyColumns.toString().getBytes(); //FKCOLUMN_NAME
|
||||
tuple[3]=pkeyColumns.toString().getBytes(); //PKCOLUMN_NAME
|
||||
tuple[7] = fkeyColumns.toString().getBytes(); //FKCOLUMN_NAME
|
||||
tuple[3] = pkeyColumns.toString().getBytes(); //PKCOLUMN_NAME
|
||||
|
||||
tuple[8]=Integer.toString(seq++).getBytes(); //KEY_SEQ
|
||||
tuple[11]=fKeyName.getBytes(); //FK_NAME
|
||||
tuple[12]=rs.getBytes(4); //PK_NAME
|
||||
tuple[8] = Integer.toString(seq++).getBytes(); //KEY_SEQ
|
||||
tuple[11] = fKeyName.getBytes(); //FK_NAME
|
||||
tuple[12] = rs.getBytes(4); //PK_NAME
|
||||
|
||||
// DEFERRABILITY
|
||||
int deferrability=importedKeyNotDeferrable;
|
||||
boolean deferrable=rs.getBoolean(5);
|
||||
boolean initiallyDeferred=rs.getBoolean(6);
|
||||
if (deferrable) {
|
||||
int deferrability = importedKeyNotDeferrable;
|
||||
boolean deferrable = rs.getBoolean(5);
|
||||
boolean initiallyDeferred = rs.getBoolean(6);
|
||||
if (deferrable)
|
||||
{
|
||||
if (initiallyDeferred)
|
||||
deferrability=importedKeyInitiallyDeferred;
|
||||
deferrability = importedKeyInitiallyDeferred;
|
||||
else
|
||||
deferrability=importedKeyInitiallyImmediate;
|
||||
deferrability = importedKeyInitiallyImmediate;
|
||||
}
|
||||
tuple[13]=Integer.toString(deferrability).getBytes();
|
||||
tuple[13] = Integer.toString(deferrability).getBytes();
|
||||
|
||||
tuples.addElement(tuple);
|
||||
}
|
||||
} while (hasMore);
|
||||
}
|
||||
while (hasMore);
|
||||
}
|
||||
|
||||
return new ResultSet(connection, f, tuples, "OK", 1);
|
||||
|
@ -1565,9 +1565,12 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
|
||||
return null;
|
||||
// length == 10: SQL Date
|
||||
// length > 10: SQL Timestamp, assumes PGDATESTYLE=ISO
|
||||
try {
|
||||
return java.sql.Date.valueOf((s.length() == 10) ? s : s.substring(0,10));
|
||||
} catch (NumberFormatException e) {
|
||||
try
|
||||
{
|
||||
return java.sql.Date.valueOf((s.length() == 10) ? s : s.substring(0, 10));
|
||||
}
|
||||
catch (NumberFormatException e)
|
||||
{
|
||||
throw new PSQLException("postgresql.res.baddate", s);
|
||||
}
|
||||
}
|
||||
@ -1578,10 +1581,13 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
|
||||
return null; // SQL NULL
|
||||
// length == 8: SQL Time
|
||||
// length > 8: SQL Timestamp
|
||||
try {
|
||||
return java.sql.Time.valueOf((s.length() == 8) ? s : s.substring(11,19));
|
||||
} catch (NumberFormatException e) {
|
||||
throw new PSQLException("postgresql.res.badtime",s);
|
||||
try
|
||||
{
|
||||
return java.sql.Time.valueOf((s.length() == 8) ? s : s.substring(11, 19));
|
||||
}
|
||||
catch (NumberFormatException e)
|
||||
{
|
||||
throw new PSQLException("postgresql.res.badtime", s);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1639,21 +1645,27 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
|
||||
{
|
||||
resultSet.sbuf.append("GMT").append(s.substring(s.length() - 3)).append(":00");
|
||||
}
|
||||
} else if (sub == ':') {
|
||||
}
|
||||
else if (sub == ':')
|
||||
{
|
||||
//we may have found timezone info of format +/-HH:MM, or there is no
|
||||
//timezone info at all and this is the : preceding the seconds
|
||||
char sub2 = resultSet.sbuf.charAt(resultSet.sbuf.length()-5);
|
||||
char sub2 = resultSet.sbuf.charAt(resultSet.sbuf.length() - 5);
|
||||
if (sub2 == '+' || sub2 == '-')
|
||||
{
|
||||
//we have found timezone info of format +/-HH:MM
|
||||
resultSet.sbuf.setLength(resultSet.sbuf.length()-5);
|
||||
resultSet.sbuf.setLength(resultSet.sbuf.length() - 5);
|
||||
if (subsecond)
|
||||
{
|
||||
resultSet.sbuf.append('0').append("GMT").append(s.substring(s.length()-5));
|
||||
} else {
|
||||
resultSet.sbuf.append("GMT").append(s.substring(s.length()-5));
|
||||
resultSet.sbuf.append('0').append("GMT").append(s.substring(s.length() - 5));
|
||||
}
|
||||
} else if (subsecond) {
|
||||
else
|
||||
{
|
||||
resultSet.sbuf.append("GMT").append(s.substring(s.length() - 5));
|
||||
}
|
||||
}
|
||||
else if (subsecond)
|
||||
{
|
||||
resultSet.sbuf.append('0');
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ import java.sql.*;
|
||||
import org.postgresql.largeobject.*;
|
||||
|
||||
/*
|
||||
* $Id: BlobTest.java,v 1.4 2001/11/19 22:33:39 momjian Exp $
|
||||
* $Id: BlobTest.java,v 1.5 2001/11/19 23:16:46 momjian Exp $
|
||||
*
|
||||
* Some simple tests based on problems reported by users. Hopefully these will
|
||||
* help prevent previous problems from re-occuring ;-)
|
||||
|
@ -45,13 +45,13 @@ public class ResultSetTest extends TestCase
|
||||
Statement stmt = con.createStatement();
|
||||
ResultSet rs = stmt.executeQuery("SELECT * FROM testrs");
|
||||
|
||||
assertTrue(rs.absolute(-1));
|
||||
assertTrue(rs.absolute( -1));
|
||||
assertEquals(6, rs.getRow());
|
||||
|
||||
assertTrue(rs.absolute(1));
|
||||
assertEquals(1, rs.getRow());
|
||||
|
||||
assertTrue(!rs.absolute(-10));
|
||||
assertTrue(!rs.absolute( -10));
|
||||
assertEquals(0, rs.getRow());
|
||||
assertTrue(rs.next());
|
||||
assertEquals(1, rs.getRow());
|
||||
|
@ -77,6 +77,7 @@ public class PGtokenizer
|
||||
|
||||
// Don't forget the last token ;-)
|
||||
|
||||
|
||||
if (s < string.length())
|
||||
tokens.addElement(string.substring(s));
|
||||
|
||||
|
@ -40,7 +40,7 @@
|
||||
*
|
||||
* Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved.
|
||||
*
|
||||
* $Id: XADataSourceImpl.java,v 1.3 2001/11/19 22:33:39 momjian Exp $
|
||||
* $Id: XADataSourceImpl.java,v 1.4 2001/11/19 23:16:46 momjian Exp $
|
||||
*/
|
||||
|
||||
|
||||
@ -379,6 +379,7 @@ public abstract class XADataSourceImpl
|
||||
// Look for all connections inside a transaction that
|
||||
// should have timed out by now.
|
||||
|
||||
|
||||
timeout = System.currentTimeMillis();
|
||||
enum = _txConnections.elements();
|
||||
while ( enum.hasMoreElements() )
|
||||
|
@ -16,7 +16,7 @@ fi
|
||||
|
||||
for FILE
|
||||
do
|
||||
astyle --style=java -b -p -j < "$FILE" >/tmp/$$ 2>/tmp/$$a
|
||||
astyle --style=java -b -p -j -S < "$FILE" >/tmp/$$ 2>/tmp/$$a
|
||||
if [ "$?" -ne 0 -o -s /tmp/$$a ]
|
||||
then echo "$FILE"
|
||||
cat /tmp/$$a
|
||||
|
Loading…
x
Reference in New Issue
Block a user