org.infinispan.persistence.jdbc.table.management.SQLiteTableManager Maven / Gradle / Ivy
package org.infinispan.persistence.jdbc.table.management;
import org.infinispan.persistence.jdbc.configuration.TableManipulationConfiguration;
import org.infinispan.persistence.jdbc.connectionfactory.ConnectionFactory;
import org.infinispan.persistence.jdbc.logging.Log;
import org.infinispan.util.logging.LogFactory;
/**
* @author Ryan Emerson
*/
class SQLiteTableManager extends AbstractTableManager {
private static final Log LOG = LogFactory.getLog(SQLiteTableManager.class, Log.class);
SQLiteTableManager(ConnectionFactory connectionFactory, TableManipulationConfiguration config, DbMetaData metaData) {
super(connectionFactory, config, metaData, LOG);
}
@Override
public boolean isUpsertSupported() {
// OR/ON CONFLICT introduced in 3.8.11
return super.isUpsertSupported() && (metaData.getMajorVersion() >= 4 ||
(metaData.getMajorVersion() >= 3 && metaData.getMinorVersion() >= 9));
}
@Override
public String getUpsertRowSql() {
if (upsertRowSql == null) {
upsertRowSql = String.format("INSERT OR REPLACE INTO %s (%s, %s, %s) VALUES (?, ?, ?)",
getTableName(), config.dataColumnName(), config.timestampColumnName(),
config.idColumnName());
}
return upsertRowSql;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy