Here's the situation:
CL-USER> [bookid]
#<CLSQL-SYS:SQL-IDENT-ATTRIBUTE BOOKID>
CL-USER> (sql-expression :attribute 'bookid)
#<CLSQL-SYS:SQL-IDENT-ATTRIBUTE BOOKID>
CL-USER> [books.bookid]
#<CLSQL-SYS:SQL-IDENT-ATTRIBUTE BOOKS.BOOKID>
CL-USER> (sql-expression :attribute 'books.bookid)
#<CLSQL-SYS:SQL-IDENT-ATTRIBUTE "books.bookid">
Clsql's [] reader macro behaves differently than sql-expression. I'd rather use sql-expression inside macros, because the reader macro can act oddly there. I tried macroexpand-1, but I'm guessing it doesn't catch the expansion early enough. How does one explore the workings of a reader macro?
Edit: Found a solution for my clsql issue:
(sql-expression :table 'books :attribute 'bookid)
I'd still like to know about the read macro thing.