You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Thomas Mueller (JIRA)" <ji...@apache.org> on 2008/04/17 14:15:21 UTC
[jira] Commented: (JCR-1366) DbDataStore: tablePrefix not
accomodated during init test for existing DATASTORE table
[ https://issues.apache.org/jira/browse/JCR-1366?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12589997#action_12589997 ]
Thomas Mueller commented on JCR-1366:
-------------------------------------
It seems this problem should be fixed (see also https://issues.apache.org/jira/browse/JCR-1542).
There are two options:
A) A prefix of "JACKRABBIT_" will result in a table called "JACKRABBIT_DATASTORE"
this is in line with schemaObjectPrefix of the bundle db persistence manager
and database journal. The disadvantage is that "ds." and "ds.dbo." wouldn't work
any more, but maybe that's not a problem.
B) Deprecate this setting, and introduce a new setting schemaObjectPrefix
that works exactly like in bundle db persistence manager and database journal (as in A).
What do you think? My vote is B) because of compatibility.
> DbDataStore: tablePrefix not accomodated during init test for existing DATASTORE table
> --------------------------------------------------------------------------------------
>
> Key: JCR-1366
> URL: https://issues.apache.org/jira/browse/JCR-1366
> Project: Jackrabbit
> Issue Type: New Feature
> Components: jackrabbit-core
> Affects Versions: 1.4
> Environment: jdk 1.6, win xp, SQL SERVER 2007, jTDS jdbc driver
> Reporter: Tyson Norris
> Priority: Minor
>
> we are providing a test db deployment with prepopulated data, including jackrabbit DataStore. I tried specifying the tablePrefix when creating the initial repository, and tables are created properly.
> However, when a clean installation is run with a fresh database that has an existing DataStore (stored at JACKRABBIT_DS_DATASTORE table), the startup fails, because during init, the meta data only checks for tables name matching the tableSQL property:
> ResultSet rs = meta.getTables(null, null, tableSQL, null);
> but the tableSQL property is never modified based on the tablePrefix property (other uses of tableSQL modify queries based on the prefix).
> I think the init method should modify the tested table name based on the tablePrefix.
> Note: I assume different JDBC drivers may handle this differently (we are using SQL Server 2007 and jTDS driver), since the DatabaseMetaData is API is unclear on the parameter to getTables being a "tableNamePattern" - should wildcards work? Or should a specific table be specified?
> My DataStore config is below:
> <DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
> <param name="className" value="org.apache.jackrabbit.core.data.db.DbDataStore"/>
> <param name="url" value="jdbc:jtds:SQLServer://localhost:1433/nga_admin;prepareSQL=2;responseBuffering=adaptive"/>
> <param name="user" value="sa"/>
> <param name="password" value=""/>
> <param name="databaseType" value="sqlserver"/>
> <param name="driver" value="net.sourceforge.jtds.jdbc.Driver"/>
> <!-- a bug in jackrabbit makes tablePrefix not work -->
> <param name="tablePrefix" value="JACKRABBIT_DS_">
> <param name="minRecordLength" value="1"/>
> <param name="maxConnections" value="2"/>
> <param name="copyWhenReading" value="true"/>
> </DataStore>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.