MCPcopy
hub / github.com/sqlc-dev/sqlc / convertTableExpression

Method convertTableExpression

internal/engine/clickhouse/convert.go:247–287  ·  view source on GitHub ↗
(n *chast.TableExpression)

Source from the content-addressed store, hash-verified

245}
246
247func (c *cc) convertTableExpression(n *chast.TableExpression) ast.Node {
248 var result ast.Node
249
250 switch t := n.Table.(type) {
251 case *chast.TableIdentifier:
252 rv := parseTableIdentifierToRangeVar(t)
253 if n.Alias != "" {
254 alias := n.Alias
255 rv.Alias = &ast.Alias{Aliasname: &alias}
256 }
257 result = rv
258 case *chast.Subquery:
259 subselect := &ast.RangeSubselect{
260 Subquery: c.convert(t.Query),
261 }
262 alias := n.Alias
263 if alias == "" && t.Alias != "" {
264 alias = t.Alias
265 }
266 if alias != "" {
267 subselect.Alias = &ast.Alias{Aliasname: &alias}
268 }
269 result = subselect
270 case *chast.FunctionCall:
271 // Table function like file(), url(), etc.
272 rf := &ast.RangeFunction{
273 Functions: &ast.List{
274 Items: []ast.Node{c.convertFunctionCall(t)},
275 },
276 }
277 if n.Alias != "" {
278 alias := n.Alias
279 rf.Alias = &ast.Alias{Aliasname: &alias}
280 }
281 result = rf
282 default:
283 result = &ast.TODO{}
284 }
285
286 return result
287}
288
289func (c *cc) convertTableJoin(n *chast.TableJoin, left, right ast.Node) *ast.JoinExpr {
290 join := &ast.JoinExpr{

Callers 1

Calls 3

convertMethod · 0.95
convertFunctionCallMethod · 0.95

Tested by

no test coverage detected