27 lines
802 B
Python
27 lines
802 B
Python
# Copyright (c) 2024 Couchbase, Inc., all rights reserved.
|
|
|
|
from typing import Optional
|
|
|
|
|
|
def get_documents_query(bucket: str, scope: str, collection: str, cursor_field: str, cursor_value: Optional[int] = None) -> str:
|
|
query = f"""
|
|
SELECT META().id as _id,
|
|
lm as {cursor_field},
|
|
*
|
|
FROM `{bucket}`.`{scope}`.`{collection}`
|
|
LET lm = TO_NUMBER(meta().xattrs.`$document`.last_modified)
|
|
"""
|
|
|
|
if cursor_value is not None:
|
|
query += f"\nWHERE lm > {cursor_value}"
|
|
|
|
query += f"\nORDER BY lm ASC"
|
|
return query
|
|
|
|
|
|
def get_max_cursor_value_query(bucket: str, scope: str, collection: str) -> str:
|
|
return f"""
|
|
SELECT MAX(TO_NUMBER(meta().xattrs.`$document`.last_modified)) as max_cursor_value
|
|
FROM `{bucket}`.`{scope}`.`{collection}`
|
|
"""
|