Value truncation on user defined type

Value truncation on user defined type

am 09.05.2007 19:08:33 von Chris Gamache

I've finally taken the plunge and upgraded PgODBC from 7.03.02.00 to 8.02.04.00 ... I'm having an issue with data truncation on the uniqueidentifier type (http://gborg.postgresql.org/project/uniqueidentifier/projdi splay.php) ...


'in ASP vbScript....

dim conn, sql, rs, newUUID
set conn = server.createobject("adodb.connection")
conn.open("Provider=MSDASQL.1;Password=pass;Persist Security Info=True;User Id=user;Mode=ReadWrite;" & _
"Extended Properties=""DRIVER={PostgreSQL ANSI};" & _
"DATABASE=data;SERVER=10.0.0.2;PORT=5432;UID=user;PWD=pass;" & _
"SSLmode=disable;ReadOnly=0;Protocol=7.4-1;FakeOidIndex=0;Sh owOidColumn=0;RowVersioning=0;" & _
"ShowSystemTables=0;ConnSettings=set+sort%5Fmem%3D10241%3Bse t+geqo%3Don%3B;Fetch=300;Socket=4096;" & _
"UnknownSizes=0;MaxVarcharSize=254;" & _
"MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=1;Ksqo= 1;UseDeclareFetch=0;TextAsLongVarchar=1;" & _
"UnknownsAsLongVarchar=0;BoolsAsChar=1;Parse=0;CancelAsFreeS tmt=0;ExtraSysTablePrefixes=dd_;;LFConversion=1;" & _
"UpdatableCursors=1;DisallowPremature=0;TrueIsMinus1=0;BI=0; ByteaAsLongVarBinary=0;UseServerSidePrepare=1;" & _
"LowerCaseIdentifier=0;XaOpt=1""")

sql = "select newid() as uuid;"

set rs = conn.execute(sql)
newUUID = rs("uuid").value

response.write ("Length : " & len(newUUID) & "
" & vbcrlf)
response.write ("Type : " & vartype(newUUID) & "
" & vbcrlf)
response.write ("

")
for i = 1 to len(newUUID)
response.write ("" & vbcrlf)
next
response.write ("
" & asc(mid(newUUID,i,1)) & "" & server.htmlencode(mid(newUUID,i,1)) & "
")

rs.close
set rs = nothing
conn.close
set conn = nothing

The returned value is the correct length, but there must be a null inserted after the 16th character becasuse the return value, which is a string type, abruptly terminates at that point.

If I cast the uuid to type text, nothing gets truncated. This wasn't a problem in 7.03.02.00 ...



____________________________________________________________ ________________________
Expecting? Get great news right away with email Auto-Check.
Try the Yahoo! Mail Beta.
http://advision.webevents.yahoo.com/mailbeta/newmail_tools.h tml

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Re: Value truncation on user defined type

am 10.05.2007 15:50:36 von Hiroshi Inoue

Could you send me directly the Mylog output ?

regards,
Hiroshi Inoue

CG wrote:
> I've finally taken the plunge and upgraded PgODBC from 7.03.02.00 to 8.02.04.00 ... I'm having an issue with data truncation on the uniqueidentifier type (http://gborg.postgresql.org/project/uniqueidentifier/projdi splay.php) ...
>
>
> 'in ASP vbScript....
>
> dim conn, sql, rs, newUUID
> set conn = server.createobject("adodb.connection")
> conn.open("Provider=MSDASQL.1;Password=pass;Persist Security Info=True;User Id=user;Mode=ReadWrite;" & _
> "Extended Properties=""DRIVER={PostgreSQL ANSI};" & _
> "DATABASE=data;SERVER=10.0.0.2;PORT=5432;UID=user;PWD=pass;" & _
> "SSLmode=disable;ReadOnly=0;Protocol=7.4-1;FakeOidIndex=0;Sh owOidColumn=0;RowVersioning=0;" & _
> "ShowSystemTables=0;ConnSettings=set+sort%5Fmem%3D10241%3Bse t+geqo%3Don%3B;Fetch=300;Socket=4096;" & _
> "UnknownSizes=0;MaxVarcharSize=254;" & _
> "MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=1;Ksqo= 1;UseDeclareFetch=0;TextAsLongVarchar=1;" & _
> "UnknownsAsLongVarchar=0;BoolsAsChar=1;Parse=0;CancelAsFreeS tmt=0;ExtraSysTablePrefixes=dd_;;LFConversion=1;" & _
> "UpdatableCursors=1;DisallowPremature=0;TrueIsMinus1=0;BI=0; ByteaAsLongVarBinary=0;UseServerSidePrepare=1;" & _
> "LowerCaseIdentifier=0;XaOpt=1""")
>
> sql = "select newid() as uuid;"
>
> set rs = conn.execute(sql)
> newUUID = rs("uuid").value
>
> response.write ("Length : " & len(newUUID) & "
" & vbcrlf)
> response.write ("Type : " & vartype(newUUID) & "
" & vbcrlf)
> response.write ("

")
> for i = 1 to len(newUUID)
> response.write ("" & vbcrlf)
> next
> response.write ("
" & asc(mid(newUUID,i,1)) & "" & server.htmlencode(mid(newUUID,i,1)) & "
")
>
> rs.close
> set rs = nothing
> conn.close
> set conn = nothing
>
> The returned value is the correct length, but there must be a null inserted after the 16th character becasuse the return value, which is a string type, abruptly terminates at that point.
>
> If I cast the uuid to type text, nothing gets truncated. This wasn't a problem in 7.03.02.00 ...

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly

Re: Value truncation on user defined type

am 11.05.2007 05:21:20 von Hiroshi Inoue

I wrote:
> Could you send me directly the Mylog output ?

I seem to have found the cause.
Please try the drivers on testing for 8.2.0402 at
http://www.geocities.jp/inocchichichi/psqlodbc/index.html .


> CG wrote:
>> I've finally taken the plunge and upgraded PgODBC from 7.03.02.00 to 8.02.04.00 ... I'm having an issue with data truncation on the uniqueidentifier type (http://gborg.postgresql.org/project/uniqueidentifier/projdi splay.php) ...
>>

regards,
Hiroshi Inoue


---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

http://archives.postgresql.org