Overview
Comment: | Convert types using the result of PQftypes(). |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
4a2b1fff7ecbdccaaff50842a27a4921 |
User & Date: | js on 2012-10-07 22:45:37 |
Other Links: | manifest | tags |
Context
2012-10-08
| ||
18:52 | Enforce queries to be constant. check-in: 53f46b10cd user: js tags: trunk | |
2012-10-07
| ||
22:45 | Convert types using the result of PQftypes(). check-in: 4a2b1fff7e user: js tags: trunk | |
2012-10-06
| ||
21:02 | Add -[insertRows:intoTable:]. check-in: 7b335b3af8 user: js tags: trunk | |
Changes
Modified Makefile from [534205b75f] to [84367df8f0].
︙ | |||
30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | + | --lib 0.0 \ -o objpgsql \ --builddir build \ ${CPPFLAGS} \ ${LIBS} \ ${SRCS} .PHONY: test test: @objfw-compile \ -o test \ --builddir build \ -L. \ -lobjpgsql \ ${CPPFLAGS} \ |
︙ |
Modified PGConnection.m from [e8b20f208f] to [ef78860558].
︙ | |||
95 96 97 98 99 100 101 | 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | + + + + + - + + + + + + + + + | count: argsCount]; @try { size_t i = 0; do { if ([parameter isKindOfClass: [OFNull class]]) values[i++] = NULL; else if ([parameter isKindOfClass: [OFNumber class]]) { switch ([parameter type]) { case OF_NUMBER_BOOL: if ([parameter boolValue]) values[i++] = "t"; |
︙ |
Modified PGResultRow.m from [28af410d0c] to [77d330bc63].
1 2 3 4 5 6 7 8 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | + + + + + + + + + + + + + + + + + + + + | #import "PGResultRow.h" static id convert_type(PGresult *res, int col, OFString *str) { switch (PQftype(res, col)) { case 16: /* BOOLOID */ if ([str isEqual: @"t"]) return [OFNumber numberWithBool: YES]; else return [OFNumber numberWithBool: NO]; case 21: /* INT2OID */ return [OFNumber numberWithInt16: (int16_t)[str decimalValue]]; case 23: /* INT4OID */ return [OFNumber numberWithInt32: (int32_t)[str decimalValue]]; case 20: /* INT8OID */ return [OFNumber numberWithInt64: (int64_t)[str decimalValue]]; } return str; } @interface PGResultRowEnumerator: OFEnumerator { PGResult *result; PGresult *res; int row, pos, count; } |
︙ | |||
63 64 65 66 67 68 69 | 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | + - + | col = [key intValue]; else col = PQfnumber(res, [key UTF8String]); if (PQgetisnull(res, row, col)) return nil; return convert_type(res, col, |
︙ | |||
129 130 131 132 133 134 135 | 150 151 152 153 154 155 156 157 158 159 160 | + - + | while (pos < count && PQgetisnull(res, row, pos)) pos++; if (pos >= count) return nil; return convert_type(res, pos, |
Modified test.m from [5b6ed458d7] to [d0a83f4346].
︙ | |||
22 23 24 25 26 27 28 | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | - + + - - - - - + + + + + | @"dbname", @"js", nil]]; [connection connect]; [connection executeCommand: @"DROP TABLE IF EXISTS test"]; [connection executeCommand: @"CREATE TABLE test (" @" id integer," @" name varchar(255)," |
︙ |