docs: def _get_designation_type(self):
          """
          Extracts the designation type of the stored routine.
          """
          positions = self._get_specification_positions()
          if positions[0] != -1 and positions[1] != -1:
              pattern = re.compile(r'^\s*--\s+type\s*:\s*(\w+)\s*(.+)?\s*', re.IGNORECASE)
              for line_number in range(positions[0], positions[1] + 1):
                  matches = pattern.findall(self._routine_source_code_lines[line_number])
                  if matches:
                      self._designation_type = matches[0][0].lower()
                      tmp = str(matches[0][1])
                      if self._designation_type == 'bulk_insert':
                          n = re.compile(r'([a-zA-Z0-9_]+)\s+([a-zA-Z0-9_,]+)', re.IGNORECASE)
                          info = n.findall(tmp)
                          if not info:
                              raise LoaderException('Expected: -- type: bulk_insert <table_name> <columns> in file {0}'.
                                                    format(self._source_filename))
                          self._table_name = info[0][0]
                          self._columns = str(info[0][1]).split(',')
  
                      elif self._designation_type == 'rows_with_key' or self._designation_type == 'rows_with_index':
                          self._columns = str(matches[0][1]).split(',')
                      else:
                          if matches[0][1]:
                              raise LoaderException('Expected: -- type: {}'.format(self._designation_type))
  
          if not self._designation_type:
              raise LoaderException("Unable to find the designation type of the stored routine in file {0}".
                                    format(self._source_filename))