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 ("" & asc(mid(newUUID,i,1)) & " | " & server.htmlencode(mid(newUUID,i,1)) & " |
" & vbcrlf)
next
response.write ("
")
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 ("" & asc(mid(newUUID,i,1)) & " | " & server.htmlencode(mid(newUUID,i,1)) & " |
" & vbcrlf)
> next
> response.write ("
")
>
> 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