[Day 1: B-2] Active Record Oracle enhanced adapterのこれまでとこれから


yhirano55
yhirano55 commented 6 months

登壇者: freee株式会社 本多 康夫

Active Record Oracle enhanced adapterのメンテナーとして、Rails 3.2から最新の5.2までの開発の歴史を振り返り、Rails 6に向けた展望をお話しします。


  • このセッションに関する質問を募集中です
  • 事前に聞きたいことがあれば、何でも書き込んでください。
  • 質問への回答はお約束できません。あらかじめご了承ください

Like(0)

Questions and feedbacks (10)

yahonda
yahonda commented 6 months

ReadOnlyErrorとかあたらしいbulk insertとかはやりたいと思っているのですが、現実的なリソース(私の時間x能力)を考えると、Rails 6.0のタイムラインに間に合わせることは無理で、私のポリシーとして同日リリースをするというのがあることから、この辺は6.1以降になるかと思います。

Like(1)

yahonda
yahonda commented 6 months

Oracle enhanced adapterが1stアダプターになることはないと思います。もともとはOracleアダプターは1st adapterだった時代があり、Rails 2とかよりも前に3rd partyになり(それがOracleAdapter)、それのフォークがOracle enhanced adapterになったというのが理由です。また、1stにしたいと思ったこともないです。

Like(1)

yahonda
yahonda commented 6 months

INの1000以上対応には6.0に間に合えば入れたいです。時間あれば相談に乗ってください。

Like(1)

yahonda
yahonda commented 6 months

他のアダプターとの互換性を気にせずにと考えたことはあんまりないです。思うところはOracleというすぐれたデータベースが他のRDBMS(MySQLとかPostgreSQLとか)と文法的な互換性がないので、文法的な互換性を高めてほしいと思っています。ただ、この辺のフィーチャーリクエストも一度行ったことがある https://community.oracle.com/ideas/13845 のですが、芳しい返答はなかったので、Rails本体の変更 https://github.com/rails/rails/pull/32667 を入れたという経緯があります。

Like(2)

yahonda
yahonda commented 6 months

以前は単一のOracle enhanced adapterが複数のRailsに対応していたため、Railsのメジャーとマイナーバージョンとは違っていましたが、Rails 4.1の頃から単一のOracle enhanced adapterが単一のRailsバージョンに対応するようになったのと、単純に覚えにくかったので、Rails 5.2のときから意図的にOracle enhanced adapterも5.2のようにMajorとMinorをあわせています。Teenyは独自です。

Like(1)

koic
koic
koic commented 6 months

Oracle enhanced adapter が Rails の 1st adapter になる可能性はあるでしょうか?また難しいと思われる場合どのような理由で難しいと思われるでしょうか?

Like(0)

koic
koic commented 6 months

Oracle の IN 句で 1,000 件より指定されていた場合にエラーになるのですが、IN 句 1,000 件ごとに OR で分けるなどしてエラーにならないようになると、アプリケーション側のデータ量増加による突然のエラーやそもそもエラーを危惧したロジックを組み立てる必要がなくなってアプリケーション側として気にかける必要がなくなります。このあたりについて Rails 6.0 で入ると嬉しかったりするのですが、そのような対応について如何思うでしょうか?またそのような予定があったりするでしょうか?

Like(0)

hshimoyama
hshimoyama commented 6 months

もし、他の adapters との互換性を意識せずに adapter or ActiveRecord に変更・機能追加出来るとするなら、どういう変更・機能追加をしたいですか?(互換性のために何を諦めていますか?)

Like(0)

unasuke
unasuke commented 6 months

major の数値は対応するRailsのバージョンと合わせているのでしょうか?偶然でしょうか?

Like(0)

Create Comment

Please sign in to comment.

Sign in with GitHub
This software is available as open source under the terms of the MIT License.
Copyright © 2018 Yoshiyuki Hirano