| Bug #14358 | mysql client parser error with "use foo;" command (database names <= 3 chars) | ||
|---|---|---|---|
| Submitted: | 26 Oct 2005 20:40 | Modified: | 1 Nov 2005 20:30 |
| Reporter: | Timothy Smith | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Command-line Clients | Severity: | S2 (Serious) |
| Version: | 5.0.15 | OS: | Any (any) |
| Assigned to: | Timothy Smith | CPU Architecture: | Any |
[26 Oct 2005 20:40]
Timothy Smith
[27 Oct 2005 22:25]
Timothy Smith
This bug was introduced in revision 1.178.1.1 of mysql.cc:
@@ -1100,12 +1102,16 @@
root 1.121 | while (my_isspace(charset_info,*name))
sasha 1.1 | name++;
jani 1.157 | /*
-jani 1.157 | As special case we allow row that starts with word delimiter
-jani 1.157 | to be able to change delimiter if someone has delimiter 'delimiter'.
+monty 1.178.1.1 | If there is an \\g in the row or if the row has a delimiter but
+monty 1.178.1.1 | this is not a delimiter command, let add_line() take care of
+monty 1.178.1.1 | parsing the row and calling find_command()
jani 1.157 | */
jani 1.157 | if (strstr(name, "\\g") || (strstr(name, delimiter) &&
-jani 1.157 | strncmp(name, "delimiter", 9)))
-sasha 1.1 | return ((COMMANDS *) 0);
+monty 1.178.1.1 | strlen(name) >= 9 &&
+monty 1.178.1.1 | my_strnncoll(charset_info,(uchar*) name,
+monty 1.178.1.1 | 9,
+monty 1.178.1.1 | (const uchar*) "delimiter", 9)))
+monty 1.178.1.1 | DBUG_RETURN((COMMANDS *) 0);
sasha 1.1 | if ((end=strcont(name," \t")))
sasha 1.1 | {
sasha 1.1 | len=(uint) (end - name);
Here monty added a test to see if strlen(name) >= 9 (9 == strlen("delimiter")). This is the wrong test. I'm not yet sure exactly what the right test is here.
[27 Oct 2005 22:52]
Timothy Smith
I am attaching a patch as a file. Sorry, I can't commit it myself yet (BK keys are messed up for me still). Here is the change, just for easy viewing: - strlen(name) >= 9 && - my_strnncoll(charset_info,(uchar*) name, - 9, - (const uchar*) "delimiter", 9))) + !(strlen(name) >= 9 && + !my_strnncoll(charset_info, + (uchar*) name, 9, + (const uchar*) "delimiter", + 9))))
[27 Oct 2005 22:54]
Timothy Smith
patch against mysql.cc to fix this bug
Attachment: bug-14358.diff (application/octet-stream, text), 946 bytes.
[27 Oct 2005 23:13]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/internals/31588
[1 Nov 2005 20:00]
Timothy Smith
Pushed, will be fixed in release 5.0.16.
[1 Nov 2005 20:30]
Paul DuBois
Noted in 5.0.16 changelog.
[27 Aug 2007 22:20]
karan vir singh ghattoraya
look i have a problem here it is if you can help me i will be grateful here it is
ERROR 1049 (42000): Unknown database 'n´;'
and hers the command i used
mysql> LOAD DATA LOCAL INFILE ´/path/pet.txt´ INTO TABE pet
-> LINES TERMINATED BY ´\r\n´;
and im using linux and im an 11 year old kid but plese help me
