ColdFusion Query of Queries Creates BIGINT Values When Hard Coding Integers

Posted October 24, 2006 at 2:24 PM by Ben Nadel

Tags: ColdFusion

Just a minor thing that I came across today; ColdFusion query of queries defines hard-coded integer values as type BIGINT. While this is a very minor detail, it can cause some issues when performing a UNION as I had to do today (I had join a query to itself in a parent-child relationship query).

I had a query that looked like this:

  • <!--- Query for top level vendors. --->
  • <cfquery name="qTopLevelVendor" dbtype="query">
  • (
  • SELECT
  • id,
  • name,
  • has_children
  • FROM
  • qVendor
  • WHERE
  • parent_id = 0
  • )
  •  
  • UNION
  •  
  • (
  • SELECT
  • parent_id,
  • parent_name,
  • ( 0 ) AS has_children
  • FROM
  • qVendor
  • WHERE
  • parent_id != 0
  • )
  • </cfquery>

This threw thew following error:

Query Of Queries runtime error. Cannot mix types "INTEGER" and "BIGINT" in a "compare" binary operation.

The problem was with this line of code:

  • ( 0 ) AS has_children

In the original query, this was an integer value. The query of queries is making that a BIGINT, which cannot be compared properly. To overcome this, I had to convert one of the values:

  • <!--- Query for top level vendors. --->
  • <cfquery name="qTopLevelVendor" dbtype="query">
  • (
  • SELECT
  • id,
  • name,
  • has_children
  • FROM
  • qVendor
  • WHERE
  • parent_id = 0
  • )
  •  
  • UNION
  •  
  • (
  • SELECT
  • parent_id,
  • parent_name,
  • CAST( 0 AS INTEGER ) AS has_children
  • FROM
  • qVendor
  • WHERE
  • parent_id != 0
  • )
  • </cfquery>

Notice that I am casting the hard coded value as an integer. That did the trick. It's not often that I really think about the data types of hard coded values, but this just goes to show that that is very important.



Reader Comments

Jan 22, 2009 at 7:29 AM // reply »
18 Comments

Thanks Ben. I just fell into this exact same trap, and thankfully there you were to guide me out. Cheers


Jan 22, 2009 at 8:09 AM // reply »
10,640 Comments

@Matt,

Awesome. It's all about team work :)


Mar 16, 2009 at 9:24 PM // reply »
2 Comments

What Matt said!

Thanks Ben


Aug 22, 2009 at 1:19 AM // reply »
3 Comments

I know this is an old post but man did this stump me for a bit. Google searched the error message and your post was #1. Thanks.


Sep 6, 2009 at 1:27 PM // reply »
10,640 Comments

@Robert,

Sweeeeet!


Post A Comment

Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.

Please review the following issues:

Author Name:


Author Email:

Author Website:

Comment:

Supported HTML tags for formatting: <strong>bold</strong>   <em>italic</em>   <code>code</code>







  • Help Wanted - Find Your Next ColdFusion Job
InVision App - Prototyping Made Beautiful With Prototyping Tools Ben Nadel's Company - Epicenter Consulting Recent Blog Comments
Feb 12, 2012 at 3:37 AM
Learning ColdFusion 8: CFImage Part III - Watermarks And Transparency
Hi Ben, Just to ask currently it is placed bottom right corner, if i need to replace the same rendered image on the bottom left side or in the bottom center, how that can be calculated. bottom ce ... read »
Feb 11, 2012 at 9:29 PM
Use jQuery's SlideDown() With Fixed-Width Elements To Prevent Jumping
I can't say how glad I am that I found your post. Thank you very much. ... read »
Feb 10, 2012 at 7:21 PM
jQuery AJAX Strips Script Tags And Inserts Them After Parent-Most Elements
Update! Instead of $(eval(options.insertAfter)).after(data['insertData']); I now use: var ajaxNode = document.createElement('span'); var parent = $(eval(options.insertAfter))[0].parentNode; ... read »
Feb 10, 2012 at 6:18 PM
jQuery AJAX Strips Script Tags And Inserts Them After Parent-Most Elements
encountered this same, what I consider, jQuery bug last week. I'm building a site in which I load some content via AJAX. This content contains Linkedin share button placeholders which Linkedin API ne ... read »
Feb 10, 2012 at 11:30 AM
Cross-Origin Resource Sharing (CORS) AJAX Requests Between jQuery And Node.js
After you understand the concepts here, this is an awesome cheatsheet for enabling CORS in just about anything http://enable-cors.org/ ... read »
JM
Feb 10, 2012 at 9:10 AM
My Safari Browser SQLite Database Hello World Example
@Amy, Here is a very good tutorial on how to use JOIN: http://www.sqltutorial.org/sqljoin-innerjoin.aspx ... read »
Feb 10, 2012 at 4:42 AM
Building A Twitter-Inspired RESTful API Architecture In ColdFusion
This is great, very useful Ben. I spotted a small typo in the api.cgm listing: <cfthrow type="Unauthroized" /> Cheers Stefan ... read »
Feb 9, 2012 at 10:35 PM
CFDirectory Filtering Uses Pipe Character For Multiple Filters (Thanks Steve Withington)
I was wondering if there would be a filter you could apply so that you got everything but what you included in the filter. As in show me all docs that are not a .pdf. ... read »