Press "Enter" to skip to content

Day: June 24, 2025

Building State Transitions as SQL Constraints

Joe Celko makes a change:

About two decades ago, I introduced the concept of transition constraints to show Data Validation in a database is a lot more complex than seeing if a string parameter really is an integer. In October of 2008, I did an article called Constraint Yourself! on how to use DDL constraints to assure data integrity. One of the topics in that piece was a look at state transition constraints via an auxiliary table.

Read on for an interesting dive into the topic.

Leave a Comment

Tableau with Microsoft Fabric and Row-Level Security

Paul Turley expands beyond the Microsoft ecosystem:

Tableau led the self-service visual reporting revolution and now part of the Salesforce suite, it is bound to continue to have a loyal following and user base. The purpose of this article is not to compare Tableau to Power BI nor to expound on the strengths or perceived weaknesses of either product, but to share my experience and learnings about using Tableau with Microsoft Fabric and Power BI semantic models. I will demonstrate how to use Tableau with a Direct Lake semantic model, a large import mode semantic model and how effectively Tableau works securely with semantic model-based row-level security (RLS).

Read on for Paul’s findings. I do appreciate Paul’s ecumenical approach here. It’s fun to pick your favorite sports team (yay, Team SQL Server!) and razz fans of other teams (boo, Team Oracle!). And given how often I do just that, I can’t begrudge anyone the pleasure. But it’s also good to remember that tools deserve no loyalty except inasmuch as they provide value to you.

Leave a Comment

Inline Scalar UDFs in Microsoft Fabric Warehouse

Srdjan Martin has an announcement:

SQL native Scalar user-defined functions (UDFs) in Microsoft Fabric Warehouse and SQL analytics endpoint are now in preview.

A scalar UDF is a custom code implemented in T-SQL that accepts parameters, performs an action such as complex calculation, and returns a result of that action as a single value.

I wonder if the same advice for SQL Server will apply to these: don’t use them because they are performance sinks. Knowing that these are scalar functions, I’d be inclined to do some considerable performance testing before rolling them out.

Leave a Comment

It’s Always Permissions (or DNS)

Kristina Mishra takes us through troubleshooting a problem:

Ah, you’ve setup a deployment pipeline and let your people know it’s ready for them to do the thing. Everything looks fine on your end, so you shoot off a message to the group and go about your busy day. (Nevermind your Test environment was set up 4 months ago, Production 3 days ago, and Development was replaced 2 months ago with a new Development environment because your region changed.) You’ve added all the permission groups to each environment and added your “contributors” as Admin to the deployment pipeline (no comment), so everything should be grand.

Famous last words, indeed.

Leave a Comment

Choosing a High Availability Solution in PostgreSQL

Semab Tariq compares two alternatives:

When designing a highly available PostgreSQL cluster, two popular tools often come into the conversation: Pgpool-II and Patroni. Both are widely used in production environments, offer solid performance, and aim to improve resilience and reduce downtime; however, they take different approaches to achieving this goal.

We often get questions during webinars/talks and customer calls about which tool is better suited for production deployments. So, we decided to put together this blog to help you understand the differences and guide you in choosing the right solution based on your specific use case.

Click through for a primer on the topic, followed by some recommendations.

Leave a Comment