Thread: Some question about statement
Hi,
I have question about statement.Some method that provided by JAVA API were not implemented in postgresql jdbc.
I focus on method named ‘setCharacterStream(int parameterIndex, Reader value, long length)’,it was not implemented,but
‘setCharacterStream(int i, java.io.Reader x, int length)’ was implemented.The different between them is the type of the third
parameter. I don’t know why the first method was not implement,because the column can not store the ‘value’ whoes length
is the ‘length’? Or other reason? Thank you.
El 30 nov 2015, a las 6:06, 张元超 <zhangyuanchao@highgo.com> escribió:Hi,I have question about statement.Some method that provided by JAVA API were not implemented in postgresql jdbc.I focus on method named ‘setCharacterStream(int parameterIndex, Reader value, long length)’,it was not implemented,but‘setCharacterStream(int i, java.io.Reader x, int length)’ was implemented.The different between them is the type of the thirdparameter. I don’t know why the first method was not implement,because the column can not store the ‘value’ whoes lengthis the ‘length’? Or other reason? Thank you.
I think `long` method just check bounds and delegate to int one. Vladimir
Hi,Daniel
Thnanks for repling to me. I think you are right. Fields in postgres can not be larger than 1 GB,but in java,the size of a string whoes length is Integer.MAX_VALUE is about 2GB. So the ‘int’ type may beyond the limit of fields,’long’ type is not necessary . I think that is why almost methods like ‘setCharacterStream’ can not support ‘long’ type parameter,or convert the ‘long’ parameter to ‘int’.
发件人: Daniel Blanch Bataller [mailto:dblanch@hoplasoftware.com]
发送时间: 2015年11月30日 14:28
收件人: 张元超
抄送: pgsql-jdbc@postgresql.org
主题: Re: [JDBC] Some question about statement
Hi,
I guess its simply because String fields in postgres can not be larger than 1 GB, long type could represent length values far beyond this limit surpassing postgres limits.
-Daniel
El 30 nov 2015, a las 6:06, 张元超 <zhangyuanchao@highgo.com> escribió:
Hi,
I have question about statement.Some method that provided by JAVA API were not implemented in postgresql jdbc.
I focus on method named ‘setCharacterStream(int parameterIndex, Reader value, long length)’,it was not implemented,but
‘setCharacterStream(int i, java.io.Reader x, int length)’ was implemented.The different between them is the type of the third
parameter. I don’t know why the first method was not implement,because the column can not store the ‘value’ whoes length
is the ‘length’? Or other reason? Thank you.
Hi, Vladimir Thanks for repling to me.You are right,jdbc was done like you said in somewhere,for example the following method: ' setBinaryStream(int parameterIndex, InputStream value, long length)' in AbstractJdbc4Statement.java -----邮件原件----- 发件人: Vladimir Sitnikov [mailto:sitnikov.vladimir@gmail.com] 发送时间: 2015年11月30日 14:30 收件人: Daniel Blanch Bataller 抄送: 张元超; pgsql-jdbc@postgresql.org 主题: Re: [JDBC] Some question about statement I think `long` method just check bounds and delegate to int one. Vladimir
Pull requests are welcome. Vladimir