MariaDBにOracle DB互換機能が搭載される 12
ストーリー by hylom
GoogleのJava-API利用ですら訴えたところだからなあ 部門より
GoogleのJava-API利用ですら訴えたところだからなあ 部門より
あるAnonymous Coward曰く、
MariaDB Foundationが5月27日、MariaDB 10.3系で初のstable版となるMariaDB 10.3.7のリリースを発表している(Publickey)。
MariaDB 10.3では新機能はとしてOracle Database互換機能がうたわれており(Changes & Improvements in MariaDB 10.3)、Oracle DB独自の関数や型がサポートされたほか、Oracle DB独自のストアドプロシージャ言語PL/SQLも実行可能となっている。
MariaDBは歴史的経緯からOracleとは対立関係にあるのだろうが、これは訴訟とか大丈夫なのだろうか? ちょっと心配である。
MySQLから取り込んだだけでしょ (スコア:1)
MySQL 5.5で既にSQL_MODEのOracleが登場してるので、それを取り込んだだけでしょ(マニュアル:SQL_MODE [opensource.srad.jp])
Re: (スコア:0)
英語のMySQL 5.5のSQL_MODEのページ [mysql.com]
かなり拡張されているっぽい (スコア:0)
リンク先を見るに、MySQLのsqlmode=oracleは
とあるので、あくまで基本的な振る舞いだけの話っぽいです。
MariaDBのsqlmode=oracleの説明ページ [mariadb.com]だと、ストアド周りも合わせてきたりと、かなり拡張されている様子。
Re: (スコア:0)
Re: (スコア:0)
Translating Empty String Literals to NULL
In Oracle, empty string ('') and NULL are the same thing,
By using sql_mode=EMPTY_STRING_IS_NULL you can get a similar experience in MariaDB:
SET sql_mode=EMPTY_STRING_IS_NULL;
SELECT '' IS NULL; -- returns TRUE
INSERT INTO t1 VALUES (''); -- inserts NULL
GUST NOTCH な気分でいこう!
Re: (スコア:0)
それMariaDBのドキュメントじゃね?元コメはMySQLのドキュメントに対して行っているようにみえる。
互換モードって、こんなクソ仕様まで再現しなきゃならんのか中の人も大変だな。
# MySQL/MariaDBもクソ仕様では負けてないけど。
Re: (スコア:0)
「MySQLから取り込んだだけでしょう」というのは語弊があります
MySQL は元々はオープンソースでしたが
その後オラクルが買収して,現在はオラクルがサポートしています
現在のMySQLはライセンス含めてもオラクルの都合に合わせて改変されています.
そこでMySQLからMariaDBがフォークして,オラクルの制限を受けないコミュニティが誕生した
という経緯があります
このような経緯があるので
オラクルの成果物を MariaDBに取り込んでしまうと,ライセンスの問題が発生しかねません
ですから「取り込んだだけ」ではなく「ライセンスに配慮して MySQLに取り込んだ」と言うべきですし
今後オラクルから文句を言われる可能性はゼロではありません
Re: (スコア:0)
PL/SQLが動作するということなので、Javaと同様にAPI著作権で訴えられそう、というのは容易に想像できますね。
Re: (スコア:0)
公式サイトを観る限りMySQLのCommunity EditionはGPLって書いてあるけど。
(Javaのライセンスみたいにクラスパス例外とかない、GNUのサイトに載ってるGPLそのもの)
「ライセンス含めて…改変されています」ってのは商用版の機能が別ライセンスになってることを指してんのかな?
そういうのって「改変」って言うもんなの?このSQLMODEとかいうのは別ライセンスで提供されてる機能じゃなくてCommunity版に含むよね?
それに「元々はオープンソースでした」って、GPLなら今もオープンソースなんじゃないの?
事情を知らない人間は書いてあることしか寄る辺ないから、実は違うって言われても困る。
どっかOracleのサイトの隅っこを探せば「これは例外」とか書いてあるのかな。
PL/SQLはフェーズ2が実装されてからかな (スコア:0)
MDEV-10142はStatus:CLOSEDでSub-Tasks 1~72 を見たら
基礎的な機能の対応。
MDEV-10764はStatus:OPENでSub-Tasks 1~37
ここまでCLOSEDになると(CLOSEDになって実装完了でいいんだよね?)
SEQUENCEオブジェクトも使えるみたいだし、
言語としては使えそうな感じです。
後は、DBMS_なんちゃら、UTL_なんちゃら等のパッケージがどの程度
使えるのかで移植難易度は変わりますが、I/O関連のものが
そろっていてDATABASE LINK、DIRECTORYオブジェクトが
使えれば、特殊なもの意外は簡単に移植できそうです。
MDEV-10764のSub-TasksにマルチテーブルUPDATE対応とか
あるけど、個人的にはこの機能だけなぜフェーズ2入りに
違和感があってクスっときた。
外部結合 (スコア:0)
外部結合のコレ(+)使えるんですかね。
(+)の方がわかりやすいと思ってるので、使えるなら使いたい。
Re: (スコア:0)
(+)の外部結合がわかりやすいってありえん・・・
つか既に廃止の方向になってるというに。