MCPcopy Create free account
hub / github.com/ajitpratap0/GoSQLX / String

Method String

pkg/sql/ast/value.go:100–174  ·  view source on GitHub ↗

String returns the SQL literal representation of this value, including appropriate quoting and escaping for each ValueType (e.g. single-quoted strings, dollar-quoted strings, hex strings, boolean literals, NULL, etc.).

()

Source from the content-addressed store, hash-verified

98// appropriate quoting and escaping for each ValueType (e.g. single-quoted
99// strings, dollar-quoted strings, hex strings, boolean literals, NULL, etc.).
100func (v Value) String() string {
101 switch v.Type {
102 case NumberValue:
103 if n, ok := v.Value.(Number); ok {
104 if n.Long {
105 return fmt.Sprintf("%sL", n.Value)
106 }
107 return n.Value
108 }
109 return fmt.Sprintf("%v", v.Value)
110 case SingleQuotedStringValue:
111 if s, ok := v.Value.(string); ok {
112 return fmt.Sprintf("'%s'", escapeSingleQuoteString(s))
113 }
114 return fmt.Sprintf("'%v'", v.Value)
115 case DollarQuotedStringValue:
116 if dq, ok := v.Value.(DollarQuotedString); ok {
117 if dq.Tag != "" {
118 return fmt.Sprintf("$%s$%s$%s$", dq.Tag, dq.Value, dq.Tag)
119 }
120 return fmt.Sprintf("$$%s$$", dq.Value)
121 }
122 return fmt.Sprintf("$$%v$$", v.Value)
123 case TripleSingleQuotedStringValue:
124 return fmt.Sprintf("'''%s'''", v.Value)
125 case TripleDoubleQuotedStringValue:
126 return fmt.Sprintf(`"""%s"""`, v.Value)
127 case EscapedStringLiteralValue:
128 if s, ok := v.Value.(string); ok {
129 return fmt.Sprintf("E'%s'", escapeEscapedString(s))
130 }
131 return fmt.Sprintf("E'%v'", v.Value)
132 case UnicodeStringLiteralValue:
133 if s, ok := v.Value.(string); ok {
134 return fmt.Sprintf("U&'%s'", escapeUnicodeString(s))
135 }
136 return fmt.Sprintf("U&'%v'", v.Value)
137 case SingleQuotedByteStringLiteralValue:
138 return fmt.Sprintf("B'%s'", v.Value)
139 case DoubleQuotedByteStringLiteralValue:
140 return fmt.Sprintf(`B"%s"`, v.Value)
141 case TripleSingleQuotedByteStringLiteralValue:
142 return fmt.Sprintf("B'''%s'''", v.Value)
143 case TripleDoubleQuotedByteStringLiteralValue:
144 return fmt.Sprintf(`B"""%s"""`, v.Value)
145 case SingleQuotedRawStringLiteralValue:
146 return fmt.Sprintf("R'%s'", v.Value)
147 case DoubleQuotedRawStringLiteralValue:
148 return fmt.Sprintf(`R"%s"`, v.Value)
149 case TripleSingleQuotedRawStringLiteralValue:
150 return fmt.Sprintf("R'''%s'''", v.Value)
151 case TripleDoubleQuotedRawStringLiteralValue:
152 return fmt.Sprintf(`R"""%s"""`, v.Value)
153 case NationalStringLiteralValue:
154 return fmt.Sprintf("N'%s'", v.Value)
155 case HexStringLiteralValue:
156 return fmt.Sprintf("X'%s'", v.Value)
157 case DoubleQuotedStringValue:

Callers 15

TokenLiteralMethod · 0.95
TestValueStringDefaultFunction · 0.95
getDialectFunction · 0.45
parseFunction · 0.45
formatFunction · 0.45
lintFunction · 0.45
validateFunction · 0.45
analyzeFunction · 0.45
generateLargeSQLDocumentFunction · 0.45
applyChangeFunction · 0.45

Calls 4

escapeSingleQuoteStringFunction · 0.85
escapeEscapedStringFunction · 0.85
escapeUnicodeStringFunction · 0.85
escapeDoubleQuoteStringFunction · 0.85