A barra invertida é tratada como meta-caractere pelo Django e é interpretada entre aspas duplas. Então, uma camada de
E'\\s+') é removido antes que a string chegue ao servidor PostgreSQL, que verá E'\s+') . A string de escape resultará em 's+' que por sua vez fará regexp_split_to_table() divida suas strings em qualquer número de s em vez de espaço não imprimível, que a abreviação da classe de caracteres \s significa em expressões regulares. Dobre as barras invertidas na string para obter o que você pretendia:
E'\\\\s+') :"SELECT regexp_split_to_table(field_name, E'\\\\s+') FROM mytable LIMIT 20"
Como alternativa, para evitar problemas com o significado especial da barra invertida
\ , você pode usar [[:space:]] para denotar a mesma classe de caracteres:"SELECT regexp_split_to_table(field_name, '[[:space:]]+') FROM mytable LIMIT 20"
Detalhes no capítulo " Correspondência de padrões" no manual .