Thread:Talk:Requests for comment/Abstract table definitions/April 9th discussion/reply (2)

Discussion from yesterday's meeting:


 * 22:17:17 #topic Abstract table definitions
 * 22:17:20 #link https://www.mediawiki.org/wiki/Requests_for_comment/Abstract_table_definitions
 * 22:17:24 #info This should be quick. I'm assuming the comment from Tim, "Seek comment on DSL details." from late July 2013, still holds. I don't think this one needs any discussion, I just wanted to give people a heads-up that it exists, in case anyone wants to collaborate with Daniel Friesen on it.
 * 22:17:40  okay, my opinion about it was requested and I'm sceptic
 * 22:17:55 "... this is a proposal for an abstract language for defining tables, indexes, alters, etc... that; Can be sanely written and read. Is not raw sql (we'll probably PEG parse it) and can be used to build the database for any database engine we support. And can be used by extensions too to define their database pieces abstractly so the extension will work in other databases."
 * 22:18:14 parent5446: bug 41201
 * 22:18:25  what's abstract in proposed "table hitcounter {
 * 22:18:25  @ENGINE(HEAP)
 * 22:18:25  @MAX_ROWS(25000)
 * 22:18:25  hc_id uint
 * 22:18:25  }" ?
 * 22:18:37 I think it's much cleaner to use a basic SQL syntax and transform that to make use of extensions when possible. But parsing is a pain.
 * 22:18:42  it's just MySQL-specific DDL in a different wrap
 * 22:18:51 csteipp: Thanks. That's for the the ClientSession part
 * 22:19:14 so the last time i tried something like this was for StatusNet
 * 22:19:23 using structured arrays rather than a DSL so no parsing ;)
 * 22:19:35 Yeah, Drupal uses that approach. It's pretty heinous...
 * 22:19:37 but i also tried to be clever about auto-applying schema updates, and that was hell
 * 22:19:48  I guess StatusNet didn't need to support holy Oracle?
 * 22:19:50 explicit updates are probably better
 * 22:19:53 we are close to getting structural arrays in DatabaseUpdaters
 * 22:20:03 no, oracle could take a flying &$^# for all we cared ;)
 * 22:20:11  ...together with SQL server and a bunch of FLOSS DBs
 * 22:20:13 ok, so I was wrong and this does inspire discussion :-)
 * 22:20:21 Has anybody looked at Doctrine DBAL's schema generator?
 * 22:20:41 #info skepticism.
 * 22:20:41  NO FRAMEWORKS IN CORE!!1 :P
 * 22:20:45 nope, got a link handy?
 * 22:20:49 It's not the same as this RFC, but provides some of the same deliverables
 * 22:20:52 http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/schema-representation.html
 * 22:21:07 Hehe. we'll probably need a code generation step in core anyway
 * 22:21:21 * brion kind of hews to the idea that mysql *is* a database abstraction layer…. from SQL to myisam/innodb/etc ;)
 * 22:21:44 Since Daniel isn't here, I feel like I should just point him to this log and ask whether he has any responses
 * 22:21:52  can we just ditch myisam support?
 * 22:22:14 people keep wanting postgres and sometimes oracle and mssql, so it seems like there’d be interest in having consistent support, but without the abstraction nobody maintains them
 * 22:22:14 #action sumanah to point Daniel Friesen to log
 * 22:22:39 MaxSem: do we support myisam at all?
 * 22:22:50  last time i checked
 * 22:23:04 parent5446: looks mostly code-based, gets pretty verbose?
 * 22:23:06 anyone in the WMF SF office? can you see whether Steven Walling &/or Ori Livneh are around? because we're about to move on to their RfC
 * 22:23:25 swalling isn't here
 * 22:24:06 Yeah it's mostly code-based
 * 22:24:27 But it's a lot easier to integrate than inventing our own SQL replacement
 * 22:24:33 my main worry there is verbosity kills maintenance
 * 22:24:37 true :D
 * 22:24:42 re: doctrine, isn't there a pure YAML schema syntax?
 * 22:24:44 I'm about to change topic - if people wanna keep talking about the wonderful world of SQL, ORMs, etc., take it to #wikimedia-dev ? :)
 * 22:24:45 scary DSLs also kill maintenance ;)
 * 22:24:52 ok i’m done :)
 * 22:25:06 http://doctrine-orm.readthedocs.org/en/latest/reference/yaml-mapping.html
 * 22:25:12 I'd love we had record locking under control instead... every second SELECT has now FOR UPDATE or so :(