svnno****@sourc*****
svnno****@sourc*****
2008年 6月 20日 (金) 18:08:42 JST
Revision: 156 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=156 Author: mir Date: 2008-06-20 18:08:42 +0900 (Fri, 20 Jun 2008) Log Message: ----------- added write_row. Modified Paths: -------------- trunk/src/ha_tritonn.cc trunk/src/ha_tritonn.h -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-20 07:12:00 UTC (rev 155) +++ trunk/src/ha_tritonn.cc 2008-06-20 09:08:42 UTC (rev 156) @@ -276,7 +276,7 @@ if (!(share = get_share(name, table))) DBUG_RETURN(HA_ERR_OUT_OF_MEM); thr_lock_data_init(&share->lock,&lock,NULL); - + share->short_name = table_share->table_name.str; ctx = sen_ctx_open(get_sen_db(table_share->db.str),SEN_CTX_USEQL); DBUG_RETURN(0); @@ -561,10 +561,23 @@ int ha_tritonn::write_row(uchar* buf) { DBTN; + int i=0; + char ql[1024]; + char *pkey_str; for (Field **field=table->field; *field; field++) { String str; (*field)->val_str(&str); - // printf("[%s]\n",(*field)->val_str(new String[1])->ptr()); + str.chop(); + if (i==0) { + pkey_str = (char*) sql_alloc(str.length()+1); + strncpy(pkey_str,str.ptr(),str.length()+1); + my_snprintf(ql,1024,"(<%s> ::new \"%s\")",share->short_name,pkey_str); + } else { + my_snprintf(ql,1024,"((<%s> : \"%s\") :%s \"%s\")", + share->short_name,pkey_str, (*field)->field_name,str.ptr()); + } + call_senna_ql(ctx,ql); + i++; } return 0; @@ -577,7 +590,7 @@ d->db_name_length = strlen(db_name); d->db_name = (char*) my_malloc(d->db_name_length,MYF(0)); memcpy(d->db_name,db_name,d->db_name_length); - my_snprintf(file_name,FN_REFLEN,"%s/tritonn.db",d->db_name); + my_snprintf(file_name,FN_REFLEN,"%s/tritonn.db",db_name); d->db = sen_db_open(file_name); if (d->db == NULL) { d->db = sen_db_create(file_name,0,sen_enc_utf8); @@ -593,6 +606,7 @@ /* case1: no instance created yet */ if (tdb == NULL) { tdb = open_or_create_db(db_name); + pthread_mutex_unlock(&tritonn_mutex); return tdb->db; } /* case2: instance hit */ Modified: trunk/src/ha_tritonn.h =================================================================== --- trunk/src/ha_tritonn.h 2008-06-20 07:12:00 UTC (rev 155) +++ trunk/src/ha_tritonn.h 2008-06-20 09:08:42 UTC (rev 156) @@ -17,6 +17,7 @@ */ typedef struct st_tritonn_share { char *table_name; + char *short_name; uint table_name_length,use_count; pthread_mutex_t mutex; THR_LOCK lock;