Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
A crude set of changes to ruby-monetdb-sql to support xquery. Warning at the moment I haven't tested anything but basic xqueries and I haven't changed anything in the gemspec so stuff might break.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
Warning: this version has crude support for xquery added and has not been properly tested or completed, use with caution. == Standalone driver == This directory contains the a ruby interface to monetdb5 written in pure ruby. lib/MonetDB.rb lib/MonetDBConnection.rb lib/MonetDBStatements.rb lib/MonetDBData.rb lib/MonetDBExceptions.rb lib/hasher.rb lib/demo.rb: demo application how to interact with the database ruby-monetdb-sql-0.1.gemspec: make file for rubygems doc/: rubydoc in HTML format == Installation == The standalone monetdb driver can be installed using the RubyGems Package Manager. First build a gem file starting from the gemspec configuration: $ gem build ruby-monetdb-sql-0.1.gemspec Then install with the command: $ gem install ruby-monetdb-sql-0.1.gem == Usage == To use the standalone driver import the 'MonetDB' class and 'rubygems' (in case you installed it using gems). A typical sequence of events is as follows: Invoke query using the database handle to send the statement to the server and get back a result set object. A result set object has methods for fetching rows, moving around in the result set, obtaining column metadata, and releasing the result set. Use a row fetching method such as fetch_row or an iterator such as each to access the rows of the result set. If you want a count of the number of rows in the result set: invoke 'num_rows' method. Invoke 'free' to release the result set. == Example == require 'MonetDB' db = MonetDB.new db.connect(user = "monetdb", passwd = "monetdb", lang = "sql", host="127.0.0.1", port = 50000, db_name = "demo", auth_type = "SHA1") # set type_cast=true to enable MonetDB to Ruby type mapping res = db.query("SELECT * from tables;", type_cast = false) #puts res.debug_columns_type puts "Number of rows returned: " + res.num_rows.to_s puts "Number of fields: " + res.num_fields.to_s # Get the columns' name col_names = res.name_fields # Iterate over the record set and retrieve on row at a time puts res.fetch while row = res.fetch do printf "%s \n", row end # Release the result set. res.free # Disconnect from server db.close See lib/demo.rb and the MonetDBDatar class documentation for more examples. == ActiveRecord connector adapter == Active Record connects business objects and database tables to create a persistable domain model where logic and data are presented in one wrapping. It‘s an implementation of the object-relational mapping (ORM) pattern. Required files: adapter/lib/active_record/monetdb_adapter.rb Usage example follows: require 'active_record' ActiveRecord::Base.logger = Logger.new(STDERR) ActiveRecord::Base.colorize_logging = true ActiveRecord::Base.establish_connection( :adapter => "monetdb", :host => "localhost", :database => "demo" ) # Create a new table class AddTests < ActiveRecord::Migration def self.up create_table :tests do |table| table.column :name, :string table.column :surname, :string end end def self.down drop_table :tests end end AddTests.up # Migration: add a column name with a default value class AddAge < ActiveRecord::Migration def self.up add_column :tests, :age, :smallint, :default => 18 end def self.down remove_column :tests, :age end end class Test < ActiveRecord::Base end # Insert an entry in the table Test.create(:name => 'X', :surname => 'Y') # add a column AddAge.up # return the first result of the query SELECT * from tables row = Test.find(:first) printf "SELECT * from tests LIMIT 1:\n" printf "Name: %s, Surname: %s, Age: %s\n", row.name, row.surname, row.age # Drop the table AddTests.down == Rubygem == The standalone ruby driver can be distributed as a ruby gem. A gem file is already available; however, it can be generated starting from the ruby-monetdb-sql-0.1.gemspec file: $ gem build ruby-monetdb-sql-0.1.gemspec To install the file run the command: $ gem install ruby-monetdb-sql-0.1.gem Documentation in ri and html format will be generated and installed as well