1
2
3
4
5
6
7
8
9
|
1
2
3
4
5
6
7
8
9
|
-
+
|
/*
* Copyright (c) 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019
* Copyright (c) 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2024
* Jonathan Schleifer <js@nil.im>
*
* https://fossil.nil.im/objpgsql
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice is present in all copies.
|
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
-
+
|
@interface PGResultRowEnumerator: OFEnumerator
{
PGResult *_result;
PGresult *_res;
int _row, _pos, _count;
}
- initWithResult: (PGResult*)result row: (int)row;
- (instancetype)initWithResult: (PGResult*)result row: (int)row;
@end
@interface PGResultRowKeyEnumerator: PGResultRowEnumerator
@end
@interface PGResultRowObjectEnumerator: PGResultRowEnumerator
@end
|
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
-
+
|
int i, j;
if (state->extra[0] == 0) {
state->extra[0] = 1;
state->extra[1] = PQnfields(_res);
}
if (count > SIZE_MAX - state->state)
if (count < 0 || (unsigned long)count > SIZE_MAX - state->state)
@throw [OFOutOfRangeException exception];
if (state->state + count > state->extra[1])
count = state->extra[1] - state->state;
for (i = j = 0; i < count; i++) {
if (PQgetisnull(_res, _row, state->state + i))
|