Как отправить запросы размером более 4k из буфера SQL в буфер sql -mysql в Emacs?

Я часто сталкивался с раздражением в режиме Emacs sql-mysql, и мне интересно, есть ли у кого-нибудь решение или лучший обходной путь. Каждый раз, когда я пытаюсь отправить запрос из буфера sql-modeв активный буфер процесса SQL, этот запрос не может быть больше 4 КБ. Если он больше 4 КБ, кажется, что вставлен какой-то разрыв -, возможно, новая строка -, и это заставляет интерпретатор 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.

Похоже, это может быть просто ограничение, вызванное буфером 4k на канале IPC. Поскольку кажется, что для изменения этого размера необходимо взломать ядро, это не лучший ответ.

Что, я думаю, меня озадачивает, так это то, почему SQL, отправленный через канал, не собирается должным образом клиентом mysql, если он больше 4 КБ. Любые идеи?

Версия Emacs :GNU Emacs 23.3.1 (x86 _64 -pc -linux -gnu, GTK+ Версия 2.24.10 )от 2012 г. -03 -25 на душистый перец, модифицированный Debian

mysql -V :mysql Ver 14.14 Distrib 5.5.24, для debian -linux -gnu (x86 _64 )с использованием readline 6.2

Параметры Sql Mysql:-A -C -n (NB Я пробовал как с -n (, так и без буферизации ), и ни один из них не решил эту проблему)

23
задан Yamaneko 10 September 2012 в 15:07
поделиться