Skip to content

Get error timestamp data when scan to struct after db ddl #563

Description

@lintanghui

Issue description

what did I do:
1.exec sql query and get err timestamp data when scan to struct after db ddl.
sql:
SELECT state,round,remark,ctime FROM archive_track WHERE aid=? ORDER BY id DESC
struct:

type Archive struct {
	Timestamp time.Time `json:"timestamp"`
	State int `json:"state"`
	Round int `json:"round"`
	Remark string `json:"remark,omitempty"`
}

go code:

a:=&Archive{}
 rows.Scan(&a.State, &a.Round, &a.Remark, &a.Timestamp)

mysql table info:

CREATE TABLE `archive_track` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT ,
  `aid` int(11) NOT NULL DEFAULT '0' ,
  `state` tinyint(11) DEFAULT NULL,
  `round` tinyint(4) NOT NULL DEFAULT '0' ,
  `remark` text COMMENT '其他信息',
  `ctime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ,
  `mtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
  `attribute` mediumint(8) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `ix_aid` (`aid`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

table data:

id aid state round remark ctime mtime attribute
1 1 1 1 "" 2017-03-27 17:07:10 2017-03-27 17:07:10 0

I can get correct data first:
&a{aid:1,state:1,round:1 ,ctime:1490605630}
but get err data after db ttl(modify state(tinyint) to state(int) ):
&a{aid:0,state:0,round:0,ctime:-62135596800}.

db ttl:

alter table archive_track modify state int

I can't get correct data anymore until I restart the program.
after I restart ,I can get correct data and err data don't appear anymore ,but why.It make me confuse.

Configuration

*Driver version (or git SHA):QD6LqgLz2JMxXqns8TaxtK9AuHs=

*Go version:go1.7.4

Server version: E.g. MySQL 5.6,

*Server OS:Linux version 3.16.0-4-amd64

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions