Re Inventing Query Language

Embed Size (px)

Citation preview

  • 1. Re-inventing query language Ruslan Zakirov < [email_address] > YAPC::EU Aug 2009

2. Queries 3. Queries select * from U where ... 4. Queries SQL 5. Queries S...? Query Language 6. SQL Simple? 7. SQL Small? 8. SQL Solid? 9. SQL What does S. stand for? 10. SQL (may be)Stupid 11. SQL (may be)Suckish 12. Jifty::DBI 13. Jifty::DBI ORM for Jifty 14. Jifty::DBI Records Collections 15. tisql 16. tisql ti-skull 17. tisql Query Language 18. tisql String-centric 19. Why string? Serialization 20. Why string? Typing 21. Why string? CLI 22. Why string? API 23. Syntax basics 24. Basics .foo = 'str' OR ( .baz > 10 ) 25. Basics AND OR ( ) ' " 26. Basics [!]=, [> refers_to Foo 41. [no] joins by tisql '...' 42. [no] joins column attrs =>... by tisql "attrs.model = 'User' AND attrs.record = .id" 43. Combining things 44. Combining .members.first = 'John' AND .members.last = 'Doe' 45. Combining (John Doe) (John S., D. Doe) 46. Combining 1. Aliases 47. Combining FROM .members AS member WHERE member.first = 'John' AND member.last = 'Doe' 48. Combining 2. Placeholders 49. Combining column members => by tisql ' AND members.first = %f ' 50. Combining has .members {first => 'John'} {last => 'Doe'} 51. Combining Idea! Any column! 52. Strings suck 53. Quote 54. API 55. API binding 56. API ->tisql('.foo = ?', bar); 57. API Q and C functions 58. API overload 59. API Q(...) | Q(...) Q(...) & Q(...) 60. Boring 61. Other Query Languages 62. Other QLs from:john (to:me OR cc:me)asshole 63. Other QLs Parse 64. Other QLs Parse ::BooleanLogic 65. Other QLs callbacks based 66. Other QLs default struct 67. Other QLs processing 68. Cool things 69. cool things joins bundling 70. cool things (tag:foo OR tag:bar) tag:zoo 71. cool things joins merging 72. cool things .a.b.c.col = 'x' AND .a.b.c.d.col = 'y' 73. cool things subset extraction 74. cool things subject:x !tag:foo tag:bar 75. cool things subject:x 76. Where? 77. Where

  • Parse::BooleanLogic CPAN

78. tisql Jifty::DBI's branch

  • http://svn.jifty.org/svn/jifty.org/Jifty-DBI/branches/tisql/

79. the:end 80. Questions? 81. Speak slow and loud 82. Not thaaaat slow