Проблема заключается в ошибке в postGIStools .Вы можете увидеть код, который они используют для генерации этой ошибки здесь
query_text <- paste(query_text, ") AS", tbl_tmp, "(",
paste(quote_id(colnames(df)), collapse = ", "), ")",
"WHERE", paste(paste0(tbl_q, ".", id_q), "=",
paste0(tbl_tmp, ".", id_q),
collapse = " AND "))
Проще говоря, это не сработает.Они должны судиться с местозаполнителями.Предполагается, что тип ввода может быть результатом make_str_quote
(по доверенности df_q
и quote_str
) .Это ошибочное предположение, как вы видите здесь,
CREATE TABLE foo ( a uuid );
INSERT INTO foo VALUES ( quote_literal(gen_random_uuid()) ) ;
ERROR: column "a" is of type uuid but expression is of type text
LINE 1: INSERT INTO foo VALUES ( quote_literal(gen_random_uuid()) ) ...
^
HINT: You will need to rewrite or cast the expression.
Я предлагаю вам следовать документации,
Примечание. Этот пакет устарел.Для новых проектов мы рекомендуем использовать пакет sf
для взаимодействия с базами геоданных.
Вы можете обойти , выполнив это
CREATE CAST (varchar AS uuid)
WITH INOUT
AS IMPLICIT;