| Bug #34646 | "replace" utility: "found" members in st_replace and st_replace_found unused | ||
|---|---|---|---|
| Submitted: | 18 Feb 2008 20:38 | Modified: | 13 Jan 2017 13:31 |
| Reporter: | Guilhem Bichot | Email Updates: | |
| Status: | Won't fix | Impact on me: | |
| Category: | MySQL Server: Command-line Clients | Severity: | S3 (Non-critical) |
| Version: | 5.1-bk | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[18 Feb 2008 20:38]
Guilhem Bichot
[19 Feb 2008 12:40]
Sveta Smirnova
Thank you for the report.
Please indicate version which you use.
In version 5.1:
typedef struct st_replace {
my_bool found;
struct st_replace *next[256];
} REPLACE;
typedef struct st_replace_found {
bool found;
char *replace_string;
uint to_offset;
int from_offset;
} REPLACE_STRING;
REPLACE and REPLACE_STRING are used in many places.
Or do you mind these structures are not anonymous?
[19 Feb 2008 12:53]
Guilhem Bichot
Tree mysql-5.1 for example. Yes the structs are used but their "found" members seem to not be really used (look at places where they are used: for that, comment out their definitions and see all lines where the compiler complains).
REPLACE_STRING::found is used at
rep_str[0].found=1;
and
rep_str[i].found= (my_bool) (!bcmp(pos,"\\^",3) ? 2 : 1);
(so, only written, never read?)
REPLACE::found is used at
while (!rep_pos->found)
and
if (!*(from-=rep_str->from_offset) && rep_pos->found != 2)
(so, only read, never written?).
There may be a trick, some memcpy() somewhere, so "=" between structs somewhere, anything, that's why I asked for investigation and didn't just remove the "found" members.
[13 Jan 2017 13:31]
Erlend Dahl
The replace utility has been deprecated in 5.7 and removed in 8.0.
