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

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

ストーリー 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日 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日 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

              つまりどう見ても「取り込んだだけ」ではないってことね。

            • by Anonymous Coward

              でもそれに依存してる実装がたくさんあるからねぇ

              # = (+)も対応してるんだろうか。

    • by Anonymous Coward

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

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

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

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

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

      • by Anonymous Coward

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

        • by Anonymous Coward

          ようするにMySQLは使えない。使うとあとあと面倒ってことですね。

          • by Anonymous Coward

            MySQLはOracleのものだから大丈夫でしょ。
            問題なのはMariaDB。

      • by Anonymous Coward

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

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

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

        • > GPLなら今もオープンソースなんじゃないの?
          ストールマン「GNU GPLはオープンソースライセンスじゃねぇ自由なソフトウェアのライセンスだ!」

        • by Anonymous Coward

          ライセンスの話で「実は違うって言われて困る」ようなことするつもりなら、
          こんな所で匿名のコメントをアテにしないで自分で調べて自分で考えて自分で理解しなきゃダメ!

          • by Anonymous Coward

            風説を鵜呑みにして口を挟むやつがいると面倒なんだよ
            余計な手間が増える

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

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

    ここに返信
    • by Anonymous Coward

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

      • by Anonymous Coward

        ・短い
        ・表現が他と違うのでパッと見区別可能
        な点を「わかり易い」と言ってるのでは?

        今の規格になるときにムダになげえよ!の意見はあったし。
        そして、一つのSQL文=一メソッドと見た場合、保守性悪い長大なメソッドが常識となってる点は問題かと。
        コードで長いメソッド書くのはアンチパターンなのにSQLだけは真逆行ってるからね。

        • by Anonymous Coward

          「保守性悪い長大」がどのようなものを指しておられるか分かりませんが、
          SQL文においても、VIEW・FUNCTION・PROCEDURE等で適当なサイズにコードを
          分割して実装することは行われていると思いますよ。

          外部結合の (+) については SQLServer の * と付加するサイドが逆になっていたのが
          紛らわしかったので、廃れる方向でよかったと思う。
          データ調査時のその場限りSQLなんかでは(+)使うけどね。

          • by Anonymous Coward

            SQLServer使われてるトコではありませんが、Oracle+金融保険官公庁はSQLかストアド一つに延々と書く形。
            テキストに落とすと一つ数十KBとかね。

            データ処理が行フェッチ+ループで一行ずつ処理するCOBOLスタイルですね。
            そういうとこはViewは知らん感じでストアドは一つに全部詰め込む為のモノ扱い。

      • by Anonymous Coward

        whereの条件と混じるし、内部結合はぱっと見抽出条件と見分けつかないし、表現できない外部結合条件があるし、他のRDBMSでは使えないのであんなクソ仕様なくなって当然です。

        てかやっと廃止の方向になったのね。
        SQLServerは2005ぐらいのときに実質廃止になったのに。

        • by Anonymous Coward

          (+)は11gから非推奨だったから約10年前?

          • by Anonymous Coward

            そうか11gでてからそんなに経つのかorz

    • by Anonymous Coward

      おまいさんのコードメンテさせられる人が不憫

    • by Anonymous Coward

      ひどい言われようだけど、気持ちはわかる。

      とりあえずざっとクエリ書きたいときに(+)使えたら楽なのになーと私もいつも思ってます。

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

    あったんだ・・・

    真面目に驚いた。

    ここに返信
typodupeerror

未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー

読み込み中...