 		
 		/**
 		 * This function will create a column in an ILinkableHashMap that references a column from this CSVDataSource.
-		 * @param csvColumnName The name of the CSV column to put in the hash map.
+		 * @param columnNameOrIndex Either a column name or zero-based column index.
 		 * @param destinationHashMap The hash map to put the column in.
 		 * @return The column that was created in the hash map.
 		 */		
-		public function putColumnInHashMap(csvColumnName:String, destinationHashMap:ILinkableHashMap):IAttributeColumn
+		public function putColumnInHashMap(columnNameOrIndex:Object, destinationHashMap:ILinkableHashMap):IAttributeColumn
 		{
 			var sourceOwner:ILinkableHashMap = getLinkableOwner(this) as ILinkableHashMap;
 			if (!sourceOwner)

			if (_attributeHierarchy.value == null && parsedRows)
			{
				// loop through column names, adding indicators to hierarchy
				var firstRow:Array = parsedRows[0];
				var root:XML = <hierarchy title={ WeaveAPI.globalHashMap.getName(this) }/>;
				for each (var colName:String in firstRow)
				{
					var attr:XML = <attribute
						title={ colName }
					csvColumn={ colName }
					keyType={ keyType.value || DataTypes.STRING }/>;
					root.appendChild(attr);
				}
				_attributeHierarchy.value = root;
			}
			// recalculate all columns previously requested because CSV data may have changed.

			var hcr:HierarchyColumnReference =  refCol.dynamicColumnReference.requestLocalObject(HierarchyColumnReference, false);
			
			getCallbackCollection(hcr).delayCallbacks();
			hcr.dataSourceName.value = sourceOwner.getName(this);
			hcr.hierarchyPath.value = getAttrTagFromColumnId(columnNameOrIndex);
			getCallbackCollection(hcr).resumeCallbacks();
			
			getCallbackCollection(dc).resumeCallbacks();
