MySQL Gets Functions in Java
Java Coward writes "Eric Herman and MySQL's Brian "Krow" Aker have released code to allow the DBMS MySQL to run Java natively inside of the database. The code allows users to write functions inside of the database that can be then used in SELECT/INSERT/UPDATE statements. So when will someone do Ruby?"
Now how about a way to do online backups of the new table types with out having to buy a license to do it?
I wonder how this affects performance especially compared to regular user defined functions? (Available in later releases of MySQL). This is indeed an interesting twist. It certainly can help speed up development of large projects (java works well in a large/many programmer env.) Like a lot of other tools, it remains to be seen how people put this to use. Too often people learn one thing, and like the saying goes, when all you have is a hammer, every problem looks like a nail. Lets see where this goes shall we?
"Science is about ego as much as it is about discovery and truth " - I said it, so sue me.
Rumor has it that he was fired (or was going to be, so he "resigned"). I'd wait a couple weeks to make sure no backdoors are found.
MySQL Ruby Interface
Google Cache here.
Google's your friend
An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
I'm sure if you are the DB admin you will be able to turn this feature off.
So when will someone do Ruby?
Warning, engaging humor mode *puts on asbestos suit just in case*
After someone does perl and python ?
(notice that both of those languages, as well as tcl, are already included in the other free database project: postgres)
The Army reading list
The above interface allows you to use MySQL via Ruby. What's required here is the converse.
An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
I don't know why everybody wants to keep distance from Java. It is a very nice language implementing the very well the OOP paradigm.
The 'lusers' may not use this new feature but Java programmers will and hopefully will enjoy it.
Yup, whatever happened to the idea of layers, tiers of clientapp, business logic and the dB in some storage area?
The more you know, the less you need. [Admin added: from me.]
I hope this isn't a "Hey wouldn't it be really neat!" feature. The last time that happened, someone at MS thought executable email would really neat.
One line blog. I hear that they're called Twitters now.
That is the most useless waste I time I have ever seen!
Now leave me alone as I am going to spend the next 2-3 hours playing with it. Really Cool.
I used Java stored procedures a lot back when I was working at a .com. For someone who's already using Java its a lot easier than learning each database vendors proprietary language. It's also good for keeping MySQL feature competitive with open source dbs, since Java stored prcedures have already been implemented for PostgreSQL
Comment removed based on user account deletion
And when I want to move my app to a different db or support multiple dbs, and discover that the server side depends on this cute hack?
One line blog. I hear that they're called Twitters now.
Did you not think about that post? Sounds like you just dislike Java so much that hearing it in the same sentance as MySQL makes you cringe.
1) Java isn't going to slow down any queries unless you use Java functions.
2) What do you care that someone else isn't smart enough to write good software?
3) MySQL as it stands has no other way to really embed functions easily, and it's actually more effecient to run code on the server and transfer data back afterwords.
Karma Clown
> in the database?
Nope, they're external to the DB.
> program your own functions like
> insert/modify/etc in java
You can program functions in Java, and then call them from MySQL queries. From the README:Nifty!
The Army reading list
Yay, this project has finally hit Alpha 3 version 0.1, which means that it's the closest OpenSource project yet to a 1.0 release.
Yes, I'm being sarcastic, I just think it's hilarious that someone would post this implying that the code is anywhere near done. It's barely beyond a twinkle in some kids eye.
If you have java in the database, it will make it possible to integrate JMS (messaging). A lot of the big databases let you do this, e.g. have a trigger that sends a message to invalidate a cache entry. That sort of thing can be useful.
Now if only I can convince management that this is good. =/
-gam
"In theory, theory and practice are the same; in practice, they are not."
"Nativily"? Boy, the Christmas spirit is just busting out everywhere today!
What I'm listening to now on Pandora...
Then you port a small amount of code to the embedded languages of that DBMS. Every other DBMS has embedded functions except for MySQL, some even support Java.
Karma Clown
The ability to write stored procedures in Java has been in Oracle for some time but I still cannot figure out why anyone would do that.
Java is a nice programming language. Go write web apps, middleware, network software, desktop apps with it but not stored procedures.
Is mySQL process going to start the whole new JVM on every hit? Or VM is going to run separately and it is bridged somehow (God, not over the network)?
Now if you ask me, even stored procedures in general become more and more evil.
And in our age of $50 2Ghz CPUs and Gigabit ehternet the performance is no longer an issue.
To me, a database is a collection of tables and indexes with referencial integrity, failover and redundancy. It should do just one thing and do it well. Attempts to add features like that seem to be just a marketing thing by their new commercial overlords.
Comment removed based on user account deletion
I care because when you have 200 shared hosting accounts on one server all it takes is one idiot to load things down.
Most of the time we detect who it is and suspend their account, but I still wouldn't want them running java code inside mysql.
Give me a bottle of scotch, a phone number, and cab fare.
And a camera.
untrue, MySQL IS ported to the most popular platforms too, Linux, Windows, Mac OS X, FreeBSD, and more... Please make sure of your facts before posting next time.
The IT section color scheme sucks.
The thing no one seems to have mentioned is that Oracle already does this and has for many years. I can't find any docs on it off-hand, but I know you can just drop a .jar file into Oracle and it will let you do similar stuff. This is nice because it lets you use a common language for doing your stored procedures instead of learning a different language for each database (e.g. Oracle uses PL/SQL).
People who are saying "what's the use of this" or "This is just going to bog down the database" most likely have never worked in the industry. Stored procedures are a very common part of large systems and adding this functionality to MySQL will go a long ways in promoting MySQL use in bigger companies.
Since the main page of slashcode.com hasn't been updated since August 30, 2003 perhaps he doesn't work on that site anymore?
Repeat after me: Java is not the same thing as Javascript.
Don't blame me; I'm never given mod points.
I wouldn't say that Java's main advantage is compatablity with almost every platform
I would say that it is definitely one of Java's advantages. I think this feature is useful from the perspective that more small applications will be written by developers that may not be skilled with SQL coding. Many open source projects start out with one developer, and that single developer might not have an arsenal of skills. That is where this sort of thing helps out, that single developer will now be able to use his/her favorite host-language (if Java is his/her favorite host-language) to solve a SQL problem that he/she may not be capable of solving with SQL. Later on, if/when the project grows, the embedded Java may get removed, but at least something had been released, and the concept gets proven.
As an Oracle DBA, at a small company, we're constantly looking for less expensive SOLID alternatives to our traditional Oracle/Solaris approach to the back end.
...
When I say solid, I mean is able to handle very large files (excess of 50GB per datafile), has stored procedures and trigger infrastructure (a traditional MySQL weak point, and the main reason we've passed on it so far), an integrated backup system a la netbackup/RMAN, and prefereably a back end compiled scripting solution a la PL/SQL.
This looks like a sorta kinda solution to the last (PL/SQL alternative), but I'm curious to know about the rest, and also how it performs. Ideally for us, we'd also like to see better clustering and large system support examples in the real world before we embarked onto this particular voyage with.. say a production ERP system.
Are we talking about a good replacement for Access or for DB2 here?
Enquiring minds want to know
-chitlenz
Imagination is the silver lining of Intelligence.
I agree, migrating from another database to mysql is a pain in the ass and impossible, due to the lack of a lot of functionalities you said.
Postgresql, in the other side, is close to other databases, and migrating to it maybe is a pain in the ass too, but not impossible.
Last version of Postgresql is really fast, so why should I use Mysql?
ajf
Then don't compile in such support.
Did you not think about that post? Sounds like you just dislike Java so much that hearing it in the same sentance as MySQL makes you cringe.
I think the answer to both questions is yes.
1) Java isn't going to slow down any queries unless you use Java functions.
Which is exactly what the poster fears they will do.
2) What do you care that someone else isn't smart enough to write good software?
I think this is the heart of your disconnect with the poster. True, if you are using MySQL as most do, in a small shop, the dba and the application programmer are probably the same person. But in most shops employing RDBMS, you have one team that maintains the OS, one team that maintains the database, one team that maintains the network, and finally a team that writes and maintains the actual applications. What the poster is probably worried about is being a DBA when some application programmer uses Java badly and then his boss leans on him, as the DBA, to make the process work faster. In such a case you would deeply, deeply care.
3) MySQL as it stands has no other way to really embed functions easily, and it's actually more effecient to run code on the server and transfer data back afterwords.
Sounds like a job for stored procedures ala Oracle. If MySQL does not have them it should.
Oh, come on, everyone knows mySQL doesn't support subqueries because they allow a lazy user to slow down the database. You're supposed to do simple queries against the database, and then JOIN the results in your C application. Anyone who can't write a safe, fast JOIN in C is just a bad programmer, and should not be using an enterprise-level RDBMS like mySQL. Go back to FileMaker, you SQLamers!
(This troll brought to you by mySQL AB, the folks who brought you other hard truths about database programming, such as "Transactions are for sloppy programmers" and "Any relational integrity checking you can do in the DBMS, you can do easier in your application." Remember: Only asshole DBAs believe all that Codd & Date "relational" bullshit.)
Doesn't this open sort of a large can of worms from a security standpoint?
This idea has been around for a while; at least since the late 1980's. The motivation for these kinds of DBMS features is that there are lots of programming situations where SQL's types and expressions aren't powerful enough, and that the language doesn't have a lot of modularity. User-defined functions are supposed to overcome this limitation.
This kind of feature brings MySQL closer to being an "Object-Relational" database.
From a theory point of view it goes a long way towards implementing the Relational Model's idea of a 'domain' (not just INTEGER, VARCHAR or whatever, but PART_NUM, PERSON_NAME etc). This is supposed to improve the integrity of the data in the database.
From a practical systems point of view it can have a big performance impact. If you're opening cursors and then looping over some Java code on the client to identify only those result rows that you're interested in, then you're paying a pretty big 'system tax' to transfer the data from the DBMS through the connection and into the external program's address space. Pushing the code (which will have to run anyway) into the DBMS eliminates the transfer overhead.
The point of the original Postgres was to figure out how you incorporate these features into a query processing framework. Most modern DBMS products have the feature; some of them do a better job implementing it than others.
it allows for stored procedures.
"Sounds like a job for stored procedures ala Oracle. If MySQL does not have them it should."
That's the issue -- the poster's complaint actually has nothing to do with MySQL embedding Java in particular -- he's worried that if he allows users to execute stored procedures they can bog down his database.
I don't know about MySQL, but in Oracle, Sybase, etc., you can put a CPU time limit on queries so that if someone starts sucking the system down their queries time out.
Enable 3D printed prosthetics!
Have you been swallowing the tripe from the MS developers journal again ?
Have you even worked with Java ? I don't mean puttering around at home in between failed job interviews. I mean in a production environment.
Javascript != Java.
Java is not well supported. Linux, solaris, windows, on x86 or sparc. That's about all that falls in the "well supported" category, maybe macosx. Other OS's and/or architectures have old, broken, or just plain don't have jdks. Maybe if Sun didn't insist on trying to control java in every way, and made it open, then it would really be something. But as is, its just as portable as C#.
But in most shops employing RDBMS, you have one team that maintains the OS, one team that maintains the database, one team that maintains the network, and finally a team that writes and maintains the actual applications. What the poster is probably worried about is being a DBA when some application programmer uses Java badly and then his boss leans on him, as the DBA, to make the process work faster.
I work in such a company, as an application programmer. Where I work, it's not up to the DBA to make things run faster - if an application is too slow, it's our problem. True, we can call on the various other people to help us in tracking down the cause of the problem, working out what needs to be done to improve the situation, etc, but ultimately it's our responsibility. It may be that the solution is to increase the spec of the machine(s), or upgrade the network, but we'd still be very much involved in coming to that decision.
So, as a counter example - from my position as a programmer, I'd be rather upset if my otherwise well-performing code is crippled by an underspecced machine or poorly-configured database. I trust the people responsible to do their jobs properly, though.
It's official. Most of you are morons.
Now can I run a MySQL server as an appserver, with SQL selectable java objects? I want mobile Internet java objects to travel among a directory of MySQL appservers, connected to live data through the sandbox.
--
make install -not war
I know java is not javascript. I am just sick of seeing little popups and crap on webpages that use Java (real java). I.e. I watched the freakin sun little "cup and steam" and a grey space load before I get something that looks like a casino or something".
Such that I uninstalled Java.
sig?
That was spread (as I recall) because of default passwords not being changed on sample databases. I know lots of people that dont change their default MySql root password. (I tellem but WTF, its their bandwidth...)
Seems like they are trying bring MySql in direct competition with M$SQL server... ( as a spreader of worms )
i will as soon as i can get her to drink this liter of vodka.
pr0n - keeping monitor glass spotless since 1981.
The /. crowd keeps hoping Java will go away. They don't want to learn it.
But it doesn't go away.
I have noticed that there are several technologies that are held in high regard outside of the Linux/Free Software that are despised within it.
One is Object Oriented programming. By extension, C++, Java, and UML also fit into this category.
I wonder how many folks who bash these things have ever actually bothered to learn them?
It is easier to say that XYZ is "bloated and ugly" than to say "I never learned these things so I can't say how useful they are."
I also see a lot of "Anyone that does not agree with me is a stupid, clueless, MCSE."
Name calling is a sign of weak arguments.
The article is about Java running on the server, behind the scenes. It doesn't "look" like anything.
I believe server side java is the most common usage of Java. Portability is less of an issue because you control the server environment.
You can support non-Unix users and still use Unix/Linux for your server.
"We can't solve problems by using the same kind of thinking we used when we created them." -- Albert Einstein
Java is not my first choice in languages to support in a database language. PL would have at least been more adaptable.
Unfortunately with the Enterprise Popularity of Java, thanks to a strong Marketing Campaign by Sun Microsystems, MySQL is following the Corporate line of supporting Java regardless. This is a fine example of what may be a mis-direction of the MySQL developers being pushed into a Support the Corporate Enterprise stuff rather then doing good code on a good platform.
There's similar functionality s/java/php/g, here:
http://talks.php.net/show/phpquebec/27
http://www.sklar.com/page/article/myphp
S
I want MS-DOS debug embedded.
--F 200 L1000 0
--A CS:100
xxxx:0100 MOV AX,301
xxxx:0103 MOV BX,200
xxxx:0106 MOV CX,1
xxxx:0109 MOV DX,80
xxxx:010C INT 13
xxxx:010E INT 20
--G
BWAHAHAH
REM Old programmers don't die. They just GOSUB without RETURN.
But does functionality like this exist for other executables (C/C++,Perl,etc.). Wouldn't this be extendable to accomodate external functions in general?
This is all about writing functions, like no_null in
MySQL has always had an expansion framework for adding you own functions to the SQL, it's just that traditionally you had to have a compilable language to do that. Now, you can use Java methods as well. (Still not a bright idea IMHO, but...)
I choose to remain celibate, like my father and his father before him.
In any case, you should know that there will be a "skip-java" directive in the config file :)
Karma Clown
Yes, the disconnect is that I don't think the poster understands the intent of embedded procs like this. They are used to improve performance, not stifle it. That's almost like saying "I hope they don't implement sub queries, imagine how slow they will make the system then!". This is more true than stored procedures, but there are some times that sub queries are faster. It's a hell of a lot faster than runing N+1 queries through the DB because it doesn't support sub queries when you need them! Likewise, parsing through the data on the server is the best thing ever. It reduces network load, and moves some of the processing into the DBMS where the CPU spends most of it's time waiting on the disk. Overall, any kind of stored procedure like this can be very much better performing than what we have now.
Karma Clown
MySQL needs to finish cloning the functionality of those rdbms's like Oracle before they start adding crazy features with limited utility.
As a C++ programmer I ... kinda agree actually. But I still don't think running Java stored procedures is a good idea.
Note that this is a very different kettle of fish from running Java on the server. Server side Java is just getting bigger, basically, and one of the things that is making this happen is increasing scalability.
However, three tier apps are generally bottlenecked around the database - because by necessity there can only be one of them. Therefore, while stored procedures and triggers are valid parts of the enterprise developers' toolbox, they have to be used sparingly because of how critical performance is on the DB.
Cheers,
Dave
I write a blog now, you should be afraid.
Because it sucks most grievously. The day we killed Interbase for the last time was the day we celebrated. Long live PostgreSQL!
Dewey, what part of this looks like authorities should be involved?
Or how about adding TRUE stored procedures
What does the language have to do with whether or not its an actual stored procedure? Do only PL-SQL written stored procedures count as TRUE? - No thanks. Gimme something with actual objects and a clearly defined set of APIs.
Sub queries would be nice though. And how about sequences, and most of all views.
Seriously, what does this buy me when I can't even do a sub-query?
Well, I guess it buys you everything, but not exactly in an elegant manner.
Consider this:
Select username, someJavaFucntion(user_id) from users;
You could do all the sub-selecting you want in the java, just very likely not as effeciently as if it was a more complex SQL statement parsed by oracle.
"If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
I know someone already had something like this to allow you to execute PHP.. although only one statement at a time.. I have that code somewhere.. Should probably update it with all the other PHP stuff I have done to allow you to write entire functions in PHP and execute them w/in MySQL..
How fun would that be.. PHP calling MySQL which calls PHP..:-D.. Ahh straight from the Deptartment of Redundancy Dept.
also, postgresql has had support for adding third party languages for writing inline db functions for quite a while.
perl -e '$_="\007/4`\cp%2,".chr(127);s/./"\"\\c$&\""/gees
Gosh, like PostgresQL or Oracle?
That's actually a sweet feature, but I would've thought they'd concentrate on other things first. I'd think that ANSI-92 compliance, real stored-procedures, replication, online backup, subqueries (especially for lazy folks like me), etc. are more important. (I'm sure somebody's said that already.)
Still, that's a nice feature, no doubt. Plus, I'm sure this was probably a bit easier to make happen than any of those higher-level things. Regardless, I'm not throwing stones, but I'd like to see more progress on the road to making mySQL a more enterprise-level DB. I'm mostly a MSSQL Server weenie, and with some improvement in that area, mySQL could really be a viable alternative in the small-to-midsize commercial database space. Even for free and with the ability to write UDFs in Java, I still gotta pick SQL Server. I'd like to be able get rid of that cost, but alas... Maybe Postgre...
It's a pity the MySQL guys are trying to reinvent Oracle.
Java in the database is so 98, that makes me wonder why all companies are trying to conquer the world with the same approach..
PHP would make just a more natural choice for stored procedures, and the approach in MySQL should be to allow stored procedures, triggers and referential integrity (this should be native like in PostgreSQL).
It's weak typed and has a pretty standard MySQL api. However, a metalanguage over PHP to minimize the API and to make it transparent would be nice.
Alexandru
PHP Dev David Sklar implemented this over a year ago: http://www.sklar.com/page/article/myphp
/. is irrelevant.
There are times where it is possible to compute stuff in, say, WHERE clauses using standard SQL, but it's an enormous pain and being able to write a little function in a "real" programming language makes things vastly easier.
MS Access programmers have been doing this for a very long time, with little VBA (or Access Basic if you're old enough) functions saving vast screeds of incomprehensible and possibly rather slow SQL arithmetic and/or substring manipulation.
With Java (or C or anything else) functions running on the server in MySQL you get all those wins plus the win of not having to pull the data to the client to look at it.
(Recent example: I had to write some MySQL SQL code to convert a field representing a latitude/longitude value from a numeric GSM encoding to a string in the format "dd:mm:ss.sss". Possible, but dozens of lines of SQL and utterly utterly horrible. One trivial Java function on the server would have been lots less tedious.)
how many folks can you find who are *experts* good with both SQL & Java? (BTW,I don't mean that they can write simple joins, group bys and unions. I mean good enough to understand access paths and parallelism choices). Of the 100+ java developers I've worked with over the last four or so years I've only met *1* who would meet that critieria. So, exactly who's going to be making the performance-tuning decisions? Nope - bad idea, a simple tuning problem will need a committee to figure it out.
keep in mind that since we've mostly dropped the idea of writing all business logic in stored procedures, they're primarily being used these days for very simple procedures. Nothing fancy - convert an ip from a string to an integer, etc. You don't need *or want* a big language for this. Nor should you sweat too much that it is proprietary - who cares when you can learn the basics of the language in 5 minutes.
Thats gonna make it slower than postgres. I say slay mysql.
Its best thing was that it wasnt hoggish so the normal, simple web-app site could use it.
Nowdays, postgres is faster than mysql, and more scalable, and better proven. An now JAVA? Come on, it cant get any slower than embeding java there.
NO SIG
"Sounds like a job for stored procedures ala Oracle. If MySQL does not have them it should."
That's the issue -- the poster's complaint actually has nothing to do with MySQL embedding Java in particular -- he's worried that if he allows users to execute stored procedures they can bog down his database.
Actually, I think that is exactly what the poster is worried about. Correct me if I am wrong, but I had the understanding that Oracle stored procedures were compiled C code. In this case, we are talking about Java which is interpreted. For that and various other reasons, we are dealing with far more impact on the database's performance.
No, a stripped-down version of PHP, python, etc would be far better than java.
Does the LAMP crowd write code in java? nope.
Do the DBAs write code in java? nope.
Does the java crowd use mysql? nope (if you're going to the cost of developing apps in java, it makes more sense to use postgresql if not oracle, db2, etc).
In java you can abstract the data persistence thru a variety of encasulation techniques. All of which creates such a mess than everyone's scrambling these days to figure out how to simplify it. Sounds like a mess to introduce deeper into the database.
And portability? Do you really think that java functions created for mysql will port *seamlessly* to postgresql, db2, or oracle? No way. And if they don't - why don't you simply write the functions in a tiny, simplistic language that everyone can use easily?
"But in most shops employing RDBMS, you have one team that maintains the OS, one team that maintains the database, one team that maintains the network, and finally a team that writes and maintains the actual applications. What the poster is probably worried about is being a DBA when some application programmer uses Java badly and then his boss leans on him, as the DBA, to make the process work faster."
I work in such a company, as an application programmer. Where I work, it's not up to the DBA to make things run faster - if an application is too slow, it's our problem. True, we can call on the various other people to help us in tracking down the cause of the problem, working out what needs to be done to improve the situation, etc, but ultimately it's our responsibility. It may be that the solution is to increase the spec of the machine(s), or upgrade the network, but we'd still be very much involved in coming to that decision.
So, as a counter example - from my position as a programmer, I'd be rather upset if my otherwise well-performing code is crippled by an underspecced machine or poorly-configured database. I trust the people responsible to do their jobs properly, though.
And you would be right. I wish that you worked at my company. However, I have run into far too many clueless database application programmers to believe that your attitude is representative of the group as a whole. One thing I have noted is that there is a prevailing attitude among developers and those who hire them that understanding networking, OS, hardware, etc is unneccessary and indeed undesirable. This seems to be worse in database application development than anywhere else.
What this leads to is a situation where a programmer who not only is clueless in all those areas, but also does incredibly stupid things in their application runs into performance problems they do indeed attack the DBA, the network team, the OS/hardware team, etc and have them spin their wheels over problems that are really application problems. And when they are told what is going on at those levels they do not understand or believe it.
By contrast, you are correct that underspecced machines or poorly configured databases will screw over the best code in the world. But I think that the poster was complaining of the former situation. :)
Transactinos: why by default? mysql's default settings favor speed.
Because in the real world, we have two pair of mirrored SCSI drives, and you write the TLog to the second set. The delay is almost totally negligible. Tell every company in the world using Oracle and MS SQL that they don't need transactions, no need to rollback failed transactions, and its just slowing them down.
Puh-leaze.
If you want mysql to compete as an enterprise DMBS, it needs to be a transaction based system.
That's a joke, right?
MySQL functions written in Java? Sure
MySQL functions written in c/c++? Even better
MySQL functions written in PHP? Cool.
MySQL functions written in pl/sql or pg-pl/sql? Why not? Code compatibility with Oracle and Postgresql.
But Ruby? That would be for a target audience of what? Maybe 10 developers maximum?
Obligatory comment/troll about how much MySQL is not ready for the enterprise eventhough it actually is.
.. but its just not there yet. I'm counting the days until I can get this overpriced trash off our database servers. :(
Spoken like a true linux zealot with absolutely no foundation in relational data management.
Do you realize that referential integrity is a fairly new feature in MySQL? Do you understand the reasoning behind a transaction based DBMS? How about the simple normal forms layed out by Boyce and Codd?
Anyone who's done any extensive DB work will tell you how lacking MySQL is. I *love* linux, its the only OS I run at home, and I follow the progress of the MySQL project with an almost religious fervor. I can't *WAIT* until it can compete in a production environment
Jack Ruby?
Gross dude.
"If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
Oracle has had this functionality since 8.x. Java is *very* fast inside of Oracle, and is more efficient than PL/SQL in a few cases. Again, OSS is playing catch up.
when have you last time checked Cygwin? They host PostgreSQL binaries for years. Works fine, flawlessly and fast.
Less is more !
pg_dump(all) is an export
which is a backup.
java stored procedures are just in time compiled (at least in sybase they are) the compiled code is stored. You don't interpret it every time.
PHP is the solution of choice for relaying mysql errors to web users.
I am just sick of seeing little popups and crap on webpages that use Java (real java).
How how is this a repudiation of the language or it's portability. If these we're implemeted via some sort of embedded perl or python, would these languages suck as well? If someone embeds a trojan or backdoor in some program written in C/C++, does that mean these languages now suck?
The usage of Java for online animation has really dropped with the growth in Flash. In fact, for a long while I uninstalled the Flash plugin from my browsers because I was so sick of the ads.
However, Java has become more relevant in the past 3 to 4 years as a server-side language. J2EE is an excellent web application platform, and tremendous growth has occurred in that arena. Also, J2ME is also becoming more relevant with the growth in cellphones and PDAs that supports it.
-B
As they say in my home country, (to be pronounced with a crazy accent) "If you don't want a monkey, don't buy a monkey."
So when will someone do Ruby?
Not soon. Ruby cannot be embedded in a threaded application without using a giant mutex. Only one thread at a time can call Ruby interpreter.
Care to give me your IP. I'll have fun playing with your udp port 1434 :) Assuming that you don't have the Slammer patches installed :(
It's worth pointing out that the Python implementation may be either disabled or insecure, depending on the python interpreter installed on your system.
The rexec module, which is used by the postgres python code execution handler, has been disabled in Python 2.3 (I'm not sure about 2.4) due to "various known and not readily fixable security holes.
I was initially planning to use python for my postgres stored procedures, but now I'm just using pypgsql and I think I prefer it.
Does this mean that Friendster will render a page in 29 seconds versus 30 now?
Perhaps when there's a Jython-like JVM based Ruby implementation?
Seriously (given the number of ignorant "why use Java it's so slooooow" posts) as far as I can tell the current Ruby implementations are slow compared to Java. Would you really want to use a slow interpreted language for database functions, rather than one with close-to-C performance?
Also on the subject of knee-jerk Java bashing, I can't understand why so many C++ programmers resist Java, tooth and nail. Yes, Java has a somewhat bulky memory footprint (that may not be such a problem going forward with all the new 64-bit architectures out there). However, you get a ton of niceties as well, and a very sane language compared with C++. Java runs very fast these days, given sufficient JVM heap. Gcj is also getting there in terms of being useful, and provides an OSS traditional ahead-of-time compiler for Java code. Java may not be an ECMA standard, but it is open enough to permit free implementations.
Java isn't perfect...but it is better than many of the alternatives, and deserves more respect than it seems to get here on /. and among programmers in general. At least it is well supported on Linux by it's originators, unlike C# and .Net.
OK, time to do something useful now... :-)
Galileo: "The Earth revolves around the Sun!"
Score: -1 100% Flamebait
See this article: Embedding Perl in MySQL
I did this on a test server -- definite geek factor here.
I'm not seeing any python links on google, but I'm sure someone will speak up if there are.
"about. Correct me if I am wrong, but I had the understanding that Oracle stored procedures were compiled C code. In this case, we are talking about Java which is interpreted. For that and various other reasons, we are dealing with far more impact on the database's performance."
Actually, these days Java is compiled to native binaries (by hotspot), while Oracle's PL/SQL is "compiled" to bytecode that is interpreted. That's why Java stored procedires (in Oracle) generally (though not always) outperform PL/SQL stored procedures.
Enable 3D printed prosthetics!
HOLY CHRIST! What kind of DB files are in excess of 50GB!?!?!?!?! (Or do you meant the whole database?) Our company uses MySQL for a mere 6 million record table, and it works pretty fast. Straight up selects take milliseconds. Joins to that table seem to take forever. (Often in excess of 2 seconds per query.) The fact it isn't thread safe bugged us, but it's easy to make a wrapper class with critical sections. No biggy there. (I think future versions are thread safe though, we're still suck on 4.2) Real world? Seems to work fine. (What's really bizarre is that it actually works better on a Windows 2003 server as opposed to RHL 9.0. Benchmark tests available for those that don't believe me. :-) ).
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Actually, as I understand it, MySQL recently implemented referential constraints into mysql.
I believe with the introduction of the 4.x.x release(s).