Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-24 Thread Dimitry Sibiryakov
24.05.2021 14:59, Mark Rotteveel wrote: It is an API change, for two reasons: 1) you increase the valid range of values, and 2) it's similar to changing from a signed 16-bit integer to a signed 32-bit integer, which I assume would definitely be an API change in your book. I think you're

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-24 Thread Mark Rotteveel
On 24-05-2021 14:28, Dimitry Sibiryakov wrote: 24.05.2021 14:15, Alex Peshkoff via Firebird-devel wrote: One more detail - very ogten, when discussing possible changes in old API, we used to answer - no, that requires changes in SQLDA. I think we should follow that way or collect everything we

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-24 Thread Dimitry Sibiryakov
24.05.2021 14:15, Alex Peshkoff via Firebird-devel wrote: One more detail - very ogten, when discussing possible changes in old API, we used to answer - no, that requires changes in SQLDA. I think we should follow that way or collect everything we miss in SQLDA and include it into FB5 but not

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-24 Thread Alex Peshkoff via Firebird-devel
On 5/22/21 12:03 AM, Adriano dos Santos Fernandes wrote: On 21/05/2021 17:53, Alex Peshkoff via Firebird-devel wrote: On 5/21/21 9:19 PM, Adriano dos Santos Fernandes wrote: And if we do change SQLDA_VERSION it's worth changing something else in it. For example - make all sizes uint32, add

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-22 Thread liviuslivius
lob in such case.Regards,Karol >> Bieniaszewski Oryginalna wiadomość Od: Dmitry Yemanov Data: 22.05.2021 09:19 (GMT+01:00) Do: For discussion among Firebird Developers Temat: Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB 22.05.2021 09:58, Mark Rotteveel

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-22 Thread liviuslivius
>> For example - make all sizes uint32Why not uint64?Regards,Karol Bieniaszewski Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-22 Thread Mark Rotteveel
On 22-05-2021 09:19, Dmitry Yemanov wrote: 22.05.2021 10:06, Mark Rotteveel wrote: The majority of our users probably still use the old API, either directly or indirectly. Given the undocumented state of the new API, I suspect it does not see a lot of usage, nor will it unless that changes.

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-22 Thread Dmitry Yemanov
22.05.2021 10:06, Mark Rotteveel wrote: The majority of our users probably still use the old API, either directly or indirectly. Given the undocumented state of the new API, I suspect it does not see a lot of usage, nor will it unless that changes. Introducing features that only benefit

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-22 Thread Dmitry Yemanov
22.05.2021 09:58, Mark Rotteveel wrote: In any case, I think adding 1 to a length to obtain the actual length is a bad idea even if it is not exposed to the outside. Doing that is a great way to introduce increased risk of off-by-one errors and buffer overflows; the risk of that increases

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-22 Thread Mark Rotteveel
On 21-05-2021 20:19, Adriano dos Santos Fernandes wrote: On 21/05/2021 11:51, Alex Peshkoff via Firebird-devel wrote: And if we do change SQLDA_VERSION it's worth changing something else in it. For example - make all sizes uint32, add separate field for charset, may be something else? My aim

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-22 Thread Mark Rotteveel
On 21-05-2021 22:39, Alex Peshkoff via Firebird-devel wrote: On 5/21/21 9:06 PM, Mark Rotteveel wrote: On 2021-05-21 16:51, Alex Peshkoff via Firebird-devel wrote: We have one more unused value for size - zero, we do not support characters with length == 0. We may store logical data length -

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-21 Thread Dimitry Sibiryakov
21.05.2021 14:49, Adriano dos Santos Fernandes wrote: On 21/05/2021 08:33, Dimitry Sibiryakov wrote: 21.05.2021 09:38, Alex Peshkoff via Firebird-devel wrote: Any idea how to avoid that?   Redeclare it as unsigned right now. Yes. But would be very bad to see not recompiled programs just

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-21 Thread Adriano dos Santos Fernandes
On 21/05/2021 17:53, Alex Peshkoff via Firebird-devel wrote: > On 5/21/21 9:19 PM, Adriano dos Santos Fernandes wrote: > >>> And if we do change SQLDA_VERSION it's worth changing something else in >>> it. For example - make all sizes uint32, add separate field for charset, >>> may be something

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-21 Thread Alex Peshkoff via Firebird-devel
On 5/21/21 9:19 PM, Adriano dos Santos Fernandes wrote: And if we do change SQLDA_VERSION it's worth changing something else in it. For example - make all sizes uint32, add separate field for charset, may be something else? My aim is to increase CHAR/VARCHAR lengths. I think there is no real

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-21 Thread Alex Peshkoff via Firebird-devel
On 5/21/21 9:06 PM, Mark Rotteveel wrote: On 2021-05-21 16:51, Alex Peshkoff via Firebird-devel wrote: We have one more unused value for size - zero, we do not support characters with length == 0. We may store logical data length - 1, this will make it possible to have exactly 64Kb fields,

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-21 Thread Leyne, Sean
> >> dsc_length is currently the descriptor's physical length. With the > >> change it will represent a logical length. To support that I added > >> getPhysicalLength() method to struct dsc returning an unsigned 32-bit > >> that sums +2/+1 for dtype_varying/dtype_cstring. > > > > During such

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-21 Thread Adriano dos Santos Fernandes
On 21/05/2021 11:51, Alex Peshkoff via Firebird-devel wrote: > On 5/21/21 3:49 PM, Adriano dos Santos Fernandes wrote: >> On 21/05/2021 08:33, Dimitry Sibiryakov wrote: >>> 21.05.2021 09:38, Alex Peshkoff via Firebird-devel wrote: Any idea how to avoid that? >>>    Redeclare it as unsigned

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-21 Thread Mark Rotteveel
On 2021-05-21 16:51, Alex Peshkoff via Firebird-devel wrote: We have one more unused value for size - zero, we do not support characters with length == 0. We may store logical data length - 1, this will make it possible to have exactly 64Kb fields, which (I believe) can be useful in some cases.

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-21 Thread Dimitry Sibiryakov
21.05.2021 16:51, Alex Peshkoff via Firebird-devel wrote: We may store logical data length - 1, this will make it possible to have exactly 64Kb fields, which (I believe) can be useful in some cases. Yep, mess with varying::vary_length. -- WBR, SD. Firebird-Devel mailing list, web

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-21 Thread Alex Peshkoff via Firebird-devel
On 5/21/21 3:49 PM, Adriano dos Santos Fernandes wrote: On 21/05/2021 08:33, Dimitry Sibiryakov wrote: 21.05.2021 09:38, Alex Peshkoff via Firebird-devel wrote: Any idea how to avoid that?   Redeclare it as unsigned right now. Yes. But would be very bad to see not recompiled programs just

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-21 Thread Dimitry Sibiryakov
21.05.2021 14:49, Adriano dos Santos Fernandes wrote: So I think we must also create SQLDA_VERSION2 and raise error with length > 32767 with SQLDA_VERSION1. Creating of a new SQLDA version must be considered much deeper than just sqllen. -- WBR, SD. Firebird-Devel mailing list, web

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-21 Thread Adriano dos Santos Fernandes
On 21/05/2021 08:33, Dimitry Sibiryakov wrote: > 21.05.2021 09:38, Alex Peshkoff via Firebird-devel wrote: >> Any idea how to avoid that? > >   Redeclare it as unsigned right now. > Yes. But would be very bad to see not recompiled programs just crashing (or in infinite loop) if greater length

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-21 Thread Dimitry Sibiryakov
21.05.2021 09:38, Alex Peshkoff via Firebird-devel wrote: Any idea how to avoid that? Redeclare it as unsigned right now. -- WBR, SD. Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel

Re: [Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-21 Thread Alex Peshkoff via Firebird-devel
On 5/20/21 5:32 PM, Adriano dos Santos Fernandes wrote: Hi! Currently max. CHAR length is limited to 32767 and max. VARCHAR to 32765. I didn't found any blocker prevent raising that limits to 65535 and 65533 respectively. Even not going into details agraid I see one serious problem - ISC API

[Firebird-devel] Increasing CHAR/VARCHAR max. length to 64KB

2021-05-20 Thread Adriano dos Santos Fernandes
Hi! Currently max. CHAR length is limited to 32767 and max. VARCHAR to 32765. I didn't found any blocker prevent raising that limits to 65535 and 65533 respectively. But I want to raise them both to 65535 to allow read 64KB segments in RDB$BLOB_UTIL. To support that, internals must be changed