CurtTilmes / perl6-dbmysql

DB::MySQL
2 stars 3 forks source link

Invalid DateTime string ''; use an ISO 8601 timestamp #2

Closed bbkr closed 5 years ago

bbkr commented 5 years ago

To reproduce:

CREATE TABLE foo ( bar timestamp NULL default NULL ) engine=InnoDB;
INSERT INTO foo (bar) VALUES (NULL);
$mysql.execute("SELECT bar FROM foo").value.say;

Causes crash with following message:

Invalid DateTime string ''; use an ISO 8601 timestamp (yyyy-mm-ddThh:mm:ssZ or yyyy-mm-ddThh:mm:ss+01:00) instead
  in sub mysql-value-DateTime at /home/user/perl/share/perl6/site/sources/EF6CD0A73312FC1C63E1530F4C0FE41D1F876318 (DB::MySQL::Converter) line 64
  in method value at /home/user/perl/share/perl6/site/sources/EF6CD0A73312FC1C63E1530F4C0FE41D1F876318 (DB::MySQL::Converter) line 224
  in code  at /home/user/perl/share/perl6/site/sources/B774B2C38C7D9BF29F2ED131653E72D08610F72D (DB::MySQL::Result) line 33
  in method row at /home/user/perl/share/perl6/site/sources/B774B2C38C7D9BF29F2ED131653E72D08610F72D (DB::MySQL::Result) line 31
  in method value at /home/user/perl/share/perl6/site/sources/F40C2ECE230750883C2A427A4B0CFB76091B6AFC (DB::Result) line 56
  in block <unit> at -e line 1

Looks like NULLable timestamp is not handled properly.

CurtTilmes commented 5 years ago

Thanks for testing!

Fixed typed NULL handling with commit 288dc45eee410bda5a6bc0c41b062a73212c565d