Hi Dag, > That's fine, Lukas, I know it can be a big inhale.. In the interest of > further streamlining our build environment, was there anything is > particualar that you had issues with, or was it just that the > instructions look intimidating? In any case, thats for your interest!
These were my major concerns: 1. I develop with Eclipse, usually. It looks like there are several what Eclipse calls "source folders". One has to find/guess them first. But that wasn't such a big issue. 2. It took me a while to understand that some of the missing artefacts are actually generated (such as the output from sqlgrammar.jj). I imagine that can be done with the main build target in the ant build.xml 3. After generating, I still had lots of compilation errors. I was not sure whether this is 3a. Because of using Eclipse. I know the Eclipse compiler is a bit different from javac. And also the setup in step 1) might've been wrong 3b. Because of some other required artefacts / dependencies that I might have overlooked 3c. Because of trunk being unstable 4. The huge amount of Java classes was quite a treat to my CPU, when compiling. So this was a bit annoying when trying to find out what's wrong... ;-) 5. Even if I had managed to find out how to compile everything, it's really not so simple to add to sqlgrammar.jj, as I didn't easily recognise any structure. Maybe a structured XML file might be more suitable for formally specifying the grammar? I'm guessing that there is quite a bit of implicit magic going on in there... I then tried to grasp what it's output SQLParser.java (I think?) was meant to do and I tried to figure out how I could formally rewrite CASE [x] WHEN [y1] THEN [z1] ... WHEN [yn] THEN [zn] ELSE [zElse] END into CASE WHEN [x = y1] THEN [z1] ... WHEN [x = yn] then [zn] ELSE [zElse] END by looking at the various whenThenExpression() and similar methods. I wasn't quite sure, so I figured I would need to step through that code using the debugger... And I finally came to the conclusion, that this is a non-trivial task for a new contributor, even if you might find it easy :-) Not to mention adding test cases and making them run, etc... Apart from that, I'm developing a database abstraction library: http://www.jooq.org. In jOOQ, it was very easy for me to "simulate" the missing CASE expression as mentioned above. So my users will be able to run both types of CASE expressions on a Derby DB... (along with some other common functionality that I found missing in Derby) Cheers Lukas
