Permalink
Commits on May 13, 2016
  1. Merge branch 'release/v3.2.0'

    committed May 13, 2016
  2. 3.2.0

    committed May 13, 2016
  3. Don't presume joiner handles empty stacks.

    Earlier versions do not, and we then end up with an endless loop.
    committed May 13, 2016
  4. Better JSON column check for tests.

    committed May 13, 2016
  5. Update appraisal gemfiles

    committed May 13, 2016
  6. Updating HISTORY file.

    committed May 13, 2016
  7. Prepare all joins at once. Aliases may change.

    ActiveRecord's join generation sometimes changes table aliases as you add more joins, and we're using those aliases as we generate the SQL query. Previously, joins were added lazily, but that means we end up with aliases that are no longer correct. Hence now we're prepopulating all association joins to keep things reliable.
    
    This is the underlying cause of #978.
    committed May 13, 2016
  8. Refactor single object translation for real-time indices.

    Not sold on the class name - translators and transcribers are similar and both used already in the code. Still, functionally I prefer this to the redefining variable approach.
    committed May 13, 2016
Commits on May 12, 2016
Commits on May 3, 2016
  1. Adding the ability to disable all callbacks.

    Useful especially for tests, and I'm a little surprised I'd not already put something like this in place. Granted, there are specific settings for deltas (which behave a bit differently) and for attribute updates (which maybe could be wrapped into this instead). Issue #981 has more context.
    committed May 3, 2016
Commits on Mar 26, 2016
  1. OutOfBoundsError

    Something that exists in Riddle for the binary protocol is now brought across. Closes #903.
    committed Mar 26, 2016
Commits on Mar 2, 2016
  1. Store raw results as an array.

    They're always going to be an array, but the important thing is to have a local copy, instead of linking to mysql2's own objects which can disappear.
    committed Mar 2, 2016
Commits on Feb 25, 2016
  1. @abrandoned
Commits on Jan 18, 2016
  1. @arrtchiu
Commits on Nov 24, 2015
  1. Don't populate search results for count calls.

    We don't need ActiveRecord instances if all we're doing is accessing the metadata. Thanks @andrewroth for suggesting this!
    committed Nov 24, 2015
Commits on Nov 19, 2015
  1. Revert "Reset delta column after core indexing has completed."

    This reverts commit 6167a6e which was introduced for issue #522.
    
    As discussed in #958, updating the delta flags after processing a core index can lead to delta data being missing until the next time the core index is processed.
    
    From what I can see, the only other option (short of seriously reconsidering how deltas should work - perhaps having two different flags would help this?) is to return to the original behaviour. It will mean that delta changes might not be available while the core index is being processed, but at least when that finishes, they're available again (rather than waiting for whenever the core index is *next* processed).
    
    Conflicts:
    	lib/thinking_sphinx/active_record/sql_source.rb
    	spec/thinking_sphinx/active_record/sql_builder_spec.rb
    committed Nov 19, 2015
  2. Allow for different indexing strategies.

    TS supplies two: the original behaviour (run the indexer on all indices at once), and the ability to process each index separately.
    
    The latter may eventually become the default, I'm not yet sure.
    
    You can change the setting by putting the following in `config/initializers/thinking_sphinx.rb`:
    
        ThinkingSphinx::Configuration.instance.indexing_strategy = ThinkingSphinx::IndexingStrategies::OneAtATime
        # or, the default is:
        ThinkingSphinx::Configuration.instance.indexing_strategy = ThinkingSphinx::IndexingStrategies::AllAtOnce
    
    The reason for this is because delta processing requests may happen alongside an all-indices processing, which causes errors in the latter and it stops at that delta index, instead of processing remaining indices. This way, even if a single indexer call fails, the rest will continue.
    committed Nov 19, 2015
Commits on Nov 18, 2015
  1. Don't use jdbc-mysql 5.1.36 or newer.

    Perhaps future Sphinx versions will work around this, but right now this is a problem with Sphinx 2.3.1.
    http://sphinxsearch.com/forum/view.html?id=13939
    committed Nov 18, 2015
  2. Cleaning up instance transcription logic.

    Using a separate object per instance to reduce the compexity of the copy method.
    committed Nov 18, 2015
  3. Merge pull request #952 from chancedowns/develop

    Change from find_each to find_in_batches to allow a bulk replace into command
    committed Nov 18, 2015
Commits on Nov 4, 2015
  1. Merge pull request #956 from jdelStrother/staleids

    Fix StaleId handling with multiple contexts
    committed Nov 4, 2015
Commits on Oct 29, 2015
  1. @jdelStrother

    Fix StaleId handling with multiple contexts

    Prior to this, BatchedSearches with multiple contexts would append stale ids to the first context, rather than the context which was actually missing them.
    jdelStrother committed Oct 29, 2015
Commits on Oct 2, 2015
  1. @chancedowns
Commits on Sep 29, 2015
  1. Merge pull request #951 from jdelStrother/develop

    Reduce allocations in ActiveRecord callbacks
    committed Sep 29, 2015
Commits on Sep 27, 2015
  1. @jdelStrother

    Cache the class reference names

    ActiveSupport's underscore method is relatively expensive, and
    IndexSet#references is called several times during ThinkingSphinx's
    save/commit hooks.
    
    Here are the headline MemoryProfiler results for saving a model 10
    times:
    
    == Without reference-name cache
    
    Total allocated 34501
    Total retained 66
    
    allocated memory by gem
    -----------------------------------
       2271355  activesupport-4.2.3
        560350  activerecord-4.2.3
         94650  thinking-sphinx/lib
         79230  arel-6.0.3
         64640  activemodel-4.2.3
         56180  ruby-2.1.5/lib
         ...
    
    == With reference-name cache
    
    Total allocated 22620
    Total retained 65
    
    allocated memory by gem
    -----------------------------------
        560350  activerecord-4.2.3
        467175  activesupport-4.2.3
         94650  thinking-sphinx/lib
         79230  arel-6.0.3
         64640  activemodel-4.2.3
         56180  ruby-2.1.5/lib
         ...
    jdelStrother committed Sep 27, 2015
  2. @jdelStrother