Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

changeStream support #97

Merged
merged 44 commits into from
Feb 15, 2018
Merged

changeStream support #97

merged 44 commits into from
Feb 15, 2018

Commits on Aug 8, 2017

  1. Merge branch 'master' into development

    * master:
      Add contribution guidelines.
      Add more changes to README.
    domodwyer committed Aug 8, 2017
    Configuration menu
    Copy the full SHA
    de872a6 View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2017

  1. Merge branch 'master' into development

    * master:
      Run integration tests against 3.2.16 (#24)
    domodwyer committed Aug 15, 2017
    Configuration menu
    Copy the full SHA
    1519fd3 View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2017

  1. add DropAllIndexes() method (#25)

    Create a new method to drop all the indexes of a collection
    in a single call
    feliixx authored and domodwyer committed Aug 30, 2017
    Configuration menu
    Copy the full SHA
    454da02 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    93aaa6e View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2017

  1. send metadata during handshake (#28)

    fix [#484](https://github.com/go-mgo/mgo/issues/484)
    
    Annotate connections with metadata provided by the
    connecting client.
    
    informations send:
    
    {
     "aplication": {         // optional
       "name": "myAppName"
     }
     "driver": {
        "name": "mgo",
        "version": "v2"
      },
      "os": {
        "type": runtime.GOOS,
        "architecture": runtime.GOARCH
      }
    }
    
    to set "application.name", add `appname` param in options
    of string connection URI,
    for example : "mongodb://localhost:27017?appname=myAppName"
    feliixx authored and domodwyer committed Sep 6, 2017
    Configuration menu
    Copy the full SHA
    165af68 View commit details
    Browse the repository at this point in the history
  2. Update README to add appName (#32)

    * docs: elaborate on what appName does
    
    * readme: add appName to changes
    domodwyer authored Sep 6, 2017
    Configuration menu
    Copy the full SHA
    a76b1a0 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2017

  1. add method CreateView() (#33)

    Fix #30.
    
    Thanks to @feliixx for the time and effort.
    feliixx authored and domodwyer committed Sep 11, 2017
    Configuration menu
    Copy the full SHA
    25200e4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1f4c10f View commit details
    Browse the repository at this point in the history
  3. Don't panic on indexed int64 fields (#23)

    * Stop all db instances after tests (go-mgo#462)
    
    If all tests pass, the builds for mongo earlier than 2.6 are still failing.
    Running a clean up fixes the issue.
    
    * fixing int64 type failing when getting indexes and trying to type them
    
    * requested changes relating to case statement and panic
    
    * Update README.md to credit @mapete94.
    
    * tests: ensure indexed int64 fields do not cause a panic in Indexes()
    
    See:
    * #23
    * https://github.com/go-mgo/mgo/issues/475
    * go-mgo#476
    domodwyer authored Sep 11, 2017
    Configuration menu
    Copy the full SHA
    934a190 View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2017

  1. Add collation option to collection.Create() (#37)

    - Allow specifying the default collation for the collection when creating it.
    - Add some documentation to query.Collation() method.
    
    fix #29
    feliixx authored and domodwyer committed Sep 13, 2017
    Configuration menu
    Copy the full SHA
    b37e3c1 View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2017

  1. support the $changeStream aggregation in 3.6+

    The $changeStream aggregation isn't very well documented, but an overview can be
    found here:
    
    	https://mongodb.github.io/mongo-java-driver/3.6/driver/tutorials/change-streams/
    
    This commit is a squash of 4 commits from the 10gen fork of mgo:
    	* e78a135
    	* 31a6d57
    	* 7940d20
    	* 0d8351c
    Will Banfield authored and domodwyer committed Sep 15, 2017
    Configuration menu
    Copy the full SHA
    10876f5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b82ca4c View commit details
    Browse the repository at this point in the history
  3. Test against MongoDB 3.4.x (#35)

    * test against MongoDB 3.4.x
    
    * tests: use listIndexes to assert index state for 3.4+
    
    * make test pass against v3.4.x
    
      - skip `TestViewWithCollation` because of SERVER-31049,
        cf: https://jira.mongodb.org/browse/SERVER-31049
    
      - add versionAtLeast() method in init.js script to better
        detect server version
    
    fixes #31
    feliixx authored and domodwyer committed Sep 15, 2017
    Configuration menu
    Copy the full SHA
    aead58f View commit details
    Browse the repository at this point in the history

Commits on Sep 18, 2017

  1. MGO-142 implement changestream status functions for err, close and

    resume token
    Will Banfield authored and domodwyer committed Sep 18, 2017
    Configuration menu
    Copy the full SHA
    5b7a419 View commit details
    Browse the repository at this point in the history

Commits on Sep 20, 2017

  1. Configuration menu
    Copy the full SHA
    950ed5a View commit details
    Browse the repository at this point in the history

Commits on Sep 28, 2017

  1. bson.Unmarshal returns time in UTC (#42)

    Georgy authored and domodwyer committed Sep 28, 2017
    Configuration menu
    Copy the full SHA
    d21a525 View commit details
    Browse the repository at this point in the history
  2. readme: add missing features / credit

    * Adds missing collation feature description (by @feliixx).
    * Adds missing 3.4 tests description (by @feliixx).
    * Adds BSON constants description (by @bozaro).
    * Adds UTC time.Time unmarshalling (by @gazoon).
    domodwyer committed Sep 28, 2017
    Configuration menu
    Copy the full SHA
    9d743b4 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #45 from globalsign/feature/update-readme

    readme: add missing feature descriptions / credit
    vgalu authored Sep 28, 2017
    Configuration menu
    Copy the full SHA
    c86ed84 View commit details
    Browse the repository at this point in the history

Commits on Oct 6, 2017

  1. fix golint, go vet and gofmt warnings (#44)

    Fixes #43
    feliixx authored and domodwyer committed Oct 6, 2017
    Configuration menu
    Copy the full SHA
    97bd0cd View commit details
    Browse the repository at this point in the history

Commits on Oct 9, 2017

  1. readme: credit @feliixx (#46)

    domodwyer authored Oct 9, 2017
    Configuration menu
    Copy the full SHA
    fd79249 View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2017

  1. Fix GetBSON() method usage (#40)

    * Fix GetBSON() method usage
    
    Original issue
    ---
    
    You can't use type with custom GetBSON() method mixed with structure field type and structure field reference type.
    
    For example, you can't create custom GetBSON() for Bar type:
    
    ```
    struct Foo {
    	a  Bar
    	b *Bar
    }
    ```
    
    Type implementation (`func (t Bar) GetBSON()` ) would crash on `Foo.b = nil` value encoding.
    
    Reference implementation (`func (t *Bar) GetBSON()` ) would not call on `Foo.a` value encoding.
    
    After this change
    ---
    
    For type implementation  `func (t Bar) GetBSON()` would not call on `Foo.b = nil` value encoding.
    In this case `nil` value would be seariazied as `nil` BSON value.
    
    For reference implementation `func (t *Bar) GetBSON()` would call even on `Foo.a` value encoding.
    
    * Minor refactoring
    bozaro authored and domodwyer committed Oct 11, 2017
    Configuration menu
    Copy the full SHA
    dba7b4c View commit details
    Browse the repository at this point in the history
  2. readme: credit @bozaro (#47)

    domodwyer authored Oct 11, 2017
    Configuration menu
    Copy the full SHA
    12fb1c2 View commit details
    Browse the repository at this point in the history

Commits on Oct 19, 2017

  1. Improve cursorData struct unmarshaling speed (#49)

    This change remove full BSON decoding on:
    
     - parsing to `bson.Raw` and `bson.DocElem` fields;
     - skipping unused BSON fields.
    bozaro authored and domodwyer committed Oct 19, 2017
    Configuration menu
    Copy the full SHA
    199dc25 View commit details
    Browse the repository at this point in the history
  2. readme: credit @bozaro and @idy (#53)

    * readme: credit @bozaro and @idy
    
    * readme: add @idy to contributor list
    domodwyer authored Oct 19, 2017
    Configuration menu
    Copy the full SHA
    345ab0b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0454966 View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2017

  1. Add proper DN construction (#55)

    * Add proper DN construction
    
    * Added openssl check to test
    
    * Addressed code review comments
    
    * Changes to RDNformatting, and test
    
    * type/value fields to tests
    
    * Changes to RDN formatting
    
    * Corrected comment in getRFC2253NameString
    
    * Corrected comment in getRFC2253NameString
    
    * Changes to login and rdn formatting
    
    * Changed escaping of #
    csucu authored and domodwyer committed Nov 2, 2017
    Configuration menu
    Copy the full SHA
    663dfe5 View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2017

  1. reduce memory allocation in bulk op (#56)

    use memory pooling to reuse bulkActions and
      avoid some allocations
    feliixx authored and domodwyer committed Nov 3, 2017
    Configuration menu
    Copy the full SHA
    7cd0b89 View commit details
    Browse the repository at this point in the history

Commits on Nov 6, 2017

  1. readme: credit @feliixx (#58)

    domodwyer authored Nov 6, 2017
    Configuration menu
    Copy the full SHA
    ea8e8e6 View commit details
    Browse the repository at this point in the history

Commits on Dec 12, 2017

  1. MongoDB 3.6: implement the new wire protocol (#61)

    * test against 3.6
    
    * update go and mongodb version
    
      - use last minor version for each major serie of
        mongodb
      - use travis 'go' param instead of eval "$(gimme $GO)"
        as it fails to install correctly last minor version
        ( 1.8.x notation for example)
    
    * test fixes on 3.2.17
    
    also re-enable TestFindIterSnapshot as it was fixed
    a long time ago
    
    * fix X509 test
    
    fix TestAuthX509CredRDNConstruction test: need to
    create an user with {"username": subject} before
    trying to login
    
    * Fix auth test on 3.6-rc3
    
    Make sure that "rs3/127.0.0.1/40031" is elected
    at primary.
    Create user before running 'addShard' command as
    it requires root access
    Also add a retry mechanism to make sure that shard
    are correctly added
    cf https://docs.mongodb.com/manual/tutorial/deploy-shard-cluster/
    
    * implement OP_MSG wire protocole
    
    require maxWireVersion >= 6 on server side, and
    `experimental=opmsg` in the connection string
    
      - get `MaxMessageSizeBytes` and `MaxWriteBatchSize`
        from handshake
      - allow unacknowledged writes with `moreToCome` flag
      - split bulk operations in batch of `maxWriteBatchSize`
      - add 'experimental' param in URL. To enable an experimental
        feature, add `experimental=featureName` in the connection
        URL
    
    flush logout directly
    
    Previously, `flushLogout()` was called at the beginning
    of each Query to the database.
    To avoid these useless calls, we flush logout directly
    when `Logout()` or `LogoutAll()` is called
    
    * re-enable TestViewWithCollation
    
    SERVER-31049 is fixed in 3.4.10, so re-enable
    it
    
    * refactor memory pooling
    
    use the same pool for send and received
    messages.
    Slices are returned to the pool without being
    resized.
    
    Default allocation size might need to be updated
    (currently 256, no benchmarks available yet)
    
    * update to 3.6.0 stable
    feliixx authored and domodwyer committed Dec 12, 2017
    Configuration menu
    Copy the full SHA
    90c056c View commit details
    Browse the repository at this point in the history
  2. Merge branch 'master' into development

    * master:
      Merge Development (#57)
      Revert "do not lock while writing to a socket (#52)"
      do not lock while writing to a socket (#52)
      Merge Development (#48)
      Merge development (#39)
    
    # Conflicts:
    #	.travis.yml
    #	cluster_test.go
    #	harness/daemons/.env
    #	harness/mongojs/init.js
    #	session.go
    #	session_internal_test.go
    #	session_test.go
    domodwyer committed Dec 12, 2017
    Configuration menu
    Copy the full SHA
    1ac9b5d View commit details
    Browse the repository at this point in the history

Commits on Dec 27, 2017

  1. Configuration menu
    Copy the full SHA
    a104bfb View commit details
    Browse the repository at this point in the history

Commits on Jan 9, 2018

  1. development: revert #61 (#73)

    * Revert "MongoDB 3.6: implement the new wire protocol (#61)"
    
    This reverts commit 90c056c.
    
    * test against 3.6
    
    * update go and mongodb version
    
      - use last minor version for each major serie of
        mongodb
      - use travis 'go' param instead of eval "$(gimme $GO)"
        as it fails to install correctly last minor version
        ( 1.8.x notation for example)
    
    * test fixes on 3.2.17
    
    also re-enable TestFindIterSnapshot as it was fixed
    a long time ago
    
    * fix X509 test
    
    fix TestAuthX509CredRDNConstruction test: need to
    create an user with {"username": subject} before
    trying to login
    
    * Fix auth test on 3.6-rc3
    
    Make sure that "rs3/127.0.0.1/40031" is elected
    at primary.
    Create user before running 'addShard' command as
    it requires root access
    Also add a retry mechanism to make sure that shard
    are correctly added
    cf https://docs.mongodb.com/manual/tutorial/deploy-shard-cluster/
    
    * update to 3.6.0 stable
    
    * tests: cherry pick missing 3.6+ support changes
    domodwyer authored Jan 9, 2018
    Configuration menu
    Copy the full SHA
    f9be6c5 View commit details
    Browse the repository at this point in the history
  2. readme: credit @bachue (#74)

    domodwyer authored Jan 9, 2018
    Configuration menu
    Copy the full SHA
    138ba2f View commit details
    Browse the repository at this point in the history
  3. auth: add an example for x509 authentication (#75)

    * auth: add an example for x509 authentication
    domodwyer authored Jan 9, 2018
    Configuration menu
    Copy the full SHA
    9acbd68 View commit details
    Browse the repository at this point in the history

Commits on Jan 15, 2018

  1. Configuration menu
    Copy the full SHA
    eeedc17 View commit details
    Browse the repository at this point in the history

Commits on Jan 25, 2018

  1. Configuration menu
    Copy the full SHA
    88cedcd View commit details
    Browse the repository at this point in the history

Commits on Jan 31, 2018

  1. Fallback to JSON tags when BSON tag isn't present (#91)

    * Fallback to JSON tags when BSON tag isn't present
    
    
    Cleanup.
    
    * Add test to demonstrate tagging fallback.
    
    - Test coverage for tagging test.
    steve-gray authored and domodwyer committed Jan 31, 2018
    Configuration menu
    Copy the full SHA
    90ad51b View commit details
    Browse the repository at this point in the history

Commits on Feb 6, 2018

  1. Configuration menu
    Copy the full SHA
    9b03c58 View commit details
    Browse the repository at this point in the history
  2. Added maxAwaitTimeMS support to ChangeStream so Next() times out. Add…

    …ed tests. Fixed leaking connections and error handling.
    peterdeka committed Feb 6, 2018
    Configuration menu
    Copy the full SHA
    4eb6ac9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    467c79f View commit details
    Browse the repository at this point in the history
  4. Better refactored harness daemons env file --nojournal removal. Added…

    … mongo version based tests skips for ChangeStreams.
    peterdeka committed Feb 6, 2018
    Configuration menu
    Copy the full SHA
    c8cbfa8 View commit details
    Browse the repository at this point in the history

Commits on Feb 8, 2018

  1. Changed stream iterator timeout handling from driver to DB

    Changed stream iterator timeout handling from driver to DB. Added MaxTimeMS option to Pipe in order to be able to set the maximum query run time. Disabled collation parameter in ChangeStreamOptions as currently we don't support it.
    peterdeka authored Feb 8, 2018
    Configuration menu
    Copy the full SHA
    5534387 View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2018

  1. Configuration menu
    Copy the full SHA
    f341232 View commit details
    Browse the repository at this point in the history

Commits on Feb 14, 2018

  1. Configuration menu
    Copy the full SHA
    cebee9a View commit details
    Browse the repository at this point in the history