パスワードを忘れた? アカウント作成
13610085 story
Oracle

MariaDBにOracle DB互換機能が搭載される 12

ストーリー by hylom
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とは対立関係にあるのだろうが、これは訴訟とか大丈夫なのだろうか? ちょっと心配である。

関連リンク

  • by Anonymous Coward on 2018年05月30日 18時40分 (#3416893)

    MySQL 5.5で既にSQL_MODEのOracleが登場してるので、それを取り込んだだけでしょ(マニュアル:SQL_MODE [opensource.srad.jp])

    ここに返信
      • リンク先を見るに、MySQLのsqlmode=oracleは

        ORACLE
        PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS、NO_AUTO_CREATE_USER と同等です。

        とあるので、あくまで基本的な振る舞いだけの話っぽいです。
        MariaDBのsqlmode=oracleの説明ページ [mariadb.com]だと、ストアド周りも合わせてきたりと、かなり拡張されている様子。

      • by Anonymous Coward
        そのドキュメントではSQL_MODE=Oracleにしても空文字列をNULL扱いする仕様までは再現しなさそうだけど
        • 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 な気分でいこう!
          • by Anonymous Coward

            それMariaDBのドキュメントじゃね?元コメはMySQLのドキュメントに対して行っているようにみえる。

            互換モードって、こんなクソ仕様まで再現しなきゃならんのか中の人も大変だな。

            # MySQL/MariaDBもクソ仕様では負けてないけど。

    • by Anonymous Coward

      「MySQLから取り込んだだけでしょう」というのは語弊があります

      MySQL は元々はオープンソースでしたが
      その後オラクルが買収して,現在はオラクルがサポートしています

      現在のMySQLはライセンス含めてもオラクルの都合に合わせて改変されています.
      そこでMySQLからMariaDBがフォークして,オラクルの制限を受けないコミュニティが誕生した
      という経緯があります

      このような経緯があるので
      オラクルの成果物を MariaDBに取り込んでしまうと,ライセンスの問題が発生しかねません

      ですから「取り込んだだけ」ではなく「ライセンスに配慮して MySQLに取り込んだ」と言うべきですし
      今後オラクルから文句を言われる可能性はゼロではありません

      • by Anonymous Coward

        PL/SQLが動作するということなので、Javaと同様にAPI著作権で訴えられそう、というのは容易に想像できますね。

      • by Anonymous Coward

        公式サイトを観る限りMySQLのCommunity EditionはGPLって書いてあるけど。
        (Javaのライセンスみたいにクラスパス例外とかない、GNUのサイトに載ってるGPLそのもの)

        「ライセンス含めて…改変されています」ってのは商用版の機能が別ライセンスになってることを指してんのかな?
        そういうのって「改変」って言うもんなの?このSQLMODEとかいうのは別ライセンスで提供されてる機能じゃなくてCommunity版に含むよね?
        それに「元々はオープンソースでした」って、GPLなら今もオープンソースなんじゃないの?

        事情を知らない人間は書いてあることしか寄る辺ないから、実は違うって言われても困る。
        どっかOracleのサイトの隅っこを探せば「これは例外」とか書いてあるのかな。

  • by Anonymous Coward on 2018年05月30日 21時53分 (#3417004)

    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入りに
    違和感があってクスっときた。

    ここに返信
  • by Anonymous Coward on 2018年05月30日 22時55分 (#3417025)

    外部結合のコレ(+)使えるんですかね。
    (+)の方がわかりやすいと思ってるので、使えるなら使いたい。

    ここに返信
    • by Anonymous Coward

      (+)の外部結合がわかりやすいってありえん・・・
      つか既に廃止の方向になってるというに。

typodupeerror

最初のバージョンは常に打ち捨てられる。

読み込み中...