Dimitri Fontaine is a PostgreSQL Major Contributor (Extensions, Event Triggers, etc) and maintains pgloader, your migration companion (see https://pgloader.io). Dimitri has authored “Mastering PostgreSQL in Application Development”, the book that teaches SQL to developers, available at https://masteringpostgresql.com.View the profile
About the talk
Applications nowadays are written with the help of many programming languages. When the backend should implement user oriented workflows, it may rely on a RDBMS component to take care of the system’s integrity.
In this talk, we learn advanced SQL techniques and how to reason about which part of the backend code should be done in the database, and which part of the backend code is better written as an SQL query.
Hi everyone. My name is Timothy and I'm going to talk about the article Driscoll today. Maybe you've been using your progress go for a while and maybe you are navigation to record is a toll, keep mostly intended as postgresql. They were right? It's making an application and using progressed. Well, so we're going to see about things that relate to this position. If you're up in a management position or something like that. The first part of the presentation, we will see what I go through some of the basics around
postgresql. So you were supposed to be like that, the parts already. I've been using for Chris Grill on contributing to it for a long time now. So I began in the previous Century with it. I'm currently working at site Tuesday that it has been acquired by Microsoft, so we can check that out. Grumpy. I'm working on a couple projects around or grass grow as a way to contribute to the community. The name implies it's a project at the Lowe's to deploy an automated table for instance in prediction is wrong with your primary server
and then you need the application to connect to the secondary on the secondary to be promoted orchestrating that can be legal complex and Pidgeotto fight over. So you got something you want to do, want to check it out. Another project have been contributing to 4. I think it's 15 min. 15 years now. He's called. Could you load her? Yeah, you're is too low. And when you do that, then there is a related equation that can be grating from one device to another one. It's it's one way of loading, the beta, right? So you can
do a food restaurant with Rayshawn in one car online edition of the slide. So basically you just give us the source connection spring in that instance, the source is an icicle of the target connection string. And then here is what happened So it's a little small to read that every detail the important. Parties that we just scan through the whiskey man with the loader and then magically create the same scheme on the other side and then feeding the data and then complete, the regression with the indexes and
constraints and foreign keys and extra one, and it just works so consider using it slides set. And so you like this conference and want to die even more into what you can do with the, check it out. So if you want to, you can use a special discount that I have set up for a progressive Vision than 20/20 vision. 20 going to be available this week. Will check it out. Right. So now let's get started. Rain. Topeka balls with rice krispies. As an application developer. And so, I used to go and fix the basis for Elder. People
keep their database and things like, As a developer, when you're using for the restaurant opening up, you don't get to be asked why you joined the program, they're already using it. There's a stock, but these in production already you contributing to it, or maybe there is a company-wide policy that, you know, an application should you should use a database. So, you know, in case he's as big as an application. The reason why do some people will ask the question will tell you that the Lord is good
cuz they are objective about the story of distributed file system. May be a service with an HTTP API. Let you know you some grub tonight, then you can recruit blocked from it. But that's storage by the house if you think about it or if you want them to be Jason or maybe the bus or some other formats Park, well that's story story well before where invented storage and isolation. Ensure those concepts are well known around the, a seed thing as a means to make consistent isolated and
durable and that's the four main guarantees that you have in mind when you're using a database of movement. Look up database solutions that are not relational and maybe provide some form of sequels that must be nuts. So that the new sequel movement, They met some interesting trade routes in the a seat cover abilities of the system. So In this first part of the presentation will go through. What does it mean to be a seed? The birthing is atomic. I do miss means that when you send some work to do in the database, it's a one insert onto a date, you
can rub them in a transaction. And then, because either the three orders, inserted later date, the three of them, or they did not happen, it's not possible when you use it cuz action is atomic. It's not possible to have only dancer go through but not the sick. The rest of the transaction which is used for your application development process is because then you don't have to think about what happens if only in certain exit through. Then my skimmer doesn't mean anything anymore
and we only have the right, you want me to do so. So, you tell me when you think about Atomic, what you guys think about, you roll back. So if you do insert updating date and then there is a Pisces, Tammy School, Aurora. Then when you commit, your answer is how we roll back because I'm going to make it happen. You know, include was lacking in our code or don't type it in interactive terminals. Rollback is more often. The result of fire system is full or some of their mistake that iPhones have beaten by 0 and then
you come it also a rollback things I got If you think about it, cuz this girl is very good. At one thing that it is almost the only system that does that you are a Tomatoes actions for d d l, e definition language, also table, great index older Spain. Republic Restaurant. You can roll back. The ski modification application deployed in production Griffin, one, and you have to understand what it means. You run the skimmer entire system is in the middle of it, like you are.
What's next for you? Wasn't you supposed to rest? Well and you've been careful to put your regression, schema changes into one transaction. I'm sorry, we couldn't make it happen to go to the floor of the book and that they were so anywhere. So what kind of application Coronavirus Directions for you and we progressed well, that includes DBL. When you are at the max to be a seed, you also need to be consistent. Assistance. Is. Opening of explain, in terms of constraints. When you
hear the time constraints are at, when I do at least, I don't know about you but for me I don't really want complains. I like to be great. I think about changing a bad way, you know where Sadie are. We can see that. We have a very simple, a table Named Boo with two currents ID and fy15e is integer to try to insert into the ID card on the board for the police or anything else is going to Aurora. In some other systems are so I try to be awful. I know you have zero instead.
So do you want the usual? Well, if it's consistent either it's an integer or it's not and then it's a new world and it's not expected. You don't want, it was not qualified to the way, you saw that consistency. The first level of consistency is the schema design and we'll talk on strings in sequel. To check Note new America's foreign keys and things like that. The fact that we have for Angie's doesn't mean that we are relational. Relational means that in a table food, we have a relation because every role in the team is going to look the same between Club. The same numbers of Columbus and all
of the cousins are older than the same way. And which of them is of the same day at a time. That's what is a relation in mathematics? I do. So in the relational model, something else. On top of that, For a seed University, Eye for isolated. Isolation is kind of the other side of atomicity that go well together. Remember automaker said if you do you insert a date a date they needed, then you can come it as one unit of War going to be in the middle as soon as I can. I see what you guys are currently doing on this Easter.
Which means he doesn't want to see the new data that is making it to the device while it's running. So that's where concurrency on these Elation begins to really make sense, do gray, wolves, original pure. And if you have a big sign on the 4 hours welder, why doesn't want to see any challenge with your application? Still wants to make candies, So what you do is going to take what we call the Snapchat, it's like in the movie, the movie, then you have a Snapchat, the image doesn't move anymore, doesn't mean that the movie stopped. It means that you don't know, maybe someone else is playing it, but
you are not. That's what happens when you don't. The movie is a snapshot of the system are making progress. You are awesome in this equal standards for different levels of isolation. And the Progress Rail. Default one is a rich committed between, as soon as someone else due to commit, you can see which committed instead of being run in the system at the same time, currently. The last guarantee of a seat that you want, one of these, the DD rival. you are gold means that as soon as the date has been committed to this, the system is not to load to lose it
back from your commands, and we're not going to lose it. So you can, you can That's why some people think of our dbms as storage because of the durability of one of the four, main things that you want from an rbms. So, why are you using for gray squirrel as a developer because So the first thing, the first reason why as an application did Roker, it's interesting to use the rest. Well, is because it offers you only a Securities transactions so that you don't have to earn your application layers. Benefit from transactions
in the database a time and that's why we're down to the database system. Using this presentation, The sequel is object-oriented in the implementation that progress will provide if you have time today and within the boundary of the transaction in the database server. So it's very nice and ugly. If you want the forklift with all that was mr. He's going to implement a lot of very Advanced Technologies and Concepts and tools that you need to develop your application anyway. You don't need to do them again. So you're going to bring a lot of time
using for the rest well and to reach a good system in production without having to yourself right recruit for it so easily. That's why it's interesting to you suppose West So that, that was the first part of the presentation to get back on our feet again, though. What's the context around Progress Grill as an application to go through? Why is it interesting you want to talk about it? So I hope this works. Or the second part of the presentation, we're going to die a little more into what you can do with equal because
we don't realize, we're going to be able to see something. We need to download and it's easy to understand for everybody involved. So, I hope he's going to be easy for you to your dirty to you. So you have a year that you have a new pool date, and then you have three numbers which are representing what happened in the New York Stock Exchange, which are the number of shares the number of threads. And the amount of flowers that, you know, temperature for the day, Thing is to find that we are provided with. It's a kind of a CSV like 5 but the numbers are written in a
human readable form. So weird, to separate the dollar signs for $2. so what we're going to do when your is said to be going to say it's text, Gregory Porter data, and then change your mind about the numbers. Being number is rather than text to load the data in using the cookie, cookie. Because it's the climb inside implementation of Kobe, in the 290, Pre-Sequel the console tool that you use in the command line. Company in postgresql is more than welcome.
And it's also streaming protocol. If you are writing an application in Tyson, or JV, or go or whatever, using these days, you can access to the copy protocol and you can open the file and send its content without having to help. Prepare a huge interest statement around recent things, I send the data streaming patient for Westville and online in Spring fashion as it goes. So that's pretty powerful. and when we have the date on the server, then we're going on said before
to remove the car and the girl are signs and make it so that the number of December and then, you know, change them from being text, to being the number that we intend them to be. And for that, we are going to use outdoor table statement. And we are going to rewrite the table only once, and then that one we, right? We are going to replace three columns from text, to begin to Limerick. So there are other ways to do it, but this way is important for me because it allows me to
show you that you can do within a single outdoor table. Three medications at once, if you have the table with maybe you were writing this your stable. Once instead of three times, it's something that is going to be working for you in production when you get a new scheme has or things like that. So that you can do more than one thing in a single altar table, that's a good thing to know. Some addictions that I hear from Developers. After you Sequel and they don't like
it. Is that when they write the code themselves, they can, you know, choose the best algorithm for the job where I seem to know what's going to happen on server. I'm telling you stop and eat sort done in Python. Yeah, year is to retrieve the top 10 rows of the rule, history of New York, Stock Exchange, that we have loaded. Where the number of shares exchanged. They are the highest and we don't want to have the rule thing in memory in a reply Sanskrit. That wasn't what we want is because we only want the 10 entries will figure out that we might be
able to do that with only keeping 10 rows in memory of the time, they're doing this is named to eat sort and there is a python new Brewery in the standard distribution of Titan that is named the issue that you can use. So you can at least and then used it to put the results that you see me the top 10 and writing the code. That way, you make sure that I pull timing memory. You have only sending him and snuck over 1 billion of them. Bring up the size of the days that you are. How do you do that in postgresql in Sequel?
Equal? That's how you do it. You do or did I go to work and you have the same results as using something smart and no memory of the Ring the duration of Aquarius by then then you know fighting up all the tables they tied to memory and then so I can change. And then when you want to know what progress girl is doing well with your data, you can use the explain. Cummins my favorite way to use, explain his explain analyzed, verbals flippers actually going to run the
query for you and also on top of the time it takes for each. And every part of the execution plan on the site, know it might be a little difficult to wrap your head around it. Please take some time and there are a couple of online tools that are very very nice on top of that and will help you through learning how to do it in a very visual eyes weight. I put one line in Bones which is sort my foot tub and absorbed with the memory used during the rule duration of a
query. So we can check. Yes. The wool coat wework in Tysons before. It's actually what will do service side when you just do order by Sol. With this kind of place of one of the first tasks, someone we'd ask you to do is a monthly report. So we were collecting sequel 8 in spread basic, so if you were listening to this presentation, I guess that you already know how to do it. I've been using to char. do you have a nice display and The thing is that you got see that we set the start variable to True Value year. This is actual codes that you can
use with the Pre-Sequel to. So if you're used to using this equal at the command line in the terminal, you can actually do that. And then I have a variable that then you were used later in the clear for the main important thing here is that we don't choose between for them, it's because usually when you use between you know the between is including so you should give the start and end date. Both of them are computed winning the between restriction. Meaning that is very last date of the between interval
is actually the first date of the next. And so these date has been counting price. So to avoid these Bergen lots of back and forth with the accounting department has explicitly inclusive and exclusive boundaries in the world, close I also forgot to ask. How's Westworld to compute the end of the month for you because here except every month in a year that is not a leap year. So do you want to have to compete at yourself in the application. Just before the beginning of the next month which is like less than
the Star Plus interval 1 months. And so are is the result of what it looks like no surprises here. It's very Basic what would it? Still, there is a book, some people might complain. Which month of February at 28 days and we only have 19 rolls what happened with the other rule. So what happened is we don't have any recording of those because they were no activity on those days. Erase. All you do that because if you don't know how to do, Urgency on the lamp. We are just, you know during the Korean the same as before and then swallowing the resulting
memory. And then on the ride, we are going to instance, yet the calendar with the dates API and then we're going to school. And if we find that for a given day, we are Universal set. Some later than going to use it. If you don't, then we're going to buy 21220 instead of hash on the best parts of the slides. And then we are probing into the ass for each date of the calendar to see if you have a reason to or not. And when we do then we can display it. Otherwise you spell, 0 in words, Well, it turns out that implementing a hash joint
and filling in the blanks when there are some blanks is very easy to do in Chico. Before we did there. Why would you do it in sequel? It's because you need to do is buy some right? But maybe, maybe you will have these days without activity Brookland finance department. Yakim Department. Invoicing, maybe everybody has a different way to do it where they need to have a listing with the days with no activity to come. And think about all those things is that the data is in postgresql. So that's the big elephant on the side.
Well, a different parts of the Jungle, maybe that's the new front end and maybe the back of his to return in Geneva or maybe it's the other way around. You don't know, maybe there are some good job done in PHP and you know some guys let's try and Ruby on Rails rather not jungle but somehow we can invent the story around those people going to be in Brooklyn Park. When do I have to solve the same problem more than once in different stocks? And if yes. Can you guarantee that the calendar?
Libraries included in Piketon Ruby MP3 are going to be the same respect to leap years. Maybe maybe, even though it's seconds, I know their kind of calculation computation that you need to do. When you look at the calendar on the calendar is pretty complex. So you know, again that are running in mixed environments. I can already tell you that the default Solutions So, maybe there is some value for you to use a grease gun instead. A resort Brookside. It's basically the same Korea's before we would trick that two of them first week is that we are going to use generate series. That is going to, you
know, I usually the name of the integrative function of the Philippines. The names are not very poetic, it's a rather to the point. So generate series, he's going to give me write a series. And it's going to start with the first date and end with the last day that we come to ear as being just one month. Later, minus one day because this time, it's inclusive. So we don't want to go back there. And we are going to generate a new entry in our service, on an interval of one day. And we want to keep
the calendar dates whether or not there is activity, in fact, book stable, and we do that for the left and that's going to be implemented. possibly as a rash doing exactly the same algorithm as we did, but no use whatever the stock around it is we can see the results unsurprisingly. It's the same as before. It's not very interesting. The next step we have a marketing department, will you talk with the classic we want? We can, we can position. So maybe it's not
clear for everybody that is. So let's see, the result. Play evidence on coronavirus and decide. So you can see the Wednesday and Wednesday, maybe Monday on Monday on Monday, to the next. We saw a creeper something degrees and then the next Monday because they were lucky that day at Stripes. So we want to come to the percentage difference of percentage in between the same date last weekend, Sunday. A reason to do it in Sequel on the last. You can see the same query as before with the dinner ride series and the last joint over the
table. And we use that in a separate folder, Common Table expression and you basically given name any results it in sequel. Relation is like a set of data and like I told you over and over. That's a relation. So he's going to give you a relation. As soon as the relation, that's why you can use Sakura's in the front close because the front close to the right of the of the side yard. The front rows is going to work with the relation. The result of a Karina relation. So we can use the computer data on the right of the screen again.
And, you know, go through the computer data and compute. The person is the premises. And to do that, we are using the windows function. So, I will explain everything in detail about the function, from the Rhythm set. I need to speak to Uber close which rose you want to see which rose your friend with us. We are friends with any road which has the same eyes of the weather. Can we use our kitchen by expect eyes of a prom date, and we ordered him by day so we can see them in a specific order.
Isador means day of week by the eye roast, and dark because there is more than one way to Country. Even the least of pure crows, we're going to use the lag function to see the one before. So, if we have the same day of week, it means we are booked Wednesday, Wednesdays, or maybe book Mondays or something like that. And we can see the The one that is also among them and when we order them but the one the flags one entry before us. So it's the last month or the last Wednesday,
and then on the right you do a very simple person page computation. And there you have the results which is a straight copy paste from the PC controls. Window functions where in the sequel, Stone, the art of 1990 to 89, or sometimes during the 2016 and there were a lot of new things and did you eat dinner along time ago? It was the other time where we invented like IPv6, or maybe unique things that everybody takes for granted. So maybe it's time that you sharpen up on your sequel.
You think window functions. Are you there are new from 92 in the Stone. Okay. What I'm saying bicycling is that you can code in Sequel, right up your application code in Sequel, but to be able to do that. Need to be able to think in sequel. You think with the eunuchs from work, we say everything is a phone. So if you want to print something, something on the printer around as a piece of paper or go over to the printer information on it, you can send a PDF file with the cat utility /, 2 / - / printer five.
Things will happen. When you connect to a network in Unix, you will have a file on this guy or something. Everything is a fighting unit in Geneva. They say everything is so you think in terms of objects and they relate to each other, In Sequel sequel. You need to think in terms of relations in your mind with no relations that you can compose. Define a relation while you do, a select, select is going to introduce the list. Columbus statue. Aquaria, tributes Dimension Sequel and the select operatories name the protection of her that you don't need to know everything about that. You just
See. What are the types? It is between infer that the type as in, you know, strongly tight, programming languages but decides for each variable which type it is. And that's the select part of the aquarium. When you reach the plug part of the query, then you introduce base relation in which you're going to pitch today. Could be also completing relations, so I said query again in a relationship and you can use it to Define to compose your query. That's crazy. And then you have joints and then you have separate drawers and things like that to define a secret
relation. I won't have as much time as I wanted to so I will not detain exactly this late but basically you're here is to put in bold things that relate the concept of relation in sequel. It's interesting and left lateral security, that is nice because it allows you to have a top 10 top three. In that case there is free of all the pilots of Formula 1 Formula 1. Unfortunately I can't dive into it till just now. So I'm trying to say that's equally screwed, then maybe you want to have you
around. Boletos of the screen. It's one of the coronavirus. So before driving mine that we're dealing with a query. So maybe the best way to do it is in your in your car upholstery. You have to run sequel, maybe with junit testing, in regression testing. so, Anyways. Some, some people when they want to integrate sequel, they use, or and saying that, every SQL query provide you with a relation to the are in Orem, should be mapped to the results of the query. If you are around us. Then
it's going to be very nice to use it. If not, you will have trouble. 20 quarts equal in an isolation that exists for bison and exist to support many other languages commence, run the queries and then you integrate this fight here with the load and then you can use as a me some name or function. Cool name in your in your programming language, department stores in, do it on Sunday. So you can know just look through codes to fight inside info on the sequel site in Sequel.
When did when did you eat that way? It means that in your country corset or you have a bunch of signifies that you can use regression testing facility, you know, you register that's you but that you, you register Aquarium plants that you want, we could basically for each Corporation, you give a list of parameters and then you can store them as expected. But the next time you run it if your chance to Cori welle it regarding to verify your test pass. If it's not the case, they say regression testing and integrating into your application.
So easy to do it if you want. Time to finish with this presentation. One minute left, but maybe I need a little more extensions. We can do job location in directly in progress. Grow here, we are losing in the correct or a little strange, but if you think about it, the first time, you saw it as being towards, and there was no way you could get rid contains and we can find into the days. Older entries that are going to complain that that IP address. Which was worse, you're going to have an excluded.
Acidity ear. It's an Excursion constraint. So it's like a generic primary key constraint or unique nice uniqueness. You're going to say that you want to but you say overlap territory reason that he's read overlap. When you have, I can run these leftover locked in your usual. Equality, is there the same one of them overlapping? for a single IP addresses because I guarantee that I don't have overlapping, I guarantee you that there is only one that you know, complaints this IP address And then this query was the query. I used some years ago when the conference was
in Dublin from openstreetmap all the time in the UK And then the IP address was the IP address of the hotel. The conference was given in. And with the query, we could find a list of the third, the wrong, the conference Hotel very easily run like in a few minutes seconds on my laptop for traveling. So you have more time to actually you are nice. You stay on the map or something like that. I know you do another query and for sake of timing, I'm going to
skip over it pretty quickly. That's where you are. I said that you don't really know much about in the produce side, it was like the NBA's basketball games with defensive rebounds, and we can see that some games are usually the numbers of defensive rebounds. With adding 14, you can use it. Like that, with a m d, c, model, view controller with a computer year. Responsible for outwitting, the very nice bar diagram directly in your console as the result of the SQL query. We don't need needing anything fancy on top of it. Like, you know,
Advanced Graphix framework 14 as a number and we can see that working is very out of the ordinary. It's usually $0.25. Thanks to the results of that way. So that's the kind of things that are easy to do. When you are used to using the awesome sequel to Port that is provided for you within this, very nice, do the babies. So, that's it, that's the art of postgresql for you guys or you like to the presentation. Wow, that was great. Thanks a lot to meet you. Thanks. So we gotta we got a pile questions here.
First, the first few are regarding your book. So, let's handle those. Couple people are asking how do they buy your book? Are there is a website online I'm going to try and go to page directly in the area. I hope it worked. So it's going to go there and there was a checkout process and you can copy paste the couple that I mentioned in the book. Using the checkout process on the website. Awesome. Thank you. The other question we've got here from charlesmark. Yes, I purchased the full edition of the previous version of the book mastering the art of postgresql.
And he's planning to purchase the new version but he's wondering about the content. If the queries in the database is or the same, or if they're different between the two versions should purchase the full version again. Or is it enough to The update. That's a very good question. So you did send you a decision of the same book so it's basically a new packaging of the same contents. Plus when you chapter continue in the book on the website and go to the website
and email and I'll give you a discount because most of the content is this. I'll try none of it. So I just sent me an e-mail. Fantastic. All right, so Brett Smith here is asking could PG loader to use for migrating 1pg scheme to a modified and should have used that way? Or is there a better on there? And you can be used that way if we had the feature, some directions to go so do you can have a source and the Target that are both and you can have the front ski mask. So it's one way to do it. It's a good way to do it
if you are, but I think we should propose is like a focus on the maintenance window presents for the new data to be available. If you need to shut down the rights and the old stable in think I got in that case, I would look at the geological or other Solutions. Did you know it's just a tool. So it's very hard to say up front if the best two for your submission, with the exact situation you have in mind, we just use that, right? Yes. As with so many things, try it and see
state of using regress sqo. So you regret screwing a good prototype play around with it. If you like it, you can improve it or he took me like a couple days to write it. So really if you liked it but it's not exactly what you wanted, you know? Make it better either from scratch or just including it where you at the input that is going to be executed during the test. It's called the plan 5 and you can plan to test and for each. And every query, you can have one or many different
series of input with a ring to be used and then tested against that goes with it. So a quick digression there. This is one thing I really appreciate it about your booking and is reflected in this little library to it. Reminded me a lot of the pragmatic programmer. If you remember that book from couple decades ago they just came out with a new version, by the way, it is a heavy focus on not shooing to somebody else's opinions or needs. It's taking the tools available to you and adapting them to your needs. And I think you know the answer you just gave thought
was right in that vein where you provide an example of how to do something, but the expectations you adapt that to your situation. Look up Joker on kubernetes or a Pug Rescue League. Southborough some of their software can be very complex and then think about should I use postgres or rewrite? It is not very meaningful but if you look at just a tool to get to read Aquarius and compare the output of them, You're at work. You know, your exact needs. All right. Well we got a
specific question here from Ramesh. He's asking any fully functional tool to migrate sybase to post rats. So did you know that I mentioned at the beginning of the talk is one of the tools. I've been working on it supposed to because someone paid us to go to get the future. It turns out that say maze in sequel server and come in, and they use the same protocol and they use the same thing. So, I expect that there would be able to connect and do most things with
Outsiders but maybe not the rule thing. I have the truth so you can see their from scratch. Maybe it's better to contribute to it and you can either go to the code and if you don't have the skills or the time, you got no way to contribute financially so that someone else without the time then to do it, but it's open. Actually, I'm told that looked at different, so with some like, it just works. So along those same lines. Then do is asking if you can recommend any good tools to my grade in Oracle database to post dress. So I have to go.
There are a couple tools that exist in different ecosystems like a different Cloud providers. Are invading wizard that are going to take to get to do that for you, right here on the cloud provider. Take that out there are a couple of things around the two that I could already to Fiji on the other things together to complete integration for you. So I wrote a paper about how to make rice from one device to another. And basically you have those four things that you need to care about them, the data is one of
them, but the code is another one. I mean, Oracle usually used storage procedure of a love picture. An open-source. I haven't seen that yet but some of the proprietary of the Rings are going to help you do that too. And the other part of the answer would be, I think we're starting with the Stars. It would be like for implementing SQL Server reporting. Did you know, there it took us a couple weeks, so maybe to implement Oracle supporting, did you know, there is going to take us another couple weeks? I don't know, we didn't try it yet but I
will expect, it's the kind of support we need to put into it. So if you would like to go there about 4 or I can just talk to us on the site, see about this once already and then let's make it happen. Awesome. I am not obliged to mention at this point that EDD offers their own services and support for Oracle migration to go to the website. It's like one of the first things on the page. So check that out. I totally understand. Got to get a plug-in though. Okay. That almost wraps it up. We have one more little
question here. If I can find it, I screwed this up. Oh, here we go. Kick ass. If we can get the book in French. Oh, so some people keep asking that because they were nice things to my accent in English. I'm not to not to even figure out a time French. It's a lot of work to make it happen so we we are running for you. No understanding the interests behind it easy, pork Beaufort. Few people as they expressed interest in to buy in the French version of it not enough that we would start to
the wharf and fortunately so If your friends are you do French people who won the book in front. It's possible for us to proceed it. I'm French after all, but we need to buy it then because it's a lot. So adamant. Awesome. Well thank you so much to me treat. This is been a fantastic little conversation and you your presentation was very informative and enjoyable and thank you to everybody who just made it in the chat and submitted questions and answers. I'll
Buy this talk
Buy this video
With ConferenceCast.tv, you get access to our library of the world's best conference talks.