MonetDB::CLI - MonetDB Call Level Interface


  use MonetDB::CLI();

  my $cxn = MonetDB::CLI->connect( $host, $port, $user, $pass, $lang );

  my $req = $cxn->query('select * from env');
  while ( my $cnt = $req->fetch ) {
    print $req->field( $_ ) for 0 .. $cnt-1;


MonetDB::CLI is a call level interface for MonetDB, somewhat similar to SQL/CLI, ODBC, JDBC or DBI.

Note: In its current incarnation, this interface resembles the MonetDB Application Programming Interface. In the future, MAPI will be replaced by the MonetDB/Five Communication Layer (MCL). It is not guaranteed that this call level interface stays the same!

The connect() method

  my $cxn = MonetDB::CLI->connect( $host, $port, $user, $pass, $lang );

This method tries to load an implementation module from @Modules and delegates to the connect() method of the first successful loaded module. Otherwise, an exception is raised.

The default list of implementation modules can be changed with the PERL_MONETDB_CLI_MODULES environment variable. A semicolon-separated list of module names is expected.

Connection object methods

It's up to the implementation modules to provide the methods for the connection object:

  my $req = $cxn->query( $statement );  # request object

Request object methods

It's up to the implementation modules to provide the methods for the request object:

  print $req->querytype;
  print $req->id;
  print $req->rows_affected;
  print $req->columncount;

  for ( 0 .. $req->columncount - 1 ) {
    print $req->name  ( $_ );
    print $req->type  ( $_ );
    print $req->length( $_ );
  while ( my $cnt = $req->fetch ) {
    print $req->field( $_ ) for 0 .. $cnt-1;


Steffen Goeldner <>.


The contents of this file are subject to the MonetDB Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.

The Original Code is the MonetDB Database System.

The Initial Developer of the Original Code is CWI. Portions created by CWI are Copyright (C) 1997-2006 CWI. All Rights Reserved.



  Homepage    :
  SourceForge :

Perl modules

MonetDB::CLI::MapiLib, MonetDB::CLI::MapiXS, MonetDB::CLI::MapiPP