def wrap(*args, **kwargs): # Here args[0] will hold self & kwargs will hold gid,sid,did self = args[0] self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager( kwargs['sid']) self.conn = self.manager.connection(did=kwargs['did']) # We need datlastsysoid to check if current index is system index self.datlastsysoid = self.manager.db_info[ kwargs['did'] ]['datlastsysoid'] if self.manager.db_info is not None and \ kwargs['did'] in self.manager.db_info else 0 self.table_template_path = compile_template_path( 'tables/sql', self.manager.server_type, self.manager.version) # we will set template path for sql scripts self.template_path = compile_template_path( 'indexes/sql/', self.manager.server_type, self.manager.version) # We need parent's name eg table name and schema name # when we create new index in update we can fetch it using # property sql schema, table = index_utils.get_parent(self.conn, kwargs['tid']) self.schema = schema self.table = table return f(*args, **kwargs)
def wrap(*args, **kwargs): self = args[0] driver = get_driver(PG_DEFAULT_DRIVER) self.manager = driver.connection_manager(kwargs['sid']) # Get database connection self.conn = self.manager.connection(did=kwargs['did']) self.qtIdent = driver.qtIdent self.datlastsysoid = \ self.manager.db_info[kwargs['did']]['datlastsysoid'] \ if self.manager.db_info is not None and \ kwargs['did'] in self.manager.db_info else 0 self.datistemplate = False if ( self.manager.db_info is not None and kwargs['did'] in self.manager.db_info and 'datistemplate' in self.manager.db_info[kwargs['did']] ): self.datistemplate = self.manager.db_info[ kwargs['did']]['datistemplate'] # we will set template path for sql scripts self.template_path = compile_template_path( 'domains/sql/', self.manager.server_type, self.manager.version ) return f(*args, **kwargs)
def wrap(*args, **kwargs): # Here args[0] will hold self & kwargs will hold gid,sid,did self = args[0] self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager( kwargs['sid'] ) self.conn = self.manager.connection(did=kwargs['did']) self.datlastsysoid = \ self.manager.db_info[kwargs['did']]['datlastsysoid'] \ if self.manager.db_info is not None and \ kwargs['did'] in self.manager.db_info else 0 self.datistemplate = False if ( self.manager.db_info is not None and kwargs['did'] in self.manager.db_info and 'datistemplate' in self.manager.db_info[kwargs['did']] ): self.datistemplate = self.manager.db_info[ kwargs['did']]['datistemplate'] # Set the template path for the SQL scripts self.template_path = compile_template_path( 'collations/sql/', self.manager.server_type, self.manager.version ) return f(*args, **kwargs)
def wrap(*args, **kwargs): # Here args[0] will hold self & kwargs will hold gid,sid,did self = args[0] self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager( kwargs['sid']) self.conn = self.manager.connection(did=kwargs['did']) self.datistemplate = False if (self.manager.db_info is not None and kwargs['did'] in self.manager.db_info and 'datistemplate' in self.manager.db_info[kwargs['did']]): self.datistemplate = self.manager.db_info[ kwargs['did']]['datistemplate'] self.table_template_path = compile_template_path( 'tables/sql', self.manager.server_type, self.manager.version) # we will set template path for sql scripts self.template_path = 'compound_triggers/sql/{0}/#{1}#'.format( self.manager.server_type, self.manager.version) # Store server type self.server_type = self.manager.server_type # We need parent's name eg table name and schema name # when we create new compound trigger in update we can fetch # it using property sql schema, table = compound_trigger_utils.get_parent( self.conn, kwargs['tid']) self.schema = schema self.table = table return f(*args, **kwargs)
def wrap(*args, **kwargs): # Here args[0] will hold self & kwargs will hold gid,sid,did self = args[0] self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager( kwargs['sid']) self.conn = self.manager.connection(did=kwargs['did']) # We need datlastsysoid to check if current index is system index self.datlastsysoid = self.manager.db_info[ kwargs['did'] ]['datlastsysoid'] if self.manager.db_info is not None and \ kwargs['did'] in self.manager.db_info else 0 # we will set template path for sql scripts self.template_path = compile_template_path( 'index/sql/', self.manager.server_type, self.manager.version) # We need parent's name eg table name and schema name # when we create new index in update we can fetch it using # property sql SQL = render_template("/".join( [self.template_path, 'get_parent.sql']), tid=kwargs['tid']) status, rset = self.conn.execute_2darray(SQL) if not status: return internal_server_error(errormsg=rset) for row in rset['rows']: self.schema = row['schema'] self.table = row['table'] return f(*args, **kwargs)
def backend_supported(self, manager, **kwargs): """ Load this module if vid is view, we will not load it under material view """ if super(IndexesModule, self).backend_supported(manager, **kwargs): conn = manager.connection(did=kwargs['did']) # If PG version > 100000 and < 110000 then index is # not supported for partitioned table. if 'tid' in kwargs and 100000 <= manager.version < 110000: return not backend_supported(self, manager, **kwargs) if 'vid' not in kwargs: return True template_path = compile_template_path('indexes/sql', manager.server_type, manager.version) SQL = render_template("/".join( [template_path, 'backend_support.sql']), vid=kwargs['vid']) status, res = conn.execute_scalar(SQL) # check if any errors if not status: return internal_server_error(errormsg=res) # Check vid is view not material view # then true, othewise false return res
def wrap(*args, **kwargs): # Here args[0] will hold self & kwargs will hold gid,sid,did self = args[0] self.manager = get_driver( PG_DEFAULT_DRIVER ).connection_manager(kwargs['sid']) self.conn = self.manager.connection(did=kwargs['did']) schema, table = row_security_policies_utils.get_parent(self.conn, kwargs[ 'tid']) self.datlastsysoid = self.manager.db_info[ kwargs['did'] ]['datlastsysoid'] if self.manager.db_info is not None and \ kwargs['did'] in self.manager.db_info else 0 self.schema = schema self.table = table # Set template path for the sql scripts self.table_template_path = compile_template_path( 'tables/sql', self.manager.server_type, self.manager.version ) self.template_path = 'row_security_policies/sql/#{0}#'.format( self.manager.version) return f(*args, **kwargs)
def wrap(*args, **kwargs): # Here args[0] will hold self & kwargs will hold gid,sid,did self = args[0] self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager( kwargs['sid']) self.conn = self.manager.connection(did=kwargs['did']) # we will set template path for sql scripts self.table_template_path = compile_template_path( 'tables/sql', self.manager.server_type, self.manager.version) self.template_path = 'triggers/sql/{0}/#{1}#'.format( self.manager.server_type, self.manager.version) self.trigger_function_template_path = \ 'trigger_functions/{0}/sql/#{1}#'.format( self.manager.server_type, self.manager.version) # Store server type self.server_type = self.manager.server_type # We need parent's name eg table name and schema name # when we create new trigger in update we can fetch it using # property sql schema, table = trigger_utils.get_parent(self.conn, kwargs['tid']) self.schema = schema self.table = table return f(*args, **kwargs)
def wrap(*args, **kwargs): # Here args[0] will hold the connection object conn_obj = args[0] if 'template_path' not in kwargs or kwargs['template_path'] is None: kwargs['template_path'] = \ compile_template_path('indexes/sql', conn_obj.manager.server_type, conn_obj.manager.version) return f(*args, **kwargs)
def wrap(*args, **kwargs): # Here args[0] will hold self & kwargs will hold gid,sid,did self = args[0] self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager( kwargs['sid']) self.conn = self.manager.connection(did=kwargs['did']) self.template_path = 'rules/sql' self.table_template_path = compile_template_path( 'tables/sql', self.manager.server_type, self.manager.version) return f(*args, **kwargs)
def wrap(*args, **kwargs): # Here args[0] will hold self & kwargs will hold gid,sid,did self = args[0] self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager( kwargs['server_id']) self.connection = self.manager.connection( did=kwargs['database_id']) self.sql_template_path = compile_template_path( 'sql', self.manager.server_type, self.manager.sversion) return function_wrapped(*args, **kwargs)
def wrap(*args, **kwargs): # Here args[0] will hold self & kwargs will hold gid,sid,did self = args[0] self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager( kwargs['sid']) self.conn = self.manager.connection(did=kwargs['did']) # Set the template path for the SQL scripts self.template_path = compile_template_path( 'collation/sql/', self.manager.server_type, self.manager.version) return f(*args, **kwargs)
def wrap(*args, **kwargs): self = args[0] driver = get_driver(PG_DEFAULT_DRIVER) self.manager = driver.connection_manager(kwargs['sid']) # Get database connection self.conn = self.manager.connection(did=kwargs['did']) self.qtIdent = driver.qtIdent # we will set template path for sql scripts self.template_path = compile_template_path( 'domains/sql/', self.manager.server_type, self.manager.version) return f(*args, **kwargs)
def wrap(*args, **kwargs): # Here args[0] will hold self & kwargs will hold gid,sid,did self = args[0] self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager( kwargs['sid']) self.conn = self.manager.connection(did=kwargs['did']) self.datlastsysoid = self.manager.db_info[ kwargs['did'] ]['datlastsysoid'] if self.manager.db_info is not None and \ kwargs['did'] in self.manager.db_info else 0 self.template_path = 'rules/sql' self.table_template_path = compile_template_path( 'tables/sql', self.manager.server_type, self.manager.version) return f(*args, **kwargs)
def wrap(*args, **kwargs): # Here args[0] will hold self & kwargs will hold gid,sid,did self = args[0] self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager( kwargs['sid'] ) self.conn = self.manager.connection(did=kwargs['did']) # Set the template path for the SQL scripts self.template_path = compile_template_path( 'collation/sql/', self.manager.server_type, self.manager.version ) return f(*args, **kwargs)
def wrap(*args, **kwargs): self = args[0] driver = get_driver(PG_DEFAULT_DRIVER) self.manager = driver.connection_manager(kwargs['sid']) # Get database connection self.conn = self.manager.connection(did=kwargs['did']) self.qtIdent = driver.qtIdent # we will set template path for sql scripts self.template_path = compile_template_path( 'domains/sql/', self.manager.server_type, self.manager.version ) return f(*args, **kwargs)
def wrap(*args, **kwargs): # Here args[0] will hold self & kwargs will hold gid,sid,did self = args[0] self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager( kwargs['server_id'] ) self.connection = self.manager.connection( did=kwargs['database_id'] ) self.sql_template_path = compile_template_path( 'sql', self.manager.server_type, self.manager.sversion ) return function_wrapped(*args, **kwargs)
def wrap(*args, **kwargs): self = args[0] driver = get_driver(PG_DEFAULT_DRIVER) self.manager = driver.connection_manager(kwargs['sid']) # Get database connection self.conn = self.manager.connection(did=kwargs['did']) self.qtIdent = driver.qtIdent # Set template path for sql scripts depending # on the server version. self.template_path = compile_template_path( 'foreign_tables/sql/', self.manager.server_type, self.manager.version) return f(*args, **kwargs)
def wrap(*args, **kwargs): self = args[0] driver = get_driver(PG_DEFAULT_DRIVER) self.manager = driver.connection_manager(kwargs['sid']) # Get database connection self.conn = self.manager.connection(did=kwargs['did']) self.qtIdent = driver.qtIdent # Set template path for sql scripts depending # on the server version. self.template_path = compile_template_path( 'foreign_tables/sql/', self.manager.server_type, self.manager.version ) return f(*args, **kwargs)
def wrap(*args, **kwargs): # Here args[0] will hold self & kwargs will hold gid,sid,did self = args[0] driver = get_driver(PG_DEFAULT_DRIVER) self.manager = driver.connection_manager(kwargs['sid']) self.conn = self.manager.connection(did=kwargs['did']) self.qtIdent = driver.qtIdent self.qtTypeIdent = driver.qtTypeIdent # Set the template path for the SQL scripts self.template_path = compile_template_path( 'columns/sql', self.manager.server_type, self.manager.version) # Allowed ACL for column 'Select/Update/Insert/References' self.acl = ['a', 'r', 'w', 'x'] # We need parent's name eg table name and schema name schema, table = column_utils.get_parent(self.conn, kwargs['tid']) self.schema = schema self.table = table return f(*args, **kwargs)
def wrap(*args, **kwargs): # Here args[0] will hold self & kwargs will hold gid,sid,did self = args[0] self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager( kwargs['sid'] ) self.conn = self.manager.connection(did=kwargs['did']) # We need datlastsysoid to check if current index is system index self.datlastsysoid = self.manager.db_info[ kwargs['did'] ]['datlastsysoid'] if self.manager.db_info is not None and \ kwargs['did'] in self.manager.db_info else 0 # we will set template path for sql scripts self.template_path = compile_template_path( 'index/sql/', self.manager.server_type, self.manager.version ) # We need parent's name eg table name and schema name # when we create new index in update we can fetch it using # property sql SQL = render_template( "/".join([self.template_path, 'get_parent.sql']), tid=kwargs['tid'] ) status, rset = self.conn.execute_2darray(SQL) if not status: return internal_server_error(errormsg=rset) for row in rset['rows']: self.schema = row['schema'] self.table = row['table'] return f(*args, **kwargs)