def get_database_name_out_of_ddl(ddl): clean_ddl = SQLTextHelper.get_sql_without_commands_newlines_and_whitespace(ddl) if clean_ddl.upper().startswith('CREATE DATABASE "'): return SQLTextHelper.get_first_double_quoted_identifier(clean_ddl) elif clean_ddl.upper().startswith('CREATE DATABASE '): database_name = clean_ddl.split(' ')[2] else: raise DDLTransformer.UnsupportedDDLForTransformationException(clean_ddl) return database_name
def __init__(self, path_to_v_generate, view_start): logging.debug('From {cwd} open v_generate {path}'.format( cwd=os.getcwd(), path=path_to_v_generate)) with open(path_to_v_generate, 'r') as v_generate: self.view_sql = v_generate.read() self.view_sql = SQLTextHelper.get_sql_without_commands_newlines_and_whitespace( self.view_sql) if self.view_sql.startswith(view_start): self.view_query_sql = self.view_sql[len(view_start):] self.filter_sql = ''
def __init__(self, path_to_v_generate, view_start): logging.debug('From {cwd} open v_generate {path}'.format( cwd=os.getcwd(), path=path_to_v_generate )) with open(path_to_v_generate, 'r') as v_generate: self.view_sql = v_generate.read() self.view_sql = SQLTextHelper.get_sql_without_commands_newlines_and_whitespace(self.view_sql) if self.view_sql.startswith(view_start): self.view_query_sql = self.view_sql[len(view_start):] self.filter_sql = ''
def get_database_name_out_of_ddl(ddl): clean_ddl = SQLTextHelper.get_sql_without_commands_newlines_and_whitespace( ddl) if clean_ddl.upper().startswith('CREATE DATABASE "'): return SQLTextHelper.get_first_double_quoted_identifier(clean_ddl) elif clean_ddl.upper().startswith('CREATE DATABASE '): database_name = clean_ddl.split(' ')[2] else: raise DDLTransformer.UnsupportedDDLForTransformationException( clean_ddl) return database_name
def get_ddl_for_different_relation(ddl, new_table_name=None, new_schema_name=None): logging.debug('Transforming ddl: {ddl}'.format(ddl=ddl)) clean_ddl = SQLTextHelper.get_sql_without_commands_newlines_and_whitespace(ddl) if clean_ddl.upper().startswith('CREATE TABLE IF NOT EXISTS '): return TableDDLTransformer.get_create_table_ddl_for_different_relation( clean_ddl, new_table_name=new_table_name, new_schema_name=new_schema_name ) elif clean_ddl.upper().startswith('CREATE SCHEMA '): return SchemaDDLTransformer.get_create_schema_ddl_for_different_relation( clean_ddl, new_schema_name=new_schema_name ) raise DDLTransformer.UnsupportedDDLForTransformationException(clean_ddl)
def get_create_sql(self, generate=False): logging.debug('get_create_sql for {self}'.format(self=self)) if generate: ddl_dict = self.get_cluster().get_query_full_result_as_list_of_dict( self.get_statement_to_retrieve_ddl_create_statement_text() ) ddl = SQLTextHelper.get_sql_without_commands_newlines_and_whitespace( '\n'.join([r['ddl'] for r in ddl_dict]) ) self.create_sql = ddl return ddl else: if self.create_sql is not None: return self.create_sql else: raise Resource.CreateSQLNotSet('No create sql configured for resource {r}'.format(r=str(self)))
def get_ddl_for_different_relation(ddl, new_table_name=None, new_schema_name=None): logging.debug('Transforming ddl: {ddl}'.format(ddl=ddl)) clean_ddl = SQLTextHelper.get_sql_without_commands_newlines_and_whitespace( ddl) if clean_ddl.upper().startswith('CREATE TABLE IF NOT EXISTS '): return TableDDLTransformer.get_create_table_ddl_for_different_relation( clean_ddl, new_table_name=new_table_name, new_schema_name=new_schema_name) elif clean_ddl.upper().startswith('CREATE SCHEMA '): return SchemaDDLTransformer.get_create_schema_ddl_for_different_relation( clean_ddl, new_schema_name=new_schema_name) raise DDLTransformer.UnsupportedDDLForTransformationException( clean_ddl)
def get_create_sql(self, generate=False): logging.debug('get_create_sql for {self}'.format(self=self)) if generate: ddl_dict = self.get_cluster( ).get_query_full_result_as_list_of_dict( self.get_statement_to_retrieve_ddl_create_statement_text()) ddl = SQLTextHelper.get_sql_without_commands_newlines_and_whitespace( '\n'.join([r['ddl'] for r in ddl_dict])) self.create_sql = ddl return ddl else: if self.create_sql is not None: return self.create_sql else: raise Resource.CreateSQLNotSet( 'No create sql configured for resource {r}'.format( r=str(self)))