| Bug #108027 | The number of attributes is larger than the number of attribute values provided | ||
|---|---|---|---|
| Submitted: | 29 Jul 2022 8:43 | Modified: | 27 Oct 2022 11:23 |
| Reporter: | Dennis Lim | Email Updates: | |
| Status: | No Feedback | Impact on me: | |
| Category: | Connector / ODBC | Severity: | S3 (Non-critical) |
| Version: | 8.0.30 | OS: | Windows (10 21H1) |
| Assigned to: | Assigned Account | CPU Architecture: | x86 (Intel i7 8th Gen) |
| Tags: | attributes is larger than the number of attribute values | ||
[29 Jul 2022 8:43]
Dennis Lim
[29 Jul 2022 12:15]
MySQL Verification Team
Hi Mr. Lim, Thank you for your bug report. You have filed your report as belonging to the MySQL server, while it is evident that it belongs to our ODBC driver. In order to proceed you should send us your entire test case, including a set of SQL statements that create and populate tables in question , plus your ODBC code ......
[29 Jul 2022 12:26]
Dennis Lim
Before reading below, my code works with MySQL ODBC 8.0.30 and MySQL Server 5.7.37 perfectly... when I run it with MySQL ODBC 8.0.30 and MySQL Server 8.0.30.. that is where the errors appear...
My guess is that it is not the ODBC version that is in question.. but the Server version... (I maybe wrong though if I am given a better explanation)..
******************
This I believe is the offending code:
select count(*) as totrecs from pihdr a left join supplier b on
a.supplierid=b.id left join ewtax c on a.ewtaxid=c.id left join jthdr d
on a.jthdrid=d.id
It does not show in the ODBC trace I have pasted below. I also tried
substituting it with:
select SQL_CALC_FOUND_ROWS * from pihdr a left join supplier b on
a.supplierid=b.id left join ewtax c on a.ewtaxid=c.id left join jthdr d
on a.jthdrid=d.id
select FOUND_ROWS() as totrecs
************ part of the ODBC Trace Log **************
vfp9.exe" -cMET 26ac-1e04 EXIT SQLExecDirect with return code -1
(SQL_ERROR)
HSTMT 0x02A03B00
UCHAR * 0x0091AED0 [ -3] "\ 0"
SDWORD -3
DIAG [01000] [MySQL][ODBC 8.0(w) Driver][mysqld-8.0.30]The number of
attributes is larger than the number of attribute values provided (500)
vfp9.exe" -cMET 26ac-1e04 ENTER SQLPrepare
HSTMT 0x02A03B00
UCHAR * 0x034C12A8 [ -3] "select a.*, b.code as
supcode, b.descriptor as supname, c.code as ewtaxcode, c.descriptor as
ewtaxname, d.code as jtcode, d.descriptor as jtname from pihdr a left
join supplier b on a.supplierid=b.id left join ewtax c on a.ewtaxid=c.id
left join jthdr d on a.jthdrid=d.id\ 0"
SDWORD -3
vfp9.exe" -cMET 26ac-1e04 EXIT SQLPrepare with return code 0
(SQL_SUCCESS)
HSTMT 0x02A03B00
UCHAR * 0x034C12A8 [ -3] "select a.*, b.code as
supcode, b.descriptor as supname, c.code as ewtaxcode, c.descriptor as
ewtaxname, d.code as jtcode, d.descriptor as jtname from pihdr a left
join supplier b on a.supplierid=b.id left join ewtax c on a.ewtaxid=c.id
left join jthdr d on a.jthdrid=d.id\ 0"
SDWORD -3
vfp9.exe" -cMET 26ac-1e04 ENTER SQLNumResultCols
HSTMT 0x02A03B00
SWORD * 0x0019BAF0
vfp9.exe" -cMET 26ac-1e04 EXIT SQLNumResultCols with return code 0
(SQL_SUCCESS)
HSTMT 0x02A03B00
SWORD * 0x0019BAF0 (37)
vfp9.exe" -cMET 26ac-1e04 ENTER SQLNumResultCols
HSTMT 0x02A03B00
SWORD * 0x0019B5DC
vfp9.exe" -cMET 26ac-1e04 EXIT SQLNumResultCols with return code 0
(SQL_SUCCESS)
HSTMT 0x02A03B00
SWORD * 0x0019B5DC (37)
vfp9.exe" -cMET 26ac-1e04 ENTER SQLColAttributes
HSTMT 0x02A03B00
UWORD 1
UWORD 6 <SQL_COLUMN_DISPLAY_SIZE>
PTR 0x00000000
SWORD 0
SWORD * 0x00000000
SQLLEN * 0x0019B540
vfp9.exe" -cMET 26ac-1e04 EXIT SQLColAttributes with return code 0
(SQL_SUCCESS)
HSTMT 0x02A03B00
UWORD 1
UWORD 6 <SQL_COLUMN_DISPLAY_SIZE>
PTR 0x00000000
SWORD 0
SWORD * 0x00000000
SQLLEN * 0x0019B540 (8)
vfp9.exe" -cMET 26ac-1e04 ENTER SQLColAttributes
HSTMT 0x02A03B00
UWORD 1
UWORD 9 <SQL_COLUMN_MONEY>
PTR 0x00000000
SWORD 0
SWORD * 0x00000000
SQLLEN * 0x0019B540
How to repeat:
This I believe is the offending code.
select count(*) as totrecs from pihdr a left join supplier b on
a.supplierid=b.id left join ewtax c on a.ewtaxid=c.id left join jthdr d
on a.jthdrid=d.id
It does not show in the ODBC trace above. I also tried substituting it
with:
select SQL_CALC_FOUND_ROWS * from pihdr a left join supplier b on
a.supplierid=b.id left join ewtax c on a.ewtaxid=c.id left join jthdr d
on a.jthdrid=d.id
select FOUND_ROWS() as totrecs
Both do not show in the trace log, but shows:
The number of attributes is larger than the number of attribute values
provided
[27 Sep 2022 11:23]
MySQL Verification Team
Hello Dennis Lim, Thank you for the bug report. Could you please run the same query via MySQL command line and see if it fails even in MySQL Server 8.0.30? Regards, Ashwini Patil
[28 Oct 2022 1:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".
