forked from TrueCloudLab/frostfs-sdk-go
[#207] netmap: Fix string escape in PlacementPolicy.String()
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
This commit is contained in:
parent
a5fab572ff
commit
6fe4e2541d
2 changed files with 12 additions and 3 deletions
|
@ -940,10 +940,14 @@ func operationFromString(s string) (op netmap.Operation) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// escapeString returns single quote wrapped string if it contains special
|
// escapeString returns single quote wrapped string.
|
||||||
// characters '-' and whitespace.
|
// Wrapping rules must be kept in sync with QueryLexer.g4.
|
||||||
|
// Currently only ASCII letters, digits and underscore can be parsed without quotes.
|
||||||
func escapeString(s string) string {
|
func escapeString(s string) string {
|
||||||
if strings.ContainsAny(s, " -\t") {
|
for _, r := range s {
|
||||||
|
if 'a' <= r && r <= 'z' || 'A' <= r && r <= 'Z' || '0' <= r && r <= '9' || r == '_' {
|
||||||
|
continue
|
||||||
|
}
|
||||||
return "'" + s + "'"
|
return "'" + s + "'"
|
||||||
}
|
}
|
||||||
return s
|
return s
|
||||||
|
|
|
@ -36,6 +36,11 @@ FILTER City EQ SPB AND SSD EQ true OR City EQ SPB AND Rating GE 5 AS SPBSSD`,
|
||||||
SELECT 1 IN City FROM SPBSSD AS SPB
|
SELECT 1 IN City FROM SPBSSD AS SPB
|
||||||
FILTER NOT (NOT (City EQ SPB) AND SSD EQ true OR City EQ SPB AND Rating GE 5) AS SPBSSD`,
|
FILTER NOT (NOT (City EQ SPB) AND SSD EQ true OR City EQ SPB AND Rating GE 5) AS SPBSSD`,
|
||||||
|
|
||||||
|
`REP 1 IN FNODE
|
||||||
|
CBF 1
|
||||||
|
SELECT 1 FROM F AS FNODE
|
||||||
|
FILTER Node EQ '10.78.8.11' AS F`,
|
||||||
|
|
||||||
`UNIQUE
|
`UNIQUE
|
||||||
REP 1
|
REP 1
|
||||||
REP 1`,
|
REP 1`,
|
||||||
|
|
Loading…
Reference in a new issue