2945
2942
return &my_charset_utf8_general_ci;
2949
xtPublic xtBool myxt_use_blobs(XTOpenTablePtr ot, void **ret_pbms_table, xtWord1 *rec_buf)
2952
XTTable *tab = ot->ot_table;
2957
char in_url[PBMS_BLOB_URL_SIZE];
2960
if (!xt_pbms_open_table(&pbms_table, tab->tab_name->ps_path))
2963
for (idx=0; idx<tab->tab_dic.dic_blob_count; idx++) {
2964
field = tab->tab_dic.dic_blob_cols[idx];
2965
if ((blob_ref = mx_get_length_and_data(field, (char *) rec_buf, &len)) && len) {
2966
xt_strncpy(PBMS_BLOB_URL_SIZE, in_url, blob_ref, len);
2968
if (!xt_pbms_use_blob(pbms_table, &out_url, in_url, field->field_index)) {
2969
xt_pbms_close_table(pbms_table);
2974
len = strlen(out_url);
2975
mx_set_length_and_data(field, (char *) rec_buf, len, out_url);
2979
*ret_pbms_table = pbms_table;
2983
xtPublic void myxt_unuse_blobs(XTOpenTablePtr XT_UNUSED(ot), void *pbms_table)
2985
xt_pbms_close_table(pbms_table);
2988
xtPublic xtBool myxt_retain_blobs(XTOpenTablePtr XT_UNUSED(ot), void *pbms_table, xtRecordID rec_id)
2991
PBMSEngineRefRec eng_ref;
2993
memset(&eng_ref, 0, sizeof(PBMSEngineRefRec));
2994
XT_SET_DISK_8(eng_ref.er_data, rec_id);
2995
ok = xt_pbms_retain_blobs(pbms_table, &eng_ref);
2996
xt_pbms_close_table(pbms_table);
3000
xtPublic void myxt_release_blobs(XTOpenTablePtr ot, xtWord1 *rec_buf, xtRecordID rec_id)
3003
XTTable *tab = ot->ot_table;
3008
char in_url[PBMS_BLOB_URL_SIZE];
3009
PBMSEngineRefRec eng_ref;
3011
memset(&eng_ref, 0, sizeof(PBMSEngineRefRec));
3012
XT_SET_DISK_8(eng_ref.er_data, rec_id);
3014
if (!xt_pbms_open_table(&pbms_table, tab->tab_name->ps_path))
3017
for (idx=0; idx<tab->tab_dic.dic_blob_count; idx++) {
3018
field = tab->tab_dic.dic_blob_cols[idx];
3019
if ((blob_ref = mx_get_length_and_data(field, (char *) rec_buf, &len)) && len) {
3020
xt_strncpy(PBMS_BLOB_URL_SIZE, in_url, blob_ref, len);
3022
xt_pbms_release_blob(pbms_table, in_url, field->field_index, &eng_ref);
3026
xt_pbms_close_table(pbms_table);
3028
#endif // XT_STREAMING
3030
2945
xtPublic void *myxt_create_thread()
3032
2947
#ifdef DRIZZLED