| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|\
| |
| | |
Added License block to README.md
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
As per the Rails documentation guidelines.
|
|\ \
| | |
| | | |
Revert fixes involving issue #99 (which makes Arel unusable in large datasets)
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
```
|
| | |
|
|/ |
|
|\
| |
| | |
2 gems updated
|
|/ |
|
|\
| |
| | |
Support Float::INFINITY in ranges
|
| | |
|
|\ \
| | |
| | |
| | |
| | | |
* origin/master:
No need to test against 1.8
|
| |/ |
|
|/ |
|
|\
| |
| | |
Mysql2 prepared statements bind substitution fix
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Small change to oracle paging code to trigger stopkey optimization
|
| | | |
|
| | | |
|
|\ \ \
| |/ /
|/| /
| |/ |
SqlLiterals quoting fix
|
|/ |
|
|\
| |
| |
| |
| | |
Update README to have a better GROUP BY example Issue #86
Closes #86
|
|/ |
|
|\
| |
| | |
Updated 3 gems
|
|/
|
|
|
|
| |
* MiniTest from 2.2 to 4.3.3
* Hoe from 2.10 to 3.3.1
* Rdoc from 3.10 to 3.12
|
|\
| |
| | |
Remove some test warnings
|
|/ |
|
| |
|
| |
|
| |
|
|\
| |
| | |
feature: add Arel::SelectManager#projections method
|
| | |
|
|\ \
| | |
| | | |
bugfix: some aggregations lacked DISTINCT emission
|
| |/ |
|
|\ \
| |/
|/| |
to_sql: add support for emitting SQL subqueries
|
|/ |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
People are often trying to use ARel nodes inside ActiveRecord, and when
they do so, lots of things can break, because ActiveRecord relies on
Array#uniq and sometimes hash key equality to handle values that end up
in wheres, havings, etc. By implementing equality for all the nodes, we
should hopefully be able to prevent any nodes (even nodes containing
other nodes) from failing an equality check they should otherwise pass,
and alleviate many of these errors.
Fixes #130
|
|
|
|
|
| |
Eventually #engine should go away, but until that time, this means that
Table and Nodes::TableAlias can be used more interchangeably.
|
|
|
|
|
|
|
|
|
|
| |
It is untested. There is no `@frame` variable. Presumably it is supposed
to be `@framing`, but changing that shows that some of the tests *are*
setting frame twice.
I don't see why this level of strictness is necessary. If someone
disagrees, they should add a test for this behaviour and make the other
tests pass.
|
|
|
|
| |
This is in response to discussion on 62207fa
|
| |
|
| |
|
|\
| |
| | |
Include Predications in Grouping
|
|/
|
|
|
|
| |
Also, removed unused ordering.rb file, since it is identical
to the one being created in unary.rb already, and isn't
required anywhere.
|