class DuckDBClientS3 extends DuckDBClient {
static async of(s3_config = {}, s3_sources = {}, sources = {}, config) {
const db = await super.of(sources, config);
for (let [k, v] of Object.entries(s3_config)) await db.query(`SET s3_${k}='${v}'`);
for (let [k, s] of Object.entries(s3_sources)) {
const p = Array.isArray(s) ? `str_split('${s.join(",")}', ',')` : `'${s}'`;
await db.query(`CREATE TABLE ${k} AS SELECT * FROM read_parquet(${p})`);
}
return db;
}
}