db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Matrigali <mikem_...@sbcglobal.net>
Subject Re: svn commit: r540237 - in /db/derby/code/trunk/java/engine/org/apache/derby: catalog/types/TypeDescriptorImpl.java iapi/types/DataTypeDescriptor.java impl/sql/compile/AggregateNode.java
Date Mon, 21 May 2007 19:12:13 GMT
some comments on this commit:

mamta@apache.org wrote:
> Author: mamta
> Date: Mon May 21 11:59:28 2007
> New Revision: 540237
> 
> URL: http://svn.apache.org/viewvc?view=rev&rev=540237
> Log:
> DERBY-2599
> Commiting patch DERBY2599_Set_collation_for_aggregates_v1_diff.txt attached to DERBY-2599.
This patch sets correct collation type for
> MAX and MIN aggregate functions. These 2 aggregate functions can return string datatype
and this return datatype should take it's collation
> from it's operand. It appears that these 2 functions can't be used in where clause but
even then, I think they should have correct collation 
> set on them.

Can the result of these functions be a column in a select list which 
then can be a column used in an order by?

> 
> 
> Modified:
>     db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/TypeDescriptorImpl.java
>     db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/DataTypeDescriptor.java
>     db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/AggregateNode.java
> 
> Modified: db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/TypeDescriptorImpl.java
> URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/TypeDescriptorImpl.java?view=diff&rev=540237&r1=540236&r2=540237
> ==============================================================================
> --- db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/TypeDescriptorImpl.java
(original)
> +++ db/derby/code/trunk/java/engine/org/apache/derby/catalog/types/TypeDescriptorImpl.java
Mon May 21 11:59:28 2007
> @@ -90,6 +90,39 @@
>  	}
>  
>  	/**
> +	 * Constructor for use with numeric types/non-numeric types. For instance,
> +	 * when dealing with MAX/MIN aggregrade operators, we do not if we are
> +	 * working with numeric or non-numeric types. Such a constructor will be
> +	 * used in those cases. 
Could you fix the above comment, I can't figure out what it is trying to 
say.
> +	 *
> +	 * @param typeId	The typeId of the type being described
> +	 * @param precision	The number of decimal digits.
> +	 * @param scale		The number of digits after the decimal point.
> +	 * @param isNullable	TRUE means it could contain NULL, FALSE means
> +	 *			it definitely cannot contain NULL.
> +	 * @param maximumWidth	The maximum number of bytes for this datatype
> +	 * @param collationType The collation type of a string data type
> +	 * @param collationDerivation Collation Derivation of a string data type
> +	 */
> +	public TypeDescriptorImpl(
> +		BaseTypeIdImpl typeId,
> +		int precision,
> +		int scale,
> +		boolean isNullable,
> +		int maximumWidth,
> +		int collationType,
> +		int collationDerivation)
> +	{
> +		this.typeId = typeId;
> +		this.precision = precision;
> +		this.scale = scale;
> +		this.isNullable = isNullable;
> +		this.maximumWidth = maximumWidth;
> +		this.collationType = collationType;
> +		this.collationDerivation = collationDerivation;
> +	}
> +
> +	/**
>  	 * Constructor for use with non-numeric types
>  	 *
>  	 * @param typeId	The typeId of the type being described
> 
> Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/DataTypeDescriptor.java
> URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/DataTypeDescriptor.java?view=diff&rev=540237&r1=540236&r2=540237
> ==============================================================================
> --- db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/DataTypeDescriptor.java
(original)
> +++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/DataTypeDescriptor.java
Mon May 21 11:59:28 2007
> @@ -302,6 +302,35 @@
>  	}
>  
>  	/**
> +	 * Constructor for use with numeric types/non-numeric types. For instance,
> +	 * when dealing with MAX/MIN aggregrade operators, we do not if we are
> +	 * working with numeric or non-numeric types. Such a constructor will be
> +	 * used in those cases. 
Same as above comment.

> +	 *
> +	 * @param typeId	The typeId of the type being described
> +	 * @param precision	The number of decimal digits.
> +	 * @param scale		The number of digits after the decimal point.
> +	 * @param isNullable	TRUE means it could contain NULL, FALSE means
> +	 *			it definitely cannot contain NULL.
> +	 * @param maximumWidth	The maximum number of bytes for this datatype
> +	 * @param collationType The collation type of a string data type
> +	 * @param collationDerivation Collation Derivation of a string data type
> +	 */
> +	public DataTypeDescriptor(TypeId typeId, int precision, int scale,
> +		boolean isNullable, int maximumWidth, int collationType,
> +		int collationDerivation)
> +	{
> +		this.typeId = typeId;
> +		typeDescriptor = new TypeDescriptorImpl(typeId.getBaseTypeId(),
> +												precision,
> +												scale,
> +												isNullable,
> +												maximumWidth,
> +												collationType,
> +												collationDerivation);
> +	}
> +
> +	/**
>  	 * Constructor for use with non-numeric types
>  	 *
>  	 * @param typeId	The typeId of the type being described
> 
> Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/AggregateNode.java
> URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/AggregateNode.java?view=diff&rev=540237&r1=540236&r2=540237
> ==============================================================================
> --- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/AggregateNode.java
(original)
> +++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/AggregateNode.java
Mon May 21 11:59:28 2007
> @@ -409,7 +409,9 @@
>  							resultType.getPrecision(),
>  							resultType.getScale(),
>  							resultType.isNullable(),
> -							resultType.getMaximumWidth()
> +							resultType.getMaximumWidth(),
> +							resultType.getCollationType(),
> +							resultType.getCollationDerivation()
>  						)
>  				);
>  
> 
> 
> 
> 


Mime
View raw message