aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* | build quoted nodes in factory methodsAaron Patterson2014-03-243-15/+24
| |
* | build quoted stringsAaron Patterson2014-03-243-10/+10
| |
* | add the casting node to the AST at build timeAaron Patterson2014-03-246-21/+69
| | | | | | | | | | If we add the casting node to the ast at build time, then we can avoid doing the lookup at visit time.
* | Merge pull request #246 from cmohanprasath/assign_value_from_attribute_testAaron Patterson2014-02-241-2/+7
|\ \ | | | | | | Assign value from attribute test
| * | Allow assignment right member to reference columnsLoic Nageleisen2014-02-111-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Such queries become possible for mortals: ```ruby table.where(table[:qux].eq 'zomg').compile_update(table[:foo] => table[:bar]) ``` Arguably much more sane than using `engine.connection.quote_column_name` or `engine.connection.visitor.accept` on the right hand (bar), which is totally leaking the abstraction.
* | | Remove deprecated Arel::ExpressionRafael Mendonça França2014-02-105-13/+0
| | |
* | | Remove deprecated Arel::SqlLiteralRafael Mendonça França2014-02-107-14/+2
| | |
* | | Remove deprecated constant aliasesRafael Mendonça França2014-02-102-5/+0
| | |
* | | Remove deprecated `SelectManager#joins`Vipul A M2014-02-101-8/+0
| | |
* | | Remove deprecated `SelectManager#to_a`Vipul A M2014-02-101-6/+0
| | |
* | | Removed deprecated `Arel::Sql::Engine` and make use of `FakeRecord::Base` ↵Vipul A M2014-02-102-11/+0
|/ / | | | | | | inplace directly for test helper.
* | Merge pull request #237 from vipulnsward/extract-arrayRafael Mendonça França2014-02-081-2/+4
|\ \ | | | | | | Extract comparison array to a constant for the time being until removing the checks completely.
| * | Extract comparison array to a constant for the time being until removing the ↵Vipul A M2014-01-071-2/+4
| | | | | | | | | | | | check completely.
* | | PostgreSQL bugfix for invalid SQL in subqueriesvanderhoorn2014-02-051-0/+2
| | | | | | | | | | | | | | | | | | | | | In commit 68a95542e1a7a79d9777223fbffd2b982fed0268 the last_column feature of ToSql was removed. The visit_Arel_Nodes_Matches and visit_Arel_Nodes_DoesNotMatch methods are overwritten in the PostgreSQL class, but were not updated appropriately. This commit fixes the issue accordingly. This bug affects at least all update_all statements in Rails 4.0.2 that have subqueries with ILIKE statements on PostgreSQL. The bug is present in Arel 4.0.1 and later, so it probably affects most Rails 4.0.2 projects. It would be highly appreciated if Arel 4 could get a point release as well. Thanks for your continued work.
* | | add bind values to the manager classAaron Patterson2014-01-141-0/+3
|/ /
* | Documented the case-insensitive nature of the match feature.Robb Shecter2013-12-051-0/+4
| | | | | | Documenting the library's behavior. People and other libraries (cf. Squeel) have come to depend on this behavior, and so am submitting this pull request to specify it authoritatively.
* | Remove joins methodRafael Mendonça França2013-12-051-8/+0
| |
* | Remove deprecated calls from the testsRafael Mendonça França2013-12-051-2/+2
| |
* | Arel master is 5.0.0Rafael Mendonça França2013-11-181-1/+1
| |
* | explicitly pass the pk to compile_updateAaron Patterson2013-11-161-2/+2
| |
* | Merge pull request #216 from iantropov/issue_yamlRafael Mendonça França2013-11-101-0/+4
|\ \ | | | | | | Add :encode_with to sql_literal for proper YAML serialization
| * | Add :encode_with for proper YAML serializationIvan Antropov2013-11-091-0/+4
| | |
* | | Remove deprecated calls to `SelectManager#wheres` with no replacementVipul A M2013-11-101-5/+0
| | |
* | | Remove deprecated calls to `SelectManage#insert` with preference to using ↵Vipul A M2013-11-101-25/+0
| | | | | | | | | | | | `compile_insert`
* | | Remove deprecated calls to using `where_clauses`Vipul A M2013-11-101-8/+0
| | |
* | | Remove deprecated calls to using `UpdateManager` without setting ↵Vipul A M2013-11-102-11/+2
| | | | | | | | | | | | `UpdateManager#key`
* | | Remove deprecated calls to `update` with preference to using ↵Vipul A M2013-11-101-13/+0
| | | | | | | | | | | | `compile_update` and then calling `to_sql` on the resulting object to execute the SQL
* | | Remove deprecated calls to `insert` with preference to using ↵Vipul A M2013-11-101-11/+0
| | | | | | | | | | | | `compile_insert` and then calling `to_sql` on the resulting object to execute the SQL
* | | Remove deprecated calls to `delete` with preference to using ↵Vipul A M2013-11-101-9/+0
| | | | | | | | | | | | `compile_delete` and then calling `to_sql` on the resulting object to execute the SQL
* | | Merge pull request #196 from vipulnsward/remove_deprecatedRafael Mendonça França2013-11-091-21/+0
|\ \ \ | |/ / |/| | Remove deprecated
| * | Remove deprecated `Arel::Table#columns` with no replacementVipul A M2013-07-041-11/+0
| | |
| * | Remove deprecated `Arel::Table.table_cache` with no replacementVipul A M2013-07-041-10/+0
| | |
* | | Fix warning of shadowing variableRafael Mendonça França2013-10-241-2/+2
| | |
* | | Release 4.0.1Rafael Mendonça França2013-10-221-1/+1
| | |
* | | Merge pull request #211 from yahonda/support_columns_for_distinct_oracleAaron Patterson2013-10-211-2/+2
|\ \ \ | | | | | | | | Support `columns_for_distinct` with Oracle adapter
| * | | Support `columns_for_distinct`Yasuo Honda2013-10-141-2/+2
| | | |
* | | | fix one deprecation warningAaron Patterson2013-10-141-1/+1
|/ / /
* | | Merge pull request #204 from trptcolin/visitor_dispatch_cachingAaron Patterson2013-09-111-3/+6
|\ \ \ | | | | | | | | Cache visitor dispatch on a per-visitor basis
| * | | Cache visitor dispatch on a per-visitor basisColin Jones2013-08-141-3/+6
| |/ /
* / / Improve performance of #uniq across a large number of nodesSam2013-08-301-1/+4
|/ /
* | record who created the node when $DEBUG is trueAaron Patterson2013-05-201-1/+8
| |
* | call super from initializeAaron Patterson2013-05-178-0/+10
| |
* | Make visitors threadsafe by removing @last_columnErnie Miller2013-04-2815-381/+385
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The last_column feature of the ToSql visitor and its descendants is what enabled quoting based on the column last visited -- in other words, if you have a standard condition like an equality with a string attribute on the left side and an integer on the right side, then when ARel visits the node, it'll first visit the left side attribute, setting the column of the string attribute as the last column, and resulting in the right side of the condition getting the appropriate quoting. The downside is that this means that visitors can't be shared between threads, because of the state mutation. It also makes for some really weird behavior in the event that the visitor visits a node that happens to contain an attribute you weren't expecting to be there, since it'll potentially quote something based on that attribute. So, it prevents reversing an equality condition. column = value will work, but not value = column, since the last column wouldn't be the column you're hoping for. This is a first pass at fixing this by changing the signature of the visit methods to accept the currently-relevant attribute, if any.
* | Release 4.0.0Rafael Mendonça França2013-04-181-1/+1
| |
* | ARel -> ArelXavier Noria2013-04-145-8/+8
| | | | | | | | | | | | | | The project uses "Arel" most of the time, but there were a few "ARel" here and there. I checked with @brynary back in 2010 to pick one for the Rails documentation guidelines and "Arel" was chosen and documented. This patch chooses "Arel" vs "ARel" based on that.
* | Revert issue #99 fixesEduardo Mourao2013-03-151-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are two commits involving issue #99 which should be reverted. First of all, #99 is not an issue in Arel at all. Second, the fix provides pretty much destroys the purpose of pagination by cause full table scans. The original code (it seems I can't simply revert the commits) is 900 times slower than this one. ``` SELECT * FROM ( SELECT raw_sql_.*, rownum raw_rnum_ FROM (SELECT "LANCAMENTOS".* FROM "LANCAMENTOS" ) raw_sql_ ) WHERE raw_rnum_ between 1 and 30 ---------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ----------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 4636K| 2701M| 23442 (2)| 00:04:42 | |* 1 | VIEW | | 4636K| 2701M| 23442 (2)| 00:04:42 | | 2 | COUNT | | | | | | | 3 | TABLE ACCESS FULL| LANCAMENTOS | 4636K| 738M| 23442 (2)| 00:04:42 | ----------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter("RAW_RNUM_"<=30 AND "RAW_RNUM_">=1) Statistics ----------------------------------------------------------- 4 user calls 13 physical read total multi block requests 202588160 physical read total bytes 202588160 cell physical IO interconnect bytes 0 commit cleanout failures: block lost 0 IMU commits 0 IMU Flushes 0 IMU contention 0 IMU bind flushes 0 IMU mbu flush SELECT * FROM ( SELECT raw_sql_.*, rownum raw_rnum_ FROM (SELECT "LANCAMENTOS".* FROM "LANCAMENTOS" ) raw_sql_ WHERE rownum <= 30 ) WHERE raw_rnum_ >= 0 ----------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ----------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 30 | 18330 | 2 (0)| 00:00:01 | |* 1 | VIEW | | 30 | 18330 | 2 (0)| 00:00:01 | |* 2 | COUNT STOPKEY | | | | | | | 3 | TABLE ACCESS FULL| LANCAMENTOS | 30 | 5010 | 2 (0)| 00:00:01 | ----------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter("RAW_RNUM_">=0) 2 - filter(ROWNUM<=30) Statistics ----------------------------------------------------------- 4 user calls 0 physical read total multi block requests 0 physical read total bytes 0 cell physical IO interconnect bytes 0 commit cleanout failures: block lost 0 IMU commits 0 IMU Flushes 0 IMU contention 0 IMU bind flushes 0 IMU mbu flush ```
* | bumping to beta2Aaron Patterson2013-03-141-1/+1
| |
* | call the columns hash methodAaron Patterson2013-03-141-3/+3
| |
* | Merge pull request #164 from tpope/infinity-rangesRafael Mendonça França2013-03-041-2/+18
|\ \ | | | | | | Support Float::INFINITY in ranges
| * | Support Float::INFINITY in rangesTim Pope2013-02-191-2/+18
| | |