Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite666422

Browse files
author
Hiroshi Inoue
committed
1)Allow the access to indexes with up to 16 keys.
2)Fix some memory leaks.3)Change some bogus error messages.
1 parent5490195 commite666422

File tree

5 files changed

+15
-9
lines changed

5 files changed

+15
-9
lines changed

‎src/interfaces/odbc/convert.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -273,14 +273,16 @@ copy_and_convert_field(StatementClass *stmt, Int4 field_type, void *value, Int2
273273
/* this is an array of eight integers */
274274
short*short_array= (short*) ( (char*)rgbValue+rgbValueOffset);
275275

276-
len=16;
276+
len=32;
277277
vp=value;
278278
nval=0;
279-
for (i=0;i<8;i++)
279+
mylog("index=(");
280+
for (i=0;i<16;i++)
280281
{
281282
if (sscanf(vp,"%hd",&short_array[i])!=1)
282283
break;
283284

285+
mylog(" %d",short_array[i]);
284286
nval++;
285287

286288
/* skip the current token */
@@ -290,8 +292,9 @@ copy_and_convert_field(StatementClass *stmt, Int4 field_type, void *value, Int2
290292
if (*vp=='\0')
291293
break;
292294
}
295+
mylog(") nval = %d\n",nval);
293296

294-
for (i=nval;i<8;i++)
297+
for (i=nval;i<16;i++)
295298
{
296299
short_array[i]=0;
297300
}

‎src/interfaces/odbc/info.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1761,7 +1761,7 @@ HSTMT hindx_stmt;
17611761
RETCODEresult;
17621762
char*table_name;
17631763
charindex_name[MAX_INFO_STRING];
1764-
shortfields_vector[8];
1764+
shortfields_vector[16];
17651765
charisunique[10],isclustered[10];
17661766
SDWORDindex_name_len,fields_vector_len;
17671767
TupleNode*row;
@@ -1924,7 +1924,7 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
19241924
}
19251925
/* bind the vector column */
19261926
result=SQLBindCol(hindx_stmt,2,SQL_C_DEFAULT,
1927-
fields_vector,16,&fields_vector_len);
1927+
fields_vector,32,&fields_vector_len);
19281928
if((result!=SQL_SUCCESS)&& (result!=SQL_SUCCESS_WITH_INFO)) {
19291929
stmt->errormsg=indx_stmt->errormsg;/* "Couldn't bind column in SQLStatistics."; */
19301930
stmt->errornumber=indx_stmt->errornumber;
@@ -2003,7 +2003,7 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
20032003
(fUnique==SQL_INDEX_UNIQUE&&atoi(isunique))) {
20042004
i=0;
20052005
/* add a row in this table for each field in the index */
2006-
while(i<8&&fields_vector[i]!=0) {
2006+
while(i<16&&fields_vector[i]!=0) {
20072007

20082008
row= (TupleNode*)malloc(sizeof(TupleNode)+
20092009
(13-1)*sizeof(TupleField));

‎src/interfaces/odbc/qresult.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@ QResultClass *res;
311311
QR_set_message(self,"Error closing cursor.");
312312
return FALSE;
313313
}
314+
QR_Destructor(res);
314315

315316
/*End the transaction if there are no cursors left on this conn */
316317
if (CC_cursor_count(self->conn)==0) {
@@ -325,6 +326,7 @@ QResultClass *res;
325326
QR_set_message(self,"Error ending transaction.");
326327
return FALSE;
327328
}
329+
QR_Destructor(res);
328330
}
329331

330332
}

‎src/interfaces/odbc/results.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ int len = 0, value = 0;
405405

406406
if (icol >=cols) {
407407
stmt->errornumber=STMT_INVALID_COLUMN_NUMBER_ERROR;
408-
stmt->errormsg="Invalid column number inDescribeCol.";
408+
stmt->errormsg="Invalid column number inColAttributes.";
409409
SC_log_error(func,"",stmt);
410410
returnSQL_ERROR;
411411
}
@@ -442,7 +442,7 @@ int len = 0, value = 0;
442442

443443
if (icol >=cols) {
444444
stmt->errornumber=STMT_INVALID_COLUMN_NUMBER_ERROR;
445-
stmt->errormsg="Invalid column number inDescribeCol.";
445+
stmt->errormsg="Invalid column number inColAttributes.";
446446
SC_log_error(func,"",stmt);
447447
returnSQL_ERROR;
448448
}

‎src/interfaces/odbc/statement.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,8 @@ mylog("recycle statement: self= %u\n", self);
404404
conn=SC_get_conn(self);
405405
if ( !CC_is_in_autocommit(conn)&&CC_is_in_trans(conn)) {
406406

407-
CC_send_query(conn,"ABORT",NULL);
407+
QResultClass*res=CC_send_query(conn,"ABORT",NULL);
408+
QR_Destructor(res);
408409
CC_set_no_trans(conn);
409410
}
410411
break;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp