Skip to content

Commit

Permalink
Fixing CR comments
Browse files Browse the repository at this point in the history
  • Loading branch information
JanuszJakubiec committed Oct 10, 2024
1 parent 2871110 commit d05c632
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 31 deletions.
2 changes: 1 addition & 1 deletion doc/migrations/6.2.1_x.x.x.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ Restart the node or cluster.

## Support for the new RDBMS database - CockroachDB

We've introduced support for a new RDBMS database, CockroachDB. To ensure compatibility and proper functionality, we've also added a new test preset: `cockroachdb_cets`.
We've introduced support for a new RDBMS database, CockroachDB.

To configure CockroachDB, update the connection settings in your configuration file as follows:
```toml
Expand Down
2 changes: 1 addition & 1 deletion src/rdbms/mongoose_rdbms.erl
Original file line number Diff line number Diff line change
Expand Up @@ -915,7 +915,7 @@ abort_on_driver_error({error, "Failed sending data on socket" ++ _}) -> %% mysql
abort_on_driver_error(_) ->
continue.

-spec db_engine(mongooseim:host_type_or_global()) -> odbc | mysql | pgsql | cockroachdb | undefined.
-spec db_engine(mongooseim:host_type_or_global()) -> backend() | undefined.
db_engine(_HostType) ->
try mongoose_backend:get_backend_name(global, ?MODULE)
catch error:badarg -> undefined end.
Expand Down
16 changes: 0 additions & 16 deletions src/rdbms/mongoose_rdbms_cockroachdb.erl
Original file line number Diff line number Diff line change
@@ -1,19 +1,3 @@
%%==============================================================================
%% Copyright 2016 Erlang Solutions Ltd.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
%% You may obtain a copy of the License at
%%
%% http://www.apache.org/licenses/LICENSE-2.0
%%
%% Unless required by applicable law or agreed to in writing, software
%% distributed under the License is distributed on an "AS IS" BASIS,
%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
%% See the License for the specific language governing permissions and
%% limitations under the License.
%%==============================================================================

-module(mongoose_rdbms_cockroachdb).
-author('[email protected]').
-behaviour(mongoose_rdbms_backend).
Expand Down
24 changes: 11 additions & 13 deletions src/rdbms/rdbms_queries.erl
Original file line number Diff line number Diff line change
Expand Up @@ -172,10 +172,10 @@ prepare_upsert(HostType, Name, Table, InsertFields, Updates, UniqueKeyFields) ->
IncrementalField :: none | binary()) ->
{ok, QueryName :: mongoose_rdbms:query_name()} | {error, already_exists}.
prepare_upsert(HostType, Name, Table, InsertFields, Updates, UniqueKeyFields, IncrementalField) ->
InsertFieldsTransformed = transform_fields(HostType, InsertFields),
UpdatesTransformed = transform_fields(HostType, Updates),
UniqueKeyFieldsTransformed = transform_fields(HostType, UniqueKeyFields),
IncrementalFieldTransformed = transform_fields(HostType, IncrementalField),
InsertFieldsTransformed = format_fields_for_db(HostType, InsertFields),
UpdatesTransformed = format_fields_for_db(HostType, Updates),
UniqueKeyFieldsTransformed = format_fields_for_db(HostType, UniqueKeyFields),
IncrementalFieldTransformed = format_fields_for_db(HostType, IncrementalField),
SQL = upsert_query(HostType, Table, InsertFieldsTransformed, UpdatesTransformed,
UniqueKeyFieldsTransformed, IncrementalFieldTransformed),
Query = iolist_to_binary(SQL),
Expand Down Expand Up @@ -212,9 +212,9 @@ prepared_upsert_many_fields(RecordCount, InsertFields, Updates, _UniqueKeyFields
UniqueKeyFields :: [binary()]) ->
{ok, QueryName :: mongoose_rdbms:query_name()} | {error, already_exists}.
prepare_upsert_many(HostType, RecordCount, Name, Table, InsertFields, Updates, UniqueKeyFields) ->
InsertFieldsTransformed = transform_fields(HostType, InsertFields),
UpdatesTransformed = transform_fields(HostType, Updates),
UniqueKeyFieldsTransformed = transform_fields(HostType, UniqueKeyFields),
InsertFieldsTransformed = format_fields_for_db(HostType, InsertFields),
UpdatesTransformed = format_fields_for_db(HostType, Updates),
UniqueKeyFieldsTransformed = format_fields_for_db(HostType, UniqueKeyFields),
SQL = upsert_query_many(HostType, RecordCount, Table, InsertFieldsTransformed,
UpdatesTransformed, UniqueKeyFieldsTransformed),
Query = iolist_to_binary(SQL),
Expand Down Expand Up @@ -469,16 +469,16 @@ limit_offset_args(Limit, Offset) ->
limit_offset_args(mssql, Limit, Offset) -> [Offset, Limit];
limit_offset_args(_, Limit, Offset) -> [Limit, Offset].

transform_fields(_, none) ->
format_fields_for_db(_, none) ->
none;
transform_fields(HostType, Fields) when is_list(Fields) ->
format_fields_for_db(HostType, Fields) when is_list(Fields) ->
case mongoose_rdbms:db_engine(HostType) of
cockroachdb ->
lists:map(fun(Element) -> transform_field(Element) end, Fields);

Check warning on line 477 in src/rdbms/rdbms_queries.erl

View check run for this annotation

Codecov / codecov/patch

src/rdbms/rdbms_queries.erl#L477

Added line #L477 was not covered by tests
_ ->
Fields
end;
transform_fields(HostType, Field) when is_binary(Field) ->
format_fields_for_db(HostType, Field) when is_binary(Field) ->
case mongoose_rdbms:db_engine(HostType) of
cockroachdb ->
transform_field(Field);

Check warning on line 484 in src/rdbms/rdbms_queries.erl

View check run for this annotation

Codecov / codecov/patch

src/rdbms/rdbms_queries.erl#L484

Added line #L484 was not covered by tests
Expand All @@ -489,6 +489,4 @@ transform_fields(HostType, Field) when is_binary(Field) ->
transform_field({_, Field, _} = Element) ->
erlang:setelement(2, Element, transform_field(Field));

Check warning on line 490 in src/rdbms/rdbms_queries.erl

View check run for this annotation

Codecov / codecov/patch

src/rdbms/rdbms_queries.erl#L490

Added line #L490 was not covered by tests
transform_field(Field) when is_binary(Field)->
<<"\"", Field/binary, "\"">>;
transform_field(Element) ->
Element.
<<"\"", Field/binary, "\"">>.

Check warning on line 492 in src/rdbms/rdbms_queries.erl

View check run for this annotation

Codecov / codecov/patch

src/rdbms/rdbms_queries.erl#L492

Added line #L492 was not covered by tests

0 comments on commit d05c632

Please sign in to comment.