nsfmongo.c

Clone Tools
  • last updated 9 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- since mongoc_gridfs_get_files is supported since today by the mongo-c-driver, we do not need it private implementation any more. all dependencies on private header files are removed by now.

- adjust to newest version of mongo-c-driver - remove one dependency for private header file

  1. … 1 more file in changeset.
- represent BSON_TYPE_REGEX as pairs (regex + options) in the Tcl representation to preserve regular expression options - update to newest version of mongo-c-driver and libbson from github

  1. … 2 more files in changeset.
nx-mongo: - optional support for mongodb connection pools (compile time macro USE_CLIENT_POOL controls this, per default, this is on) - allow to pass "-metadata" to gridfile::create to ease metadata attachment to gridfiles - some conveniance improvements in nx-mongo.tcl (ability to ignore attributes in "bson encode", ability to unset attributes in gridfs, ...) - bump version numbers of nsfmongo to 0.3 and nx-monogo to 0.5

  1. … 5 more files in changeset.
- minor cleanup

  1. … 1 more file in changeset.
nx-monogo: - Updated the mongo-c-driver and libbson to the actual tip version from github (this is a significant change, since 10gen essentially changed the officially supported c-driver of MongoDB) - mongo-c-driver was more or less new-implementation, since strucure and names changed in the mongo-c-driver substantially, serveral functions were added, several were dropped. The new interface supports now e.g. mongo URIs, and should be faster (by using collection objects instead of connection handles) - Although the low-level nsf interface changed significantly, the high level (nx level) interface remained unaffected. - Configure has now --with-mongoc=... and --with-bson instead of --with-mongodb - New commands: mongo::collection::open /mongoConn/ /dbName/ /collectionName/ mongo::collection::close /collection/ mongo::gridfs::store_string /content/ /name/ /contentType/ - Make use of the new collection handle mongo::count /mongoConn/ /ns/ ... -> mongo::collection::count /collection/ ... mongo::index /mongoConn/ /ns/ ... -> mongo::collection::index /collection/ ... mongo::insert /mongoConn/ /ns/ ... -> mongo::collection::insert /collection/ ... mongo::query /mongoConn/ /ns/ ... -> mongo::collection::query /collection/ ... mongo::remove /mongoConn/ /ns/ ... -> mongo::collection::delete /collection/ ... mongo::update /mongoConn/ /ns/ ... -> mongo::collection::update /collection/ ... mongo::cursor::find /mongoConn/ /ns/ ... -> mongo::cursor::find /collection/ ... - nsf::mongo::connect receives now a mongoc_uri https://github.com/mongodb/mongo-c-driver/blob/master/doc/mongoc_uri.txt - The gridfs interface allows now to store multiple revisions of a file - The gridfs interface allows now upload files from a string - The gridfs interface allows to refer to files by other attributes than just the filename (e.g. the mongo id). - Modified/new gridfile functions mongo::gridfile::create ?-source file|string? /gridfs/ /value/ /name/ /contentType/ mongo::gridfile::delete /gridfs/ /query/ mongo::gridfile::open /gridfs/ /query/ - Updated README - Updated regression test - Added editor hints for a more uniform appearance

  1. … 14 more files in changeset.
- improve performance of mongo->tcl conversion by using predefined global strings

  1. … 2 more files in changeset.
- implement simple persistent handle management based on per-thread objects

  1. … 2 more files in changeset.
nsf.c: - new command ::nsf::object::alloc /class/ /obj/ ?/script/? alloc an object and execute script in the context. Can be used to regenerate an object in a old state.

serializer:

- fixed loading of objects with required data in the blueprint

(many thanks for david hopfmueller for reporting this)

- make use of nsf::object::alloc (1 command instead of 1 create + 2 evals)

- these changes imprived laading time of blueprint by about 25%

for OpenACS+xowiki

  1. … 9 more files in changeset.
- improve error message - remove trailing space

- upgrade to mongo-c-driver to 0.8.1 - added new flag "-ttl" to mongo::index - there seems to be now a differen mongo-c-driver to be the preferred one, the old one is renamed to mongo-c-driver-legacy - link against nsf-stublib - bump version number to 0.2

  1. … 7 more files in changeset.
mongodb: - integrated configuration of mongodb into toplevel configfile option: --with-mongodb=MONGO_INCLUDE_DIR,MONGO_LIB_DIR - added regression test files for mongodb support (lowlevel (tcl-only) and highlevel (nx based oo support)) - integrated mongodb-testfiles with "make test" - reduced verbosity of nx-mongo.tcl (added verbosty variable)

  1. … 21 more files in changeset.
mongodob: - don't call NsfLog() in Nsfmongo_Exit, since interp-data might be already cleaned up

monogodb: - updated to most recent version of c-driver (0.7.1) - adapted to nx 2.0b5 (use everywhere cget interface) - tested with mongodb 2.4.5

  1. … 9 more files in changeset.
- reduce variable scopes

  1. … 3 more files in changeset.
MongoDB - added "nx::mongo::db drop collection /name/" - returning status from "nx::mongo::db remove" as success (0 or 1)

  1. … 5 more files in changeset.
Updated MongoDB interface - upgraded to c-driver 0.7.1 - tested with MongoDB 2.4.4-pre - new commands: * mongo::run * mongo::cursor::find * mongo::cursor::next * mongo::cursor::close - adapted interface for c-driver 0.7.1 (e.g. new optional name for mongo::index

  1. … 7 more files in changeset.
nsf.c: - extended nsf::method::delete to handle ensemble names

nx.tcl:

- added tk/incr-tcl style cget methods on class/object levels.

- improve copy handling with other child-types of the slot container working

- make sure to ignore non-slot-type objects in slot introspection

- worked on regression test until "methods.test". others are missing,

but maybe reconsideration

  1. … 7 more files in changeset.
- library/mongo: * updated interface to current nx * updated to mongo-c-driver 0.4 (current version) * The mongo c-driver does not allow to add DBRefs, since it refuses to accept field names with leading '$'. So we skip these tests for the time being.

  1. … 6 more files in changeset.
- library/mongodb:updated to current interface in git HEAD

  1. … 1 more file in changeset.
- library/mongodb: * updated error codes according to git head * factored out mapping of error code to string

  1. … 1 more file in changeset.
- library/mongodb: * replaced NsfMongoGetHostPort() with the newly available function mongo_parse_host()

  1. … 1 more file in changeset.
- library/mongodb:updated to current interface in git HEAD

  1. … 1 more file in changeset.
- library/mongodb: updated to current interface in git HEAD (resp. "git checkout v0.4")

  1. … 1 more file in changeset.
- library/mongodb: * updated to current interface in git HEAD

  1. … 3 more files in changeset.
- better error message

  1. … 1 more file in changeset.
- library/mongodb: * added new index options "-sparse" and "-background"

  1. … 3 more files in changeset.
- library/mongodb: * updated to current interface in git HEAD * added flag timeout to mongo::connect

  1. … 3 more files in changeset.
- mongodb interface: * mongo::gridfile::seek: added a seek command for gridfiles * added example for the low-level interface to shwo how to access gridfs via the plain mongodb interface, how to add some additional metadata (e.g. dublin core meta data) and how to retrieve this via the gridfile interface

  1. … 4 more files in changeset.
- C-code generator: * additional parameter swith "-withObj" to allow passing of internal representation and the according TclObj * * c-implemented methods: report types in "info parameter" for more builtin types. * use "-withObj" in mongodb interface * adapted regression test

  1. … 9 more files in changeset.