mirror of
https://github.com/gnustep/libs-sqlclient.git
synced 2025-06-04 19:11:13 +00:00
Fix for millisecond timestamp info
This commit is contained in:
parent
3e35662803
commit
68678b864e
2 changed files with 27 additions and 6 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
2024-01-26 Richard Frith-Macdonald <rfm@gnu.org>
|
||||||
|
|
||||||
|
* Postgres.m: Fix error in parsing milliseconds in timestamp.
|
||||||
|
|
||||||
2023-11-23 Richard Frith-Macdonald <rfm@gnu.org>
|
2023-11-23 Richard Frith-Macdonald <rfm@gnu.org>
|
||||||
|
|
||||||
* SQLClient.h: New instance variables for timing lock waits.
|
* SQLClient.h: New instance variables for timing lock waits.
|
||||||
|
|
29
Postgres.m
29
Postgres.m
|
@ -192,10 +192,10 @@ newDateFromBuffer(const char *b, int l)
|
||||||
i++;
|
i++;
|
||||||
if (i >= l || !isdigit(b[i])) return nil;
|
if (i >= l || !isdigit(b[i])) return nil;
|
||||||
milliseconds = b[i++] - '0';
|
milliseconds = b[i++] - '0';
|
||||||
milliseconds *=- 10;
|
milliseconds *= 10;
|
||||||
if (i < l && isdigit(b[i]))
|
if (i < l && isdigit(b[i]))
|
||||||
milliseconds += b[i++] - '0';
|
milliseconds += b[i++] - '0';
|
||||||
milliseconds *=- 10;
|
milliseconds *= 10;
|
||||||
if (i < l && isdigit(b[i]))
|
if (i < l && isdigit(b[i]))
|
||||||
milliseconds += b[i++] - '0';
|
milliseconds += b[i++] - '0';
|
||||||
while (i < l && isdigit(b[i]))
|
while (i < l && isdigit(b[i]))
|
||||||
|
@ -1302,8 +1302,24 @@ static inline unsigned int trim(char *str, unsigned len)
|
||||||
|
|
||||||
if (d > 1)
|
if (d > 1)
|
||||||
{
|
{
|
||||||
[self debug: @"%@ type:%d mod:%d size: %d\n",
|
#if 0
|
||||||
keys[j], ftype[j], fmod[j], size];
|
/* For even more debug we can write some of the
|
||||||
|
* data retrieved, but that may be a security
|
||||||
|
* issue.
|
||||||
|
*/
|
||||||
|
if (0 == fformat[j] && size <= 100)
|
||||||
|
{
|
||||||
|
[self debug:
|
||||||
|
@"%@ type:%d mod:%d size: %d %*.*s\n",
|
||||||
|
keys[j], ftype[j], fmod[j], size,
|
||||||
|
size, size, p];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
[self debug: @"%@ type:%d mod:%d size: %d\n",
|
||||||
|
keys[j], ftype[j], fmod[j], size];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/* Often many rows will contain the same data in
|
/* Often many rows will contain the same data in
|
||||||
* one or more columns, so we check to see if the
|
* one or more columns, so we check to see if the
|
||||||
|
@ -1843,7 +1859,8 @@ static inline unsigned int trim(char *str, unsigned len)
|
||||||
type: ET_RDESC
|
type: ET_RDESC
|
||||||
forMode: NSDefaultRunLoopMode
|
forMode: NSDefaultRunLoopMode
|
||||||
all: YES];
|
all: YES];
|
||||||
[self debug: @"Listen event on disconnected client, desc: %d", (int)data];
|
[self debug: @"Listen event on disconnected client, desc: %d",
|
||||||
|
(int)(intptr_t)data];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1855,7 +1872,7 @@ static inline unsigned int trim(char *str, unsigned len)
|
||||||
strncpy(msg, PQerrorMessage(connection), sizeof(msg)-1);
|
strncpy(msg, PQerrorMessage(connection), sizeof(msg)-1);
|
||||||
msg[sizeof(msg)-1] = '\0';
|
msg[sizeof(msg)-1] = '\0';
|
||||||
if (PQstatus(connection) != CONNECTION_OK
|
if (PQstatus(connection) != CONNECTION_OK
|
||||||
|| PQsocket(connection) != (int)data)
|
|| PQsocket(connection) != (int)(intptr_t)data)
|
||||||
{
|
{
|
||||||
/* The connection has been lost, so we must disconnect,
|
/* The connection has been lost, so we must disconnect,
|
||||||
* which will stop us receiving events on the descriptor.
|
* which will stop us receiving events on the descriptor.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue