Skip to main content

PISOFT::TEAdminQuery

#include <teadmin_query.h>

The TEAdminQuery class is for query administration.

© Pi Soft, 2018-2026 · Tricryption Engine 8.1

Inheritance​

Public Member Functions​

MemberDescription
TEAdminQuery()The TEAdminQuery constructor is the default class constructor.
~TEAdminQuery()The TEAdminQuery destructor is the class destructor.
size_t getPrincipalList(const _TESTD string &className, const TEQuery &query, TEObjectContainer &principals, uint32_t sid=0)The getPrincipalList method queries principals.

Member Function Documentation​

TEAdminQuery()​

The TEAdminQuery constructor is the default class constructor.

~TEAdminQuery()​

The TEAdminQuery destructor is the class destructor.

size_t getPrincipalList(const _TESTD string &className, const TEQuery &query, TEObjectContainer &principals, uint32_t sid=0)​

The getPrincipalList method queries principals.

Parameters

ParameterDescription
classNameA string representing the classname.
queryA TEQuery object representing the query.
principalsAn TEObjectContainer container of principals.
sidAn integer representing the system ID.

Returns: Returns size_t

Remark: THIS IS THE REPLACEMENT FOR THE BULK LISTING, not merely an alternative to it. TEAdmin::getPrincipalList is @deprecated, because above the wire object limit a bulk listing FAILS – the Key Service refuses at the 1,025th object rather than emitting a package no conforming reader can read (WireLimits::MAX_OBJECT_PARAMS = 1024) – and a bounded single-class query does not.

Remark: BUILD THE TEQuery WITH AN ORDER BEFORE A LIMIT. An unordered window is not a window over one ordered set: two requests for "rows 20-39" can return overlapping sets, which is how a union of pages comes to contain a duplicate and a gap at once. Order on the same column you filter on.

Remark: ONE CONCRETE CLASS AT A TIME. className names one real principal class; the abstract umbrella has no name column of its own and five real subclasses, so a window over it would apply per subclass and the pages would overlap. For "every principal regardless of type", page each real class and concatenate in the application, rather than paging an umbrella query.

Remark: A SHORT PAGE IS THE END OF THE LIST, and there is no total to check it against: the operation returns rows, never a cardinality. The last page of an exact multiple therefore looks full and costs one short request to discover.

Remark: sid>0 takes the FEDERATED path. The window there is applied to the post-filtered authorized sequence rather than at the database cursor, which is what makes the short-page rule above true on that path as well.

Examples​