Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
3.0.6
-
None
-
Server: FreeBSD 10.3 , MariaDB 10.3.8 Client: Windows 10, ODBC 3.0.6
Description
Might still be a problem with the parsing of the batch.
All examples are executed as a single batch:
Example one:
select 1; |
select 1; |
This does deliver the right results.
Example two:
SELECT * from DB.mytable;
|
SELECT 1; |
This does deliver all the rows from mytable and the 1 at the end. Works.
Example three:
SELECT 1; |
SELECT * FROM DB.mytable;
|
This does deliver the first result "1" and after that a "AccessViolationException" gets returned.
Example four:
SELECT * FROM DB.mytable;
|
SELECT * FROM DB.mytable;
|
The first SELECT delivers the right results, but the 2nd SELECT returns only the correct amount of rows but they are empty and trigger a NumberFormatException. Fields with INT datatype do work somehow.
A similar result with data from the information_schema is returned by these queries:
CREATE TEMPORARY TABLE _temp_statistics AS (SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = "DB"); |
SELECT * FROM _temp_statistics;
|
or
DROP TABLE IF EXISTS _temp_statistics;
|
SELECT * FROM INFORMATION_SCHEMA.STATISTICS;
|
These statements do work with the mysql ODBC driver or executed on their own.
Attachments
Issue Links
Activity
Field | Original Value | New Value |
---|---|---|
Description |
Might still be a problem with the parsing of the Batch.
All Examples are executed as a single Batch: Example one: {{select 1; select 1;}} This does deliver the right results. Example two: {{SELECT * from DB.mytable; SELECT 1;}} This does deliver all the rows from mytable and the 1 at the end. Works. Example three: {{SELECT 1; SELECT * FROM DB.mytable;}} This does deliver the first result "1" and after that a "AccessViolationException" gets returned. Example four: {{SELECT * FROM DB.mytable; SELECT * FROM DB.mytable; }} The first SELECT delivers the right results, but the 2nd SELECT returns only the correct amount of rows but they are empty and trigger a NumberFormatException. A similar result with data from the information_schema is returned by these queries: {{CREATE TEMPORARY TABLE _temp_statistics AS (SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = "´DB"); SELECT * FROM _temp_statistics;}} These statements do work with the mysql ODBC driver or executed on their own. |
Might still be a problem with the parsing of the Batch.
All Examples are executed as a single Batch: Example one: {code:java} select 1; select 1; {code} This does deliver the right results. Example two: {code:java} SELECT * from DB.mytable; SELECT 1; {code} This does deliver all the rows from mytable and the 1 at the end. Works. Example three: {code:java} SELECT 1; SELECT * FROM DB.mytable; {code} This does deliver the first result "1" and after that a "AccessViolationException" gets returned. Example four: {code:java} SELECT * FROM DB.mytable; SELECT * FROM DB.mytable; {code} The first SELECT delivers the right results, but the 2nd SELECT returns only the correct amount of rows but they are empty and trigger a NumberFormatException. A similar result with data from the information_schema is returned by these queries: {code:java} CREATE TEMPORARY TABLE _temp_statistics AS (SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = "DB"); SELECT * FROM _temp_statistics; {code} These statements do work with the mysql ODBC driver or executed on their own. |
Description |
Might still be a problem with the parsing of the Batch.
All Examples are executed as a single Batch: Example one: {code:java} select 1; select 1; {code} This does deliver the right results. Example two: {code:java} SELECT * from DB.mytable; SELECT 1; {code} This does deliver all the rows from mytable and the 1 at the end. Works. Example three: {code:java} SELECT 1; SELECT * FROM DB.mytable; {code} This does deliver the first result "1" and after that a "AccessViolationException" gets returned. Example four: {code:java} SELECT * FROM DB.mytable; SELECT * FROM DB.mytable; {code} The first SELECT delivers the right results, but the 2nd SELECT returns only the correct amount of rows but they are empty and trigger a NumberFormatException. A similar result with data from the information_schema is returned by these queries: {code:java} CREATE TEMPORARY TABLE _temp_statistics AS (SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = "DB"); SELECT * FROM _temp_statistics; {code} These statements do work with the mysql ODBC driver or executed on their own. |
Might still be a problem with the parsing of the batch.
All examples are executed as a single batch: Example one: {code:java} select 1; select 1; {code} This does deliver the right results. Example two: {code:java} SELECT * from DB.mytable; SELECT 1; {code} This does deliver all the rows from mytable and the 1 at the end. Works. Example three: {code:java} SELECT 1; SELECT * FROM DB.mytable; {code} This does deliver the first result "1" and after that a "AccessViolationException" gets returned. Example four: {code:java} SELECT * FROM DB.mytable; SELECT * FROM DB.mytable; {code} The first SELECT delivers the right results, but the 2nd SELECT returns only the correct amount of rows but they are empty and trigger a NumberFormatException. A similar result with data from the information_schema is returned by these queries: {code:java} CREATE TEMPORARY TABLE _temp_statistics AS (SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = "DB"); SELECT * FROM _temp_statistics; {code} These statements do work with the mysql ODBC driver or executed on their own. |
Description |
Might still be a problem with the parsing of the batch.
All examples are executed as a single batch: Example one: {code:java} select 1; select 1; {code} This does deliver the right results. Example two: {code:java} SELECT * from DB.mytable; SELECT 1; {code} This does deliver all the rows from mytable and the 1 at the end. Works. Example three: {code:java} SELECT 1; SELECT * FROM DB.mytable; {code} This does deliver the first result "1" and after that a "AccessViolationException" gets returned. Example four: {code:java} SELECT * FROM DB.mytable; SELECT * FROM DB.mytable; {code} The first SELECT delivers the right results, but the 2nd SELECT returns only the correct amount of rows but they are empty and trigger a NumberFormatException. A similar result with data from the information_schema is returned by these queries: {code:java} CREATE TEMPORARY TABLE _temp_statistics AS (SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = "DB"); SELECT * FROM _temp_statistics; {code} These statements do work with the mysql ODBC driver or executed on their own. |
Might still be a problem with the parsing of the batch.
All examples are executed as a single batch: Example one: {code:java} select 1; select 1; {code} This does deliver the right results. Example two: {code:java} SELECT * from DB.mytable; SELECT 1; {code} This does deliver all the rows from mytable and the 1 at the end. Works. Example three: {code:java} SELECT 1; SELECT * FROM DB.mytable; {code} This does deliver the first result "1" and after that a "AccessViolationException" gets returned. Example four: {code:java} SELECT * FROM DB.mytable; SELECT * FROM DB.mytable; {code} The first SELECT delivers the right results, but the 2nd SELECT returns only the correct amount of rows but they are empty and trigger a NumberFormatException. Fields with INT datatype do work somehow. A similar result with data from the information_schema is returned by these queries: {code:java} CREATE TEMPORARY TABLE _temp_statistics AS (SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = "DB"); SELECT * FROM _temp_statistics; {code} These statements do work with the mysql ODBC driver or executed on their own. |
Description |
Might still be a problem with the parsing of the batch.
All examples are executed as a single batch: Example one: {code:java} select 1; select 1; {code} This does deliver the right results. Example two: {code:java} SELECT * from DB.mytable; SELECT 1; {code} This does deliver all the rows from mytable and the 1 at the end. Works. Example three: {code:java} SELECT 1; SELECT * FROM DB.mytable; {code} This does deliver the first result "1" and after that a "AccessViolationException" gets returned. Example four: {code:java} SELECT * FROM DB.mytable; SELECT * FROM DB.mytable; {code} The first SELECT delivers the right results, but the 2nd SELECT returns only the correct amount of rows but they are empty and trigger a NumberFormatException. Fields with INT datatype do work somehow. A similar result with data from the information_schema is returned by these queries: {code:java} CREATE TEMPORARY TABLE _temp_statistics AS (SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = "DB"); SELECT * FROM _temp_statistics; {code} These statements do work with the mysql ODBC driver or executed on their own. |
Might still be a problem with the parsing of the batch.
All examples are executed as a single batch: Example one: {code:java} select 1; select 1; {code} This does deliver the right results. Example two: {code:java} SELECT * from DB.mytable; SELECT 1; {code} This does deliver all the rows from mytable and the 1 at the end. Works. Example three: {code:java} SELECT 1; SELECT * FROM DB.mytable; {code} This does deliver the first result "1" and after that a "AccessViolationException" gets returned. Example four: {code:java} SELECT * FROM DB.mytable; SELECT * FROM DB.mytable; {code} The first SELECT delivers the right results, but the 2nd SELECT returns only the correct amount of rows but they are empty and trigger a NumberFormatException. Fields with INT datatype do work somehow. A similar result with data from the information_schema is returned by these queries: {code:java} CREATE TEMPORARY TABLE _temp_statistics AS (SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = "DB"); SELECT * FROM _temp_statistics; {code} or {code:java} DROP TABLE IF EXISTS _temp_statistics; SELECT * FROM INFORMATION_SCHEMA.STATISTICS; {code} These statements do work with the mysql ODBC driver or executed on their own. |
Attachment | Test5.LOG [ 46017 ] | |
Attachment | Test6.LOG [ 46018 ] | |
Attachment | Test1.LOG [ 46019 ] | |
Attachment | Test2.LOG [ 46020 ] | |
Attachment | Test3.LOG [ 46021 ] |
Attachment | Test5.LOG [ 46017 ] |
Attachment | Test3.LOG [ 46021 ] |
Attachment | Test2.LOG [ 46020 ] |
Attachment | Test6.LOG [ 46018 ] |
Attachment | Test1.LOG [ 46019 ] |
Attachment | Traces.zip [ 46022 ] |
Fix Version/s | 3.0.7 [ 23145 ] | |
Fix Version/s | 2.0.19 [ 23200 ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
Resolution | Fixed [ 1 ] | |
Status | In Progress [ 3 ] | Closed [ 6 ] |
Workflow | MariaDB v3 [ 88792 ] | MariaDB v4 [ 135480 ] |
Well, I am pretty much sure this is not parsing issue in this case. Also, I believe we have tests covering multiple resultsets case. There must be something more to that. I'd appreciate, if you could provide ODBC traces for those failing examples.
I didn't quite understand what is the problem with last two queries - one from your previous bug report and from I_S table. They both have only 1 SELECT statement. And it does not work in both cases? Well, I will extend the testcase for the previous bug report, and see if there are problem to read select results.