forked from Mirrors/freeswitch
improve chunked sql transaction submission
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15672 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
c706e9bb3c
commit
2e88c67c9d
@ -366,7 +366,7 @@ static switch_status_t switch_cache_db_execute_sql_chunked(switch_cache_db_handl
|
|||||||
char *p, *s, *e;
|
char *p, *s, *e;
|
||||||
int chunk_count;
|
int chunk_count;
|
||||||
switch_size_t len;
|
switch_size_t len;
|
||||||
|
|
||||||
switch_assert(chunk_size);
|
switch_assert(chunk_size);
|
||||||
|
|
||||||
if (err) *err = NULL;
|
if (err) *err = NULL;
|
||||||
@ -391,23 +391,25 @@ static switch_status_t switch_cache_db_execute_sql_chunked(switch_cache_db_handl
|
|||||||
p = e;
|
p = e;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (p > s && *p != ';') {
|
while (p > s) {
|
||||||
|
if (*p == '\n' && *(p-1) == ';') {
|
||||||
|
*p = '\0';
|
||||||
|
*(p-1) = '\0';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
p--;
|
p--;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p) {
|
if (p <= s) break;
|
||||||
*p = '\0';
|
|
||||||
while(p < e && (*p == '\n' || *p == ' ')) {
|
|
||||||
p++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
status = switch_cache_db_execute_sql_real(dbh, s, err);
|
status = switch_cache_db_execute_sql_real(dbh, s, err);
|
||||||
if (status != SWITCH_STATUS_SUCCESS || (err && *err)) {
|
if (status != SWITCH_STATUS_SUCCESS || (err && *err)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
s = p + 1;
|
s = p;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -422,14 +424,9 @@ SWITCH_DECLARE(switch_status_t) switch_cache_db_execute_sql(switch_cache_db_hand
|
|||||||
|
|
||||||
|
|
||||||
switch (dbh->type) {
|
switch (dbh->type) {
|
||||||
case SCDB_TYPE_CORE_DB:
|
|
||||||
{
|
|
||||||
status = switch_cache_db_execute_sql_real(dbh, sql, err);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
status = switch_cache_db_execute_sql_chunked(dbh, (char *)sql, 32000, err);
|
status = switch_cache_db_execute_sql_chunked(dbh, (char *)sql, 32768, err);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user