Show HN: Rainbow Query Language
RBQL - Rainbow Query Language

    
    
    
        RBQL is a technology that provides SQL-like language for data-transformation and data-analysis queries for structured data (e.g. CSV files, log files, Python lists, JS arrays). RBQL evaluates input query using one of the available general-purpose "backend" languages (currently Python or JavaScript). RBQL allows to use non-SQL expressions inside SQL statements, e.g for JavaScript backend:
        select a1, a2 * 10 where a1 == "Buy" && a4.indexOf('oil') != -1 order by parseInt(a2), a4 limit 100
        Combination of SQL statements and expressions from a general-purpose language makes RBQL very easy to learn and use, you just need a basic understanding of SQL and one of the available backend languages. So maybe you already know RBQL!
        The first word "Rainbow" in RBQL reflects its diverse multi-language nature.
        
        
        RBQL has simple modular design and no third-party dependencies. It is available as standalone CLI apps, text editor plugins and 2 libraries (for Python and JS) which would allow you to easily enhance your own app with SQL capabilities.
    

    
        RBQL is available for the following platforms:
        
        RBQL – CLI App and library for Python. Also provides `%rbql` "magic" IPython/Jupyter command (usage example)
        RBQL – CLI App and library for Node.js (npm)
        Rainbow CSV – extension for Vim editor
        Rainbow CSV – extension for Visual Studio Code editor
        Rainbow CSV – extension for Sublime Text 3 editor
        Rainbow CSV – extension for Atom editor
        
    
    
        RBQL supports all main SQL keywords: SELECT, UPDATE, WHERE, ORDER BY, JOIN, DISTINCT, GROUP BY, TOP, LIMIT, ...
        
        ... And some cool features that traditional SQL engines do not provide!
        
        
        RBQL implementation is based on a clever hack, see the explanation below if you are curious.
        
    

    
        RBQL Web Demo
    
    
        In this Web Demo only JavaScript backend is available.
        
    
    
        Use the default test table below or "upload" your own.
            Your data is safe: selected table doesn't actually get uploaded anywhere - all operations are performed locally in the browser.
            Every query result is a first-class table.
        
        
    
    

    
    Select spreadsheet file to use. Your data is safe: the file won't be sent over network - all operations are performed locally in the browser. Performance of this demo is limited by your browser processing capabilities - do not submit very big files!
    
    1.
    
    2. Choose file separator character:
    
