Skip to content
This repository has been archived by the owner on Apr 17, 2018. It is now read-only.

Only 4.1 and later supports setting sql_mode on a per session basis #49

Merged
merged 1 commit into from
Jan 21, 2013
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions do_mysql/ext/do_mysql/do_mysql.c
Original file line number Diff line number Diff line change
Expand Up @@ -341,13 +341,13 @@ void do_mysql_full_connect(VALUE self, MYSQL *db) {

// For really anscient MySQL versions we don't attempt any strictness
#ifdef HAVE_MYSQL_GET_SERVER_VERSION
//4.x versions do not support certain session parameters
if (mysql_get_server_version(db) < 50000) {
do_mysql_cCommand_execute(Qnil, self, db, rb_str_new2("SET SESSION sql_mode = 'ANSI,NO_DIR_IN_CREATE,NO_UNSIGNED_SUBTRACTION'"));
}
else {
//4.0 does not support sql_mode at all, while later 4.x versions do not support certain session parameters
if (mysql_get_server_version(db) >= 50000) {
do_mysql_cCommand_execute(Qnil, self, db, rb_str_new2("SET SESSION sql_mode = 'ANSI,NO_BACKSLASH_ESCAPES,NO_DIR_IN_CREATE,NO_ENGINE_SUBSTITUTION,NO_UNSIGNED_SUBTRACTION,TRADITIONAL'"));
}
else if (mysql_get_server_version(db) >= 40100) {
do_mysql_cCommand_execute(Qnil, self, db, rb_str_new2("SET SESSION sql_mode = 'ANSI,NO_DIR_IN_CREATE,NO_UNSIGNED_SUBTRACTION'"));
}
#endif

rb_iv_set(self, "@connection", Data_Wrap_Struct(rb_cObject, 0, 0, db));
Expand Down