[Arsperl-devel] ARSperl ARS.xs, 1.122, 1.123 StructDef.pl, 1.5, 1.6 supportrev_generated.c, 1.6, 1.
Brought to you by:
jeffmurphy
From: Thilo S. <ts...@us...> - 2009-04-01 13:16:04
|
Update of /cvsroot/arsperl/ARSperl In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv24060 Modified Files: ARS.xs StructDef.pl supportrev_generated.c supportrev_generated.h Log Message: ars_GetListEntryWithMultiSchemaFields (first attempt) Index: supportrev_generated.c =================================================================== RCS file: /cvsroot/arsperl/ARSperl/supportrev_generated.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** supportrev_generated.c 31 Mar 2009 17:41:18 -0000 1.6 --- supportrev_generated.c 1 Apr 2009 12:29:34 -0000 1.7 *************** *** 8896,8899 **** --- 8896,10809 ---- int + rev_ARMultiSchemaArithOpStruct( ARControlStruct *ctrl, HV *h, char *k, ARMultiSchemaArithOpStruct *p ){ + SV **val; + int i = 0; + + if( !p ){ + ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL, "rev_ARMultiSchemaArithOpStruct: AR Object param is NULL" ); + return -1; [...1885 lines suppressed...] + } + }else{ + ARError_add(AR_RETURN_WARNING, AP_ERR_GENERAL, "rev_ARMultiSchemaValueSetQueryStruct: key doesn't exist"); + ARError_add(AR_RETURN_WARNING, AP_ERR_GENERAL, k ); + return -2; + } + }else{ + ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL, "rev_ARMultiSchemaValueSetQueryStruct: first argument is not a hash"); + return -1; + } + + return 0; + } + + + + + int rev_ARNameList( ARControlStruct *ctrl, HV *h, char *k, ARNameList *p ){ SV **val; Index: supportrev_generated.h =================================================================== RCS file: /cvsroot/arsperl/ARSperl/supportrev_generated.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** supportrev_generated.h 31 Mar 2009 17:41:18 -0000 1.5 --- supportrev_generated.h 1 Apr 2009 12:29:35 -0000 1.6 *************** *** 246,249 **** --- 246,288 ---- + EXTERN int rev_ARMultiSchemaArithOpStruct( ARControlStruct *ctrl, HV *h, char *k, ARMultiSchemaArithOpStruct *p ); + + + EXTERN int rev_ARMultiSchemaCurrencyPartStruct( ARControlStruct *ctrl, HV *h, char *k, ARMultiSchemaCurrencyPartStruct *p ); + + + EXTERN int rev_ARMultiSchemaFieldIdList( ARControlStruct *ctrl, HV *h, char *k, ARMultiSchemaFieldIdList *p ); + + + EXTERN int rev_ARMultiSchemaFieldIdStruct( ARControlStruct *ctrl, HV *h, char *k, ARMultiSchemaFieldIdStruct *p ); + + #if AR_CURRENT_API_VERSION >= 14 + EXTERN int rev_ARMultiSchemaFieldValueOrArithStruct( ARControlStruct *ctrl, HV *h, char *k, ARMultiSchemaFieldValueOrArithStruct *p ); + #endif + + EXTERN int rev_ARMultiSchemaNestedQueryStruct( ARControlStruct *ctrl, HV *h, char *k, ARMultiSchemaNestedQueryStruct *p ); + + #if AR_CURRENT_API_VERSION >= 14 + EXTERN int rev_ARMultiSchemaQualifierStruct( ARControlStruct *ctrl, HV *h, char *k, ARMultiSchemaQualifierStruct *p ); + #endif + #if AR_CURRENT_API_VERSION >= 14 + EXTERN int rev_ARMultiSchemaQueryFromList( ARControlStruct *ctrl, HV *h, char *k, ARMultiSchemaQueryFromList *p ); + #endif + #if AR_CURRENT_API_VERSION >= 14 + EXTERN int rev_ARMultiSchemaQueryFromStruct( ARControlStruct *ctrl, HV *h, char *k, ARMultiSchemaQueryFromStruct *p ); + #endif + + EXTERN int rev_ARMultiSchemaRecursiveQueryStruct( ARControlStruct *ctrl, HV *h, char *k, ARMultiSchemaRecursiveQueryStruct *p ); + + #if AR_CURRENT_API_VERSION >= 14 + EXTERN int rev_ARMultiSchemaRelOpStruct( ARControlStruct *ctrl, HV *h, char *k, ARMultiSchemaRelOpStruct *p ); + #endif + + EXTERN int rev_ARMultiSchemaStatHistoryValue( ARControlStruct *ctrl, HV *h, char *k, ARMultiSchemaStatHistoryValue *p ); + + + EXTERN int rev_ARMultiSchemaValueSetQueryStruct( ARControlStruct *ctrl, HV *h, char *k, ARMultiSchemaValueSetQueryStruct *p ); + + EXTERN int rev_ARNameList( ARControlStruct *ctrl, HV *h, char *k, ARNameList *p ); Index: ARS.xs =================================================================== RCS file: /cvsroot/arsperl/ARSperl/ARS.xs,v retrieving revision 1.122 retrieving revision 1.123 diff -C2 -d -r1.122 -r1.123 *** ARS.xs 31 Mar 2009 17:41:17 -0000 1.122 --- ARS.xs 1 Apr 2009 12:29:29 -0000 1.123 *************** *** 6559,6563 **** * image. */ ! if(rv == 0) { ret = ARCreateImage( ctrl, name, &imageBuf, --- 6559,6563 ---- * image. */ ! if( rv == 0 ){ ret = ARCreateImage( ctrl, name, &imageBuf, *************** *** 6569,6574 **** if(!ARError( ret, status)) RETVAL = 1; ! } else ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL); } if (helpText) { --- 6569,6575 ---- if(!ARError( ret, status)) RETVAL = 1; ! }else{ ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL); + } } if (helpText) { *************** *** 6667,6671 **** * image. */ ! if(rv == 0) { ret = ARSetImage( ctrl, name, newNamePtr, --- 6668,6672 ---- * image. */ ! if( rv == 0 ){ ret = ARSetImage( ctrl, name, newNamePtr, *************** *** 6678,6683 **** if(!ARError( ret, status)) RETVAL = 1; ! } else ! ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL); } if (helpText) { --- 6679,6685 ---- if(!ARError( ret, status)) RETVAL = 1; ! }else{ ! ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL); ! } } if (helpText) { *************** *** 7049,7083 **** void ars_GetListEntryWithMultiSchemaFields(ctrl,schema,qualifier,maxRetrieve=0,firstRetrieve=0,...) ! ARControlStruct * ctrl ! char * schema ! ARQualifierStruct * qualifier ! unsigned int firstRetrieve ! unsigned int maxRetrieve PPCODE: { ARStatusList status; ! #if AR_CURRENT_API_VERSION >= 99999 ! unsigned int c = (items - 5) / 2, i; ! int field_off = 5; ! ARMultiSchemaQueryFromList queryFromList, ! ARMultiSchemaFieldIdList getListFields, *getList = NULL; ! ARMultiSchemaQualifierStruct qualifierStruct, ARMultiSchemaSortList sortList; ARMultiSchemaFieldValueListList entryFieldValueList; ! int ret = 0; ! AV *getListFields_array; (void) ARError_reset(); Zero(&queryFromList, 1, ARMultiSchemaQueryFromList); - Zero(&getListFields, 1, ARMultiSchemaFieldIdList); Zero(&qualifierStruct, 1, ARMultiSchemaQualifierStruct); Zero(&sortList, 1, ARMultiSchemaSortList); Zero(&entryFieldValueList, 1, ARMultiSchemaFieldValueListList); Zero(&status, 1, ARStatusList); ! sortList.sortList = NULL; getListFields.fieldsList = NULL; ! entryFieldValueList.entryList = NULL; ! if ((items - 5) % 2) { /* odd number of arguments, so argument after maxRetrieve is optional getListFields (an array of hash refs) */ --- 7051,7096 ---- void ars_GetListEntryWithMultiSchemaFields(ctrl,schema,qualifier,maxRetrieve=0,firstRetrieve=0,...) ! ARControlStruct * ctrl ! SV * schema ! SV * qualifier ! unsigned int firstRetrieve ! unsigned int maxRetrieve PPCODE: { ARStatusList status; ! #if AR_CURRENT_API_VERSION >= 14 ! unsigned int c = (items - 5) / 2, i; ! int field_off = 5; ! ARMultiSchemaQueryFromList queryFromList; ! ARMultiSchemaQualifierStruct qualifierStruct; ! ARMultiSchemaFieldIdList getListFields; ARMultiSchemaSortList sortList; ARMultiSchemaFieldValueListList entryFieldValueList; ! int ret = 0, rv = 0; ! AV *getListFields_array; ! HV *hDummy; ! ! printf( "\n\n!!!! ars_GetListEntryWithMultiSchemaFields(): experimental implementation, not really working yet !!!!\n\n" ); (void) ARError_reset(); Zero(&queryFromList, 1, ARMultiSchemaQueryFromList); Zero(&qualifierStruct, 1, ARMultiSchemaQualifierStruct); + Zero(&getListFields, 1, ARMultiSchemaFieldIdList); Zero(&sortList, 1, ARMultiSchemaSortList); Zero(&entryFieldValueList, 1, ARMultiSchemaFieldValueListList); Zero(&status, 1, ARStatusList); ! hDummy = newHV(); ! hv_store( hDummy, "queryFromList", 13, newSVsv(schema), 0 ); ! hv_store( hDummy, "qualifierStruct", 15, newSVsv(qualifier), 0 ); ! rv += rev_ARMultiSchemaQueryFromList( ctrl, hDummy, "queryFromList", &queryFromList ); ! rv += rev_ARMultiSchemaQualifierStruct( ctrl, hDummy, "qualifierStruct", &qualifierStruct ); ! hv_undef( hDummy ); ! ! /* sortList.sortList = NULL; getListFields.fieldsList = NULL; ! entryFieldValueList.entryList = NULL; */ ! #ifdef XXX_DUMMY_FIELDLIST ! if( (items - 5) % 2 ){ /* odd number of arguments, so argument after maxRetrieve is optional getListFields (an array of hash refs) */ *************** *** 7085,7088 **** --- 7098,7103 ---- (getListFields_array = (AV *)SvRV(ST(field_off))) && (SvTYPE(getListFields_array) == SVt_PVAV) ) { + + getList = &getListFields; getListFields.numItems = av_len(getListFields_array) + 1; *************** *** 7091,7098 **** getListFields.fieldsList = MALLOCNN( sizeof(AREntryListFieldStruct) * getListFields.numItems ); /* set query field list */ ! for (i=0; i<getListFields.numItems; i++) { SV **array_entry; /* get fieldID from array */ ! if (! (array_entry = av_fetch(getListFields_array, i, 0))) { (void) ARError_add( AR_RETURN_ERROR, AP_ERR_BAD_LFLDS); goto getlistentry_end; --- 7106,7113 ---- getListFields.fieldsList = MALLOCNN( sizeof(AREntryListFieldStruct) * getListFields.numItems ); /* set query field list */ ! for( i = 0; i<getListFields.numItems; i++ ){ SV **array_entry; /* get fieldID from array */ ! if( ! (array_entry = av_fetch(getListFields_array, i, 0)) ){ (void) ARError_add( AR_RETURN_ERROR, AP_ERR_BAD_LFLDS); goto getlistentry_end; *************** *** 7106,7110 **** getListFields.fieldsList[i].separator) ); } ! } else { (void) ARError_add( AR_RETURN_ERROR, AP_ERR_LFLDS_TYPE); goto getlistentry_end; --- 7121,7125 ---- getListFields.fieldsList[i].separator) ); } ! }else{ (void) ARError_add( AR_RETURN_ERROR, AP_ERR_LFLDS_TYPE); goto getlistentry_end; *************** *** 7113,7116 **** --- 7128,7133 ---- field_off ++; } + #endif + #ifdef XXX_DUMMY_SORTLIST /* build sortList */ sortList.numItems = c; *************** *** 7121,7127 **** sortList.sortList[i].sortOrder = SvIV(ST(i*2+field_off+1)); } ret = ARGetListEntryWithMultiSchemaFields( ctrl, &queryFromList, ! getList, &qualifierStruct, &sortList, --- 7138,7151 ---- sortList.sortList[i].sortOrder = SvIV(ST(i*2+field_off+1)); } + #endif + + if( rv != 0 ){ + ARError_add( AR_RETURN_ERROR, AP_ERR_PREREVFAIL ); + goto getlistentry_multischema_end; + } + ret = ARGetListEntryWithMultiSchemaFields( ctrl, &queryFromList, ! &getListFields, &qualifierStruct, &sortList, *************** *** 7135,7176 **** ((ars_ctrl *)ctrl)->queries++; #endif ! if (ARError( ret, status)) { ! goto getlistentry_end; } ! for (i=0; i < entryFieldValueList.numItems; i++) { HV * fieldValue_hash = newHV(); unsigned int field; ! char intstr[12]; ! if (entryFieldValueList.entryList[i].entryId.numItems == 1) { ! /* only one entryId -- so just return its value to be compatible ! with ars 2 */ ! XPUSHs(sv_2mortal(newSVpv(entryFieldValueList.entryList[i].entryId.entryIdList[0], 0))); ! } else { ! /* more than one entry -- this must be a join schema. merge ! * the list into a single entry-id to keep things ! * consistent. */ ! unsigned int entry; ! char *joinId = (char *)NULL; ! char joinSep[2] = {AR_ENTRY_ID_SEPARATOR, 0}; ! for (entry=0; entry < entryFieldValueList.entryList[i].entryId.numItems; entry++) { ! joinId = strappend(joinId, entryFieldValueList.entryList[i].entryId.entryIdList[entry]); ! if(entry < entryFieldValueList.entryList[i].entryId.numItems-1) ! joinId = strappend(joinId, joinSep); ! } ! XPUSHs(sv_2mortal(newSVpv(joinId, 0))); ! } ! for (field=0; field < entryFieldValueList.entryList[i].entryValues->numItems; field++) { ! sprintf(intstr,"%ld",entryFieldValueList.entryList[i].entryValues->fieldValueList[field].fieldId); hv_store( fieldValue_hash, ! intstr, strlen(intstr), ! perl_ARValueStruct(ctrl,&entryFieldValueList.entryList[i].entryValues->fieldValueList[field].value), ! 0 ); } XPUSHs( sv_2mortal( newRV_noinc((SV *)fieldValue_hash) ) ); } ! getlistentry_end: ! FreeAREntryListFieldValueList( &entryFieldValueList,FALSE ); ! FreeARSortList( &sortList, FALSE ); ! FreeAREntryListFieldList( &getListFields, FALSE ); #else /* prior to ARS 7.5 */ (void) ARError_reset(); --- 7159,7184 ---- ((ars_ctrl *)ctrl)->queries++; #endif ! if( ARError( ret, status) ){ ! goto getlistentry_multischema_end; } ! for( i = 0; i < entryFieldValueList.numItems; ++i ){ HV * fieldValue_hash = newHV(); unsigned int field; ! char keyStr[AR_MAX_NAME_SIZE + 12 + 1]; ! ! for( field = 0; field < entryFieldValueList.listPtr[i].numItems; ++field ){ ! ARMultiSchemaFieldValueStruct *valPtr = &(entryFieldValueList.listPtr[i].listPtr[field]); ! sprintf( keyStr, "%s|%ld", valPtr->fieldId.queryFromAlias, valPtr->fieldId.fieldId ); hv_store( fieldValue_hash, ! keyStr, strlen(keyStr), ! perl_ARValueStruct( ctrl, &(valPtr->value) ), ! 0 ); } XPUSHs( sv_2mortal( newRV_noinc((SV *)fieldValue_hash) ) ); } ! getlistentry_multischema_end: ! FreeARMultiSchemaFieldIdList( &getListFields, FALSE ); ! FreeARMultiSchemaSortList( &sortList, FALSE ); ! FreeARMultiSchemaFieldValueListList( &entryFieldValueList, FALSE ); #else /* prior to ARS 7.5 */ (void) ARError_reset(); Index: StructDef.pl =================================================================== RCS file: /cvsroot/arsperl/ARSperl/StructDef.pl,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** StructDef.pl 31 Mar 2009 17:41:17 -0000 1.5 --- StructDef.pl 1 Apr 2009 12:29:34 -0000 1.6 *************** *** 2,12 **** %CURRENT_API_VERSION = ( ! '4.5.1' => '7', ! '4.5.2' => '7', ! '5.0.0' => '8', ! '5.0.1' => '8', ! '5.1.0' => '9', ! '5.1.1' => '9', ! '5.1.2' => '9', '6.0.0' => '10', '6.0.1' => '10', --- 2,12 ---- %CURRENT_API_VERSION = ( ! '4.5.1' => '7', ! '4.5.2' => '7', ! '5.0.0' => '8', ! '5.0.1' => '8', ! '5.1.0' => '9', ! '5.1.1' => '9', ! '5.1.2' => '9', '6.0.0' => '10', '6.0.1' => '10', *************** *** 15,18 **** --- 15,19 ---- '7.0.1' => '12', '7.1.0' => '13', + '7.5.0' => '14', ); *************** *** 1876,1879 **** --- 1877,2168 ---- + ARMultiSchemaQueryFromList => { + _min_version => '7.5.0', + _num => 'p->numItems', + _list => 'p->listPtr', + _type => 'ARMultiSchemaQueryFromStruct', + }, + ARMultiSchemaQueryFromStruct => { + _min_version => '7.5.0', + _switch => 'p->type', + queryFromAlias => { + _type => 'ARNameType', + _data => 'p->queryFromAlias', + }, + joinType => { + _type => 'unsigned int', + _data => 'p->joinType', + }, + joinQual => { + _type => 'ARMultiSchemaQualifierStruct*', + _data => 'p->joinQual', + }, + _switch => 'p->type', + _case => { + AR_MULTI_SCHEMA_SCHEMA_NAME => { + schemaName => { + _type => 'ARNameType', + _data => 'p->u.schemaName', + }, + }, + AR_MULTI_SCHEMA_NESTED_QUERY => { + nestedQuery => { + _type => 'ARMultiSchemaNestedQueryStruct*', + _data => 'p->u.nestedQuery', + }, + }, + AR_MULTI_SCHEMA_RECURSIVE_QUERY => { + recursiveQuery => { + _type => 'ARMultiSchemaRecursiveQueryStruct*', + _data => 'p->u.recursiveQuery', + }, + }, + }, + }, + + ARMultiSchemaNestedQueryStruct => { + queryFromList => { + _type => 'ARMultiSchemaQueryFromList', + _data => 'p->queryFromList', + }, + getListFields => { + _type => 'ARMultiSchemaFieldIdList', + _data => 'p->getListFields', + }, + qualifier => { + _type => 'ARMultiSchemaQualifierStruct*', + _data => 'p->qualifier', + }, + }, + ARMultiSchemaRecursiveQueryStruct => { + recursiveSchemaAlias => { + _type => 'ARNameType', + _data => 'p->recursiveSchemaAlias', + }, + queryFromList => { + _type => 'ARMultiSchemaQueryFromList', + _data => 'p->queryFromList', + }, + getListFields => { + _type => 'ARMultiSchemaFieldIdList', + _data => 'p->getListFields', + }, + startQual => { + _type => 'ARMultiSchemaQualifierStruct*', + _data => 'p->startQual', + }, + recursionQual => { + _type => 'ARMultiSchemaQualifierStruct*', + _data => 'p->recursionQual', + }, + levelsToRetrieve => { + _type => 'int', + _data => 'p->levelsToRetrieve', + }, + }, + ARMultiSchemaQualifierStruct => { + _min_version => '7.5.0', + _switch => 'p->operation', + _map => [ 'oper', { + AR_COND_OP_AND => 'and', + AR_COND_OP_OR => 'or', + AR_COND_OP_NOT => 'not', + AR_COND_OP_REL_OP => 'rel_op', + AR_COND_OP_FROM_FIELD => 'external', + } ], + _case => { + AR_COND_OP_NONE => { + _default => 1, + }, + AR_COND_OP_AND => { + left => { + _type => 'ARMultiSchemaQualifierStruct*', + _data => 'p->u.andor.operandLeft', + }, + right => { + _type => 'ARMultiSchemaQualifierStruct*', + _data => 'p->u.andor.operandRight', + }, + }, + AR_COND_OP_OR => { + left => { + _type => 'ARMultiSchemaQualifierStruct*', + _data => 'p->u.andor.operandLeft', + }, + right => { + _type => 'ARMultiSchemaQualifierStruct*', + _data => 'p->u.andor.operandRight', + }, + }, + AR_COND_OP_NOT => { + 'not' => { + _type => 'ARMultiSchemaQualifierStruct*', + _data => 'p->u.notQual', + }, + }, + AR_COND_OP_REL_OP => { + rel_op => { + _type => 'ARMultiSchemaRelOpStruct*', + _data => 'p->u.relOp', + }, + }, + AR_COND_OP_FROM_FIELD => { + fieldId => { + _type => 'ARMultiSchemaFieldIdStruct', + _data => 'p->u.fieldId', + }, + }, + }, + }, + + ARMultiSchemaRelOpStruct => { + _min_version => '7.5.0', + oper => { + _type => 'unsigned int', + _data => 'p->operation', + _map => { + AR_REL_OP_EQUAL => '==', + AR_REL_OP_GREATER => '>', + AR_REL_OP_GREATER_EQUAL => '>=', + AR_REL_OP_LESS => '<', + AR_REL_OP_LESS_EQUAL => '<=', + AR_REL_OP_NOT_EQUAL => '!=', + AR_REL_OP_LIKE => 'like', + AR_REL_OP_IN => 'in', + }, + }, + left => { + _type => 'ARMultiSchemaFieldValueOrArithStruct', + _data => 'p->operandLeft', + }, + right => { + _type => 'ARMultiSchemaFieldValueOrArithStruct', + _data => 'p->operandRight', + }, + }, + + ARMultiSchemaFieldValueOrArithStruct => { + _min_version => '7.5.0', + _switch => 'p->tag', + _case => { + AR_FIELD => { + fieldId => { + _type => 'ARMultiSchemaFieldIdStruct', + _data => 'p->u.fieldId', + }, + }, + AR_VALUE => { + value => { + _type => 'ARValueStruct', + _data => 'p->u.value', + }, + }, + AR_ARITHMETIC => { + arith => { + _type => 'ARMultiSchemaArithOpStruct*', + _data => 'p->u.arithOp', + }, + }, + AR_STAT_HISTORY => { + statHistory => { + _type => 'ARMultiSchemaStatHistoryValue', + _data => 'p->u.statHistory', + }, + }, + AR_VALUE_SET => { + valueSet => { + _type => 'ARValueList', + _data => 'p->u.valueSet', + }, + }, + AR_CURRENCY_FLD => { + _min_version => '5.1.0', + currencyField => { + _type => 'ARMultiSchemaCurrencyPartStruct*', + _data => 'p->u.currencyField', + }, + }, + AR_VALUE_SET_QUERY => { + queryValue => { + _type => 'ARMultiSchemaValueSetQueryStruct*', + _data => 'p->u.valueSetQuery', + }, + }, + }, + }, + + ARMultiSchemaCurrencyPartStruct => { + fieldId => { + _type => 'ARMultiSchemaFieldIdStruct', + _data => 'p->fieldId', + }, + partTag => { + _type => 'unsigned int', + _data => 'p->partTag', + }, + currencyCode => { + _type => 'ARCurrencyCodeType', + _data => 'p->currencyCode', + }, + }, + ARMultiSchemaFieldIdStruct => { + queryFromAlias => { + _type => 'ARNameType', + _data => 'p->queryFromAlias', + }, + fieldId => { + _type => 'ARInternalId', + _data => 'p->fieldId', + }, + }, + ARMultiSchemaArithOpStruct => { + operation => { + _type => 'unsigned int', + _data => 'p->operation', + }, + operandLeft => { + _type => 'ARMultiSchemaFieldValueOrArithStruct', + _data => 'p->operandLeft', + }, + operandRight => { + _type => 'ARMultiSchemaFieldValueOrArithStruct', + _data => 'p->operandRight', + }, + }, + ARMultiSchemaValueSetQueryStruct => { + queryFromList => { + _type => 'ARMultiSchemaQueryFromList', + _data => 'p->queryFromList', + }, + fieldId => { + _type => 'ARMultiSchemaFieldIdStruct', + _data => 'p->fieldId', + }, + qualifier => { + _type => 'ARMultiSchemaQualifierStruct*', + _data => 'p->qualifier', + }, + }, + ARMultiSchemaStatHistoryValue => { + queryFromAlias => { + _type => 'ARNameType', + _data => 'p->queryFromAlias', + }, + enumVal => { + _type => 'unsigned long', + _data => 'p->enumVal', + }, + userOrTime => { + _type => 'unsigned int', + _data => 'p->userOrTime', + }, + }, + ARMultiSchemaFieldIdList => { + _num => 'p->numItems', + _list => 'p->listPtr', + _type => 'ARMultiSchemaFieldIdStruct', + }, + + #ARArchiveInfoStruct => { |