New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove or extend limit of command text length (64K) [CORE1117] #1538
Comments
Modified by: Markus Woehling (woehling)description: A command text (I tried it with a dynamic SELECT statment) can't be longer then 65535 bytes. The parser seems to refill the first bytes after this limit (a command of length 65536 produces an error in line 1, column 1). Sample SELECT statement: SELECT NULL, NULL, ...., NULL FROM <AnyTable> It would be great if you can remove or extend this limit (maybe to 16M like MSSQL and Oracle) Firebird 2.0 embedded was our first choice for an embedded solution besides MSSQL and Oracle, but ths limitations prevents us from using firebird :-( => A command text (I tried it with a dynamic SELECT statment) can't be longer then 65535 bytes. The parser seems to refill the first bytes of the buffer after this limit is reached (a command of length 65536 produces an error in line 1, column 1). Sample SELECT statement: SELECT NULL, NULL, ...., NULL FROM <AnyTable> It would be great if you can remove or extend this limit (maybe to 16M like MSSQL and Oracle) Firebird 2.0 embedded was our first choice for an embedded solution besides MSSQL and Oracle, but ths limitation prevents us from using firebird :-( |
Modified by: Markus Woehling (woehling)description: A command text (I tried it with a dynamic SELECT statment) can't be longer then 65535 bytes. The parser seems to refill the first bytes of the buffer after this limit is reached (a command of length 65536 produces an error in line 1, column 1). Sample SELECT statement: SELECT NULL, NULL, ...., NULL FROM <AnyTable> It would be great if you can remove or extend this limit (maybe to 16M like MSSQL and Oracle) Firebird 2.0 embedded was our first choice for an embedded solution besides MSSQL and Oracle, but ths limitation prevents us from using firebird :-( => A command text (I tried it with a dynamic SELECT statment) can't be longer then 65535 bytes. The parser seems to refill the first bytes of the buffer after this limit is reached (a command of length 65536 produces an error in line 1, column 1). Sample SELECT statement: SELECT NULL, NULL, ...., NULL FROM <AnyTable> It would be great if you can remove or extend this limit (maybe to 16M like MSSQL and Oracle) Firebird 2.0 embedded was our first choice for an embedded solution besides MSSQL and Oracle, but this limitation prevents us from using firebird :-( |
Modified by: @pcisarWorkflow: jira [ 11550 ] => Firebird [ 15509 ] |
Commented by: Holger Klemt (klemmo) i second this old requirement, especially also for procedures and triggers, it would be very useful to remove this limit, since i already often have problems with this limit Holger |
Modified by: @dyemanovFix Version: 3.0 Alpha 1 [ 10331 ] |
Commented by: Marcelo Fortes (ultrix) Its really, really very annoying limitation ! |
Modified by: @dyemanovstatus: Open [ 1 ] => Resolved [ 5 ] resolution: Fixed [ 1 ] assignee: Dmitry Yemanov [ dimitr ] |
Commented by: Tim Kelly (m00bh000) I just hit this limit in Firebird v2. This is a bit of a showstopper for me. Would backporting the fix be that difficult to version 2? |
Commented by: @dyemanov Tim, this is absolutely impossible. Moreover, even with v3 it won't work automagically upon upgrade, it must be supported by the connectivity layers. |
Commented by: @livius2 How big is this limit after the fix? |
Commented by: @dyemanov There's a safety limit of 10MB at the moment, but it may increased any time without any API / protocol changes. |
Modified by: @pavel-zotovstatus: Resolved [ 5 ] => Resolved [ 5 ] QA Status: Done successfully Test Details: Test verifies that we can issue STATIC `SELECT` statement with length more than 64K. |
Commented by: @livius2 I have atteched script where this limit in current (3.0.1.32541) not work |
Modified by: @livius2Attachment: CORE1117_script.txt [ 12976 ] |
Commented by: @pavel-zotov Karol, i've ran your script on 32539 & 32542 - no errors |
Modified by: @pavel-zotovAttachment: c1117kb.logs.7z [ 12977 ] |
Commented by: @livius2 Pavel - all is ok - no isssues here So it seems being the tool problem. If it always passes SQL string Dmitry" as hint to others who use Delphi and Firedac procedure TIBStatement.Prepare(const ASQL: String); |
Submitted by: Markus Woehling (woehling)
Is duplicated by CORE3713
Is related to QA625
Attachments:
CORE1117_script.txt
c1117kb.logs.7z
Votes: 11
A command text (I tried it with a dynamic SELECT statment) can't be longer then 65535 bytes. The parser seems to refill the first bytes of the buffer after this limit is reached (a command of length 65536 produces an error in line 1, column 1).
Sample SELECT statement: SELECT NULL, NULL, ...., NULL FROM <AnyTable>
It would be great if you can remove or extend this limit (maybe to 16M like MSSQL and Oracle)
Firebird 2.0 embedded was our first choice for an embedded solution besides MSSQL and Oracle, but this limitation prevents us from using firebird :-(
We are using an OR-mapping solution that produces quite long sql statements (if the query is complex ;-)
====== Test Details ======
Test verifies that we can issue STATIC `SELECT` statement with length more than 64K.
Its SELECT statement has length = ~72900 bytes, but FB 3.0 can successfully run much longer (checked up to 5000 columns).
FB 2.5 fails with such commands with message: "Single isql command exceeded maximum buffer size"
See also: CORE1609 ("PSQL output parameter size limited").
The text was updated successfully, but these errors were encountered: