Details
-
New Feature
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
1.0.0
Description
For compatibility with SQLAlchemy (close_with_result) values for lastrowid and rowcount should be retrieved immediately after execute/executemany, and stored in cursor->lastrowid and cursor->rowcount.
When using unbuffered result sets, rowcount should be updated per fetch.
Also the behaviour of rowcount and lastrowid should be changed:
rowcount:
In case of an error, or if statement wasn't executed rowcount should be -1 (see PEP-249)
- For DML statements the number of affected rows returned in OK packet by server:
- > 0 for DML statements which modify or insert, e.g. ALTER TABLE or CREATE TABLE .. SELECT FROM
- otherwise 0
- For DQL statement
- if field_count > 0: number of rows returned
- otherwise affected rows returned in OK packet by server.
lastrowid:
- if server returns no value (0) for last_insert_id, lastrowid should be None.
- if last_insert_id is > 0, return it's value
Attachments
Issue Links
- blocks
-
CONPY-77 Add mariadb dialect to sqlalchemy
- Closed