Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

optimize tap changer steps db writings and db reading #95

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,15 @@ public final class QueryCatalog {
static final String REGULATING_TAP_CHANGER_TYPE = "regulatingTapChangerType";
public static final String EQUIPMENT_ID_COLUMN = "equipmentId";
static final String REGULATING_EQUIPMENT_ID = "regulatingEquipmentId";
static final String INDEX_COLUMN = "index";
static final String TAPCHANGER_TYPE_COLUMN = "tapChangerType";
static final String ALPHA_COLUMN = "alpha";
public static final String INDEX_COLUMN = "index";
public static final String TAPCHANGER_TYPE_COLUMN = "tapChangerType";
public static final String TAPCHANGER_STEPS_COLUMN = "tapchangersteps";
public static final String ALPHA_COLUMN = "alpha";
static final String TEMPORARY_LIMITS_TABLE = "temporarylimits";
static final String TEMPORARY_LIMITS_COLUMN = "temporarylimits";
static final String PERMANENT_LIMITS_TABLE = "permanentlimits";
static final String PERMANENT_LIMITS_COLUMN = "permanentlimits";
static final String TAP_CHANGER_STEP_TABLE = "tapChangerStep";
public static final String TAP_CHANGER_STEP_TABLE = "tapChangerStep";
static final String REGULATING_POINT_TABLE = "regulatingPoint";
static final String REGULATION_MODE = "regulationMode";
public static final String SIDE_COLUMN = "side";
Expand Down Expand Up @@ -606,31 +607,16 @@ public static String buildCloneTapChangerStepQuery() {
EQUIPMENT_TYPE_COLUMN + ", " +
NETWORK_UUID_COLUMN + "," +
VARIANT_NUM_COLUMN + "," +
INDEX_COLUMN + ", " +
SIDE_COLUMN + ", " +
TAPCHANGER_TYPE_COLUMN + ", " +
"rho" + ", " +
"r" + ", " +
"x" + ", " +
"g" + ", " +
"b" + ", " +
ALPHA_COLUMN + ") " +
TAPCHANGER_STEPS_COLUMN + ") " +
"select " +
EQUIPMENT_ID_COLUMN + ", " +
EQUIPMENT_TYPE_COLUMN + ", " +
"?" + "," +
"?" + "," +
INDEX_COLUMN + ", " +
SIDE_COLUMN + ", " +
"?, ?, " +
TAPCHANGER_TYPE_COLUMN + ", " +
"rho" + ", " +
"r" + ", " +
"x" + ", " +
"g" + ", " +
"b" + ", " +
ALPHA_COLUMN +
" from " + TAP_CHANGER_STEP_TABLE + " " +
"where " +
TAPCHANGER_STEPS_COLUMN +
" from " + TAP_CHANGER_STEP_TABLE +
" where " +
NETWORK_UUID_COLUMN + " = ?" + " and " +
VARIANT_NUM_COLUMN + " = ? ";
}
Expand All @@ -639,22 +625,14 @@ public static String buildTapChangerStepQuery(String columnNameForWhereClause) {
return "select " +
EQUIPMENT_ID_COLUMN + ", " +
EQUIPMENT_TYPE_COLUMN + ", " +
NETWORK_UUID_COLUMN + "," +
VARIANT_NUM_COLUMN + "," +
INDEX_COLUMN + ", " +
SIDE_COLUMN + ", " +
TAPCHANGER_TYPE_COLUMN + ", " +
"rho" + ", " +
"r" + ", " +
"x" + ", " +
"g" + ", " +
"b" + ", " +
ALPHA_COLUMN +
NETWORK_UUID_COLUMN + ", " +
VARIANT_NUM_COLUMN + ", " +
TAPCHANGER_STEPS_COLUMN +
" from " + TAP_CHANGER_STEP_TABLE + " " +
"where " +
NETWORK_UUID_COLUMN + " = ?" + " and " +
VARIANT_NUM_COLUMN + " = ? and " +
columnNameForWhereClause + " = ? order by " + INDEX_COLUMN;
columnNameForWhereClause + " = ?";
}

public static String buildTapChangerStepWithInClauseQuery(String columnNameForInClause, int numberOfValues) {
Expand All @@ -664,17 +642,9 @@ public static String buildTapChangerStepWithInClauseQuery(String columnNameForIn
return "select " +
EQUIPMENT_ID_COLUMN + ", " +
EQUIPMENT_TYPE_COLUMN + ", " +
NETWORK_UUID_COLUMN + "," +
VARIANT_NUM_COLUMN + "," +
INDEX_COLUMN + ", " +
SIDE_COLUMN + ", " +
TAPCHANGER_TYPE_COLUMN + ", " +
"rho" + ", " +
"r" + ", " +
"x" + ", " +
"g" + ", " +
"b" + ", " +
ALPHA_COLUMN +
NETWORK_UUID_COLUMN + ", " +
VARIANT_NUM_COLUMN + ", " +
TAPCHANGER_STEPS_COLUMN +
" from " + TAP_CHANGER_STEP_TABLE + " " +
"where " +
NETWORK_UUID_COLUMN + " = ?" + " and " +
Expand All @@ -690,16 +660,9 @@ public static String buildInsertTapChangerStepQuery() {
EQUIPMENT_TYPE_COLUMN + ", " +
NETWORK_UUID_COLUMN + "," +
VARIANT_NUM_COLUMN + "," +
INDEX_COLUMN + ", " +
SIDE_COLUMN + ", " +
TAPCHANGER_TYPE_COLUMN + ", " +
"rho" + ", " +
"r" + ", " +
"x" + ", " +
"g" + ", " +
"b" + ", " +
ALPHA_COLUMN + ")" +
" values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
TAPCHANGER_STEPS_COLUMN + ") " +
" values (?, ?, ?, ?, ?, ?)";
}

public static String buildDeleteTapChangerStepQuery() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
/**
* Copyright (c) 2025, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package com.powsybl.network.store.server.json;

import com.powsybl.network.store.model.TapChangerStepAttributes;
import com.powsybl.network.store.model.TapChangerType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.ToString;

/**
* @author Etienne Lesot <etienne.lesot at rte-france.com>
*/
@ToString
@Builder
@AllArgsConstructor
@Getter
public class TapChangerStepSqlData {

private double rho;
private double r;
private double x;
private double g;
private double b;
private Double alpha;
private Integer index;
private Integer side;
private TapChangerType type;

public TapChangerStepSqlData() {
// empty constructor for Jackson
}

public static TapChangerStepSqlData of(TapChangerStepAttributes tapChangerStepAttributes) {
return TapChangerStepSqlData.builder()
.rho(tapChangerStepAttributes.getRho())
.r(tapChangerStepAttributes.getR())
.x(tapChangerStepAttributes.getX())
.g(tapChangerStepAttributes.getG())
.b(tapChangerStepAttributes.getB())
.alpha(tapChangerStepAttributes.getAlpha())
.index(tapChangerStepAttributes.getIndex())
.side(tapChangerStepAttributes.getSide())
.type(tapChangerStepAttributes.getType())
.build();
}

public TapChangerStepAttributes toTapChangerStepAttributes() {
return TapChangerStepAttributes.builder()
.rho(rho)
.r(r)
.x(x)
.g(g)
.b(b)
.alpha(alpha)
.index(index)
.side(side)
.type(type)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import com.powsybl.network.store.model.*;
import com.powsybl.network.store.server.NetworkStoreRepository;
import com.powsybl.network.store.server.migration.v211limits.V211LimitsMigration;
import com.powsybl.network.store.server.migration.v214tapchangersteps.V214TapChangerStepsMigration;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
Expand Down Expand Up @@ -39,4 +40,13 @@ public ResponseEntity<Void> migrateV211Limits(@Parameter(description = "Network
V211LimitsMigration.migrateV211Limits(repository, networkId, variantNum);
return ResponseEntity.ok().build();
}

@PutMapping(value = "/v214tapChangeSteps/{networkId}/{variantNum}")
@Operation(summary = "Migrate tap changer steps of a network")
@ApiResponses(@ApiResponse(responseCode = "200", description = "Successfully migrated tap changer steps from V2.14.0 to new model"))
public ResponseEntity<Void> migrateV214TapChangerSteps(@Parameter(description = "Network ID", required = true) @PathVariable("networkId") UUID networkId,
@Parameter(description = "Variant num", required = true) @PathVariable("variantNum") int variantNum) {
V214TapChangerStepsMigration.migrateV214TapChangerSteps(repository, networkId, variantNum);
return ResponseEntity.ok().build();
}
}
Loading