Giter Site home page Giter Site logo

sqlu's Introduction

sqlu

A simple HTTP API wrapping sqlparser-rs.

Example

Request

POST /ast/

{
    "dialect": "snowflake",
    "sql": "with source as ( select id, name, count1, count2 from users) select name, max(count1, count2) as max_count from source"
}

Response

[{
    "Query": {
        "body": {
            "Select": {
                "cluster_by": [],
                "distinct": false,
                "distribute_by": [],
                "from": [{
                    "joins": [],
                    "relation": {
                        "Table": {
                            "alias": null,
                            "args": null,
                            "name": [{
                                "quote_style": null,
                                "value": "source"
                            }],
                            "with_hints": []
                        }
                    }
                }],
                "group_by": [],
                "having": null,
                "into": null,
                "lateral_views": [],
                "projection": [{
                        "UnnamedExpr": {
                            "Identifier": {
                                "quote_style": null,
                                "value": "name"
                            }
                        }
                    },
                    {
                        "ExprWithAlias": {
                            "alias": {
                                "quote_style": null,
                                "value": "max_count"
                            },
                            "expr": {
                                "Function": {
                                    "args": [{
                                            "Unnamed": {
                                                "Expr": {
                                                    "Identifier": {
                                                        "quote_style": null,
                                                        "value": "count1"
                                                    }
                                                }
                                            }
                                        },
                                        {
                                            "Unnamed": {
                                                "Expr": {
                                                    "Identifier": {
                                                        "quote_style": null,
                                                        "value": "count2"
                                                    }
                                                }
                                            }
                                        }
                                    ],
                                    "distinct": false,
                                    "name": [{
                                        "quote_style": null,
                                        "value": "max"
                                    }],
                                    "over": null
                                }
                            }
                        }
                    }
                ],
                "qualify": null,
                "selection": null,
                "sort_by": [],
                "top": null
            }
        },
        "fetch": null,
        "limit": null,
        "lock": null,
        "offset": null,
        "order_by": [],
        "with": {
            "cte_tables": [{
                "alias": {
                    "columns": [],
                    "name": {
                        "quote_style": null,
                        "value": "source"
                    }
                },
                "from": null,
                "query": {
                    "body": {
                        "Select": {
                            "cluster_by": [],
                            "distinct": false,
                            "distribute_by": [],
                            "from": [{
                                "joins": [],
                                "relation": {
                                    "Table": {
                                        "alias": null,
                                        "args": null,
                                        "name": [{
                                            "quote_style": null,
                                            "value": "users"
                                        }],
                                        "with_hints": []
                                    }
                                }
                            }],
                            "group_by": [],
                            "having": null,
                            "into": null,
                            "lateral_views": [],
                            "projection": [{
                                    "UnnamedExpr": {
                                        "Identifier": {
                                            "quote_style": null,
                                            "value": "id"
                                        }
                                    }
                                },
                                {
                                    "UnnamedExpr": {
                                        "Identifier": {
                                            "quote_style": null,
                                            "value": "name"
                                        }
                                    }
                                },
                                {
                                    "UnnamedExpr": {
                                        "Identifier": {
                                            "quote_style": null,
                                            "value": "count1"
                                        }
                                    }
                                },
                                {
                                    "UnnamedExpr": {
                                        "Identifier": {
                                            "quote_style": null,
                                            "value": "count2"
                                        }
                                    }
                                }
                            ],
                            "qualify": null,
                            "selection": null,
                            "sort_by": [],
                            "top": null
                        }
                    },
                    "fetch": null,
                    "limit": null,
                    "lock": null,
                    "offset": null,
                    "order_by": [],
                    "with": null
                }
            }],
            "recursive": false
        }
    }
}]

sqlu's People

Contributors

zhangyuan avatar dependabot[bot] avatar

Stargazers

Yansen Dou avatar

Watchers

 avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.