(n *chast.TablesInSelectQuery)
| 217 | } |
| 218 | |
| 219 | func (c *cc) convertTablesInSelectQuery(n *chast.TablesInSelectQuery) *ast.List { |
| 220 | if n == nil || len(n.Tables) == 0 { |
| 221 | return nil |
| 222 | } |
| 223 | |
| 224 | result := &ast.List{} |
| 225 | |
| 226 | for i, elem := range n.Tables { |
| 227 | if elem.Table != nil { |
| 228 | tableExpr := c.convertTableExpression(elem.Table) |
| 229 | if i == 0 { |
| 230 | result.Items = append(result.Items, tableExpr) |
| 231 | } else if elem.Join != nil { |
| 232 | // This element has a join |
| 233 | joinExpr := c.convertTableJoin(elem.Join, result.Items[len(result.Items)-1], tableExpr) |
| 234 | result.Items[len(result.Items)-1] = joinExpr |
| 235 | } else { |
| 236 | result.Items = append(result.Items, tableExpr) |
| 237 | } |
| 238 | } else if elem.Join != nil && len(result.Items) > 0 { |
| 239 | // Join without table (should not happen normally) |
| 240 | continue |
| 241 | } |
| 242 | } |
| 243 | |
| 244 | return result |
| 245 | } |
| 246 | |
| 247 | func (c *cc) convertTableExpression(n *chast.TableExpression) ast.Node { |
| 248 | var result ast.Node |
no test coverage detected