{"id":20288,"date":"2014-02-05T11:12:02","date_gmt":"2014-02-05T09:12:02","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=20288"},"modified":"2014-02-05T11:12:02","modified_gmt":"2014-02-05T09:12:02","slug":"textql-execute-sql-against-structured-text-like-csv-or-tsv","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/","title":{"rendered":"TextQL &#8211; execute SQL against structured text like CSV or TSV"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"https:\/\/github.com\/dinedal\/textql\">TextQL &#8211; execute SQL against structured text like CSV or TSV<\/a><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/02\/textql_usage.gif?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"20289\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/textql_usage\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/02\/textql_usage.gif?fit=800%2C600&amp;ssl=1\" data-orig-size=\"800,600\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"textql usage\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/02\/textql_usage.gif?fit=660%2C495&amp;ssl=1\" class=\"aligncenter size-medium wp-image-20289\" alt=\"textql usage\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/02\/textql_usage-500x375.gif?resize=500%2C375&#038;ssl=1\" width=\"500\" height=\"375\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/02\/textql_usage.gif?resize=500%2C375&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/02\/textql_usage.gif?resize=80%2C60&amp;ssl=1 80w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/02\/textql_usage.gif?resize=160%2C120&amp;ssl=1 160w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/02\/textql_usage.gif?resize=510%2C382&amp;ssl=1 510w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/02\/textql_usage.gif?resize=710%2C532&amp;ssl=1 710w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/02\/textql_usage.gif?resize=632%2C474&amp;ssl=1 632w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>TextQL &#8211; execute SQL against structured text like CSV or TSV<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"link","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[1,62],"tags":[1754,1559,773],"keyring_services":[],"class_list":["post-20288","post","type-post","status-publish","format-link","hentry","category-general","category-technology","tag-data-migration","tag-databases","tag-sql","post_format-post-format-link"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"TextQL - execute SQL against structured text like CSV or TSV\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Leonid Mamchenkov\"\/>\n\t<meta name=\"google-site-verification\" content=\"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Leonid Mamchenkov - Life, universe, and everything else\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"TextQL \u2013 execute SQL against structured text like CSV or TSV - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"TextQL - execute SQL against structured text like CSV or TSV\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2014-02-05T09:12:02+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2014-02-05T09:12:02+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MamchenkovBlog\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:title\" content=\"TextQL \u2013 execute SQL against structured text like CSV or TSV - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"TextQL - execute SQL against structured text like CSV or TSV\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/05\\\/textql-execute-sql-against-structured-text-like-csv-or-tsv\\\/#blogposting\",\"name\":\"TextQL \\u2013 execute SQL against structured text like CSV or TSV - Leonid Mamchenkov\",\"headline\":\"TextQL &#8211; execute SQL against structured text like CSV or TSV\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/wp-content\\\/uploads\\\/2014\\\/02\\\/textql_usage-500x375.gif\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/05\\\/textql-execute-sql-against-structured-text-like-csv-or-tsv\\\/#articleImage\"},\"datePublished\":\"2014-02-05T11:12:02+02:00\",\"dateModified\":\"2014-02-05T11:12:02+02:00\",\"inLanguage\":\"en-US\",\"commentCount\":2,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/05\\\/textql-execute-sql-against-structured-text-like-csv-or-tsv\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/05\\\/textql-execute-sql-against-structured-text-like-csv-or-tsv\\\/#webpage\"},\"articleSection\":\"All, Technology, data migration, databases, sql, Link\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/05\\\/textql-execute-sql-against-structured-text-like-csv-or-tsv\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/general\\\/#listItem\",\"name\":\"All\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/general\\\/#listItem\",\"position\":2,\"name\":\"All\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/general\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/05\\\/textql-execute-sql-against-structured-text-like-csv-or-tsv\\\/#listItem\",\"name\":\"TextQL &#8211; execute SQL against structured text like CSV or TSV\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/05\\\/textql-execute-sql-against-structured-text-like-csv-or-tsv\\\/#listItem\",\"position\":3,\"name\":\"TextQL &#8211; execute SQL against structured text like CSV or TSV\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/general\\\/#listItem\",\"name\":\"All\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/05\\\/textql-execute-sql-against-structured-text-like-csv-or-tsv\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/05\\\/textql-execute-sql-against-structured-text-like-csv-or-tsv\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/05\\\/textql-execute-sql-against-structured-text-like-csv-or-tsv\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/05\\\/textql-execute-sql-against-structured-text-like-csv-or-tsv\\\/\",\"name\":\"TextQL \\u2013 execute SQL against structured text like CSV or TSV - Leonid Mamchenkov\",\"description\":\"TextQL - execute SQL against structured text like CSV or TSV\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/05\\\/textql-execute-sql-against-structured-text-like-csv-or-tsv\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2014-02-05T11:12:02+02:00\",\"dateModified\":\"2014-02-05T11:12:02+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/\",\"name\":\"Blog of Leonid Mamchenkov\",\"description\":\"Life, universe, and everything else\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"TextQL \u2013 execute SQL against structured text like CSV or TSV - Leonid Mamchenkov","description":"TextQL - execute SQL against structured text like CSV or TSV","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/#blogposting","name":"TextQL \u2013 execute SQL against structured text like CSV or TSV - Leonid Mamchenkov","headline":"TextQL &#8211; execute SQL against structured text like CSV or TSV","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/02\/textql_usage-500x375.gif","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/#articleImage"},"datePublished":"2014-02-05T11:12:02+02:00","dateModified":"2014-02-05T11:12:02+02:00","inLanguage":"en-US","commentCount":2,"mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/#webpage"},"articleSection":"All, Technology, data migration, databases, sql, Link"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","position":1,"name":"Home","item":"https:\/\/mamchenkov.net\/wordpress","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/#listItem","name":"All"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/#listItem","position":2,"name":"All","item":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/#listItem","name":"TextQL &#8211; execute SQL against structured text like CSV or TSV"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/#listItem","position":3,"name":"TextQL &#8211; execute SQL against structured text like CSV or TSV","previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/#listItem","name":"All"}}]},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/#person","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author","url":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"WebPage","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/","name":"TextQL \u2013 execute SQL against structured text like CSV or TSV - Leonid Mamchenkov","description":"TextQL - execute SQL against structured text like CSV or TSV","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2014-02-05T11:12:02+02:00","dateModified":"2014-02-05T11:12:02+02:00"},{"@type":"WebSite","@id":"https:\/\/mamchenkov.net\/wordpress\/#website","url":"https:\/\/mamchenkov.net\/wordpress\/","name":"Blog of Leonid Mamchenkov","description":"Life, universe, and everything else","inLanguage":"en-US","publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"}}]},"og:locale":"en_US","og:site_name":"Leonid Mamchenkov - Life, universe, and everything else","og:type":"article","og:title":"TextQL \u2013 execute SQL against structured text like CSV or TSV - Leonid Mamchenkov","og:description":"TextQL - execute SQL against structured text like CSV or TSV","og:url":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/","og:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:secure_url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:width":1024,"og:image:height":1024,"article:published_time":"2014-02-05T09:12:02+00:00","article:modified_time":"2014-02-05T09:12:02+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"TextQL \u2013 execute SQL against structured text like CSV or TSV - Leonid Mamchenkov","twitter:description":"TextQL - execute SQL against structured text like CSV or TSV","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"20288","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-07-19 17:58:15","updated":"2026-01-15 10:04:47","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/general\/\" title=\"All\">All<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tTextQL \u2013 execute SQL against structured text like CSV or TSV\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/mamchenkov.net\/wordpress"},{"label":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},{"label":"TextQL &#8211; execute SQL against structured text like CSV or TSV","link":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":28240,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/","url_meta":{"origin":20288,"position":0},"title":"Querying CSV with SQL","author":"Leonid Mamchenkov","date":"November 23, 2017","format":false,"excerpt":"Excel is not the only tool available when it comes working with CSV files.\u00a0 I have previously mentioned TextQL (here).\u00a0 Yesterday, I tried another tool, called \"q\".\u00a0 But since searching for \"q\" is not very effective, it's also known \"q text as data\". For those using Fedora, you can install\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27517,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/04\/10\/validating-csv-schema\/","url_meta":{"origin":20288,"position":1},"title":"Validating CSV schema","author":"Leonid Mamchenkov","date":"April 10, 2017","format":false,"excerpt":"CSV, or comma-separated values, is a very common format for managing all kinds of configurations, as well data manipulation. \u00a0As the linked Wikipedia page mentions, there are a few RFCs that try to standardize the format. \u00a0However, I thought, there is still a lack of schema-type standard that would allow\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":24512,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/07\/28\/sql-style-guide\/","url_meta":{"origin":20288,"position":2},"title":"SQL Style Guide","author":"Leonid Mamchenkov","date":"July 28, 2015","format":"link","excerpt":"SQL Style Guide - much needed!","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28898,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/10\/29\/soar-sql-optimizer-and-rewriter\/","url_meta":{"origin":20288,"position":3},"title":"SOAR &#8211; SQL Optimizer And Rewriter","author":"Leonid Mamchenkov","date":"October 29, 2018","format":false,"excerpt":"\u00a0 SOAR is an SQL Optimizer and Rewriter.\u00a0 It can help analyse, optimize, and rewrite SQL queries.\u00a0 Don't get offset by the Chinese documentation as default - there is an English translation. Here are some of the features: Cross-platform support, such as Linux, Mac, and Windows Support Heuristic Rules Suggestion\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/10\/soar-1-500x208.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":28562,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/05\/08\/database-flow-modern-self-hosted-web-interface-for-sql-and-graphql\/","url_meta":{"origin":20288,"position":4},"title":"Database Flow &#8211; modern, self-hosted web interface for SQL and GraphQL","author":"Leonid Mamchenkov","date":"May 8, 2018","format":false,"excerpt":"Database Flow is a modern, Open Source, self-hosted, web-based tool for working with SQL databases and GraphQL APIs.\u00a0 It supports a variety of the database engines: IBM DB2, Oracle, H2, PostgreSQL, MySQL, SQLite, Informix, and Microsoft SQL Server.\u00a0 It features an advanced SQL editor, query plan analyzer, GraphQL client, schema\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/05\/database-flow-500x281.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":11050,"url":"https:\/\/mamchenkov.net\/wordpress\/2008\/02\/06\/portability-and-flexibility-win-over-performance\/","url_meta":{"origin":20288,"position":5},"title":"Portability and flexibility win over performance","author":"Leonid Mamchenkov","date":"February 6, 2008","format":false,"excerpt":"I noticed this ticket in WordPress Trac - Change enum to varchar and went in to see if there is any heated discussion.\u00c2\u00a0 The issue is around field types used in SQL scheme for WordPress tables.\u00c2\u00a0 Certain fields, such post status employed ENUM type with a set of allowed values.\u00c2\u00a0\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/20288","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=20288"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/20288\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=20288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=20288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=20288"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=20288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}