// File: ChaohuiYu[P]BPlusTree/Relation.cpp
// Function: Relation<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>::rangeQueryRid(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void Relation<T>::rangeQueryRid(T key1, T key2) {
    cout << "Range query relation " << _relationName << " between " << key1 << " and " << key2 << ":\n";
    vector<int> ridList = _bpt.rangeQueryValue(key1, key2);
    if (ridList.empty()) {
        cout << "    No key in this range.\n";
    }
    cout << "    RID list:" << endl;
    for (auto rid : ridList) {
        cout << "    " << rid << endl;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rsi, -0xc0(%rbp)
movq %rdx, -0xa8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq 0x14bf1(%rip), %rdi     # 0x1ffc8
leaq 0xb11d(%rip), %rsi      # 0x164fb
callq 0x3280
movq -0xb8(%rbp), %rsi
movq %rax, %rdi
addq $0x8, %rsi
callq 0x3250
movq %rax, %rdi
leaq 0xb111(%rip), %rsi      # 0x16511
callq 0x3280
movq -0xc0(%rbp), %rsi
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
leaq 0xb0fd(%rip), %rsi      # 0x1651b
callq 0x3280
movq -0xa8(%rbp), %rsi
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
leaq 0xaebe(%rip), %rsi      # 0x162fa
callq 0x3280
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rax
addq $0x50, %rax
movq %rax, -0xb0(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3120
movq -0xa8(%rbp), %rsi
leaq -0x70(%rbp), %rdi
callq 0x3120
jmp 0xb475
movq -0xb0(%rbp), %rsi
leaq -0x30(%rbp), %rdi
leaq -0x50(%rbp), %rdx
leaq -0x70(%rbp), %rcx
callq 0x12620
jmp 0xb48f
leaq -0x70(%rbp), %rdi
callq 0x3190
leaq -0x50(%rbp), %rdi
callq 0x3190
leaq -0x30(%rbp), %rdi
callq 0xa930
testb $0x1, %al
jne 0xb4b0
jmp 0xb512
movq 0x14b11(%rip), %rdi     # 0x1ffc8
leaq 0xb063(%rip), %rsi      # 0x16521
callq 0x3280
jmp 0xb4c5
jmp 0xb512
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0xb4ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x3190
leaq -0x50(%rbp), %rdi
callq 0x3190
jmp 0xb612
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xaa50
jmp 0xb612
movq 0x14aaf(%rip), %rdi     # 0x1ffc8
leaq 0xb01c(%rip), %rsi      # 0x1653c
callq 0x3280
movq %rax, -0xc8(%rbp)
jmp 0xb52e
movq -0xc8(%rbp), %rdi
movq 0x14a7c(%rip), %rsi     # 0x1ffb8
callq 0x32d0
jmp 0xb543
leaq -0x30(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rdi
callq 0xa970
movq %rax, -0x90(%rbp)
movq -0x88(%rbp), %rdi
callq 0xa9a0
movq %rax, -0x98(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0xa9d0
testb $0x1, %al
jne 0xb58d
jmp 0xb600
leaq -0x90(%rbp), %rdi
callq 0xaa10
movl (%rax), %eax
movl %eax, -0x9c(%rbp)
movq 0x14a20(%rip), %rdi     # 0x1ffc8
leaq 0xaf9b(%rip), %rsi      # 0x1654a
callq 0x3280
movq %rax, -0xd0(%rbp)
jmp 0xb5bd
movq -0xd0(%rbp), %rdi
movl -0x9c(%rbp), %esi
callq 0x3400
movq %rax, -0xd8(%rbp)
jmp 0xb5d8
movq -0xd8(%rbp), %rdi
movq 0x149d2(%rip), %rsi     # 0x1ffb8
callq 0x32d0
jmp 0xb5ed
jmp 0xb5ef
leaq -0x90(%rbp), %rdi
callq 0xaa30
jmp 0xb574
leaq -0x30(%rbp), %rdi
callq 0xaa50
addq $0xe0, %rsp
popq %rbp
retq
movq -0x78(%rbp), %rdi
callq 0x3410
nopl (%rax,%rax)