Skip to content

Commit 9ff9b18

Browse files
committed
new version 1.2.4
1 parent 9c4d2e2 commit 9ff9b18

File tree

6 files changed

+60
-18
lines changed

6 files changed

+60
-18
lines changed

source/jdbcDriverOOo/Drivers.xcu

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -951,6 +951,16 @@
951951
<value>DROP TABLE {0};</value>
952952
</prop>
953953
</node>
954+
<node oor:name="AddColumnCommand" oor:op="replace">
955+
<prop oor:name="Value" oor:type="xs:string">
956+
<value>ALTER TABLE {0} ADD {1};</value>
957+
</prop>
958+
</node>
959+
<node oor:name="DropColumnCommand" oor:op="replace">
960+
<prop oor:name="Value" oor:type="xs:string">
961+
<value>ALTER TABLE {0} DROP {1};</value>
962+
</prop>
963+
</node>
954964
<node oor:name="AddPrimaryKeyCommand" oor:op="replace">
955965
<prop oor:name="Value" oor:type="xs:string">
956966
<value>ALTER TABLE {0} ADD CONSTRAINT {1} PRIMARY KEY ({2});</value>
@@ -971,6 +981,16 @@
971981
<value oor:separator="|">SELECT RDB$VIEW_SOURCE FROM RDB$RELATIONS WHERE RDB$RELATION_NAME = ?;|3</value>
972982
</prop>
973983
</node>
984+
<node oor:name="AlterColumnCommand" oor:op="replace">
985+
<prop oor:name="Value" oor:type="xs:string">
986+
<value>ALTER TABLE {0} ALTER COLUMN {2} TYPE {3};</value>
987+
</prop>
988+
</node>
989+
<node oor:name="RenameColumnCommand" oor:op="replace">
990+
<prop oor:name="Value" oor:type="xs:string">
991+
<value>ALTER TABLE {0} ALTER COLUMN {1} TO {2};</value>
992+
</prop>
993+
</node>
974994
</node>
975995
</node>
976996

source/jdbcDriverOOo/source/io/github/prrvchr/jdbcdriver/DBTableHelper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,8 +297,8 @@ public static byte getAlterColumnQueries(List<String> queries,
297297
ColumnProperties column = getStandardColumnProperties(provider, name1, descriptor2, sensitive);
298298
if (name1.isEmpty()) {
299299
// Create a new column
300-
query = DBDefaultQuery.STR_QUERY_ALTER_TABLE_ADD_COLUMN;
301-
queries.add(MessageFormat.format(query, name, column.toString()));
300+
query = provider.getAddColumnQuery(name, column.toString());
301+
queries.add(query);
302302
}
303303
else {
304304
Object[] arguments = column.getQueryArguments(name);

source/jdbcDriverOOo/source/io/github/prrvchr/jdbcdriver/DBTools.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1437,6 +1437,7 @@ private static void executeUpdate(java.sql.PreparedStatement statement,
14371437
for (int position : positions) {
14381438
statement.setString(i++, (String) parameters[position]);
14391439
}
1440+
System.out.println("DataBaseTools.executeUpdate(): Query: " + query);
14401441
logger.logprb(LogLevel.FINE, cls, method, resource, _addToArgs(arguments, query));
14411442
statement.executeUpdate();
14421443
}

source/jdbcDriverOOo/source/io/github/prrvchr/jdbcdriver/DriverProvider.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,10 @@ public void setConnection(ResourceBasedEventLogger logger,
163163

164164
public String getDropTableQuery(String table);
165165

166+
public String getAddColumnQuery(String table, String column);
167+
168+
public String getDropColumnQuery(String table, String column);
169+
166170
public int getGeneratedKeysOption();
167171

168172
public List<String> getRenameTableQueries(boolean reverse, Object... args);

source/jdbcDriverOOo/source/io/github/prrvchr/jdbcdriver/DriverProviderMain.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ public abstract class DriverProviderMain
9393
private boolean m_SupportsAlterIdentity = false;
9494
private String m_CreateTableCommand = DBDefaultQuery.STR_QUERY_CREATE_TABLE;
9595
private String m_DropTableCommand = DBDefaultQuery.STR_QUERY_DROP_TABLE;
96+
private String m_AddColumnCommand = DBDefaultQuery.STR_QUERY_ALTER_TABLE_ADD_COLUMN;
97+
private String m_DropColumnCommand = DBDefaultQuery.STR_QUERY_ALTER_TABLE_DROP_COLUMN;
9698
private String m_RenameColumnCommand = DBDefaultQuery.STR_QUERY_ALTER_TABLE_RENAME_COLUMN;
9799
private String m_AddPrimaryKeyCommand = DBDefaultQuery.STR_QUERY_ALTER_TABLE_ADD_PRIMARY_KEY;
98100
private String m_AddForeignKeyCommand = DBDefaultQuery.STR_QUERY_ALTER_TABLE_ADD_FOREIGN_KEY;
@@ -213,6 +215,18 @@ public String getDropTableQuery(String table)
213215
return MessageFormat.format(m_DropTableCommand, table);
214216
}
215217

218+
@Override
219+
public String getAddColumnQuery(String table, String column)
220+
{
221+
return MessageFormat.format(m_AddColumnCommand, table, column);
222+
}
223+
224+
@Override
225+
public String getDropColumnQuery(String table, String column)
226+
{
227+
return MessageFormat.format(m_DropColumnCommand, table, column);
228+
}
229+
216230
@Override
217231
public String getAddConstraintQuery(int type) {
218232
String query = null;
@@ -544,6 +558,8 @@ public void setConnection(ResourceBasedEventLogger logger,
544558
m_SupportsAlterColumnProperty = getDriverBooleanProperty(config1, "SupportsAlterColumnProperty", m_SupportsAlterColumnProperty);
545559
m_CreateTableCommand = getDriverStringProperty(config1, "CreateTableCommand", m_CreateTableCommand);
546560
m_DropTableCommand = getDriverStringProperty(config1, "DropTableCommand", m_DropTableCommand);
561+
m_AddColumnCommand = getDriverStringProperty(config1, "AddColumnCommand", m_AddColumnCommand);
562+
m_DropColumnCommand = getDriverStringProperty(config1, "DropColumnCommand", m_DropColumnCommand);
547563
m_AlterColumnCommand = getDriverStringProperty(config1, "AlterColumnCommand", m_AlterColumnCommand);
548564

549565
m_AddPrimaryKeyCommand = getDriverStringProperty(config1, "AddPrimaryKeyCommand", m_AddPrimaryKeyCommand);

source/jdbcDriverOOo/source/io/github/prrvchr/uno/sdbcx/ColumnContainerBase.java

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
*/
2626
package io.github.prrvchr.uno.sdbcx;
2727

28-
import java.text.MessageFormat;
2928
import java.util.ArrayList;
3029
import java.util.HashMap;
3130
import java.util.List;
@@ -49,8 +48,8 @@
4948
import io.github.prrvchr.jdbcdriver.Resources;
5049
import io.github.prrvchr.jdbcdriver.StandardSQLState;
5150
import io.github.prrvchr.jdbcdriver.DBTools;
51+
import io.github.prrvchr.jdbcdriver.DriverProvider;
5252
import io.github.prrvchr.jdbcdriver.DBColumnHelper.ColumnDescription;
53-
import io.github.prrvchr.jdbcdriver.DBDefaultQuery;
5453
import io.github.prrvchr.uno.helper.UnoHelper;
5554

5655

@@ -111,11 +110,12 @@ private boolean createColumn(XPropertySet descriptor, String name)
111110
throw new SQLException("Error", this, StandardSQLState.SQL_GENERAL_ERROR.text(), 0, e);
112111
}
113112
try {
114-
String table = DBTools.composeTableName(getConnection().getProvider(), m_table, ComposeRule.InTableDefinitions, false);
113+
DriverProvider provider = getConnection().getProvider();
114+
String table = DBTools.composeTableName(provider, m_table, ComposeRule.InTableDefinitions, false);
115115
List<String> queries = new ArrayList<String>();
116-
DBTableHelper.getAlterColumnQueries(queries, getConnection().getProvider(), m_table, oldcolumn, descriptor, false, isCaseSensitive());
116+
DBTableHelper.getAlterColumnQueries(queries, provider, m_table, oldcolumn, descriptor, false, isCaseSensitive());
117117
if (!queries.isEmpty()) {
118-
return DBTools.executeDDLQueries(getConnection().getProvider(), m_table.getLogger(), queries, this.getClass().getName(),
118+
return DBTools.executeDDLQueries(provider, m_table.getLogger(), queries, this.getClass().getName(),
119119
"createColumn", Resources.STR_LOG_COLUMN_ALTER_QUERY, name, table);
120120
}
121121
}
@@ -137,11 +137,12 @@ protected ColumnSuper<?> createElement(String name)
137137
boolean isCurrency = false;
138138
@SuppressWarnings("unused")
139139
int dataType = DataType.OTHER;
140-
140+
141+
DriverProvider provider = getConnection().getProvider();
141142
ColumnDescription description = m_descriptions.get(name);
142143
if (description == null) {
143144
// could be a recently added column. Refresh:
144-
List<ColumnDescription> newcolumns = DBColumnHelper.readColumns(getConnection().getProvider(), m_table.getCatalog(),
145+
List<ColumnDescription> newcolumns = DBColumnHelper.readColumns(provider, m_table.getCatalog(),
145146
m_table.getSchema(), m_table.getName());
146147
for (ColumnDescription newcolumn : newcolumns) {
147148
if (newcolumn.columnName.equals(name)) {
@@ -157,8 +158,8 @@ protected ColumnSuper<?> createElement(String name)
157158

158159
ExtraColumnInfo info = m_extrainfos.get(name);
159160
if (info == null) {
160-
String composedName = DBTools.composeTableNameForSelect(getConnection().getProvider(), m_table, isCaseSensitive());
161-
m_extrainfos = DBColumnHelper.collectColumnInformation(getConnection().getProvider(), composedName, "*");
161+
String composedName = DBTools.composeTableNameForSelect(provider, m_table, isCaseSensitive());
162+
m_extrainfos = DBColumnHelper.collectColumnInformation(provider, composedName, "*");
162163
info = m_extrainfos.get(name);
163164
}
164165
if (info != null) {
@@ -167,7 +168,7 @@ protected ColumnSuper<?> createElement(String name)
167168
isCurrency = info.isCurrency;
168169
dataType = info.dataType;
169170
}
170-
171+
171172
XNameAccess primaryKeyColumns = DBTools.getPrimaryKeyColumns(m_table.getKeys());
172173
int nullable = description.nullable;
173174
if (nullable != ColumnValue.NO_NULLS && primaryKeyColumns != null && primaryKeyColumns.hasByName(name)) {
@@ -193,11 +194,12 @@ protected void removeDataBaseElement(int index,
193194
return;
194195
}
195196
try {
196-
String table = DBTools.composeTableName(getConnection().getProvider(), m_table, ComposeRule.InTableDefinitions, isCaseSensitive());
197-
String column = DBTools.enquoteIdentifier(getConnection().getProvider(), name, isCaseSensitive());
198-
String query = MessageFormat.format(DBDefaultQuery.STR_QUERY_ALTER_TABLE_DROP_COLUMN, table, column);
199-
table = DBTools.composeTableName(getConnection().getProvider(), m_table, ComposeRule.InTableDefinitions, false);
200-
DBTools.executeDDLQuery(getConnection().getProvider(), m_table.getLogger(), query, "ColumnContainer",
197+
DriverProvider provider = getConnection().getProvider();
198+
String table = DBTools.composeTableName(provider, m_table, ComposeRule.InTableDefinitions, isCaseSensitive());
199+
String column = DBTools.enquoteIdentifier(provider, name, isCaseSensitive());
200+
String query = provider.getDropColumnQuery(table, column);
201+
table = DBTools.composeTableName(provider, m_table, ComposeRule.InTableDefinitions, false);
202+
DBTools.executeDDLQuery(provider, m_table.getLogger(), query, "ColumnContainer",
201203
"removeDataBaseElement", Resources.STR_LOG_COLUMN_REMOVE_QUERY, name, table);
202204
}
203205
catch (java.sql.SQLException e) {
@@ -237,5 +239,4 @@ protected abstract ColumnSuper<?> getColumn(String name,
237239
boolean rowversion,
238240
boolean currency);
239241

240-
241242
}

0 commit comments

Comments
 (0)