Prefix all ivars with an underscore.
FossilOrigin-Name: 8c8a4313228bba7114d582a6802a2df53a1fb357f5c0805ae58531dd4c799d8c
This commit is contained in:
parent
7b323460a5
commit
b3eaf2f272
11 changed files with 114 additions and 129 deletions
|
@ -6,8 +6,8 @@
|
|||
|
||||
@interface PGConnection: OFObject
|
||||
{
|
||||
PGconn *conn;
|
||||
OFDictionary *parameters;
|
||||
PGconn *_connnection;
|
||||
OFDictionary *_parameters;
|
||||
}
|
||||
|
||||
#ifdef OF_HAVE_PROPERTIES
|
||||
|
|
|
@ -6,46 +6,46 @@
|
|||
@implementation PGConnection
|
||||
- (void)dealloc
|
||||
{
|
||||
[parameters release];
|
||||
[_parameters release];
|
||||
|
||||
if (conn != NULL)
|
||||
PQfinish(conn);
|
||||
if (_connnection != NULL)
|
||||
PQfinish(_connnection);
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)setParameters: (OFDictionary*)parameters_
|
||||
- (void)setParameters: (OFDictionary*)parameters
|
||||
{
|
||||
OF_SETTER(parameters, parameters_, YES, YES)
|
||||
OF_SETTER(_parameters, parameters, YES, YES)
|
||||
}
|
||||
|
||||
- (OFDictionary*)parameters
|
||||
{
|
||||
OF_GETTER(parameters, YES)
|
||||
OF_GETTER(_parameters, YES)
|
||||
}
|
||||
|
||||
- (void)connect
|
||||
{
|
||||
OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
|
||||
OFEnumerator *keyEnumerator = [parameters keyEnumerator];
|
||||
OFEnumerator *objectEnumerator = [parameters objectEnumerator];
|
||||
OFMutableString *conninfo = nil;
|
||||
OFEnumerator *keyEnumerator = [_parameters keyEnumerator];
|
||||
OFEnumerator *objectEnumerator = [_parameters objectEnumerator];
|
||||
OFMutableString *connectionInfo = nil;
|
||||
OFString *key, *object;
|
||||
|
||||
while ((key = [keyEnumerator nextObject]) != nil &&
|
||||
(object = [objectEnumerator nextObject]) != nil) {
|
||||
if (conninfo != nil)
|
||||
[conninfo appendFormat: @" %@=%@", key, object];
|
||||
if (connectionInfo != nil)
|
||||
[connectionInfo appendFormat: @" %@=%@", key, object];
|
||||
else
|
||||
conninfo = [OFMutableString stringWithFormat:
|
||||
connectionInfo = [OFMutableString stringWithFormat:
|
||||
@"%@=%@", key, object];
|
||||
}
|
||||
|
||||
if ((conn = PQconnectdb([conninfo UTF8String])) == NULL)
|
||||
if ((_connnection = PQconnectdb([connectionInfo UTF8String])) == NULL)
|
||||
@throw [OFOutOfMemoryException
|
||||
exceptionWithClass: [self class]];
|
||||
|
||||
if (PQstatus(conn) == CONNECTION_BAD)
|
||||
if (PQstatus(_connnection) == CONNECTION_BAD)
|
||||
@throw [PGConnectionFailedException
|
||||
exceptionWithClass: [self class]
|
||||
connection: self];
|
||||
|
@ -55,12 +55,12 @@
|
|||
|
||||
- (void)reset
|
||||
{
|
||||
PQreset(conn);
|
||||
PQreset(_connnection);
|
||||
}
|
||||
|
||||
- (PGResult*)executeCommand: (OFConstantString*)command
|
||||
{
|
||||
PGresult *result = PQexec(conn, [command UTF8String]);
|
||||
PGresult *result = PQexec(_connnection, [command UTF8String]);
|
||||
|
||||
if (PQresultStatus(result) == PGRES_FATAL_ERROR) {
|
||||
PQclear(result);
|
||||
|
@ -127,7 +127,7 @@
|
|||
UTF8String];
|
||||
} while ((parameter = va_arg(args, id)) != nil);
|
||||
|
||||
result = PQexecParams(conn, [command UTF8String],
|
||||
result = PQexecParams(_connnection, [command UTF8String],
|
||||
argsCount, NULL, values, NULL, NULL, 0);
|
||||
} @finally {
|
||||
[self freeMemory: values];
|
||||
|
@ -196,8 +196,8 @@
|
|||
|
||||
[command appendString: @")"];
|
||||
|
||||
result = PQexecParams(conn, [command UTF8String], (int)count,
|
||||
NULL, values, NULL, NULL, 0);
|
||||
result = PQexecParams(_connnection, [command UTF8String],
|
||||
(int)count, NULL, values, NULL, NULL, 0);
|
||||
} @finally {
|
||||
[self freeMemory: values];
|
||||
}
|
||||
|
@ -231,6 +231,6 @@
|
|||
|
||||
- (PGconn*)PG_connection
|
||||
{
|
||||
return conn;
|
||||
return _connnection;
|
||||
}
|
||||
@end
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
@interface PGResult: OFArray
|
||||
{
|
||||
PGresult *result;
|
||||
PGresult *_result;
|
||||
}
|
||||
|
||||
+ PG_resultWithResult: (PGresult*)result;
|
||||
|
|
14
PGResult.m
14
PGResult.m
|
@ -7,31 +7,31 @@
|
|||
return [[[self alloc] PG_initWithResult: result] autorelease];
|
||||
}
|
||||
|
||||
- PG_initWithResult: (PGresult*)result_
|
||||
- PG_initWithResult: (PGresult*)result
|
||||
{
|
||||
self = [super init];
|
||||
|
||||
result = result_;
|
||||
_result = result;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
if (result != NULL)
|
||||
PQclear(result);
|
||||
if (_result != NULL)
|
||||
PQclear(_result);
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (size_t)count
|
||||
{
|
||||
return PQntuples(result);
|
||||
return PQntuples(_result);
|
||||
}
|
||||
|
||||
- (id)objectAtIndex: (size_t)index
|
||||
{
|
||||
if (index > PQntuples(result))
|
||||
if (index > PQntuples(_result))
|
||||
@throw [OFOutOfRangeException
|
||||
exceptionWithClass: [self class]];
|
||||
|
||||
|
@ -41,6 +41,6 @@
|
|||
|
||||
- (PGresult*)PG_result
|
||||
{
|
||||
return result;
|
||||
return _result;
|
||||
}
|
||||
@end
|
||||
|
|
|
@ -6,9 +6,9 @@
|
|||
|
||||
@interface PGResultRow: OFDictionary
|
||||
{
|
||||
PGResult *result;
|
||||
PGresult *res;
|
||||
int row;
|
||||
PGResult *_result;
|
||||
PGresult *_res;
|
||||
int _row;
|
||||
}
|
||||
|
||||
+ rowWithResult: (PGResult*)result
|
||||
|
|
107
PGResultRow.m
107
PGResultRow.m
|
@ -1,34 +1,37 @@
|
|||
#import "PGResultRow.h"
|
||||
|
||||
static id
|
||||
convert_type(PGresult *res, int col, OFString *str)
|
||||
convert_type(PGresult *res, int column, OFString *string)
|
||||
{
|
||||
switch (PQftype(res, col)) {
|
||||
switch (PQftype(res, column)) {
|
||||
case 16: /* BOOLOID */
|
||||
if ([str isEqual: @"t"])
|
||||
if ([string isEqual: @"t"])
|
||||
return [OFNumber numberWithBool: YES];
|
||||
else
|
||||
return [OFNumber numberWithBool: NO];
|
||||
case 21: /* INT2OID */
|
||||
return [OFNumber numberWithInt16: (int16_t)[str decimalValue]];
|
||||
return [OFNumber numberWithInt16:
|
||||
(int16_t)[string decimalValue]];
|
||||
case 23: /* INT4OID */
|
||||
return [OFNumber numberWithInt32: (int32_t)[str decimalValue]];
|
||||
return [OFNumber numberWithInt32:
|
||||
(int32_t)[string decimalValue]];
|
||||
case 20: /* INT8OID */
|
||||
return [OFNumber numberWithInt64: (int64_t)[str decimalValue]];
|
||||
return [OFNumber numberWithInt64:
|
||||
(int64_t)[string decimalValue]];
|
||||
case 700: /* FLOAT4OID */
|
||||
return [OFNumber numberWithFloat: [str floatValue]];
|
||||
return [OFNumber numberWithFloat: [string floatValue]];
|
||||
case 701: /* FLOAT8OID */
|
||||
return [OFNumber numberWithDouble: [str doubleValue]];
|
||||
return [OFNumber numberWithDouble: [string doubleValue]];
|
||||
}
|
||||
|
||||
return str;
|
||||
return string;
|
||||
}
|
||||
|
||||
@interface PGResultRowEnumerator: OFEnumerator
|
||||
{
|
||||
PGResult *result;
|
||||
PGresult *res;
|
||||
int row, pos, count;
|
||||
PGResult *_result;
|
||||
PGresult *_res;
|
||||
int _row, _pos, _count;
|
||||
}
|
||||
|
||||
- initWithResult: (PGResult*)result
|
||||
|
@ -49,31 +52,31 @@ convert_type(PGresult *res, int col, OFString *str)
|
|||
row: row] autorelease];
|
||||
}
|
||||
|
||||
- initWithResult: (PGResult*)result_
|
||||
row: (int)row_
|
||||
- initWithResult: (PGResult*)result
|
||||
row: (int)row
|
||||
{
|
||||
self = [super init];
|
||||
|
||||
result = [result_ retain];
|
||||
res = [result PG_result];
|
||||
row = row_;
|
||||
_result = [result retain];
|
||||
_res = [result PG_result];
|
||||
_row = row;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[result release];
|
||||
[_result release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (size_t)count
|
||||
{
|
||||
int i, count, fields = PQnfields(res);
|
||||
int i, count, fields = PQnfields(_res);
|
||||
|
||||
for (i = count = 0; i < fields; i++)
|
||||
if (!PQgetisnull(res, row, i))
|
||||
if (!PQgetisnull(_res, _row, i))
|
||||
count++;
|
||||
|
||||
return count;
|
||||
|
@ -81,32 +84,32 @@ convert_type(PGresult *res, int col, OFString *str)
|
|||
|
||||
- (id)objectForKey: (id)key
|
||||
{
|
||||
int col;
|
||||
int column;
|
||||
|
||||
if ([key isKindOfClass: [OFNumber class]])
|
||||
col = [key intValue];
|
||||
column = [key intValue];
|
||||
else
|
||||
col = PQfnumber(res, [key UTF8String]);
|
||||
column = PQfnumber(_res, [key UTF8String]);
|
||||
|
||||
if (PQgetisnull(res, row, col))
|
||||
if (PQgetisnull(_res, _row, column))
|
||||
return nil;
|
||||
|
||||
return convert_type(res, col,
|
||||
[OFString stringWithUTF8String: PQgetvalue(res, row, col)]);
|
||||
return convert_type(_res, column,
|
||||
[OFString stringWithUTF8String: PQgetvalue(_res, _row, column)]);
|
||||
}
|
||||
|
||||
- (OFEnumerator*)keyEnumerator
|
||||
{
|
||||
return [[[PGResultRowKeyEnumerator alloc]
|
||||
initWithResult: result
|
||||
row: row] autorelease];
|
||||
initWithResult: _result
|
||||
row: _row] autorelease];
|
||||
}
|
||||
|
||||
- (OFEnumerator*)objectEnumerator
|
||||
{
|
||||
return [[[PGResultRowObjectEnumerator alloc]
|
||||
initWithResult: result
|
||||
row: row] autorelease];
|
||||
initWithResult: _result
|
||||
row: _row] autorelease];
|
||||
}
|
||||
|
||||
- (int)countByEnumeratingWithState: (of_fast_enumeration_state_t*)state
|
||||
|
@ -117,7 +120,7 @@ convert_type(PGresult *res, int col, OFString *str)
|
|||
|
||||
if (state->extra[0] == 0) {
|
||||
state->extra[0] = 1;
|
||||
state->extra[1] = PQnfields(res);
|
||||
state->extra[1] = PQnfields(_res);
|
||||
}
|
||||
|
||||
if (count > SIZE_MAX - state->state)
|
||||
|
@ -127,11 +130,11 @@ convert_type(PGresult *res, int col, OFString *str)
|
|||
count = state->extra[1] - state->state;
|
||||
|
||||
for (i = j = 0; i < count; i++) {
|
||||
if (PQgetisnull(res, row, state->state + i))
|
||||
if (PQgetisnull(_res, _row, state->state + i))
|
||||
continue;
|
||||
|
||||
objects[j++] = [OFString stringWithUTF8String:
|
||||
PQfname(res, state->state + i)];
|
||||
PQfname(_res, state->state + i)];
|
||||
}
|
||||
|
||||
state->state += count;
|
||||
|
@ -143,61 +146,61 @@ convert_type(PGresult *res, int col, OFString *str)
|
|||
@end
|
||||
|
||||
@implementation PGResultRowEnumerator
|
||||
- initWithResult: (PGResult*)result_
|
||||
row: (int)row_
|
||||
- initWithResult: (PGResult*)result
|
||||
row: (int)row
|
||||
{
|
||||
self = [super init];
|
||||
|
||||
result = [result_ retain];
|
||||
res = [result PG_result];
|
||||
row = row_;
|
||||
count = PQnfields(res);
|
||||
_result = [result retain];
|
||||
_res = [result PG_result];
|
||||
_row = row;
|
||||
_count = PQnfields(_res);
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[result release];
|
||||
[_result release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)reset
|
||||
{
|
||||
pos = 0;
|
||||
_pos = 0;
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation PGResultRowKeyEnumerator
|
||||
- (id)nextObject
|
||||
{
|
||||
if (pos >= count)
|
||||
if (_pos >= _count)
|
||||
return nil;
|
||||
|
||||
while (pos < count && PQgetisnull(res, row, pos))
|
||||
pos++;
|
||||
while (_pos < _count && PQgetisnull(_res, _row, _pos))
|
||||
_pos++;
|
||||
|
||||
if (pos >= count)
|
||||
if (_pos >= _count)
|
||||
return nil;
|
||||
|
||||
return [OFString stringWithUTF8String: PQfname(res, pos++)];
|
||||
return [OFString stringWithUTF8String: PQfname(_res, _pos++)];
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation PGResultRowObjectEnumerator
|
||||
- (id)nextObject
|
||||
{
|
||||
if (pos >= count)
|
||||
if (_pos >= _count)
|
||||
return nil;
|
||||
|
||||
while (pos < count && PQgetisnull(res, row, pos))
|
||||
pos++;
|
||||
while (_pos < _count && PQgetisnull(_res, _row, _pos))
|
||||
_pos++;
|
||||
|
||||
if (pos >= count)
|
||||
if (_pos >= _count)
|
||||
return nil;
|
||||
|
||||
return convert_type(res, pos,
|
||||
[OFString stringWithUTF8String: PQgetvalue(res, row, pos++)]);
|
||||
return convert_type(_res, _pos,
|
||||
[OFString stringWithUTF8String: PQgetvalue(_res, _row, _pos++)]);
|
||||
}
|
||||
@end
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
@interface PGCommandFailedException: PGException
|
||||
{
|
||||
OFString *command;
|
||||
OFString *_command;
|
||||
}
|
||||
|
||||
#ifdef OF_HAVE_PROPERTIES
|
||||
|
|
|
@ -10,15 +10,15 @@
|
|||
command: command] autorelease];
|
||||
}
|
||||
|
||||
- initWithClass: (Class)class_
|
||||
connection: (PGConnection*)connection_
|
||||
command: (OFString*)command_
|
||||
- initWithClass: (Class)class
|
||||
connection: (PGConnection*)connection
|
||||
command: (OFString*)command
|
||||
{
|
||||
self = [super initWithClass: class_
|
||||
connection: connection_];
|
||||
self = [super initWithClass: class
|
||||
connection: connection];
|
||||
|
||||
@try {
|
||||
command = [command_ copy];
|
||||
_command = [command copy];
|
||||
} @catch (id e) {
|
||||
[self release];
|
||||
@throw e;
|
||||
|
@ -29,25 +29,21 @@
|
|||
|
||||
- (void)dealloc
|
||||
{
|
||||
[command release];
|
||||
[_command release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (OFString*)description
|
||||
{
|
||||
if (description != nil)
|
||||
return description;
|
||||
|
||||
description = [[OFString alloc] initWithFormat:
|
||||
return [OFString stringWithFormat:
|
||||
@"A PostgreSQL command in class %@ failed: %s\nCommand: %@",
|
||||
inClass, PQerrorMessage([connection PG_connection]), command];
|
||||
|
||||
return description;
|
||||
[self inClass], PQerrorMessage([_connection PG_connection]),
|
||||
_command];
|
||||
}
|
||||
|
||||
- (OFString*)command
|
||||
{
|
||||
OF_GETTER(command, NO)
|
||||
OF_GETTER(_command, NO)
|
||||
}
|
||||
@end
|
||||
|
|
|
@ -3,19 +3,10 @@
|
|||
@implementation PGConnectionFailedException
|
||||
- (OFString*)description
|
||||
{
|
||||
OFAutoreleasePool *pool;
|
||||
|
||||
if (description != nil)
|
||||
return description;
|
||||
|
||||
pool = [[OFAutoreleasePool alloc] init];
|
||||
description = [[OFString alloc] initWithFormat:
|
||||
return [OFString stringWithFormat:
|
||||
@"Establishing a PostgreSQL connection in class %@ failed:\n%s\n"
|
||||
"Parameters: %@", inClass,
|
||||
PQerrorMessage([connection PG_connection]),
|
||||
[connection parameters]];
|
||||
[pool release];
|
||||
|
||||
return description;
|
||||
"Parameters: %@", [self inClass],
|
||||
PQerrorMessage([_connection PG_connection]),
|
||||
[_connection parameters]];
|
||||
}
|
||||
@end
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
@interface PGException: OFException
|
||||
{
|
||||
PGConnection *connection;
|
||||
PGConnection *_connection;
|
||||
}
|
||||
|
||||
#ifdef OF_HAVE_PROPERTIES
|
||||
|
|
|
@ -8,37 +8,32 @@
|
|||
connection: connection] autorelease];
|
||||
}
|
||||
|
||||
- initWithClass: (Class)class_
|
||||
connection: (PGConnection*)connection_
|
||||
- initWithClass: (Class)class
|
||||
connection: (PGConnection*)connection
|
||||
{
|
||||
self = [super initWithClass: class_];
|
||||
self = [super initWithClass: class];
|
||||
|
||||
connection = [connection_ retain];
|
||||
_connection = [connection retain];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[connection release];
|
||||
[_connection release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (OFString*)description
|
||||
{
|
||||
if (description != nil)
|
||||
return description;
|
||||
|
||||
description = [[OFString alloc] initWithFormat:
|
||||
@"A PostgreSQL operation in class %@ failed: %s", inClass,
|
||||
PQerrorMessage([connection PG_connection])];
|
||||
|
||||
return description;
|
||||
return [OFString stringWithFormat:
|
||||
@"A PostgreSQL operation in class %@ failed: %s", [self inClass],
|
||||
PQerrorMessage([_connection PG_connection])];
|
||||
}
|
||||
|
||||
- (PGConnection*)connection
|
||||
{
|
||||
OF_GETTER(connection, NO)
|
||||
OF_GETTER(_connection, NO)
|
||||
}
|
||||
@end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue