[MCOL-73] Wide table formatted display causes frontend to return error Created: 2016-05-23  Updated: 2017-06-05  Resolved: 2017-06-05

Status: Closed
Project: MariaDB ColumnStore
Component/s: MariaDB Server
Affects Version/s: None
Fix Version/s: Icebox

Type: Bug Priority: Minor
Reporter: Dipti Joshi (Inactive) Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: relnote

Issue Links:
Duplicate
is duplicated by MCOL-713 Some functions return "The maximum ro... Closed

 Description   

During regression queries/misc/bug3281.sql shows following behavior

SQL and the error reported

select 
format(c1, 2) c1,
format(c2, 2) c2,
format(c3, 2) c3,
format(c4, 2) c4,
format(c5, 2) c5,
format(c6, 2) c6,
format(c7, 2) c7,
format(c8, 2) c8,
format(c1, 2) a,
format(c2, 2) b,
format(c3, 2) c,
format(c4, 2) d,
format(c5, 2) e,
format(c6, 2) f,
format(c7, 2) g,
format(c8, 2) h
into outfile '/tmp/tmp.tbl'
from wide;
 
ERROR 1118 (42000) at line 2: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

ERROR 1118 - is InnoDB or MyISAM error - It looks like when Select format(c1,2),.... - is creating a temporary table that is either Aria or InnoDB or MyISAM, instead of vtable(MariaDB ColumnStore own temporary table area) and hence giving this error from there

As can be seen below if there is not format - but simply all the columns selected then the query goes through

select * from wide limit 1;
+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| idx  | c1   | c2   | c3   | c4   | c5   | c6   | c7   | c8   | c9   | c10  | c11  | c12  | c13  | c14  | c15  | c16  | c17  | c18  | c19  | c20  | c21  | c22  | c23  | c24  | c25  | c26  | c27  | c28  | c29  | c30  | c31  | c32  | c33  | c34  | c35  | c36  | c37  | c38  | c39  | c40  | c41  | c42  | c43  | c44  | c45  | c46  | c47  | c48  | c49  | c50  |
+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
|    1 | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    | 1    |
+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
1 row in set (0.69 sec)

Also if there is formatting but number of columns reduced then also query goes through

select format(c1, 2) c1, format(c2, 2) c2, format(c3, 2) c3, format(c4, 2) c4, format(c5, 2) c5 from wide limit 1;
+------+------+------+------+------+               
| c1   | c2   | c3   | c4   | c5   |
+------+------+------+------+------+
| 1.00 | 1.00 | 1.00 | 1.00 | 1.00 |
+------+------+------+------+------+
1 row in set, 1 warning (1.33 sec)

This implies that when the query result set are passed to MariaDB front end from MariaDB ColumnStore engine, there seems to be intermediate temporary table in InnoDB/Aria/MyISAM - which cannot handle the wide table and gives the error.

David.Hall Please see the above analysis, let us know if "select format(c1,..) format(c2....)...." is causing intermediate temporary table on MariaDB Server frontend side to be created leading to this error.

If this is true - this particular error is of lower priority right now - as it is on the display of the formatted result, rather then returning of the result and MariaDB ColumnStore's ability to store wide tables.



 Comments   
Comment by David Hall (Inactive) [ 2016-09-30 ]

When vtable is on, which is most of the time, all select statements create an Aria temp table. That's part of the magic. We could try using MyISAM instead, as it will do just as well for this purpose. Don't know if it will help.

Comment by David Thompson (Inactive) [ 2017-06-05 ]

Will track fix as part of MCOL-713

Generated at Thu Feb 08 02:18:18 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.