我经常在Emacs的sql-mysql模式中遇到烦恼,我想知道是否有人有解决方案或更好的解决方法.无论何时我尝试将查询从sql-mode缓冲区发送到活动的SQL进程缓冲区,该查询都不能大于4k.如果它大于4k,则会出现某种中断 - 可能是换行符 - 这会导致mysql解释器在下一行引发错误.
sql-mysql由...实现sql.el,并使用该函数sql-send-region将查询区域(或整个缓冲区)发送到选定的SQL进程缓冲区.sql-send-region电话comint-send-region,然后拨打电话process-send-region.process-send-region是调用一个C函数send_process,无论是在src/process.c在Emacs的源.
看起来这可能只是IPC管道上4k缓冲区产生的限制.由于看起来内核黑客攻击是改变这个大小所必需的,所以这不是一个好的答案.
我想我很困惑的是,如果mysql客户端大于4k,那么通过管道发送的SQL没有被mysql客户端正确地重新组装.有任何想法吗?
Emacs版本:2012-03-25关于allspice的GNU Emacs 23.3.1(x86_64-pc-linux-gnu,GTK +版本2.24.10),由Debian修改
mysql -V:mysql Ver 14.14 Distrib 5.5.24,debian-linux-gnu(x86_64)使用readline 6.2
Sql Mysql选项:-A -C -n(注意我已尝试使用和不使用-n(无缓冲)并且都没有修复此问题)