# Strange AR error ( column does not exist)

**URL:** <https://www.ruby-forum.com/t/strange-ar-error-column-does-not-exist/161050>\
**Category:** Rails\
**Created:** [February 22, 2009, 11:26pm UTC](https://www.ruby-forum.com/t/strange-ar-error-column-does-not-exist/161050 "2009-02-22T23:26:56Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Felixyz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/f0a364/32.png) [@Felixyz](https://www.ruby-forum.com/u/Felixyz)\
**Post date:** [February 22, 2009, 11:26pm UTC](https://www.ruby-forum.com/t/strange-ar-error-column-does-not-exist/161050/1 "2009-02-22T23:26:56Z")

</div>

I’m trying to deploy a Rails app on a platform using Thin, after some  
horrible sessions trying to make it work with fcgi. All is going well,  
but my Application controller throws this error:

ActiveRecord::StatementInvalid (PGError: ERROR: column “firstpeer”  
does not exist  
LINE 1: SELECT \* FROM “switches” WHERE (firstPeer = 15 OR  
secondPeer…  
^  
: SELECT \* FROM “switches” WHERE (firstPeer = 15 OR secondPeer =  
15) ):

AR is complaining that there is no column “firstpeer”. I’m not sure if  
the fact that it is all lower case has any significance. The actual  
column is named “firstPeer”, as visible in the SQL log lines.

The source line that gives rise to the error:

switches = Switch.all(:conditions =\> [‘firstPeer = :myID OR secondPeer  
= :myID’ , {:myID =\> @chatter.id}])

Nevertheless, the following line in an initializer does get executed w/  
o problems:

switch = Switch.create(:firstPeer =\> chatter.id , :secondPeer =\>  
peer.id, :distance =\> dist)

and evaluating “Switch.all” in the console, I get:

[#\<Switch id: 1, firstPeer: 1, secondPeer: 2, created\_at: “2009-02-22  
17:11:26”, updated\_at: “2009-02-22 17:11:26”, distance:  
1235986.83901638\>, " etc

Locally I use Mongrel + MySQL, whereas the server I’m deploying to  
runs Thin and PostgreSQL. I’m also using the Spawn plugin. None of  
this seems likely to be the problem.

Any help or suggestions would be very much appreciated.

---

<div class="post-metadata">

**Author:** ![Felixyz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/f0a364/32.png) [@Felixyz](https://www.ruby-forum.com/u/Felixyz)\
**Post date:** [February 22, 2009, 11:28pm UTC](https://www.ruby-forum.com/t/strange-ar-error-column-does-not-exist/161050/2 "2009-02-22T23:28:07Z")

</div>

On Feb 22, 8:39 pm, Felixyz [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I’m trying to deploy a Rails app on a platform using Thin, after some  
> horrible sessions trying to make it work with fcgi. All is going well,  
> but my Application controller throws this error:
> 
> ActiveRecord::StatementInvalid (PGError: ERROR: column “firstpeer”  
> does not exist  
> LINE 1: SELECT \* FROM “switches” WHERE (firstPeer = 15 OR  
> secondPeer…

Well I don’t know pg much, but

> **[Chapter 4. SQL Syntax](https://www.postgresql.org/docs/8.0/sql-syntax.html)**
>
> Chapter 4. SQL Syntax Table of Contents 4.1. Lexical Structure 4.1.1. Identifiers and Key Words 4.1.2. Constants 4.1.3. Operators 4.1.4. Special Characters …

says that unquoted names are folded to lowercase.

Fred

---

<div class="post-metadata">

**Author:** ![Felixyz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/f0a364/32.png) [@Felixyz](https://www.ruby-forum.com/u/Felixyz)\
**Post date:** [February 24, 2009, 9:52pm UTC](https://www.ruby-forum.com/t/strange-ar-error-column-does-not-exist/161050/3 "2009-02-24T21:52:38Z")

</div>

Changing the column name from firstPeer to first\_peer helped. Apparently  
postgre, as you pointed out, couldn’t handle the camel case but  
automatically lower cased it. This was not any fault of AR’s. On the  
contrary, in the code where I let AR create the SELECT, the field name  
was  
handled correctly, in a way that postgresql could understand.

Thanks Fred!

2009/2/22 Frederick C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
