summaryrefslogtreecommitdiff
path: root/src/interfaces/odbc/parse.c
diff options
context:
space:
mode:
authorHiroshi Inoue <inoue@tpf.co.jp>2001-05-01 00:47:06 +0000
committerHiroshi Inoue <inoue@tpf.co.jp>2001-05-01 00:47:06 +0000
commit892d46e7d053df7e29468d9cd5077a05c0d74905 (patch)
tree93fda817e4e7a6febc7b5a1fb2827994a71697df /src/interfaces/odbc/parse.c
parent48bdf021b62fe7450eeac9891349f15d4504b899 (diff)
1) fix bugs reported by Andrea Aime.
2) fix a bug reported by Jan Wieck. psqlodbc is 7.01.0005 now.
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 == ',')