odbc dataconnection params maxvarcharsize: 0 truncating returned varchars

My first post - I would appreciate any advice

Success requires reading integer arrays stored in postgresql
config.yml
shinyapps:
dataconnection:
driver: 'PostgreSQL'
server: ''
uid: '
'
pwd: '
*********'
port: 5432
database: 'postgres'
boolsaschar: 0
maxvarcharsize: 0

Reads fails when a table with integer arrays is accessed

split_db_array <- function(v, name = ""){
x <- unlist( strsplit(gsub(fixed=T, "{", "",gsub(fixed=T, "}", "",v)), ",", fixed=T))
print(paste(length(x), name ))
if(length(x) == 0)
return(NA)
x
}

query <- DBI::sqlInterpolate(pool, "SELECT ts, oat, watts, fit, model FROM v1.poi_meters WHERE mid = ?mid ORDER BY ts;", .dots = list(mid = as.numeric(mid)))
df <- DBI::dbGetQuery(pool, statement = query)

Locally this works

ts = as.Date(split_db_array(df$ts, "ts"))
oat = split_db_array(df$oat, "oat")
kW = split_db_array(df$watts, "kW")
fit = split_db_array(df$fit, "fit")
model = split_db_array(df$model, "model") == "t"
tibble::tibble( ts, oat, kW, fit, model)

On shinyapps.io it fails
[1] "24 ts"
[1] "46 oat"
[1] "45 kW"
[1] "43 fit"
[1] "127 model"
Warning: Error in : Tibble columns must have compatible sizes.

  • Size 46: Column at position 2.
    2020-05-07T13:18:32.899656+00:00 shinyapps[2259625]: :information_source: Only values of size one are recycled.
    2020-05-07T13:18:32.905385+00:00 shinyapps[2259625]: 173:

I believe this must be due to the odbc driver truncating returned varchars - my app and db require
boolsaschar: 0
maxvarcharsize: 0

This topic was automatically closed 54 days after the last reply. New replies are no longer allowed.