From 8ffa5bbbcb471a085bb2d6f59ed1b712d7eaec94 Mon Sep 17 00:00:00 2001 From: mdipierro Date: Sun, 30 Sep 2012 14:19:52 -0500 Subject: [PATCH] adapter have do_connect --- VERSION | 2 +- gluon/dal.py | 86 ++++++++++++++++++++++++++-------------------------- 2 files changed, 44 insertions(+), 44 deletions(-) diff --git a/VERSION b/VERSION index f6d61413..f2d89e3a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.0.9 (2012-09-30 13:47:42) dev +Version 2.0.9 (2012-09-30 14:19:41) dev diff --git a/gluon/dal.py b/gluon/dal.py index 545a9245..00965668 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -590,11 +590,13 @@ class BaseAdapter(ConnectionPool): driver = None driver_name = None drivers = () # list of drivers from which to pick + connection = None maxcharlength = MAXCHARLENGTH commit_on_alter_table = False support_distributed_transaction = False uploads_in_blob = False can_select_for_update = True + types = { 'boolean': 'CHAR(1)', 'string': 'CHAR(%(length)s)', @@ -681,7 +683,7 @@ class BaseAdapter(ConnectionPool): def __init__(self, db,uri,pool_size=0, folder=None, db_codec='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={},do_connect=True): self.db = db self.dbengine = "None" self.uri = uri @@ -2052,7 +2054,7 @@ class SQLiteAdapter(BaseAdapter): def __init__(self, db, uri, pool_size=0, folder=None, db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.db = db self.dbengine = "sqlite" self.uri = uri @@ -2076,7 +2078,7 @@ class SQLiteAdapter(BaseAdapter): driver_args['detect_types'] = self.driver.PARSE_DECLTYPES def connector(dbpath=dbpath, driver_args=driver_args): return self.driver.Connection(dbpath, **driver_args) - self.reconnect(connector) + if do_connect: self.reconnect(connector) def after_connection(self): self.connection.create_function('web2py_extract', 2, @@ -2139,7 +2141,7 @@ class SpatiaLiteAdapter(SQLiteAdapter): driver_args['detect_types'] = self.driver.PARSE_DECLTYPES def connector(dbpath=dbpath, driver_args=driver_args): return self.driver.Connection(dbpath, **driver_args) - self.reconnect(connector) + if do_connect: self.reconnect(connector) def after_connection(self): self.connection.enable_load_extension(True) @@ -2218,7 +2220,7 @@ class JDBCSQLiteAdapter(SQLiteAdapter): def __init__(self, db, uri, pool_size=0, folder=None, db_codec='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.db = db self.dbengine = "sqlite" self.uri = uri @@ -2240,7 +2242,7 @@ class JDBCSQLiteAdapter(SQLiteAdapter): return self.driver.connect( self.driver.getConnection('jdbc:sqlite:'+dbpath), **driver_args) - self.reconnect(connector) + if do_connect: self.reconnect(connector) def after_connection(self): # FIXME http://www.zentus.com/sqlitejdbc/custom_functions.html for UDFs @@ -2319,7 +2321,7 @@ class MySQLAdapter(BaseAdapter): def __init__(self,db,uri,pool_size=0,folder=None,db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.db = db self.dbengine = "mysql" self.uri = uri @@ -2357,7 +2359,7 @@ class MySQLAdapter(BaseAdapter): def connector(driver_args=driver_args): return self.driver.connect(**driver_args) - self.reconnect(connector) + if do_connect: self.reconnect(connector) def after_connection(self): self.execute('SET FOREIGN_KEY_CHECKS=1;') @@ -2444,7 +2446,7 @@ class PostgreSQLAdapter(BaseAdapter): def __init__(self,db,uri,pool_size=0,folder=None,db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}, srid=4326): + adapter_args={}, do_connect=True, srid=4326): self.db = db self.dbengine = "postgres" self.uri = uri @@ -2484,7 +2486,7 @@ class PostgreSQLAdapter(BaseAdapter): self.__version__ = "%s %s" % (self.driver.__name__, self.driver.__version__) def connector(msg=msg,driver_args=driver_args): return self.driver.connect(msg,**driver_args) - self.reconnect(connector) + if do_connect: self.reconnect(connector) def after_connection(self): self.connection.set_client_encoding('UTF8') @@ -2669,7 +2671,7 @@ class JDBCPostgreSQLAdapter(PostgreSQLAdapter): def __init__(self,db,uri,pool_size=0,folder=None,db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.db = db self.dbengine = "postgres" self.uri = uri @@ -2698,7 +2700,7 @@ class JDBCPostgreSQLAdapter(PostgreSQLAdapter): msg = ('jdbc:postgresql://%s:%s/%s' % (host, port, db), user, password) def connector(msg=msg,driver_args=driver_args): return self.driver.connect(*msg,**driver_args) - self.reconnect(connector) + if do_connect: self.reconnect(connector) def after_connection(self): self.connection.set_client_encoding('UTF8') @@ -2793,7 +2795,7 @@ class OracleAdapter(BaseAdapter): def __init__(self,db,uri,pool_size=0,folder=None,db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.db = db self.dbengine = "oracle" self.uri = uri @@ -2807,7 +2809,7 @@ class OracleAdapter(BaseAdapter): driver_args['threaded']=True def connector(uri=ruri,driver_args=driver_args): return self.driver.connect(uri,**driver_args) - self.reconnect(connector) + if do_connect: self.reconnect(connector) def after_connection(self): self.execute("ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';") @@ -2953,7 +2955,7 @@ class MSSQLAdapter(BaseAdapter): def __init__(self,db,uri,pool_size=0,folder=None,db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}, fake_connect=False, srid=4326): + adapter_args={}, do_connect=True, srid=4326): self.db = db self.dbengine = "mssql" self.uri = uri @@ -3009,8 +3011,7 @@ class MSSQLAdapter(BaseAdapter): % (host, port, db, user, password, urlargs) def connector(cnxn=cnxn,driver_args=driver_args): return self.driver.connect(cnxn,**driver_args) - if not fake_connect: - self.reconnect(connector) + if do_connect: self.reconnect(connector) def lastrowid(self,table): #self.execute('SELECT @@IDENTITY;') @@ -3150,7 +3151,7 @@ class SybaseAdapter(MSSQLAdapter): def __init__(self,db,uri,pool_size=0,folder=None,db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}, fake_connect=False, srid=4326): + adapter_args={}, do_connect=True, srid=4326): self.db = db self.dbengine = "sybase" self.uri = uri @@ -3200,8 +3201,7 @@ class SybaseAdapter(MSSQLAdapter): def connector(dsn=dsn,driver_args=driver_args): return self.driver.connect(dsn,**driver_args) - if not fake_connect: - self.reconnect(connector) + if do_connect: self.reconnect(connector) def integrity_error_class(self): return RuntimeError # FIX THIS @@ -3272,7 +3272,7 @@ class FireBirdAdapter(BaseAdapter): def __init__(self,db,uri,pool_size=0,folder=None,db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.db = db self.dbengine = "firebird" self.uri = uri @@ -3306,7 +3306,7 @@ class FireBirdAdapter(BaseAdapter): def connector(driver_args=driver_args): return self.driver.connect(**driver_args) - self.reconnect(connector) + if do_connect: self.reconnect(connector) def create_sequence_and_triggers(self, query, table, **args): tablename = table._tablename @@ -3330,7 +3330,7 @@ class FireBirdEmbeddedAdapter(FireBirdAdapter): def __init__(self,db,uri,pool_size=0,folder=None,db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.db = db self.dbengine = "firebird" self.uri = uri @@ -3365,7 +3365,7 @@ class FireBirdEmbeddedAdapter(FireBirdAdapter): def connector(driver_args=driver_args): return self.driver.connect(**driver_args) - self.reconnect(connector) + if do_connect: self.reconnect(connector) class InformixAdapter(BaseAdapter): drivers = ('informixdb',) @@ -3436,7 +3436,7 @@ class InformixAdapter(BaseAdapter): def __init__(self,db,uri,pool_size=0,folder=None,db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.db = db self.dbengine = "informix" self.uri = uri @@ -3468,7 +3468,7 @@ class InformixAdapter(BaseAdapter): driver_args.update(user=user,password=password,autocommit=True) def connector(dsn=dsn,driver_args=driver_args): return self.driver.connect(dsn,**driver_args) - self.reconnect(connector) + if do_connect: self.reconnect(connector) def execute(self,command): if command[-1:]==';': @@ -3537,7 +3537,7 @@ class DB2Adapter(BaseAdapter): def __init__(self,db,uri,pool_size=0,folder=None,db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.db = db self.dbengine = "db2" self.uri = uri @@ -3549,7 +3549,7 @@ class DB2Adapter(BaseAdapter): ruri = uri.split('://', 1)[1] def connector(cnxn=ruri,driver_args=driver_args): return self.driver.connect(cnxn,**driver_args) - self.reconnect(connector) + if do_connect: self.reconnect(connector) def execute(self,command): if command[-1:]==';': @@ -3599,7 +3599,7 @@ class TeradataAdapter(BaseAdapter): def __init__(self,db,uri,pool_size=0,folder=None,db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.db = db self.dbengine = "teradata" self.uri = uri @@ -3611,7 +3611,7 @@ class TeradataAdapter(BaseAdapter): ruri = uri.split('://', 1)[1] def connector(cnxn=ruri,driver_args=driver_args): return self.driver.connect(cnxn,**driver_args) - self.reconnect(connector) + if do_connect: self.reconnect(connector) def LEFT_JOIN(self): return 'LEFT OUTER JOIN' @@ -3679,7 +3679,7 @@ class IngresAdapter(BaseAdapter): def __init__(self,db,uri,pool_size=0,folder=None,db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.db = db self.dbengine = "ingres" self.uri = uri @@ -3703,7 +3703,7 @@ class IngresAdapter(BaseAdapter): trace=trace) def connector(driver_args=driver_args): return self.driver.connect(**driver_args) - self.reconnect(connector) + if do_connect: self.reconnect(connector) def create_sequence_and_triggers(self, query, table, **args): # post create table auto inc code (if needed) @@ -3814,7 +3814,7 @@ class SAPDBAdapter(BaseAdapter): def __init__(self,db,uri,pool_size=0,folder=None,db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.db = db self.dbengine = "sapdb" self.uri = uri @@ -3843,7 +3843,7 @@ class SAPDBAdapter(BaseAdapter): host=host, driver_args=driver_args): return self.driver.Connection(user, password, database, host, **driver_args) - self.reconnect(connector) + if do_connect: self.reconnect(connector) def lastrowid(self,table): self.execute("select %s.NEXTVAL from dual" % table._sequence_name) @@ -3856,7 +3856,7 @@ class CubridAdapter(MySQLAdapter): def __init__(self, db, uri, pool_size=0, folder=None, db_codec='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.db = db self.dbengine = "cubrid" self.uri = uri @@ -3889,7 +3889,7 @@ class CubridAdapter(MySQLAdapter): def connector(host=host,port=port,db=db, user=user,passwd=password,driver_args=driver_args): return self.driver.connect(host,port,db,user,passwd,**driver_args) - self.reconnect(connector) + if do_connect: self.reconnect(connector) def after_connection(self): self.execute('SET FOREIGN_KEY_CHECKS=1;') @@ -3989,7 +3989,7 @@ class GoogleSQLAdapter(UseDatabaseStoredFile,MySQLAdapter): def __init__(self, db, uri='google:sql://realm:domain/database', pool_size=0, folder=None, db_codec='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.db = db self.dbengine = "mysql" @@ -4010,7 +4010,7 @@ class GoogleSQLAdapter(UseDatabaseStoredFile,MySQLAdapter): driver_args['database'] = db def connector(driver_args=driver_args): return rdbms.connect(**driver_args) - self.reconnect(connector) + if do_connect: self.reconnect(connector) def after_connection(self): if self.createdb: @@ -4198,7 +4198,7 @@ class GoogleDatastoreAdapter(NoSQLAdapter): def __init__(self,db,uri,pool_size=0,folder=None,db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.types.update({ 'boolean': gae.BooleanProperty, 'string': (lambda: gae.StringProperty(multiline=True)), @@ -4657,7 +4657,7 @@ class CouchDBAdapter(NoSQLAdapter): def __init__(self,db,uri='couchdb://127.0.0.1:5984', pool_size=0,folder=None,db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.db = db self.uri = uri self.find_driver(adapter_args) @@ -4818,7 +4818,7 @@ class MongoDBAdapter(NoSQLAdapter): def __init__(self,db,uri='mongodb://127.0.0.1:5984/db', pool_size=0,folder=None,db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): self.db = db self.uri = uri self.find_driver(adapter_args) @@ -5419,7 +5419,7 @@ class IMAPAdapter(NoSQLAdapter): db_codec ='UTF-8', credential_decoder=IDENTITY, driver_args={}, - adapter_args={}): + adapter_args={}, do_connect=True): # db uri: user@example.com:password@imap.server.com:123 # TODO: max size adapter argument for preventing large mail transfers @@ -5487,7 +5487,7 @@ class IMAPAdapter(NoSQLAdapter): return connection self.db.define_tables = self.define_tables - self.reconnect(connector) + if do_connect: self.reconnect(connector) def reconnect(self, f, cursor=True): """