Skip to content
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

Allow conversion from/to BLOBs and others types in the API functions (XSQLVAR or blr messages) [CORE3446] #3807

Closed
firebird-automations opened this issue Apr 19, 2011 · 5 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: @asfernandes

Replaces CORE3408

It's allowed to use XSQLVAR (or blr messages) between different types like number->varchar (or vice-versa) but it's not allowed to use different types when one of them is a blob.

DSQL moves data using MOVD_move, which do it like a client move. This was ok before, cause DSQL was not part of the engine and blobs wasn't very integrated with others types. Now it's very inconsistent.

The proposed change makes possible to move blobs to/from different types in the execute and fetch calls.

For input parameters, it is specially good as user can put the parameter as string without need to create and fill a blob from the client side.

For output (execute or fetch), it's good when the application knows it's data and may describe a blob as a string with its maximum length.

Commits: 0952229 d712724

====== Test Details ======

2.5.0:
Statement failed, SQLSTATE = 0A000
Dynamic SQL Error
-SQL error code = -303
-feature is not supported
-BLOB and array data types are not supported for move operation

2.5.1 and 2.5.2: client crash, "INET/inet_error: connect errno = 10061"

2.5.3 and later: works OK, but limit of varchar field is >>> 8187 <<< characters (not 8190)
otherwise get exception:
Statement failed, SQLSTATE = 54000
Dynamic SQL Error
-SQL error code = -204
-Implementation limit exceeded
-block size exceeds implementation restriction

Sent letter to dimitr with all mentioned above, 25-may-2015 13:53

@firebird-automations
Copy link
Collaborator Author

Modified by: @asfernandes

assignee: Adriano dos Santos Fernandes [ asfernandes ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @asfernandes

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

Fix Version: 2.5.1 [ 10333 ]

Fix Version: 3.0 Alpha 1 [ 10331 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

Link: This issue replaces CORE3408 [ CORE3408 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

status: Closed [ 6 ] => Closed [ 6 ]

QA Status: Done with caveats

Test Details: 2.5.0:
Statement failed, SQLSTATE = 0A000
Dynamic SQL Error
-SQL error code = -303
-feature is not supported
-BLOB and array data types are not supported for move operation

2.5.1 and 2.5.2: client crash, "INET/inet_error: connect errno = 10061"

2.5.3 and later: works OK, but limit of varchar field is >>> 8187 <<< characters (not 8190)
otherwise get exception:
Statement failed, SQLSTATE = 54000
Dynamic SQL Error
-SQL error code = -204
-Implementation limit exceeded
-block size exceeds implementation restriction

Sent letter to dimitr with all mentioned above, 25-may-2015 13:53

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment