Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactoring (*textRows).readRow in a more clear way #1230

Merged
merged 1 commit into from Jul 12, 2021

Conversation

zihengCat
Copy link
Contributor

@zihengCat zihengCat commented Jul 11, 2021

Description

  • Refactoring (*textRows).readRow in a more clear way.
  • Log the error when parseDateTime failed.

Checklist

  • Code compiles correctly
  • Created tests which fail without the change (if possible)
  • All tests passing
  • Extended the README / documentation, if necessary
  • Added myself / the copyright holder to the AUTHORS file

@zihengCat
Copy link
Contributor Author

zihengCat commented Jul 11, 2021

@shogo82148 @methane
Hi, take a review pls. :)

Copy link
Contributor

@shogo82148 shogo82148 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fixed the test on master branch #1228
Please merge these changes into this pull request.

packets.go Outdated
fieldTypeDate,
fieldTypeNewDate:
if dest[i], err = parseDateTime(dest[i].([]byte), mc.cfg.Loc); err != nil {
errLog.Print(err)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this case, current implementation returns the error.
So, should it be the following?

Suggested change
errLog.Print(err)
return err

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, sorry, I made a mistake here, quick fixed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fine! Unit tests in MySQL 8.0 passed.

Fix error returns

use utf8mb4 instead of utf8 in TestCharset (go-sql-driver#1228)

From MySQL 8.0.24, `SELECT @@character_set_connection` reports utf8mb3 or utf8mb4 instead of utf8.
Because utf8 is currently an alias for utf8mb3, however at some point utf8 is expected to become a reference to utf8mb4.

> ref. https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-24.html#mysqld-8-0-24-bug
> Important Note: When a utf8mb3 collation was specified in a CREATE TABLE statement, SHOW CREATE TABLE, DEFAULT CHARSET,
> the values of system variables containing character set names,
> and the binary log all subsequently displayed the character set as utf8 which is becoming a synonym for utf8mb4.
> Now in such cases, utf8mb3 is shown instead, and CREATE TABLE raises the warning 'collation_name' is a collation of the deprecated character set UTF8MB3.
> Please consider using UTF8MB4 with an appropriate collation instead. (Bug #27225287, Bug #32085357, Bug #32122844)
>
> References: See also: Bug #30624990.

The document says that we should use utf8mb4 instead of utf8, so we should follow it.
@zihengCat
Copy link
Contributor Author

@shogo82148
Please take another look. :)

Copy link
Contributor

@shogo82148 shogo82148 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@shogo82148 shogo82148 merged commit 75d09ac into go-sql-driver:master Jul 12, 2021
@zihengCat zihengCat deleted the improve-read-row branch July 12, 2021 14:26
andygrunwald added a commit to andygrunwald/mysql that referenced this pull request Jul 31, 2021
* master: (93 commits)
  return unsigned in database type name when necessary (go-sql-driver#1238)
  add an invalid DSN test case (go-sql-driver#1235)
  refactoring (*textRows).readRow in a more clear way (go-sql-driver#1230)
  use utf8mb4 instead of utf8 in TestCharset (go-sql-driver#1228)
  improve readability follows go-staticcheck (go-sql-driver#1227)
  support Is comparison on MySQLError (go-sql-driver#1210)
  Wording correction in README (go-sql-driver#1218)
  noCopy implements sync.Locker (go-sql-driver#1216)
  Fix readme: MaxIdle is same or less than MaxOpen (go-sql-driver#1215)
  Drop support of Go 1.12 (go-sql-driver#1211)
  Release v1.6.0 (go-sql-driver#1197)
  add Go 1.16 to the build matrix (go-sql-driver#1198)
  Implement driver.Validator interface (go-sql-driver#1174)
  handling decoding pem error (go-sql-driver#1192)
  stop rounding times (go-sql-driver#1172)
  improve GitHub Actions workflows (go-sql-driver#1190)
  Move tests from Travis to Actions (go-sql-driver#1183)
  Fix go vet error (go-sql-driver#1173)
  README: Make usage code more friendly (go-sql-driver#1170)
  Fix a broken link to cleartext client side plugin (go-sql-driver#1165)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants