Overview
Comment: | Exclude fields that are NULL from the result. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
6d068f6ae7e9cc62599ef05dfea2ae44 |
User & Date: | js on 2012-10-04 22:18:32 |
Other Links: | manifest | tags |
Context
2012-10-05
| ||
20:17 | Nicer API. check-in: d2fe40f160 user: js tags: trunk | |
2012-10-04
| ||
22:18 | Exclude fields that are NULL from the result. check-in: 6d068f6ae7 user: js tags: trunk | |
2012-10-03
| ||
16:08 | Add ObjPgSQL.h. check-in: 9b7427552b user: js tags: trunk | |
Changes
Modified PGResultRow.m from [e0031934f9] to [a383c54406].
︙ | ︙ | |||
42 43 44 45 46 47 48 | [result release]; [super dealloc]; } - (size_t)count { | > > > > > > | > > > | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | [result release]; [super dealloc]; } - (size_t)count { size_t i, count, fields = PQnfields(res); for (i = count = 0; i < fields; i++) if (!PQgetisnull(res, row, i)) count++; return count; } - (id)objectForKey: (id)key { int col; if ([key isKindOfClass: [OFNumber class]]) col = [key intValue]; else col = PQfnumber(res, [key UTF8String]); if (PQgetisnull(res, row, col)) return nil; return [OFString stringWithUTF8String: PQgetvalue(res, row, col)]; } - (OFEnumerator*)keyEnumerator { return [[[PGResultRowKeyEnumerator alloc] |
︙ | ︙ | |||
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | @end @implementation PGResultRowKeyEnumerator - (id)nextObject { if (pos >= count) return nil; return [OFString stringWithUTF8String: PQfname(res, pos++)]; } @end @implementation PGResultRowObjectEnumerator - (id)nextObject { if (pos >= count) return nil; return [OFString stringWithUTF8String: PQgetvalue(res, row, pos++)]; } @end | > > > > > > > > > > > > | 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | @end @implementation PGResultRowKeyEnumerator - (id)nextObject { if (pos >= count) return nil; while (pos < count && PQgetisnull(res, row, pos)) pos++; if (pos >= count) return nil; return [OFString stringWithUTF8String: PQfname(res, pos++)]; } @end @implementation PGResultRowObjectEnumerator - (id)nextObject { if (pos >= count) return nil; while (pos < count && PQgetisnull(res, row, pos)) pos++; if (pos >= count) return nil; return [OFString stringWithUTF8String: PQgetvalue(res, row, pos++)]; } @end |
Modified test.m from [777240ca2a] to [e494e1ab6f].
︙ | ︙ | |||
27 28 29 30 31 32 33 | @" id integer," @" name varchar(255)," @" content text" @")"]; [connection executeCommand: @"INSERT INTO test (id, name, content) " @"VALUES($1, $2, $3)" parameters: @[@"1", @"foo", @"Hallo Welt!"]]; | | | | | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | @" id integer," @" name varchar(255)," @" content text" @")"]; [connection executeCommand: @"INSERT INTO test (id, name, content) " @"VALUES($1, $2, $3)" parameters: @[@"1", @"foo", @"Hallo Welt!"]]; [connection executeCommand: @"INSERT INTO test (id, content) " @"VALUES($1, $2)" parameters: @[@"2", @"Blup!!"]]; result = [connection executeCommand: @"SELECT * FROM test"]; of_log(@"%@", result); of_log(@"JSON: %@", [result JSONRepresentation]); [OFApplication terminate]; } |
︙ | ︙ |