Skip to content

Commit 8f86889

Browse files
sxdJonathan Gonzalez V
and
Jonathan Gonzalez V
authored
out_pgsql: add support for CockroachDB (#2512)
The SQL query will change when new option `cockroachdb` it's set to true Signed-off-by: Jonathan Gonzalez V <jonathan.gonzalez@2ndquadrant.com> Co-authored-by: Jonathan Gonzalez V <jonathan.gonzalez@2ndquadrant.com>
1 parent f952970 commit 8f86889

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

plugins/out_pgsql/pgsql.c

+10-4
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,15 @@ static int cb_pgsql_init(struct flb_output_instance *ins,
159159
ctx->max_pool_size = 1;
160160
}
161161

162+
/* CockroachDB Support */
163+
tmp = flb_output_get_property("cockroachdb", ins);
164+
if (tmp && flb_utils_bool(tmp)) {
165+
ctx->cockroachdb = FLB_TRUE;
166+
}
167+
else {
168+
ctx->cockroachdb = FLB_FALSE;
169+
}
170+
162171
ret = pgsql_start_connections(ctx);
163172
if (ret) {
164173
return -1;
@@ -315,10 +324,7 @@ static void cb_pgsql_flush(const void *data, size_t bytes,
315324

316325

317326
snprintf(query, str_len,
318-
"INSERT INTO %s "
319-
"SELECT %s, "
320-
"to_timestamp(CAST(value->>'%s' as FLOAT)), * "
321-
"FROM json_array_elements(%s);",
327+
ctx->cockroachdb ? FLB_PGSQL_INSERT_COCKROACH : FLB_PGSQL_INSERT,
322328
ctx->db_table, tag_escaped, ctx->timestamp_key, json);
323329
flb_plg_trace(ctx->ins, "query: %s", query);
324330

plugins/out_pgsql/pgsql.h

+11
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,14 @@
3434
#define FLB_PGSQL_POOL_SIZE 4
3535
#define FLB_PGSQL_MIN_POOL_SIZE 1
3636
#define FLB_PGSQL_SYNC FLB_FALSE
37+
#define FLB_PGSQL_COCKROACH FLB_FALSE
38+
39+
#define FLB_PGSQL_INSERT "INSERT INTO %s SELECT %s, " \
40+
"to_timestamp(CAST(value->>'%s' as FLOAT))," \
41+
" * FROM json_array_elements(%s);"
42+
#define FLB_PGSQL_INSERT_COCKROACH "INSERT INTO %s SELECT %s," \
43+
"CAST(value->>'%s' AS INTERVAL) + DATE'1970-01-01'," \
44+
" * FROM json_array_elements(%s);"
3745

3846
struct flb_pgsql_conn {
3947
struct mk_list _head;
@@ -70,6 +78,9 @@ struct flb_pgsql_config {
7078

7179
/* async mode or sync mode */
7280
int async;
81+
82+
/* cockroachdb */
83+
int cockroachdb;
7384
};
7485

7586
void pgsql_conf_destroy(struct flb_pgsql_config *ctx);

0 commit comments

Comments
 (0)