Update of /cvsroot/pgsqlformac/pgCocoaDB In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21466 Modified Files: ChangeLog Connection.h Connection.m DataSource.h Database.h Databases.h ExplorerModel.h ExplorerModel.m ExplorerNode.h Field.h Fields.h Record.h RecordSet.h Schema.h Schema.m Table.h Added Files: PGCocoaDB.h UnitTest-Info.plist Log Message: Restructure for schema threaded processing. Index: ChangeLog =================================================================== RCS file: /cvsroot/pgsqlformac/pgCocoaDB/ChangeLog,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** ChangeLog 26 Aug 2006 12:25:33 -0000 1.17 --- ChangeLog 30 Aug 2006 15:48:49 -0000 1.18 *************** *** 1,2 **** --- 1,8 ---- + 2006-08-26 07:25 ntiffin + + * ChangeLog, Connection.m, ExplorerModel.m, Schema.m, + UnitTest/pgCocoaDBSchemaTest.m: Add some comments and reformat + functions. + 2006-08-19 07:06 ntiffin Index: Table.h =================================================================== RCS file: /cvsroot/pgsqlformac/pgCocoaDB/Table.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** Table.h 8 Mar 2005 15:45:10 -0000 1.1.1.1 --- Table.h 30 Aug 2006 15:48:49 -0000 1.2 *************** *** 8,12 **** #import <Foundation/Foundation.h> ! @interface Table : NSObject --- 8,12 ---- #import <Foundation/Foundation.h> ! #import "PGCocoaDB.h" @interface Table : NSObject Index: RecordSet.h =================================================================== RCS file: /cvsroot/pgsqlformac/pgCocoaDB/RecordSet.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** RecordSet.h 8 Mar 2005 15:45:10 -0000 1.1.1.1 --- RecordSet.h 30 Aug 2006 15:48:49 -0000 1.2 *************** *** 8,11 **** --- 8,12 ---- #import <Foundation/Foundation.h> #import "Record.h" + #import "PGCocoaDB.h" @interface RecordSet : NSObject Index: Record.h =================================================================== RCS file: /cvsroot/pgsqlformac/pgCocoaDB/Record.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Record.h 11 Aug 2006 18:01:25 -0000 1.2 --- Record.h 30 Aug 2006 15:48:49 -0000 1.3 *************** *** 9,12 **** --- 9,13 ---- #import <Foundation/Foundation.h> #import "Fields.h" + #import "PGCocoaDB.h" @interface Record : NSObject Index: Fields.h =================================================================== RCS file: /cvsroot/pgsqlformac/pgCocoaDB/Fields.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Fields.h 8 Mar 2006 16:14:39 -0000 1.2 --- Fields.h 30 Aug 2006 15:48:49 -0000 1.3 *************** *** 8,11 **** --- 8,12 ---- #import <Foundation/Foundation.h> #import "Field.h" + #import "PGCocoaDB.h" @interface Fields : NSObject Index: Schema.m =================================================================== RCS file: /cvsroot/pgsqlformac/pgCocoaDB/Schema.m,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** Schema.m 26 Aug 2006 12:25:33 -0000 1.19 --- Schema.m 30 Aug 2006 15:48:49 -0000 1.20 *************** *** 35,38 **** --- 35,39 ---- pgVersionFound = [[NSString alloc] initWithString: [versionField value]]; + // TODO add user default to bypass versions check //PostgreSQL 8.1.2 on powerpc-apple-darwin8.5.0, compiled by GCC powerpc-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5250) if ([pgVersionFound rangeOfString:@"PostgreSQL 8.1"].location == NSNotFound) Index: Database.h =================================================================== RCS file: /cvsroot/pgsqlformac/pgCocoaDB/Database.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** Database.h 8 Mar 2005 15:45:10 -0000 1.1.1.1 --- Database.h 30 Aug 2006 15:48:49 -0000 1.2 *************** *** 8,12 **** #import <Foundation/Foundation.h> ! @interface Database : NSObject --- 8,12 ---- #import <Foundation/Foundation.h> ! #import "PGCocoaDB.h" @interface Database : NSObject Index: DataSource.h =================================================================== RCS file: /cvsroot/pgsqlformac/pgCocoaDB/DataSource.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** DataSource.h 8 Mar 2005 15:45:10 -0000 1.1.1.1 --- DataSource.h 30 Aug 2006 15:48:49 -0000 1.2 *************** *** 7,10 **** --- 7,11 ---- #import <Foundation/Foundation.h> + #import "PGCocoaDB.h" @interface DataSource : NSObject Index: Schema.h =================================================================== RCS file: /cvsroot/pgsqlformac/pgCocoaDB/Schema.h,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Schema.h 19 Aug 2006 12:06:48 -0000 1.11 --- Schema.h 30 Aug 2006 15:48:49 -0000 1.12 *************** *** 11,14 **** --- 11,15 ---- #import "Recordset.h" #import "Connection.h" + #import "PGCocoaDB.h" @interface Schema : NSObject { Index: Connection.m =================================================================== RCS file: /cvsroot/pgsqlformac/pgCocoaDB/Connection.m,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Connection.m 26 Aug 2006 12:25:33 -0000 1.14 --- Connection.m 30 Aug 2006 15:48:49 -0000 1.15 *************** *** 28,32 **** pgconn = nil; ! connected = NO; --- 28,32 ---- pgconn = nil; ! dbs = nil; connected = NO; *************** *** 37,42 **** dbName = [[NSString alloc] initWithString:@"template1"]; - dbs = nil; - errorDescription = nil; sqlLog = [[NSMutableString alloc] init]; --- 37,40 ---- *************** *** 47,54 **** -(void)dealloc { ! if (connected) ! { ! [self disconnect]; ! } [host release]; [port release]; --- 45,51 ---- -(void)dealloc { ! ! [self disconnect]; ! [host release]; [port release]; *************** *** 67,76 **** - (BOOL)connect { ! // connect to the server (attempt) /// should use PQsetdbLogin() ! if (dbs != nil) { ! [dbs release]; ! dbs = nil; ! } pgconn = (PGconn *)PQsetdbLogin([host cString], [port cString], [options cString], NULL, --- 64,70 ---- - (BOOL)connect { ! [self disconnect]; + // connect to the server (attempt) // TODO should use PQconnectdb() pgconn = (PGconn *)PQsetdbLogin([host cString], [port cString], [options cString], NULL, *************** *** 89,92 **** --- 83,87 ---- PQfinish(pgconn); + pgconn = nil; connected = NO; return NO; *************** *** 106,110 **** PQsetNoticeProcessor(pgconn, handle_pq_notice, self); ! [self setSQLLog:[NSMutableString stringWithFormat:@"Connected to database %@.\n", dbName]]; connected = YES; return YES; --- 101,105 ---- PQsetNoticeProcessor(pgconn, handle_pq_notice, self); ! [self setSQLLog:[NSMutableString stringWithFormat:@"Connected to database %@ on %@.\n", dbName, [[NSCalendarDate calendarDate] description]]]; connected = YES; return YES; *************** *** 138,141 **** --- 133,137 ---- [self appendSQLLog:[NSMutableString stringWithString:@"Disconnected from database.\n"]]; PQfinish(pgconn); + pgconn = nil; connected = NO; return YES; *************** *** 146,149 **** --- 142,147 ---- - (BOOL)isConnected { + // TODO check to make sure connection is still alive + // TODO if not alive then should make use PQreset to attempt to re-establish return connected; } *************** *** 261,264 **** --- 259,263 ---- NSString *sql = @"select * from pg_database where datallowconn = 't' order by datname asc"; + // TODO restructure to use [self execQueryNoLog]; res = PQexec(pgconn, [sql cString]); if (PQresultStatus(res) != PGRES_TUPLES_OK) *************** *** 365,370 **** } ! - (RecordSet *)execQueryLog:(NSString *)sql { return [self execQuery:sql logInfo:1 logSQL:0]; --- 364,374 ---- } + - (RecordSet *)execQueryNoLog:(NSString *)sql + { + return [self execQuery:sql logInfo:0 logSQL:0]; + } ! ! - (RecordSet *)execQueryLogInfo:(NSString *)sql { return [self execQuery:sql logInfo:1 logSQL:0]; *************** *** 372,378 **** ! - (RecordSet *)execQueryNoLog:(NSString *)sql { ! return [self execQuery:sql logInfo:0 logSQL:0]; } --- 376,382 ---- ! - (RecordSet *)execQueryLogInfoLogSQL:(NSString *)sql { ! return [self execQuery:sql logInfo:1 logSQL:1]; } *************** *** 390,395 **** if (pgconn == nil) { ! [self setErrorDescription:@"Object is not Connected."]; return nil; } gettimeofday(&start, 0); --- 394,404 ---- if (pgconn == nil) { ! [self setErrorDescription:@"Object is not Connected."]; ! [self appendSQLLog:@"Object is not Connected.\n"]; return nil; + } + if (logSQL) + { + [self appendSQLLog: [NSString stringWithFormat:@"%@\n", [sql stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]]; } gettimeofday(&start, 0); *************** *** 434,438 **** if (logInfo) { ! [self appendSQLLog:[NSString stringWithFormat: @"%d rows affected.\n", nRecords]]; } PQclear(res); --- 443,447 ---- if (logInfo) { ! [self appendSQLLog:[NSString stringWithFormat: @"%d rows affected.\n\n", nRecords]]; } PQclear(res); *************** *** 443,453 **** case PGRES_COMMAND_OK: { ! if (strlen(PQcmdStatus(res))) ! { ! [self appendSQLLog:[NSString stringWithFormat:@"%s\n", PQcmdStatus(res)]]; ! } ! if ((strlen(PQcmdTuples(res)) > 0) && (logInfo)) { ! [self appendSQLLog:[NSString stringWithFormat: @"%s rows affected.\n", PQcmdTuples(res)]]; } PQclear(res); --- 452,468 ---- case PGRES_COMMAND_OK: { ! if (logInfo) { ! [self appendSQLLog:@"Query ran successfully.\n"]; ! /* these do not return valuable info. ! if (strlen(PQcmdStatus(res))) ! { ! [self appendSQLLog:[NSString stringWithFormat:@"Command Status: %s\n", PQcmdStatus(res)]]; ! } ! if (PQcmdTuples(res)) ! { ! [self appendSQLLog:[NSString stringWithFormat: @"%d rows affected.\n", PQcmdTuples(res)]]; ! } ! */ } PQclear(res); *************** *** 458,465 **** case PGRES_EMPTY_QUERY: { ! if (logInfo) ! { ! [self appendSQLLog:@"Postgres reported Empty Query\n"]; ! } PQclear(res); return nil; --- 473,477 ---- case PGRES_EMPTY_QUERY: { ! [self appendSQLLog:@"Postgres reported Empty Query\n"]; PQclear(res); return nil; *************** *** 475,483 **** { [self setErrorDescription:[NSString stringWithFormat:@"PostgreSQL Error: %s", PQresultErrorMessage(res)]]; PQclear(res); return nil; } } - } --- 487,495 ---- { [self setErrorDescription:[NSString stringWithFormat:@"PostgreSQL Error: %s", PQresultErrorMessage(res)]]; + [self appendSQLLog:[NSString stringWithFormat:@"PostgreSQL Error: %s\n", PQresultErrorMessage(res)]]; PQclear(res); return nil; } } } Index: ExplorerModel.h =================================================================== RCS file: /cvsroot/pgsqlformac/pgCocoaDB/ExplorerModel.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ExplorerModel.h 13 Aug 2006 23:50:24 -0000 1.4 --- ExplorerModel.h 30 Aug 2006 15:48:49 -0000 1.5 *************** *** 12,15 **** --- 12,17 ---- #import "Connection.h" #import "Schema.h" + #import "PGCocoaDB.h" + @interface ExplorerModel : NSObject *************** *** 22,32 **** bool showPGToast; bool showPGTemps; } - (id)initWithConnection:(Connection *) aConnection; ! - (id)initRebuilding; ! - (void)buildSchema; ! -(void)setSchema:(Schema *)newSchema; - (Schema *)schema; - (bool)showInformationSchema; --- 24,37 ---- bool showPGToast; bool showPGTemps; + bool showPublic; + + NSLock *explorerThreadStatusLock; + unsigned int explorerThreadStatus; // 0 = not inited, 1 = running, 2 = error, 3 = done, } - (id)initWithConnection:(Connection *) aConnection; ! - (void)buildSchema:(id)anObject; ! - (void)setSchema:(Schema *)newSchema; - (Schema *)schema; - (bool)showInformationSchema; *************** *** 34,37 **** --- 39,44 ---- - (bool)showPGToast; - (bool)showPGTemps; + - (bool)showPublic; + - (unsigned int)explorerThreadStatus; - (void)setShowInformationSchema:(bool)newValue; *************** *** 39,42 **** --- 46,51 ---- - (void)setShowPGToast:(bool)newValue; - (void)setShowPGTemps:(bool)newValue; + - (void)setShowPublic:(bool)newValue; + - (void)setExplorerThreadStatus:(unsigned int)newValue; // These methods get called because I am the datasource of the outline view. Index: Connection.h =================================================================== RCS file: /cvsroot/pgsqlformac/pgCocoaDB/Connection.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Connection.h 11 Aug 2006 18:01:25 -0000 1.7 --- Connection.h 30 Aug 2006 15:48:49 -0000 1.8 *************** *** 11,14 **** --- 11,15 ---- #import "Recordset.h" #import "Databases.h" + #import "PGCocoaDB.h" @interface Connection : NSObject *************** *** 71,76 **** - (RecordSet *)execQuery:(NSString *)sql; - (RecordSet *)execQueryNoLog:(NSString *)sql; - - (RecordSet *)execQueryLog:(NSString *)sql; - (RecordSet *)execQuery:(NSString *)sql logInfo:(bool)logInfo logSQL:(bool)logSQL; - (NSString *)execCommand:(NSString *)sql; --- 72,78 ---- - (RecordSet *)execQuery:(NSString *)sql; + - (RecordSet *)execQueryLogInfo:(NSString *)sql; + - (RecordSet *)execQueryLogInfoLogSQL:(NSString *)sql; - (RecordSet *)execQueryNoLog:(NSString *)sql; - (RecordSet *)execQuery:(NSString *)sql logInfo:(bool)logInfo logSQL:(bool)logSQL; - (NSString *)execCommand:(NSString *)sql; --- NEW FILE: PGCocoaDB.h --- /* * PGCocoaDB.h * pgCocoaDBn * * Created by Neil Tiffin on 8/30/06. * Copyright 2006 Performance Champions, Inc.. All rights reserved. * */ // To tell other that parpameters are purposesly not used and remove compiler warning. #define UNUSED_PARAMETER(x) (void)(x) // Global Project Definitions Index: Field.h =================================================================== RCS file: /cvsroot/pgsqlformac/pgCocoaDB/Field.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** Field.h 8 Mar 2005 15:45:10 -0000 1.1.1.1 --- Field.h 30 Aug 2006 15:48:49 -0000 1.2 *************** *** 8,12 **** #import <Foundation/Foundation.h> ! @interface Field : NSObject --- 8,12 ---- #import <Foundation/Foundation.h> ! #import "PGCocoaDB.h" @interface Field : NSObject Index: ExplorerModel.m =================================================================== RCS file: /cvsroot/pgsqlformac/pgCocoaDB/ExplorerModel.m,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** ExplorerModel.m 26 Aug 2006 12:25:33 -0000 1.12 --- ExplorerModel.m 30 Aug 2006 15:48:49 -0000 1.13 *************** *** 302,356 **** } - - (id)initRebuilding - { - [super init]; - - schema = nil; - connection = nil; - rootNode = [[ExplorerNode alloc] init]; - [rootNode setName: @"Rebuilding"]; - [rootNode setBaseTable: @""]; - [rootNode setExplorerType:@"Database"]; - [rootNode setParent:nil]; - [rootNode setOID:0]; - - return self; - } - - (id)initWithConnection:(Connection *) theConnection { [super init]; // TODO clone this connection so we can multi-thread connection = theConnection; schema = [[Schema alloc] initWithConnection:connection]; showInformationSchema = TRUE; showPGCatalog = TRUE; showPGToast = FALSE; showPGTemps = FALSE; return self; } ! - (void)buildSchema { ExplorerNode * newNode; ExplorerNode * newChild; RecordSet * results; ! if ((connection == nil) || (schema == nil)) { ! NSLog(@"Attempted to buildSchema without proper init."); return; } // set database level ! rootNode = [[ExplorerNode alloc] init]; ! [rootNode setName: [connection currentDatabase]]; ! [rootNode setBaseTable: @""]; ! [rootNode setExplorerType:@"Database"]; ! [rootNode setParent:nil]; ! [rootNode setOID:0]; // set schema level --- 302,366 ---- } - (id)initWithConnection:(Connection *) theConnection { [super init]; + ExplorerNode * newNode; // TODO clone this connection so we can multi-thread connection = theConnection; schema = [[Schema alloc] initWithConnection:connection]; + + explorerThreadStatusLock = [[NSLock alloc] init]; + explorerThreadStatus = 0; + showInformationSchema = TRUE; showPGCatalog = TRUE; showPGToast = FALSE; showPGTemps = FALSE; + + // set temporary root node for display + rootNode = [[ExplorerNode alloc] init]; + [rootNode setName: @"Rebuilding"]; + [rootNode setBaseTable: @"Rebuilding"]; + [rootNode setExplorerType:@"Rebuilding"]; + [rootNode setParent:nil]; + [rootNode setOID:0]; + + newNode = [[ExplorerNode alloc] init]; + [newNode setName: @"Rebuilding"]; + [newNode setExplorerType:@"Rebuilding"]; + [newNode setParent:rootNode]; + [rootNode addChild: newNode]; + [newNode release]; + return self; } ! - (void)buildSchema:(id)anOutlineView { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; ExplorerNode * newNode; ExplorerNode * newChild; RecordSet * results; ! ExplorerNode * realRootNode; ! if ((connection == nil) || (schema == nil)) { ! NSLog(@"Attempted to build Schema without proper init."); return; } + + [self setExplorerThreadStatus:1]; + // set database level ! realRootNode = [[ExplorerNode alloc] init]; ! [realRootNode setName: [connection currentDatabase]]; ! [realRootNode setBaseTable: @""]; ! [realRootNode setExplorerType:@"Database"]; ! [realRootNode setParent:nil]; ! [realRootNode setOID:0]; // set schema level *************** *** 390,398 **** } } newNode = [[ExplorerNode alloc] init]; [newNode setName: schemaName]; [newNode setExplorerType:@"Schema"]; ! [newNode setParent:rootNode]; // for each schema add children --- 400,415 ---- } } + else if ([schemaName isCaseInsensitiveLike:@"public*"]) + { + if (!showPublic) + { + continue; //skip this one + } + } newNode = [[ExplorerNode alloc] init]; [newNode setName: schemaName]; [newNode setExplorerType:@"Schema"]; ! [newNode setParent:realRootNode]; // for each schema add children *************** *** 430,436 **** // add to the root node ! [rootNode addChild: newNode]; [newNode release]; } return; } --- 447,458 ---- // add to the root node ! [realRootNode addChild: newNode]; [newNode release]; } + [rootNode autorelease]; + rootNode = realRootNode; + [self setExplorerThreadStatus:3]; + [(NSOutlineView *)anOutlineView reloadData]; + [pool release]; return; } *************** *** 439,442 **** --- 461,466 ---- { // todo release all ExplorerNodes + [explorerThreadStatusLock release]; + [rootNode release]; [schema release]; *************** *** 477,480 **** --- 501,519 ---- } + - (bool)showPublic + { + return showPublic; + } + + - (unsigned int)explorerThreadStatus + { + unsigned int status; + + [explorerThreadStatusLock lock]; + status = explorerThreadStatus; + [explorerThreadStatusLock unlock]; + return status; + } + - (void)setShowInformationSchema:(bool)newValue { *************** *** 497,510 **** } // These methods get called because I am the datasource of the outline view. - (id)outlineView:(NSOutlineView *)outlineView child:(int)i ofItem:(id)item { ! if (item) ! // Return the child ! return [item childAtIndex:i]; ! else ! // Else return the root ! return [rootNode childAtIndex:i]; } --- 536,565 ---- } + - (void)setShowPublic:(bool)newValue + { + showPublic = newValue; + } + + - (void)setExplorerThreadStatus:(unsigned int)newValue + { + [explorerThreadStatusLock lock]; + explorerThreadStatus = newValue; + [explorerThreadStatusLock unlock]; + } // These methods get called because I am the datasource of the outline view. - (id)outlineView:(NSOutlineView *)outlineView child:(int)i ofItem:(id)item { ! UNUSED_PARAMETER(outlineView); ! ! if (item == nil) ! { ! return [rootNode childAtIndex:i]; ! } ! if([self explorerThreadStatus] != 3) ! { ! return 0; ! } ! return [item childAtIndex:i]; } *************** *** 512,516 **** - (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item { ! // Returns YES if the node has children return [item expandable]; } --- 567,577 ---- - (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item { ! UNUSED_PARAMETER(outlineView); ! ! // Returns YES if the node has children ! if([self explorerThreadStatus] != 3) ! { ! return NO; ! } return [item expandable]; } *************** *** 519,526 **** - (int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item { ! if (item == nil) { // The root object; return [rootNode childrenCount]; } return [item childrenCount]; } --- 580,593 ---- - (int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item { ! UNUSED_PARAMETER(outlineView); ! ! if (item == nil) { // The root object; return [rootNode childrenCount]; } + if([self explorerThreadStatus] != 3) + { + return 0; + } return [item childrenCount]; } *************** *** 531,535 **** // Set the identifier of the columns in IB's inspector NSString *identifier = [tableColumn identifier]; ! // What is returned depends upon which column it is going to appear. if ([identifier isEqual:@"col1"]) --- 598,603 ---- // Set the identifier of the columns in IB's inspector NSString *identifier = [tableColumn identifier]; ! UNUSED_PARAMETER(outlineView); ! // What is returned depends upon which column it is going to appear. if ([identifier isEqual:@"col1"]) *************** *** 556,560 **** - (void)printLog { ! [rootNode printLog:0]; } --- 624,632 ---- - (void)printLog { ! if([self explorerThreadStatus] == 3) ! { ! [rootNode printLog:0];; ! } ! NSLog(@"Explorer still Loading."); } Index: ExplorerNode.h =================================================================== RCS file: /cvsroot/pgsqlformac/pgCocoaDB/ExplorerNode.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ExplorerNode.h 16 Jul 2006 23:13:06 -0000 1.3 --- ExplorerNode.h 30 Aug 2006 15:48:49 -0000 1.4 *************** *** 8,11 **** --- 8,12 ---- #import <Cocoa/Cocoa.h> + #import "PGCocoaDB.h" @interface ExplorerNode : NSObject { --- NEW FILE: UnitTest-Info.plist --- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> <string>English</string> <key>CFBundleExecutable</key> <string>${EXECUTABLE_NAME}</string> <key>CFBundleIdentifier</key> <string>com.yourcompany.UnitTest</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundlePackageType</key> <string>BNDL</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> <string>1.0</string> </dict> </plist> Index: Databases.h =================================================================== RCS file: /cvsroot/pgsqlformac/pgCocoaDB/Databases.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** Databases.h 8 Mar 2005 15:45:10 -0000 1.1.1.1 --- Databases.h 30 Aug 2006 15:48:49 -0000 1.2 *************** *** 8,11 **** --- 8,12 ---- #import <Foundation/Foundation.h> #import "Database.h" + #import "PGCocoaDB.h" @interface Databases : NSObject |