Issue Details (XML | Word | Printable)

Key: CORE-820
Type: New Feature New Feature
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Alexander Peshkov
Reporter: rdebay
Votes: 3
Watchers: 3
Operations

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

isc_dsql_exec* should allow list of parameter sets

Created: 15/Mar/05 12:00 AM   Updated: 25/Oct/18 12:38 PM
Component/s: API / Client Library
Affects Version/s: None
Fix Version/s: None

Issue Links:
Duplicate
 
Relate
 
Replace
 

SF_ID: 1164037


 Description  « Hide
SFID: 1164037#
Submitted By: rdebay

JDBC has a feature called batched statements. To put it simply, an SQL statement is prepared, sets of parameters are added to the batch, and then the batch is executed.

Currently, Jaybird takes the list of parameter sets, and executes each one with isc_dsql_exec2. Other databases have APIs that allow the entire list of parameter sets to be sent across, and the server then loops through them, executing each one in turn against the prepared SQL statement.

This greatly reduces wire traffic, with equally large gains in performance.

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Pavel Cisar made changes - 16/Jun/06 11:52 AM
Field Original Value New Value
SF_ID 1164037
Assignee Dmitry Yemanov [ dimitr ]
Issue Type New Feature [ 2 ] Improvement [ 4 ]
Dmitry Yemanov made changes - 19/Jun/06 02:39 AM
SF_ID 1164037
Issue Type Improvement [ 4 ] New Feature [ 2 ]
Assignee Dmitry Yemanov [ dimitr ] Vlad Horsun [ hvlad ]
Dmitry Yemanov made changes - 01/Jul/06 04:14 PM
Component/s API / Client Library [ 10040 ]
SF_ID 1164037
Pavel Cisar made changes - 28/Jan/08 01:22 PM
Workflow jira [ 10844 ] Firebird [ 15284 ]
Sean Leyne made changes - 18/Apr/12 08:09 PM
Description SFID: 1164037#
Submitted By: rdebay

JDBC has a feature called batched statements. To put
it simply, an SQL statement is prepared, sets of
parameters are added to the batch, and then the batch
is executed.
Currently, Jaybird takes the list of parameter sets,
and executes each one with isc_dsql_exec2. Other
databases have APIs that allow the entire list of
parameter sets to be sent across, and the server then
loops through them, executing each one in turn against
the prepared SQL statement.
This greatly reduces wire traffic, with equally large
gains in performance.
SFID: 1164037#
Submitted By: rdebay

JDBC has a feature called batched statements. To put it simply, an SQL statement is prepared, sets of parameters are added to the batch, and then the batch is executed.

Currently, Jaybird takes the list of parameter sets, and executes each one with isc_dsql_exec2. Other databases have APIs that allow the entire list of parameter sets to be sent across, and the server then loops through them, executing each one in turn against the prepared SQL statement.

This greatly reduces wire traffic, with equally large gains in performance.
Dmitry Yemanov made changes - 16/Oct/14 07:12 PM
Link This issue is duplicated by CORE-3821 [ CORE-3821 ]
TIP Group, S.A. (Olivier Mascia) added a comment - 10/Nov/14 09:33 PM
This imply a batch of results too. What if the statement is a SELECT, the results sets are batched too? What about failures (one of the exec instances could trigger errors - depending on the parameter values). How would it be expected to behave?

Dmitry Yemanov made changes - 09/Mar/16 11:12 AM
Assignee Vlad Khorsun [ hvlad ] Alexander Peshkov [ alexpeshkoff ]
Fix Version/s 4.0 Alpha 1 [ 10731 ]
Dmitry Yemanov made changes - 01/Sep/16 08:20 AM
Fix Version/s 4.0 Beta 1 [ 10750 ]
Fix Version/s 4.0 Alpha 1 [ 10731 ]
Thomas Kragh added a comment - 24/Jun/17 09:59 PM
Hey
I can see in the planning bord and in the git repository that hvis feature i under development at the moment. Out of curiosity, will this new batch feature make it possible to execute multiple select statements in a single roundtrip to the database?

for example
select * from houses where owner = @ownerid
;
select * from cars where model = @modelnr


Alexander Peshkov added a comment - 25/Jun/17 09:12 AM
In v4 - definitely not. Primary goal is to support JDBC requirements. May be an ability to execute select statement with parameters sending sets of different parameters' values in a batch will be added in v4 too, but what about execution of different select statements with different sets of output columns that requires changing a way we work with result sets and is out of v4 scope.

Alexander Peshkov added a comment - 23/Oct/17 02:17 PM
Implemented new Batch interface performing everything needed for JDBC compliance and additionally:
- detailed information about error happened when processing particular message in batch,
- ability to use BLOBs in batches (efficient in a case of relatively small blobs).

Alexander Peshkov made changes - 23/Oct/17 02:17 PM
Status Open [ 1 ] Resolved [ 5 ]
Resolution Fixed [ 1 ]
Alexander Peshkov made changes - 25/Oct/18 10:46 AM
Link This issue relate to CORE-5951 [ CORE-5951 ]
Dmitry Yemanov made changes - 25/Oct/18 12:38 PM
Link This issue is replaced by CORE-5951 [ CORE-5951 ]
Dmitry Yemanov made changes - 25/Oct/18 12:38 PM
Fix Version/s 4.0 Beta 1 [ 10750 ]