aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/visitors/oracle.rb
Commit message (Collapse)AuthorAgeFilesLines
* Support to add the casting node to the AST at build timeYasuo Honda2014-05-051-1/+1
| | | | Ref https://github.com/rails/arel/commit/93d72131bcc24ccb5536bec672d2dac94f8de651
* Add collector argument to address ArgumentError: wrong number of arguments ↵Yasuo Honda2014-05-021-1/+1
| | | | (2 for 1)
* oracle tests passingAaron Patterson2014-04-081-19/+28
|
* remove the default parameter and updated commentAlex Lin2014-03-251-1/+1
|
* Removed all the fiels in lib/arel/visitors/ which needs dependency on 'a' ↵Alex Lin2014-03-241-15/+15
| | | | also fixed the test case for : test/visitors/test_to_sql.rb:22 which pass in the parameter attribute e.g the parameter a.
* Support `columns_for_distinct`Yasuo Honda2013-10-141-2/+2
|
* Make visitors threadsafe by removing @last_columnErnie Miller2013-04-281-17/+17
| | | | | | | | | | | | | | | | | | | | | | 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.
* 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 ```
* Add oracle paging optimization discussed in issue 99tom2013-01-081-1/+1
|
* Oracle limit and offset issue when query is ordered, issue #99 solved.babinho2012-02-171-2/+1
|
* Support locking by default and disable it only for SQLite.Edgars Beigarts2011-08-261-4/+0
|
* Support locking in OracleEdgars Beigarts2011-08-261-0/+4
|
* Oracle does not allow ORDER BY/LIMIT in UPDATE queries.thedarkone2011-07-261-0/+12
|
* Added MINUS for OracleBrian Cardarella2011-01-231-0/+4
| | | | Aliased :minus to :except for the SelectManager
* Merge branch '2-0-stable'Aaron Patterson2011-01-031-1/+0
|\ | | | | | | | | * 2-0-stable: should return nil instead of empty string
| * should return nil instead of empty stringAaron Patterson2011-01-031-1/+0
| |
* | Merge branch '2-0-stable'Aaron Patterson2011-01-031-3/+4
|\| | | | | | | | | * 2-0-stable: we do not need to modify the AST
| * we do not need to modify the ASTAaron Patterson2011-01-031-3/+4
| |
| * fisting lots of oracle errorsAaron Patterson2011-01-031-4/+4
| |
* | fisting lots of oracle errorsAaron Patterson2011-01-031-4/+4
| |
* | cleaning up more nodesAaron Patterson2010-12-141-2/+2
|/
* small additional fix for order_hacks method for OracleRaimonds Simanovskis2010-11-161-2/+6
|
* fix one more time order_hacks method for OracleRaimonds Simanovskis2010-11-161-8/+17
| | | correctly split order string by commas ignoring commas which separate function arguments
* fix order_hacks method for Oracle when complex functions are used in order byRaimonds Simanovskis2010-11-061-1/+17
|
* generate correct select if only offset is present (in Oracle)Raimonds Simanovskis2010-10-211-0/+14
|
* use subquery for limit when DISTINCT is used (in Oracle)Raimonds Simanovskis2010-09-291-2/+4
|
* yay, more oracle hacksAaron Patterson2010-09-241-2/+2
|
* fixing formattingAaron Patterson2010-09-241-10/+11
|
* avoid modifying the ast in certain casesAaron Patterson2010-09-241-2/+4
|
* adding more oracle hacksAaron Patterson2010-09-241-0/+19
|
* dealing with limits and offsetsAaron Patterson2010-09-241-1/+23
|
* creating a subquery when there is an order and a limitAaron Patterson2010-09-241-1/+9
|
* adding an oracle visitorAaron Patterson2010-09-241-0/+15