aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/odbc/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/odbc/parse.c')
-rw-r--r--src/interfaces/odbc/parse.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/interfaces/odbc/parse.c b/src/interfaces/odbc/parse.c
index 075ca95947d..991be1cabb4 100644
--- a/src/interfaces/odbc/parse.c
+++ b/src/interfaces/odbc/parse.c
@@ -228,15 +228,21 @@ getColInfo(COL_INFO *col_info, FIELD_INFO *fi, int k)
char
searchColInfo(COL_INFO *col_info, FIELD_INFO *fi)
{
- int k;
- char *col;
+ int k, cmp;
+ char *col;
for (k = 0; k < QR_get_num_tuples(col_info->result); k++)
{
col = QR_get_value_manual(col_info->result, k, 3);
- if (!strcmp(col, fi->name))
+ if (fi->dquote)
+ cmp = strcmp(col, fi->name);
+ else
+ cmp = stricmp(col, fi->name);
+ if (!cmp)
{
+ if (!fi->dquote)
+ strcpy(fi->name, col);
getColInfo(col_info, fi, k);
mylog("PARSE: searchColInfo: \n");
@@ -393,6 +399,9 @@ parse_statement(StatementClass *stmt)
{
blevel--;
mylog("blevel-- = %d\n", blevel);
+ }
+ if (blevel == 0)
+ {
if (delim == ',')
{
in_func = FALSE;
@@ -569,6 +578,13 @@ parse_statement(StatementClass *stmt)
ti[stmt->ntab]->alias[0] = '\0';
strcpy(ti[stmt->ntab]->name, token);
+ if (!dquote)
+ {
+ char *ptr;
+ /* lower case table name */
+ for (ptr = ti[stmt->ntab]->name; *ptr; ptr++)
+ *ptr = tolower((unsigned char) *ptr);
+ }
mylog("got table = '%s'\n", ti[stmt->ntab]->name);
if (delim == ',')