MCPcopy Index your code
hub / github.com/jOOQ/jOOQ / accept

Method accept

jOOQ/src/main/java/org/jooq/impl/JSONBKeys.java:137–195  ·  view source on GitHub ↗
(Context<?> ctx)

Source from the content-addressed store, hash-verified

135 }
136
137 @Override
138 public final void accept(Context<?> ctx) {
139 switch (ctx.family()) {
140
141
142
143
144
145
146
147
148 case POSTGRES:
149 case YUGABYTEDB: {
150 if (NO_SUPPORT_PATH_QUERY.contains(ctx.dialect()))
151 ctx.visit(DSL.field(select(DSL.coalesce(jsonArrayAgg(DSL.field(unquotedName("j"))), jsonArray())).from("json_object_keys({0}) as j(j)", field)));
152 else
153 ctx.visit(function(N_JSONB_PATH_QUERY_ARRAY, getDataType(), field, inline("$.keyvalue().key")));
154 break;
155 }
156
157
158
159
160
161
162
163
164
165
166
167
168
169 case SQLITE:
170 ctx.visit(DSL.field(select(jsonbArrayAgg(DSL.field(name("key")))).from("json_each({0})", field)));
171 break;
172
173
174
175
176
177
178
179 case DUCKDB:
180 ctx.visit(function(N_TO_JSON, getDataType(), function(N_JSON_KEYS, VARCHAR.array(), field)));
181 break;
182
183 case CLICKHOUSE:
184 ctx.visit(function(N_toJSONString, getDataType(), function(N_JSONExtractKeys, OTHER, field)));
185 break;
186
187 case TRINO:
188 ctx.visit(DSL.cast(function(N_MAP_KEYS, OTHER, DSL.field("cast({0} as map(varchar, json))", OTHER, field)), JSON));
189 break;
190
191 default:
192 ctx.visit(function(N_JSON_KEYS, JSONB, field));
193 break;
194 }

Callers

nothing calls this directly

Calls 15

fieldMethod · 0.95
coalesceMethod · 0.95
castMethod · 0.95
jsonArrayMethod · 0.80
inlineMethod · 0.80
jsonbArrayAggMethod · 0.80
familyMethod · 0.65
containsMethod · 0.65
dialectMethod · 0.65
visitMethod · 0.65
fromMethod · 0.65
selectMethod · 0.65

Tested by

no test coverage detected