Skip to content

platformadmin.com

Paul Homes blogging on SASĀ® platform administration topics

  • Home
  • Reading List
  • About / Contact
  • RSS Feed
  • LinkedIn
  • GitHub
  • LinkedIn (Metacoda)
  • YouTube (Metacoda)
platformadmin.com

SAS Metadata “V” Lengths

"V" Lengths I have been doing a lot of work on metadata searching lately, including basic XMLSELECT filtering, as part of our Metadata Security Plug-ins, in our effective permissions viewers, as well as the free Metadata Explorer utility. XMLSELECT is a feature in the SAS Open Metadata Interface that allows you to apply filters to metadata queries; you could think of it as a “Where Clause” for metadata.

One of the known limitations about XMLSELECT, that I’d not really paid much attention to in the past, relates to querying in potentially lengthy attributes – those with “V” lengths. This is documented in the SAS 9.3 Metadata Model: Reference document in the SAS Metadata Model Conventions section. It’s also documented in the equivalent SAS 9.2 page. Here’s the relevant quote from the documentation:


“V” in Length Attribute

Attributes that have no practical length limitation are represented with a “V” in the Length attribute, for example, “V64”. The “V” indicates the property is variable length (arbitrarily large). The documented length (64) is the maximum length of the string that can be stored before an overflow algorithm is invoked. Storing a string that exceeds the documented length causes one or more TextPage objects and corresponding associations that connect them to the original object to be created to store the string. Each TextPage object holds an additional 1,000 characters of text.

Use of the overflow algorithm has performance overhead associated with it. XMLSELECT processing also will not search overflow text in attempts to qualify an object for selection.

To get an idea of which objects and attributes this applies to, I went through the documentation for all of the metadata model types in SAS 9.2 and SAS 9.3 and extracted this table of attributes that have “V” lengths:

SAS Version Model Type Attribute “V” Length Has Subtypes?
9.2 & 9.3 AttributeProperty DefaultValue V1024 No
9.2 & 9.3 CalculatedMeasure Expression V1000 No
9.2 & 9.3 ConditionalPrecedence Condition V1000 No
9.2 & 9.3 Cube CubeName V1024 No
9.2 & 9.3 DeployedComponent InstallationLocation V256 Yes
9.2 & 9.3 Document URI V256 No
9.2 & 9.3 GlobalFormula Expression V1000 Yes
9.2 & 9.3 PermissionCondition Text V1000 No
9.2 & 9.3 Prompt PromptInfo V512 No
9.2 & 9.3 PromptGroup GroupInfo V4096 No
9.2 & 9.3 Property DefaultValue V1024 No
9.3 Search Details V256 No
9.2 & 9.3 SXLEMap ValidationPath V64 No
9.2 & 9.3 TextStore StoredText V1000 No
9.2 & 9.3 XPath LocationPath V64 No

These are just the super types that have documented “V” lengths. The attributes will, of course, also be found in any subtypes (which is why I’ve indicated them in the table above).

XMLSELECT processing with “V” lengths was also documented for SAS 9.1.3. I haven’t included any SAS 9.1.3 type/attribute info in the table above as yet, mainly because our new V3 plug-ins are supported for use with SAS 9.3 and 9.2 only (our older V1 plug-ins are used with SAS 9.1.3).

So if you’re planning on searching any attributes with “V” lengths you might want to consider that those attribute values could span multiple TextPage objects and XMLSELECT may not be appropriate in that instance. The word/phrase you are looking for might not be completely in the first TextPage object. It might be beyond the first TextPage, or even be split over the first and second TextPage objects. If this is likely then you will probably want to extract the metadata objects, filtering as much as you can on non-“V”-length attributes, and then post-process/filter the results in the client (SAS, Java, .NET etc).

We were also investigating these “V” length attributes as part of the development effort for a new product we are working on at Metacoda for fast metadata search and collaboration for both business & technical users alike. Watch this space for more info, or alternatively if you’re going to SAS Global Forum 2013 in San Francisco next year then visit us at the Metacoda stand to see it in action.

Author Paul HomesPosted on 7 November 201220 September 2024Categories GeneralTags Metadata API, SAS, SAS 9.2, SAS 9.3, SAS Metadata

Post navigation

Previous Previous post: SAS 9.3 Framework Data Server (and the missing license)
Next Next post: SAS PROC METALIB and ODS OUTPUT
RSS Feed Follow me on Mastodon View my LinkedIn® profile Send me a message   Vertical separator   Visit the Metacoda web site

Metacoda - productivity through metadata visibility

Horizontal separator

Tags

  • Accounts/Logins
  • ACT
  • Active Directory
  • Base SAS
  • Best Practices
  • Blogging
  • Identity Sync
  • IWA
  • Kerberos
  • Linux
  • Logging
  • Metacoda Plug-ins
  • Metacoda Plug-ins Tip
  • Metacoda Security Plug-ins
  • Metadata API
  • Metadata Migration
  • Metadata Promotion
  • Metadata Security Testing
  • Mid-Tier
  • PAM
  • platformadmin.com
  • Roles & Capabilities
  • SAS
  • SAS 9.1
  • SAS 9.2
  • SAS 9.3
  • SAS 9.4
  • SAS Architecture
  • SAS Configuration
  • SAS Enterprise Guide
  • SAS Global Forum
  • SAS Information Delivery Portal
  • SAS Installation
  • SAS Management Console
  • SAS Metadata
  • SAS Metadata Security
  • SAS Papers
  • SAS Training
  • SAS Usage Notes
  • SAS Viya
  • SPN
  • Ubuntu
  • UNIX
  • Windows
  • Windows 2008 R2

Blog Roll [ ... and links to blog rolls]

  • [ … blogs.sas.com]
  • [ … SAS RSS Feeds]
  • NOTE: The blog of RTSL.eu
  • The SAS Dummy

Metacoda Links

  • Metacoda
  • Metacoda Security Plug-ins
  • Metacoda Support

SAS Communities

  • SAS Communities
  • Stack Overflow / SAS tag
  • Super User / SAS tag

SAS Institute Links

  • SAS
  • SAS Australia
  • SAS Customer Support

SAS User Groups

  • [ … other SAS user groups]
  • SAS Global Forum
  • SUGA

Categories

  • General
  • Guest Posts
  • Interesting SAS Usage Notes
  • Linux
  • Metacoda
  • Metacoda Custom Tasks
  • Metacoda Plug-ins
  • Metacoda Security Plug-ins
  • SAS Architecture
  • SAS Books
  • SAS Configuration
  • SAS Documentation
  • SAS Enterprise Guide
  • SAS Environment Manager
  • SAS Installation
  • SAS Management Console
  • SAS Metadata
  • SAS Metadata Security
  • SAS Open Metadata API
  • SAS Software
  • SAS Support Resources
  • SAS Training
  • SAS User Groups
  • SAS Viya
  • Solaris
  • VirtualBox
  • Windows

Archives

  • October 2023
  • September 2023
  • August 2023
  • March 2023
  • February 2023
  • March 2022
  • July 2021
  • May 2021
  • March 2021
  • October 2020
  • March 2020
  • June 2019
  • April 2019
  • March 2019
  • February 2019
  • October 2018
  • September 2018
  • August 2018
  • May 2018
  • February 2018
  • September 2017
  • August 2017
  • June 2017
  • April 2017
  • January 2017
  • July 2016
  • April 2016
  • March 2016
  • November 2015
  • September 2015
  • July 2015
  • June 2015
  • March 2015
  • February 2015
  • January 2015
  • October 2014
  • May 2014
  • March 2014
  • February 2014
  • December 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • December 2011
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • April 2011
  • March 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • June 2010
  • May 2010
  • April 2010
  • Home
  • Reading List
  • About / Contact
  • RSS Feed
  • LinkedIn
  • GitHub
  • LinkedIn (Metacoda)
  • YouTube (Metacoda)

Copyright © 2010-2025 Paul Homes. All rights reserved. | Legal Notices | Admin