[#3407] DDL statements accepting String names should generate quoted names, not plain SQL
This commit is contained in:
parent
baea001d64
commit
6ab3eeae56
@ -44,12 +44,10 @@ import static java.util.Arrays.asList;
|
||||
import static org.jooq.SQLDialect.DERBY;
|
||||
import static org.jooq.SQLDialect.FIREBIRD;
|
||||
// ...
|
||||
import static org.jooq.impl.DSL.field;
|
||||
import static org.jooq.impl.DSL.fieldByName;
|
||||
import static org.jooq.impl.DSL.name;
|
||||
import static org.jooq.impl.DSL.one;
|
||||
import static org.jooq.impl.DSL.select;
|
||||
import static org.jooq.impl.DSL.table;
|
||||
import static org.jooq.impl.DSL.tableByName;
|
||||
import static org.jooq.impl.DSL.two;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
@ -123,7 +121,7 @@ extends BaseTest<A, AP, B, S, B2S, BS, L, X, DATE, BOOL, D, T, U, UU, I, IPK, T7
|
||||
public void testCreateIndex() throws Exception {
|
||||
try {
|
||||
// TODO: Re-use jOOQ API for this
|
||||
create().execute("create table t (a int, b int)");
|
||||
create().execute("create table {0} ({1} int, {2} int)", name("t"), name("a"), name("b"));
|
||||
create().createIndex("idx1").on("t", "a").execute();
|
||||
create().createIndex("idx2").on("t", "a", "b").execute();
|
||||
|
||||
@ -143,7 +141,7 @@ extends BaseTest<A, AP, B, S, B2S, BS, L, X, DATE, BOOL, D, T, U, UU, I, IPK, T7
|
||||
public void testDropIndex() throws Exception {
|
||||
try {
|
||||
// TODO: Re-use jOOQ API for this
|
||||
create().execute("create table t (a int, b int)");
|
||||
create().execute("create table {0} ({1} int, {2} int)", name("t"), name("a"), name("b"));
|
||||
create().createIndex("idx1").on("t", "a").execute();
|
||||
create().createIndex("idx2").on("t", "a", "b").execute();
|
||||
create().dropIndex("idx2").execute();
|
||||
@ -221,27 +219,27 @@ extends BaseTest<A, AP, B, S, B2S, BS, L, X, DATE, BOOL, D, T, U, UU, I, IPK, T7
|
||||
public void testAlterTableAdd() throws Exception {
|
||||
try {
|
||||
// TODO: Re-use jOOQ API for this
|
||||
create().execute("create table t (a " + varchar() + ")");
|
||||
create().insertInto(table("t"), field("a")).values(1).execute();
|
||||
assertEquals(asList("1"), asList(create().fetchOne(table("t")).intoArray()));
|
||||
create().execute("create table {0} ({1} " + varchar() + ")", name("t"), name("a"));
|
||||
create().insertInto(tableByName("t"), fieldByName("a")).values(1).execute();
|
||||
assertEquals(asList("1"), asList(create().fetchOne(tableByName("t")).intoArray()));
|
||||
|
||||
create().alterTable("t").add("b", SQLDataType.INTEGER).execute();
|
||||
assertEquals(asList("1", null), asList(create().fetchOne(table("t")).intoArray()));
|
||||
assertEquals(asList("1", null), asList(create().fetchOne(tableByName("t")).intoArray()));
|
||||
|
||||
create().alterTable("t").add("c", SQLDataType.NUMERIC).execute();
|
||||
assertEquals(asList("1", null, null), asList(create().fetchOne(table("t")).intoArray()));
|
||||
assertEquals(asList("1", null, null), asList(create().fetchOne(tableByName("t")).intoArray()));
|
||||
|
||||
create().alterTable("t").add("d", SQLDataType.NUMERIC.precision(5)).execute();
|
||||
assertEquals(asList("1", null, null, null), asList(create().fetchOne(table("t")).intoArray()));
|
||||
assertEquals(asList("1", null, null, null), asList(create().fetchOne(tableByName("t")).intoArray()));
|
||||
|
||||
create().alterTable("t").add("e", SQLDataType.NUMERIC.precision(5, 2)).execute();
|
||||
assertEquals(asList("1", null, null, null, null), asList(create().fetchOne(table("t")).intoArray()));
|
||||
assertEquals(asList("1", null, null, null, null), asList(create().fetchOne(tableByName("t")).intoArray()));
|
||||
|
||||
create().alterTable("t").add("f", SQLDataType.VARCHAR).execute();
|
||||
assertEquals(asList("1", null, null, null, null, null), asList(create().fetchOne(table("t")).intoArray()));
|
||||
assertEquals(asList("1", null, null, null, null, null), asList(create().fetchOne(tableByName("t")).intoArray()));
|
||||
|
||||
create().alterTable("t").add("g", SQLDataType.VARCHAR.length(5)).execute();
|
||||
assertEquals(asList("1", null, null, null, null, null, null), asList(create().fetchOne(table("t")).intoArray()));
|
||||
assertEquals(asList("1", null, null, null, null, null, null), asList(create().fetchOne(tableByName("t")).intoArray()));
|
||||
}
|
||||
finally {
|
||||
create().dropTable("t").execute();
|
||||
@ -253,10 +251,10 @@ extends BaseTest<A, AP, B, S, B2S, BS, L, X, DATE, BOOL, D, T, U, UU, I, IPK, T7
|
||||
|
||||
try {
|
||||
// TODO: Re-use jOOQ API for this
|
||||
create().execute("create table t (a int)");
|
||||
create().execute("create table {0} ({1} int)", name("t"), name("a"));
|
||||
create().alterTable("t").alter("a").set(SQLDataType.VARCHAR).execute();
|
||||
create().insertInto(table("t"), field("a")).values("1").execute();
|
||||
assertEquals("1", create().fetchOne("select * from t").getValue(0));
|
||||
create().insertInto(tableByName("t"), fieldByName("a")).values("1").execute();
|
||||
assertEquals("1", create().fetchOne("select * from {0}", name("t")).getValue(0));
|
||||
}
|
||||
finally {
|
||||
create().dropTable("t").execute();
|
||||
@ -266,11 +264,11 @@ extends BaseTest<A, AP, B, S, B2S, BS, L, X, DATE, BOOL, D, T, U, UU, I, IPK, T7
|
||||
public void testAlterTableAlterDefault() throws Exception {
|
||||
try {
|
||||
// TODO: Re-use jOOQ API for this
|
||||
create().execute("create table t (a int, b " + varchar() + ")");
|
||||
create().execute("create table {0} ({1} int, {2} " + varchar() + ")", name("t"), name("a"), name("b"));
|
||||
|
||||
create().alterTable("t").alter("b").defaultValue("empty").execute();
|
||||
create().insertInto(table("t"), field("a")).values(1).execute();
|
||||
assertEquals("empty", create().fetchOne("select b from t").getValue(0));
|
||||
create().insertInto(tableByName("t"), fieldByName("a")).values(1).execute();
|
||||
assertEquals("empty", create().fetchValue("select {0} from {1}", name("b"), name("t")));
|
||||
}
|
||||
finally {
|
||||
create().dropTable("t").execute();
|
||||
@ -280,15 +278,15 @@ extends BaseTest<A, AP, B, S, B2S, BS, L, X, DATE, BOOL, D, T, U, UU, I, IPK, T7
|
||||
public void testAlterTableDrop() throws Exception {
|
||||
try {
|
||||
// TODO: Re-use jOOQ API for this
|
||||
create().execute("create table t (a " + varchar() + ", b " + varchar() + ", c " + varchar() + ")");
|
||||
create().insertInto(table("t"), field("a"), field("b"), field("c")).values("1", "2", "3").execute();
|
||||
assertEquals(asList("1", "2", "3"), asList(create().fetchOne(table("t")).intoArray()));
|
||||
create().execute("create table {0} ({1} " + varchar() + ", {2} " + varchar() + ", {3} " + varchar() + ")", name("t"), name("a"), name("b"), name("c"));
|
||||
create().insertInto(tableByName("t"), fieldByName("a"), fieldByName("b"), fieldByName("c")).values("1", "2", "3").execute();
|
||||
assertEquals(asList("1", "2", "3"), asList(create().fetchOne(tableByName("t")).intoArray()));
|
||||
|
||||
create().alterTable("t").drop("c").execute();
|
||||
assertEquals(asList("1", "2"), asList(create().fetchOne(table("t")).intoArray()));
|
||||
assertEquals(asList("1", "2"), asList(create().fetchOne(tableByName("t")).intoArray()));
|
||||
|
||||
create().alterTable("t").drop("b").execute();
|
||||
assertEquals(asList("1"), asList(create().fetchOne(table("t")).intoArray()));
|
||||
assertEquals(asList("1"), asList(create().fetchOne(tableByName("t")).intoArray()));
|
||||
}
|
||||
finally {
|
||||
create().dropTable("t").execute();
|
||||
@ -298,13 +296,13 @@ extends BaseTest<A, AP, B, S, B2S, BS, L, X, DATE, BOOL, D, T, U, UU, I, IPK, T7
|
||||
public void testDropTable() throws Exception {
|
||||
|
||||
// TODO: Re-use jOOQ API for this
|
||||
create().execute("create table t (a " + varchar() + ", b " + varchar() + ", c " + varchar() + ")");
|
||||
create().insertInto(table("t"), field("a"), field("b"), field("c")).values("1", "2", "3").execute();
|
||||
assertEquals(asList("1", "2", "3"), asList(create().fetchOne(table("t")).intoArray()));
|
||||
create().execute("create table {0} ({1} " + varchar() + ", {2} " + varchar() + ", {3} " + varchar() + ")", name("t"), name("a"), name("b"), name("c"));
|
||||
create().insertInto(tableByName("t"), fieldByName("a"), fieldByName("b"), fieldByName("c")).values("1", "2", "3").execute();
|
||||
assertEquals(asList("1", "2", "3"), asList(create().fetchOne(tableByName("t")).intoArray()));
|
||||
|
||||
create().dropTable("t").execute();
|
||||
try {
|
||||
create().fetch(table("t"));
|
||||
create().fetch(tableByName("t"));
|
||||
fail();
|
||||
}
|
||||
catch (DataAccessException expected) {}
|
||||
|
||||
@ -48,7 +48,7 @@ import static org.jooq.Clause.ALTER_TABLE_DROP;
|
||||
import static org.jooq.Clause.ALTER_TABLE_TABLE;
|
||||
import static org.jooq.SQLDialect.FIREBIRD;
|
||||
// ...
|
||||
import static org.jooq.impl.DSL.field;
|
||||
import static org.jooq.impl.DSL.fieldByName;
|
||||
import static org.jooq.impl.DSL.inline;
|
||||
import static org.jooq.impl.DSL.queryPart;
|
||||
|
||||
@ -103,7 +103,7 @@ class AlterTableImpl extends AbstractQuery implements
|
||||
|
||||
@Override
|
||||
public final AlterTableImpl add(String field, DataType<?> type) {
|
||||
return add((Field) field(field, type), type);
|
||||
return add((Field) fieldByName(type, field), type);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -115,7 +115,7 @@ class AlterTableImpl extends AbstractQuery implements
|
||||
|
||||
@Override
|
||||
public final AlterTableImpl alter(String field) {
|
||||
return alter(field(field));
|
||||
return alter(fieldByName(field));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -143,7 +143,7 @@ class AlterTableImpl extends AbstractQuery implements
|
||||
|
||||
@Override
|
||||
public final AlterTableImpl drop(String field) {
|
||||
return drop(field(field));
|
||||
return drop(fieldByName(field));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -41,6 +41,9 @@
|
||||
package org.jooq.impl;
|
||||
|
||||
import static org.jooq.Clause.CREATE_INDEX;
|
||||
import static org.jooq.impl.DSL.fieldByName;
|
||||
import static org.jooq.impl.DSL.name;
|
||||
import static org.jooq.impl.DSL.tableByName;
|
||||
|
||||
import org.jooq.Clause;
|
||||
import org.jooq.Configuration;
|
||||
@ -93,9 +96,9 @@ class CreateIndexImpl extends AbstractQuery implements
|
||||
Field<?>[] f = new Field[fieldNames.length];
|
||||
|
||||
for (int i = 0; i < f.length; i++)
|
||||
f[i] = DSL.field(fieldNames[i]);
|
||||
f[i] = fieldByName(fieldNames[i]);
|
||||
|
||||
return on(DSL.table(tableName), f);
|
||||
return on(tableByName(tableName), f);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
@ -106,7 +109,7 @@ class CreateIndexImpl extends AbstractQuery implements
|
||||
public final void accept(Context<?> ctx) {
|
||||
ctx.keyword("create index")
|
||||
.sql(" ")
|
||||
.visit(DSL.name(index))
|
||||
.visit(name(index))
|
||||
.sql(" ")
|
||||
.keyword("on")
|
||||
.sql(" ")
|
||||
|
||||
@ -46,7 +46,8 @@ import static org.jooq.impl.DSL.field;
|
||||
import static org.jooq.impl.DSL.fieldByName;
|
||||
import static org.jooq.impl.DSL.queryPart;
|
||||
import static org.jooq.impl.DSL.sequence;
|
||||
import static org.jooq.impl.DSL.table;
|
||||
import static org.jooq.impl.DSL.sequenceByName;
|
||||
import static org.jooq.impl.DSL.tableByName;
|
||||
import static org.jooq.impl.DSL.template;
|
||||
import static org.jooq.impl.DSL.trueCondition;
|
||||
import static org.jooq.impl.Utils.list;
|
||||
@ -1593,7 +1594,7 @@ public class DefaultDSLContext implements DSLContext, Serializable {
|
||||
|
||||
@Override
|
||||
public CreateSequenceFinalStep createSequence(String sequence) {
|
||||
return createSequence(sequence(sequence));
|
||||
return createSequence(sequenceByName(sequence));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -1603,7 +1604,7 @@ public class DefaultDSLContext implements DSLContext, Serializable {
|
||||
|
||||
@Override
|
||||
public AlterSequenceRestartStep<BigInteger> alterSequence(String sequence) {
|
||||
return alterSequence(sequence(sequence));
|
||||
return alterSequence(sequenceByName(sequence));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -1613,7 +1614,7 @@ public class DefaultDSLContext implements DSLContext, Serializable {
|
||||
|
||||
@Override
|
||||
public AlterTableStep alterTable(String table) {
|
||||
return alterTable(table(table));
|
||||
return alterTable(tableByName(table));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -1623,7 +1624,7 @@ public class DefaultDSLContext implements DSLContext, Serializable {
|
||||
|
||||
@Override
|
||||
public DropViewFinalStep dropView(String table) {
|
||||
return dropView(table(table));
|
||||
return dropView(tableByName(table));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -1633,7 +1634,7 @@ public class DefaultDSLContext implements DSLContext, Serializable {
|
||||
|
||||
@Override
|
||||
public DropTableStep dropTable(String table) {
|
||||
return dropTable(table(table));
|
||||
return dropTable(tableByName(table));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -1648,7 +1649,7 @@ public class DefaultDSLContext implements DSLContext, Serializable {
|
||||
|
||||
@Override
|
||||
public DropSequenceFinalStep dropSequence(String sequence) {
|
||||
return dropSequence(sequence(sequence));
|
||||
return dropSequence(sequenceByName(sequence));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -41,6 +41,7 @@
|
||||
package org.jooq.impl;
|
||||
|
||||
import static org.jooq.Clause.DROP_INDEX;
|
||||
import static org.jooq.impl.DSL.name;
|
||||
|
||||
import org.jooq.Clause;
|
||||
import org.jooq.Configuration;
|
||||
@ -77,7 +78,7 @@ class DropIndexImpl extends AbstractQuery implements
|
||||
public final void accept(Context<?> ctx) {
|
||||
ctx.keyword("drop index")
|
||||
.sql(" ")
|
||||
.visit(DSL.name(index));
|
||||
.visit(name(index));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
Reference in New Issue
Block a user