From: Michael D. <mik...@us...> - 2004-08-16 05:28:32
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Hql In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv719/Hql Modified Files: FromParser.cs PathExpressionParser.cs QueryTranslator.cs WhereParser.cs Log Message: Began refactoring to SqlString. Index: WhereParser.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Hql/WhereParser.cs,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** WhereParser.cs 1 Jun 2004 13:00:11 -0000 1.16 --- WhereParser.cs 16 Aug 2004 05:28:22 -0000 1.17 *************** *** 3,10 **** using System.Collections.Specialized; using System.Text; ! using NHibernate.Type; using NHibernate.Persister; - using NHibernate.Util; using NHibernate.Sql; namespace NHibernate.Hql --- 3,11 ---- using System.Collections.Specialized; using System.Text; ! using NHibernate.Persister; using NHibernate.Sql; + using NHibernate.Type; + using NHibernate.Util; namespace NHibernate.Hql *************** *** 438,447 **** } ! private void AddJoin( JoinFragment ojf, QueryTranslator q ) { ! JoinFragment fromClause = q.CreateJoinFragment(true); ! fromClause.AddJoins( ojf.ToFromFragmentString, String.Empty ); q.AddJoin( pathExpressionParser.Name, fromClause ); ! AddToCurrentJoin( ojf.ToWhereFragmentString ); } --- 439,450 ---- } ! private void AddJoin( SqlCommand.JoinFragment ojf, QueryTranslator q ) { ! SqlCommand.JoinFragment fromClause = q.CreateJoinFragment(true); ! //TODO: HACK with StringEmpty and SqlString ! fromClause.AddJoins( ojf.ToFromFragmentString, new SqlCommand.SqlString(String.Empty) ); q.AddJoin( pathExpressionParser.Name, fromClause ); ! //TODO: HACK with ToString() ! AddToCurrentJoin( ojf.ToWhereFragmentString.ToString() ); } Index: QueryTranslator.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Hql/QueryTranslator.cs,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** QueryTranslator.cs 13 Aug 2004 18:55:33 -0000 1.36 --- QueryTranslator.cs 16 Aug 2004 05:28:22 -0000 1.37 *************** *** 6,10 **** --- 6,12 ---- using System.Text.RegularExpressions; using System.Reflection; + using System.Runtime.CompilerServices; using System.Runtime.Serialization; + using NHibernate; using NHibernate.Collection; *************** *** 18,22 **** using NHibernate.Util; using BaseLoader = NHibernate.Loader.Loader; - using System.Runtime.CompilerServices; namespace NHibernate.Hql --- 20,23 ---- *************** *** 280,284 **** // aliasing SQL identifiers ... but it does what // we want! ! return new Alias(10, NextCount().ToString() + StringHelper.Underscore) .ToAliasString(StringHelper.Unqualify(description).ToLower(), dialect); } --- 281,285 ---- // aliasing SQL identifiers ... but it does what // we want! ! return new SqlCommand.Alias(10, NextCount().ToString() + StringHelper.Underscore) .ToAliasString(StringHelper.Unqualify(description).ToLower(), dialect); } *************** *** 379,383 **** } ! internal void AddFrom(string name, System.Type type, JoinFragment join) { AddType(name, type); --- 380,384 ---- } ! internal void AddFrom(string name, System.Type type, SqlCommand.JoinFragment join) { AddType(name, type); *************** *** 385,389 **** } ! internal void AddFrom(string name, JoinFragment join) { fromTypes.Add(name); --- 386,390 ---- } ! internal void AddFrom(string name, SqlCommand.JoinFragment join) { fromTypes.Add(name); *************** *** 393,397 **** internal void AddFromClass(string name, ILoadable classPersister) { ! JoinFragment ojf = CreateJoinFragment(false); ojf.AddCrossJoin( classPersister.TableName, name ); crossJoins.Add( name ); --- 394,398 ---- internal void AddFromClass(string name, ILoadable classPersister) { ! SqlCommand.JoinFragment ojf = CreateJoinFragment(false); ojf.AddCrossJoin( classPersister.TableName, name ); crossJoins.Add( name ); *************** *** 439,445 **** } ! internal void AddJoin(string name, JoinFragment newjoin) { ! JoinFragment oldjoin = (JoinFragment) joins[name]; if (oldjoin==null) { --- 440,446 ---- } ! internal void AddJoin(string name, SqlCommand.JoinFragment newjoin) { ! SqlCommand.JoinFragment oldjoin = (SqlCommand.JoinFragment) joins[name]; if (oldjoin==null) { *************** *** 448,453 **** else { oldjoin.AddCondition( newjoin.ToWhereFragmentString ); ! if ( oldjoin.ToFromFragmentString.IndexOf( newjoin.ToFromFragmentString.Trim()) < 0 ) { throw new AssertionFailure("bug in query parser: " + queryString); --- 449,456 ---- else { + //TODO: HACKS with ToString() - fixed up oldjoin.AddCondition( newjoin.ToWhereFragmentString ); ! //TODO: HACKS with ToString() ! if ( oldjoin.ToFromFragmentString.ToString().IndexOf( newjoin.ToFromFragmentString.ToString().Trim()) < 0 ) { throw new AssertionFailure("bug in query parser: " + queryString); *************** *** 636,640 **** string name = (string) returnTypes[k]; string suffix = size==1 ? String.Empty : k.ToString() + StringHelper.Underscore; ! sql.AddSelectFragmentString( persisters[k].IdentifierSelectFragment(name, suffix) ); } } --- 639,644 ---- string name = (string) returnTypes[k]; string suffix = size==1 ? String.Empty : k.ToString() + StringHelper.Underscore; ! //TODO: HACK with ToString() ! sql.AddSelectFragmentString( persisters[k].IdentifierSelectFragment(name, suffix).ToString() ); } } *************** *** 664,668 **** string suffix = (size==1) ? String.Empty : k.ToString() + StringHelper.Underscore; string name = (string) returnTypes[k]; ! sql.AddSelectFragmentString( persisters[k].PropertySelectFragment(name, suffix) ); } } --- 668,673 ---- string suffix = (size==1) ? String.Empty : k.ToString() + StringHelper.Underscore; string name = (string) returnTypes[k]; ! //TODO: HACK with ToString() ! sql.AddSelectFragmentString( persisters[k].PropertySelectFragment(name, suffix).ToString() ); } } *************** *** 742,746 **** } ! private JoinFragment MergeJoins(JoinFragment ojf) { //classes --- 747,751 ---- } ! private SqlCommand.JoinFragment MergeJoins(SqlCommand.JoinFragment ojf) { //classes *************** *** 750,758 **** bool includeSubclasses = returnTypes.Contains(name) && !IsShallowQuery; ! JoinFragment join = (JoinFragment) joins[name]; if (join!=null) { bool isCrossJoin = crossJoins.Contains(name); ojf.AddFragment(join); ojf.AddJoins( p.FromJoinFragment(name, isCrossJoin, includeSubclasses), --- 755,764 ---- bool includeSubclasses = returnTypes.Contains(name) && !IsShallowQuery; ! SqlCommand.JoinFragment join = (SqlCommand.JoinFragment) joins[name]; if (join!=null) { bool isCrossJoin = crossJoins.Contains(name); ojf.AddFragment(join); + ojf.AddJoins( p.FromJoinFragment(name, isCrossJoin, includeSubclasses), *************** *** 764,768 **** foreach(string name in collections.Keys) { ! JoinFragment collJoin = (JoinFragment) joins[name]; if (collJoin!=null) ojf.AddFragment(collJoin); } --- 770,774 ---- foreach(string name in collections.Keys) { ! SqlCommand.JoinFragment collJoin = (SqlCommand.JoinFragment) joins[name]; if (collJoin!=null) ojf.AddFragment(collJoin); } *************** *** 849,853 **** string collectionName; ! JoinFragment join = CreateJoinFragment(false); collectionName = persister.IsOneToMany ? elementName : CreateNameForCollection(collectionRole); join.AddCrossJoin( persister.QualifiedTableName, collectionName); --- 855,859 ---- string collectionName; ! SqlCommand.JoinFragment join = CreateJoinFragment(false); collectionName = persister.IsOneToMany ? elementName : CreateNameForCollection(collectionRole); join.AddCrossJoin( persister.QualifiedTableName, collectionName); *************** *** 865,869 **** StringHelper.Prefix(eltColumnNames, collectionName + StringHelper.Dot), idColumnNames, ! JoinType.InnerJoin); } join.AddCondition( collectionName, keyColumnNames, " = ?"); --- 871,875 ---- StringHelper.Prefix(eltColumnNames, collectionName + StringHelper.Dot), idColumnNames, ! SqlCommand.JoinType.InnerJoin); } join.AddCondition( collectionName, keyColumnNames, " = ?"); *************** *** 880,889 **** } ! internal JoinFragment GetPathJoin(string path) { ! return (JoinFragment) pathJoins[path]; } ! internal void AddPathAliasAndJoin(string path, string alias, JoinFragment join) { pathAliases.Add(path, alias); --- 886,895 ---- } ! internal SqlCommand.JoinFragment GetPathJoin(string path) { ! return (SqlCommand.JoinFragment) pathJoins[path]; } ! internal void AddPathAliasAndJoin(string path, string alias, SqlCommand.JoinFragment join) { pathAliases.Add(path, alias); *************** *** 1146,1152 **** } ! internal QueryJoinFragment CreateJoinFragment(bool useThetaStyleInnerJoins) { ! return new QueryJoinFragment( factory.Dialect, useThetaStyleInnerJoins ); } --- 1152,1158 ---- } ! internal SqlCommand.QueryJoinFragment CreateJoinFragment(bool useThetaStyleInnerJoins) { ! return new SqlCommand.QueryJoinFragment( factory.Dialect, useThetaStyleInnerJoins ); } Index: PathExpressionParser.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Hql/PathExpressionParser.cs,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** PathExpressionParser.cs 30 Apr 2004 08:57:59 -0000 1.13 --- PathExpressionParser.cs 16 Aug 2004 05:28:22 -0000 1.14 *************** *** 8,11 **** --- 8,12 ---- using NHibernate.Util; using NHibernate.Sql; + using NHibernate.SqlCommand; namespace NHibernate.Hql *************** *** 53,60 **** private bool ignoreInitialJoin; private bool continuation; ! private JoinType joinType = JoinType.InnerJoin; //default mode private bool useThetaStyleJoin = true; ! public JoinType JoinType { get --- 54,61 ---- private bool ignoreInitialJoin; private bool continuation; ! private SqlCommand.JoinType joinType = SqlCommand.JoinType.InnerJoin; //default mode private bool useThetaStyleJoin = true; ! public SqlCommand.JoinType JoinType { get *************** *** 114,118 **** { JoinFragment ojf = q.GetPathJoin(path); ! join.AddCondition( ojf.ToWhereFragmentString ); //after reset! // we don't need to worry about any condition in the ON clause // here (toFromFragmentString), since anything in the ON condition --- 115,120 ---- { JoinFragment ojf = q.GetPathJoin(path); ! //TODO: HACK with ToString() ! join.AddCondition( ojf.ToWhereFragmentString); //after reset! // we don't need to worry about any condition in the ON clause // here (toFromFragmentString), since anything in the ON condition *************** *** 347,350 **** --- 349,353 ---- { IQueryable persister = q.GetPersister( ( (EntityType) memberPersister.ElementType ).PersistentClass ); + //TODO: HACK with ToString() - cleaned up ojf.AddJoins( persister.FromJoinFragment(collectionName, true, false), *************** *** 393,397 **** public string Alias; public string[] ElementColumns; ! public JoinFragment Join; public StringBuilder IndexValue = new StringBuilder(); } --- 396,400 ---- public string Alias; public string[] ElementColumns; ! public SqlCommand.JoinFragment Join; public StringBuilder IndexValue = new StringBuilder(); } *************** *** 432,436 **** } ! public JoinFragment WhereJoin { get --- 435,439 ---- } ! public SqlCommand.JoinFragment WhereJoin { get *************** *** 479,485 **** .Append(' ') .Append(collectionName)*/ ! .Append(join.ToFromFragmentString.Substring(2)) //remove initial ", " .Append(" WHERE ") ! .Append(join.ToWhereFragmentString.Substring(5)) .ToString(); } --- 482,489 ---- .Append(' ') .Append(collectionName)*/ ! //TODO: HACK with ToString() ! .Append(join.ToFromFragmentString.ToString().Substring(2)) //remove initial ", " .Append(" WHERE ") ! .Append(join.ToWhereFragmentString.ToString().Substring(5)) //TODO: HACK with ToString() .ToString(); } Index: FromParser.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Hql/FromParser.cs,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** FromParser.cs 13 Jul 2004 03:05:36 -0000 1.9 --- FromParser.cs 16 Aug 2004 05:28:22 -0000 1.10 *************** *** 1,8 **** using System; using System.Collections; using NHibernate; using NHibernate.Sql; using NHibernate.Util; - using NHibernate.Persister; namespace NHibernate.Hql { --- 1,10 ---- using System; using System.Collections; + using NHibernate; + using NHibernate.Persister; using NHibernate.Sql; + using NHibernate.SqlCommand; using NHibernate.Util; namespace NHibernate.Hql { *************** *** 24,36 **** private bool afterJoinType; private bool afterFetch; ! private JoinType joinType = JoinType.None; private static IDictionary joinTypes = new Hashtable(); static FromParser() { ! joinTypes.Add( "left", JoinType.LeftOuterJoin ); ! joinTypes.Add( "right", JoinType.RightOuterJoin ); ! joinTypes.Add( "full", JoinType.FullJoin ); ! joinTypes.Add( "inner", JoinType.InnerJoin ); } --- 26,38 ---- private bool afterJoinType; private bool afterFetch; ! private SqlCommand.JoinType joinType = SqlCommand.JoinType.None; private static IDictionary joinTypes = new Hashtable(); static FromParser() { ! joinTypes.Add( "left", SqlCommand.JoinType.LeftOuterJoin ); ! joinTypes.Add( "right", SqlCommand.JoinType.RightOuterJoin ); ! joinTypes.Add( "full", SqlCommand.JoinType.FullJoin ); ! joinTypes.Add( "inner", SqlCommand.JoinType.InnerJoin ); } |