Presentation is loading. Please wait.

Presentation is loading. Please wait.

Continue the Development of SQL in fJySwan Blake Kobelan, Brittany Blassingill, Andrew Spence.

Similar presentations


Presentation on theme: "Continue the Development of SQL in fJySwan Blake Kobelan, Brittany Blassingill, Andrew Spence."— Presentation transcript:

1 Continue the Development of SQL in fJySwan Blake Kobelan, Brittany Blassingill, Andrew Spence

2 What we added Basic functionality: –Doubles –Dates –Longs –Strings Expressions: –Addition –Multiplication –< –> –!=

3 What we added ORDER Bys JOIN OR AND ? - SUBSELECT

4 What we initially did Instead of implementing these changes in PyTuple.java, we created a visitor class that used JSQLParser and it’s own internal grammar to recognize filters, tables, columns, etc.

5 What we initially did We also made some minor changes in Python.g:

6 ‘’SELECT * FROM Persons WHERE FirstName=‘Tove’ OR FirstName=‘Ola’’’ The JSQL Parser has a ‘temp’ global variable that is changed based on its internal grammar. The parser will automatically determine (via its accept method) which part of the SQL statement is what and passes it into the appropriate visit method. The temp variable is then changed. In this case, it will first get the table name: temp = Persons Will call this

7 ‘’SELECT * FROM Persons WHERE FirstName=‘Tove’ OR FirstName=‘Ola’’’ It will then check for a WHERE clause and goes through a series of visits: getWhere() visit(OrExpression) getLeftExpression() getRightExpression() visit(EqualsTo) getLeftExpression() getRightExpression() getLeftExpression() getRightExpression() visit(column) visit(String) visit(column) visit(String) temp = FirstName temp = ‘Tove’ temp = FirstName temp = ‘Ola’

8 ‘’SELECT * FROM Persons WHERE FirstName=‘Tove’ OR FirstName=‘Ola’’’ getWhere() visit(OrExpression) getLeftExpression() getRightExpression() visit(EqualsTo) getLeftExpression() getRightExpression() getLeftExpression() getRightExpression() visit(column) visit(String) visit(column) visit(String) temp = FirstName temp = ‘Tove’ temp = FirstName temp = ‘Ola’

9 ‘’SELECT * FROM Persons WHERE FirstName=‘Tove’ OR FirstName=‘Ola’’’ getWhere() visit(OrExpression) getLeftExpression() getRightExpression() visit(EqualsTo) getLeftExpression() getRightExpression() getLeftExpression() getRightExpression() visit(column) visit(String) visit(column) visit(String) temp = FirstName temp = ‘Tove’ temp = FirstName temp = ‘Ola’

10 ‘’SELECT * FROM Persons WHERE FirstName=‘Tove’ OR FirstName=‘Ola’’’ getWhere() visit(OrExpression) getLeftExpression() getRightExpression() visit(EqualsTo) getLeftExpression() getRightExpression() getLeftExpression() getRightExpression() visit(column) visit(String) visit(column) visit(String) temp = FirstName temp = ‘Tove’ temp = FirstName temp = ‘Ola’

11 ‘’SELECT * FROM Persons WHERE FirstName=‘Tove’ OR FirstName=‘Ola’’’ getWhere() visit(OrExpression) getLeftExpression() getRightExpression() visit(EqualsTo) getLeftExpression() getRightExpression() getLeftExpression() getRightExpression() visit(column) visit(String) visit(column) visit(String) temp = FirstName temp = ‘Tove’ temp = FirstName temp = ‘Ola’

12 ‘’SELECT * FROM Persons WHERE FirstName=‘Tove’ OR FirstName=‘Ola’’’ getWhere() visit(OrExpression) getLeftExpression() getRightExpression() visit(EqualsTo) getLeftExpression() getRightExpression() getLeftExpression() getRightExpression() visit(column) visit(String) visit(column) visit(String) temp = FirstName temp = ‘Tove’ temp = FirstName temp = ‘Ola’

13 ‘’SELECT * FROM Persons WHERE FirstName=‘Tove’ OR FirstName=‘Ola’’’ getWhere() visit(OrExpression) getLeftExpression() getRightExpression() visit(EqualsTo) getLeftExpression() getRightExpression() getLeftExpression() getRightExpression() visit(column) visit(String) visit(column) visit(String) temp = FirstName temp = ‘Tove’ temp = FirstName temp = ‘Ola’

14 ‘’SELECT * FROM Persons WHERE FirstName=‘Tove’ OR FirstName=‘Ola’’’ getWhere() visit(OrExpression) getLeftExpression() getRightExpression() visit(EqualsTo) getLeftExpression() getRightExpression() getLeftExpression() getRightExpression() visit(column) visit(String) visit(column) visit(String) temp = FirstName temp = ‘Tove’ temp = FirstName temp = ‘Ola’

15 ‘’SELECT * FROM Persons WHERE FirstName=‘Tove’ OR FirstName=‘Ola’’’ getWhere() visit(OrExpression) getLeftExpression() getRightExpression() visit(EqualsTo) getLeftExpression() getRightExpression() getLeftExpression() getRightExpression() visit(column) visit(String) visit(column) visit(String) temp = FirstName temp = ‘Tove’ temp = FirstName temp = ‘Ola’

16 ‘’SELECT * FROM Persons WHERE FirstName=‘Tove’ OR FirstName=‘Ola’’’ getWhere() visit(OrExpression) getLeftExpression() getRightExpression() visit(EqualsTo) getLeftExpression() getRightExpression() getLeftExpression() getRightExpression() visit(column) visit(String) visit(column) visit(String) temp = FirstName temp = ‘Tove’ temp = FirstName temp = ‘Ola’

17 ‘’SELECT * FROM Persons WHERE FirstName=‘Tove’ OR FirstName=‘Ola’’’ getWhere() visit(OrExpression) getLeftExpression() getRightExpression() visit(EqualsTo) getLeftExpression() getRightExpression() getLeftExpression() getRightExpression() visit(column) visit(String) visit(column) visit(String) temp = FirstName temp = ‘Tove’ temp = FirstName temp = ‘Ola’ Will do the same thing for the right hand side

18 ‘’SELECT * FROM Persons WHERE FirstName=‘Tove’ OR FirstName=‘Ola’’’ wasEquals is eventually set to false since there were no matches and the OR clauses are interpreted as filters: Finally, the columns are added:

19 Final test output before RDF conversion: ‘’SELECT * FROM Persons WHERE FirstName=‘Tove’ OR FirstName=‘Ola’’’

20 Conversion to RDF Our conversion takes place inside our SQLVisitor class. As a small example: SELECT * FROM NEWTEST1 –Based on what is seen, a string gets consistently built until it’s in the correct RDF format:

21 SELECT * FROM NEWTEST1

22 –SELECT sub, pred, obj from table( SEM_MATCH(SELECT ?sub ?pred ?obj WHERE (?sub ?pred ?obj. )’. SEM_Models(‘NEWTEST1_CS345_RICK), null, SEM_ALIASES(SEM_ALIAS(‘tbl’, ‘www.example.org/NEWTEST1/’)), null))

23 Implementation in PyTuple.java –Since we used a visitor class, implementation was pretty simple: –We just made a visitor object and passed in the sql statement,

24 Concepts Covered

25

26

27

28

29

30

31

32


Download ppt "Continue the Development of SQL in fJySwan Blake Kobelan, Brittany Blassingill, Andrew Spence."

Similar presentations


Ads by Google