Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
691 changes: 691 additions & 0 deletions .agents/plans/OVERALL_TCK_STATUS.md

Large diffs are not rendered by default.

501 changes: 501 additions & 0 deletions .agents/plans/call/01_TCK_Call1_Basic_procedure_calling.md

Large diffs are not rendered by default.

261 changes: 261 additions & 0 deletions .agents/plans/call/02_TCK_Call2_Procedure_arguments.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,261 @@
# Call2 - Procedure arguments - Task List

**Feature:** Call2 - Procedure arguments
**Status:** πŸ”΄ NOT STARTED (0/6 scenarios)
**Priority:** LOW
**Last Updated:** 2025-11-17

---

## Overview

Procedure arguments

**Feature File:** `tck/features/clauses/call/Call2.feature`
**Total Scenarios:** 6

**Key Capabilities:**
- In-query call to procedure with explicit arguments
- Standalone call to procedure with explicit arguments
- Standalone call to procedure with implicit arguments
- In-query call to procedure that takes arguments fails when trying to pass them implicitly
- Standalone call to procedure should fail if input type is wrong
- ... and 1 more scenarios

---

## Quick Status

| Status | Count | Scenarios |
|--------|-------|-----------|
| πŸ”΄ Not Started | 6 | 01, 02, 03, 04, 05, 06 |

---

## Test Scenarios

### πŸ”΄ [Scenario 01] In-query call to procedure with explicit arguments
**Status:** πŸ”΄ NOT STARTED
**Priority:** LOW

**Test:**
```cypher
CALL test.my.proc('Stefan', 1) YIELD city, country_code
RETURN city, country_code
```

**Expected:** Result table (see feature file)

**TODO:**
- [ ] Implement test case
- [ ] Parse and compile query
- [ ] Execute query
- [ ] Validate results
- [ ] Handle edge cases

**Dependencies:** Basic query execution
**Estimated Effort:** TBD

---

### πŸ”΄ [Scenario 02] Standalone call to procedure with explicit arguments
**Status:** πŸ”΄ NOT STARTED
**Priority:** LOW

**Test:**
```cypher
CALL test.my.proc('Stefan', 1)
```

**Expected:** Result table (see feature file)

**TODO:**
- [ ] Implement test case
- [ ] Parse and compile query
- [ ] Execute query
- [ ] Validate results
- [ ] Handle edge cases

**Dependencies:** Basic query execution
**Estimated Effort:** TBD

---

### πŸ”΄ [Scenario 03] Standalone call to procedure with implicit arguments
**Status:** πŸ”΄ NOT STARTED
**Priority:** LOW

**Test:**
```cypher
CALL test.my.proc
```

**Expected:** Result table (see feature file)

**TODO:**
- [ ] Implement test case
- [ ] Parse and compile query
- [ ] Execute query
- [ ] Validate results
- [ ] Handle edge cases

**Dependencies:** Basic query execution
**Estimated Effort:** TBD

---

### πŸ”΄ [Scenario 04] In-query call to procedure that takes arguments fails when trying to pass them implicitly
**Status:** πŸ”΄ NOT STARTED
**Priority:** LOW

**Test:**
```cypher
CALL test.my.proc YIELD out
RETURN out
```

**Expected:** SyntaxError

**TODO:**
- [ ] Implement test case
- [ ] Parse and compile query
- [ ] Execute query
- [ ] Validate results
- [ ] Handle edge cases

**Dependencies:** Error handling infrastructure
**Estimated Effort:** TBD

---

### πŸ”΄ [Scenario 05] Standalone call to procedure should fail if input type is wrong
**Status:** πŸ”΄ NOT STARTED
**Priority:** LOW

**Test:**
```cypher
CALL test.my.proc(true)
```

**Expected:** SyntaxError

**TODO:**
- [ ] Implement test case
- [ ] Parse and compile query
- [ ] Execute query
- [ ] Validate results
- [ ] Handle edge cases

**Dependencies:** Error handling infrastructure
**Estimated Effort:** TBD

---

### πŸ”΄ [Scenario 06] In-query call to procedure should fail if input type is wrong
**Status:** πŸ”΄ NOT STARTED
**Priority:** LOW

**Test:**
```cypher
CALL test.my.proc(true) YIELD out
RETURN out
```

**Expected:** SyntaxError

**TODO:**
- [ ] Implement test case
- [ ] Parse and compile query
- [ ] Execute query
- [ ] Validate results
- [ ] Handle edge cases

**Dependencies:** Error handling infrastructure
**Estimated Effort:** TBD

---

## Implementation Plan

### Phase 1: Foundation
**Goal:** Implement basic Call2 functionality
**Timeline:** TBD

**Tasks:**
1. Study feature requirements
2. Design implementation approach
3. Implement core functionality
4. Write initial tests
5. Debug and validate

### Phase 2: Complete Implementation
**Goal:** All scenarios passing
**Timeline:** TBD

**Tasks:**
1. Implement remaining scenarios
2. Handle edge cases
3. Error validation
4. Performance optimization
5. Complete test coverage

---

## Files to Modify

**Likely files to modify:**
- [ ] `src/cypher/cypher-parser.c` - Query parsing
- [ ] `src/cypher/cypher-planner.c` - Query planning
- [ ] `src/cypher/cypher-physical-plan.c` - Physical execution plan
- [ ] `src/cypher/cypher-iterators.c` - Execution iterators
- [ ] `tests/tck_test_*.c` - Test implementation

---

## Success Criteria

### Minimum Viable
- [ ] At least 50% of scenarios passing
- [ ] Basic functionality working
- [ ] Core use cases covered

### Production Ready
- [ ] All scenarios passing
- [ ] Error handling complete
- [ ] Edge cases handled
- [ ] Performance acceptable

---

## Dependencies

**Prerequisites:**
- Basic query parsing infrastructure
- Execution engine
- Result formatting

**Blocks:**
- Features that depend on this implementation

---

## Notes

- Feature file: `tck/features/clauses/call/Call2.feature`
- Total scenarios: 6
- This plan was auto-generated on 2025-11-17
- Review and update priorities as implementation progresses

---

## Quick Reference

**Run Tests:**
```bash
./build/tests/tck_test_call
```

**Feature File Location:**
```
tck/features/clauses/call/Call2.feature
```
Loading