docs: Add CLAUDE.md with codebase guidance

Create comprehensive documentation for future Claude Code instances working in this repository, including:
- Development commands for testing, building, and code quality
- Core architecture overview of the SQL query builder system
- Directory structure and component explanations
- Testing patterns and conventions
- Key dependencies and their purposes

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-27 15:47:28 +08:00
co-authored by Claude
parent 764eccfafd
commit 304d553b3c
113 changed files with 914 additions and 432 deletions
+14
View File
@@ -22,6 +22,7 @@ type (
Joins() JoinExpressions
JoinsAppend(jc JoinExpression) SelectClauses
JoinsPrepend(jc JoinExpression) SelectClauses
Where() ExpressionList
ClearWhere() SelectClauses
@@ -41,6 +42,7 @@ type (
GroupBy() ColumnListExpression
SetGroupBy(cl ColumnListExpression) SelectClauses
GroupByAppend(cl ColumnListExpression) SelectClauses
ClearGroupBy() SelectClauses
Limit() interface{}
HasLimit() bool
@@ -197,6 +199,12 @@ func (c *selectClauses) JoinsAppend(jc JoinExpression) SelectClauses {
return ret
}
func (c *selectClauses) JoinsPrepend(jc JoinExpression) SelectClauses {
ret := c.clone()
ret.joins = append(JoinExpressions{jc}, ret.joins...)
return ret
}
func (c *selectClauses) Where() ExpressionList {
return c.where
}
@@ -310,6 +318,12 @@ func (c *selectClauses) SetGroupBy(cl ColumnListExpression) SelectClauses {
return ret
}
func (c *selectClauses) ClearGroupBy() SelectClauses {
ret := c.clone()
ret.groupBy = nil
return ret
}
func (c *selectClauses) Limit() interface{} {
return c.limit
}