Issue Details (XML | Word | Printable)

Key: CORE-2897
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Dmitry Yemanov
Reporter: Carlos H. Cantu
Votes: 2
Watchers: 2
Operations

If you were logged in you would be able to see more operations.
Firebird Core

Don't send full length of field over the wire when field is null

Created: 01/Mar/10 08:19 PM   Updated: 23/Sep/15 12:17 PM
Component/s: None
Affects Version/s: 2.0.0, 2.5 RC2
Fix Version/s: 3.0 Beta 1

Issue Links:
Relate
 

QA Status: Done successfully
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.


 Description  « Hide
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.

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Nick added a comment - 10/Sep/14 02:33 PM
>>IMHO, this is ok when field contains some data, but should not occur when the field is null.
IMHO this is not Ok even field contains some data. Waste of traffik.

Carlos H. Cantu added a comment - 10/Sep/14 04:25 PM
Nick, agree, but never mind, it will be fixed for all cases in FB 3.

Dmitry Yemanov added a comment - 10/Sep/14 05:29 PM
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.