{"action":"opened","issue":{"url":"https://api.github.com/repos/agershun/alasql/issues/94","labels_url":"https://api.github.com/repos/agershun/alasql/issues/94/labels{/name}","comments_url":"https://api.github.com/repos/agershun/alasql/issues/94/comments","events_url":"https://api.github.com/repos/agershun/alasql/issues/94/events","html_url":"https://github.com/agershun/alasql/issues/94","id":62283356,"number":94,"title":"Alasql 2","user":{"login":"agershun","id":643040,"avatar_url":"https://avatars.githubusercontent.com/u/643040?v=3","gravatar_id":"","url":"https://api.github.com/users/agershun","html_url":"https://github.com/agershun","followers_url":"https://api.github.com/users/agershun/followers","following_url":"https://api.github.com/users/agershun/following{/other_user}","gists_url":"https://api.github.com/users/agershun/gists{/gist_id}","starred_url":"https://api.github.com/users/agershun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/agershun/subscriptions","organizations_url":"https://api.github.com/users/agershun/orgs","repos_url":"https://api.github.com/users/agershun/repos","events_url":"https://api.github.com/users/agershun/events{/privacy}","received_events_url":"https://api.github.com/users/agershun/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/agershun/alasql/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/agershun/alasql/labels/help%20wanted","name":"help wanted","color":"159818"},{"url":"https://api.github.com/repos/agershun/alasql/labels/question","name":"question","color":"cc317c"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-03-17T04:24:33Z","updated_at":"2015-03-17T04:24:33Z","closed_at":null,"body":"I opened this issue to collect requirements to the new major version of Alasql. Please write your ideas here. \r\n\r\n1. Change internal representation of data from array of objects to array of arrays. Now Alasql keed all internal data as array of objects, and it does not keep sequence of fields in the record.\r\n\r\n2. Modular structure: I want to separate parser and database backends from SQL core. For example, I wrote [WebSQLShim parser](https://github.com/agershun/WebSQLShim), which can be used as one of parsers to the library. Other parsers can be separate subsets SQL like of T-SQL, MySQL, Oracle, and Postgress, and, of course, Alasql. Now Alasql has a mix of constructions from theses major dialects.\r\n\r\n3. Replace objects to records as interface between parser and interpreter (and compiler). Now parser generates constructions like this:\r\n```js\r\n    { $$ = new yy.DropDatabase({databaseid:$3}); }\r\n```\r\nbut in WebSQLShim it is more logical and easy to interpret/compile (IMHO):\r\n```js\r\n    { $$ = {statement: 'DROP DATABASE', databaseid:$3}; }\r\n```\r\n\r\nPlease, write your ideas about this major change in the library. And sorry, I am very slow on this month with answers."}}