code: def create_sql(self, insert=False, version=False, version_fieldname=None,
                     fields=None, ec=None, compare=False):
          
          version_fieldname = version_fieldname or 'version'
          #fix when d is empty, orm will not insert record bug 2013/04/07
          if not self._key or insert:
              d = self._get_data(fields, compare=compare)
              if d:
                  return rawsql(self.table.insert().values(**d),
                                ec or self.get_engine_name()) + ';'
  
          else:
              d = self._get_data(fields, compare=compare)
              _key = d.pop(self._primary_field)
              if d:
                  _cond = self.table.c[self._primary_field] == self._key
                  if version:
                      version_field = self.table.c.get(version_fieldname)
                      if version_field is None:
                          raise KindError("version_fieldname %s is not existed in Model %s" % (version_fieldname, self.__class__.__name__))
                      _version_value = getattr(self, version_fieldname, 0)
                      # setattr(self, version_fieldname, _version_value+1)
                      d[version_fieldname] = _version_value+1
                      _cond = (version_field == _version_value) & _cond
  
                  return rawsql(self.table.update(_cond).values(**d),
                                ec or self.get_engine_name()) + ';'
          return ''
docs: Create sql statement, do not process manytomany