static rc_t matcher_read_src_types( matcher* self, const VTable *table, const VSchema *schema ) { rc_t rc = 0; uint32_t idx, len; if ( self == NULL ) return RC( rcExe, rcNoTarg, rcResolving, rcSelf, rcNull ); if ( table == NULL || schema == NULL ) return RC( rcExe, rcNoTarg, rcResolving, rcParam, rcNull ); len = VectorLength( &(self->mcols) ); for ( idx = 0; idx < len && rc == 0; ++idx ) { p_mcol item = (p_mcol) VectorGet ( &(self->mcols), idx ); if ( item != NULL ) { uint32_t dflt_idx; KNamelist *names; rc = VTableListReadableDatatypes( table, item->name, &dflt_idx, &names ); if ( rc == 0 ) { rc = matcher_read_col_src_types( item, names, dflt_idx, schema ); KNamelistRelease( names ); } } } return rc; }
LIB_EXPORT rc_t CC VTableColumnDatatypes( const VTable *cself, const char *col, uint32_t *dflt_idx, KNamelist **typedecls ) { return VTableListReadableDatatypes ( cself, col, dflt_idx, typedecls ); }