From: Kevin W. <kev...@us...> - 2004-12-31 22:25:36
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/SqlCommand In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9247 Modified Files: ParameterLength.cs ParameterPrecisionScale.cs QueryJoinFragment.cs QuerySelect.cs Log Message: fixing xml comments and letting ReSharper do reformatting Index: QueryJoinFragment.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/SqlCommand/QueryJoinFragment.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** QueryJoinFragment.cs 18 Aug 2004 20:43:58 -0000 1.2 --- QueryJoinFragment.cs 31 Dec 2004 22:25:19 -0000 1.3 *************** *** 1,5 **** using System; - - using NHibernate.Dialect; using NHibernate.Engine; using NHibernate.Type; --- 1,3 ---- *************** *** 11,15 **** /// Summary description for QueryJoinFragment. /// </summary> ! public class QueryJoinFragment : JoinFragment { private SqlStringBuilder afterFrom = new SqlStringBuilder(); --- 9,13 ---- /// Summary description for QueryJoinFragment. /// </summary> ! public class QueryJoinFragment : JoinFragment { private SqlStringBuilder afterFrom = new SqlStringBuilder(); *************** *** 17,27 **** private Dialect.Dialect dialect; private bool useThetaStyleInnerJoins; ! ! [Obsolete("Use the ctor with Dialect and bool as the parameters. This will be removed.")] ! public QueryJoinFragment(Dialect.Dialect dialect) : this (dialect, false) { } ! public QueryJoinFragment(Dialect.Dialect dialect, bool useThetaStyleInnerJoins) { this.dialect = dialect; --- 15,34 ---- private Dialect.Dialect dialect; private bool useThetaStyleInnerJoins; ! ! /// <summary> ! /// ! /// </summary> ! /// <param name="dialect"></param> ! [Obsolete( "Use the ctor with Dialect and bool as the parameters. This will be removed." )] ! public QueryJoinFragment( Dialect.Dialect dialect ) : this( dialect, false ) { } ! /// <summary> ! /// ! /// </summary> ! /// <param name="dialect"></param> ! /// <param name="useThetaStyleInnerJoins"></param> ! public QueryJoinFragment( Dialect.Dialect dialect, bool useThetaStyleInnerJoins ) { this.dialect = dialect; *************** *** 29,71 **** } ! public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, JoinType joinType) { ! AddJoin(tableName, alias, alias, fkColumns, pkColumns, joinType); } ! public void AddJoin(string tableName, string alias, string concreteAlias, string[] fkColumns, string[] pkColumns, JoinType joinType) { ! if (!useThetaStyleInnerJoins || joinType!=JoinType.InnerJoin) { JoinFragment jf = dialect.CreateOuterJoinFragment(); ! jf.AddJoin(tableName, alias, fkColumns, pkColumns, joinType); ! AddFragment(jf); } ! else { ! AddCrossJoin(tableName, alias); ! AddCondition(concreteAlias, fkColumns, pkColumns); } } ! public override SqlString ToFromFragmentString { get { return afterFrom.ToSqlString(); } } ! ! public override SqlString ToWhereFragmentString { get { return afterWhere.ToSqlString(); } } ! public override void AddJoins(SqlString fromFragment, SqlString whereFragment) { ! afterFrom.Add(fromFragment); ! afterWhere.Add(whereFragment); } ! public override JoinFragment Copy() { ! QueryJoinFragment copy = new QueryJoinFragment(dialect, useThetaStyleInnerJoins); copy.afterFrom = new SqlStringBuilder( afterFrom.ToSqlString() ); copy.afterWhere = new SqlStringBuilder( afterWhere.ToSqlString() ); --- 36,103 ---- } ! /// <summary> ! /// ! /// </summary> ! /// <param name="tableName"></param> ! /// <param name="alias"></param> ! /// <param name="fkColumns"></param> ! /// <param name="pkColumns"></param> ! /// <param name="joinType"></param> ! public override void AddJoin( string tableName, string alias, string[ ] fkColumns, string[ ] pkColumns, JoinType joinType ) { ! AddJoin( tableName, alias, alias, fkColumns, pkColumns, joinType ); } ! /// <summary> ! /// ! /// </summary> ! /// <param name="tableName"></param> ! /// <param name="alias"></param> ! /// <param name="concreteAlias"></param> ! /// <param name="fkColumns"></param> ! /// <param name="pkColumns"></param> ! /// <param name="joinType"></param> ! public void AddJoin( string tableName, string alias, string concreteAlias, string[ ] fkColumns, string[ ] pkColumns, JoinType joinType ) { ! if( !useThetaStyleInnerJoins || joinType != JoinType.InnerJoin ) { JoinFragment jf = dialect.CreateOuterJoinFragment(); ! jf.AddJoin( tableName, alias, fkColumns, pkColumns, joinType ); ! AddFragment( jf ); } ! else { ! AddCrossJoin( tableName, alias ); ! AddCondition( concreteAlias, fkColumns, pkColumns ); } } ! /// <summary></summary> ! public override SqlString ToFromFragmentString { get { return afterFrom.ToSqlString(); } } ! ! /// <summary></summary> ! public override SqlString ToWhereFragmentString { get { return afterWhere.ToSqlString(); } } ! /// <summary> ! /// ! /// </summary> ! /// <param name="fromFragment"></param> ! /// <param name="whereFragment"></param> ! public override void AddJoins( SqlString fromFragment, SqlString whereFragment ) { ! afterFrom.Add( fromFragment ); ! afterWhere.Add( whereFragment ); } ! /// <summary></summary> ! public override JoinFragment Copy() { ! QueryJoinFragment copy = new QueryJoinFragment( dialect, useThetaStyleInnerJoins ); copy.afterFrom = new SqlStringBuilder( afterFrom.ToSqlString() ); copy.afterWhere = new SqlStringBuilder( afterWhere.ToSqlString() ); *************** *** 73,139 **** } ! public override void AddCondition(string alias, string[] columns, string condition) { ! for ( int i=0; i<columns.Length; i++ ) { ! afterWhere.Add(" and " + alias + StringHelper.Dot + columns[i] + condition); } } ! public override void AddCondition(string alias, string[] columns, string condition, IType conditionType, ISessionFactoryImplementor factory) { ! Parameter[] parameters = Parameter.GenerateParameters(factory, alias, columns, conditionType); ! ! for( int i=0; i<columns.Length; i++ ) { ! afterWhere.Add( " and " + alias + StringHelper.Dot + columns[i] + condition ); ! afterWhere.Add( parameters[i] ); } } ! public override void AddCrossJoin(string tableName, string alias) { ! afterFrom.Add(StringHelper.CommaSpace + tableName + ' ' + alias); } ! public override void AddCondition(string alias, string[] fkColumns, string[] pkColumns) { ! for ( int j=0; j<fkColumns.Length; j++) { ! afterWhere.Add( " and " + fkColumns[j] + '=' + alias + StringHelper.Dot + pkColumns[j] ); } } ! public override void AddCondition(string condition) { //TODO: this seems hackish ! if ( afterFrom.ToSqlString().ToString().IndexOf( condition.Trim() ) < 0 && ! afterWhere.ToSqlString().ToString().IndexOf( condition.Trim() ) < 0 ) { ! ! ! if ( !condition.StartsWith(" and ") ) { ! afterWhere.Add(" and "); } ! afterWhere.Add(condition); } } ! ! public override void AddCondition(SqlString condition) { //TODO: this seems hackish if( afterFrom.ToSqlString().ToString().IndexOf( condition.Trim().ToString() ) < 0 && ! afterWhere.ToSqlString().ToString().IndexOf( condition.Trim().ToString() ) < 0 ) { ! if( !condition.StartsWith(" and ") ) { ! afterWhere.Add(" and "); } ! afterWhere.Add(condition); } --- 105,202 ---- } ! /// <summary> ! /// ! /// </summary> ! /// <param name="alias"></param> ! /// <param name="columns"></param> ! /// <param name="condition"></param> ! public override void AddCondition( string alias, string[ ] columns, string condition ) { ! for( int i = 0; i < columns.Length; i++ ) { ! afterWhere.Add( " and " + alias + StringHelper.Dot + columns[ i ] + condition ); } } ! /// <summary> ! /// ! /// </summary> ! /// <param name="alias"></param> ! /// <param name="columns"></param> ! /// <param name="condition"></param> ! /// <param name="conditionType"></param> ! /// <param name="factory"></param> ! public override void AddCondition( string alias, string[ ] columns, string condition, IType conditionType, ISessionFactoryImplementor factory ) { ! Parameter[ ] parameters = Parameter.GenerateParameters( factory, alias, columns, conditionType ); ! ! for( int i = 0; i < columns.Length; i++ ) { ! afterWhere.Add( " and " + alias + StringHelper.Dot + columns[ i ] + condition ); ! afterWhere.Add( parameters[ i ] ); } } ! /// <summary> ! /// ! /// </summary> ! /// <param name="tableName"></param> ! /// <param name="alias"></param> ! public override void AddCrossJoin( string tableName, string alias ) { ! afterFrom.Add( StringHelper.CommaSpace + tableName + ' ' + alias ); } ! /// <summary> ! /// ! /// </summary> ! /// <param name="alias"></param> ! /// <param name="fkColumns"></param> ! /// <param name="pkColumns"></param> ! public override void AddCondition( string alias, string[ ] fkColumns, string[ ] pkColumns ) { ! for( int j = 0; j < fkColumns.Length; j++ ) { ! afterWhere.Add( " and " + fkColumns[ j ] + '=' + alias + StringHelper.Dot + pkColumns[ j ] ); } } ! /// <summary> ! /// ! /// </summary> ! /// <param name="condition"></param> ! public override void AddCondition( string condition ) { //TODO: this seems hackish ! if( afterFrom.ToSqlString().ToString().IndexOf( condition.Trim() ) < 0 && ! afterWhere.ToSqlString().ToString().IndexOf( condition.Trim() ) < 0 ) { ! if( !condition.StartsWith( " and " ) ) { ! afterWhere.Add( " and " ); } ! afterWhere.Add( condition ); } } ! ! /// <summary> ! /// ! /// </summary> ! /// <param name="condition"></param> ! public override void AddCondition( SqlString condition ) { //TODO: this seems hackish if( afterFrom.ToSqlString().ToString().IndexOf( condition.Trim().ToString() ) < 0 && ! afterWhere.ToSqlString().ToString().IndexOf( condition.Trim().ToString() ) < 0 ) { ! if( !condition.StartsWith( " and " ) ) { ! afterWhere.Add( " and " ); } ! afterWhere.Add( condition ); } *************** *** 141,145 **** - } ! } --- 204,207 ---- } ! } \ No newline at end of file Index: ParameterLength.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/SqlCommand/ParameterLength.cs,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** ParameterLength.cs 9 Aug 2004 03:13:18 -0000 1.7 --- ParameterLength.cs 31 Dec 2004 22:25:19 -0000 1.8 *************** *** 1,6 **** using System; ! namespace NHibernate.SqlCommand ! { /// <summary> /// Extension to the Parameter class that supports Parameters with --- 1,6 ---- using System; ! namespace NHibernate.SqlCommand ! { /// <summary> /// Extension to the Parameter class that supports Parameters with *************** *** 17,43 **** private int length; public int Length { ! get {return length;} ! set {length = value;} } - #region System.Object Members ! ! public override bool Equals(object obj) { ! if(base.Equals(obj)) { ParameterLength rhs; ! // Step 2: Instance of check rhs = obj as ParameterLength; ! if(rhs==null) return false; //Step 3: Check each important field ! return this.Length.Equals(rhs.Length); } ! else { return false; --- 17,51 ---- private int length; + /// <summary></summary> public int Length { ! get { return length; } ! set { length = value; } } #region System.Object Members ! ! /// <summary> ! /// ! /// </summary> ! /// <param name="obj"></param> ! /// <returns></returns> ! public override bool Equals( object obj ) { ! if( base.Equals( obj ) ) { ParameterLength rhs; ! // Step 2: Instance of check rhs = obj as ParameterLength; ! if( rhs == null ) ! { ! return false; ! } //Step 3: Check each important field ! return this.Length.Equals( rhs.Length ); } ! else { return false; *************** *** 45,51 **** } public override int GetHashCode() { ! unchecked { return base.GetHashCode() + length.GetHashCode(); --- 53,60 ---- } + /// <summary></summary> public override int GetHashCode() { ! unchecked { return base.GetHashCode() + length.GetHashCode(); *************** *** 54,58 **** #endregion - } ! } --- 63,66 ---- #endregion } ! } \ No newline at end of file Index: QuerySelect.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/SqlCommand/QuerySelect.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** QuerySelect.cs 4 Dec 2004 22:41:30 -0000 1.3 --- QuerySelect.cs 31 Dec 2004 22:25:19 -0000 1.4 *************** *** 1,9 **** - using System; - using System.Text; using System.Collections; ! using Iesi.Collections; - - using NHibernate.Dialect; using NHibernate.Util; --- 1,5 ---- using System.Collections; ! using System.Text; using Iesi.Collections; using NHibernate.Util; *************** *** 13,25 **** /// Summary description for QuerySelect. /// </summary> ! public class QuerySelect ! { private JoinFragment joins; ! // the selectBuilder could probably be a string if the Persister's methods that build // the SqlString instead returned a String. private SqlStringBuilder selectBuilder = new SqlStringBuilder(); private SqlStringBuilder whereBuilder = new SqlStringBuilder(); ! // groupBy, orderBy, and having will for sure have no parameters. private StringBuilder groupBy = new StringBuilder(); --- 9,21 ---- /// Summary description for QuerySelect. /// </summary> ! public class QuerySelect ! { private JoinFragment joins; ! // the selectBuilder could probably be a string if the Persister's methods that build // the SqlString instead returned a String. private SqlStringBuilder selectBuilder = new SqlStringBuilder(); private SqlStringBuilder whereBuilder = new SqlStringBuilder(); ! // groupBy, orderBy, and having will for sure have no parameters. private StringBuilder groupBy = new StringBuilder(); *************** *** 40,44 **** private static readonly ISet dontSpace = new HashedSet(); ! static QuerySelect() { //dontSpace.add("'"); --- 36,41 ---- private static readonly ISet dontSpace = new HashedSet(); ! /// <summary></summary> ! static QuerySelect() { //dontSpace.add("'"); *************** *** 66,70 **** dontSpace.Add( "!>" ); // MySQL doesn't like spaces around "(" or ")" also. ! dontSpace.Add( StringHelper.OpenParen ); dontSpace.Add( StringHelper.ClosedParen ); --- 63,67 ---- dontSpace.Add( "!>" ); // MySQL doesn't like spaces around "(" or ")" also. ! dontSpace.Add( StringHelper.OpenParen ); dontSpace.Add( StringHelper.ClosedParen ); *************** *** 92,218 **** dontSpace.Add( new SqlString( "!>" ) ); // MySQL doesn't like spaces around "(" or ")" also. ! dontSpace.Add( new SqlString( StringHelper.OpenParen ) ); dontSpace.Add( new SqlString( StringHelper.ClosedParen ) ); } ! public QuerySelect(Dialect.Dialect dialect) { ! joins = new QueryJoinFragment(dialect, false); } ! public JoinFragment JoinFragment { get { return joins; } } ! ! public void AddSelectFragmentString(string fragment) { ! AddSelectFragmentString( new SqlString(fragment) ); } ! ! public void AddSelectFragmentString(SqlString fragment) { ! if( fragment.SqlParts.Length>0 && fragment.StartsWith(",") ) { ! fragment = fragment.Substring(1); } fragment = fragment.Trim(); ! if( fragment.SqlParts.Length > 0 ) { ! if( selectBuilder.Count > 0 ) { ! selectBuilder.Add(StringHelper.CommaSpace); } ! ! selectBuilder.Add(fragment); } } ! public void AddSelectColumn(string columnName, string alias) { ! AddSelectFragmentString(columnName + ' ' + alias); } ! ! public bool Distinct { get { return distinct; } set { this.distinct = value; } } ! ! public void SetWhereTokens(ICollection tokens) { //if ( conjunctiveWhere.length()>0 ) conjunctiveWhere.append(" and "); ! AppendTokens(whereBuilder, tokens); //AppendTokens(where, tokens); } ! ! public void SetGroupByTokens(ICollection tokens) { //if ( groupBy.length()>0 ) groupBy.append(" and "); ! AppendTokens(groupBy, tokens); } ! ! public void SetOrderByTokens(ICollection tokens) { //if ( orderBy.length()>0 ) orderBy.append(" and "); ! AppendTokens(orderBy, tokens); } ! ! public void SetHavingTokens(ICollection tokens) { //if ( having.length()>0 ) having.append(" and "); ! AppendTokens(having, tokens); } ! public void AddOrderBy(string orderByString) { ! if( orderBy.Length > 0 ) orderBy.Append(StringHelper.CommaSpace); ! orderBy.Append(orderByString); } ! public SqlString ToQuerySqlString() { SqlStringBuilder builder = new SqlStringBuilder(); - - builder.Add("select "); ! if (distinct) builder.Add("distinct "); ! SqlString from = joins.ToFromFragmentString; ! if ( from.StartsWith(",") ) { ! from = from.Substring(1); } ! else if ( from.StartsWith(" inner join") ) { ! from = from.Substring(11); } ! builder.Add(selectBuilder.ToSqlString()) ! .Add(" from") .Add( from ); ! SqlString part1 = joins.ToWhereFragmentString.Trim(); ! SqlString part2 = whereBuilder.ToSqlString().Trim(); bool hasPart1 = part1.SqlParts.Length > 0; bool hasPart2 = part2.SqlParts.Length > 0; ! ! if (hasPart1 || hasPart2) builder.Add(" where "); ! if (hasPart1) builder.Add( part1.Substring(4) ); ! if (hasPart2) { ! if (hasPart1) builder.Add(" and ("); ! builder.Add(part2); ! if (hasPart1) builder.Add(")"); } - if ( groupBy.Length > 0 ) builder.Add(" group by ").Add( groupBy.ToString() ); - if ( having.Length > 0 ) builder.Add(" having ").Add( having.ToString() ); - if ( orderBy.Length > 0 ) builder.Add(" order by ").Add( orderBy.ToString() ); return builder.ToSqlString(); } ! private void AppendTokens(StringBuilder buf, ICollection iter) { bool lastSpaceable = true; --- 89,287 ---- dontSpace.Add( new SqlString( "!>" ) ); // MySQL doesn't like spaces around "(" or ")" also. ! dontSpace.Add( new SqlString( StringHelper.OpenParen ) ); dontSpace.Add( new SqlString( StringHelper.ClosedParen ) ); } ! /// <summary> ! /// ! /// </summary> ! /// <param name="dialect"></param> ! public QuerySelect( Dialect.Dialect dialect ) { ! joins = new QueryJoinFragment( dialect, false ); } ! /// <summary></summary> ! public JoinFragment JoinFragment { get { return joins; } } ! ! /// <summary> ! /// ! /// </summary> ! /// <param name="fragment"></param> ! public void AddSelectFragmentString( string fragment ) { ! AddSelectFragmentString( new SqlString( fragment ) ); } ! ! /// <summary> ! /// ! /// </summary> ! /// <param name="fragment"></param> ! public void AddSelectFragmentString( SqlString fragment ) { ! if( fragment.SqlParts.Length > 0 && fragment.StartsWith( "," ) ) { ! fragment = fragment.Substring( 1 ); } fragment = fragment.Trim(); ! if( fragment.SqlParts.Length > 0 ) { ! if( selectBuilder.Count > 0 ) { ! selectBuilder.Add( StringHelper.CommaSpace ); } ! ! selectBuilder.Add( fragment ); } } ! /// <summary> ! /// ! /// </summary> ! /// <param name="columnName"></param> ! /// <param name="alias"></param> ! public void AddSelectColumn( string columnName, string alias ) { ! AddSelectFragmentString( columnName + ' ' + alias ); } ! ! /// <summary></summary> ! public bool Distinct { get { return distinct; } set { this.distinct = value; } } ! ! /// <summary> ! /// ! /// </summary> ! /// <param name="tokens"></param> ! public void SetWhereTokens( ICollection tokens ) { //if ( conjunctiveWhere.length()>0 ) conjunctiveWhere.append(" and "); ! AppendTokens( whereBuilder, tokens ); //AppendTokens(where, tokens); } ! ! /// <summary> ! /// ! /// </summary> ! /// <param name="tokens"></param> ! public void SetGroupByTokens( ICollection tokens ) { //if ( groupBy.length()>0 ) groupBy.append(" and "); ! AppendTokens( groupBy, tokens ); } ! ! /// <summary> ! /// ! /// </summary> ! /// <param name="tokens"></param> ! public void SetOrderByTokens( ICollection tokens ) { //if ( orderBy.length()>0 ) orderBy.append(" and "); ! AppendTokens( orderBy, tokens ); } ! ! /// <summary> ! /// ! /// </summary> ! /// <param name="tokens"></param> ! public void SetHavingTokens( ICollection tokens ) { //if ( having.length()>0 ) having.append(" and "); ! AppendTokens( having, tokens ); } ! /// <summary> ! /// ! /// </summary> ! /// <param name="orderByString"></param> ! public void AddOrderBy( string orderByString ) { ! if( orderBy.Length > 0 ) ! { ! orderBy.Append( StringHelper.CommaSpace ); ! } ! orderBy.Append( orderByString ); } ! /// <summary></summary> ! public SqlString ToQuerySqlString() { SqlStringBuilder builder = new SqlStringBuilder(); ! builder.Add( "select " ); ! ! if( distinct ) ! { ! builder.Add( "distinct " ); ! } ! SqlString from = joins.ToFromFragmentString; ! if( from.StartsWith( "," ) ) { ! from = from.Substring( 1 ); } ! else if( from.StartsWith( " inner join" ) ) { ! from = from.Substring( 11 ); } ! builder.Add( selectBuilder.ToSqlString() ) ! .Add( " from" ) .Add( from ); ! SqlString part1 = joins.ToWhereFragmentString.Trim(); ! SqlString part2 = whereBuilder.ToSqlString().Trim(); bool hasPart1 = part1.SqlParts.Length > 0; bool hasPart2 = part2.SqlParts.Length > 0; ! ! if( hasPart1 || hasPart2 ) { ! builder.Add( " where " ); ! } ! if( hasPart1 ) ! { ! builder.Add( part1.Substring( 4 ) ); ! } ! if( hasPart2 ) ! { ! if( hasPart1 ) ! { ! builder.Add( " and (" ); ! } ! builder.Add( part2 ); ! if( hasPart1 ) ! { ! builder.Add( ")" ); ! } ! } ! if( groupBy.Length > 0 ) ! { ! builder.Add( " group by " ).Add( groupBy.ToString() ); ! } ! if( having.Length > 0 ) ! { ! builder.Add( " having " ).Add( having.ToString() ); ! } ! if( orderBy.Length > 0 ) ! { ! builder.Add( " order by " ).Add( orderBy.ToString() ); } return builder.ToSqlString(); } ! /// <summary> ! /// ! /// </summary> ! /// <param name="buf"></param> ! /// <param name="iter"></param> ! private void AppendTokens( StringBuilder buf, ICollection iter ) { bool lastSpaceable = true; *************** *** 220,241 **** int debugIndex = 0; ! foreach(string token in iter) { ! bool spaceable = !dontSpace.Contains(token); ! bool quoted = token.StartsWith("'"); ! if (spaceable && lastSpaceable) { ! if (!quoted || !lastQuoted) buf.Append(' '); } lastSpaceable = spaceable; ! buf.Append(token); ! lastQuoted = token.EndsWith("'"); debugIndex++; } } ! private void AppendTokens(SqlStringBuilder builder, ICollection iter) { bool lastSpaceable = true; --- 289,318 ---- int debugIndex = 0; ! foreach( string token in iter ) { ! bool spaceable = !dontSpace.Contains( token ); ! bool quoted = token.StartsWith( "'" ); ! if( spaceable && lastSpaceable ) { ! if( !quoted || !lastQuoted ) ! { ! buf.Append( ' ' ); ! } } lastSpaceable = spaceable; ! buf.Append( token ); ! lastQuoted = token.EndsWith( "'" ); debugIndex++; } } ! /// <summary> ! /// ! /// </summary> ! /// <param name="builder"></param> ! /// <param name="iter"></param> ! private void AppendTokens( SqlStringBuilder builder, ICollection iter ) { bool lastSpaceable = true; *************** *** 243,293 **** int debugIndex = 0; ! foreach(object token in iter) { string tokenString = token as string; SqlString tokenSqlString = token as SqlString; ! bool spaceable = !dontSpace.Contains(token); bool quoted = false; //TODO: seems HACKish to cast between String and SqlString ! if(tokenString!=null) { ! quoted = tokenString.StartsWith("'"); } ! else { ! quoted = tokenSqlString.StartsWith("'"); } ! if (spaceable && lastSpaceable) { ! if (!quoted || !lastQuoted) builder.Add(" "); } lastSpaceable = spaceable; ! ! if( token.Equals(StringHelper.SqlParameter) ) { Parameter param = new Parameter(); param.Name = "placholder"; ! builder.Add(param); } ! else { // not sure if we have a string or a SqlString here and token is a // reference to an object - so let the builder figure out what the // actual object is ! builder.AddObject(token); } debugIndex++; ! if( tokenString!=null ) { ! lastQuoted = tokenString.EndsWith("'"); } ! else { ! lastQuoted = tokenSqlString.EndsWith("'"); } } --- 320,373 ---- int debugIndex = 0; ! foreach( object token in iter ) { string tokenString = token as string; SqlString tokenSqlString = token as SqlString; ! bool spaceable = !dontSpace.Contains( token ); bool quoted = false; //TODO: seems HACKish to cast between String and SqlString ! if( tokenString != null ) { ! quoted = tokenString.StartsWith( "'" ); } ! else { ! quoted = tokenSqlString.StartsWith( "'" ); } ! if( spaceable && lastSpaceable ) { ! if( !quoted || !lastQuoted ) ! { ! builder.Add( " " ); ! } } lastSpaceable = spaceable; ! ! if( token.Equals( StringHelper.SqlParameter ) ) { Parameter param = new Parameter(); param.Name = "placholder"; ! builder.Add( param ); } ! else { // not sure if we have a string or a SqlString here and token is a // reference to an object - so let the builder figure out what the // actual object is ! builder.AddObject( token ); } debugIndex++; ! if( tokenString != null ) { ! lastQuoted = tokenString.EndsWith( "'" ); } ! else { ! lastQuoted = tokenSqlString.EndsWith( "'" ); } } Index: ParameterPrecisionScale.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/SqlCommand/ParameterPrecisionScale.cs,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** ParameterPrecisionScale.cs 9 Aug 2004 03:13:18 -0000 1.7 --- ParameterPrecisionScale.cs 31 Dec 2004 22:25:19 -0000 1.8 *************** *** 1,6 **** using System; ! namespace NHibernate.SqlCommand ! { /// <summary> /// Extension to the Parameter class that supports Parameters with --- 1,6 ---- using System; ! namespace NHibernate.SqlCommand ! { /// <summary> /// Extension to the Parameter class that supports Parameters with *************** *** 13,51 **** /// </remarks> [Serializable] ! public class ParameterPrecisionScale : Parameter { private byte precision; private byte scale; ! public byte Precision { ! get {return precision;} ! set {precision = value;} } ! public byte Scale { ! get {return scale;} ! set {scale = value;} } - #region System.Object Members ! ! public override bool Equals(object obj) { ! if(base.Equals(obj)) { ParameterPrecisionScale rhs; ! // Step 2: Instance of check rhs = obj as ParameterPrecisionScale; ! if(rhs==null) return false; //Step 3: Check each important field ! return this.Precision==rhs.Precision ! && this.Scale==rhs.Scale; } ! else { return false; --- 13,60 ---- /// </remarks> [Serializable] ! public class ParameterPrecisionScale : Parameter { private byte precision; private byte scale; ! /// <summary></summary> ! public byte Precision { ! get { return precision; } ! set { precision = value; } } ! /// <summary></summary> ! public byte Scale { ! get { return scale; } ! set { scale = value; } } #region System.Object Members ! ! /// <summary> ! /// ! /// </summary> ! /// <param name="obj"></param> ! /// <returns></returns> ! public override bool Equals( object obj ) { ! if( base.Equals( obj ) ) { ParameterPrecisionScale rhs; ! // Step 2: Instance of check rhs = obj as ParameterPrecisionScale; ! if( rhs == null ) ! { ! return false; ! } //Step 3: Check each important field ! return this.Precision == rhs.Precision ! && this.Scale == rhs.Scale; } ! else { return false; *************** *** 53,59 **** } public override int GetHashCode() { ! unchecked { return base.GetHashCode() + precision.GetHashCode() + scale.GetHashCode(); --- 62,69 ---- } + /// <summary></summary> public override int GetHashCode() { ! unchecked { return base.GetHashCode() + precision.GetHashCode() + scale.GetHashCode(); *************** *** 62,67 **** #endregion - } ! } ! --- 72,75 ---- #endregion } ! } \ No newline at end of file |