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:
+1
-1
@@ -1,7 +1,7 @@
|
||||
package sqlgen_test
|
||||
|
||||
import (
|
||||
"git.fsdpf.net/go/db/v2/internal/sb"
|
||||
"git.fsdpf.net/go/db/internal/sb"
|
||||
"github.com/stretchr/testify/suite"
|
||||
)
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package sqlgen
|
||||
|
||||
import (
|
||||
"git.fsdpf.net/go/db/v2/exp"
|
||||
"git.fsdpf.net/go/db/v2/internal/errors"
|
||||
"git.fsdpf.net/go/db/v2/internal/sb"
|
||||
"git.fsdpf.net/go/db/exp"
|
||||
"git.fsdpf.net/go/db/internal/errors"
|
||||
"git.fsdpf.net/go/db/internal/sb"
|
||||
)
|
||||
|
||||
var ErrNoUpdatedValuesProvided = errors.New("no update values provided")
|
||||
|
||||
@@ -3,9 +3,9 @@ package sqlgen_test
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"git.fsdpf.net/go/db/v2/exp"
|
||||
"git.fsdpf.net/go/db/v2/internal/sb"
|
||||
"git.fsdpf.net/go/db/v2/sqlgen"
|
||||
"git.fsdpf.net/go/db/exp"
|
||||
"git.fsdpf.net/go/db/internal/sb"
|
||||
"git.fsdpf.net/go/db/sqlgen"
|
||||
"github.com/stretchr/testify/suite"
|
||||
)
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package sqlgen
|
||||
|
||||
import (
|
||||
"git.fsdpf.net/go/db/v2/exp"
|
||||
"git.fsdpf.net/go/db/v2/internal/errors"
|
||||
"git.fsdpf.net/go/db/v2/internal/sb"
|
||||
"git.fsdpf.net/go/db/exp"
|
||||
"git.fsdpf.net/go/db/internal/errors"
|
||||
"git.fsdpf.net/go/db/internal/sb"
|
||||
)
|
||||
|
||||
type (
|
||||
@@ -67,6 +67,14 @@ func (dsg *deleteSQLGenerator) Generate(b sb.SQLBuilder, clauses exp.DeleteClaus
|
||||
func (dsg *deleteSQLGenerator) DeleteBeginSQL(b sb.SQLBuilder, from exp.ColumnListExpression, multiTable bool) {
|
||||
b.Write(dsg.DialectOptions().DeleteClause)
|
||||
if multiTable && dsg.DialectOptions().SupportsDeleteTableHint {
|
||||
dsg.SourcesSQL(b, from)
|
||||
_from := exp.NewColumnListExpression()
|
||||
for _, col := range from.Columns() {
|
||||
if aliased, ok := col.(exp.AliasedExpression); ok {
|
||||
_from = _from.Append(aliased.GetAs())
|
||||
} else {
|
||||
_from = _from.Append(col)
|
||||
}
|
||||
}
|
||||
dsg.SourcesSQL(b, _from)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,10 +3,10 @@ package sqlgen_test
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"git.fsdpf.net/go/db/v2/exp"
|
||||
"git.fsdpf.net/go/db/v2/internal/errors"
|
||||
"git.fsdpf.net/go/db/v2/internal/sb"
|
||||
"git.fsdpf.net/go/db/v2/sqlgen"
|
||||
"git.fsdpf.net/go/db/exp"
|
||||
"git.fsdpf.net/go/db/internal/errors"
|
||||
"git.fsdpf.net/go/db/internal/sb"
|
||||
"git.fsdpf.net/go/db/sqlgen"
|
||||
"github.com/stretchr/testify/suite"
|
||||
)
|
||||
|
||||
@@ -50,7 +50,7 @@ func (dsgs *deleteSQLGeneratorSuite) TestDialect() {
|
||||
|
||||
func (dsgs *deleteSQLGeneratorSuite) TestGenerate() {
|
||||
dc := exp.NewDeleteClauses().
|
||||
SetFrom(exp.NewIdentifierExpression("", "test", ""))
|
||||
SetFrom(exp.NewColumnListExpression("test"))
|
||||
|
||||
dsgs.assertCases(
|
||||
sqlgen.NewDeleteSQLGenerator("test", sqlgen.DefaultDialectOptions()),
|
||||
@@ -72,7 +72,7 @@ func (dsgs *deleteSQLGeneratorSuite) TestGenerate_withUnsupportedFragment() {
|
||||
opts := sqlgen.DefaultDialectOptions()
|
||||
opts.DeleteSQLOrder = []sqlgen.SQLFragmentType{sqlgen.InsertBeingSQLFragment}
|
||||
dc := exp.NewDeleteClauses().
|
||||
SetFrom(exp.NewIdentifierExpression("", "test", ""))
|
||||
SetFrom(exp.NewColumnListExpression("test"))
|
||||
|
||||
dsgs.assertCases(
|
||||
sqlgen.NewDeleteSQLGenerator("test", opts),
|
||||
@@ -94,7 +94,7 @@ func (dsgs *deleteSQLGeneratorSuite) TestGenerate_withErroredBuilder() {
|
||||
opts := sqlgen.DefaultDialectOptions()
|
||||
d := sqlgen.NewDeleteSQLGenerator("test", opts)
|
||||
|
||||
dc := exp.NewDeleteClauses().SetFrom(exp.NewIdentifierExpression("", "test", ""))
|
||||
dc := exp.NewDeleteClauses().SetFrom(exp.NewColumnListExpression("test"))
|
||||
b := sb.NewSQLBuilder(false).SetError(errors.New("expected error"))
|
||||
d.Generate(b, dc)
|
||||
dsgs.assertErrorSQL(b, "db: expected error")
|
||||
@@ -111,7 +111,7 @@ func (dsgs *deleteSQLGeneratorSuite) TestGenerate_withCommonTables() {
|
||||
|
||||
tse := newTestAppendableExpression("select * from foo", emptyArgs, nil, nil)
|
||||
|
||||
dc := exp.NewDeleteClauses().SetFrom(exp.NewIdentifierExpression("", "test_cte", ""))
|
||||
dc := exp.NewDeleteClauses().SetFrom(exp.NewColumnListExpression("test_cte"))
|
||||
dcCte1 := dc.CommonTablesAppend(exp.NewCommonTableExpression(false, "test_cte", tse))
|
||||
dcCte2 := dc.CommonTablesAppend(exp.NewCommonTableExpression(true, "test_cte", tse))
|
||||
|
||||
@@ -150,7 +150,7 @@ func (dsgs *deleteSQLGeneratorSuite) TestGenerate_withCommonTables() {
|
||||
|
||||
func (dsgs *deleteSQLGeneratorSuite) TestGenerate_withWhere() {
|
||||
dc := exp.NewDeleteClauses().
|
||||
SetFrom(exp.NewIdentifierExpression("", "test", "")).
|
||||
SetFrom(exp.NewColumnListExpression("test")).
|
||||
WhereAppend(exp.NewLiteralExpression(`"a"=?`, 1))
|
||||
dsgs.assertCases(
|
||||
sqlgen.NewDeleteSQLGenerator("test", sqlgen.DefaultDialectOptions()),
|
||||
@@ -166,7 +166,7 @@ func (dsgs *deleteSQLGeneratorSuite) TestGenerate_withOrder() {
|
||||
opts.SupportsOrderByOnDelete = true
|
||||
|
||||
dc := exp.NewDeleteClauses().
|
||||
SetFrom(exp.NewIdentifierExpression("", "test", "")).
|
||||
SetFrom(exp.NewColumnListExpression("test")).
|
||||
SetOrder(exp.NewIdentifierExpression("", "", "c").Desc())
|
||||
|
||||
dsgs.assertCases(
|
||||
@@ -188,7 +188,7 @@ func (dsgs *deleteSQLGeneratorSuite) TestGenerate_withLimit() {
|
||||
opts.SupportsLimitOnDelete = true
|
||||
|
||||
dc := exp.NewDeleteClauses().
|
||||
SetFrom(exp.NewIdentifierExpression("", "test", "")).
|
||||
SetFrom(exp.NewColumnListExpression("test")).
|
||||
SetLimit(1)
|
||||
|
||||
dsgs.assertCases(
|
||||
@@ -210,7 +210,7 @@ func (dsgs *deleteSQLGeneratorSuite) TestGenerate_withReturning() {
|
||||
opts.SupportsReturn = true
|
||||
|
||||
dc := exp.NewDeleteClauses().
|
||||
SetFrom(exp.NewIdentifierExpression("", "test", "")).
|
||||
SetFrom(exp.NewColumnListExpression("test")).
|
||||
SetReturning(exp.NewColumnListExpression("a", "b"))
|
||||
|
||||
dsgs.assertCases(
|
||||
|
||||
@@ -7,10 +7,10 @@ import (
|
||||
"time"
|
||||
"unicode/utf8"
|
||||
|
||||
"git.fsdpf.net/go/db/v2/exp"
|
||||
"git.fsdpf.net/go/db/v2/internal/errors"
|
||||
"git.fsdpf.net/go/db/v2/internal/sb"
|
||||
"git.fsdpf.net/go/db/v2/internal/util"
|
||||
"git.fsdpf.net/go/db/exp"
|
||||
"git.fsdpf.net/go/db/internal/errors"
|
||||
"git.fsdpf.net/go/db/internal/sb"
|
||||
"git.fsdpf.net/go/db/internal/util"
|
||||
)
|
||||
|
||||
type (
|
||||
|
||||
@@ -7,10 +7,10 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"git.fsdpf.net/go/db/v2/exp"
|
||||
"git.fsdpf.net/go/db/v2/internal/errors"
|
||||
"git.fsdpf.net/go/db/v2/internal/sb"
|
||||
"git.fsdpf.net/go/db/v2/sqlgen"
|
||||
"git.fsdpf.net/go/db/exp"
|
||||
"git.fsdpf.net/go/db/internal/errors"
|
||||
"git.fsdpf.net/go/db/internal/sb"
|
||||
"git.fsdpf.net/go/db/sqlgen"
|
||||
"github.com/stretchr/testify/suite"
|
||||
)
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@ package sqlgen
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"git.fsdpf.net/go/db/v2/exp"
|
||||
"git.fsdpf.net/go/db/v2/internal/errors"
|
||||
"git.fsdpf.net/go/db/v2/internal/sb"
|
||||
"git.fsdpf.net/go/db/exp"
|
||||
"git.fsdpf.net/go/db/internal/errors"
|
||||
"git.fsdpf.net/go/db/internal/sb"
|
||||
)
|
||||
|
||||
type (
|
||||
|
||||
@@ -3,9 +3,9 @@ package sqlgen_test
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"git.fsdpf.net/go/db/v2/exp"
|
||||
"git.fsdpf.net/go/db/v2/internal/sb"
|
||||
"git.fsdpf.net/go/db/v2/sqlgen"
|
||||
"git.fsdpf.net/go/db/exp"
|
||||
"git.fsdpf.net/go/db/internal/sb"
|
||||
"git.fsdpf.net/go/db/sqlgen"
|
||||
"github.com/stretchr/testify/suite"
|
||||
)
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
package mocks
|
||||
|
||||
import exp "git.fsdpf.net/go/db/v2/exp"
|
||||
import exp "git.fsdpf.net/go/db/exp"
|
||||
import mock "github.com/stretchr/testify/mock"
|
||||
import sb "git.fsdpf.net/go/db/v2/internal/sb"
|
||||
import sb "git.fsdpf.net/go/db/internal/sb"
|
||||
|
||||
// DeleteSQLGenerator is an autogenerated mock type for the DeleteSQLGenerator type
|
||||
type DeleteSQLGenerator struct {
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
package mocks
|
||||
|
||||
import exp "git.fsdpf.net/go/db/v2/exp"
|
||||
import exp "git.fsdpf.net/go/db/exp"
|
||||
import mock "github.com/stretchr/testify/mock"
|
||||
import sb "git.fsdpf.net/go/db/v2/internal/sb"
|
||||
import sb "git.fsdpf.net/go/db/internal/sb"
|
||||
|
||||
// InsertSQLGenerator is an autogenerated mock type for the InsertSQLGenerator type
|
||||
type InsertSQLGenerator struct {
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
package mocks
|
||||
|
||||
import exp "git.fsdpf.net/go/db/v2/exp"
|
||||
import exp "git.fsdpf.net/go/db/exp"
|
||||
import mock "github.com/stretchr/testify/mock"
|
||||
import sb "git.fsdpf.net/go/db/v2/internal/sb"
|
||||
import sb "git.fsdpf.net/go/db/internal/sb"
|
||||
|
||||
// SelectSQLGenerator is an autogenerated mock type for the SelectSQLGenerator type
|
||||
type SelectSQLGenerator struct {
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
package mocks
|
||||
|
||||
import exp "git.fsdpf.net/go/db/v2/exp"
|
||||
import exp "git.fsdpf.net/go/db/exp"
|
||||
import mock "github.com/stretchr/testify/mock"
|
||||
import sb "git.fsdpf.net/go/db/v2/internal/sb"
|
||||
import sb "git.fsdpf.net/go/db/internal/sb"
|
||||
|
||||
// TruncateSQLGenerator is an autogenerated mock type for the TruncateSQLGenerator type
|
||||
type TruncateSQLGenerator struct {
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
package mocks
|
||||
|
||||
import exp "git.fsdpf.net/go/db/v2/exp"
|
||||
import exp "git.fsdpf.net/go/db/exp"
|
||||
import mock "github.com/stretchr/testify/mock"
|
||||
import sb "git.fsdpf.net/go/db/v2/internal/sb"
|
||||
import sb "git.fsdpf.net/go/db/internal/sb"
|
||||
|
||||
// UpdateSQLGenerator is an autogenerated mock type for the UpdateSQLGenerator type
|
||||
type UpdateSQLGenerator struct {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package sqlgen
|
||||
|
||||
import (
|
||||
"git.fsdpf.net/go/db/v2/exp"
|
||||
"git.fsdpf.net/go/db/v2/internal/errors"
|
||||
"git.fsdpf.net/go/db/v2/internal/sb"
|
||||
"git.fsdpf.net/go/db/exp"
|
||||
"git.fsdpf.net/go/db/internal/errors"
|
||||
"git.fsdpf.net/go/db/internal/sb"
|
||||
)
|
||||
|
||||
type (
|
||||
|
||||
@@ -3,11 +3,11 @@ package sqlgen_test
|
||||
import (
|
||||
"testing"
|
||||
|
||||
dbv2 "git.fsdpf.net/go/db/v2"
|
||||
"git.fsdpf.net/go/db/v2/exp"
|
||||
"git.fsdpf.net/go/db/v2/internal/errors"
|
||||
"git.fsdpf.net/go/db/v2/internal/sb"
|
||||
"git.fsdpf.net/go/db/v2/sqlgen"
|
||||
dbv2 "git.fsdpf.net/go/db"
|
||||
"git.fsdpf.net/go/db/exp"
|
||||
"git.fsdpf.net/go/db/internal/errors"
|
||||
"git.fsdpf.net/go/db/internal/sb"
|
||||
"git.fsdpf.net/go/db/sqlgen"
|
||||
"github.com/stretchr/testify/suite"
|
||||
)
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"git.fsdpf.net/go/db/v2/exp"
|
||||
"git.fsdpf.net/go/db/exp"
|
||||
)
|
||||
|
||||
type (
|
||||
|
||||
@@ -3,7 +3,7 @@ package sqlgen_test
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"git.fsdpf.net/go/db/v2/sqlgen"
|
||||
"git.fsdpf.net/go/db/sqlgen"
|
||||
"github.com/stretchr/testify/suite"
|
||||
)
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@ package sqlgen
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"git.fsdpf.net/go/db/v2/exp"
|
||||
"git.fsdpf.net/go/db/v2/internal/errors"
|
||||
"git.fsdpf.net/go/db/v2/internal/sb"
|
||||
"git.fsdpf.net/go/db/exp"
|
||||
"git.fsdpf.net/go/db/internal/errors"
|
||||
"git.fsdpf.net/go/db/internal/sb"
|
||||
)
|
||||
|
||||
type (
|
||||
|
||||
@@ -3,10 +3,10 @@ package sqlgen_test
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"git.fsdpf.net/go/db/v2/exp"
|
||||
"git.fsdpf.net/go/db/v2/internal/errors"
|
||||
"git.fsdpf.net/go/db/v2/internal/sb"
|
||||
"git.fsdpf.net/go/db/v2/sqlgen"
|
||||
"git.fsdpf.net/go/db/exp"
|
||||
"git.fsdpf.net/go/db/internal/errors"
|
||||
"git.fsdpf.net/go/db/internal/sb"
|
||||
"git.fsdpf.net/go/db/sqlgen"
|
||||
"github.com/stretchr/testify/suite"
|
||||
)
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package sqlgen
|
||||
|
||||
import (
|
||||
"git.fsdpf.net/go/db/v2/exp"
|
||||
"git.fsdpf.net/go/db/v2/internal/errors"
|
||||
"git.fsdpf.net/go/db/v2/internal/sb"
|
||||
"git.fsdpf.net/go/db/exp"
|
||||
"git.fsdpf.net/go/db/internal/errors"
|
||||
"git.fsdpf.net/go/db/internal/sb"
|
||||
)
|
||||
|
||||
type (
|
||||
|
||||
@@ -3,9 +3,9 @@ package sqlgen_test
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"git.fsdpf.net/go/db/v2/exp"
|
||||
"git.fsdpf.net/go/db/v2/internal/sb"
|
||||
"git.fsdpf.net/go/db/v2/sqlgen"
|
||||
"git.fsdpf.net/go/db/exp"
|
||||
"git.fsdpf.net/go/db/internal/sb"
|
||||
"git.fsdpf.net/go/db/sqlgen"
|
||||
"github.com/stretchr/testify/suite"
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user