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
Don't send full length of field over the wire when field is null [CORE2897] #3281
Comments
Modified by: @WarmBooterVersion: 2.5 RC2 [ 10372 ] |
Modified by: @dyemanovassignee: Dmitry Yemanov [ dimitr ] |
Modified by: @dyemanovFix Version: 3.0 Beta 1 [ 10332 ] |
Modified by: @dyemanovsummary: Dont send full chars over the wire when field is null => Don't send full length of field over the wire when field is null |
Commented by: Nick (nick) >>IMHO, this is ok when field contains some data, but should not occur when the field is null. |
Commented by: @WarmBooter Nick, agree, but never mind, it will be fixed for all cases in FB 3. |
Commented by: @dyemanov Practically speaking, there's no such thing as "some data" for CHARs, it always occupies fixed (declared) number of bytes. The same is especially true for numbers/dates/etc. It's surely different for VARCHARs, but they were not affected by this ticket. |
Modified by: @pavel-zotovstatus: Resolved [ 5 ] => Resolved [ 5 ] QA Status: Done successfully Test Details: Measurement showed than on 3.0 (SS/SC/CS) transfer of NULLs is more than 5 (five) times |
Modified by: @pcisarstatus: Resolved [ 5 ] => Closed [ 6 ] |
Submitted by: @WarmBooter
Is related to CORE2530
Votes: 2
It seems that a char field is sent in its full declared length over the wire, even when the field is null, generating unnecessary network traffic. IMHO, this is ok when field contains some data, but should not occur when the field is null.
PS: Thanks Ivan Prenosil for testing.
Commits: 4b5b826 FirebirdSQL/fbt-repository@7259f56
====== Test Details ======
Measurement showed than on 3.0 (SS/SC/CS) transfer of NULLs is more than 5 (five) times
faster than text data with length = 32K. As of 2.5 (SC) than ration is about 1.7 ... 1.8.
Test fills up two tables: one with text data and another with only nulls.
Then we receive data from these tables via EZ/EDS, evaluate elapsed time for both cases
and calculate its ratio. This ratio in 3.0 should be not less than 4x.
The text was updated successfully, but these errors were encountered: