Переглянути джерело

- in str2val() the 'nul' field is explcitly set to 0 if the value is not null
(db_val.c line 154)
- in get_columns() a switch brach for detecting BLOB type was added (db_res.c
lines 94-99)

Bogdan-Andrei Iancu 22 роки тому
батько
коміт
9e13713dc3
3 змінених файлів з 10 додано та 2 видалено
  1. 8 1
      modules/db_mysql/db_res.c
  2. 1 1
      modules/db_mysql/db_row.c
  3. 1 0
      modules/db_mysql/db_val.c

+ 8 - 1
modules/db_mysql/db_res.c

@@ -90,7 +90,14 @@ static inline int get_columns(db_con_t* _h, db_res_t* _r)
 		case FIELD_TYPE_DATETIME:
 			RES_TYPES(_r)[i] = DB_DATETIME;
 			break;
-			
+
+		case FIELD_TYPE_BLOB:
+		case FIELD_TYPE_TINY_BLOB:
+		case FIELD_TYPE_MEDIUM_BLOB:
+		case FIELD_TYPE_LONG_BLOB:
+			RES_TYPES(_r)[i] = DB_BLOB;
+			break;
+
 		default:
 			RES_TYPES(_r)[i] = DB_STRING;
 			break;

+ 1 - 1
modules/db_mysql/db_row.c

@@ -49,7 +49,7 @@ int convert_row(db_con_t* _h, db_res_t* _res, db_row_t* _r)
 	}
 #endif
 
-        ROW_VALUES(_r) = (db_val_t*)pkg_malloc(sizeof(db_val_t) * RES_COL_N(_res));
+	ROW_VALUES(_r) = (db_val_t*)pkg_malloc(sizeof(db_val_t) * RES_COL_N(_res));
 	ROW_N(_r) = RES_COL_N(_res);
 	if (!ROW_VALUES(_r)) {
 		LOG(L_ERR, "convert_row(): No memory left\n");

+ 1 - 0
modules/db_mysql/db_val.c

@@ -151,6 +151,7 @@ int str2val(db_type_t _t, db_val_t* _v, const char* _s, int _l)
 		VAL_NULL(_v) = 1;
 		return 0;
 	}
+	VAL_NULL(_v) = 0;
 
 	switch(_t) {
 	case DB_INT: