mirror of
https://github.com/postgres/postgres.git
synced 2025-05-26 18:17:33 +03:00
Add intended Array.java file that accidentally was patched into the
wrong directory.
This commit is contained in:
parent
d39ec83cc2
commit
46d7ae759b
@ -24,10 +24,6 @@
|
||||
* PRIVATE FUNCTIONS
|
||||
*/
|
||||
|
||||
typedef unsigned char unsigned8;
|
||||
typedef unsigned int unsigned32;
|
||||
typedef unsigned long unsigned64;
|
||||
|
||||
#ifdef FRONTEND
|
||||
#undef palloc
|
||||
#define palloc malloc
|
||||
@ -39,13 +35,13 @@ typedef unsigned long unsigned64;
|
||||
* The returned array is allocated using malloc. the caller should free it
|
||||
* when it is no longer needed.
|
||||
*/
|
||||
static unsigned8 *
|
||||
createPaddedCopyWithLength(unsigned8 *b, unsigned32 *l)
|
||||
static uint8 *
|
||||
createPaddedCopyWithLength(uint8 *b, uint32 *l)
|
||||
{
|
||||
unsigned8 *ret;
|
||||
unsigned32 q;
|
||||
unsigned32 len, newLen448;
|
||||
unsigned64 len64;
|
||||
uint8 *ret;
|
||||
uint32 q;
|
||||
uint32 len, newLen448;
|
||||
uint32 len_high, len_low; /* 64-bit value split into 32-bit sections */
|
||||
|
||||
len = ((b == NULL) ? 0 : *l);
|
||||
newLen448 = len + 64 - (len % 64) - 8;
|
||||
@ -53,11 +49,11 @@ createPaddedCopyWithLength(unsigned8 *b, unsigned32 *l)
|
||||
newLen448 += 64;
|
||||
|
||||
*l = newLen448 + 8;
|
||||
if ((ret = (unsigned8 *) malloc(sizeof(unsigned8) * *l)) == NULL)
|
||||
if ((ret = (uint8 *) malloc(sizeof(uint8) * *l)) == NULL)
|
||||
return NULL;
|
||||
|
||||
if (b != NULL)
|
||||
memcpy(ret, b, sizeof(unsigned8) * len);
|
||||
memcpy(ret, b, sizeof(uint8) * len);
|
||||
|
||||
/* pad */
|
||||
ret[len] = 0x80;
|
||||
@ -65,24 +61,26 @@ createPaddedCopyWithLength(unsigned8 *b, unsigned32 *l)
|
||||
ret[q] = 0x00;
|
||||
|
||||
/* append length as a 64 bit bitcount */
|
||||
len64 = len;
|
||||
len64 <<= 3;
|
||||
len_low = len;
|
||||
/* split into two 32-bit values */
|
||||
/* we only look at the bottom 32-bits */
|
||||
len_high = len >> 29;
|
||||
len_low <<= 3;
|
||||
q = newLen448;
|
||||
ret[q++] = (len64 & 0xFF);
|
||||
len64 >>= 8;
|
||||
ret[q++] = (len64 & 0xFF);
|
||||
len64 >>= 8;
|
||||
ret[q++] = (len64 & 0xFF);
|
||||
len64 >>= 8;
|
||||
ret[q++] = (len64 & 0xFF);
|
||||
len64 >>= 8;
|
||||
ret[q++] = (len64 & 0xFF);
|
||||
len64 >>= 8;
|
||||
ret[q++] = (len64 & 0xFF);
|
||||
len64 >>= 8;
|
||||
ret[q++] = (len64 & 0xFF);
|
||||
len64 >>= 8;
|
||||
ret[q] = (len64 & 0xFF);
|
||||
ret[q++] = (len_low & 0xff);
|
||||
len_low >>= 8;
|
||||
ret[q++] = (len_low & 0xff);
|
||||
len_low >>= 8;
|
||||
ret[q++] = (len_low & 0xff);
|
||||
len_low >>= 8;
|
||||
ret[q++] = (len_low & 0xff);
|
||||
ret[q++] = (len_high & 0xff);
|
||||
len_high >>= 8;
|
||||
ret[q++] = (len_high & 0xff);
|
||||
len_high >>= 8;
|
||||
ret[q++] = (len_high & 0xff);
|
||||
len_high >>= 8;
|
||||
ret[q] = (len_high & 0xff);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -94,9 +92,9 @@ createPaddedCopyWithLength(unsigned8 *b, unsigned32 *l)
|
||||
#define ROT_LEFT(x, n) (((x) << (n)) | ((x) >> (32 - (n))))
|
||||
|
||||
static void
|
||||
doTheRounds(unsigned32 X[16], unsigned32 state[4])
|
||||
doTheRounds(uint32 X[16], uint32 state[4])
|
||||
{
|
||||
unsigned32 a, b, c, d;
|
||||
uint32 a, b, c, d;
|
||||
|
||||
a = state[0];
|
||||
b = state[1];
|
||||
@ -182,13 +180,13 @@ doTheRounds(unsigned32 X[16], unsigned32 state[4])
|
||||
}
|
||||
|
||||
static int
|
||||
calculateDigestFromBuffer(unsigned8 *b, unsigned32 len, unsigned8 sum[16])
|
||||
calculateDigestFromBuffer(uint8 *b, uint32 len, uint8 sum[16])
|
||||
{
|
||||
register unsigned32 i, j, k, newI;
|
||||
unsigned32 l;
|
||||
unsigned8 *input;
|
||||
register unsigned32 *wbp;
|
||||
unsigned32 workBuff[16], state[4];
|
||||
register uint32 i, j, k, newI;
|
||||
uint32 l;
|
||||
uint8 *input;
|
||||
register uint32 *wbp;
|
||||
uint32 workBuff[16], state[4];
|
||||
|
||||
l = len;
|
||||
|
||||
@ -223,19 +221,19 @@ calculateDigestFromBuffer(unsigned8 *b, unsigned32 len, unsigned8 sum[16])
|
||||
j = 0;
|
||||
for (i = 0; i < 4; i++) {
|
||||
k = state[i];
|
||||
sum[j++] = (k & 0xFF);
|
||||
sum[j++] = (k & 0xff);
|
||||
k >>= 8;
|
||||
sum[j++] = (k & 0xFF);
|
||||
sum[j++] = (k & 0xff);
|
||||
k >>= 8;
|
||||
sum[j++] = (k & 0xFF);
|
||||
sum[j++] = (k & 0xff);
|
||||
k >>= 8;
|
||||
sum[j++] = (k & 0xFF);
|
||||
sum[j++] = (k & 0xff);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void
|
||||
bytesToHex(unsigned8 b[16], char *s)
|
||||
bytesToHex(uint8 b[16], char *s)
|
||||
{
|
||||
static char *hex = "0123456789abcdef";
|
||||
int q, w;
|
||||
@ -280,9 +278,9 @@ bytesToHex(unsigned8 b[16], char *s)
|
||||
bool
|
||||
md5_hash(const void *buff, size_t len, char *hexsum)
|
||||
{
|
||||
unsigned8 sum[16];
|
||||
uint8 sum[16];
|
||||
|
||||
if (!calculateDigestFromBuffer((unsigned8 *) buff, len, sum))
|
||||
if (!calculateDigestFromBuffer((uint8 *) buff, len, sum))
|
||||
return false;
|
||||
|
||||
bytesToHex(sum, hexsum);
|
||||
|
@ -169,11 +169,11 @@ public class Array implements java.sql.Array
|
||||
}
|
||||
|
||||
public int getBaseType() throws SQLException {
|
||||
return conn.getSQLType(getBaseTypeName());
|
||||
return Field.getSQLType( getBaseTypeName() );
|
||||
}
|
||||
|
||||
public String getBaseTypeName() throws SQLException {
|
||||
String fType = field.getPGType();
|
||||
String fType = field.getTypeName();
|
||||
if( fType.charAt(0) == '_' )
|
||||
fType = fType.substring(1);
|
||||
return fType;
|
||||
@ -195,12 +195,12 @@ public class Array implements java.sql.Array
|
||||
Object array = getArray( index, count, map );
|
||||
Vector rows = new Vector();
|
||||
Field[] fields = new Field[2];
|
||||
fields[0] = new Field(conn, "INDEX", conn.getOID("int2"), 2);
|
||||
fields[0] = new Field(conn, "INDEX", field.getOID("int2"), 2);
|
||||
switch ( getBaseType() )
|
||||
{
|
||||
case Types.BIT:
|
||||
boolean[] booleanArray = (boolean[]) array;
|
||||
fields[1] = new Field(conn, "VALUE", conn.getOID("bool"), 1);
|
||||
fields[1] = new Field(conn, "VALUE", field.getOID("bool"), 1);
|
||||
for( int i=0; i<booleanArray.length; i++ ) {
|
||||
byte[][] tuple = new byte[2][0];
|
||||
tuple[0] = conn.getEncoding().encode( Integer.toString((int)index+i) ); // Index
|
||||
@ -208,11 +208,11 @@ public class Array implements java.sql.Array
|
||||
rows.addElement(tuple);
|
||||
}
|
||||
case Types.SMALLINT:
|
||||
fields[1] = new Field(conn, "VALUE", conn.getOID("int2"), 2);
|
||||
fields[1] = new Field(conn, "VALUE", field.getOID("int2"), 2);
|
||||
case Types.INTEGER:
|
||||
int[] intArray = (int[]) array;
|
||||
if( fields[1] == null )
|
||||
fields[1] = new Field(conn, "VALUE", conn.getOID("int4"), 4);
|
||||
fields[1] = new Field(conn, "VALUE", field.getOID("int4"), 4);
|
||||
for( int i=0; i<intArray.length; i++ ) {
|
||||
byte[][] tuple = new byte[2][0];
|
||||
tuple[0] = conn.getEncoding().encode( Integer.toString((int)index+i) ); // Index
|
||||
@ -222,7 +222,7 @@ public class Array implements java.sql.Array
|
||||
break;
|
||||
case Types.BIGINT:
|
||||
long[] longArray = (long[]) array;
|
||||
fields[1] = new Field(conn, "VALUE", conn.getOID("int8"), 8);
|
||||
fields[1] = new Field(conn, "VALUE", field.getOID("int8"), 8);
|
||||
for( int i=0; i<longArray.length; i++ ) {
|
||||
byte[][] tuple = new byte[2][0];
|
||||
tuple[0] = conn.getEncoding().encode( Integer.toString((int)index+i) ); // Index
|
||||
@ -232,7 +232,7 @@ public class Array implements java.sql.Array
|
||||
break;
|
||||
case Types.NUMERIC:
|
||||
BigDecimal[] bdArray = (BigDecimal[]) array;
|
||||
fields[1] = new Field(conn, "VALUE", conn.getOID("numeric"), -1);
|
||||
fields[1] = new Field(conn, "VALUE", field.getOID("numeric"), -1);
|
||||
for( int i=0; i<bdArray.length; i++ ) {
|
||||
byte[][] tuple = new byte[2][0];
|
||||
tuple[0] = conn.getEncoding().encode( Integer.toString((int)index+i) ); // Index
|
||||
@ -242,7 +242,7 @@ public class Array implements java.sql.Array
|
||||
break;
|
||||
case Types.REAL:
|
||||
float[] floatArray = (float[]) array;
|
||||
fields[1] = new Field(conn, "VALUE", conn.getOID("float4"), 4);
|
||||
fields[1] = new Field(conn, "VALUE", field.getOID("float4"), 4);
|
||||
for( int i=0; i<floatArray.length; i++ ) {
|
||||
byte[][] tuple = new byte[2][0];
|
||||
tuple[0] = conn.getEncoding().encode( Integer.toString((int)index+i) ); // Index
|
||||
@ -252,7 +252,7 @@ public class Array implements java.sql.Array
|
||||
break;
|
||||
case Types.DOUBLE:
|
||||
double[] doubleArray = (double[]) array;
|
||||
fields[1] = new Field(conn, "VALUE", conn.getOID("float8"), 8);
|
||||
fields[1] = new Field(conn, "VALUE", field.getOID("float8"), 8);
|
||||
for( int i=0; i<doubleArray.length; i++ ) {
|
||||
byte[][] tuple = new byte[2][0];
|
||||
tuple[0] = conn.getEncoding().encode( Integer.toString((int)index+i) ); // Index
|
||||
@ -261,11 +261,11 @@ public class Array implements java.sql.Array
|
||||
}
|
||||
break;
|
||||
case Types.CHAR:
|
||||
fields[1] = new Field(conn, "VALUE", conn.getOID("char"), 1);
|
||||
fields[1] = new Field(conn, "VALUE", field.getOID("char"), 1);
|
||||
case Types.VARCHAR:
|
||||
String[] strArray = (String[]) array;
|
||||
if( fields[1] == null )
|
||||
fields[1] = new Field(conn, "VALUE", conn.getOID("varchar"), -1);
|
||||
fields[1] = new Field(conn, "VALUE", field.getOID("varchar"), -1);
|
||||
for( int i=0; i<strArray.length; i++ ) {
|
||||
byte[][] tuple = new byte[2][0];
|
||||
tuple[0] = conn.getEncoding().encode( Integer.toString((int)index+i) ); // Index
|
||||
@ -275,7 +275,7 @@ public class Array implements java.sql.Array
|
||||
break;
|
||||
case Types.DATE:
|
||||
java.sql.Date[] dateArray = (java.sql.Date[]) array;
|
||||
fields[1] = new Field(conn, "VALUE", conn.getOID("date"), 4);
|
||||
fields[1] = new Field(conn, "VALUE", field.getOID("date"), 4);
|
||||
for( int i=0; i<dateArray.length; i++ ) {
|
||||
byte[][] tuple = new byte[2][0];
|
||||
tuple[0] = conn.getEncoding().encode( Integer.toString((int)index+i) ); // Index
|
||||
@ -285,7 +285,7 @@ public class Array implements java.sql.Array
|
||||
break;
|
||||
case Types.TIME:
|
||||
java.sql.Time[] timeArray = (java.sql.Time[]) array;
|
||||
fields[1] = new Field(conn, "VALUE", conn.getOID("time"), 8);
|
||||
fields[1] = new Field(conn, "VALUE", field.getOID("time"), 8);
|
||||
for( int i=0; i<timeArray.length; i++ ) {
|
||||
byte[][] tuple = new byte[2][0];
|
||||
tuple[0] = conn.getEncoding().encode( Integer.toString((int)index+i) ); // Index
|
||||
@ -295,7 +295,7 @@ public class Array implements java.sql.Array
|
||||
break;
|
||||
case Types.TIMESTAMP:
|
||||
java.sql.Timestamp[] timestampArray = (java.sql.Timestamp[]) array;
|
||||
fields[1] = new Field(conn, "VALUE", conn.getOID("timestamp"), 8);
|
||||
fields[1] = new Field(conn, "VALUE", field.getOID("timestamp"), 8);
|
||||
for( int i=0; i<timestampArray.length; i++ ) {
|
||||
byte[][] tuple = new byte[2][0];
|
||||
tuple[0] = conn.getEncoding().encode( Integer.toString((int)index+i) ); // Index
|
||||
|
Loading…
x
Reference in New Issue
Block a user