12 ms·
IvorySQL: Open-source Oracle-compatible PostgreSQL
- unixhero 4y agoSo will this support materialized views? That's a very nice Oracle SQL feature
- Justsignedup 4y agoPostgres has it https://www.postgresql.org/docs/current/rules-materializedviews.html https://www.postgresql.org/docs/current/rules-materializedvi...
- ako 4y agoNot as nice as oracle, oracle provides auto refreshed materialized views that will be updated with every commit.
- kabes 4y agohttps://www.postgresql.org/about/news/pg_ivm-10-released-2443/ https://www.postgresql.org/about/news/pg_ivm-10-released-244...
- zozbot234 4y agoIsn't that better accomplished as an ordinary view + an index (arguably, an "auto-refreshed materialized" store is an index)? AIUI, Postgres supports indexes on arbitrary expressions.
- deleted 4y ago[deleted]
- up2isomorphism 4y agoWhat’s the point of doing some just for the sake of destroying other people’s business?
- nielsole 4y agoDid not find any obvious references as to who is backing this project, but it seems to be a Chinese software consultancy. https://www.highgo.ca/ https://www.highgo.ca/ > What’s the point of doing some just for the sake of destroying other people’s business? Apart from any potential ideological reasons related to open source, they are likely planning to support their own business by providing a compelling product.
- forinti 4y agoOracle requires a lot of maintenance and is terribly buggy. And the documentation is not always complete. Postgresql, on the other hand, is dead simple to manage. It's my dream to move all my Oracle databases to Postgresql.
- mberger 4y agoThis is amazing! Thank you so much for doing this!
- cookiengineer 4y agoThis has such a huge potential to slay the dragon. Kudos!
- pfix 4y agoI don't get what this is. Is this a postgres fork? An extension? The documentation says it's Version 2 but the docs are rather lacking. Having something providing an "Oracle API" on Postgres would be awesome but not sure if this works like that?
- paulryanrogers 4y ago> IvorySQL has imported and enhanced the Orafce extension to add support for numerous Oracle compatibility features including built-in PACKAGES, data types, and conversion functions Sounds and looks like a fork to me. EnterpriseDB used to offer some Oracle compatibility built on Pg, as a fork IIRC. Don't see it on their site any more though. EDIT: Much thanks to replies with links to EDB.
- asah 4y agoEDB PostgreSQL is still very much alive and Oracle compatibility is a big success among enterprises that have chosen to migrate and need to smooth the process.
- skissane 4y agoDoes it need to be a fork, as opposed to just an extension? I understand why upstream Postgres might not want to put Oracle compatibility in the core, since it would be adding a lot of crud which only a minority of people would benefit from. However, making sure the Postgres core has the extension points necessary to support extensions providing compatibility with Oracle (or DB2, MSSQL, MySQL, etc), is something they might be more willing to entertain.
- vladsanchez 4y agoIt will be a success when it fully supports, Object Types, Packages, Autonomous transactions, PL/SQL, and BULK Collect Operations among other features.
- fredsmith219 4y agoThat was my question. Is it compatible with PL/SQL? And how is the performance?
- cafard 4y agoSomebody makes a Postgres variant that supports not only PL/SQL, but supplies a number of the standard DBMS_xyz packages. EnterpriseDB?
- martintietz 4y agoYes, EDB's Advanced Server provides that: https://get.enterprisedb.com/docs/Database_Compatibility_for_Oracle_Developers_Built-in_Package_Guide_v11.pdf https://get.enterprisedb.com/docs/Database_Compatibility_for... (pp. 30 ff.).
- forinti 4y agoOracle Apex will have to be considered too. It's undeniably a good platform for developing applications and firms get hooked on it.
- rnd0 4y agoWiped out by Oracle's legal team (patents, whatever) in 4...3...2...
- u320 4y agoThey haven't hit EnterpriseDB who have been doing the same thing, except not open source, since forever.
- hans_castorp 4y agoTo my knowledge IBM's DB2 too has an "Oracle compatibility" switch that makes it also support PL/SQL.
- martintietz 4y agoExactly. db2set DB2_COMPATIBILITY_VECTOR=ORA gives you Oracle compatibility. You can even get MySQL compatibility and I have actually used that once in the past.
- chasil 4y agoWere they going to wipe out the SQL/PSM standard that has been approved by ISO? "SQL/PSM is derived, seemingly directly, from Oracle's PL/SQL. Oracle developed PL/SQL and released it in 1991, basing the language on the US Department of Defense's Ada programming language." https://en.m.wikipedia.org/wiki/SQL/PSM https://en.m.wikipedia.org/wiki/SQL/PSM They can always wipe out the Ada programming language while they're at it.
- s3000 4y agoHow can Oracle do it when they couldn't do it for the Java API?
- zaphirplane 4y agoAs a fact, There are 2 ways to “win” a legal Fight, one is to get the desired judgment the other is to make fighting the case prohibitively expensive for the other party
- userbinator 4y agoGreat choice of name and logo.
- nnurmanov 4y agoHere is another approach from AWS https://aws.amazon.com/blogs/aws/goodbye-microsoft-sql-server-hello-babelfish/ https://aws.amazon.com/blogs/aws/goodbye-microsoft-sql-serve...
- okaram 4y agoBut that one is for MS SQL Server, not Oracle
- chasil 4y agoIt's postgres, but implementing TDS. It is important to understand that the networking is not the server. https://en.m.wikipedia.org/wiki/Tabular_Data_Stream https://en.m.wikipedia.org/wiki/Tabular_Data_Stream I use freetds in many places. https://www.freetds.org/ https://www.freetds.org/ I don't think that the programming language inside Sybase/Microsoft SQL Server, known as Transact-SQL, has been implemented in postgres, but I could be wrong. https://en.m.wikipedia.org/wiki/Transact-SQL https://en.m.wikipedia.org/wiki/Transact-SQL Microsoft does not implement SQL/PSM in SQL Server. They need to do so. Immediately.
- dragonwriter 4y ago> I don't think that the programming language inside Sybase/Microsoft SQL Server, known as Transact-SQL, has been implemented in postgres You are wrong; from the Babelfish page: “With Babelfish, Aurora PostgreSQL now understands T-SQL, Microsoft SQL Server's proprietary SQL dialect, and supports the same communications protocol, so your apps that were originally written for SQL Server can now work with Aurora with fewer code changes.”
- gavinray 4y agoWasn't this also possible open-source from AWS's "Babelfish" plugin?
- supportlocal4h 4y agoI want compatability in a whole different direction. Let's get really crazy and rip the db out from under vendor solutions. Let their app with its compiled in Oracle driver communicate with a Pg server. We'll completely void any support contract we have, but at least we'll be Oracle free! Can you imagine just swapping in Postgres under a Peoplesoft deployment? As long as you don't make me actually attempt it, it makes me chuckle.
- kiratp 4y agoThe software license will still stop you from doing that. No business that would need Oracle will run Oracle software knowingly violating the license.
- koolba 4y agoIt’s also likely in violation of arcane copyright law. The oracle wire protocol includes a handshake procedure that sends a poem in one of the initial messages. It’s untested legal theory whether copying that poem in a new work (e.g. a new driver or compatability layer) would violate Oracle’s copyright on the poem. https://dacut.blogspot.com/2008/03/oracle-poetry.html https://dacut.blogspot.com/2008/03/oracle-poetry.html
- quonn 4y agoVery interesting. But I think there are pretty clear rules that permit compatible implementation of wire protocols.
- rtpg 4y agoActually I’m pretty sure a lawsuit with Nintendo’s game boy drm (where you needed to have the logo in memory to boot) went to court and it was ruled that if working with the system required copying the copyrighted text then it’s fair use (US, long time ago and in a different but similar concept)
- easton 4y agoWeird, Apple does a similar thing with macOS startup on Intel (and more recently, Rosetta on Linux). If the magic haiku isn’t given the OS won’t start. http://www.rcfp.org/sites/default/files/docs/20120105_202426_apple_sealing.pdf http://www.rcfp.org/sites/default/files/docs/20120105_202426... is when Apple tried to get the haiku protected as a trade secret Bonus fun fact: Once the “don’t steal Mac OS” kext is loaded, a longer poem is loaded into memory (at least, it was around Tiger): Your karma check for today: There once was was a user that whined his existing OS was so blind, he’d do better to pirate an OS that ran great but found his hardware declined. Please don’t steal Mac OS! Really, that’s way uncool. (C) Apple Computer, Inc. (https://www.zdnet.com/article/apple-warns-off-os-pirates-with-a-poem/ https://www.zdnet.com/article/apple-warns-off-os-pirates-wit...)
- deleted 4y ago[deleted]
- Justsignedup 4y agoSo correct me if I am mis-understanding... it has to be in oracle or pg compatibility mode, so effectively its just an oracle api replacement, but should more or less behave like oracle so the only primary benefit is you stop paying oracle because you just want to leave oracle? It doesn't exactly let you move away from oracle APIs though. It is a big win financially. So good on them, I hope it gets all the traction!
- mdaniel 4y agoI presume this still requires the postgres drivers to connect but then just accepts Oracle syntax once connected? That seems like a very specialized replacement case -- where I guess the app has a lot of complex reporting logic or a monster amount of stored procs that can't be changed, but the consuming app(s) can change drivers and exception handling for the PG ones