Skip to content

Commit

Permalink
Rename jdbcstore resources table
Browse files Browse the repository at this point in the history
  • Loading branch information
bencaradocdavies committed Dec 16, 2015
1 parent f7da4a1 commit 1a51817
Show file tree
Hide file tree
Showing 8 changed files with 42 additions and 42 deletions.
Expand Up @@ -35,7 +35,7 @@ public class JDBCDirectoryStructure {


private static final Logger LOGGER = org.geotools.util.logging.Logging.getLogger(JDBCDirectoryStructure.class); private static final Logger LOGGER = org.geotools.util.logging.Logging.getLogger(JDBCDirectoryStructure.class);


protected final static String TABLE_RESOURCE = "resources"; protected final static String TABLE_RESOURCES = "resources";


protected final static Field<Integer> OID = new Field<Integer>("oid", "oid", TYPE_INT); protected final static Field<Integer> OID = new Field<Integer>("oid", "oid", TYPE_INT);


Expand Down Expand Up @@ -75,7 +75,7 @@ public Entry(String path) {


@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
protected <T> T getValue(Field<T> prop) { protected <T> T getValue(Field<T> prop) {
Map<String, Object> record = helper.selectQuery(TABLE_RESOURCE, new PathSelector(path), Map<String, Object> record = helper.selectQuery(TABLE_RESOURCES, new PathSelector(path),
prop); prop);
return record == null ? null : (T) record.get(prop.getFieldName()); return record == null ? null : (T) record.get(prop.getFieldName());
} }
Expand Down Expand Up @@ -108,7 +108,7 @@ public List<Entry> getChildren() {
List<Entry> list = new ArrayList<Entry>(); List<Entry> list = new ArrayList<Entry>();
Integer oid = getOid(); Integer oid = getOid();
if (oid != null) { if (oid != null) {
for (Map<String, Object> result : helper.multiSelectQuery(TABLE_RESOURCE, for (Map<String, Object> result : helper.multiSelectQuery(TABLE_RESOURCES,
new FieldSelector<Integer>(PARENT, oid), NAME)) { new FieldSelector<Integer>(PARENT, oid), NAME)) {
list.add(new Entry(path, (String) result.get(NAME.getFieldName()))); list.add(new Entry(path, (String) result.get(NAME.getFieldName())));
} }
Expand All @@ -128,7 +128,7 @@ public boolean delete() {
return false; return false;
} }


if (helper.deleteQuery(TABLE_RESOURCE, new FieldSelector<Integer>(OID, oid)) <= 0) { if (helper.deleteQuery(TABLE_RESOURCES, new FieldSelector<Integer>(OID, oid)) <= 0) {
LOGGER.warning("Delete operation failed or incomplete for entry " + toString()); LOGGER.warning("Delete operation failed or incomplete for entry " + toString());
return false; return false;
} }
Expand Down Expand Up @@ -168,7 +168,7 @@ public boolean renameTo(Entry dest) {
destParentOid = destParent.getOid(); destParentOid = destParent.getOid();
} }


if (helper.updateQuery(TABLE_RESOURCE, new FieldSelector<Integer>(OID, oid), if (helper.updateQuery(TABLE_RESOURCES, new FieldSelector<Integer>(OID, oid),
new Assignment<String>(NAME, dest.getName()), new Assignment<Integer>(PARENT, new Assignment<String>(NAME, dest.getName()), new Assignment<Integer>(PARENT,
destParentOid)) <= 0) { destParentOid)) <= 0) {
LOGGER.warning("Unable to perform rename operation for entry " + toString()); LOGGER.warning("Unable to perform rename operation for entry " + toString());
Expand All @@ -180,15 +180,15 @@ public boolean renameTo(Entry dest) {
} }


public InputStream getContent() { public InputStream getContent() {
InputStream is = helper.blobQuery(TABLE_RESOURCE, new PathSelector(path), CONTENT); InputStream is = helper.blobQuery(TABLE_RESOURCES, new PathSelector(path), CONTENT);
if (is == null) { if (is == null) {
throw new IllegalStateException("Could not find content for entry " + toString()); throw new IllegalStateException("Could not find content for entry " + toString());
} }
return is; return is;
} }


public void setContent(InputStream is) { public void setContent(InputStream is) {
if (helper.updateQuery(TABLE_RESOURCE, new PathSelector(path), if (helper.updateQuery(TABLE_RESOURCES, new PathSelector(path),
new Assignment<InputStream>(CONTENT, is), new Assignment<Timestamp>( new Assignment<InputStream>(CONTENT, is), new Assignment<Timestamp>(
LAST_MODIFIED, new Timestamp(new java.util.Date().getTime()))) <= 0) { LAST_MODIFIED, new Timestamp(new java.util.Date().getTime()))) <= 0) {
LOGGER.warning("Unable to write content to entry " + toString()); LOGGER.warning("Unable to write content to entry " + toString());
Expand All @@ -198,11 +198,11 @@ LAST_MODIFIED, new Timestamp(new java.util.Date().getTime()))) <= 0) {
public void createDirectory() { public void createDirectory() {
int parentOid = 0; int parentOid = 0;
for (String name : path) { for (String name : path) {
Map<String, Object> record = helper.selectQuery(TABLE_RESOURCE, new ChildSelector( Map<String, Object> record = helper.selectQuery(TABLE_RESOURCES, new ChildSelector(
parentOid, name), OID, DIRECTORY); parentOid, name), OID, DIRECTORY);


if (record == null) { if (record == null) {
parentOid = helper.insertQuery(TABLE_RESOURCE, new Assignment<String>(NAME, parentOid = helper.insertQuery(TABLE_RESOURCES, new Assignment<String>(NAME,
name), new Assignment<Integer>(PARENT, parentOid)); name), new Assignment<Integer>(PARENT, parentOid));
} else { } else {
if (!(Boolean) record.get(DIRECTORY.getFieldName())) { if (!(Boolean) record.get(DIRECTORY.getFieldName())) {
Expand Down Expand Up @@ -237,7 +237,7 @@ public boolean createResource() {
} }


ByteArrayInputStream is = new ByteArrayInputStream(new byte[0]); ByteArrayInputStream is = new ByteArrayInputStream(new byte[0]);
Integer oid = helper.insertQuery(TABLE_RESOURCE, Integer oid = helper.insertQuery(TABLE_RESOURCES,
new Assignment<String>(NAME, getName()), new Assignment<String>(NAME, getName()),
new Assignment<Integer>(PARENT, parent.getOid()), new Assignment<InputStream>( new Assignment<Integer>(PARENT, parent.getOid()), new Assignment<InputStream>(
CONTENT, is)); CONTENT, is));
Expand Down Expand Up @@ -323,7 +323,7 @@ public JDBCResourceStoreProperties getConfig() {
private boolean deleteChildren(Integer oid) { private boolean deleteChildren(Integer oid) {
// get ids of children // get ids of children
List<Integer> children = new ArrayList<Integer>(); List<Integer> children = new ArrayList<Integer>();
for (Map<String, Object> result : helper.multiSelectQuery(TABLE_RESOURCE, for (Map<String, Object> result : helper.multiSelectQuery(TABLE_RESOURCES,
new FieldSelector<Integer>(PARENT, oid), OID)) { new FieldSelector<Integer>(PARENT, oid), OID)) {
children.add((Integer) result.get(OID.getFieldName())); children.add((Integer) result.get(OID.getFieldName()));
} }
Expand All @@ -337,7 +337,7 @@ private boolean deleteChildren(Integer oid) {
} }


// delete all children in one go // delete all children in one go
if (helper.deleteQuery(TABLE_RESOURCE, new FieldSelector<Integer>(PARENT, oid)) < children if (helper.deleteQuery(TABLE_RESOURCES, new FieldSelector<Integer>(PARENT, oid)) < children
.size()) { .size()) {
return false; return false;
} }
Expand All @@ -364,12 +364,12 @@ private void oidQuery(QueryBuilder builder, int i) {
assert (i < path.size()); assert (i < path.size());


if (i > 0) { if (i > 0) {
builder.append("SELECT oid FROM resource WHERE parent=("); builder.append("SELECT oid FROM " + TABLE_RESOURCES + " WHERE parent=(");
oidQuery(builder, i - 1); oidQuery(builder, i - 1);
builder.append(") and name=? "); builder.append(") and name=? ");
builder.addParameter(new Parameter<String>(TYPE_STRING, path.get(i))); builder.addParameter(new Parameter<String>(TYPE_STRING, path.get(i)));
} else { } else {
builder.append("SELECT oid FROM resource WHERE parent=? and name=? "); builder.append("SELECT oid FROM " + TABLE_RESOURCES + " WHERE parent=? and name=? ");
builder.addParameter(new Parameter<Integer>(TYPE_INT, contextOid)); builder.addParameter(new Parameter<Integer>(TYPE_INT, contextOid));
builder.addParameter(new Parameter<String>(TYPE_STRING, path.get(i))); builder.addParameter(new Parameter<String>(TYPE_STRING, path.get(i)));
} }
Expand Down
@@ -1 +1 @@
DROP TABLE resource CASCADE; DROP TABLE resources CASCADE;
@@ -1 +1 @@
DROP TABLE resource CASCADE; DROP TABLE resources CASCADE;
@@ -1,22 +1,22 @@
CREATE TABLE resource CREATE TABLE resources
( (
oid integer AUTO_INCREMENT NOT NULL, oid integer AUTO_INCREMENT NOT NULL,
name character varying NOT NULL, name character varying NOT NULL,
parent integer, parent integer,
last_modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, last_modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
content binary, content binary,
CONSTRAINT resource_pkey PRIMARY KEY (oid), CONSTRAINT resources_pkey PRIMARY KEY (oid),
CONSTRAINT resource_parent_fkey FOREIGN KEY (parent) CONSTRAINT resources_parent_fkey FOREIGN KEY (parent)
REFERENCES resource (oid) REFERENCES resources (oid)
ON UPDATE RESTRICT ON DELETE CASCADE, ON UPDATE RESTRICT ON DELETE CASCADE,
CONSTRAINT resource_parent_name_key UNIQUE (parent, name), CONSTRAINT resources_parent_name_key UNIQUE (parent, name),
CONSTRAINT resource_only_one_root_check CHECK (parent IS NOT NULL OR oid = 0) CONSTRAINT resources_only_one_root_check CHECK (parent IS NOT NULL OR oid = 0)
); );


CREATE INDEX resource_parent_name_idx CREATE INDEX resources_parent_name_idx
ON resource (parent NULLS FIRST, name NULLS FIRST); ON resources (parent NULLS FIRST, name NULLS FIRST);


INSERT INTO resource (oid, name, parent, content) VALUES (0, '', NULL, NULL); INSERT INTO resources (oid, name, parent, content) VALUES (0, '', NULL, NULL);


ALTER TABLE resource ALTER COLUMN oid RESTART WITH 1; ALTER TABLE resources ALTER COLUMN oid RESTART WITH 1;


@@ -1,20 +1,20 @@
CREATE TABLE resource CREATE TABLE resources
( (
oid serial NOT NULL, oid serial NOT NULL,
name character varying NOT NULL, name character varying NOT NULL,
parent integer, parent integer,
last_modified timestamp without time zone NOT NULL DEFAULT timezone('UTC'::text, now()), last_modified timestamp without time zone NOT NULL DEFAULT timezone('UTC'::text, now()),
content bytea, content bytea,
CONSTRAINT resource_pkey PRIMARY KEY (oid), CONSTRAINT resources_pkey PRIMARY KEY (oid),
CONSTRAINT resource_parent_fkey FOREIGN KEY (parent) CONSTRAINT resources_parent_fkey FOREIGN KEY (parent)
REFERENCES resource (oid) REFERENCES resources (oid)
ON UPDATE RESTRICT ON DELETE CASCADE, ON UPDATE RESTRICT ON DELETE CASCADE,
CONSTRAINT resource_parent_name_key UNIQUE (parent, name), CONSTRAINT resources_parent_name_key UNIQUE (parent, name),
CONSTRAINT resource_only_one_root_check CHECK (parent IS NOT NULL OR oid = 0) CONSTRAINT resources_only_one_root_check CHECK (parent IS NOT NULL OR oid = 0)
); );


CREATE INDEX resource_parent_name_idx CREATE INDEX resources_parent_name_idx
ON resource (parent NULLS FIRST, name NULLS FIRST); ON resources (parent NULLS FIRST, name NULLS FIRST);


INSERT INTO resource (oid, name, parent, content) VALUES (0, '', NULL, NULL); INSERT INTO resources (oid, name, parent, content) VALUES (0, '', NULL, NULL);


Expand Up @@ -66,9 +66,9 @@ public void testInitializeEmptyDB() throws Exception {
@SuppressWarnings("unused") @SuppressWarnings("unused")
ResourceStore store = new JDBCResourceStore(support.getDataSource(), config); ResourceStore store = new JDBCResourceStore(support.getDataSource(), config);


// Check that the database has a resource table with a root record // Check that the database has a resources table with a root record


ResultSet rs = support.getConnection().createStatement().executeQuery("SELECT * from resource where oid = 0"); ResultSet rs = support.getConnection().createStatement().executeQuery("SELECT * from resources where oid = 0");


assertThat(rs.next(), describedAs("found root record",is(true))); assertThat(rs.next(), describedAs("found root record",is(true)));
assertThat(rs.getString("name"), equalTo("")); assertThat(rs.getString("name"), equalTo(""));
Expand Down Expand Up @@ -102,7 +102,7 @@ public void testAcceptInitializedDB() throws Exception {
{ {
// Check that the database has a resource table with a root record // Check that the database has a resource table with a root record


ResultSet rs = support.getConnection().createStatement().executeQuery("SELECT * from resource where oid = 0"); ResultSet rs = support.getConnection().createStatement().executeQuery("SELECT * from resources where oid = 0");


assertThat(rs.next(), describedAs("found root record",is(true))); assertThat(rs.next(), describedAs("found root record",is(true)));
assertThat(rs.getString("name"), equalTo("")); assertThat(rs.getString("name"), equalTo(""));
Expand All @@ -114,7 +114,7 @@ public void testAcceptInitializedDB() throws Exception {
{ {
// Check that the database has one of the child nodes // Check that the database has one of the child nodes


ResultSet rs = support.getConnection().createStatement().executeQuery("SELECT * from resource where parent = 0 and name='FileA'"); ResultSet rs = support.getConnection().createStatement().executeQuery("SELECT * from resources where parent = 0 and name='FileA'");


assertThat(rs.next(), describedAs("found child FileA",is(true))); assertThat(rs.next(), describedAs("found child FileA",is(true)));
assertThat(rs.getString("name"), equalTo("FileA")); assertThat(rs.getString("name"), equalTo("FileA"));
Expand All @@ -136,7 +136,7 @@ public void testInitializeDatabaseWithIrrelevantTable() throws Exception {
{ {
// Check that the database has a resource table with a root record // Check that the database has a resource table with a root record


ResultSet rs = support.getConnection().createStatement().executeQuery("SELECT * from resource where oid = 0"); ResultSet rs = support.getConnection().createStatement().executeQuery("SELECT * from resources where oid = 0");


assertThat(rs.next(), describedAs("found root record",is(true))); assertThat(rs.next(), describedAs("found root record",is(true)));
assertThat(rs.getString("name"), equalTo("")); assertThat(rs.getString("name"), equalTo(""));
Expand Down
Expand Up @@ -65,7 +65,7 @@ public void initialize() throws Exception {


private PreparedStatement getInsert() throws SQLException { private PreparedStatement getInsert() throws SQLException {
if(insert==null) { if(insert==null) {
insert = conn.prepareStatement("INSERT INTO resource (name, parent, content) VALUES (?, ?, ?)"); insert = conn.prepareStatement("INSERT INTO resources (name, parent, content) VALUES (?, ?, ?)");
} }
return insert; return insert;
} }
Expand Down
Expand Up @@ -40,7 +40,7 @@ public PostgresTestSupport() throws Exception {
ds = createTestDataSource(); ds = createTestDataSource();
conn = ds.getConnection(); conn = ds.getConnection();
try { try {
insert = conn.prepareStatement("INSERT INTO resource (name, parent, content) VALUES (?, ?, ?) RETURNING oid;"); insert = conn.prepareStatement("INSERT INTO resources (name, parent, content) VALUES (?, ?, ?) RETURNING oid;");
} finally { } finally {
if(insert==null) conn.close(); if(insert==null) conn.close();
} }
Expand Down

0 comments on commit 1a51817

Please sign in to comment.