Here is an example code snippet from a .pyx file that successfully iterates 
through a CRecordBatch and ensures that the timestamps are ascending:

```

while batch_row_index < batch.get().num_rows():

timestamp = GetResultValue(times.get().GetScalar(batch_row_index))

new_timestamp = <CTimestampScalar*>timestamp.get()

current_timestamp = timestamps[name]

if current_timestamp > new_timestamp.value:

abort()

batch_row_index += 1

```

However, I'm having difficulty operating on the values in a column of string 
type. Unlike CTimestampScalar, there is no CStringScalar. Although there is a 
StringScalar type in C++, it isn't defined in the Cython interface. There is a 
`CStringType` and a `c_string` type.

```

while batch_row_index < batch.get().num_rows():

name = GetResultValue(names.get().GetScalar(batch_row_index))

name_string = <CStringType*>name.get() # This is wrong

printf("%s\n", name_string) # This prints garbage

if name_string == b"Xander": # Doesn't work

print("found it")

batch_row_index += 1

```

How do I get the string value as a C type and compare it to other strings?

Thanks,

Xander

Reply via email to