mirror of
https://git.freebsd.org/ports.git
synced 2025-04-30 02:26:38 -04:00
256 lines
9.1 KiB
C
256 lines
9.1 KiB
C
--- ext/mysql_api/mysql.c.orig 2024-03-11 10:33:12 UTC
|
|
+++ ext/mysql_api/mysql.c
|
|
@@ -170,7 +170,7 @@ static void mysql_raise(MYSQL* m)
|
|
VALUE e = rb_exc_new2(eMysql, mysql_error(m));
|
|
rb_iv_set(e, "errno", INT2FIX(mysql_errno(m)));
|
|
#if MYSQL_VERSION_ID >= 40101
|
|
- rb_iv_set(e, "sqlstate", rb_tainted_str_new2(mysql_sqlstate(m)));
|
|
+ rb_iv_set(e, "sqlstate", rb_str_new_cstr(mysql_sqlstate(m)));
|
|
#endif
|
|
rb_exc_raise(e);
|
|
}
|
|
@@ -197,9 +197,9 @@ static VALUE make_field_obj(MYSQL_FIELD* f)
|
|
if (f == NULL)
|
|
return Qnil;
|
|
obj = rb_obj_alloc(cMysqlField);
|
|
- rb_iv_set(obj, "name", f->name? rb_str_freeze(rb_tainted_str_new2(f->name)): Qnil);
|
|
- rb_iv_set(obj, "table", f->table? rb_str_freeze(rb_tainted_str_new2(f->table)): Qnil);
|
|
- rb_iv_set(obj, "def", f->def? rb_str_freeze(rb_tainted_str_new2(f->def)): Qnil);
|
|
+ rb_iv_set(obj, "name", f->name? rb_str_freeze(rb_str_new_cstr(f->name)): Qnil);
|
|
+ rb_iv_set(obj, "table", f->table? rb_str_freeze(rb_str_new_cstr(f->table)): Qnil);
|
|
+ rb_iv_set(obj, "def", f->def? rb_str_freeze(rb_str_new_cstr(f->def)): Qnil);
|
|
rb_iv_set(obj, "type", INT2NUM(f->type));
|
|
rb_iv_set(obj, "length", INT2NUM(f->length));
|
|
rb_iv_set(obj, "max_length", INT2NUM(f->max_length));
|
|
@@ -273,7 +273,10 @@ static VALUE real_connect(int argc, VALUE* argv, VALUE
|
|
rb_thread_start_timer();
|
|
#endif
|
|
|
|
+#if MYSQL_VERSION_ID >= 100400
|
|
+#else
|
|
myp->handler.reconnect = 0;
|
|
+#endif
|
|
myp->connection = Qtrue;
|
|
myp->query_with_result = Qtrue;
|
|
rb_obj_call_init(obj, argc, argv);
|
|
@@ -294,7 +297,7 @@ static VALUE escape_string(VALUE klass, VALUE str)
|
|
/* client_info() */
|
|
static VALUE client_info(VALUE klass)
|
|
{
|
|
- return rb_tainted_str_new2(mysql_get_client_info());
|
|
+ return rb_str_new_cstr(mysql_get_client_info());
|
|
}
|
|
|
|
#if MYSQL_VERSION_ID >= 32332
|
|
@@ -347,7 +350,10 @@ static VALUE real_connect2(int argc, VALUE* argv, VALU
|
|
#ifdef HAVE_RB_THREAD_START_TIMER
|
|
rb_thread_start_timer();
|
|
#endif
|
|
+#if MYSQL_VERSION_ID >= 100400
|
|
+#else
|
|
m->reconnect = 0;
|
|
+#endif
|
|
GetMysqlStruct(obj)->connection = Qtrue;
|
|
|
|
return obj;
|
|
@@ -469,7 +475,7 @@ static VALUE change_user(int argc, VALUE* argv, VALUE
|
|
/* character_set_name() */
|
|
static VALUE character_set_name(VALUE obj)
|
|
{
|
|
- return rb_tainted_str_new2(mysql_character_set_name(GetHandler(obj)));
|
|
+ return rb_str_new_cstr(mysql_character_set_name(GetHandler(obj)));
|
|
}
|
|
#endif
|
|
|
|
@@ -534,7 +540,7 @@ static VALUE field_count(VALUE obj)
|
|
/* host_info() */
|
|
static VALUE host_info(VALUE obj)
|
|
{
|
|
- return rb_tainted_str_new2(mysql_get_host_info(GetHandler(obj)));
|
|
+ return rb_str_new_cstr(mysql_get_host_info(GetHandler(obj)));
|
|
}
|
|
|
|
/* proto_info() */
|
|
@@ -546,14 +552,14 @@ static VALUE proto_info(VALUE obj)
|
|
/* server_info() */
|
|
static VALUE server_info(VALUE obj)
|
|
{
|
|
- return rb_tainted_str_new2(mysql_get_server_info(GetHandler(obj)));
|
|
+ return rb_str_new_cstr(mysql_get_server_info(GetHandler(obj)));
|
|
}
|
|
|
|
/* info() */
|
|
static VALUE info(VALUE obj)
|
|
{
|
|
const char* p = mysql_info(GetHandler(obj));
|
|
- return p? rb_tainted_str_new2(p): Qnil;
|
|
+ return p? rb_str_new_cstr(p): Qnil;
|
|
}
|
|
|
|
/* insert_id() */
|
|
@@ -588,7 +594,7 @@ static VALUE list_dbs(int argc, VALUE* argv, VALUE obj
|
|
n = mysql_num_rows(res);
|
|
ret = rb_ary_new2(n);
|
|
for (i=0; i<n; i++)
|
|
- rb_ary_store(ret, i, rb_tainted_str_new2(mysql_fetch_row(res)[0]));
|
|
+ rb_ary_store(ret, i, rb_str_new_cstr(mysql_fetch_row(res)[0]));
|
|
mysql_free_result(res);
|
|
return ret;
|
|
}
|
|
@@ -633,7 +639,7 @@ static VALUE list_tables(int argc, VALUE* argv, VALUE
|
|
n = mysql_num_rows(res);
|
|
ret = rb_ary_new2(n);
|
|
for (i=0; i<n; i++)
|
|
- rb_ary_store(ret, i, rb_tainted_str_new2(mysql_fetch_row(res)[0]));
|
|
+ rb_ary_store(ret, i, rb_str_new_cstr(mysql_fetch_row(res)[0]));
|
|
mysql_free_result(res);
|
|
return ret;
|
|
}
|
|
@@ -697,7 +703,7 @@ static VALUE my_stat(VALUE obj)
|
|
const char* s = mysql_stat(m);
|
|
if (s == NULL)
|
|
mysql_raise(m);
|
|
- return rb_tainted_str_new2(s);
|
|
+ return rb_str_new_cstr(s);
|
|
}
|
|
|
|
/* store_result() */
|
|
@@ -864,7 +870,7 @@ static VALUE set_server_option(VALUE obj, VALUE option
|
|
static VALUE sqlstate(VALUE obj)
|
|
{
|
|
MYSQL *m = GetHandler(obj);
|
|
- return rb_tainted_str_new2(mysql_sqlstate(m));
|
|
+ return rb_str_new_cstr(mysql_sqlstate(m));
|
|
}
|
|
#endif
|
|
|
|
@@ -875,12 +881,12 @@ static VALUE stmt_init(VALUE obj)
|
|
MYSQL *m = GetHandler(obj);
|
|
MYSQL_STMT *s;
|
|
struct mysql_stmt* stmt;
|
|
- my_bool true = 1;
|
|
+ my_bool mytrue = 1;
|
|
VALUE st_obj;
|
|
|
|
if ((s = mysql_stmt_init(m)) == NULL)
|
|
mysql_raise(m);
|
|
- if (mysql_stmt_attr_set(s, STMT_ATTR_UPDATE_MAX_LENGTH, &true))
|
|
+ if (mysql_stmt_attr_set(s, STMT_ATTR_UPDATE_MAX_LENGTH, &mytrue))
|
|
rb_raise(rb_eArgError, "mysql_stmt_attr_set() failed");
|
|
st_obj = Data_Make_Struct(cMysqlStmt, struct mysql_stmt, 0, free_mysqlstmt, stmt);
|
|
memset(stmt, 0, sizeof(*stmt));
|
|
@@ -917,13 +923,21 @@ static VALUE query_with_result_set(VALUE obj, VALUE fl
|
|
/* reconnect() */
|
|
static VALUE reconnect(VALUE obj)
|
|
{
|
|
+#if MYSQL_VERSION_ID >= 100400
|
|
+ return Qfalse;
|
|
+#else
|
|
return GetHandler(obj)->reconnect ? Qtrue : Qfalse;
|
|
+#endif
|
|
}
|
|
|
|
/* reconnect=(flag) */
|
|
static VALUE reconnect_set(VALUE obj, VALUE flag)
|
|
{
|
|
+#if MYSQL_VERSION_ID >= 100400
|
|
+ return Qfalse;
|
|
+#else
|
|
GetHandler(obj)->reconnect = (flag == Qnil || flag == Qfalse) ? 0 : 1;
|
|
+#endif
|
|
return flag;
|
|
}
|
|
|
|
@@ -1029,7 +1043,7 @@ static VALUE fetch_row(VALUE obj)
|
|
return Qnil;
|
|
ary = rb_ary_new2(n);
|
|
for (i=0; i<n; i++)
|
|
- rb_ary_store(ary, i, row[i]? rb_tainted_str_new(row[i], lengths[i]): Qnil);
|
|
+ rb_ary_store(ary, i, row[i]? rb_str_new(row[i], lengths[i]): Qnil);
|
|
return ary;
|
|
}
|
|
|
|
@@ -1053,7 +1067,7 @@ static VALUE fetch_hash2(VALUE obj, VALUE with_table)
|
|
if (colname == Qnil) {
|
|
colname = rb_ary_new2(n);
|
|
for (i=0; i<n; i++) {
|
|
- VALUE s = rb_tainted_str_new2(fields[i].name);
|
|
+ VALUE s = rb_str_new_cstr(fields[i].name);
|
|
rb_obj_freeze(s);
|
|
rb_ary_store(colname, i, s);
|
|
}
|
|
@@ -1066,7 +1080,7 @@ static VALUE fetch_hash2(VALUE obj, VALUE with_table)
|
|
colname = rb_ary_new2(n);
|
|
for (i=0; i<n; i++) {
|
|
int len = strlen(fields[i].table)+strlen(fields[i].name)+1;
|
|
- VALUE s = rb_tainted_str_new(NULL, len);
|
|
+ VALUE s = rb_str_new(NULL, len);
|
|
snprintf(RSTRING_PTR(s), len+1, "%s.%s", fields[i].table, fields[i].name);
|
|
rb_obj_freeze(s);
|
|
rb_ary_store(colname, i, s);
|
|
@@ -1076,7 +1090,7 @@ static VALUE fetch_hash2(VALUE obj, VALUE with_table)
|
|
}
|
|
}
|
|
for (i=0; i<n; i++) {
|
|
- rb_hash_aset(hash, rb_ary_entry(colname, i), row[i]? rb_tainted_str_new(row[i], lengths[i]): Qnil);
|
|
+ rb_hash_aset(hash, rb_ary_entry(colname, i), row[i]? rb_str_new(row[i], lengths[i]): Qnil);
|
|
}
|
|
return hash;
|
|
}
|
|
@@ -1257,7 +1271,7 @@ static void mysql_stmt_raise(MYSQL_STMT* s)
|
|
{
|
|
VALUE e = rb_exc_new2(eMysql, mysql_stmt_error(s));
|
|
rb_iv_set(e, "errno", INT2FIX(mysql_stmt_errno(s)));
|
|
- rb_iv_set(e, "sqlstate", rb_tainted_str_new2(mysql_stmt_sqlstate(s)));
|
|
+ rb_iv_set(e, "sqlstate", rb_str_new_cstr(mysql_stmt_sqlstate(s)));
|
|
rb_exc_raise(e);
|
|
}
|
|
|
|
@@ -1317,7 +1331,7 @@ static VALUE stmt_bind_result(int argc, VALUE *argv, V
|
|
}
|
|
else if (argv[i] == rb_cString)
|
|
s->result.bind[i].buffer_type = MYSQL_TYPE_STRING;
|
|
- else if (argv[i] == rb_cNumeric || argv[i] == rb_cInteger || argv[i] == rb_cFixnum)
|
|
+ else if (argv[i] == rb_cNumeric || argv[i] == rb_cInteger || argv[i] == rb_cInteger)
|
|
s->result.bind[i].buffer_type = MYSQL_TYPE_LONGLONG;
|
|
else if (argv[i] == rb_cFloat)
|
|
s->result.bind[i].buffer_type = MYSQL_TYPE_DOUBLE;
|
|
@@ -1573,7 +1587,7 @@ static VALUE stmt_fetch(VALUE obj)
|
|
case MYSQL_TYPE_NEWDECIMAL:
|
|
case MYSQL_TYPE_BIT:
|
|
#endif
|
|
- v = rb_tainted_str_new(s->result.bind[i].buffer, s->result.length[i]);
|
|
+ v = rb_str_new(s->result.bind[i].buffer, s->result.length[i]);
|
|
break;
|
|
default:
|
|
rb_raise(rb_eTypeError, "unknown buffer_type: %d", s->result.bind[i].buffer_type);
|
|
@@ -1762,7 +1776,7 @@ static VALUE stmt_send_long_data(VALUE obj, VALUE col,
|
|
static VALUE stmt_sqlstate(VALUE obj)
|
|
{
|
|
struct mysql_stmt* s = DATA_PTR(obj);
|
|
- return rb_tainted_str_new2(mysql_stmt_sqlstate(s->stmt));
|
|
+ return rb_str_new_cstr(mysql_stmt_sqlstate(s->stmt));
|
|
}
|
|
|
|
/*-------------------------------
|
|
@@ -1884,6 +1898,7 @@ static VALUE error_sqlstate(VALUE obj)
|
|
|
|
void Init_mysql_api(void)
|
|
{
|
|
+#if 0
|
|
int i;
|
|
int dots = 0;
|
|
const char *lib = mysql_get_client_info();
|
|
@@ -1898,9 +1913,12 @@ void Init_mysql_api(void)
|
|
return;
|
|
}
|
|
}
|
|
+#endif
|
|
|
|
cMysql = rb_define_class("Mysql", rb_cObject);
|
|
+ rb_undef_alloc_func(cMysql);
|
|
cMysqlRes = rb_define_class_under(cMysql, "Result", rb_cObject);
|
|
+ rb_undef_alloc_func(cMysqlRes);
|
|
cMysqlField = rb_define_class_under(cMysql, "Field", rb_cObject);
|
|
#if MYSQL_VERSION_ID >= 40102
|
|
cMysqlStmt = rb_define_class_under(cMysql, "Stmt", rb_cObject);
|