// File: /workspace/github_cpp_makefile_star2_O2/ChaohuiYu[P]BPlusTree/commands.cpp
// Function: rangeQueryRecords(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void rangeQueryRecords(const string& relationName, const string& key1, const string& key2) {
    if (!isRelationExist(relationName)) {
        cout << "Error: Relation " << relationName << " doesn't exist.\n";
        return;
    }

    if (isRelationInRelationInt(relationName)) {
        if (!is_number(key1)) {
            cout << "Error: Key1 " << key1 << " is not a number.\n";
            return;
        }
        if (!is_number(key2)) {
            cout << "Error: Key2 " << key2 << " is not a number.\n";
            return;
        }
        relationNameToRelationInt[relationName]->rangeQueryRid(stoi(key1), stoi(key2));
    }
    else if (isRelationInRelationStr(relationName)) {
        relationNameToRelationStr[relationName]->rangeQueryRid(key1.substr(1, 10), key2.substr(1, 10));
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
callq 0x3bff
testb %al, %al
je 0x4202
movq %r15, %rdi
callq 0x3d95
testb %al, %al
je 0x422c
movq %r14, %rdi
callq 0x3db4
testb %al, %al
je 0x42ad
movq %rbx, %rdi
callq 0x3db4
testb %al, %al
je 0x42c8
leaq 0xa002(%rip), %rdi      # 0xe1c0
movq %r15, %rsi
callq 0x4482
movq (%rax), %r15
pushq $0xa
popq %rbp
movq %r14, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x360a
movl %eax, %r14d
movq %rbx, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x360a
movq %r15, %rdi
movl %r14d, %esi
movl %eax, %edx
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x522a
movq 0x9dbf(%rip), %rdi      # 0xdfc8
leaq 0x50df(%rip), %rsi      # 0x92ef
callq 0x21e0
movq %rax, %rdi
movq %r15, %rsi
callq 0x21d0
leaq 0x5231(%rip), %rsi      # 0x9458
jmp 0x42ed
movq %r15, %rdi
callq 0x3e73
testb %al, %al
je 0x429e
leaq 0x9fb1(%rip), %rdi      # 0xe1f0
movq %r15, %rsi
callq 0x44e8
movq (%rax), %r15
leaq 0x28(%rsp), %rdi
pushq $0x1
popq %r12
pushq $0xa
popq %r13
movq %r14, %rsi
movq %r12, %rdx
movq %r13, %rcx
callq 0x2210
leaq 0x8(%rsp), %rdi
movq %rbx, %rsi
movq %r12, %rdx
movq %r13, %rcx
callq 0x2210
leaq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
callq 0x5904
leaq 0x8(%rsp), %rdi
callq 0x2100
leaq 0x28(%rsp), %rdi
callq 0x2100
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x9d14(%rip), %rdi      # 0xdfc8
leaq 0x50e1(%rip), %rsi      # 0x939c
callq 0x21e0
movq %rax, %rdi
movq %r14, %rsi
jmp 0x42e1
movq 0x9cf9(%rip), %rdi      # 0xdfc8
leaq 0x50d3(%rip), %rsi      # 0x93a9
callq 0x21e0
movq %rax, %rdi
movq %rbx, %rsi
callq 0x21d0
leaq 0x509c(%rip), %rsi      # 0x9389
movq %rax, %rdi
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x21e0
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x2100
jmp 0x4315
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x2100
movq %rbx, %rdi
callq 0x22e0