Exemplo n.º 1
0
    def _parse_sql_statements(self, migration_sql):
        all_statements = []
        last_statement = ''
        
        match_stmt = self.__re_objects.match(migration_sql)
        if not match_stmt:
            match_stmt = self.__re_anonymous.match(migration_sql)
            
        if match_stmt and match_stmt.re.groups > 0:
            if match_stmt.group('pre'):
                all_statements = all_statements + self._parse_sql_statements(match_stmt.group('pre'))
            if match_stmt.group('principal'):
                all_statements.append(match_stmt.group('principal'))
            if match_stmt.group('pos'):
                all_statements = all_statements + self._parse_sql_statements(match_stmt.group('pos'))

        else:
            for statement in migration_sql.split(';'):
                if len(last_statement) > 0:
                    curr_statement = '%s;%s' % (last_statement, statement)
                else:
                    curr_statement = statement
                
                single_quotes = Utils.how_many(curr_statement, "'")
                double_quotes = Utils.how_many(curr_statement, '"')
                left_parenthesis = Utils.how_many(curr_statement, '(')
                right_parenthesis = Utils.how_many(curr_statement, ')')
                
                if single_quotes % 2 == 0 and double_quotes % 2 == 0 and left_parenthesis == right_parenthesis:
                    all_statements.append(curr_statement)
                    last_statement = ''
                else:
                    last_statement = curr_statement
            
        return [s.strip() for s in all_statements if s.strip() != ""]
Exemplo n.º 2
0
 def _parse_sql_statements(self, migration_sql):
     all_statements = []
     last_statement = ''
     
     for statement in migration_sql.split(';'):
         if len(last_statement) > 0:
             curr_statement = '%s;%s' % (last_statement, statement)
         else:
             curr_statement = statement
         
         single_quotes = Utils.how_many(curr_statement, "'")
         double_quotes = Utils.how_many(curr_statement, '"')
         left_parenthesis = Utils.how_many(curr_statement, '(')
         right_parenthesis = Utils.how_many(curr_statement, ')')
         
         if single_quotes % 2 == 0 and double_quotes % 2 == 0 and left_parenthesis == right_parenthesis:
             all_statements.append(curr_statement)
             last_statement = ''
         else:
             last_statement = curr_statement
         
     return [s.strip() for s in all_statements if s.strip() != ""]
Exemplo n.º 3
0
    def _parse_sql_statements(self, migration_sql):
        all_statements = []
        last_statement = ''

        for statement in migration_sql.split(';'):
            if len(last_statement) > 0:
                curr_statement = '%s;%s' % (last_statement, statement)
            else:
                curr_statement = statement

            single_quotes = Utils.how_many(curr_statement, "'")
            double_quotes = Utils.how_many(curr_statement, '"')
            left_parenthesis = Utils.how_many(curr_statement, '(')
            right_parenthesis = Utils.how_many(curr_statement, ')')

            if single_quotes % 2 == 0 and double_quotes % 2 == 0 and left_parenthesis == right_parenthesis:
                all_statements.append(curr_statement)
                last_statement = ''
            else:
                last_statement = curr_statement

        return [s.strip() for s in all_statements if s.strip() != ""]
Exemplo n.º 4
0
    def _parse_sql_statements(self, migration_sql):
        all_statements = []
        last_statement = ''

        match_stmt = self.__re_objects.match(migration_sql)
        if not match_stmt:
            match_stmt = self.__re_anonymous.match(migration_sql)

        if match_stmt and match_stmt.re.groups > 0:
            if match_stmt.group('pre'):
                all_statements = all_statements + self._parse_sql_statements(
                    match_stmt.group('pre'))
            if match_stmt.group('principal'):
                all_statements.append(match_stmt.group('principal'))
            if match_stmt.group('pos'):
                all_statements = all_statements + self._parse_sql_statements(
                    match_stmt.group('pos'))

        else:
            for statement in migration_sql.split(';'):
                if len(last_statement) > 0:
                    curr_statement = '%s;%s' % (last_statement, statement)
                else:
                    curr_statement = statement

                single_quotes = Utils.how_many(curr_statement, "'")
                double_quotes = Utils.how_many(curr_statement, '"')
                left_parenthesis = Utils.how_many(curr_statement, '(')
                right_parenthesis = Utils.how_many(curr_statement, ')')

                if single_quotes % 2 == 0 and double_quotes % 2 == 0 and left_parenthesis == right_parenthesis:
                    all_statements.append(curr_statement)
                    last_statement = ''
                else:
                    last_statement = curr_statement

        return [s.strip() for s in all_statements if s.strip() != ""]