FLWOGR process - TinySocial demo
diff --git a/asterix-app/src/main/resources/sdk/static/js/asterix-api-core.js b/asterix-app/src/main/resources/sdk/static/js/asterix-api-core.js
index 30d49c2..1fa99b6 100644
--- a/asterix-app/src/main/resources/sdk/static/js/asterix-api-core.js
+++ b/asterix-app/src/main/resources/sdk/static/js/asterix-api-core.js
@@ -190,7 +190,7 @@
// AsterixExpression => dataverse
//
// Sets the dataverse for a given api call
-AsterixExpression.prototype.dataverse = function(dv) {
+AsterixExpression.prototype.use_dataverse = function(dv) {
this.dataverse = dv;
this.clauses.push("use dataverse " + dv + ";");
return this;
@@ -209,16 +209,21 @@
//////////////
+inherit(FLWOGRExpression, AsterixExpression);
+
+function FLWOGRExpression() {
+ AsterixExpression.prototype.init.call(this);
+ return this;
+} // ( ForClause | LetClause ) ( Clause )* "return" Expression
+
+
+/*
function CreateExpression() {
AsterixExpression.prototype.init.call(this);
return this;
} // "create" ( "type" | "nodegroup" | "external" <DATASET> | <DATASET> | "index" | "dataverse"
-function FLWOGRExpression() {
- AsterixExpression.prototype.init.call(this);
- return this;
-} // ( ForClause | LetClause ) ( Clause )* "return" Expression
function LegacyExpression() {
@@ -232,7 +237,6 @@
} //( <IDENTIFIER> | <DATASET> ) <LEFTPAREN> ( Expression ( "," Expression )* )? <RIGHTPAREN>
inherit(CreateExpression, AsterixExpression);
-inherit(FLWOGRExpression, AsterixExpression);
inherit(LegacyExpression, AsterixExpression);
inherit(FunctionCallExpr, AsterixExpression);
@@ -494,30 +498,19 @@
//FunctionCallExpr.prototype.set = function(identifier, expressions) {
//TODO
return rectangle_statement;
-};
+};*/
-
///////////////
// Utilities //
///////////////
// Inherit with the proxy pattern
// Source: https://gist.github.com/jeremyckahn/5552373
+//
+// LEGACY: Will change to Firefox's preferred object creation method :)
function inherit(inherits, inheritsFrom) {
function proxy() {};
proxy.prototype = inheritsFrom.prototype;
inherits.prototype = new proxy();
}
-
-/*
-// AsterixIfThenElse
-// Inherits From: AsterixExpression
-//
-// IfThenElse ::= "if" <LEFTPAREN> Expression <RIGHTPAREN> "then"
-// Expression "else" Expression
-AQLIfThenElse.prototype = new AsterixExpression();
-AQLIfThenElse.prototype.constructor = AQLIfThenElse;
-function AQLIfThenElse() {
-
-}*/
diff --git a/asterix-examples/src/main/resources/tiny-social/js/tinysocial.js b/asterix-examples/src/main/resources/tiny-social/js/tinysocial.js
index 11ac63f..b767757 100644
--- a/asterix-examples/src/main/resources/tiny-social/js/tinysocial.js
+++ b/asterix-examples/src/main/resources/tiny-social/js/tinysocial.js
@@ -1,3 +1,30 @@
$(function() {
- alert("hello world");
+
+ // Exact-Match Lookup
+ $('#run0a').click(function () {
+ var a = new AsterixSDK();
+ var q = new FLWOGRExpression()
+ .use_dataverse("Twitter")
+ .bind(new ForClause("user", new AsterixClause().set("dataset FacebookUsers")))
+ .bind(new WhereClause(new BooleanExpression("=", "$user.id", 8)))
+ .return({ "$user" : "$user" });
+ alert(q.clauses);
+ });
+
+ // Range Scan
+ $('#run0b').click(function () {
+ alert("0b");
+ });
+
+ // Other Query Filter
+ $('#run1').click(function () {
+ alert("1");
+ });
+
});
+
+// Bootstraps social data
+function bootstrap() {
+ var loc = window.location.pathname;
+ var dir = loc.substring(0, loc.lastIndexOf('/'));
+}
diff --git a/asterix-examples/src/main/resources/tiny-social/tinysocial.html b/asterix-examples/src/main/resources/tiny-social/tinysocial.html
index 9002267..104f19c 100644
--- a/asterix-examples/src/main/resources/tiny-social/tinysocial.html
+++ b/asterix-examples/src/main/resources/tiny-social/tinysocial.html
@@ -7,15 +7,23 @@
<style>
.pretty-printed {
background-color: #eeeeee;
+ margin-bottom: 1em;
+ }
+
+ .how-to-run {
+ background-color: #c8c8c8;
+ margin-bottom: 1em;
}
body {
font-family : "Helvetica";
+ margin-bottom: 1em;
}
</style>
<script src="../js/jquery.min.js"></script>
<script src="../core/js/easyXDM/easyXDM.debug.js"></script>
+ <script src="http://localhost:19101/sdk/static/js/asterix-api-core.js"></script>
<script src="js/tinysocial.js"></script>
</head>
<body>
@@ -32,9 +40,13 @@
return $user;<br/>
</div>
- <button>Run #0-A</button>
- </div>
+ <div class="how-to-run">
+ javascript here
+ </div>
+ <button id="run0a">Run #0-A</button>
+ </div>
+ <hr/>
<h2>Query 0-B - Range Scan</h2>
<div class="sample-query">
@@ -46,8 +58,12 @@
return $user;<br/>
</div>
- <button>Run #0-B</button>
+ <div class="how-to-run">
+ </div>
+
+ <button id="run0b">Run #0-B</button>
</div>
+ <hr/>
<h2>Query 1 - Other Query Filters</h2>
<div class="sample-query">
@@ -60,103 +76,151 @@
return $user;<br/>
</div>
- <button>Run #1</button>
+ <div class="how-to-run">
+ </div>
+
+ <button id="run1">Run #1</button>
</div>
+ <hr/>
<h2>Query 2-A - Equijoin</h2>
<div class="sample-query">
<div class="pretty-printed">
</div>
- <button>Run #2-A</button>
+ <button id="run2a">Run #2-A</button>
</div>
+ <hr/>
<h2>Query 2-B - Index join</h2>
<div class="sample-query">
<div class="pretty-printed">
</div>
- <button>Run #2-B</button>
+ <div class="how-to-run">
+ </div>
+
+ <button id="run2b">Run #2-B</button>
</div>
+ <hr/>
<h2>Query 3 - Nested Outer Join</h2>
<div class="sample-query">
<div class="pretty-printed">
</div>
- <button>Run #3</button>
+ <div class="how-to-run">
+ </div>
+
+ <button id="run3">Run #3</button>
</div>
+ <hr/>
<h2>Query 4 - Theta Join</h2>
<div class="sample-query">
<div class="pretty-printed">
</div>
- <button>Run #4</button>
+ <div class="how-to-run">
+ </div>
+
+ <button id="run4">Run #4</button>
</div>
+ <hr/>
<h2>Query 5 - Fuzzy Join</h2>
<div class="sample-query">
<div class="pretty-printed">
</div>
- <button>Run #5</button>
+ <div class="how-to-run">
+ </div>
+
+ <button id="run5">Run #5</button>
</div>
+ <hr/>
<h2>Query 6 - Existential Quantification</h2>
<div class="sample-query">
<div class="pretty-printed">
</div>
- <button>Run #6</button>
+ <div class="how-to-run">
+ </div>
+
+ <button id="run6">Run #6</button>
</div>
+ <hr/>
<h2>Query 7 - Universal Quantification</h2>
<div class="sample-query">
<div class="pretty-printed">
</div>
- <button>Run #7</button>
+ <div class="how-to-run">
+ </div>
+
+ <button id="run7">Run #7</button>
</div>
+ <hr/>
<h2>Query 8 - Simple Aggregation</h2>
<div class="sample-query">
<div class="pretty-printed">
</div>
- <button>Run #8</button>
+ <div class="how-to-run">
+ </div>
+
+ <button id="run8">Run #8</button>
</div>
+ <hr/>
<h2>Query 9-A - Grouping and Aggregation</h2>
<div class="sample-query">
<div class="pretty-printed">
</div>
- <button>Run #9-A</button>
+ <div class="how-to-run">
+ </div>
+
+ <button id="run9a">Run #9-A</button>
</div>
+ <hr/>
<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 class="how-to-run">
+ </div>
+
+ <button id="run9b">Run #9-B</button>
</div>
+ <hr/>
<h2>Query 10 - Grouping and Limits</h2>
<div class="sample-query">
<div class="pretty-printed">
</div>
- <button>Run #10</button>
+ <div class="how-to-run">
+ </div>
+
+ <button id="run10">Run #10</button>
</div>
+ <hr/>
<h2>Query 11 - Left Outer Fuzzy Join</h2>
<div class="sample-query">
<div class="pretty-printed">
</div>
- <button>Run #11</button>
+ <div class="how-to-run">
+ </div>
+
+ <button id="run11">Run #11</button>
</div>
</body>