GithubHelp home page GithubHelp logo

Comments (11)

Grinnz avatar Grinnz commented on May 20, 2024 2

FYI: I have opened a bug against MySQL here, but I still have no way to reproduce or test it myself. https://bugs.mysql.com/bug.php?id=95698

from dbd-mariadb.

pali avatar pali commented on May 20, 2024 1

I'm closing this issue as this reported problem is on MySQL server, not in DBD::MariaDB driver.

from dbd-mariadb.

pali avatar pali commented on May 20, 2024
use strict;
use warnings;
use feature 'say';
use DBI;
binmode *STDOUT, ':utf8';

my $dbh = DBI->connect("DBI:MariaDB:test");

$dbh->do(q(CREATE TEMPORARY TABLE unicode_json_test(my_json JSON)));
$dbh->do(q(INSERT INTO unicode_json_test SET my_json = JSON_OBJECT('drink', CONVERT(UNHEX('537AC5916CC5916CC3A9') USING utf8mb4))));

say "JSON output: " . $dbh->selectrow_array(q(SELECT my_json FROM unicode_json_test));
say "Server version: " . $dbh->selectrow_array(q(SELECT VERSION()));
say "Driver version: " . $dbh->{Driver}->{Version};
say "DBI version: $DBI::VERSION";

Output is:

JSON output: {"drink": "Szőlőlé"}
Server version: 10.3.10-MariaDB
Driver version: 1.21
DBI version: 1.636

Seems that DBD::MariaDB 1.21 with MariaDB 10.3.10 is working fine. Or is there any problem?

CC @ViktorNacht @Tekki

from dbd-mariadb.

pali avatar pali commented on May 20, 2024

And here is another test case with decoding RAW jsons:

use strict;
use warnings;
use DBI;
use Cpanel::JSON::XS;
use feature 'say';
use utf8;
binmode *STDOUT, ':utf8';

my $cjson = Cpanel::JSON::XS->new->allow_nonref;

my $dbh = DBI->connect("DBI:MariaDB:test");

$dbh->do(q(CREATE TEMPORARY TABLE unicode_json_test(my_json JSON)));
$dbh->do(q(INSERT INTO unicode_json_test SET my_json = JSON_OBJECT('drink', 'Szőlőlé')));

say "RAW JSON output: " . $dbh->selectrow_array(q(SELECT my_json FROM unicode_json_test));
say "Decoded drink JSON output: " . $cjson->decode($dbh->selectrow_array(q(SELECT my_json FROM unicode_json_test)))->{drink};
say "RAW JSON field output: " . $dbh->selectrow_array(q(SELECT json_extract(my_json, "$.drink") FROM unicode_json_test));
say "Decoded JSON field output: " . $cjson->decode($dbh->selectrow_array(q(SELECT json_extract(my_json, "$.drink") FROM unicode_json_test)));
say "Server version: " . $dbh->selectrow_array(q(SELECT VERSION()));
say "Driver version: " . $dbh->{Driver}->{Version};
say "DBI version: $DBI::VERSION";

Output is:

RAW JSON output: {"drink": "Szőlőlé"}
Decoded drink JSON output: Szőlőlé
RAW JSON field output: "Szőlőlé"
Decoded JSON field output: Szőlőlé
Server version: 10.3.10-MariaDB
Driver version: 1.21
DBI version: 1.636

So output seems to be correct too.

If there is something wrong let me know. Otherwise I will close this issue as invalid.

from dbd-mariadb.

Grinnz avatar Grinnz commented on May 20, 2024

The test cases were done on MySQL, so perhaps it is a difference between MySQL and MariaDB.

from dbd-mariadb.

pali avatar pali commented on May 20, 2024

Ok, so it depends on a server version? Can you (or anybody else) specify the version which doesn't work, together with the output of the above test cases? Without it, it is impossible to debug this problem (if there really is any).

from dbd-mariadb.

Grinnz avatar Grinnz commented on May 20, 2024

@ViktorNacht specified his test cases were run in MySQL 5.7.22 and 8.0.13

from dbd-mariadb.

pali avatar pali commented on May 20, 2024

See jhthorsen/mojo-mysql#57 (comment) and jhthorsen/mojo-mysql#57 (comment). This is bug in MySQL server. So please report it to the MySQL server bug tracker.

from dbd-mariadb.

pali avatar pali commented on May 20, 2024

@Grinnz: Do you have any response about that reported bug in MySQL bugtracker?

from dbd-mariadb.

Tekki avatar Tekki commented on May 20, 2024

I see no sign of life on the side of MySQL since July 10.

from dbd-mariadb.

Grinnz avatar Grinnz commented on May 20, 2024

There's been no response other than confirming the bug so far.

from dbd-mariadb.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.