assertionFailure happened in iterator

Open
#1,271 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
sqlite, swift
Domain
databases

Research direction

Start with Query.swift and the prepare(_:) implementation at the reported AnyIterator call; compare its statement.next() handling with the failableNext discussion in #1075. Done means determining how to handle the iterator error so the reported assertion crash is prevented for the affected query path.

Written by the indexing model from the issue text.

Description

version: 0.15.2

a crash happened at AnyIterator { statement.next().map { Row(columnNames, $0) } } in Query.swift

public func prepare(_ query: QueryType) throws -> AnySequence<Row> {
        let expression = query.expression
        let statement = try prepare(expression.template, expression.bindings)

        let columnNames = try columnNamesForQuery(query)

        return AnySequence {
            AnyIterator { statement.next().map { Row(columnNames, $0) } }
        }
    }

I saw #1075 but am unsure how I am supposed to handle errors using failableNext directly.
I used a do-catch block for this func prepare(_: ) but this didn't prevent the crash from happening

Dominant language
Swift
Stars
10.2k
Forks
1.6k
Avg merge
6d 2h
Merged PRs (30d)
2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from stephencelis/SQLite.swift

All issues in stephencelis/SQLite.swift

Similar issues

More Swift issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.