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

LOAD DATA local INFILE导入的所有Boolean类型全部变成了false #1074

Closed
wangjingfei opened this Issue Aug 24, 2016 · 9 comments

Comments

Projects
None yet
2 participants
@wangjingfei

wangjingfei commented Aug 24, 2016

使用MyCAT导入的Boolean类型全变成了false,使用MySQL导入正常。

MyCAT版本:5.5.8-mycat-1.5.1-RELEASE-20160811220036

@ZzzCrazyPig

This comment has been minimized.

Show comment
Hide comment
@ZzzCrazyPig

ZzzCrazyPig Sep 1, 2016

Contributor

@wangjingfei 你指的boolean类型是哪个类型?还是你前一个issue里面的bit(1)?

Contributor

ZzzCrazyPig commented Sep 1, 2016

@wangjingfei 你指的boolean类型是哪个类型?还是你前一个issue里面的bit(1)?

@wangjingfei

This comment has been minimized.

Show comment
Hide comment
@wangjingfei

wangjingfei Sep 1, 2016

是bit(1),只不过这次是用LOAD DATA方式导入的。@ZzzCrazyPig

wangjingfei commented Sep 1, 2016

是bit(1),只不过这次是用LOAD DATA方式导入的。@ZzzCrazyPig

@ZzzCrazyPig

This comment has been minimized.

Show comment
Hide comment
@ZzzCrazyPig

ZzzCrazyPig Sep 1, 2016

Contributor

@wangjingfei load data的数据量是否很小就会出现这个问题? 我可以尝试debug一下

Contributor

ZzzCrazyPig commented Sep 1, 2016

@wangjingfei load data的数据量是否很小就会出现这个问题? 我可以尝试debug一下

@ZzzCrazyPig

This comment has been minimized.

Show comment
Hide comment
@ZzzCrazyPig

ZzzCrazyPig Sep 2, 2016

Contributor

@wangjingfei 你好,我这边以你之前的表为例子,先导出表数据

select id, hex(isDeleted)  into outfile 'e:/tab_web_user-data.txt'
fields terminated by ','
lines terminated by '\r\n'
from tab_web_user;

然后通过mycat执行load data导入数据,并没有发生你说的情况,导入语句为:

load data local infile 'e:/tab_web_user-data.txt'
into table tab_web_user
fields terminated by ','
lines terminated by '\r\n'
(id, isDeleted);

但是如果不以**hex(isDeleted)来导出boolean字段,而直接导出isDeleted字段**,查看数据文件本身该字段显示为不可见字符。使用mycat load data导入,确实全部为false(或者有可能是NULL)。

也就是说以hex([bit(1)_column_name])的方式导出boolean字段,可以绕过这个bug。

【温馨提示】

使用mysql命令行工具执行:

select id,isDeleted from tab_web_user;

isDeleted字段同样显示为不可见字符。得使用hex(isDeleted)才能返回正常的0和1

Contributor

ZzzCrazyPig commented Sep 2, 2016

@wangjingfei 你好,我这边以你之前的表为例子,先导出表数据

select id, hex(isDeleted)  into outfile 'e:/tab_web_user-data.txt'
fields terminated by ','
lines terminated by '\r\n'
from tab_web_user;

然后通过mycat执行load data导入数据,并没有发生你说的情况,导入语句为:

load data local infile 'e:/tab_web_user-data.txt'
into table tab_web_user
fields terminated by ','
lines terminated by '\r\n'
(id, isDeleted);

但是如果不以**hex(isDeleted)来导出boolean字段,而直接导出isDeleted字段**,查看数据文件本身该字段显示为不可见字符。使用mycat load data导入,确实全部为false(或者有可能是NULL)。

也就是说以hex([bit(1)_column_name])的方式导出boolean字段,可以绕过这个bug。

【温馨提示】

使用mysql命令行工具执行:

select id,isDeleted from tab_web_user;

isDeleted字段同样显示为不可见字符。得使用hex(isDeleted)才能返回正常的0和1

@wangjingfei

This comment has been minimized.

Show comment
Hide comment
@wangjingfei

wangjingfei Sep 2, 2016

hex应该可以解决问题,但是这样的话我就需要手动处理所有的boolean类型了(目前我有300+表,有的表里边有十几二十列boolean数据),你们计划什么时候修复这个bug呢?谢谢了,看好你们!

wangjingfei commented Sep 2, 2016

hex应该可以解决问题,但是这样的话我就需要手动处理所有的boolean类型了(目前我有300+表,有的表里边有十几二十列boolean数据),你们计划什么时候修复这个bug呢?谢谢了,看好你们!

@ZzzCrazyPig

This comment has been minimized.

Show comment
Hide comment
@ZzzCrazyPig

ZzzCrazyPig Sep 5, 2016

Contributor

@wangjingfei 你load data的数据是以前导出的?不能重新用hex导出一次?

Contributor

ZzzCrazyPig commented Sep 5, 2016

@wangjingfei 你load data的数据是以前导出的?不能重新用hex导出一次?

ZzzCrazyPig added a commit to ZzzCrazyPig/Mycat-Server that referenced this issue Sep 5, 2016

@wangjingfei

This comment has been minimized.

Show comment
Hide comment
@wangjingfei

wangjingfei Sep 5, 2016

Sorry,可以的。因为之前使用了mysqldump导出,以为没有对应参数。看文档应该可以使用mysqldump的--hex-blob参数导出。

目前没有问题了,非常感谢!

wangjingfei commented Sep 5, 2016

Sorry,可以的。因为之前使用了mysqldump导出,以为没有对应参数。看文档应该可以使用mysqldump的--hex-blob参数导出。

目前没有问题了,非常感谢!

@ZzzCrazyPig

This comment has been minimized.

Show comment
Hide comment
@ZzzCrazyPig

ZzzCrazyPig Sep 5, 2016

Contributor

@wangjingfei 恩,建议还是以可见形式导出,这个bug我fix代码并pr到1.6。1.5版本就不改动了。用hex导出能解决问题就OK!

Contributor

ZzzCrazyPig commented Sep 5, 2016

@wangjingfei 恩,建议还是以可见形式导出,这个bug我fix代码并pr到1.6。1.5版本就不改动了。用hex导出能解决问题就OK!

@wangjingfei

This comment has been minimized.

Show comment
Hide comment
@wangjingfei

wangjingfei Sep 5, 2016

好的,非常感谢!

wangjingfei commented Sep 5, 2016

好的,非常感谢!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment