Returns an SQL expression describing the field (e.g. for CREATE TABLE).
        :param with_default_expression: If True, adds default value to sql.
            It doesn't affect fields with alias and materialized values.

def get_sql(self, with_default_expression=True):
        '''
        Returns an SQL expression describing the field (e.g. for CREATE TABLE).
        :param with_default_expression: If True, adds default value to sql.
            It doesn't affect fields with alias and materialized values.
        '''
        if with_default_expression:
            if self.alias:
                return '%s ALIAS %s' % (self.db_type, self.alias)
            elif self.materialized:
                return '%s MATERIALIZED %s' % (self.db_type, self.materialized)
            else:
                default = self.to_db_string(self.default)
                return '%s DEFAULT %s' % (self.db_type, default)
        else:
            return self.db_type