2008/1/20, rssh <[EMAIL PROTECTED]>: > > > > isVirtual is just an information XWiki use to know if it's in virtual > > mode or not. If you allow setDatabase in non-virtual mode you will be > > "physically" in virtual mode. That means you can access any wiki in > > the same database just using context.setDatabase from Velocity. It's > > a big difference at least for security when you have more than one > > XE in the same database. Another thing is that setDatabase is called > > understand. [A] > > > for each query and execute "SET SCHEMA" or anything else depends of > > database type and it will double queries in non-virtual mode to > > always switch from wiki "wikiname" to "wikiname". > > > > If we does not call setScheme, that hibernate do this (for scheme-based > databases) during each initialization of XWiki, which we usually have on > each web request. So, I does not guess big difference in performance. [B]
You have at least initHibernate() that is called only at first request.. > > > > There is others ways to do what you want like calling setDatabase > > with a parameter "force" at database init for example only if > > "wiki.db" is set. > > > > Ok, I will look. > > Is the next strategy will be accessible (?) : > > 1. add to xwiki boolean member variable, which means, that 'database does not > yet initialized'. > 2. enable setDatabase in non-virtyal mode only if we does not call yet > 'setDatabase' for this xwiki instance. > > This will fix security issue 'A' and partially - reduce extra overhead in 'B'. > > So, is this plan looks normal ? > Yes, this sounds good to me. > > > > I don't say virtual/non-virtual separation can't be removed but it's > > another subject and imply more than just "allows to configurate name > > of database schema". > > > > > > > > > > > > > > > > > > > > > patch is attached (tested with hsql in non-virtual mode in addition > to oracle > > > > > in virtual/unvirtual). I will attach one to jira thought few seconds. > > > > > > > > > > P.S. also note, that exitsts hibernate property 'default_schema' > which (when > > > > > we change name) must not conflict with xwiki.db > > > > > > > > > > > > > > > > > _______________________________________________ > > > > > > > devs mailing list > > > > > > > [email protected] > > > > > > > http://lists.xwiki.org/mailman/listinfo/devs > > > > > > > > > > > > > > > > > > > -- > > > > > > Thomas Mortagne > > > > > > _______________________________________________ > > > > > > devs mailing list > > > > > > [email protected] > > > > > > http://lists.xwiki.org/mailman/listinfo/devs > > > > > > > > > > > > > > > > > > > > -- > > > > > Ruslan Shevchenko > > > > > GradSoft. http://www.gradsoft.ua > > > > > > > > > > > > > > > _______________________________________________ > > > > > devs mailing list > > > > > [email protected] > > > > > http://lists.xwiki.org/mailman/listinfo/devs > > > > > > > > > > > > > > > > > > > > > > > -- > > > > Thomas Mortagne > > > > _______________________________________________ > > > > devs mailing list > > > > [email protected] > > > > http://lists.xwiki.org/mailman/listinfo/devs > > > > > > > > > > > > -- > > > Ruslan Shevchenko > > > GradSoft. http://www.gradsoft.ua > > > > > > _______________________________________________ > > > devs mailing list > > > [email protected] > > > http://lists.xwiki.org/mailman/listinfo/devs > > > > > > > -- > > Thomas Mortagne > > _______________________________________________ > > devs mailing list > > [email protected] > > http://lists.xwiki.org/mailman/listinfo/devs > > > > -- > Ruslan Shevchenko > GradSoft. http://www.gradsoft.ua > > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > When you will have a nice implementation that works on all databases, this feature will need a vote I think as it touch a very important part of XWiki engine. -- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

