Re: [HACKERS] question on some code.
If I understand the code right, your trying to pass in to appendBinaryStringInfo an address or reference to the n8, n16, or n32 variables and cast them so that a char * pointer can access that address space. Through some testing that I've been doing (outputting the values in the appendBinaryStringInfo function), I never seem to see any data, The variable pointer that references the n8, n16, or n32 value is not holding any data in the appendBinaryStringInfo function. How are you looking at the data? If you're treating the pointer as if it were a null-terminated string, it's likely that the first byte is a null character much of the time. Since this is binary data (not character data), you'll need to look at the individual bytes. If you're using gdb, use 'x' command instead of the 'p' command. If you've thrown a printf() into the code, you can't use a %s format specifier, you'll have to look at the bytes one at a time using something like %02X. -- Korry
Re: [HACKERS] question on some code.
Chris Bowlby [EMAIL PROTECTED] writes: I understand the concept of the code, to append binary values to a string buffer (char *), but, under my compiler on FreeBSD 5.4.x (gcc (GCC) 3.4.2 [FreeBSD] 20040728) I see a few issues that have cropped up. You've got a broken compiler then, because it certainly works for everyone else. That function's been substantially unchanged since ... hmm ... version 1.1 of pqformat.c dated 25 Apr 1999. And I'm fairly sure that I got it from some older code rather than writing it from scratch when I made that file. Through some testing that I've been doing (outputting the values in the appendBinaryStringInfo function), I never seem to see any data, The variable pointer that references the n8, n16, or n32 value is not holding any data in the appendBinaryStringInfo function. Define never seem to see any data... regards, tom lane ---(end of broadcast)--- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq
Re: [HACKERS] question on some code.
Ahh, so it's not attempting to turn it into an acsii string, just storing raw binary data... Ok that makes sense now, thanks for the help. At 02:54 PM 7/19/2005, Korry wrote: If I understand the code right, your trying to pass in to appendBinaryStringInfo an address or reference to the n8, n16, or n32 variables and cast them so that a char * pointer can access that address space. Through some testing that I've been doing (outputting the values in the appendBinaryStringInfo function), I never seem to see any data, The variable pointer that references the n8, n16, or n32 value is not holding any data in the appendBinaryStringInfo function. How are you looking at the data? If you're treating the pointer as if it were a null-terminated string, it's likely that the first byte is a null character much of the time. Since this is binary data (not character data), you'll need to look at the individual bytes. If you're using gdb, use 'x' command instead of the 'p' command. If you've thrown a printf() into the code, you can't use a %s format specifier, you'll have to look at the bytes one at a time using something like %02X. -- Korry ---(end of broadcast)--- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly
Re: [HACKERS] question on some code.
Hi Tom, good to hear from you. It was my miss-understanding of what the code was doing, not the issue with the compiler : At 03:22 PM 7/19/2005, Tom Lane wrote: Chris Bowlby [EMAIL PROTECTED] writes: I understand the concept of the code, to append binary values to a string buffer (char *), but, under my compiler on FreeBSD 5.4.x (gcc (GCC) 3.4.2 [FreeBSD] 20040728) I see a few issues that have cropped up. You've got a broken compiler then, because it certainly works for everyone else. That function's been substantially unchanged since ... hmm ... version 1.1 of pqformat.c dated 25 Apr 1999. And I'm fairly sure that I got it from some older code rather than writing it from scratch when I made that file. Through some testing that I've been doing (outputting the values in the appendBinaryStringInfo function), I never seem to see any data, The variable pointer that references the n8, n16, or n32 value is not holding any data in the appendBinaryStringInfo function. Define never seem to see any data... regards, tom lane ---(end of broadcast)--- TIP 6: explain analyze is your friend