On Sun, 2007-11-11 at 17:11 +0000, Tom Dunstan wrote:
> The way to fix both that and the differing available functions would
> probably be to have a subclass of the dialect for each server version.
> MySQL seems to have about 5 :)
I think a static dialect for each server version is the way to go.
On Sun, 2007-11-11 at 17:11 +0000, Tom Dunstan wrote:
> > - You map "text" to CLOB. Not exactly sure what CLOB refers to but text
> > column are not generally used for large objects. I mean, you can store
> > up to a GB in them, but most such columns are not going to be large.
>
> Actually, it's clob being mapped to text. I don't see a huge problem
> with that, really, it'll often be mapped to a String at the java end
> anyway.
Agreed.
---
Here's my thoughts on compatibility:
The getForUpdateString(String aliases) is incorrect because Postgres
doesn't lock columns. The default, which ignores the columns specified,
is correct for Postgres.
Most PostgreSQL Dialects should add these:
------------------------------------------
public boolean supportsPooledSequences() { return true;}
public String[] getCreateSequenceStrings(String sequenceName, int
initialValue, int incrementSize) throws MappingException { return "create sequence " + sequenceName + " INCREMENT BY
"+ toString(incrementSize) + " START WITH " + toString(initialValue);}
public boolean supportsLimitOffset() { return true;}
public boolean supportsUnique() { return true;}
public boolean supportsVariableLimit() { return true;}
PostgreSQL82Dialect and beyond should add these
-----------------------------------------------
public boolean supportsIfExistsBeforeTableName() { return true;}
/* FOR UPDATE NOWAIT */
public String getForUpdateNowaitString() {return getForUpdateString() + " NOWAIT";
}
public boolean supportsRowValueConstructorSyntax() {return true;
}
PostgreSQL83Dialect adds
-----------------------------------------------
Nothing new AFAICS?
-- Simon Riggs 2ndQuadrant http://www.2ndQuadrant.com