From 5ae67023767b00e4a717d893f50761983b69f77e Mon Sep 17 00:00:00 2001 From: delchev Date: Thu, 9 Apr 2026 13:21:40 +0300 Subject: [PATCH] sequence optimizer alignment --- .../data/csvim/processor/CsvimProcessor.java | 62 ++++++++++--------- .../PersistenceCreateSequenceProcessor.java | 3 +- 2 files changed, 36 insertions(+), 29 deletions(-) diff --git a/components/data/data-csvim/src/main/java/org/eclipse/dirigible/components/data/csvim/processor/CsvimProcessor.java b/components/data/data-csvim/src/main/java/org/eclipse/dirigible/components/data/csvim/processor/CsvimProcessor.java index d8786693f3..ad9d1c0a22 100644 --- a/components/data/data-csvim/src/main/java/org/eclipse/dirigible/components/data/csvim/processor/CsvimProcessor.java +++ b/components/data/data-csvim/src/main/java/org/eclipse/dirigible/components/data/csvim/processor/CsvimProcessor.java @@ -235,42 +235,48 @@ public void process(CsvFile csvFile, InputStream content, String dataSourceName) if (Boolean.TRUE.equals(csvFile.getUpsert()) && recordsToUpdate.size() > 0) { updateCsvRecords(connection, targetSchema, tableMetadata, recordsToUpdate, csvParser.getHeaderNames(), pkName, csvFile); } - if (countAll > 0 && csvFile.getSequence() != null) { - int sequenceStart = countAll + 1; + updateSequence(csvFile, connection, countAll); + } + } + + public void updateSequence(CsvFile csvFile, Connection connection, int countAll) throws SQLException { + if (countAll > 0 && csvFile.getSequence() != null) { + int sequenceStart = countAll + 1; - PreparedStatement preparedStatement = null; + PreparedStatement preparedStatement = null; + try { + String createSequenceSql = SqlFactory.getNative(connection) + .create() + .sequence(csvFile.getSequence()) + .start(sequenceStart) + .increment(50) + .build(); + preparedStatement = connection.prepareStatement(createSequenceSql); + preparedStatement.executeUpdate(); + } catch (SQLException e) { + if (preparedStatement != null) { + preparedStatement.close(); + } try { - String createSequenceSql = SqlFactory.getNative(connection) - .create() - .sequence(csvFile.getSequence()) - .start(sequenceStart) - .build(); - preparedStatement = connection.prepareStatement(createSequenceSql); + String alterSequenceSql = SqlFactory.getNative(connection) + .alter() + .sequence(csvFile.getSequence()) + .restartWith(sequenceStart) + .increment(50) + .build(); + preparedStatement = connection.prepareStatement(alterSequenceSql); preparedStatement.executeUpdate(); - } catch (SQLException e) { - if (preparedStatement != null) { - preparedStatement.close(); - } - try { - String alterSequenceSql = SqlFactory.getNative(connection) - .alter() - .sequence(csvFile.getSequence()) - .restartWith(sequenceStart) - .build(); - preparedStatement = connection.prepareStatement(alterSequenceSql); - preparedStatement.executeUpdate(); - } catch (SQLException e1) { - logger.error("Failed to restart database sequence [" + csvFile.getSequence() + "]", e1); - } finally { - if (preparedStatement != null) { - preparedStatement.close(); - } - } + } catch (SQLException e1) { + logger.error("Failed to restart database sequence [" + csvFile.getSequence() + "]", e1); } finally { if (preparedStatement != null) { preparedStatement.close(); } } + } finally { + if (preparedStatement != null) { + preparedStatement.close(); + } } } } diff --git a/modules/database/database-persistence/src/main/java/org/eclipse/dirigible/database/persistence/processors/sequence/PersistenceCreateSequenceProcessor.java b/modules/database/database-persistence/src/main/java/org/eclipse/dirigible/database/persistence/processors/sequence/PersistenceCreateSequenceProcessor.java index c819115437..003c1bc9c9 100644 --- a/modules/database/database-persistence/src/main/java/org/eclipse/dirigible/database/persistence/processors/sequence/PersistenceCreateSequenceProcessor.java +++ b/modules/database/database-persistence/src/main/java/org/eclipse/dirigible/database/persistence/processors/sequence/PersistenceCreateSequenceProcessor.java @@ -52,7 +52,8 @@ protected String generateScript(Connection connection, PersistenceTableModel tab CreateSequenceBuilder createSequenceBuilder = SqlFactory.getNative(SqlFactory.deriveDialect(connection)) .create() .sequence(tableModel.getTableName() + ISqlKeywords.UNDERSCROE - + ISqlKeywords.KEYWORD_SEQUENCE); + + ISqlKeywords.KEYWORD_SEQUENCE) + .increment(50); String sql = createSequenceBuilder.toString(); if (logger.isTraceEnabled()) {