Sue Romano Discusses SQL Development
Paul Tuohy: Hi everybody and welcome to another iTalk with Tuohy. I'm delighted to have with me today someone that I've been trying to grab an interview for quite a while, Sue Romano. Hello, Sue.
Sue Romano: Hi.
Paul: So Sue is one of the, for anybody who hasn't come across Sue's name before, is―well how do I describe the SQL developers working in Rochester?―but for those who sort of came across Sue many years ago, Sue was the person who was primarily responsible for all the great work that was done on the SQL precompiler, of getting it to finally catch up with RPG. For those of us who remember when that precompiler used to always be one or two releases behind, Sue was the one responsible for doing all that great work, plus many, many other things in the development of SQL on the system. So I know that even though Sue, that you are still at times involved with the precompiler, you really have moved onto other things in terms of SQL development. So now bearing in mind Sue, that we only have like 10-15 minutes here, can you tell us what is that you work on at the moment?
Sue: One of the main things that I work on, and I've been working it on it for 25 years, is the SQL parser. That gives me input and changes for every single enhancement that comes through the SQL. Any time the syntax changes, I have changes to make in the parser to make it all―all work. So that's been a big part of my life for the last 25 years. I also work on a service connected to the parser in a way: I work on updating the SQL reference, and that's a rather major undertaking that every enhancement that goes into SQL has to document what the syntax looks like. So if you don't know what the SQL reference is, it's 2,000 pages of really technical stuff [laughs].
Paul: So basically the curse of every developer, the documentation.
Sue: Yeah. Yeah but it's really important that we get it all in there exactly correct because otherwise no one will know how to use all the new function that we add. Another thing I do a lot of is I work with defining what some of the new function is and how it's going to work―how the design goes across the different components of the database. I work on implementation of parts of it. I work out―I work on, you know, how do all the dependencies work on it, and getting the function out the door either for a release or one of the DB PTF groups if we're adding function into a group PTF. So that's always sort of a fun thing to watch something come from an idea into a real usable function.
Paul: Yeah.
Sue: Then the other thing I do that is related to the SQL reference is IBM has a SQL language council that―we work on standards across the three Db2 products. We have DB2 for i, everyone knows that really well, but we also have a Db2 for LUW and a Db2 for z/OS. We get together once or twice a week to talk about what are we trying to add, what new function are we needing, what have the other platforms implemented. We want to make sure we have standard syntax, standard SQL codes and SQL states, standard semantics, that everything is the same. So by getting together and touching base very frequently, we make sure that we are standard across the three Db2s.
Paul: Yeah.
Sue: We also have a representative from IBM that's on the national―the international standards committee, so we have some input and feedback from how the ISO standard works as well.
Paul: Cool.
Sue: So that's all brought into how we implement our version of different enhancements.
Paul: Yeah, okay. I'll come back on pivot in a little while, Sue, what you ought to do with the council. But first of all―actually I don't even know where to begin here, Sue. There's so much you're involved in. So let me start a little bit with maybe just talking about the parser. So when you talk about the parser, are, is―like when you say parser, do you mean this is the thing that interprets a SQL statement, for example, and splits back into how it's actually going to run on the system? Like―?
Sue: Yeah, it's―it's the piece of code that goes in and understands exactly what, what tokens need to be in what order in the SQL statement. It takes it apart, finds all the different pieces, and turns it into an internal representation of the statement. Then that can be used by all the other SQL function as they're going to implement it―
Paul: Wow.
Sue: So they can see that oh, here's what a table name is and here's, you know, here's all the different pieces and what they have to do with it.
Paul: Sooner you than me, Sue. I've got to tell you: As much as I love SQL―I mean, I have always been―I hate the syntax, I really do. So to actually be looking after the code that can interpret―myadmiration for you is going up by the moment [laughs]. So―so―
Sue: It's―it'sa lot of fun.
Paul: So let me talk a little bit about the SQL council then, Sue. So I get the idea that Db2 is sort of a product―and obviously IBM as much as possible wanted it to be the same like everywhere―but obviously there are differences. I mean there's a lot of stuff that's required in Db2 on other platforms that we just don't need on IBM i, it's a thing our architecture doesn't require. So I'm just wondering in terms of when you're working on SQL, how much stuff is coming―are you doing because there are changes being made to Db2―to the complete, you know, on all platforms―so in other words, stuff that I suppose is kind of coming from the council that they're requesting you―you know that the request is we need to have this in Db2? How much of it is coming specifically from the IBM i business side, of this is stuff that needs to go into SQL?
Sue: Usually it's sort of a combination of both. Most of our requests come from our IBM i customers. An example would be JSON. We spent the last couple of years doing a lot JSON work, and that was―that was something that we had requests for and so we took it to the language council and sure enough, there was a standard in the―ANSI standard for the JSON that had just been fin―it was just finishing up at the time, and so then we were able to take that syntax and that's what we implemented it, exactly as they documented it. We were the first of the Db2 family to get all the JSON out there.
Paul: Right.
Sue: And so you know that was a place where we led. The other two are working on it in various stages right now because that's a common request that all customers want access to more JSON. So that was, that was―that was a request that came from our customers, but we took it through standards and made sure that we implemented the standard version. If we implemented something that was not portable across products, we would [laughs]-
Paul: Yup.
Sue: Not have a very usable product.
Paul: Yeah. So tell me as a matter of interest, so if you need to do something in SQL that is specific to i―so I'm thinking for example when creating tables, where you'd have something like a record format name that you'd want to put in there that is sort of not standard―
Sue: Yup.
Paul: Which wouldn’t make sense on any of the other Db2 platforms. Do you kind of have to fight a battle to get that in there?
Sue: No. We just―we take it forward to the SQL language council and say, "we need to add this function. This is what our customers want and do you have a problem with it?" The answer is almost always "no. That's something that is very proprietary for your platform and so, go ahead and implement it."
Paul: Okay. Cool. So I'm not going to ask you why I never got Pivot. All I know is the answer was that the council said no, but it's okay, Sue: You don't need to explain [laughs]. I'm not going to question you on it.
Sue: Yeah, that's not in the standard so―
Paul: Yeah.
Sue: That's the main reason you're not going to see it.
Paul: Okay, Sue. So Sue, one of the other things, and you kind of touched on it, is on the IBM services. Am I right? I get the impression, with sort of the proliferation there have been of IBM services over the last few releases and TRs and everything, is it now a thing just about anybody working on SQL in Rochester is working on IBM i services?
Sue:No. It's really a very small subset of people who are doing services. It all depends. They're not all going to be in the SQL team that are doing the development. Some of the service is actually coming from other parts of the operating system that they're working with us to define what it should look like, but then they're the experts on how the code works and they actually design the service and implement it, test it, and do the whole thing themselves.
Paul:Cool.
Sue:We provide the guidance. We provide the documentation for it, but all depends on what the service is and who is available at that time to produce it.
Paul:Cool. So Sue with all of these things that you've worked on over the years, I mean, do you look back on any of them and sort of go, you know, "that's the one. This was the great thing that I worked on or that I did."
Sue:I don't think there is any one particular thing that stands out as being the most wonderful thing I've worked on. What really excites me is looking back and seeing all these things I've done. Most of the time I'm able to make it fit into the code like it's been there forever and ever. You put it and it just―you go back, look at it later, and say, "that fits perfectly." Whenever something falls in the code like that, it tends to work much better. There's―it'smuch lesserror-prone,and it makes me feel really good when it goes in cleanly like that.
Paul:Cool. So it's an ongoing―it'sjust been a totally ongoing achievement thing. I think that's one of the―that is a great developer's answer, Sue. So listen Sue: before we finish up on this, I always like to end up, you know, getting an idea of what people do when they haven't got their head stuck in the middle of the database for 16 hours a day, seven days a week. So when you're not at work, what do you like to do?
Sue:The main thing I do to relax is I work―I do needlework. It can be cross-stitch, it can embroidery, you know. Whatever it is, just it's one of those things that makes me relax and just unwind. It's very rhythmic and soothing to me.
Paul:So do you find when you're actually doing the needlework, is it one of these things where actually doing the needlework requires so much concentration to detail that that's the relaxation, or is kind a thing where you nearly now do it without thought, and that that's the relaxation?
Sue:I think it's both in a way that you get―it really can be focused on what you're doing and so you're in your own little world that a lot of the rest of things just don't bother you when―whenI'm in my little needlework world.
Paul:Yeah, it's a thing-and of course, you're getting the whole thing of the creativity from it as well.
Sue:Yeah. I don't design my own designs, but just watching it emerge on the fabric is pretty interesting. It's rewarding.
Paul:Yeah. Cool. Absolutely cool. So listen, Sue, I think that's a good note to end on. Thank you so much for taking the time to talk to me. I really do appreciate it, and please on behalf of all of us out there who actually use SQL on the system, please keep doing the work you're doing.
Sue:Well thank you. I intend to.
Paul:Okay. Okay everyone. That's it for this iTalk. Tune in again soon for the next one. Bye for now.