[MCOL-713] Some functions return "The maximum row size" error when TEXT/LONGTEXT is used in a table Created: 2017-05-10  Updated: 2020-05-04  Resolved: 2019-07-10

Status: Closed
Project: MariaDB ColumnStore
Component/s: ExeMgr
Affects Version/s: 1.1.0
Fix Version/s: Icebox

Type: Bug Priority: Major
Reporter: Daniel Lee (Inactive) Assignee: Andrew Hutchings (Inactive)
Resolution: Fixed Votes: 1
Labels: relnote

Issue Links:
Blocks
blocks MCOL-599 JSON Functions Closed
Duplicate
duplicates MCOL-73 Wide table formatted display causes f... Closed
is duplicated by MCOL-725 ERROR 1118 (42000): Row size too larg... Closed
Epic Link: MariaDB ColumnStore Generic Engine phase 1
Sprint: 2017-15, 2017-16, 2017-17

 Description   

Build tested: Github source 1.1.0

[root@localhost mariadb-columnstore-server]# git show
commit 349cae544b6bc71910267a3b3b0fa3fb57b0a587
Merge: bd13090 2ecb85c
Author: benthompson15 <ben.thompson@mariadb.com>
Date: Thu May 4 16:06:16 2017 -0500

Merge pull request #50 from mariadb-corporation/10.2-fixes

10.2 fixes

[root@localhost mariadb-columnstore-server]# cd mariadb-columnstore-engine/
[root@localhost mariadb-columnstore-engine]# git show
commit 03c62656b3750fd5f9759897f048bda8423c4aae
Author: david hill <david.hill@mariadb.com>
Date: Wed May 10 10:35:56 2017 -0500

update post-install

removed test lines of echo adn early exit

diff --git a/oam/install_scripts/post-install b/oam/install_scripts/post-install
index c09e7d5..69dfb58 100755
— a/oam/install_scripts/post-install
+++ b/oam/install_scripts/post-install
@@ -36,10 +36,6 @@ for arg in "$@"; do
echo "post-install: ignoring unknown argument: $arg" 1>&2
fi
done
-
-echo $installdir
-echo $prefix
-exit 0

if [ $user != "root" ]; then
export COLUMNSTORE_INSTALL_DIR=$installdir

This issue makes there functions unusable on a table with TEXT/LONGTEXT column(s).

MariaDB [mytest]> desc t1;
---------------------------------+

Field Type Null Key Default Extra

---------------------------------+

cidx int(11) YES   NULL  
ctext text YES   NULL  

---------------------------------+
2 rows in set (0.01 sec)

MariaDB [mytest]> select upper(ctext) from t1;
ERROR 1118 (42000): 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

The following functions are affected by this error:

ELT
INSERT
LCASE
LOWER
LTRIM
REPEAT
REPLACE
REVERSE
RTRIM
SUBSTRING
SUBSTR
TRIM
UCASE
UPPER



 Comments   
Comment by Andrew Hutchings (Inactive) [ 2017-05-11 ]

These errors happen in InnoDB too. It is triggered before the query hits the engine:

MariaDB [test]> create table t4 (a int, b text);
Query OK, 0 rows affected (0.03 sec)
 
MariaDB [test]> insert into t4 values (1, repeat('MariaDB ', 7000));
Query OK, 1 row affected (0.02 sec)
 
MariaDB [test]> select upper(b) from t4;
ERROR 1118 (42000): 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

I'm not sure why yet as it doesn't happen in vanilla 10.2

Comment by Andrew Hutchings (Inactive) [ 2017-05-11 ]

Cause is we set CONVERT_IF_BIGGER_TO_BLOB in the server tree to 65535 (which for UTF-8 consoles means that strings < 196605 get converted to VARCHAR and we blow the maximum row length) instead of the default so that ORDER BY works. We basically can't fix this without breaking ORDER BY until MCOL-643 is fixed.

Comment by Andrew Hutchings (Inactive) [ 2019-07-10 ]

Will go away 1.4

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