MCPcopy Create free account
hub / github.com/ajitpratap0/GoSQLX / TestPositionsWithoutPositionTracking

Function TestPositionsWithoutPositionTracking

pkg/sql/ast/positions_test.go:374–402  ·  view source on GitHub ↗

----------------------------------------------------------------------------- TestPositionsWithoutPositionTracking verifies that ParseFromModelTokens now provides accurate position information (Bug 1 fix: error positions were always 0,0 because the position mapping was discarded). ------------------

(t *testing.T)

Source from the content-addressed store, hash-verified

372// -----------------------------------------------------------------------------
373
374func TestPositionsWithoutPositionTracking(t *testing.T) {
375 // Bug 1 fix: ParseFromModelTokens now uses convertModelTokensWithPositions
376 // internally, so positions are always populated - even when the caller
377 // does not explicitly call ParseFromModelTokensWithPositions.
378 tkz := tokenizer.GetTokenizer()
379 defer tokenizer.PutTokenizer(tkz)
380
381 tokens, err := tkz.Tokenize([]byte("SELECT id FROM users"))
382 if err != nil {
383 t.Fatalf("tokenize failed: %v", err)
384 }
385
386 p := parser.GetParser()
387 defer parser.PutParser(p)
388
389 tree, err := p.ParseFromModelTokens(tokens)
390 if err != nil {
391 t.Fatalf("parse failed: %v", err)
392 }
393
394 sel := tree.Statements[0].(*ast.SelectStatement)
395
396 // With unified token types, positions are always available from TokenWithSpan spans.
397 // ParseFromModelTokens now inherently carries position info.
398 if sel.Pos.Line == 0 && sel.Pos.Column == 0 {
399 t.Errorf("expected non-zero position with unified tokens, got line=%d col=%d",
400 sel.Pos.Line, sel.Pos.Column)
401 }
402}
403
404// -----------------------------------------------------------------------------
405// TestArithmeticBinaryExpressionPosition verifies positions in arithmetic

Callers

nothing calls this directly

Calls 8

GetTokenizerFunction · 0.92
PutTokenizerFunction · 0.92
GetParserFunction · 0.92
PutParserFunction · 0.92
TokenizeMethod · 0.80
ParseFromModelTokensMethod · 0.80
FatalfMethod · 0.65
ErrorfMethod · 0.65

Tested by

no test coverage detected