From efd4a5d25be4e5ad96e11cbfe959178cd594dab0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Josef=20=C5=A0pa=C4=8Dek?= Date: Tue, 15 Apr 2025 14:14:38 +0200 Subject: [PATCH] Add support for JSON column in column_info() Field storage requirement for JSON column is approximately the same as for a LONGBLOB or LONGTEXT column. It's defined for MySQL database in https://dev.mysql.com/doc/refman/8.4/en/storage-requirements.html#data-types-storage-reqs-json --- lib/DBD/MariaDB.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/DBD/MariaDB.pm b/lib/DBD/MariaDB.pm index 515c8f17..0aa9c129 100644 --- a/lib/DBD/MariaDB.pm +++ b/lib/DBD/MariaDB.pm @@ -399,7 +399,7 @@ sub column_info { my @type_attr= split / /, $attr||''; $info->{DATA_TYPE}= SQL_VARCHAR(); - if ($basetype =~ /^(char|varchar|\w*text|\w*blob)/) + if ($basetype =~ /^(char|varchar|\w*text|\w*blob|json)/) { $info->{DATA_TYPE}= SQL_CHAR() if $basetype eq 'char'; if ($type_params[0]) @@ -411,7 +411,7 @@ sub column_info { $info->{COLUMN_SIZE} = 65535; $info->{COLUMN_SIZE} = 255 if $basetype =~ /^tiny/; $info->{COLUMN_SIZE} = 16777215 if $basetype =~ /^medium/; - $info->{COLUMN_SIZE} = 4294967295 if $basetype =~ /^long/; + $info->{COLUMN_SIZE} = 4294967295 if $basetype =~ /^(long|json)/; } } elsif ($basetype =~ /^(binary|varbinary)/)