<!DOCTYPE html>

<html>
<head>
    <title>AsterixDB TinySocial Demo</title>

    <style>
        .pretty-printed {
            background-color: #eeeeee;
        }

        body {
            font-family : "Helvetica";
        }
    </style>

    <script src="../js/jquery.min.js"></script>
    <script src="../core/js/easyXDM/easyXDM.debug.js"></script>
    <script src="js/tinysocial.js"></script>
</head>
<body>
    <h1>AQL: Querying TinySocial AsterixDB</h1>
    
    <h2>Query 0-A - Exact-Match Lookup</h2>
    <div class="sample-query">

        <div class="pretty-printed">
            use dataverse TinySocial;<br/><br/>

            for $user in dataset FacebookUsers<br/>
            where $user.id = 8<br/>
            return $user;<br/>
        </div>

        <button>Run #0-A</button>
    </div>

    <h2>Query 0-B - Range Scan</h2>
    <div class="sample-query">
        
        <div class="pretty-printed">
            use dataverse TinySocial;<br/><br/>

            for $user in dataset FacebookUsers<br/>
            where $user.id >= 2 and $user.id <= 4<br/>
            return $user;<br/>
        </div>
        
        <button>Run #0-B</button>
    </div>

    <h2>Query 1 - Other Query Filters</h2>
    <div class="sample-query">
        <div class="pretty-printed">
            use dataverse TinySocial;<br/><br/>

            for $user in dataset FacebookUsers<br/>
            where $user.user-since >= datetime('2010-07-22T00:00:00')<br/>
            and $user.user-since <= datetime('2012-07-29T23:59:59')<br/>
            return $user;<br/>
        </div>
        
        <button>Run #1</button>
    </div>

    <h2>Query 2-A - Equijoin</h2>
    <div class="sample-query">
        <div class="pretty-printed">
        </div>
        
        <button>Run #2-A</button>
    </div>

    <h2>Query 2-B - Index join</h2>
    <div class="sample-query">
        <div class="pretty-printed">
        </div>
        
        <button>Run #2-B</button>
    </div>

    <h2>Query 3 - Nested Outer Join</h2>
    <div class="sample-query">
        <div class="pretty-printed">
        </div>
        
        <button>Run #3</button>
    </div>

    <h2>Query 4 - Theta Join</h2>
    <div class="sample-query">
        <div class="pretty-printed">
        </div>
        
        <button>Run #4</button>
    </div>

    <h2>Query 5 - Fuzzy Join</h2>
    <div class="sample-query">
        <div class="pretty-printed">
        </div>
        
        <button>Run #5</button>
    </div>

    <h2>Query 6 - Existential Quantification</h2>
    <div class="sample-query">
        <div class="pretty-printed">
        </div>
        
        <button>Run #6</button>
    </div>

    <h2>Query 7 - Universal Quantification</h2>
    <div class="sample-query">
        <div class="pretty-printed">
        </div>
        
        <button>Run #7</button>
    </div>

    <h2>Query 8 - Simple Aggregation</h2>
    <div class="sample-query">
        <div class="pretty-printed">
        </div>
        
        <button>Run #8</button>
    </div>

    <h2>Query 9-A - Grouping and Aggregation</h2>
    <div class="sample-query">
        <div class="pretty-printed">
        </div>
        
        <button>Run #9-A</button>
    </div>

    <h2>Query 9-B - (Hash-Based) Grouping and Aggregation</h2>
    <div class="sample-query">
        <div class="pretty-printed">
        </div>
        
        <button>Run #9-B</button>
    </div>

    <h2>Query 10 - Grouping and Limits</h2>
    <div class="sample-query">
        <div class="pretty-printed">
        </div>
        
        <button>Run #10</button>
    </div>

    <h2>Query 11 - Left Outer Fuzzy Join</h2>
    <div class="sample-query">
        <div class="pretty-printed">
        </div>
        
        <button>Run #11</button>
    </div>

</body>
</html>
