private DefaultResultSetProvider(DataSource dataSource, ILayer layer) { this.dataSource = dataSource; this.layer = layer; try(Connection conn = dataSource.getConnection()) { pkName = MetaData.getPkName(conn, layer.getTableReference(), true); } catch (SQLException ex) { LOGGER.error(ex.getLocalizedMessage(), ex); } }
this.pk_name = MetaData.getPkName(connection, location.toString(), true);
this.pk_name = MetaData.getPkName(connection, location.toString(), true);
public static void createTableFromRowPkSelection(DataSource dataSource, String tableName, Set<Long> selectedRows, String newName, ProgressMonitor pm) throws SQLException { // Populate the new source try(Connection connection = dataSource.getConnection(); Statement st = connection.createStatement()) { DatabaseMetaData meta = connection.getMetaData(); // Find an unique name to register if (newName == null) { newName = MetaData.getNewUniqueName(tableName,meta,"selection"); } // Create row id table String tempTableName = CreateTable.createIndexTempTable(connection, pm, selectedRows,"ROWID", INSERT_BATCH_SIZE); PropertyChangeListener listener = EventHandler.create(PropertyChangeListener.class, st, "cancel"); pm.addPropertyChangeListener(ProgressMonitor.PROP_CANCEL, listener); // Copy content using pk String primaryKeyName = MetaData.getPkName(connection, tableName, true); StringBuilder pkEquality = new StringBuilder("a.%s = "); if (!primaryKeyName.equals(MetaData.POSTGRE_ROW_IDENTIFIER)) { pkEquality.append("b.ROWID"); } else { pkEquality.append(MetaData.castLongToTid("b.ROWID")); } st.execute(String.format("CREATE TABLE %s AS SELECT a.* FROM %s a,%s b " + "WHERE "+pkEquality, TableLocation.parse(newName), TableLocation.parse(tableName),tempTableName, primaryKeyName)); pm.removePropertyChangeListener(listener); } } }
public static void createTableFromRowPkSelection(DataSource dataSource, String tableName, Set<Long> selectedRows, String newName, ProgressMonitor pm) throws SQLException { // Populate the new source try(Connection connection = dataSource.getConnection(); Statement st = connection.createStatement()) { DatabaseMetaData meta = connection.getMetaData(); // Find an unique name to register if (newName == null) { newName = MetaData.getNewUniqueName(tableName,meta,"selection"); } // Create row id table String tempTableName = CreateTable.createIndexTempTable(connection, pm, selectedRows,"ROWID", INSERT_BATCH_SIZE); PropertyChangeListener listener = EventHandler.create(PropertyChangeListener.class, st, "cancel"); pm.addPropertyChangeListener(ProgressMonitor.PROP_CANCEL, listener); // Copy content using pk String primaryKeyName = MetaData.getPkName(connection, tableName, true); StringBuilder pkEquality = new StringBuilder("a.%s = "); if (!primaryKeyName.equals(MetaData.POSTGRE_ROW_IDENTIFIER)) { pkEquality.append("b.ROWID"); } else { pkEquality.append(MetaData.castLongToTid("b.ROWID")); } st.execute(String.format("CREATE TABLE %s AS SELECT a.* FROM %s a,%s b " + "WHERE "+pkEquality, TableLocation.parse(newName), TableLocation.parse(tableName),tempTableName, primaryKeyName)); pm.removePropertyChangeListener(listener); } } }
String pkName = MetaData.getPkName(connection, tableName, true); StringBuilder pkEquality = new StringBuilder("t1." + pkName + " = "); if (!pkName.equals(MetaData.POSTGRE_ROW_IDENTIFIER)) {
try(Connection connection = dataManager.getDataSource().getConnection()) { connection.setAutoCommit(false); if(MetaData.getPkName(connection, tableReference, false).isEmpty()) { return i18n.tr("For data safety issues, edition is disabled when no primary key are available");
String pkName = MetaData.getPkName(connection, tableLocation.toString(), true); boolean isH2 = JDBCUtilities.isH2DataBase(connection.getMetaData()); if(!pkName.isEmpty()) {
@Override public void open(ProgressMonitor progressMonitor) throws UnsupportedOperationException, EditableElementException { if(rowSet == null) { try(Connection connection = dataManager.getDataSource().getConnection()) { boolean isH2 = JDBCUtilities.isH2DataBase(connection.getMetaData()); String pkName = MetaData.getPkName(connection, tableReference, true); rowSet = dataManager.createReversibleRowSet(); rowSet.initialize(TableLocation.parse(tableReference, isH2).toString(isH2), pkName, progressMonitor); } catch (SQLException | IllegalArgumentException ex) { throw new EditableElementException(ex); } setOpen(true); } }
String pkName = MetaData.getPkName(connection, tableLocation.toString(), true); boolean isH2 = JDBCUtilities.isH2DataBase(connection.getMetaData()); if(!pkName.isEmpty()) {
String pkName = MetaData.getPkName(connection, tableName, true); StringBuilder pkEquality = new StringBuilder("t1." + pkName + " = "); if (!pkName.equals(MetaData.POSTGRE_ROW_IDENTIFIER)) {
@Override public void open(ProgressMonitor progressMonitor) throws UnsupportedOperationException, EditableElementException { if(rowSet == null) { try(Connection connection = dataManager.getDataSource().getConnection()) { boolean isH2 = JDBCUtilities.isH2DataBase(connection.getMetaData()); String pkName = MetaData.getPkName(connection, tableReference, true); rowSet = dataManager.createReversibleRowSet(); rowSet.setExcludeGeomFields(excludeGeom); rowSet.initialize(TableLocation.parse(tableReference, isH2).toString(isH2), pkName, progressMonitor); } catch (SQLException | IllegalArgumentException ex) { throw new EditableElementException(ex); } setOpen(true); } }
isH2 = JDBCUtilities.isH2DataBase(connection.getMetaData()); tableRef = TableLocation.parse(layer.getTableReference(), isH2).toString(isH2); integerPK = MetaData.getPkName(connection, tableRef, false);